我正在尝试使用RMI进行一些测试。
我有一个.jar文件,其中包含我需要调用的方法的类。在我的netbeans项目中,我有一个类TestClient,它必须连接到我的Remote接口ShareBroker。 我的问题是如何为java.rmi.server.codebase设置正确的地址,以及我需要在TestClient中使用哪个地址来查找ShareBrooker。
我尝试了许多不同的地址和组合但无法使其正常工作。 对于此测试,我需要在本地目录中设置代码库。
答案 0 :(得分:0)
java.rmi.server.codebase属性设置在导出远程对象的JVM上。通常这是服务器JVM。
代码库URL必须引用此服务器的客户端可访问的目录或JAR文件。因此,它必须是指向客户端可访问的Web服务器的HTTP或FTP URL,或者是引用客户端本地文件系统的文件:URL。
在后一种情况下,(1)服务器必须知道客户端文件系统顺序的布局才能正确设置代码库属性,这会带来配置难度,并且(2)所有它将完成的是也可以通过在客户端的CLASSPATH中包含该本地目录/ JAR文件并完全不使用代码库系统来完成。
换句话说,代码库中引用本地文件系统绝对没有意义。
答案 1 :(得分:0)
请检查您的远程接口可能无法扩展java.rmi.Remote接口
答案 2 :(得分:0)
对于客户端访问远程服务,您应该有客户端可用的存根。这可以在客户端类路径中设置(您可以在项目构建路径中包含生成的存根)。
如果客户端在其类路径中没有存根,则必须在远程服务中设置java.rmi.server.codebase属性。如果设置了此属性,则当客户端调用远程方法时,它将下载存根来自指定代码库的类。
以下链接可能有用.. https://community.oracle.com/thread/1180559?start=0 http://docs.oracle.com/javase/7/docs/technotes/guides/rmi/codebase.html