首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ValidationException类版本不匹配

ValidationException类版本不匹配
EN

Stack Overflow用户
提问于 2010-06-02 23:42:26
回答 1查看 3.7K关注 0票数 0

我有一个简单的EJB应用程序,可以在本地WebLogic实例(v10.3.0.0)上部署和测试,没有问题。我需要将其部署到远程WL服务器(v10.3.3.0)上,并从本地计算机对其进行测试。部署是成功的,但是当我尝试从JDeveloper运行任何客户端时,我收到以下错误:

代码语言:javascript
复制
<2010.06.02. 16:08:36 CEST> <Error> <RJVM> <BEA-000503> <Incoming message header or abbreviation processing failed
 java.io.InvalidClassException: org.eclipse.persistence.exceptions.ValidationException; local class incompatible: stream classdesc serialVersionUID = 3793659634176227230, local class serialVersionUID = -7605463488982202416
java.io.InvalidClassException: org.eclipse.persistence.exceptions.ValidationException; local class incompatible: stream classdesc serialVersionUID = 3793659634176227230, local class serialVersionUID = -7605463488982202416
    at java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:562)
    at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1583)
    at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1496)
    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1316)
    at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
    at weblogic.rjvm.ClassTableEntry.readExternal(ClassTableEntry.java:36)
    at java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1792)
    at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1751)
    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
    at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
    at weblogic.rjvm.InboundMsgAbbrev.readObject(InboundMsgAbbrev.java:65)
    at weblogic.rjvm.InboundMsgAbbrev.read(InboundMsgAbbrev.java:37)
    at weblogic.rjvm.MsgAbbrevJVMConnection.readMsgAbbrevs(MsgAbbrevJVMConnection.java:227)
    at weblogic.rjvm.MsgAbbrevInputStream.init(MsgAbbrevInputStream.java:173)
    at weblogic.rjvm.MsgAbbrevJVMConnection.dispatch(MsgAbbrevJVMConnection.java:439)
    at weblogic.rjvm.t3.MuxableSocketT3.dispatch(MuxableSocketT3.java:322)
    at weblogic.socket.AbstractMuxableSocket.dispatch(AbstractMuxableSocket.java:394)
    at weblogic.socket.SocketMuxer.readReadySocketOnce(SocketMuxer.java:917)
    at weblogic.socket.SocketMuxer.readReadySocket(SocketMuxer.java:849)
    at weblogic.socket.JavaSocketMuxer.processSockets(JavaSocketMuxer.java:283)
    at weblogic.socket.SocketReaderRequest.run(SocketReaderRequest.java:29)
    at weblogic.work.ExecuteRequestAdapter.execute(ExecuteRequestAdapter.java:21)
    at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:145)
    at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:117)

谁能解释为什么我会收到这个错误,以及我能做些什么来解决它?

EN

回答 1

Stack Overflow用户

发布于 2010-06-03 01:43:23

您有两个版本的类,可能位于两个不同的JAR中。由于Java EE经常使用类加载器层次结构,因此可能会发生这样的情况:一段代码从一个类加载器加载一个类,而另一段代码从另一个类加载器加载它。这两个类(具有相同名称)的实例不被视为相等,即使它们具有相同的serialVersionId。

您看到的是两个不同的ValidationException实例,它们是从不同的类实例化的,从不同的类加载器(可能是从不同的JAR)加载的。JDeveloper可能包含自己的版本,这与WebLogic的版本冲突。您的应用程序中是否包含eclipse验证jars?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2959254

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档