我的牺牲品于Java RMI错误,如在JDK 7发布说明指出:如何在不使用'file:'的情况下创建文件系统的URL?
与rmiregistry中的命令中的一个错误包含在这个版本可能会导致意外的异常被抛出时,一个RMI服务器尝试使用“file:”URL方案绑定包含代码库注释的导出对象。最有可能受影响的RMI服务器是那些仅由与服务器在同一主机上执行的RMI客户端调用的服务器。
RMI将代码库信息注释为远程对象引用的序列化状态的一部分,以帮助RMI客户端在运行时加载与对象关联的所需类和接口。在RMI注册表中查找并由在服务器以外的主机上运行的RMI客户端调用的导出对象通常使用代码库URL方案进行注释,例如“http:”或“ftp:”,这些对象应继续正常工作。
作为解决方法,RMI服务器可以将java.rmi.server.codebase属性设置为使用除“file:”方案之外的代码库URL来导出它们的对象。
(重点煤矿)
我发展我的本地机器上的RMI应用程序,我需要设置的代码库,包括一些库。
StringBuilder codebase = new StringBuilder();
codebase.append(" file:/").append(projectPath).append("/bin/lib/rmiio-2.0.0.jar")
.append(" file:/").append(projectPath).append("/bin/lib/log4j-1.2.9.jar")
.append(" file:/").append(projectPath).append("/bin/lib/commons-logging.jar")
.append(" file:/").append(projectPath).append("/bin/lib/commons-logging-api.jar");
System.setProperty("java.rmi.server.codebase", codebase.toString());
如何在没有'file:/'语法的情况下实现相同?什么是我的情况中的错误有效的解决方法?
我不明白你为什么需要它。文件://方案只能在本地主机内工作,并且在本地主机内,您无论如何都没有任何代码部署问题。只需使用CLASSPATH即可。 – EJP