2010-02-10 45 views
0

当我通过EJB接口查询实体时,在控制台下它是可以的,但切换到从Swing查询它会抛出此异常。异常:java.io.StreamCorruptedException:无效的类型代码:00

例外:

java.rmi.UnmarshalException: failed to unmarshal MY_ENTITY****; nested exception is: 
    java.io.StreamCorruptedException: invalid type code: 00 
    at weblogic.rjvm.ResponseImpl.unmarshalReturn(ResponseImpl.java:219) 
    at weblogic.rmi.internal.BasicRemoteRef.invoke(BasicRemoteRef.java:224) 
    at ***.****_6ndxy4_EOImpl_922_WLStub.getProductInformation(Unknown Source) 
    at MY_CLASS****.getProductInformation(*****.java:460) 
    at ******$5.run(OrigBlotter.java:318) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) 
    at java.lang.Thread.run(Thread.java:619) 
Caused by: java.io.StreamCorruptedException: invalid type code: 00 
    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1356) 
    at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1642) 
    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1323) 
    at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1947) 
    at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871) 
    at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753) 
    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329) 
    at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351) 
    at weblogic.utils.io.ChunkedObjectInputStream.readObject(ChunkedObjectInputStream.java:195) 
    at weblogic.rjvm.MsgAbbrevInputStream.readObject(MsgAbbrevInputStream.java:565) 
    at weblogic.utils.io.ChunkedObjectInputStream.readObject(ChunkedObjectInputStream.java:191) 
    at weblogic.rmi.internal.ObjectIO.readObject(ObjectIO.java:62) 
    at weblogic.rjvm.ResponseImpl.unmarshalReturn(ResponseImpl.java:217) 
+0

请告诉我们相关的代码。是的,不要忘记包含相关的堆栈跟踪。 – 2010-02-10 04:47:45

回答

0

当与JVM找到的序列化对象相对应的类具有与序列化类相同的serialVersionUid时,会生成此异常,但实际上是不同的版本(即:更改是在不改变版本ID的情况下对该类进行编译)。

检查在类路径中是否有相关的jar/class文件?

+0

据我所知,这是不正确的。如果类不在类路径中,您可以获取未找到的类;如果类不同,则获取InvalidClassException。你能举一个例子吗? – Peter 2013-07-18 13:19:54

+0

天哪,那是很久很久以前的事。试试看看会发生什么。我记得试图对没有找到类的对象进行反序列化(或者可能是一个具有相同名称但不相同的类,例如:不同版本)会导致StreamCorruptedException异常。不能回想起“类型代码00”部分是否也存在,但我认为是。我把这个答案放在这里,因为我很难跟踪和谷歌一路向我显示这个问题:) – drevicko 2013-07-19 10:47:44

+0

为了记录,这是错误的jar文件版本,导致我的错误。不同的类版本具有相同的序列化uid,因此是StreamCorruptedException,而不是用于不匹配版本的异常。 – drevicko 2014-06-22 20:42:05

相关问题