2013-06-14 5 views
2

나는 최근에 this 튜토리얼을 따라 Jersey에서 시작했습니다.Jersey 기반의 안정된 서비스 프로젝트에서 HTTPstatus 500

다음
exception 

javax.servlet.ServletException: Servlet.init() for servlet Jersey REST Service threw exception 
    org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) 
    org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298) 
    org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:857) 
    org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588) 
    org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489) 
    java.lang.Thread.run(Unknown Source) 
root cause 

com.sun.jersey.spi.inject.Errors$ErrorMessagesException 
    com.sun.jersey.spi.inject.Errors.processErrorMessages(Errors.java:170) 
    com.sun.jersey.spi.inject.Errors.postProcess(Errors.java:136) 
    com.sun.jersey.spi.inject.Errors.processWithErrors(Errors.java:199) 
    com.sun.jersey.server.impl.application.WebApplicationImpl.initiate(WebApplicationImpl.java:771) 
    com.sun.jersey.server.impl.application.WebApplicationImpl.initiate(WebApplicationImpl.java:766) 
    com.sun.jersey.spi.container.servlet.ServletContainer.initiate(ServletContainer.java:488) 
    com.sun.jersey.spi.container.servlet.ServletContainer$InternalWebComponent.initiate(ServletContainer.java:318) 
    com.sun.jersey.spi.container.servlet.WebComponent.load(WebComponent.java:609) 
    com.sun.jersey.spi.container.servlet.WebComponent.init(WebComponent.java:210) 
    com.sun.jersey.spi.container.servlet.ServletContainer.init(ServletContainer.java:373) 
    com.sun.jersey.spi.container.servlet.ServletContainer.init(ServletContainer.java:556) 
    javax.servlet.GenericServlet.init(GenericServlet.java:212) 
    org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) 
    org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298) 
    org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:857) 
    org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588) 
    org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489) 
    java.lang.Thread.run(Unknown Source) 

는 아래에 다음과 같은 스택 추적과 Servlet.init() 예외 : 나는 지금 일이 내가 javax.servlet.ServletException을 얻고있다, 확실히 web.xml의 서비스/패키지 이름을 구성한 내 Jes.java 클래스 파일 :

:

package webb; 
import javax.ws.rs.GET; 
import javax.ws.rs.Path; 
import javax.ws.rs.Produces; 
import javax.ws.rs.core.MediaType; 

@Path("/Jes") 
public class Jes { 

     @GET 
     @Produces(MediaType.TEXT_PLAIN) 
     public String sayPlainTextHello() { 
      return "Hello Jersey"; 
      } 

     @GET 
     @Produces(MediaType.TEXT_PLAIN) 
     public String sayXMLHello() { 
      return "<?xml version=\"1.0\"?>" + "<hello> Hello Jersey" + "</hello>"; 
      } 

      // This method is called if HTML is request 
      @GET 
      @Produces(MediaType.TEXT_HTML) 
      public String sayHtmlHello() { 
      return "<html> " + "<title>" + "Hello Jersey" + "</title>" 
       + "<body><h1>" + "Hello Jersey" + "</body></h1>" + "</html> "; 
      } 

    public static void main(String[] args) { 
    } 

} 

그리고 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>webb</display-name> 
    <servlet> 
    <servlet-name>Jersey REST Service</servlet-name> 
    <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class> 
    <init-param> 
     <param-name>com.sun.jersey.config.property.packages</param-name> 
     <param-value>webb</param-value> 
    </init-param> 
    <load-on-startup>1</load-on-startup> 
    </servlet> 
    <servlet-mapping> 
    <servlet-name>Jersey REST Service</servlet-name> 
    <url-pattern>/rest/*</url-pattern> 
    </servlet-mapping> 
</web-app> 

내 응용 프로그램 설치 프로그램입니다3210

아파치 톰캣 6.0
뉴저지 코어-1.8.jar
뉴저지 - 번들-1.8.jar
ASM-3.1.jar
JRE7
윈도우 64 비트

-> 내가 아니다 이 com.sun.jersey.spi.inject.Errors $ ErrorMessagesException의 원인을 파악할 수 있으므로 유사한 문제와 관련된 대답을 환영합니다. 이 문제의

답변

2

확실하지, 모든 것은 OK 보이지만, 다음 매핑은 두 번 나타납니다

@GET 
    @Produces(MediaType.TEXT_PLAIN) 

귀하의 sayXMLHello()@Produces(MediaType.TEXT_XML) 대신

+0

덕분에 주석이되어야한다! 좋은 대답! 나를 위해 일했다! – Akina91

관련 문제