1

我在下面创建了 bat 文件来运行我的 RMI 服务器

@echo Off

set classpath=C:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps\RMI_Server\bin\;
set classpath=C:\policy.all;
set classpath=C:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps\RMI_Server\log4j-1.2.12.jar;
set classpath=C:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps\RMI_Server\log4j-1.2.15.jar;
set classpath=C:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps\RMI_Server\log4j.jar;
set classpath=C:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps\RMI_Server\log4jProperties.jar;
set classpath=C:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps\RMI_Server\bcprov-jdk15-144.jar\bcprov-jdk15-144.jar;
set classpath=C:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps\RMI_Server\sevenzipjbinding.zip;
set classpath=C:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps\RMI_Server\sevenzipjbinding-AllPlatforms.zip;
set classpath=C:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps\RMI_Server\apache-log4j-1.2.17\log4j-1.2.17.jar;




set classpath=%classpath%;.

java -Djava.security.manager -Djava.security.policy=C:\policy.all

java -Xms512m -Xmx1024m ExecutorServer -Djava.rmi.server.codebase=file:C:/Program Files/Apache Software Foundation/Tomcat 6.0/webapps/RMI_Server/bin/ -Djava.security.policy=C:\policy.all

pause

我能够运行我的 RMI 服务器,但是当 RMI 尝试连接到 RMI 服务器时,我得到以下异常

Execption in RMI...java.rmi.UnmarshalException: error unmarshalling return; nest
ed exception is:
        java.lang.ClassNotFoundException: ExecutorInterface (no security manager
: RMI class loader disabled)
java.rmi.UnmarshalException: error unmarshalling return; nested exception is:
        java.lang.ClassNotFoundException: ExecutorInterface (no security manager
: RMI class loader disabled)
        at sun.rmi.registry.RegistryImpl_Stub.lookup(Unknown Source)
        at java.rmi.Naming.lookup(Unknown Source)
        at com.mindcraft.queryExecutor.actionclass.acInsertExecutorDetails.rmiCl
ientCall(acInsertExecutorDetails.java:272)
        at com.mindcraft.queryExecutor.actionclass.acInsertExecutorDetails.execu
te(acInsertExecutorDetails.java:218)

我在运行时提供了策略文件和代码库。我没有得到我在这里缺少的东西。如何在 rmiregistry 的路径中添加 lcass?

4

2 回答 2

1
  1. 将 CLASSPATH 设置为 10 个连续值不起作用。它只取最后一个值。你需要设置它=%classpath%;。您还需要引用所有名称中带有空格的目录。
  2. 将 policy.all 放在 CLASSPATH 上是没有意义的。
  3. java.lang.ClassNotFoundException: ExecutorInterface确切地说出了什么问题。该类不存在于客户端。
于 2012-06-19T06:54:04.990 回答
0

简单的解决方案是在您的客户端项目类路径中添加 ExecutorInterface.class 或其相关 jar。

于 2018-01-19T10:21:02.963 回答