[jboss-user] [Remoting] - Re: Problem calling EJB3 method via HTTP only

formica do-not-reply at jboss.com
Thu May 31 05:30:21 EDT 2007


First of all, thanks a lot for your replies Marc!

I have progressed a little bit in my understanding, and I think I managed to get a working system, so I want to describe to you what I have done. If experts are around they could may be comment on the procedure.

Starting from the beginning:
- I need to access a JBOSS 4.2.0GA stateless session bean from a remote
client.
- my client being behind a firewall I decided to pass my invocations via http, but I need to be sure that is http only !

Reading forums + doc I have done the following changes to a standard jboss installation (on a "server" machine).

1) I have added servlet-invoker.war from the jboss remoting 2.0 package (copy the war in deploy dir), performing the following modification in the config file WEB-INF/web.xml:

   

  |   <param-name>locatorUrl</param-name>
  |   <param-value>servlet://${jboss.bind.address}:8080/servlet-invoker/ServerInvokerServlet</param-value>
  |   <description>The servlet server invoker locator url</description>
  | 

2) I have added a Connector using a xxx-service.xml file that I have created and put in /server/default/deploy


  | <server>
  |    <mbean code="org.jboss.remoting.transport.Connector"
  |         name="jboss.remoting:service=Connector,transport=Servlet"
  |         display-name="Servlet transport Connector">
  |      <attribute name="InvokerLocator">
  |         servlet://${jboss.bind.address}:8080/servlet-invoker/ServerInvokerServlet
  |      </attribute>
  |      <attribute name="Configuration">
  |         <config>
  |          <handlers>
  |             <handler subsystem="AOP">org.jboss.aspects.remoting.AOPRemotingInvocationHandler</handler>
  |          </handlers>
  |         </config>
  |      </attribute>
  |    </mbean>
  | </server>
  | 

Now I start jboss running with option -b :

  | run.sh -b myhost.domain.name
  | 

I think this is important in order to associate the hostname to the variable jboss.bind.address, so to avoid ip number substitutions that would have a bad effect on the firewall....

3) I have installed on the same jboss-server machine a Squid proxy server, configured to listen to port 3128 with the appropriate acl (see Squid documentation)

4) I have forwarded the 3128 port into localhost 13128 using ssh tunneling (-L options)

5) now I can for example access the JMX console if I configure in my web browser the proxy server to be localhost 13128

6) I run the client program using in java command line the options:
   

  | java -Dhttp.proxyHost=localhost -Dhttp.proxyPort=13128 xxxx
  | 

and it works !

Now my question is :
Could I avoid to use an external proxy server ?

Andrea

View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4050049#4050049

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4050049



More information about the jboss-user mailing list