与球衣struts2一起休息spring3不能正常工作 [英] rest with jersey struts2 spring3 not working

查看:111
本文介绍了与球衣struts2一起休息spring3不能正常工作的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试使用jersey为struts2 spring3 Web应用程序公开Web服务

I am trying to expose webservice using jersey for a struts2 spring3 web application

我的web.xml

    <servlet>
        <servlet-name>Jersey REST Service</servlet-name>
        <servlet-class>com.sun.jersey.spi.spring.container.servlet.SpringServlet</servlet-class>
        <init-param>
            <param-name>com.sun.jersey.config.property.packages</param-name>
            <param-value>com.vxl.appanalytix.service.impl</param-value>
        </init-param>
       <init-param>
            <param-name>com.sun.jersey.api.json.POJOMappingFeature</param-name>
            <param-value>true</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>

struts.xml 中,我添加了excludePattern

In struts.xml i have added excludePattern

<constant name="struts.action.excludePattern" value="/rest/.*" />

服务等级

@Path("/requirement")
@Service("dimRequirementManager")
public class DimRequirementManagerImpl extends GenericManagerImpl<DimRequirement, Long> implements DimRequirementManager {
    @Autowired
    DimRequirementDao dimRequirementDao;
    @GET
    @Path("count")
    @Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
public DimRequirement getDimRequirement(){
    DimRequirement dimRequirement = new DimRequirement();
    dimRequirement.setClientKey(123L);
    dimRequirement.setPriority("HIGH");

    return dimRequirement;
}}

依赖性

<dependency>
            <groupId>com.sun.jersey.contribs</groupId>
            <artifactId>jersey-spring</artifactId>
            <version>1.17.1</version>
            <exclusions>
                <exclusion>
                    <groupId>org.springframework</groupId>
                    <artifactId>spring</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.springframework</groupId>
                    <artifactId>spring-core</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.springframework</groupId>
                    <artifactId>spring-web</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.springframework</groupId>
                    <artifactId>spring-beans</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.springframework</groupId>
                    <artifactId>spring-context</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

我在restclient http://localhost:8080/app-web/rest/requirement/count中将其返回的URL传递回

I am passing the below url in the restclient http://localhost:8080/app-web/rest/requirement/count its returning

Status Code: 404 Not Found
Content-Language: en
Content-Type: text/html;charset=utf-8
Date: Wed, 25 Sep 2013 05:47:27 GMT
Server: Apache-Coyote/1.1
Transfer-Encoding: chunked

当调试控件不转到 getDimRequirement()

推荐答案

我已经解决了这个问题.我的web.xml中有一个URL重写过滤器.

i have solved the problem. i had a url rewrite filter in my web.xml.

<filter>
    <filter-name>rewriteFilter</filter-name>
    <filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class>
    <init-param>
      <param-name>logLevel</param-name>
      <param-value>commons</param-value>
    </init-param>
    <init-param>
      <param-name>confReloadCheckInterval</param-name>
      <param-value>-1</param-value>
    </init-param>
  </filter>
 <filter-mapping>
    <filter-name>rewriteFilter</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>

在我添加的 urlrewrite.xml

<rule>
        <from>/rest/**</from>
        <to>/rest/$1</to>
    </rule>

这篇关于与球衣struts2一起休息spring3不能正常工作的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆