2015-10-13 145 views
0

我想部署一個使用Spring安全應用引擎的應用的Spring MVC。這在當地使用jetty dev服務器很好。應用引擎部署與春天MVC

我使用的版本Spring框架的4.1.6,春季安全4.0.2和應用程序引擎SDK的27年9月1日。我在我的日誌得到的錯誤是:

Uncaught exception from servlet 
javax.servlet.UnavailableException: org.springframework.beans.factory.BeanDefinitionStoreException: Failed to read candidate component class: file [/Application.class]; nested exception is java.lang.ExceptionInInitializerError 
    at org.mortbay.jetty.servlet.ServletHolder.makeUnavailable(ServletHolder.java:415) 
    at org.mortbay.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:458) 
    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.apphosting.runtime.jetty.AppVersionHandlerMap.createHandler(AppVersionHandlerMap.java:206) 
    at com.google.apphosting.runtime.jetty.AppVersionHandlerMap.getHandler(AppVersionHandlerMap.java:179) 
    at com.google.apphosting.runtime.jetty.JettyServletEngineAdapter.serviceRequest(JettyServletEngineAdapter.java:135) 
    at com.google.apphosting.runtime.JavaRuntime$RequestRunnable.run(JavaRuntime.java:457) 
    at com.google.tracing.TraceContext$TraceContextRunnable.runInContext(TraceContext.java:437) 
    at com.google.tracing.TraceContext$TraceContextRunnable$1.run(TraceContext.java:444) 
    at com.google.tracing.CurrentContext.runInContext(CurrentContext.java:230) 
    at com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContextNoUnref(TraceContext.java:308) 
    at com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContext(TraceContext.java:300) 
    at com.google.tracing.TraceContext$TraceContextRunnable.run(TraceContext.java:441) 
    at com.google.apphosting.runtime.ThreadGroupPool$PoolEntry.run(ThreadGroupPool.java:235) 
    at java.lang.Thread.run(Thread.java:745) 

從我讀這與GAE不支持春天的某些版本,但我無法找出哪些版本均支持一個錯誤。我是否認爲它與版本有關,如果有的話,我需要哪些版本的這些框架?

謝謝

回答

0

不,肯定不是版本相關的問題。我使用更高版本的春季與GAE和沒有問題(我有4.1.6以及):

<appengine.target.version>1.9.27</appengine.target.version> 
<spring.version>4.2.1.RELEASE</spring.version> 
<spring.security.version>4.0.2.RELEASE</spring.security.version> 
<javax.servlet-api.version>2.5</javax.servlet-api.version> 

您可能會發現一些困難試圖遷移到春天4.2.1。該解決方案可以在這裏找到:

Spring 4.2.1 on GAE and java.util.ResourceBundle$Control is a restricted class

修訂

,可能是不同的在您的本地應用程序,GAE是Java中的東西(GAE使用Java7)和Servlet API,它必須是2 .x和將在生產中被替換。特別注意Servlet API,因爲web.xml的某些內容可能會有不同的解釋。

無論如何,請粘貼整個堆棧跟蹤,那麼它將更容易找到解決方案。

+0

感謝您的信息。更新的問題有整個堆棧跟蹤 – Fraser

0

我不確定是否應該關閉這個問題,但問題是與JMustache。看起來,人們不能通過GAE上的註釋啓用鬍鬚。我不完全清楚爲什麼這是,但豆需要在XML中設置。我還沒有這個工作,但問題不在於Spring MVC。