开发者

Remote EJB interface not working over internet

I have an EJB container that is deployed on JBoss 5.1 on to a Amazon AWS Fedora 8 virtual machine. I have another application which I want to access this EJB container remotely over the internet. But I am getting the following exception

javax.naming.CommunicationException [Root exception is java.rmi.ConnectException: Connection refused to host: xxx.xxx.xx.x; nested exception is: java.net.ConnectException: Connection timed out]

Caused by: java.rmi.ConnectException: Connection refused to host: xxx.xxx.xx.x; nested exception is: java.net.ConnectException: Connection timed out

Caused by: java.net.ConnectException: Connection timed out

Here xxx.xxx.xx.x is the internal IP of the machine running the EJB.

Here is the code I used to access it

Properties props = new Properties(); 
props.put(Context.URL_PKG_PREFIXES, "org.jboss.naming:org.jnp.interfaces");
pr开发者_StackOverflow社区ops.setProperty(Context.INITIAL_CONTEXT_FACTORY,org.jboss.security.jndi.JndiLoginInitialContextFactory");
props.setProperty(Context.PROVIDER_URL, "<external-ip>:1099");
props.put("java.naming.factory.initial","org.jnp.interfaces.NamingContextFactory");
props.put("java.naming.factory.url.pkgs","org.jboss.naming:org.jnp.interfaces");
props.put("java.naming.provider.url", "jnp://<external-ip>:1099");
InitialContext ic = new InitialContext(props);
ic.lookup("EJBName");

I have also edited the /etc/hosts file like

127.0.0.1  localhost.localdomain localhost
xxx.xxx.xx.x  hostname  alias

and started JBoss with

-Djboss.bind.address=0.0.0.0 -Djava.rmi.server.hostname=xxx.xxx.xx.x -Dremoting.bind_by_host=false

I guess I have done all the necassary configurations and correct code for this but doesn't seems to work. Please help me solving this issue it has been bugging me for over a week now. And sorry for hiding the actual ips for security reasons.


Connection timeout It could be a firewall issue. Verify that the port is open: http://www.canyouseeme.org/

You can also try setting the properties: "org.omg.CORBA.ORBInitialHost" and "org.omg.CORBA.ORBInitialPort".


Can you telnet on: host address and orb port. i.e. 127.0.0.xxx 3700

If you do not get answer then it's definitely a firwall issue.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜