2011-11-25 185 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