Remoting using Http over a singel port
marcreis May 5, 2006 7:06 AMThe scenario, a (cluster of) JBoss 4.0.4RC2 running behind a Firewall/NAT, a client communicating via http with the Server and visa versa. So, all over http and just using a single port (e.g. 8080) and using EJB 3.0. (Something like client <=> Firewall <=> I-Net <=> Firewall<=>Apache<=>JBossCluster )
We have read through the most of the forum and issue posts we could find concerning this topic (best of by searching for ?clientBindUrl? in the forum and continuing from there).
So instead of asking the same questions again, I?ll try to keep it very general:
- Which configurations can/have too be done to get this working, or to be more precisely which is the best method of doing so, as concerning the current state and the near changes (as I read, there could be a release of a Remoting package this month which could change some things ?).
- Can the clientBindUrl, also be defined in an external file like the ejb-jar.xml rather than annotating each bean?
Maybe someone could post a small ?guide? on how to do this properly (for one case or maybe distinct for different cases (Http/Servlet etc))
And yes, I know there is a http://labs.jboss.com/portal/jbossremoting/docs/guide/ch04.html, and I have read through it.
_____________________________________________________________
Just in case this seems to general I?ll hang on some of what we encountered so far:
First of, things we did were configure the ejb3.deployer\META-INF\jboss-service.xml, copy the tomcat libs missing, alter the jndi.properties for the client and adding the bean annotation for the clientBindUrl and played with these settings.
- the various ways of configuring the \deploy\ejb3.deployer\META-INF\jboss-service.xml seem to enable a initial communication over lets say port 8080
- after initial lookup of JNDI over 8080, when invoking an interfaces, it has its ?InvokationLocator? property set at its default ?0.0.0.0:3873? (as defined in RemoteProxyFactory.java.) unless
- the annotation @RemoteBinding(clientBindUrl=?) is used.
I read that the clientBindUrl should, since EJB 3.,0 RC2, be fetch from the MBean, but this seems to work only initially. Without the annotation, a method invocation of a remote bean interface will lead in a try to communicate over port 3873 (as for our config).
When setting up all of this, it is still not working correctly.
I guess we could/should try the version with the serverlet-invoker.war (would be nice to have easy access to it) and then configure the jboss-service.xml accordingly. But having a guide on how this is done best and what/how it is so far implemented and how/what will be changed would be create
Sincerely
Marc