EJB调用远程连接Jboss服务器,参考代码:
Properties prop = new Properties();
prop.put("java.naming.factory.initial",
"org.jnp.interfaces.NamingContextFactory");
prop.put("java.naming.provider.url", serverIp+":"+port);// 1099
InitialContext ctx = new InitialContext(prop);
NamingEnumeration nn = ctx.list("");
while (nn.hasMore())
{
System.out.println(nn.nextElement().toString());
}
可能会出现如下错误。
Exception in thread "main" javax.naming.CommunicationException [Root exception is java.rmi.UnknownHostException: Unknown host: audrey; nested exception is:
java.net.UnknownHostException: audrey]
at org.jnp.interfaces.NamingContext.list(NamingContext.java:965)
at org.jnp.interfaces.NamingContext.list(NamingContext.java:920)
at javax.naming.InitialContext.list(InitialContext.java:436)
at AAAA.main(AAAA.java:74)
Caused by: java.rmi.UnknownHostException: Unknown host: audrey; nested exception is:
java.net.UnknownHostException: audrey
at sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:598)
at sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:198)
at sun.rmi.transport.tcp.TCPChannel.newConnection(TCPChannel.java:184)
at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:110)
at org.jnp.server.NamingServer_Stub.list(Unknown Source)
at org.jnp.interfaces.NamingContext.list(NamingContext.java:937)
... 3 more
Caused by: java.net.UnknownHostException: audrey
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:177)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
at java.net.Socket.connect(Socket.java:519)
at java.net.Socket.connect(Socket.java:469)
at java.net.Socket.<init>(Socket.java:366)
at java.net.Socket.<init>(Socket.java:180)
at sun.rmi.transport.proxy.RMIDirectSocketFactory.createSocket(RMIDirectSocketFactory.java:22)
at sun.rmi.transport.proxy.RMIMasterSocketFactory.createSocket(RMIMasterSocketFactory.java:128)
at sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:595)
... 8 more
原因在于JBosss服务器启动时,指定了-b 0.0.0.0
应该为:
run.bat -b 你本地服务器的Ip地址