[jboss-user] [Remoting] - Re: https with path and ejb3 can not be configured

rino_salvade do-not-reply at jboss.com
Mon May 7 15:23:19 EDT 2007

Hi Ron
Thank you for your response
anonymous wrote : 1. The problem in JBWS-1141 comes from the fact that Remoting versions 2.x require a call to org.jboss.remoting.Client.connect() before any calls to Client.invoke(), whereas earlier versions of Remoting didn't impose that requirement. The current version of EJB3 is compatible with Remoting 2.x. Perhaps you can upgrade to JBossAS 4.2, where this problem is solved. 
This problem is solved. As I mentioned, I adapted the Remoting 2.x version so that it is backwards compatible with the 1.4.3 version. Unfortunately we're not currently upgrade our productive system to 4.2

anonymous wrote : 
  | 2. Are you familiar with the "path" configuration attribute, which adds a path the the InvokerLocator: 
I did find this parameter for the servlet approach, but I didn't know (and found nothing in the documentation) that it works as well for http

anonymous wrote : 3. How are you passing in the org.jboss.remoting.serverAuthMode parameter? You want it to be available to the client when it is creating its socket factory. You could do that by passing it in the configuration map to the client, e.g., new Client(locator, configuration). If you put it in an XML server configuration file, be sure to use the "isParam" attribute.
What I tried was like this
<mbean code="org.jboss.remoting.transport.Connector"
  |           name="jboss.remoting:type=Connector,name=DefaultEjb3Connector,handler=ejb3">
  |       <depends>jboss.aop:service=AspectDeployer</depends>
  |       <attribute name="Configuration">
  |       <config>
  |           <invoker transport="sslservlet">
  |                <attribute name="serverBindAddress">${jboss.bind.address}</attribute>
  |                <attribute name="serverBindPort">8443</attribute>
  |                <attribute name="path">/invoker/EJBInvokerServlet</attribute>
  |                <attribute name="org.jboss.remoting.serverAuthMode" isParam="true">false</attribute>
  |          </invoker>
  |          <handlers>
  |             <handler subsystem="AOP">org.jboss.aspects.remoting.AOPRemotingInvocationHandler</handler>
  |          </handlers>
  |       </config>
  |       </attribute>
  |    </mbean>
But as I wrote, I got the impression that the parameter is not used correctly

anonymous wrote : 
  | What does your URL look like?
The url looked like this
<attribute name="InvokerLocator">servlet://${jboss.bind.address}:8443/invoker/EJBInvokerServlet?serverAuthMode=false</attribute>

So, all the above mentioned problems are solved so far. It works fine with the sslservlet.
The problem which I have currently is to make it accessible through a remote proxy (Web Entry Server) that requires client authentication. Geting the JNDIFactory and the JMXInvokerServlet works fine, but calling the EJB causes a problem. This is based on the fact that the calling opens up a new http session which is of course not yet authenticated. So when the http POST for the invocation is sent, the remote proxy answers with a redirect to get the client certificate. Unfortunately the redirect results that the http POST is transformed into a http GET (this is according to the http standards). The server side of the EJBInvokerServlet then can not handle the GET properly and goes into a npe.

So any help on this would be appreciated. I was looking if it is possible to configure the request right from the beginning as a GET but wasn't lucky so  far.

Regards Rino

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

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

More information about the jboss-user mailing list