web.xml
   
  <servlet>
        <servlet-name>Rest<rvlet-name>
        <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer<rvlet-class>
        <init-param>
            <param-name>com.sun.jersey.config.property.packages</param-name>
            <param-value>com.eastcom.auth.rest;com.eastcom.sso.rest;com.eastcom.system.rest</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    <rvlet>
    <servlet-mapping>
        <servlet-name>Rest<rvlet-name>
        <url-pattern>/rest/*</url-pattern>
    <rvlet-mapping>
websphere的日志:
[11-5-23 0:09:59:968 CST] 00000015 PackagesResou I   Scanning for root resource and provider classes in the packages:
  com.eastcom.auth.rest
  com.eastcom.sso.rest
  com.eastcom.system.rest
[11-5-23 0:10:00:828 CST] 00000015 WebApplicatio E   The ResourceConfig instance does not contain any root resource classes.
[11-5-23 0:10:00:859 CST] 00000015 ServiceLogger I com.ibm.ws.ffdc.IncidentStreamImpl initialize FFDC0009I: FFDC 已打开附带的流文件 c:\Program Files\IBM\WebSphere\AppServer\profiles\AppSrv02\logs\ffdc\server1_00000015_11.05.23_00.10.00_0.txt
[11-5-23 0:10:00:906 CST] 00000015 ServiceLogger I com.ibm.ws.ffdc.IncidentStreamImpl resetIncidentStream FFDC0010I: FFDC 已关闭附带的流文件 c:\Program Files\IBM\WebSphere\AppServer\profiles\AppSrv02\logs\ffdc\server1_00000015_11.05.23_00.10.00_0.txt
[11-5-23 0:10:00:921 CST] 00000015 ServletWrappe E   SRVE0100E: 未识别出由 servlet Rest 抛出的 init() 异常:com.sun.jersey.api.container.ContainerException: The ResourceConfig instance does not contain any root resource classes.
at com.sun.jersey.server.impl.application.WebApplicationImpl.processRootResources(WebApplicationImpl.java:753)
at com.sun.jersey.server.impl.application.WebApplicationImpl.initiate(WebApplicationImpl.java:625)
at com.sun.jersey.server.impl.application.WebApplicationImpl.initiate(WebApplicationImpl.java:414)
at com.sun.jersey.spi.container.servlet.ServletContainer.initiate(ServletContainer.java:377)
at com.sun.jersey.spi.container.servlet.ServletContainer$InternalWebComponent.initiate(ServletContainer.java:242)
at com.sun.jersey.spi.container.servlet.WebComponent.load(WebComponent.java:449)在web.xml有如下的servlet
 <servlet>
        <servlet-name>login<rvlet-name>
        <servlet-class>
com.xiacom.web.action.LoginServlet
        <rvlet-class>
        <load-on-startup>2</load-on-startup>
    <servlet>
login这个servlet是正常的,
有人说WAS6.1不支持最上面那种写法,请教下,换写法这么写吗?谢谢!

解决方案 »

  1.   

    你把命名空间改成以下方式试试,应该就可以了:
    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns="http://java.sun.com/xml/ns/j2ee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee   http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
    <display-name>sic</display-name><servlet>
    .........
    </servlet>websphere对web.xml的格式也是有要求的,web.xml内的标签顺序也要正确
      

  2.   

    com.sun.jersey.api.container.ContainerException这玩意肯定在服务器上不存在,需要给服务器添加相应的jar包。
      

  3.   

    To:yuyongjun我的命名空间和你的是一样的吧。我的如下:
    <?xml version="1.0" encoding="UTF-8"?>
    <web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
        <description>Fingerprint</description>
        <display-name>Fingerprint</display-name>
      

  4.   

    To:yys79相应的jar包有
    jersey-client-1.0.3.1.jar
    jersey-core-1.0.3.1.jar
    jersey-json-1.0.3.1.jar
    jersey-server-1.0.3.1.jar
    都放在工程的web-info/lib里。
      

  5.   

    终极答案在你的项目的WEB-INFO下面加一个文件不要后缀名    里面指向你的@Path  java类
      

  6.   

    如名称为 resource  里面放com.test。CategoryService然后启动TOMCAT 就不会了
      

  7.   

    看结构   
    java 类结构
    import javax.ws.rs.Path;
    import javax.ws.rs.PathParam;
    import javax.ws.rs.Produces;
    import javax.ws.rs.core.Context;
    import javax.ws.rs.core.UriInfo;
    import org.codehaus.jettison.json.JSONException;
    import org.codehaus.jettison.json.JSONObject;
    import javax.servlet.http.HttpServletRequest;
    @Path("category")就是指你没有这个东西
    public class CategoryService {