2012-08-30 2 views
3

이클립스에서 서블릿을 시작할 때 다음 오류가 발생합니다. Tomcat 7이며 서블릿은 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

먼저이 클래스가 실제로 존재하는지 확인하십시오. 클래스 이름과 패키지를 확인하십시오. 웹 프로젝트 또는 종속 프로젝트에 속해 있습니까?

모두 괜찮 으면 프로젝트를 새로 고친 다음 프로젝트/정리를 실행 한 다음 청소하고 다시 게시하십시오. 그것이 작동하지 않으면 서버를 다시 만듭니다 (나는 이클립스를 의미합니다). 그래도 작동하지 않으면 C:\beezer\WebServerWorkspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\BeezerServer\WEB-INF\classes으로 이동하십시오 (경로가 로그에서 가져온 것입니다). 클래스 파일이 있는지 확인하십시오.

행운을 빕니다 및

0

그것은에 의해 제공되어야한다 클래스 Servlet.java를 포함 C:\beezer\WebServerWorkspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\BeezerServer\WEB-INF\lib\geronimo-j2ee_1.4_spec-1.1.jar 제거하십시오 ... 이클립스에 톰캣의 플러그인의 버그에 대한 야간 전투를 보내는 사람들의 클럽에 오신 것을 환영합니다 AS 그 자체. Maven을 사용하는 경우 종속성을 제공된대로 표시하십시오 (<scope>provided</scope>)

Btw. jar 파일은 컴파일에 필요하지만 런타임에는 필요하지 않습니다.

EDIT : 오, 이제 알았습니다. 로그에는 INFO 만 있습니다. 문제의 근원이 아니기 때문에 근본 원인은 ClassNotFound입니다. 클래스가 클래스 경로에 있는지 확인하십시오.