在GAE上使用基本JAXRS + JPA版本的问题

时间:2012-11-21 18:43:39

标签: google-app-engine

使用Eclipse Juno Service Release 1,我创建了一个Google App Engine项目,然后手动将JAX-RS和JAXB jar文件复制到war / WEB-INF / lib中(因为试图在''中添加JAX-RS' Project Facets的属性导致错误 - 即由于JAR已经包含在GAE项目中,因此需要安装我认为的动态Web模块?

当我在本地运行时,项目启动正常,我可以导航到我的虚拟休息服务,一切正常。

当我查看GAE上部署的版本时,它会在日志文件中产生以下堆栈跟踪。

对于解决此问题的步骤提供任何帮助将不胜感激。

非常感谢! 罗布。

  

2012-11-21 10:35:56.687 / hillingargaeserver 500 2764ms 0kb Mozilla / 5.0   (Macintosh; Intel Mac OS X 10_8_2)AppleWebKit / 536.26.17(KHTML,如   Gecko)Version / 6.0.2 Safari / 536.26.17   87.194.162.20 - - [21 / Nov / 2012:10:3​​5:56 -0800]“GET / hillingargaeserver HTTP / 1.1”500 0   “http://hillingartimber.appspot.com/”“Mozilla / 5.0(Macintosh; Intel   Mac OS X 10_8_2)AppleWebKit / 536.26.17(KHTML,与Gecko一样)   版本/ 6.0.2 Safari / 536.26.17“”hillingartimber.appspot.com“ms = 2765   cpu_ms = 888 loading_request = 1   instance = 00c61b117cfb3272dbda34e1e6d6872973f98c34 C 2012-11-21   10:35:56.685来自servlet的未捕获异常   java.lang.IncompatibleClassChangeError:在。实现类   com.google.appengine.runtime.Request.process-ca8643ac95d7d414(Request.java)     at java.lang.ClassLoader.defineClass1(Native Method)at   java.lang.ClassLoader.defineClass(ClassLoader.java:634)at   java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)     在java.net.URLClassLoader.defineClass(URLClassLoader.java:277)at   sun.reflect.GeneratedMethodAccessor5.invoke(未知来源)at   sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)     在java.lang.reflect.Method.invoke(Method.java:616)at   java.lang.ClassLoader.loadClass(ClassLoader.java:266)at   com.sun.jersey.api.core.ScanningResourceConfig.init(ScanningResourceConfig.java:79)     在   com.sun.jersey.api.core.PackagesResourceConfig.init(PackagesResourceConfig.java:104)     在   com.sun.jersey.api.core.PackagesResourceConfig。(PackagesResourceConfig.java:78)     在   com.sun.jersey.api.core.PackagesResourceConfig。(PackagesResourceConfig.java:89)     在   com.sun.jersey.spi.container.servlet.WebComponent.createResourceConfig(WebComponent.java:700)     在   com.sun.jersey.spi.container.servlet.WebComponent.createResourceConfig(WebComponent.java:678)     在   com.sun.jersey.spi.container.servlet.WebComponent.init(WebComponent.java:203)     在   com.sun.jersey.spi.container.servlet.ServletContainer.init(ServletContainer.java:374)     在   com.sun.jersey.spi.container.servlet.ServletContainer.init(ServletContainer.java:557)     在javax.servlet.GenericServlet.init(GenericServlet.java:212)at   org.mortbay.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:440)     在   org.mortbay.jetty.servlet.ServletHolder.doStart(ServletHolder.java:263)     在   org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)     在   org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:685)     在org.mortbay.jetty.servlet.Context.startContext(Context.java:140)     在   org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1250)     在   org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:517)     在   org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:467)     在   org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)     在   com.google.tracing.TraceContext $ TraceContextRunnable.runInContext(TraceContext.java:454)     在   com.google.tracing.TraceContext $ TraceContextRunnable $ 1.run(TraceContext.java:461)     在   com.google.tracing.TraceContext.runInContext(TraceContext.java:703)     在   com.google.tracing.TraceContext $ AbstractTraceContextCallback.runInInheritedContextNoUnref(TraceContext.java:338)     在   com.google.tracing.TraceContext $ AbstractTraceContextCallback.runInInheritedContext(TraceContext.java:330)     在   com.google.tracing.TraceContext $ TraceContextRunnable.run(TraceContext.java:458)     在java.lang.Thread.run(Thread.java:679)

1 个答案:

答案 0 :(得分:0)

经过多次实验,我发现我需要添加所有JAX-RS Jar文件(在contrib文件夹中除外)和JAXB Jar文件(JavaDoc相关文件除外)。

我也改变了'Servlet'罐子在所有其他人之前。

一个好的提示,如果你将war文件复制到/ war / WEB-INF / lib文件夹中,你可以右键单击它们将它们添加到你的构建路径!! - 保存项目和WEB-INF文件夹中的副本。

罗布。