Hallo,
ich habe im Projekt folgendes Problem:
beim Versuch einen Datensatz freizugeben, kommt eine SQLException, die wir aber nicht sehen können, weil der Client die SQLException nicht deserialisieren kann. Stacktrace unten.
Auf dem Client kommt anscheinend eine falsche Version des SQLServer-Drivers. Mit Filesuche habe ich auf dem Server zwei jars gefunden
sqljdbc4.jar in irgendein shared Verzeichnis und sqljdbc-1.1.jar in einem Modul.
Ich vermute, der Server instanziiert die SQLException aufgrund des ersten jars (version 4) aber der Client kriegt via Webstart sqljdbc-1.1.jar und kann das Objekt nicht deserialisieren. Auf meinem Windows Rechenr sehe ich
unter C:\Users\..\.firstspirit_4.2R4\jars eine Datei eine 3178428f@sqljdbc-1.1.jar mit Datum heute.
Meine Frage ist: wie wird entscheiden, welche jars zum Client kommt? Kann ich das irgendwie beeinflussen?
Die Exception taucht leider auch nicht in der Server Logdatei auf. Gibt es eine SQL log4j Kategorie, die ich auf debug setzen kann?
---
FSVersion=4.2.454.47473#2789;JDK=1.6.0_32 32bit Sun Microsystems Inc.;OS=Windows 7 6.1 x86;Date=16.08.2012 13:30:45
de.espirit.firstspirit.common.IOError: Could not read remote objects! Method de.espirit.firstspirit.manager.ContentManager.commit(87, -1969599302, [de.espirit.firstspirit.manager.SessionHandlerIdentifier@90bd{project-id=36820, schema-id=37036, current}, 1, [Release command: de.espirit.or.impl.IdentifierImpl$TemporalIdentifierUC@c178fc80{news_international,FS_ID=65861,FS_VALID_FROM=1345117165242,FS_VALID_TO=9223372036854775807,FS_RELEASE_TO=0}, de.espirit.or.impl.ReleaseN2MRelationCommand@c17a62d3de.espirit.or.impl.IdentifierImpl$TemporalIdentifierUC@c178fc80{news_international,FS_ID=65861,FS_VALID_FROM=1345117165242,FS_VALID_TO=9223372036854775807,FS_RELEASE_TO=0}], task activity$workflow=Direkt freigeben#workflowActivity=Freigabe anfordern]) - java.io.InvalidClassException: com.microsoft.sqlserver.jdbc.SQLServerException; local class incompatible: stream classdesc serialVersionUID = 961749846592457293, local class serialVersionUID = 4449348116728840636
at de.espirit.firstspirit.client.io.HttpServerCaller.call(HttpServerCaller.java:389)
at de.espirit.firstspirit.client.io.HttpServerCaller.call(HttpServerCaller.java:40)
at de.espirit.firstspirit.client.io.ServerCaller.call(ServerCaller.java:233)
at de.espirit.firstspirit.client.io.ServerCaller.doManagerCall(ServerCaller.java:395)
at de.espirit.firstspirit.client.io.ServerCaller.callManager(ServerCaller.java:372)
at de.espirit.firstspirit.io.DefaultClientHandler.callManager(DefaultClientHandler.java:49)
at de.espirit.firstspirit.client.io.RemoteManagerCaller.invoke(RemoteManagerCaller.java:52)
at de.espirit.firstspirit.server.$Proxy32.commit(Unknown Source)
at de.espirit.firstspirit.store.access.templatestore.SessionHandlerImpl.commit(SessionHandlerImpl.java:113)
at de.espirit.or.impl.SessionImpl.doCommit(SessionImpl.java:191)
at de.espirit.or.impl.AbstractSession.commit(AbstractSession.java:521)
at de.espirit.firstspirit.store.access.contentstore.Content2Impl.release(Content2Impl.java:320)
at de.espirit.firstspirit.server.taskmanagement.TaskImpl.doTransition(TaskImpl.java:1197)
at de.espirit.firstspirit.server.taskmanagement.TaskImpl.doTransition(TaskImpl.java:1012)
at de.espirit.firstspirit.client.action.WorkflowAction.startWorkflow(WorkflowAction.java:432)
at de.espirit.firstspirit.client.action.WorkflowAction.startWorkflow(WorkflowAction.java:213)
at de.espirit.firstspirit.client.action.WorkflowUtil.startWorkflow(WorkflowUtil.java:52)
at de.espirit.firstspirit.client.action.WorkflowMenuAction$WFStartAction.actionPerformed(WorkflowMenuAction.java:272)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.AbstractButton.doClick(Unknown Source)
at javax.swing.plaf.basic.BasicMenuItemUI.doClick(Unknown Source)
at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$000(Unknown Source)
at java.awt.EventQueue$1.run(Unknown Source)
at java.awt.EventQueue$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$2.run(Unknown Source)
at java.awt.EventQueue$2.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at de.espirit.firstspirit.client.AWTDispatchingEventQueue.defaultDispatchEvent(AWTDispatchingEventQueue.java:130)
at de.espirit.firstspirit.client.AWTDispatchingEventQueue._dispatchEvent(AWTDispatchingEventQueue.java:115)
at de.espirit.firstspirit.client.AWTDispatchingEventQueue.dispatchEvent(AWTDispatchingEventQueue.java:108)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
Caused by: java.io.InvalidClassException: com.microsoft.sqlserver.jdbc.SQLServerException; local class incompatible: stream classdesc serialVersionUID = 961749846592457293, local class serialVersionUID = 4449348116728840636
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:309)
at de.espirit.firstspirit.client.io.HttpServerCaller.call(HttpServerCaller.java:375)
... 57 more