使用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:35: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)
答案 0 :(得分:0)
经过多次实验,我发现我需要添加所有JAX-RS Jar文件(在contrib文件夹中除外)和JAXB Jar文件(JavaDoc相关文件除外)。
我也改变了'Servlet'罐子在所有其他人之前。
一个好的提示,如果你将war文件复制到/ war / WEB-INF / lib文件夹中,你可以右键单击它们将它们添加到你的构建路径!! - 保存项目和WEB-INF文件夹中的副本。
罗布。