将Apache Jersey for REST Web服务与struts2 Web应用程序集成

Saumyaraj

我有一个使用struts2框架的Web应用程序。我想使用Apache Jersey向其添加REST Web服务支持。我已经按应用程序进行了配置,但是在尝试运行Web服务时却出现404错误。我在互联网上进行搜索,发现过滤器拦截了所有请求,从而使servlet映射无用。我还通过配置struts.xml排除了URL模式,从而找到了解决方案,但仍然存在未找到404的相同问题。我在下面附上我的代码。提前致谢。

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:jsp="http://java.sun.com/xml/ns/javaee/jsp" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">
  <display-name>ocmsLatest</display-name>
  <context-param>
    <param-name>quartz:config-file</param-name>
    <param-value>/quartz.properties</param-value>
  </context-param>
  <context-param>
    <param-name>quartz:shutdown-on-unload</param-name>
    <param-value>true</param-value>
  </context-param>
  <context-param>
    <param-name>quartz:wait-on-shutdown</param-name>
    <param-value>false</param-value>
  </context-param>
  <context-param>
    <param-name>quartz:start-scheduler-on-load</param-name>
    <param-value>true</param-value>
  </context-param>
  <listener>
    <listener-class>
             org.quartz.ee.servlet.QuartzInitializerListener
         </listener-class>
  </listener>
  <filter>
    <filter-name>struts2</filter-name>
    <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
  </filter>
  <filter-mapping>
    <filter-name>struts2</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>
  <context-param>
    <param-name>org.apache.tiles.impl.BasicTilesContainer.DEFINITIONS_CONFIG</param-name>
    <param-value>/WEB-INF/tiles.xml</param-value>
  </context-param>
  <listener>
    <listener-class>org.apache.struts2.tiles.StrutsTilesListener</listener-class>
  </listener>
  <session-config>
    <session-timeout>30</session-timeout>
  </session-config>
  <welcome-file-list>
    <welcome-file>/pages/user/index.jsp</welcome-file>
  </welcome-file-list>
  <jsp-config>
    <jsp-property-group>
      <url-pattern>*.jsp</url-pattern>
      <trim-directive-whitespaces>true</trim-directive-whitespaces>
    </jsp-property-group>
  </jsp-config>
  <servlet>
    <description></description>
    <display-name>InitServlet</display-name>
    <servlet-name>InitServlet</servlet-name>
    <servlet-class>com.ocms.util.InitServlet</servlet-class>
    <load-on-startup>0</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>InitServlet</servlet-name>
    <url-pattern>/InitServlet</url-pattern>
  </servlet-mapping>
  <servlet>
    <servlet-name>Captcha</servlet-name>
    <servlet-class>com.roseindiaCaptcha.servlet.RoseIndiaCaptcha</servlet-class>
    <init-param>
      <description>passing height</description>
      <param-name>height</param-name>
      <param-value>60</param-value>
    </init-param>
    <init-param>
      <description>passing width</description>
      <param-name>width</param-name>
      <param-value>200</param-value>
    </init-param>
  </servlet>
  <servlet-mapping>
    <servlet-name>Captcha</servlet-name>
    <url-pattern>/Captcha.jpg</url-pattern>
  </servlet-mapping>
  <error-page>
    <error-code>404</error-code>
    <location>/pages/error404.jsp</location>
  </error-page>
    <servlet>
  <servlet-name>Jersey REST Service</servlet-name>
<servlet-class>
  com.sun.jersey.spi.container.servlet.ServletContainer
</servlet-class>
  <init-param>
    <param-name>com.sun.jersey.config.property.packages</param-name>
    <param-value>com.ocms.rest</param-value>
  </init-param>
  <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
  <servlet-name>Jersey REST Service</servlet-name>
  <url-pattern>/rest/*</url-pattern>
</servlet-mapping>
</web-app>

struts.xml

<struts>
    <constant name="struts.action.excludePattern" value="/rest/.*" />
    <constant name="struts.enable.DynamicMethodInvocation" value="false" />
    <constant name="struts.devMode" value="false" />
    <constant name="struts.custom.i18n.resources" value="com.ocms.app.resources.Resources" />
    <constant name="struts.multipart.maxSize" value="104857600000" />
//all action mappings
</struts> 

你好.java

package com.ocms.rest;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;


@Path("/hello")
public class Hello {
    @GET
    @Produces(MediaType.TEXT_PLAIN)
    public String sayHello() {
        return "Hello Jersey";
    }
}
Saumyaraj

我将FilterDispatcher更改org.apache.struts2.dispatcher.FilterDispatcherorg.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter,然后解决了该问题。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Apache Mahout和REST Java Web应用程序集成

来自分类Dev

Jersey REST Web服务在Struts 2中不起作用

来自分类Dev

使用 Jersey 的 Maven 中的 REST Web 应用程序

来自分类Dev

将 SSRS 与 Web 应用程序集成

来自分类Dev

将XML发布到jersey rest Web服务

来自分类Dev

如何测试Jersey REST Web服务?

来自分类Dev

从Android连接到Jersey REST Web服务

来自分类Dev

将PayPal沙箱集成到您的Web应用程序

来自分类Dev

将Drools集成到Web应用程序中

来自分类Dev

将Firebase Analytics与React Web应用程序集成

来自分类Dev

将Intranet Web应用程序与QB Online集成

来自分类Dev

将PayPal沙箱集成到您的Web应用程序

来自分类Dev

将Web应用程序集成到WordPress网站

来自分类Dev

将VoiceXML与在线Web应用程序集成

来自分类Dev

将R集成到Web应用程序中

来自分类Dev

将 Azure Web 应用程序集成到 Cortana

来自分类Dev

Jersey Web 应用程序的 Docker 镜像

来自分类Dev

使用Struts2和Hibernate创建Web服务(SOAP或REST)

来自分类Dev

使用Struts2和Hibernate创建Web服务(SOAP或REST)

来自分类Dev

在 Spring 应用程序中将 REST Web 服务与 Activemq 集成是否正确?

来自分类Dev

将KafkaProducer集成到Jersey REST

来自分类Dev

为什么我可以将Web服务用作Java应用程序,但不能与struts2一起使用

来自分类Dev

将Github与web2py Web应用程序集成

来自分类Dev

尝试使用Java配置将Struts2和Spring Security SAML与应用程序集成

来自分类Dev

将完成的Web服务集成到Android应用程序中

来自分类Dev

将开源Web邮件客户端集成到Web应用程序

来自分类Dev

使用Jersey rest Web服务读取ExtJS writer根属性

来自分类Dev

使用Jersey和ExtJS的REST Web服务使用JSON

来自分类Dev

使用Jersey rest Web服务读取ExtJS writer根属性

Related 相关文章

  1. 1

    Apache Mahout和REST Java Web应用程序集成

  2. 2

    Jersey REST Web服务在Struts 2中不起作用

  3. 3

    使用 Jersey 的 Maven 中的 REST Web 应用程序

  4. 4

    将 SSRS 与 Web 应用程序集成

  5. 5

    将XML发布到jersey rest Web服务

  6. 6

    如何测试Jersey REST Web服务?

  7. 7

    从Android连接到Jersey REST Web服务

  8. 8

    将PayPal沙箱集成到您的Web应用程序

  9. 9

    将Drools集成到Web应用程序中

  10. 10

    将Firebase Analytics与React Web应用程序集成

  11. 11

    将Intranet Web应用程序与QB Online集成

  12. 12

    将PayPal沙箱集成到您的Web应用程序

  13. 13

    将Web应用程序集成到WordPress网站

  14. 14

    将VoiceXML与在线Web应用程序集成

  15. 15

    将R集成到Web应用程序中

  16. 16

    将 Azure Web 应用程序集成到 Cortana

  17. 17

    Jersey Web 应用程序的 Docker 镜像

  18. 18

    使用Struts2和Hibernate创建Web服务(SOAP或REST)

  19. 19

    使用Struts2和Hibernate创建Web服务(SOAP或REST)

  20. 20

    在 Spring 应用程序中将 REST Web 服务与 Activemq 集成是否正确?

  21. 21

    将KafkaProducer集成到Jersey REST

  22. 22

    为什么我可以将Web服务用作Java应用程序,但不能与struts2一起使用

  23. 23

    将Github与web2py Web应用程序集成

  24. 24

    尝试使用Java配置将Struts2和Spring Security SAML与应用程序集成

  25. 25

    将完成的Web服务集成到Android应用程序中

  26. 26

    将开源Web邮件客户端集成到Web应用程序

  27. 27

    使用Jersey rest Web服务读取ExtJS writer根属性

  28. 28

    使用Jersey和ExtJS的REST Web服务使用JSON

  29. 29

    使用Jersey rest Web服务读取ExtJS writer根属性

热门标签

归档