ClassNotFoundException,缺少ServletContainerAdaptor

时间:2013-01-09 08:04:42

标签: web-services rest servlets

我正在创建一个REstfulwebservices项目。什么时候我要跑这个     项目然后我收到此错误。 ClassNot FoundException ... ServletAdaptor
    问题

 SEVERE: Servlet /XybuyProject threw load() exception
 java.lang.ClassNotFoundException:   
 com.sun.jersey.server.spi.container.servlet.ServletAdaptor
at 

 org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1676)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1521)
at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:415)
at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:397)
at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:118)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1048)
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:996)
at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4834)
at org.apache.catalina.core.StandardContext$3.call(StandardContext.java:5155)
at org.apache.catalina.core.StandardContext$3.call(StandardContext.java:5150)
at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)

这是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: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" id="WebApp_ID" version="2.5">
   <display-name>FirstProject</display-name>
   <welcome-file-list>
   <welcome-file>index.html</welcome-file>
   <welcome-file>index.htm</welcome-file>
   <welcome-file>index.jsp</welcome-file>
   <welcome-file>index2.jsp</welcome-file>
    </welcome-file-list>
  <servlet>
<servlet-name>ServletAdaptor</servlet-name>
<servlet-class>
com.sun.jersey.server.spi.container.servlet.ServletAdaptor
</servlet-class>
<init-param>
<param-name>com.sun.jersy.config.property.packages</param-name>
<param-value>com.xybuy.webservice</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
  <servlet-mapping>
  <servlet-name>ServletAdaptor</servlet-name>
   <url-pattern>/REST/*</url-pattern>
  </servlet-mapping>
</web-app>
你可以告诉我它背后的问题是什么......

1 个答案:

答案 0 :(得分:0)

基于堆栈跟踪,您似乎正在使用Tomcat,它是一个准系统JSP / Servlet容器,而不是一个完整的Java EE容器。 Jersey是一种JAX-RS实现,通常已经捆绑在Glassfish等完整的Java EE应用服务器中。也许您正在阅读Jersey书籍/教程或下载针对Glassfish或其他Java EE容器的样本,因此我们假设您不需要单独安装它。

然而,在Tomcat上,Jersey并没有捆绑在一起,在ClassNotFoundException中声明它们时,你会在Jersey类上得到web.xml。您需要单独download Jersey JAR文件并将其放在webapp的/WEB-INF/lib文件夹中。