HelloWorld example for Jerseyを実行しようとしていますが、失敗しています。これが私が試したことです。Google App EngineとJerseyを使用したJavaメソッドへのURLのマッピング
私はセットアップを持っている私の私は、このようなweb.xml
、
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
version="2.5">
<servlet>
<servlet-name>server</servlet-name>
<servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>com.sun.jersey.config.property.resourceConfigClass</param-name>
<param-value>com.sun.jersey.api.core.PackagesResourceConfig</param-value>
</init-param>
<init-param>
<param-name>com.sun.jersey.config.property.packages</param-name>
<param-value>com.service</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>server</servlet-name>
<url-pattern>/helloworld</url-pattern>
</servlet-mapping>
</web-app>
私はこのように私のサービスを設定している、
package com;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
@Path("/helloworld")
public class service {
@GET
@Produces("text/plain")
private String getString(){
return "hello";
}
}
私はセットアップを持っているこの
<?xml version="1.0" encoding="utf-8"?>
<appengine-web-app xmlns="http://appengine.google.com/ns/1.0">
<application>server</application>
<version>1</version>
</appengine-web-app>
ようappengine-web.xml
これらのライブラリを使用して
asm-3.3.1.jar
jersey-bundle-1.12.jar
jersey-core-1.12.jar
jersey-server-1.12.jar
ここhttp://screencast.com/t/oIYKMQw1x
問題のビデオの任意のアイデアは、私が間違ってやっているのですの?
ありがとうございます!
スタックトレース
2012年4月23日午前12時19分27秒AM com.sun.jersey.server.impl.application.RootResourceUriRules SEVERE :ResourceConfigのインスタンスは、任意のルートリソース クラスが含まれていません。 2012年4月23日12:19:27 AM com.google.appengine.tools.development.ApiProxyLocalImplログSEVERE: javax.servlet.ServletContextログ:利用不可 com.sun.jersey.api.container.ContainerException:ResourceConfig インスタンスにルートリソースクラスが含まれていません。 com.sun.jersey.server.impl.application.RootResourceUriRules。(RootResourceUriRules.java:99) でcom.sun.jersey.server.impl.application.WebApplicationImpl._initiate(WebApplicationImpl.java:1308)で で com.sun.jersey.server.impl.application.WebApplicationImpl.access $ 700(WebApplicationImpl.java:171) ( )com.sun.jersey.server.impl.application.WebApplicationImpl $ 13.f(WebApplicationImpl.java:777) com.sun.jersey.spi.inject.Errors.processWithErrors(Errors.java:193) で com.sun.jersey.server.impl.application.WebApplicationImpl $ 13.f(WebApplicationImpl.java:773) で com.sun.jersey.ser com.sun.jerseyでver.impl.application.WebApplicationImpl.initiate(WebApplicationImpl.java:773) でcom.sun.jersey.server.impl.application.WebApplicationImpl.initiate(WebApplicationImpl.java:768) 。 はcom.sunで com.sun.jersey.spi.container.servlet.ServletContainer $ InternalWebComponent.initiate(ServletContainer.java:318) でspi.container.servlet.ServletContainer.initiate(ServletContainer.java:488) 。 com.sun.jersey.spi.container.servlet.WebComponent.init(WebComponent.java:208) はcom.sunで でjersey.spi.container.servlet.WebComponent.load(WebComponent.java:607) 。 jersey.spi.container.servlet.ServletContainer.init(Se rvletContainer。Javaの:373) javax.servlet.GenericServlet.initで com.sun.jersey.spi.container.servlet.ServletContainer.init(ServletContainer.java:556) (GenericServlet.java:212)で org.mortbayで org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycleで.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:440) でorg.mortbay.jetty.servlet.ServletHolder.doStart(ServletHolder.java:263) .java:50) org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:685で)org.mortbay.jetty.servlet.Context.startContext(Context.java:140) で におけるORG .mortbay.jetty.webapp.WebAppCont ext.startContext(WebAppContext.java:1250) でorg.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:517) org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.javaで: 467) でorg.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130) org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50) でorg.mortbay.componentで.AbstractLifeCycle.start(AbstractLifeCycle.java:50) at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130) at org.mortbay.jetty.Server.doStart(Server.java:224) com.google.appengine.toolsにorg.mortbay.component.AbstractLifeCycle.start com.google.appengine.tools.development.JettyContainerService.startContainer(JettyContainerService.java:196)で(AbstractLifeCycle.java:50) com.google.appengine.tools.development.DevAppServerMainで.development.AbstractContainerService.startup com.google.appengine.tools.development.DevAppServerImpl.start(DevAppServerImpl.java:146)で(AbstractContainerService.java:239) $ StartAction.apply(DevAppServerMain.java:189) at com.google.appengine.tools.util.Parser $ ParseResult.applyArgs(Parser.java:48) at com.google.appengine.tools。 development.DevAppServerMain。(DevAppServerMain.java:128) でcom.google.appengine.tools.development.DevAppServerMain.main(DevAppServerMain.java:104)
私はそこにいました - Restletはあまりにも複雑で不透明です。 RESTeasyまたはJerseyを使用することをお勧めします。 http://stackoverflow.com/questions/1710199/which-is-the-best-java-rest-api-restlet-or-jersey –
@PeterKnegoありがとう、私はそのショットを与えます – sissonb
@ PeterKnegoまだ運がありません。私はこの問題に関する多くの情報を追加しました。 – sissonb