0

我有一个在 Apache Tomcat 中运行的 Web 应用程序,它是我运行的 RMI 服务器的客户端,它运行良好。

现在我将该 Web 应用程序迁移到 JBoss 5.1,除了与 RMI 服务器的连接外,一切正常,所以我认为问题出在 JBoss 的配置上。

客户端的代码如下:

//RMI
System.setProperty("java.security.policy","file:/C:/policy.txt");
//policy.txt: grant { permission java.security.AllPermission; };

System.setSecurityManager(new RMISecurityManager());

ControladorMails c = null;

try {
    c = (ControladorMails) Naming.lookup("rmi://localhost/GestorMails");
} catch (Exception e) {
    e.printStackTrace();
}

我得到的例外是:

java.rmi.ConnectIOException:sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:230) 远程端点处的非 JRMP 服务器 sun.rmi.transport.tcp.TCPChannel.newConnection(TCPChannel.java:184 ) 在 sun.rmi.registry.RegistryImpl_Stub.lookup(Unknown Source) 在 sun.rmi.server.UnicastRef.newCall(UnicastRef.java:322) 在 java.rmi.Naming.lookup(Naming.java:84) 在控制器。 ControladorUsuarios.addNotificacion(ControladorUsuarios.java:97) 在 dao.TestDAO.main(TestDAO.java:73)

我一直在寻找解决方案,但找不到任何解决问题的方法。可能问题与设置为 1099 的 JNDI 端口有关,我读过 rmiregistry 默认使用 1099。但是我一直在尝试更改它们中的端口并且它不起作用。

谢谢。

4

1 回答 1

0

您遇到的故障根本与“RMI 服务器”无关。它与 RMI 注册表一起使用。您正在使用 Naming.lookup() 您应该使用 JBoss 特定的东西。正如例外所暗示的那样。

于 2013-09-02T10:00:43.217 回答