2011-07-07 9 views
2

私はブラウザ上で私のJavaのREST WSを実行しようとしたとき、私は、次のエラーを取得しています:Rest WSを実行するには?

HTTPステータス500 -


タイプ例外レポート

メッセージ

説明サーバーこのリクエストを実行できない内部エラー()が発生しました。

例外

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:293) 
    org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849) 
    org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583) 
    org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454) 
java.lang.Thread.run(Unknown Source) 

根本原因

com.sun.jersey.api.container.ContainerException: The ResourceConfig instance does not contain any root resource classes. 
com.sun.jersey.server.impl.application.RootResourceUriRules.<init>(RootResourceUriRules.java:99) 
com.sun.jersey.server.impl.application.WebApplicationImpl._initiate(WebApplicationImpl.java:1298) 
com.sun.jersey.server.impl.application.WebApplicationImpl.access$700(WebApplicationImpl.java:169) 
com.sun.jersey.server.impl.application.WebApplicationImpl$13.f(WebApplicationImpl.java:775) 
com.sun.jersey.server.impl.application.WebApplicationImpl$13.f(WebApplicationImpl.java:771) 
com.sun.jersey.spi.inject.Errors.processWithErrors(Errors.java:193) 
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:293) 
    org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849) 
    org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583) 
    org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454) 
java.lang.Thread.run(Unknown Source) 

ノート根本原因の完全なスタックトレースは、Apache Tomcatの/ 6.0.20ログで利用可能です。


のApache Tomcat/6.0.20

私は問題が何であるかを知ってくださいしてみましょうか?

同じサーブレットを作成する必要がありますか?

次のように私のJavaクラスは次のとおりです。

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


//POJO, no interface no extends 

//The class registers its methods for the HTTP GET request using the @GET annotation. 
//Using the @Produces annotation, it defines that it can deliver several MIME types, 
//text, XML and HTML. 

//The browser requests per default the HTML MIME type. 

//Sets the path to base URL + /hello 
@Path("/hello") 

public class Welcome { 
    // This method is called if TEXT_PLAIN is request 
    @GET 
    @Produces(MediaType.TEXT_PLAIN) 
    public String sayPlainTextHello() { 
     return "Hello Jersey"; 
    } 

    // This method is called if XML is request 
    @GET 
    @Produces(MediaType.TEXT_XML) 
    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> "; 
    } 

} 

とweb.xml:


http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd "ID =" WebApp_ID」バージョン= "2.5">
ハロー

index.htmlを


ジャージーRESTサービス
com.sun.jersey.spi.container.servlet.ServletContainer

<init-param> 
    <param-name>com.sun.jersey.config.property.packages</param-name> 
    <param-value>Hello</param-value> 
</init-param> 

<load-on-startup>1</load-on-startup> 


ジャージーRESTサービス
/休憩/ *

答えて

3

私はweb.xmlに以下の変更を行い、問題が解決しました:

<init-param> 
     <param-name>com.sun.jersey.config.property.packages</param-name> 
     <param-value>**myPkgName**</param-value> 
    </init-param> 

よろしく、
スネハ

関連する問題