2013-01-09 111 views
0

我正在创建一个REstfulwebservices项目。当我要运行这个 项目时,我得到这个错误。 ClassNot FoundException ... ServletAdaptor
问题。ClassNotFoundException,缺少ServletContainerAdaptor

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> 

可你电话我背后是什么问题.....

+0

你可以检查特定的类(jar)是否在类路径中可用?...只有在服务器找不到特定类的情况下才会发现类未发现异常。 – Ratha

回答

0

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

但是,在Tomcat上,Jersey因此未捆绑在一起,您将在泽西课程中获得ClassNotFoundExceptions,并在web.xml中声明它们。您需要将Jersey JAR文件分别放入download,并将它们放在webapp的/WEB-INF/lib文件夹中。

+0

我已经在WEB-INF/lib文件夹中添加了jersey jar文件。还是有同样的问题..... – user206516

+0

哪个JAR完全放在那里?提到的类是'jersey-server.jar'的一部分。您可以在Jersey下载页面下载所有三个必需的JAR。 – BalusC