我有一个在Apache Tomcat中运行的Web应用程序,它是我运行的RMI服务器的客户端,它工作正常。
现在我将该Web应用程序迁移到JBoss 5.1,除了与RMI Server的连接外,一切正常,所以我认为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:远程端点上的非JRMP服务器 at sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:230) at sun.rmi.transport.tcp.TCPChannel.newConnection(TCPChannel.java:184) at sun.rmi.server.UnicastRef.newCall(UnicastRef.java:322) at sun.rmi.registry.RegistryImpl_Stub.lookup(Unknown Source) 在java.rmi.Naming.lookup(Naming.java:84) 在controller.ControladorUsuarios.addNotificacion(ControladorUsuarios.java:97) 在dao.TestDAO.main(TestDAO.java:73)
我一直在寻找解决方案,但我找不到解决问题的方法。也许问题与JNDI端口有关,设置为1099,我已经读过rmiregistry默认使用1099。但是我一直试图改变它们中的端口并且它不起作用。
感谢。
答案 0 :(得分:0)
您遇到的失败根本不在于“RMI服务器”。这是与RMI注册表。您正在使用Naming.lookup(),您应该使用JBoss特定的东西。正如例外所示。