2011-11-25 187 views
3

所以我已经将我的应用程序部署到了GAE,但我得到的仅仅是一个简单的十字路口站点,在索引页面上有一个500错误。由于我根本就不是Java的专家,因此我需要一些解码错误日志的帮助。 你知道该怎么做才能使应用程序再次工作(它一直在工作)?Google App Engine 500错误

Failed startup of context [email protected]1370ce9{/,/base/data/home/apps/s~dobekologistics/3.354826916826026599} 
    org.mortbay.util.MultiException[java.lang.NoClassDefFoundError: Could not initialize class com.sun.xml.bind.v2.runtime.reflect.opt.Injector, java.lang.NoClassDefFoundError: Could not initialize class com.sun.xml.bind.v2.runtime.reflect.opt.Injector] 
     at org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:656) 
     at org.mortbay.jetty.servlet.Context.startContext(Context.java:140) 
     at org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1250) 
     at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:517) 
     at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:467) 
     at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50) 
     at com.google.apphosting.runtime.jetty.AppVersionHandlerMap.createHandler(AppVersionHandlerMap.java:202) 
     at com.google.apphosting.runtime.jetty.AppVersionHandlerMap.getHandler(AppVersionHandlerMap.java:171) 
     at com.google.apphosting.runtime.jetty.JettyServletEngineAdapter.serviceRequest(JettyServletEngineAdapter.java:123) 
     at com.google.apphosting.runtime.JavaRuntime$RequestRunnable.run(JavaRuntime.java:392) 
     at com.google.tracing.TraceContext$TraceContextRunnable.runInContext(TraceContext.java:449) 
     at com.google.tracing.TraceContext$TraceContextRunnable$1.run(TraceContext.java:455) 
     at com.google.tracing.TraceContext.runInContext(TraceContext.java:695) 
     at com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContextNoUnref(TraceContext.java:333) 
     at com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContext(TraceContext.java:325) 
     at com.google.tracing.TraceContext$TraceContextRunnable.run(TraceContext.java:453) 
     at com.google.apphosting.runtime.ThreadGroupPool$PoolEntry.run(ThreadGroupPool.java:162) 
     at java.lang.Thread.run(Thread.java:679) 
    java.lang.NoClassDefFoundError: Could not initialize class com.sun.xml.bind.v2.runtime.reflect.opt.Injector 
     at com.sun.xml.bind.v2.runtime.reflect.opt.AccessorInjector.prepare(AccessorInjector.java:79) 
     at com.sun.xml.bind.v2.runtime.reflect.opt.OptimizedAccessorFactory.get(OptimizedAccessorFactory.java:165) 
     at com.sun.xml.bind.v2.runtime.reflect.Accessor$FieldReflection.optimize(Accessor.java:256) 
     at com.sun.xml.bind.v2.runtime.property.ArrayProperty.<init>(ArrayProperty.java:65) 
     at com.sun.xml.bind.v2.runtime.property.ArrayERProperty.<init>(ArrayERProperty.java:84) 
     at com.sun.xml.bind.v2.runtime.property.ArrayElementProperty.<init>(ArrayElementProperty.java:96) 
     at com.sun.xml.bind.v2.runtime.property.ArrayElementNodeProperty.<init>(ArrayElementNodeProperty.java:58) 
     at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
     at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) 
     at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 
     at java.lang.reflect.Constructor.newInstance(Constructor.java:33) 
     at com.sun.xml.bind.v2.runtime.property.PropertyFactory.create(PropertyFactory.java:124) 
     at com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.<init>(ClassBeanInfoImpl.java:179) 
     at com.sun.xml.bind.v2.runtime.JAXBContextImpl.getOrCreate(JAXBContextImpl.java:515) 
     at com.sun.xml.bind.v2.runtime.JAXBContextImpl.<init>(JAXBContextImpl.java:330) 
     at com.sun.xml.bind.v2.runtime.JAXBContextImpl$JAXBContextBuilder.build(JAXBContextImpl.java:1140) 
     at com.sun.xml.bind.v2.ContextFactory.createContext(ContextFactory.java:154) 
     at com.sun.xml.bind.v2.ContextFactory.createContext(ContextFactory.java:121) 
     at com.sun.xml.bind.v2.ContextFactory.createContext(ContextFactory.java:202) 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
     at java.lang.reflect.Method.invoke(Method.java:616) 
     at javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:159) 
     at javax.xml.bind.ContextFinder.find(ContextFinder.java:311) 
     at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:392) 
     at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:357) 
     at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:264) 
     at com.sun.jersey.server.impl.wadl.WadlApplicationContextImpl.<init>(WadlApplicationContextImpl.java:66) 
     at com.sun.jersey.server.impl.wadl.WadlFactory.init(WadlFactory.java:94) 
     at com.sun.jersey.server.impl.application.WebApplicationImpl.initWadl(WebApplicationImpl.java:1207) 
     at com.sun.jersey.server.impl.application.WebApplicationImpl.processRootResources(WebApplicationImpl.java:1106) 
     at com.sun.jersey.server.impl.application.WebApplicationImpl.initiate(WebApplicationImpl.java:912) 
     at com.sun.jersey.server.impl.application.WebApplicationImpl.initiate(WebApplicationImpl.java:589) 
     at com.sun.jersey.spi.container.servlet.ServletContainer.initiate(ServletContainer.java:403) 
     at com.sun.jersey.spi.container.servlet.ServletContainer$InternalWebComponent.initiate(ServletContainer.java:252) 
     at com.sun.jersey.spi.container.servlet.WebComponent.load(WebComponent.java:550) 
     at com.sun.jersey.spi.container.servlet.WebComponent.init(WebComponent.java:201) 
     at com.sun.jersey.spi.container.servlet.ServletContainer.init(ServletContainer.java:307) 
     at com.sun.jersey.spi.container.servlet.ServletContainer.init(ServletContainer.java:470) 
     at javax.servlet.GenericServlet.init(GenericServlet.java:212) 
     at org.mortbay.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:440) 
     at org.mortbay.jetty.servlet.ServletHolder.doStart(ServletHolder.java:263) 
     at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50) 
     at org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:685) 
     at org.mortbay.jetty.servlet.Context.startContext(Context.java:140) 
     at org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1250) 
     at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:517) 
     at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:467) 
     at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50) 
     at com.google.tracing.TraceContext$TraceContextRunnable.runInContext(TraceContext.java:449) 
     at com.google.tracing.TraceContext$TraceContextRunnable$1.run(TraceContext.java:455) 
     at com.google.tracing.TraceContext.runInContext(TraceContext.java:695) 
     at com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContextNoUnref(TraceContext.java:333) 
     at com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContext(TraceContext.java:325) 
     at com.google.tracing.TraceContext$TraceContextRunnable.run(TraceContext.java:453) 
     at java.lang.Thread.run(Thread.java:679) 
    java.lang.NoClassDefFoundError: Could not initialize class com.sun.xml.bind.v2.runtime.reflect.opt.Injector 
     at com.sun.xml.bind.v2.runtime.reflect.opt.AccessorInjector.prepare(AccessorInjector.java:79) 
     at com.sun.xml.bind.v2.runtime.reflect.opt.OptimizedAccessorFactory.get(OptimizedAccessorFactory.java:165) 
     at com.sun.xml.bind.v2.runtime.reflect.Accessor$FieldReflection.optimize(Accessor.java:256) 
     at com.sun.xml.bind.v2.runtime.property.ArrayProperty.<init>(ArrayProperty.java:65) 
     at com.sun.xml.bind.v2.runtime.property.ArrayERProperty.<init>(ArrayERProperty.java:84) 
     at com.sun.xml.bind.v2.runtime.property.ArrayElementProperty.<init>(ArrayElementProperty.java:96) 
     at com.sun.xml.bind.v2.runtime.property.ArrayElementNodeProperty.<init>(ArrayElementNodeProperty.java:58) 
     at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
     at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) 
     at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 
     at java.lang.reflect.Constructor.newInstance(Constructor.java:33) 
     at com.sun.xml.bind.v2.runtime.property.PropertyFactory.create(PropertyFactory.java:124) 
     at com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.<init>(ClassBeanInfoImpl.java:179) 
     at com.sun.xml.bind.v2.runtime.JAXBContextImpl.getOrCreate(JAXBContextImpl.java:515) 
     at com.sun.xml.bind.v2.runtime.JAXBContextImpl.<init>(JAXBContextImpl.java:330) 
     at com.sun.xml.bind.v2.runtime.JAXBContextImpl$JAXBContextBuilder.build(JAXBContextImpl.java:1140) 
     at com.sun.xml.bind.v2.ContextFactory.createContext(ContextFactory.java:154) 
     at com.sun.xml.bind.v2.ContextFactory.createContext(ContextFactory.java:121) 
     at com.sun.xml.bind.v2.ContextFactory.createContext(ContextFactory.java:202) 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
     at java.lang.reflect.Method.invoke(Method.java:616) 
     at javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:159) 
     at javax.xml.bind.ContextFinder.find(ContextFinder.java:311) 
     at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:392) 
     at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:357) 
     at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:264) 
     at com.sun.jersey.server.impl.wadl.WadlApplicationContextImpl.<init>(WadlApplicationContextImpl.java:66) 
     at com.sun.jersey.server.impl.wadl.WadlFactory.init(WadlFactory.java:94) 
     at com.sun.jersey.server.impl.application.WebApplicationImpl.initWadl(WebApplicationImpl.java:1207) 
     at com.sun.jersey.server.impl.application.WebApplicationImpl.processRootResources(WebApplicationImpl.java:1106) 
     at com.sun.jersey.server.impl.application.WebApplicationImpl.initiate(WebApplicationImpl.java:912) 
     at com.sun.jersey.server.impl.application.WebApplicationImpl.initiate(WebApplicationImpl.java:589) 
     at com.sun.jersey.spi.container.servlet.ServletContainer.initiate(ServletContainer.java:403) 
     at com.sun.jersey.spi.container.servlet.ServletContainer$InternalWebComponent.initiate(ServletContainer.java:252) 
     at com.sun.jersey.spi.container.servlet.WebComponent.load(WebComponent.java:550) 
     at com.sun.jersey.spi.container.servlet.WebComponent.init(WebComponent.java:201) 
     at com.sun.jersey.spi.container.servlet.ServletContainer.init(ServletContainer.java:307) 
     at com.sun.jersey.spi.container.servlet.ServletContainer.init(ServletContainer.java:470) 
     at javax.servlet.GenericServlet.init(GenericServlet.java:212) 
     at org.mortbay.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:440) 
     at org.mortbay.jetty.servlet.ServletHolder.doStart(ServletHolder.java:263) 
     at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50) 
     at org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:685) 
     at org.mortbay.jetty.servlet.Context.startContext(Context.java:140) 
     at org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1250) 
     at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:517) 
     at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:467) 
     at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50) 
     at com.google.tracing.TraceContext$TraceContextRunnable.runInContext(TraceContext.java:449) 
     at com.google.tracing.TraceContext$TraceContextRunnable$1.run(TraceContext.java:455) 
     at com.google.tracing.TraceContext.runInContext(TraceContext.java:695) 
     at com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContextNoUnref(TraceContext.java:333) 
     at com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContext(TraceContext.java:325) 
     at com.google.tracing.TraceContext$TraceContextRunnable.run(TraceContext.java:453) 
     at java.lang.Thread.run(Thread.java:679) 

    Uncaught exception from servlet 
    javax.servlet.UnavailableException: Initialization failed. 
     at com.google.apphosting.runtime.jetty.AppVersionHandlerMap.createHandler(AppVersionHandlerMap.java:211) 
     at com.google.apphosting.runtime.jetty.AppVersionHandlerMap.getHandler(AppVersionHandlerMap.java:171) 
     at com.google.apphosting.runtime.jetty.JettyServletEngineAdapter.serviceRequest(JettyServletEngineAdapter.java:123) 
     at com.google.apphosting.runtime.JavaRuntime$RequestRunnable.run(JavaRuntime.java:392) 
     at com.google.tracing.TraceContext$TraceContextRunnable.runInContext(TraceContext.java:449) 
     at com.google.tracing.TraceContext$TraceContextRunnable$1.run(TraceContext.java:455) 
     at com.google.tracing.TraceContext.runInContext(TraceContext.java:695) 
     at com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContextNoUnref(TraceContext.java:333) 
     at com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContext(TraceContext.java:325) 
     at com.google.tracing.TraceContext$TraceContextRunnable.run(TraceContext.java:453) 
     at com.google.apphosting.runtime.ThreadGroupPool$PoolEntry.run(ThreadGroupPool.java:162) 
     at java.lang.Thread.run(Thread.java:679) 

回答

0

这是告诉你,Jetty是失败的,因为有些应用程序正在使用的东西静态初始化期间发生异常。这导致后续类加载​​3210的失败。

不幸的是,这些消息中没有显示问题的根本原因。

您需要检查日志文件以查找触发这些问题的静态初始化问题(可能含有堆栈跟踪)。

+0

可惜的是,这是所有在GAE日志:/ – Elwhis

1

我发现有人发布了similar problem,因为我也有同样的问题。

他的解决办法,我引述如下:

我只是打了一下周围,似乎这个问题是JAXB的IMPL (组com.sun.xml.bind)。 版本2.1.12作品(是啊!),版本2.2.4(最新)上 App Engine的生产不起作用

+0

非常感谢你离职后的工作后3天内解决我的问题。我目前正在使用声明API。默认情况下,字正腔圆1.25不使用JAXB 2.1.12,所以我得到了同样的错误......通过重写我的pom.xml \t \t \t \t \t com.sun.xml.bind \t \t \t jaxb- IMPL \t \t \t 2.1.12 \t \t我得到它的工作! –

1

我有类似的堆栈跟踪,但做了一些研究之后,我意识到进样器是通过jersey-json项目的Maven传递依赖项包含在我的项目中的jaxb-impl库中。我排除了jaxb-impl库,重建并重新部署了该问题。 JAXB由JDK6提供,因此您可能遇到同样的问题。

<dependency> 
<groupId>com.sun.jersey</groupId> 
    <artifactId>jersey-json</artifactId> 
    <version>1.11</version> 
    <scope>runtime</scope> 
    <exclusions> 
    <exclusion> 
     <groupId>com.sun.xml.bind</groupId> 
     <artifactId>jaxb-impl</artifactId> 
    </exclusion> 
</exclusions> 
</dependency> 
3

我得到了同样的错误,它走了,当我在web.xml文件中禁用WADL(见的servlet类标签下的init-PARAM节)。日志暗示了这一点,在崩溃前您可以看到wadl参考。我做了这个改变并重新启动,它工作。

<servlet> 
    <servlet-name>jerseywebapp</servlet-name> 
    <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class> 
    <init-param> 
     <param-name>com.sun.jersey.config.feature.DisableWADL</param-name> 
     <param-value>true</param-value> 
    </init-param> 
+0

我不知道为什么,但这对我有效。男人我讨厌不知道为什么有些作品,但谢谢! :) – Siebe