RemoteException java.rmi.UnmarshalException: error unmarshalling return

2022-09-04 06:04:19

我在这里运行程序在差异物理机上的2个JVM上。我收到错误

RemoteException
java.rmi.UnmarshalException: error unmarshalling return; nested exception is: 
    java.lang.ClassNotFoundException: CalculatorImpl_Stub (no security manager: RMI class loader disabled)

我甚至尝试在同一台机器(未更改的程序)上运行它,它可以工作,但它在差异机器上不起作用。有人可以帮助我吗?

@beny23-谢谢,但我仍然遇到这个错误:

RemoteException
java.rmi.UnmarshalException: error unmarshalling return; nested exception is: 
java.lang.ClassNotFoundException: CalculatorImpl_Stub

客户端如何拥有CalculatorImpl_stub的副本?


答案 1

我遇到了这个问题,因为我在客户端和服务器代码中有不同的包名称:

package my.pkg; 
// server side interface definition...

// ------------- //

package my.pkg.something;
// client side interface definition...

我更改了客户端包的名称,并将其设置为服务器端包的名称:

package my.pkg; 
// server side interface definition...

// ------------- //

package my.pkg; // renamed to the name of package in server-side .
// client side interface definition...

问题就消失了。


答案 2

我有一个工作和我的Java类。我决定将它们放入他们自己的包中,而不是作为默认包运行。RMI ClientServer

在我将它们放在他们自己的包中后,错误开始在连接时发生。java.rmi.UnmarshalException: error unmarshalling return; nested exception is: java.lang.ClassNotFoundException:

我把程序放回默认包中,一切都开始工作。

我意识到这可能是一个技术原因,但这对我有用!


推荐