I know that this comes up a lot and I have seen many posts on running JBoss behind a firewall. My understanding was that to get this working, you set the java.rmi.server.hostname property to the hostname that you want the server to hand out.
Under JBoss 3.2.2RC2, I would set this as an environment variable before starting the run.sh script.
Under JBoss 3.2.2RC2, this worked well. Under JBoss 3.2.3, this isn't working completely. When the server starts up, you can see it using the hostname in the start-up output. Clients outside the firewall can connect to the server, but when they attempt to get a remote object (an EJB remote home object) they recieve a "Connection Refused" error, this error specifically mentions the external hostname. Clients are connecting to JBoss over HTTP.
This is a problem for our test server. I have purchased the JBoss documentation and I believe I have made all the necessary settings (which are few, I set the http invoker to use the host name and I set the java.rmi.server.hostname property). Is there an additional setting that I am unaware of? I have tried setting several properties as mentioned in other posts (setting java.rmi.server.useLocalHostname to false, setting jboss.bind.address explicitly), but these have not been helpful. I suspect that if everything worked fine under JBoss 3.2.2RC2, they should also work fine under JBoss 3.2.3.
My suspicion is that, despite my efforts, JBoss is handing out the non-routable IP address of the server machine and when the client tries to use that to connect, it is receiving this error. What I really need is for JBoss to *only* hand out the hostname. I would be interested to know if anyone has JBoss 3.2.3 running behind a firewall with external client connecting via HTTP.
Any comments or suggestions would be very much appreciated.