2014-01-21 4 views
0

Я новичок в движке Google, и я пытаюсь развернуть весеннее приложение с весенним потоком в движке Google. Мое приложение работает в localhost с средой разработки движка приложения. Однако, когда я развертываю приложение с движком приложения, я получаю следующее сообщение об ошибке.InvalidClassException с весенним webflow на движке google

Цените, если кто-то может посоветовать решить эту проблему.

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 

Я попытался найти ответ, и до сих пор я не смог исправить эту проблему.

Ниже приведены файлы jar, которые у меня есть в WEB-INF/lib.

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 и весны, но ничего не похоже на тренировку.

Сообщение об ошибке:

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 

ответ

0

Проблема, скорее всего, с сессионных объектов, которые уже существуют в вашем живом приложении App Engine. Кажется, что существует несколько объектов, созданных там типа ConversationContainer, и JAR, которые вы впоследствии связали, содержат некоторые отличия в терминах UID Serialization, что вызывает проблему.

Выбора, прежде чем вы бы попробовать эти методы и посмотреть, что один работает:

  • Если возможно, убедитесь, что предыдущие сериализации UID используется для классов то же самое. Я считаю, что оставлять их пустыми тоже могут работать.

  • Посмотрите на хранилище данных сеансов в вашем экземпляре App Engine, посмотрите, можно ли очистить его вместе с возможными записями MemCache, которые содержат объекты этого типа.

+1

Thanks Romin. Я использовал eclipse для восстановления serialVersionUID. Я больше не вижу сообщение об ошибке. – rukshan

Смежные вопросы