[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.


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