Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javarmi添加示例_Java_Rmi - Fatal编程技术网

javarmi添加示例

javarmi添加示例,java,rmi,Java,Rmi,我正在实现一个简单的JavaRMI应用程序。它的主要目标是添加2个整数。代码源如下所示: 客户端和服务器端的AdditionInterface 导入java.rmi.*; 公共接口添加接口扩展远程{ 公共int addint a,int b抛出RemoteException; } Addition.java 附加服务器 附加客户端 客户端和服务器端的安全策略 但是我得到HelloClient异常:java.security.AccessControlException:access denied

我正在实现一个简单的JavaRMI应用程序。它的主要目标是添加2个整数。代码源如下所示: 客户端和服务器端的AdditionInterface 导入java.rmi.*; 公共接口添加接口扩展远程{ 公共int addint a,int b抛出RemoteException; }

Addition.java

附加服务器

附加客户端

客户端和服务器端的安全策略

但是我得到HelloClient异常:java.security.AccessControlException:access denied java.net.SocketPermission 127.0.0.1:1099 connect,resolve
错误

您必须首先启动RMI注册表。试着打电话

java.rmi.registry.LocateRegistry.createRegistry(1099);
在尝试重新绑定远程对象之前。我不确定,但如果注册表已经启动,此调用可能会失败。 第二个问题可能是SecurityManager应用的策略没有连接/解析本地主机的权限。尝试ro注释System.SetSecurityManager新安全管理器;开始吧。默认java策略文件仅授予一个SocketPermission:

permission java.net.SocketPermission "localhost:0", "listen";

除掉安全管理员。除非您正在使用代码库特性,否则您不需要它们。如果这是一个问题,他将得到一个BindException或ConnectExcepton。@user207421你是对的。创建注册表可能是下一个偶然发现的问题,但不是上述异常的原因。
import java.rmi.*;

 public class AdditionClient {
 public static void main (String[] args) {
 AdditionInterface hello;
 try {
 System.setSecurityManager(new SecurityManager());
 hello = (AdditionInterface)Naming.lookup("rmi://localhost/ABC");
 int result=hello.add(9,10);
 System.out.println("Result is :"+result);

 }catch (Exception e) {
 System.out.println("HelloClient exception: " + e);
 }
 }
 }
    grant {
        permission java.security.AllPermission;

  };
java.rmi.registry.LocateRegistry.createRegistry(1099);
permission java.net.SocketPermission "localhost:0", "listen";