java - 在 Java 中运行 RMI 应用程序时遇到问题

标签 java rmi

我正在学习有关 Java RMI 的教程 http://download.oracle.com/javase/tutorial/rmi/TOC.html

然而,当我尝试启动服务器时,我收到以下错误:

计算引擎异常: java.security.AccessControlException: 访问被拒绝 (java.net.SocketPermission 127.0.0.1:1099 connect,resolve) 在 java.security.AccessControlContext.checkPermission(未知来源) 在 java.security.AccessController.checkPermission(未知来源) 在 java.lang.SecurityManager.checkPermission(未知来源) 在 java.lang.SecurityManager.checkConnect(未知来源) 在 java.net.Socket.connect(未知来源) 在 java.net.Socket.connect(未知来源) 在 java.net.Socket.(未知来源) 在 java.net.Socket.(未知来源) 在 sun.rmi.transport.proxy.RMIDirectSocketFactory.createSocket(未知来源) 在 sun.rmi.transport.proxy.RMIMasterSocketFactory.createSocket(未知来源) 在 sun.rmi.transport.tcp.TCPEndpoint.newSocket(未知来源) 在 sun.rmi.transport.tcp.TCPChannel.createConnection(未知来源) 在 sun.rmi.transport.tcp.TCPChannel.newConnection(未知来源) 在 sun.rmi.server.UnicastRef.newCall(未知来源) 在 sun.rmi.registry.RegistryImpl_Stub.rebind(未知来源) 在引擎.ComputeEngine.main(ComputeEngine.java:61)

我正在尝试使用以下命令运行:

D:\files\develop\javami>java -cp D:\files\develop\javami;D:\files\webdocs\classes\compute.jar -Djava.rmi.server.codebase=file:/D:/files/webdocs/classes/compute.jar -Djava.rmi.server.hostname=192.168.0.162 -Djava.security.policy=server.policy engine.ComputeEngine

我应该怎么做才能解决这个问题?

最佳答案

问题已解决。

server.policy 文件错误,正确的是:

授予{ 权限 java.net.SocketPermission "*:1024-", "connect,accept"; 权限 java.security.AllPermission; };

关于java - 在 Java 中运行 RMI 应用程序时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6143615/

相关文章:

java - 将日历对象与 after 或 timeInMillis 进行比较?

java - 为什么 Java 泛型不支持原始类型?

java - 通过 Internet 使用 RMI 实现服务器 - 客户端

apache-camel - Hawt.io 阻止 Jvisualvm 连接到 JVM

java - String.equalsIgnoreCase 仅对第一个 switch case 返回 true

java - Hibernate-Criteria:在 'ON Clause' 中使用多个条件

java - asyncTask 中的 findViewById()

java - Java分布式程序的当前最佳实践

programming-languages - CORBA/RMI 和 (D) COM 在今天还有用吗?

java - 网络模式与非网络模式的区别