2014-10-03 377 views
0

我有jvm 1.5運行的現有rmi服務器和在jvm 1.6中運行的客戶端沒有問題的通信。java rmi在不同的jvm版本中調用失敗

然而,當我運行(服務器JVM 1.7 /客戶端jvm1.7下)OR(服務器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

問題是一些老版本的jar是類路徑的一部分。