Java RMI,我可以发送一个序列化对象而不需要将类文件放在网络服务器上吗?

时间:2011-05-24 13:05:58

标签: java serialization rmi

我最近正在尝试使用RMI,并发现如果类文件没有存储在网络服务器上,我似乎无法发送序列化对象。这是否意味着我的所有可序列化类都需要放在webservers类路径中?

对我来说,似乎不是最好的设计恕我直言。

3 个答案:

答案 0 :(得分:3)

不。所有这些答案都是错误的。

如果使用RMI代码库功能,则 类不需要存在于两侧。您可以设置Web服务器来托管JAR文件,并设置-Djava.rmi.server.codebase =以定义这些类可用作这些JAR文件的URL列表的位置。您可以在服务器或客户端或两者中设置它,具体取决于谁将发送另一方没有的类。然后RMI使用这些URL注释这些类,以便目标知道从哪里获取它们,并根据需要下载它们。

答案 1 :(得分:0)

是的,这两个班级必须存在。

答案 2 :(得分:0)

是的,类文件也必须存在于Web服务器上,因为RMI旨在(回程时)通过网络发送类的实例。如果您只是想在没有任何封装类业务行为的情况下将数据发送到Web服务器,那么可以使用更简单的方法(JSON,XML,SOAP等)来简单地发送数据。