kannengi
Elite Observer

InvalidClassException beim Client Start

Jump to solution

Hi Community,

in unserer lokalen Testinstallation von FS 5.1.109.63241 bekomme ich neuerdings eine Exception, wenn ich versuche, den Sitearchitect für ein bestimmtes Projekt zu öffnen:

Client Version: 5.1.109.63241
Java Version: 1.6.0_39 Sun Microsystems Inc.

FSVersion=5.1.109.63241#3209;JDK=1.6.0_39 32bit Sun Microsystems Inc.;OS=Windows 8 6.2 x86;Date=05.12.2014 14:19:47
de.espirit.firstspirit.common.IOError: Could not read remote objects! Method de.espirit.firstspirit.manager.ContentManager.executeQuery(de.espirit.firstspirit.io.ManagerCallSignature@9323a6bf{manager=de.espirit.firstspirit.manager.ContentManager, method=executeQuery, params=[class de.espirit.firstspirit.manager.SessionHandlerIdentifier, interface de.espirit.or.query.Select, long, class de.espirit.or.impl.SessionHandler$FetchType]}, [de.espirit.firstspirit.manager.SessionHandlerIdentifier@f298f{project-id=723011, schema-id=993518, current}, Entity type: staff, query time: -1, Constraint: COLUMN_EQUAL,fs_id=739584, -1, de.espirit.or.impl.SessionHandler$FetchType@132cb29{0,class de.espirit.or.impl.ResultWrapper}]) - java.io.InvalidClassException: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException; local class incompatible: stream classdesc serialVersionUID = -1480715968178308068, local class serialVersionUID = -5370488538538821022
     at de.espirit.firstspirit.client.io.HttpServerCaller.call(HttpServerCaller.java:375)
     at de.espirit.firstspirit.client.io.HttpServerCaller.call(HttpServerCaller.java:35)
     at de.espirit.firstspirit.client.io.ServerCaller.call(ServerCaller.java:233)
     at de.espirit.firstspirit.client.io.ServerCaller.doManagerCall(ServerCaller.java:388)
     at de.espirit.firstspirit.client.io.ServerCaller.callManager(ServerCaller.java:372)
     at de.espirit.firstspirit.io.DefaultClientHandler.callManager(DefaultClientHandler.java:55)
     at de.espirit.firstspirit.client.io.RemoteManagerCaller.invoke(RemoteManagerCaller.java:52)
     at de.espirit.firstspirit.server.$Proxy31.executeQuery(Unknown Source)
     at de.espirit.firstspirit.store.access.templatestore.SessionHandlerImpl.executeQuery(SessionHandlerImpl.java:86)
     at de.espirit.or.impl.AbstractSession.find(AbstractSession.java:142)
     at de.espirit.or.impl.SessionImpl.find(SessionImpl.java:26)
     at de.espirit.or.impl.AbstractSession.find(AbstractSession.java:233)
     at de.espirit.or.impl.SessionImpl.find(SessionImpl.java:26)
     at de.espirit.or.impl.AbstractSession.find(AbstractSession.java:66)
     at de.espirit.firstspirit.client.gui.tabbing.ElementTabConfigPersistence.getElement(ElementTabConfigPersistence.java:154)
     at de.espirit.firstspirit.client.ClientFrame$RestoreTabsStartupStep.run(ClientFrame.java:1196)
     at de.espirit.firstspirit.client.ClientFrame$StartupExecutor.run(ClientFrame.java:1473)
Caused by: java.io.InvalidClassException: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException; local class incompatible: stream classdesc serialVersionUID = -1480715968178308068, local class serialVersionUID = -5370488538538821022
     at java.io.ObjectStreamClass.initNonProxy(Unknown Source)
     at java.io.ObjectInputStream.readNonProxyDesc(Unknown Source)
     at java.io.ObjectInputStream.readClassDesc(Unknown Source)
     at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
     at java.io.ObjectInputStream.readObject0(Unknown Source)
     at java.io.ObjectInputStream.defaultReadFields(Unknown Source)
     at java.io.ObjectInputStream.readSerialData(Unknown Source)
     at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
     at java.io.ObjectInputStream.readObject0(Unknown Source)
     at java.io.ObjectInputStream.readObject(Unknown Source)
     at de.espirit.firstspirit.io.IOUtil.readObjects(IOUtil.java:275)
     at de.espirit.firstspirit.client.io.HttpServerCaller.call(HttpServerCaller.java:361)
     ... 16 more

Wie gesagt es passiert nur in einem bestimmten Projekt ("Globale Datenquellen").

Die Exception verhindert, dass sich der Client öffnet..

Kann mir jemand helfen?

Vielen Dank!

Gruß,

Benny

// re-lounge

0 Kudos
1 Solution

Accepted Solutions

Da passen wahrscheinlich Server- und Client-Jar nicht zusammen.

Peter

View solution in original post

0 Kudos
4 Replies
Peter_Jodeleit
Crownpeak employee

Das ursächliche Problem ist ein Fehler beim Zugriff auf eine MySQL-Datenbank auf dem Server ("com.mysql.jdbc.exceptions.jdbc4.CommunicationsException"). Diese Exception-Klasse ist auf dem Client in einer anderen Version vorhanden, daher kommte es dort dann zu dieser Exception:

java.io.InvalidClassException: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException; local class incompatible: stream classdesc serialVersionUID = -1480715968178308068, local class serialVersionUID = -5370488538538821022

Wieso die Klasse auf dem Client bereits vorliegt, und wieso diese nicht kompatibel ist, ist von außen schwer zu beurteilen. FirstSpirit selber bringt diese Klasse nicht mit.

Wenn die Datenbank außerhalb von FirstSpirit erreichbar ist, sollte als letzte Möglichkeit ein Neustart des FirstSpirit Servers helfen. Wenn das nicht möglich ist, bitte bei unserem Helpdesk nachfragen.

[EDIT]

Noch ein Nachtrag: Da es eine Testinstallation ist, ist vielleicht ein Update auf eine aktuelle FirstSpirit-Version möglich? Dann sollte auch die Fehlermeldung, die am Client angezeigt wird, aussagekräftiger sein.

Peter
0 Kudos

Vielen Dank für die schnelle Antwort Herr Jodeleit,

mir ist das auch nicht klar, warum diese Klasse im Client vorhanden ist.

Ich habe Ihren Tipp befolgt und versucht, unser Testsystem auf 3.1.311 upzugraden (fs-server.jar ausgetauscht).

Leider kein Glück, ich kann mich jetzt nicht mehr mit dem Server verbinden, folgender Error steht jetzt im server.log wenn ich mich versuche zu verbinden:

ERROR 05.12.2014 17:28:50.234 (de.espirit.firstspirit.server.CMSServer): uncaught exception in thread Thread[JettyManager.start,5,main] - java.lang.NoSuchMethodError: de.espirit.or.impl.connection.ConnectionManagerFactory.getConnectionManager(Ljava/lang/ClassLoader;Ljava/util/Map;)Lde/espirit/or/ConnectionManager;
FSVersion=5.1.311.65223#3209;JDK=1.6.0_30 64bit Sun Microsystems Inc.;OS=Windows Server 2008 R2 6.1 amd64;Date=05.12.2014 17:28:50
java.lang.NoSuchMethodError: de.espirit.or.impl.connection.ConnectionManagerFactory.getConnectionManager(Ljava/lang/ClassLoader;Ljava/util/Map;)Lde/espirit/or/ConnectionManager;
     at de.espirit.or.impl.web.SessionManagerImpl.createSessionHandler(SessionManagerImpl.java:136)
     at de.espirit.or.impl.web.SessionManagerImpl.register(SessionManagerImpl.java:90)
     at de.espirit.or.web.InitServlet.analyzeSchemataConfiguration(InitServlet.java:126)
     at de.espirit.or.web.InitServlet.init(InitServlet.java:85)
     at javax.servlet.GenericServlet.init(GenericServlet.java:244)
     at org.eclipse.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:492)
     at org.eclipse.jetty.servlet.ServletHolder.doStart(ServletHolder.java:312)
     at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59)
     at org.eclipse.jetty.servlet.ServletHandler.initialize(ServletHandler.java:778)
     at org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:258)
     at org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1221)
     at de.espirit.firstspirit.server.jetty.JettyManagerImpl$FailSafeWebAppContext.startContext(JettyManagerImpl.java:872)
     at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:699)
     at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:454)
     at de.espirit.firstspirit.server.jetty.JettyManagerImpl$FailSafeWebAppContext.doStart(JettyManagerImpl.java:859)
     at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59)
     at org.eclipse.jetty.server.handler.HandlerCollection.doStart(HandlerCollection.java:224)
     at org.eclipse.jetty.server.handler.ContextHandlerCollection.doStart(ContextHandlerCollection.java:167)
     at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59)
     at org.eclipse.jetty.server.handler.HandlerCollection.doStart(HandlerCollection.java:224)
     at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59)
     at org.eclipse.jetty.server.handler.HandlerWrapper.doStart(HandlerWrapper.java:90)
     at org.eclipse.jetty.server.Server.doStart(Server.java:262)
     at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59)
     at de.espirit.firstspirit.server.jetty.JettyManagerImpl$4.run(JettyManagerImpl.java:415)
     at java.lang.Thread.run(Thread.java:662)

0 Kudos

Da passen wahrscheinlich Server- und Client-Jar nicht zusammen.

Peter
0 Kudos

Hallo Benny,

benötigst du noch weitere Hilfe oder konnten Peters Antworten dir bereits weiterhelfen? In dem Fall wäre es toll, wenn du die "richtige Antwort" entsprechend markierst.

Solltest du eine eigene Lösung gefunden haben, wäre es super, wenn du diese hier bereitstellst.

Viele Grüße

Michaela

0 Kudos