[Jersey]使用jersey实现RESTful web service 之 web.xml配置问题

Jersey实现rest web service

环境:tomcat7,jdk1.7, maven2, Jersey1.3


web.xml 的配置如下,这个是正确的配置。

<!DOCTYPE web-app PUBLIC
 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
 "http://java.sun.com/dtd/web-app_2_3.dtd" >
<web-app>
  <display-name>Archetype Created Web Application</display-name>
  <servlet>
        <servlet-name>jerseyws</servlet-name>
        <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
                                                                                  
        <init-param>
            <param-name>com.sun.jersey.config.property.resourceConfigClass</param-name>
            <param-value>com.sun.jersey.api.core.PackagesResourceConfig</param-value>
        </init-param>
        <init-param>
            <param-name>com.sun.jersey.config.property.packages</param-name>
            <param-value>com.test.restwebservice.rest</param-value>
        </init-param>
                                                                                   
        <load-on-startup>0</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>jerseyws</servlet-name>
        <url-pattern>/rest/*</url-pattern>
    </servlet-mapping> 
</web-app>


开始学习Restful,在网上搜了个例子(http://www.cnblogs.com/dcba1112/archive/2011/05/01/2033788.html)来学习。按照上面的web.xml配置,结果一直出现这个错误:

com.sun.jersey.api.container.ContainerException: The ResourceConfig instance does not contain any root resource classes.

原来是我的init-paramter 配置错误

<init-param>
            <param-name>com.sun.jersey.config.property.packages</param-name>
            <param-value>com.test.restwebservice.rest</param-value>
        </init-param>

这个里的值,我直接copy例子中的code没有有修改,其实这个应该是个rest class 所在的package,

com.sun.jersey.config.property.packages included a resource that  include any jersey services. In above case, "com.mkyong.rest” contains any jersey services.


其实,可以去掉这个配置,这样,在启动服务的时候,tomcat会自动扫描可能存在rest services.


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章