In a recent IoT project, MindTelligent team ran into an issue with connecting the JPA (Session Facade Client) with Session Beans when deployed on Weblogic 10.3.6 JDK 1.7 and client running on JDeveloper 11.1.1.7.
Following exception is thrown
java.io.InvalidClassException: org.eclipse.persistence.exceptions.ValidationException; local class incompatible: stream classdesc serialVersionUID = 8323218586942907354, local class serialVersionUID = 7573113798854854020
java.io.InvalidClassException: org.eclipse.persistence.exceptions.ValidationException; local class incompatible: stream classdesc serialVersionUID = 8323218586942907354, local class serialVersionUID = 7573113798854854020
at java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:562)
at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1582)
at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1495)
at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1582)
at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1495)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1315)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:350)
at weblogic.rjvm.ClassTableEntry.readExternal(ClassTableEntry.java:36)
at java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1791)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1750)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1328)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:350)
Issue:
The version of the Class
org.eclipse.persistence.exceptions.ValidationException is different in JDeveloper and Weblogic instance on which the EJB 3.0 are running.
Solution:
FTP the org.eclipse.persistence_1.2.0.0_2-3.jar from the Weblogic Instance where the deployed beans are running and include it in the CLASSPATH of the client as shown below. This should resolve the issue