java.io.InvalidClassException: org.eclipse.persistence.internal.helper.DatabaseTable; local class incompatible: when publishing a BPM project to MDS (文档 ID 1561979.1)
修改时间:2013-6-14类型:PROBLEM
APPLIES TO:
Oracle Business Process Management Suite - Version 11.1.1.6.0 to 11.1.1.7.0 [Release 11gR1]
Information in this document applies to any platform.
SYMPTOMS
When publishing a BPM project from Studio the following exception is thrown:
Caused by: java.rmi.UnmarshalException: Incoming message header or
abbreviation processing failed ; nested exception is:
java.io.InvalidClassException:
org.eclipse.persistence.internal.helper.DatabaseTable; local class
incompatible: stream classdesc serialVersionUID = 7408378167056177847, local
class serialVersionUID = -8219935847209476671
CHANGES
The project has been edited in the BPM Composer and in BPM Studio.
CAUSE
Although the problem couldn't be recreated by the development team on demand, from the exception is clear that the root cause of the problem is the differnce of the version of the org.eclipse.persistence jar distributed with Oracle JDeveloper and Oracle WLS.
The Oracle Jdeveloper 11.1.1.6 and 11.1.1.7 comes withorg.eclipse.persistence_1.1.0.0_2-1.jar and includes theorg.eclipse.persistence.internal.helper.DatabaseTable with static final long
serialVersionUID = -8219935847209476671L;
The Oracle WLS 11.1.1.6 comes with org.eclipse.persistence_1.2.0.0_2-3 and includesorg.eclipse.persistence.internal.helper.DatabaseTable with static final long
serialVersionUID = 7408378167056177847L;
When and object of this class is class is serialized by the Composer, it uses the WLS supplied class.
When that object is deserialized by the Studio, the serialVersionUID mismatches and the java.io.InvalidClassException: is thrown by the JVM.
SOLUTION
The solution is to ensure that both WLS and JDev use the same version of theorg.eclipse.persistence.internal.helper.DatabaseTable class.
Since the jar installed by the WLS is newer than the jar installed by the Jdeveloper it makes more sense to recplace replace the org.eclipse.persistence_1.1.0.0_2-1.jar in Jdeveloper with the org.eclipse.persistence_1.2.0.0_2-3 from WLS.
- Shut down the Jdeveloper
- Move the org.eclipse.persistence_1.1.0.0_2-1.jar from {Jdeveloper Home}/modules to a backup location.
- Copy the org.eclipse.persistence_1.2.0.0_2-3.jar from {WLS Home}/modules to {Jdeveloper Home}/modules.
- Start the Jdeveloper.
If after that steps you still see the same exception, please verify the serial version of the org.eclipse.persistence.jar located on both {Jdeveloper Home}/modules and {WLS Home}/modules directories.Also check that there are no old versions of the jar ( org.eclipse.persistence_1.1.0.0_2-1.jar ) in the Jdeveloper classpath
If some your project requires the specific version of theorg.eclipse.persistence_1.1.0.0_2-1.jar or the above operation cannot be performed on your installation by some other reason, please contact the JDeveloper support
REFERENCES
org.eclipse.persistence.internal.helper.DatabaseTable local class incompatible
最新推荐文章于 2022-03-23 20:27:52 发布