如何在java中设置RMI?

如何在java中设置RMI?,java,jakarta-ee,rmi,Java,Jakarta Ee,Rmi,所以我只是从RMI开始,然后 我为服务器端构建了以下类: public interface ServiceServer extends Remote public class ServiceServerImpl extends UnicastRemoteObject implements ServiceServer public interface Service extends Serializable 对于客户端,这个类是: public class ServiceBrowser 当我

所以我只是从RMI开始,然后 我为服务器端构建了以下类:

public interface ServiceServer extends Remote
public class ServiceServerImpl extends UnicastRemoteObject implements ServiceServer
public interface Service extends Serializable 
对于客户端,这个类是:

public class ServiceBrowser
当我尝试运行我的程序时,出现以下异常:

    java.rmi.ServerException: RemoteException occurred in server thread; nested exception is: 
java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is: 
java.lang.ClassNotFoundException: FirstTryRMI.ServiceServer
据我所知,问题在于RMI没有找到类(?)。
我看了所有的地方,似乎都不明白,如何将类文件添加到正确的位置?

确保您的客户端也包含jar文件,它必须具有ServiceServer类。

您需要确保注册表中有远程接口、存根等。,在其类路径上。

这是他将遇到的下一个问题,但当前的问题是注册表看不到该类。我已经多年没有做过RMI了,但我从来没有记得必须将客户端JAR放在rmiregistry类路径中。那么,注册表将从何处获取远程接口和存根类呢?查看堆栈跟踪。他有一个服务器异常包装了一个解组异常。因此,无论他调用什么服务器,该类都不在其类路径中。那只能是注册表。也许在您的例子中,您使用了LocaterRegistry而不是rmiregistry命令。