0

当我尝试从 struts 的操作类(即 RMI 客户端)访问 RMI serevr 时,我得到了这个执行(单击 jsp 按钮)

java.rmi.UnmarshalException: error unmarshalling return; nested exception is:    
    java.lang.ClassNotFoundException: com.mindcraft.queryExecutor.actionclass.ExecutorInterface (no security manager: RMI class loader disabled)  

下面是我的 RMI 客户端片段

try{   
        ExecutorInterface p=(ExecutorInterface)Naming.lookup("//localhost:2007/exec1");   
        System.out.println("Inside client.."+ p.toString());   
        int a= p.getJobStatus("2");   
        System.out.println("a..." + a);   
        p.killJob("1");   
            p.executeJob(id, usrname, pswd);   
        System.out.println("Threads started, main ends\n");   
        }   
        catch(Exception e)   
        {   
            System.out.println("Execption in RMI..."+ e);   
            e.printStackTrace();   
        }  

当我使用 public static void main() 在单独的文件中尝试上面的代码时很好,但是在 struts 框架的 Action 类中尝试相同的代码时会出现上述异常。

4

3 回答 3

2

发现这个:

设置安全策略文件,例如:

grant {  
permission java.security.AllPermission "", "";  
};

在您的启动命令中:

-Djava.security.policy=/Security/policy.all

来源:链接

试试看,让我知道它是否有效。

于 2012-06-13T09:47:46.843 回答
0

请务必注意以下事项以避免此错误:

  1. 您必须确保服务器中的接口名称与客户端中的接口实现相同。
  2. 确保包名,你在客户端放接口的地方和你在服务端放接口的包名是一样的。
于 2013-03-28T19:48:20.657 回答
0

新的 Java 7 和 Java 6 版本中的验证发生了变化。 错误 ID 为:6861062 java classes_security 在证书链验证中禁用 MD2

在签署 Jara 文件时,我收到了一些警告消息,并且在执行命令时:jarsigner MyTools.jar -verify -verbose -certs

我收到消息:X.509, OU=Class 3 Public Primary Certification Authority, O="VeriSign, Inc.", C=US [证书有效期为 29.01.96 01:00 至 02.08.28 01:59] [ CertPath 未验证:算法约束检查失败:MD2withRSA]

我的解决方案是: - 使用另一个版本的 JDK 来签名和 JRE 插件。- 更新您的证书安全性,以免使用此算法。

于 2013-09-13T08:34:30.420 回答