JBoss 5.0.1, EJB 3. Server is running on computer which doesn't have remote IP only local
Got exception "Caused by: org.jboss.remoting.CannotConnectException: Can not get connection to server. Problem establishing socket connection for InvokerLocator [socket://10.198.138.148:3873/?]"
Server is launched -Djava.rmi.server.hostname=<remote_ip> -Dremoting.bind_by_host=false
Additionally I found, that I can and need to define property "clientConnectAddress=<remote_ip>" for jboss remoting.
I added (uncommented line) into remoting-jboss-bens.xml, but it didn't work. Then I found that this connector is for EJB2 but for EJB3 is used ejb3-connectors-jboss-beans.xml . Then I added following lines to EJB3 connector
"Server is running on computer which doesn't have remote IP only local"
jboss server is running on computer which has only network configuraiton and it is only local IP. This computer is accessed via router which makes makes NAT'ing to this local IP
Is 10.198.138.148 the value you associated with "clientConnectAddress" or your localhost address?
it is local ip
After debuging a while I found solution by entering serverBindAddress via URL parameter. I don't know it it is right configuration, but with this I got progress on issue:
I have a similar problem, and I am using JBoss AS6. I believe the way of configuring ejb3-connectors-jboss-beans.xml is the right way for AS6 ?
[ Is that the only place to configure? ]
And I finally found some syntax explanation in JBoss Remoting Guide (version 2.5.4.SP2), in section 126.96.36.199. Multihome servers.
This is my scenario:
We have a physical Server A (internal IP: 192.168.2.187) within LAN, which connects to outside world via a modem/router. We use Dynamic DNS service for outside to connect to our Server A. So we have a web page that can be accessed this way: http://xyz.dyndns-server.com:8080/myweb/
For this Dyn DNS to work, the modem/router has to have forwarding address (xyz.dyndns-server.com => 192.168.2.187, with corresponding ports). We open up ports 8080 and 1099.
This is the line that I have in ejb3-connectors-jboss-beans.xml :
The problem is that, though my web application (html, jsp, servlet) is working fine, my Swing client somehow could not access the EJB3 (remote stateful session bean). My Swing client, running in any other workstation/PC within the LAN, can access my EJB3 bean in Server A just fine. I started the JBoss AS 6 with -b 0.0.0.0 option.
My Swing client uses the following for JNDI connection:
Can anyone help me out? What could be the root cause? Do I miss anything here? Thanks a lot.
Are you saying that your Swing client is having a problem accessing JDNI on the server, i.e., it is unable to download the EJB3 client proxy? If that is the problem, then I can tell you that the JNDI implementation does not use Remoting, so the multihome trick will not work for JNDI.
The JDNI implementation is part of the Application Server code base, so, if I have interpreted your problem correctly, I suggest that you post the question to the "JNDI and Naming" forum here: http://community.jboss.org/en/jbossas/jndi.