如何使用正确的参数运行rmiregistry和rmi服务器?

时间:2015-11-08 04:32:30

标签: java rmi

如何在远程主机上使用正确的参数运行rmiregistry和RMI服务器?

运行RMI客户端时出现此问题:

<select class="form-control" id="someId">
  <option value="">Select...</option>
  <option id="10" value="option1">1</option>
  <option id="20" value="option2">2</option>
  <option id="30" value="option3">3</option>
  <option id="40" value="option4">4</option>
</select>
<select class="form-control" id="someId">
  <option value="">Select...</option>
  <option id="10" value="option1">1</option>
  <option id="20" value="option2">2</option>
  <option id="30" value="option3">3</option>
  <option id="40" value="option4">4</option>
</select>
<select class="form-control" id="someId">
  <option value="">Select...</option>
  <option id="10" value="option1">1</option>
  <option id="20" value="option2">2</option>
  <option id="30" value="option3">3</option>
  <option id="40" value="option4">4</option>
</select>

我在远程主机上启动了rmiregistry,其中包含以下内容:

java.rmi.UnmarshalException: error unmarshalling return; nested exception is:
java.net.MalformedURLException: unknown protocol: c
at sun.rmi.registry.RegistryImpl_Stub.lookup(Unknown Source)
at com.labros.client.TestClient.main(TestClient.java:33)
Caused by: java.net.MalformedURLException: unknown protocol: c
at java.net.URL.<init>(Unknown Source)
at java.net.URL.<init>(Unknown Source)
at java.net.URL.<init>(Unknown Source)

和服务器

rmiregistry -J-Djava.rmi.server.codebase=file:///export/home/timsadm/Projects/rmi-server/cla‌​sses -J-Djava.security.policy=/export/home/timsadm/Projects/rmi-server/classes/java.p‌​olicy &

1 个答案:

答案 0 :(得分:0)

java -Djava.rmi.server.codebase=file:///export/home/timsadm/Projects/rmi-server/class‌​es

java.net.MalformedURLException: unknown protocol: c

这些是相互矛盾的。我怀疑你的codebase参数看起来真的像这样:

-Djava.rmi.server.codebase=c:/export/home/timsadm/Projects/rmi-server/class‌​es

这不是有效的网址。

但是你为什么要使用代码库功能呢? file:代码库网址只能在单个主机中运行,在这种情况下,您根本不需要代码库功能,或者从注册表和客户端的角度指定共享文件系统,这个似乎没有做到。通常,代码库URL为http:ftp:,它们引用JAR文件。