繁体   English   中英

在Google App Engine上使用Spring Webflow的InvalidClassException

[英]InvalidClassException with spring webflow on google app engine

我是Google App Engine的新手,我正尝试在Google App Engine中部署带有Spring Web Flow的Spring应用程序。 我的应用程序在具有应用程序引擎开发环境的localhost中工作。 但是,当我使用App Engine部署应用程序时,出现以下错误消息。

感谢有人可以建议解决此问题。

javax.servlet.ServletException: java.lang.RuntimeException: java.io.InvalidClassException: org.springframework.webflow.conversation.impl.ConversationContainer; local class incompatible: stream classdesc serialVersionUID = -612159325924033885, local class serialVersionUID = 5598780395474023335

我已经尝试寻找答案,但到目前为止我还无法解决此问题。

以下是我目前在WEB-INF / lib中的jar文件。

all-themes-1.0.10.jar
appengine-api-1.0-sdk-1.8.9.jar
appengine-api-labs.jar
appengine-endpoints-deps.jar
appengine-endpoints.jar
appengine-jsr107cache-1.8.9.jar
commons-logging-1.1.1.jar
el-ri-1.0.jar
jsf-api-2.1.26.jar
jsf-impl-2.1.26.jar
jsr107cache-1.1.jar
primefaces-4.0.jar
spring-aop-3.2.6.RELEASE.jar
spring-beans-3.2.6.RELEASE.jar
spring-binding-2.3.2.RELEASE.jar
spring-context-3.2.6.RELEASE.jar
spring-core-3.2.6.RELEASE.jar
spring-expression-3.2.6.RELEASE.jar
spring-faces-2.3.2.RELEASE.jar
spring-js-2.3.2.RELEASE.jar
spring-web-3.2.6.RELEASE.jar
spring-webflow-2.3.1.RELEASE.jar
spring-webflow-2.3.2.RELEASE.jar
spring-webmvc-3.2.6.RELEASE.jar

Ive还尝试将最新的jar文件用于webflow和spring,但似乎没什么用。

错误信息:

javax.servlet.ServletException: java.lang.RuntimeException: java.io.InvalidClassException: org.springframework.webflow.conversation.impl.ConversationContainer; local class incompatible: stream classdesc serialVersionUID = -612159325924033885, local class serialVersionUID = 5598780395474023335
at com.google.apphosting.runtime.jetty.AppVersionHandlerMap.handle(AppVersionHandlerMap.java:268)
at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
at org.mortbay.jetty.Server.handle(Server.java:326)
at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:923)
at com.google.apphosting.runtime.jetty.RpcRequestParser.parseAvailable(RpcRequestParser.java:76)
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
at com.google.apphosting.runtime.jetty.JettyServletEngineAdapter.serviceRequest(JettyServletEngineAdapter.java:146)
at com.google.apphosting.runtime.JavaRuntime$RequestRunnable.run(JavaRuntime.java:446)
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:188)
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:251)
at java.lang.Thread.run(Thread.java:724)
Caused by: java.lang.RuntimeException: java.io.InvalidClassException: org.springframework.webflow.conversation.impl.ConversationContainer; local class incompatible: stream classdesc serialVersionUID = -612159325924033885, local class serialVersionUID = 5598780395474023335
at com.google.apphosting.runtime.SessionManagerUtil.deserialize(SessionManagerUtil.java:57)
at com.google.apphosting.runtime.jetty.DatastoreSessionStore.createSessionFromEntity(DatastoreSessionStore.java:58)
at com.google.apphosting.runtime.jetty.DatastoreSessionStore.getSession(DatastoreSessionStore.java:84)
at com.google.apphosting.runtime.jetty.SessionManager.loadSession(SessionManager.java:327)
at com.google.apphosting.runtime.jetty.SessionManager.getSession(SessionManager.java:301)
at org.mortbay.jetty.servlet.AbstractSessionManager.getHttpSession(AbstractSessionManager.java:237)
at org.mortbay.jetty.servlet.SessionHandler.setRequestedId(SessionHandler.java:246)
at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:136)
at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418)
at com.google.apphosting.runtime.jetty.AppVersionHandlerMap.handle(AppVersionHandlerMap.java:266)
... 16 more
Caused by: java.io.InvalidClassException: org.springframework.webflow.conversation.impl.ConversationContainer; local class incompatible: stream classdesc serialVersionUID = -612159325924033885, local class serialVersionUID = 5598780395474023335
at java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:592)
at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1649)
at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1562)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1798)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1395)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:396)
at java.util.HashMap.readObject(HashMap.java:1043)
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:606)
at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1004)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1914)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1819)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1395)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:396)
at com.google.apphosting.runtime.SessionManagerUtil.deserialize(SessionManagerUtil.java:55)
... 26 more

实时App Engine应用程序中已经存在的会话对象可能会出现问题。 似乎在那上面创建了多个类型为ConversationContainer的对象,您随后链接的JAR在序列化UID方面存在一些差异,这引起了问题。

您将要尝试这些方法,然后看看哪种方法可行:

  • 如果可能,请确保用于您的类的先前序列化UID是相同的。 我相信将它们留空也可以。

  • 查看您App Engine实例中的会话数据存储区,看看是否有可能将其与保存该类型对象的MemCache条目一起清除。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM