2013-01-09 140 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