我最近正在尝试使用RMI,并发现如果类文件没有存储在网络服务器上,我似乎无法发送序列化对象。这是否意味着我的所有可序列化类都需要放在webservers类路径中?
对我来说,似乎不是最好的设计恕我直言。
答案 0 :(得分:3)
不。所有这些答案都是错误的。
如果使用RMI代码库功能,则 类不需要存在于两侧。您可以设置Web服务器来托管JAR文件,并设置-Djava.rmi.server.codebase =以定义这些类可用作这些JAR文件的URL列表的位置。您可以在服务器或客户端或两者中设置它,具体取决于谁将发送另一方没有的类。然后RMI使用这些URL注释这些类,以便目标知道从哪里获取它们,并根据需要下载它们。
答案 1 :(得分:0)
是的,这两个班级必须存在。
答案 2 :(得分:0)
是的,类文件也必须存在于Web服务器上,因为RMI旨在(回程时)通过网络发送类的实例。如果您只是想在没有任何封装类业务行为的情况下将数据发送到Web服务器,那么可以使用更简单的方法(JSON,XML,SOAP等)来简单地发送数据。