2011-11-17 36 views
1

我在部署GAE應用程序時遇到以下錯誤。那會是什麼原因? 下面堆棧回溯。「從servlet中未捕獲的異常」,GAE部署錯誤

Uncaught exception from servlet 
    com.google.apphosting.runtime.HardDeadlineExceededError: This request (0000000000000000) started at 2011/11/17 04:12:01.160 UTC and was still executing at 2011/11/17 04:13:01.204 UTC. 
     at com.google.appengine.runtime.Request.process-0000000000000000(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) 
     at java.net.URLClassLoader.defineClass(URLClassLoader.java:277) 
     at sun.reflect.GeneratedMethodAccessor5.invoke(Unknown Source) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
     at java.lang.reflect.Method.invoke(Method.java:616) 
     at java.lang.ClassLoader.loadClass(ClassLoader.java:266) 
     at org.springframework.expression.spel.standard.SpelExpressionParser.doParseExpression(SpelExpressionParser.java:56) 
     at org.springframework.expression.spel.standard.SpelExpressionParser.doParseExpression(SpelExpressionParser.java:1) 
     at org.springframework.expression.common.TemplateAwareExpressionParser.parseExpression(TemplateAwareExpressionParser.java:66) 
     at org.springframework.expression.common.TemplateAwareExpressionParser.parseExpression(TemplateAwareExpressionParser.java:56) 
     at org.springframework.security.web.access.expression.ExpressionBasedFilterInvocationSecurityMetadataSource.processMap(ExpressionBasedFilterInvocationSecurityMetadataSource.java:47) 
     at org.springframework.security.web.access.expression.ExpressionBasedFilterInvocationSecurityMetadataSource.<init>(ExpressionBasedFilterInvocationSecurityMetadataSource.java:29) 
     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 org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:126) 
     at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:108) 
     at org.springframework.beans.factory.support.ConstructorResolver$1.run(ConstructorResolver.java:274) 
     at java.security.AccessController.doPrivileged(Native Method) 
     at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:272) 
     at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1003) 
     at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:907) 
     at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:485) 
     at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456) 
     at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveInnerBean(BeanDefinitionValueResolver.java:270) 
     at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:125) 
     at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1325) 
     at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1086) 
     at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:517) 
     at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456) 
     at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:291) 
     at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) 
     at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:288) 
     at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:190) 
     at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:580) 
     at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:895) 
     at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:425) 
     at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:276) 
     at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:197) 
     at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:47) 
     at org.mortbay.jetty.handler.ContextHandler.startContext(ContextHandler.java:548) 
     at org.mortbay.jetty.servlet.Context.startContext(Context.java:136) 
     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) 

有如下解釋:

這個請求引起了新的工藝,爲您的應用程序被啓動,並由此導致加載首次應用程序代碼。因此這個請求可能需要更長的時間,並且比使用應用程序的典型請求使用更多的CPU

處理此請求的進程遇到嚴重問題,導致它退出。這很可能會導致下一個請求應用程序使用新的進程。如果您經常看到此消息,則可能在應用程序初始化期間拋出異常。 (錯誤代碼104)

回答

0

最後,我們通過從hibernate配置中刪除<prop key="hibernate.hbm2ddl.auto">update</prop>來排序問題,該配置用於在創建SessionFactory時自動將模式DDL導出到數據庫。

1

正如它在堆棧跟蹤說:

HardDeadlineExceededError: This request (0000000000000000) started at 2011/11/17 04:12:01.160 UTC and was still executing at 2011/11/17 04:13:01.204 UTC. 

前端請求App引擎應用必須在60秒內完成。如果您的請求花費的時間比它長,它將被終止。如果你需要做很多工作,你應該在Task Queue上完成。

+0

謝謝,但我怎麼能在任務隊列上做到這一點?任何鏈接? – NaaN

+0

App Engine文檔相當全面。 http://code.google.com/appengine/docs/java/taskqueue/ –

0

您需要優化您的應用程序以進行快速設置。例如:

  • 使用輕型框架
  • 減少了框架設置類掃描(發現)中的ServletContextListener#
  • 最大限度地減少操作contextInitialized

沒有爲GAE應用程序的優化很長的路要走,祝你好運;-)

相關問題