2012-08-30 35 views
3

當啓動一個servlet(來自eclipse)時,出現以下錯誤: 它是tomcat 7和servlet是REST。Tomcat的JAX-RS異常

INFO: validateJarFile(C:\beezer\WebServerWorkspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\BeezerServer\WEB-INF\lib\geronimo-j2ee_1.4_spec-1.1.jar) - jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servlet.class 
448 [localhost-startStop-1] ERROR org.apache.wink.server.internal.servlet.RestServlet - com.test.AddressBookApplication<br /> 
java.lang.ClassNotFoundException: com.test.AddressBookApplication<br /> 
    at 
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1711)<br/> 
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1556)<br/> 
    at java.lang.Class.forName0(Native Method)<br/> 
    at java.lang.Class.forName(Class.java:169)<br/> 
    at org.apache.wink.server.internal.servlet.RestServlet.getApplication(RestServlet.java:144)<br/> 
    at org.apache.wink.server.internal.servlet.RestServlet.createRequestProcessor(RestServlet.java:105)<br/> 
    at org.apache.wink.server.internal.servlet.RestServlet.init(RestServlet.java:81)<br/> 
    at javax.servlet.GenericServlet.init(GenericServlet.java:160)<br/> 
    at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1266)<br/> 
    at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1185)<br/> 
    at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1080)<br/> 
    at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:5027)<br/> 
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5314)<br/> 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)<br/> 
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)<br/> 
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)<br/> 
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)<br/> 
    at java.util.concurrent.FutureTask.run(FutureTask.java:138)<br/> 
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)<br/> 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)<br/> 
    at java.lang.Thread.run(Thread.java:662)<br/> 
Aug 30, 2012 7:49:41 PM org.apache.catalina.core.ApplicationContext log<br/> 
INFO: Marking servlet JAX-RS Servlet as unavailable<br/> 
Aug 30, 2012 7:49:41 PM org.apache.catalina.core.StandardContext loadOnStartup<br/> 
SEVERE: Servlet /BeezerServer threw load() exception<br/> 
javax.servlet.UnavailableException: com.test.AddressBookApplication<br/> 
    at org.apache.wink.server.internal.servlet.RestServlet.init(RestServlet.java:91)<br/> 
    at javax.servlet.GenericServlet.init(GenericServlet.java:160)<br/> 
    at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1266)<br/> 
    at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1185)<br/> 
    at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1080)<br/> 
    at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:5027)<br/> 
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5314)<br/> 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)<br/> 
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)<br/> 
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)<br/> 
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)<br/> 
    at java.util.concurrent.FutureTask.run(FutureTask.java:138)<br/> 
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)<br/> 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)<br/> 
    at java.lang.Thread.run(Thread.java:662)<br/> 
Aug 30, 2012 7:49:41 PM org.apache.coyote.AbstractProtocol start 
INFO: Starting ProtocolHandler ["http-bio-8080"] 

我的web.xml:

<?xml version="1.0" encoding="UTF-8"?><br/> <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<br/> http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0"> 
    <display-name>BeezerServer</display-name> 
    <servlet> 
     <description>JAX-RS Tools Generated - Do not modify</description> 
     <servlet-name>JAX-RS Servlet</servlet-name> 
     <servlet-class>org.apache.wink.server.internal.servlet.RestServlet</servlet-class> 
     <init-param> 
     <param-name>javax.ws.rs.Application</param-name> 
     <param-value>com.test.AddressBookApplication</param-value> 
     </init-param> 
     <load-on-startup>1</load-on-startup> 
    </servlet> 
    <servlet-mapping> 
     <servlet-name>JAX-RS Servlet</servlet-name> 
     <url-pattern>/jaxrs/*</url-pattern> 
    </servlet-mapping> 

有沒有人有一個提示? 謝謝!

+0

這些答案中的任何一個能解決您的問題嗎? –

回答

0

首先檢查這個類是否真的存在。檢查課程名稱和包裹。它屬於Web項目還是屬於相關項目?

如果一切正常,請刷新項目,然後運行Project/Clean,然後清理並重新發布tomcat。如果它不起作用再次創建服務器(我的意思是在eclipse中)。如果仍然無效,請轉至C:\beezer\WebServerWorkspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\BeezerServer\WEB-INF\classes(該路徑取自您的日誌)並檢查該類文件是否存在。

祝你好運,歡迎的是對花費在Tomcat中的Eclipse插件的蟲子夜戰人俱樂部

0

擺脫C:\beezer\WebServerWorkspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\BeezerServer\WEB-INF\lib\geronimo-j2ee_1.4_spec-1.1.jar它包含類Servlet.java,應該由提供AS本身。如果您正在使用Maven,請標記所提供的依賴關係(<scope>provided</scope>

Btw。該jar仍然需要編譯,但不是在運行時。

編輯:哦,現在我已經注意到,它只是在日誌中的信息。所以這不是問題的根源,根本原因是ClassNotFound前。確保該類在類路徑上。