我已经运行了jvm 1.5的rmi服务器和运行在jvm 1.6中的客户端,没有任何问题。
然而,当我运行(JVM 1.7 /客户端jvm1.7下的服务器)或(JVM 1.7 /客户端jvm 1.6下的服务器)时出现以下错误 -
java.rmi.UnmarshalException: Error unmarshaling return header; nested exception is:
java.io.EOFException
java.rmi.UnmarshalException: Error unmarshaling return header; nested exception is:
java.io.EOFException
at sun.rmi.transport.StreamRemoteCall.executeCall(Unknown Source)
at sun.rmi.server.UnicastRef.invoke(Unknown Source)
at sun.rmi.registry.RegistryImpl_Stub.lookup(Unknown Source)
at com.tmobile.kiosk.simulator.Kiosk.<init>(Unknown Source)
at com.tmobile.kiosk.simulator.Kiosk.main(Unknown Source)
Caused by: java.io.EOFException
at java.io.DataInputStream.readByte(Unknown Source)
使用(服务器jvm 1.5 /客户端jvm 1.7)获得以下错误 -
java.rmi.UnmarshalException: error unmarshalling return; nested exception is:
java.lang.ClassNotFoundException: com.xxx.yyy.zzzserver.ZZZServerFactoryImpl_Stub (no security manager: RMI class loader disabled)
at sun.rmi.registry.RegistryImpl_Stub.lookup(Unknown Source)
这是否因Java版本的RMI变化而发生?
我是否可以在JVM 1.7中运行rmi Server而无需更改代码,以便现有客户端(jvm 1.5等)可以连接到它。
我们没有重建可能使用java 1.4或1.5构建的jar文件。
先谢谢
答案 0 :(得分:0)
问题是一些旧的jar版本是classpath的一部分。