3 Replies Latest reply on Sep 3, 2010 10:50 AM by Martin Sillence

    HttpInvoker on jboss 4.3.0

    Martin Sillence Newbie

      Hi,

       

      We're using the commercial version 4.3 and are having some problems configuring an EJB3 over http.

      The 4.2 configuration is ignored (still tries to do direct - jnp) and the 5.0 configuration causes an exception. I can't find any 4.3 specific information.

       

      I'm pretty sure it's just the jboss.xml config that's wrong attached are our two versions

       

      Any suggestions most welcome.

       

      Thanks,

      M

        • 1. Re: HttpInvoker on jboss 4.3.0
          Martin Sillence Newbie

          Forgot to add the exception for the 5.0 configuration is:

          Exception in thread "main" java.lang.ClassCastException: java.lang.String cannot be cast to org.jboss.aop.joinpoint.InvocationResponse
              at org.jboss.aspects.remoting.InvokeRemoteInterceptor.invoke(InvokeRemoteInterceptor.java:62)
              at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
              at org.jboss.aspects.tx.ClientTxPropagationInterceptor.invoke(ClientTxPropagationInterceptor.java:61)
              at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
              at org.jboss.aspects.security.SecurityClientInterceptor.invoke(SecurityClientInterceptor.java:53)
              at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
              at org.jboss.ejb3.remoting.IsLocalInterceptor.invoke(IsLocalInterceptor.java:74)
              at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
              at org.jboss.ejb3.stateless.StatelessRemoteProxy.invoke(StatelessRemoteProxy.java:107)
              at $Proxy1.test(Unknown Source)

          • 2. Re: HttpInvoker on jboss 4.3.0
            Martin Sillence Newbie

            OK found the solution:

             

            I added a ServerInvokerServlet to the invoker:

            in deploy/http-invoker.sar/META-INF/jboss-service.xml

            Add:

             

            <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/invoker/ServerInvokerServlet</attribute>
                <attribute name="Configuration">
                  <handlers>
                    <handler
            subsystem="AOP">org.jboss.aspects.remoting.AOPRemotingInvocationHandler</handler>
                  </handlers>
                </attribute>
              </mbean>

             

            In deploy/http-invoker.sar/WEB-INF/web.xml

            Add:

            <servlet>
                    <servlet-name>ServerInvokerServlet</servlet-name>
                    <description>The ServerInvokerServlet receives requests via HTTP
                       protocol from within a web container and passes it onto the
                       ServletServerInvoker for processing.
                    </description>
                    <servlet-class>org.jboss.remoting.transport.servlet.web.ServerInvokerServlet</servlet-class>
                    <init-param>
                        <param-name>invokerName</param-name>
                        <param-value>jboss.remoting:service=invoker,transport=servlet</param-value>
                        <description>The servlet server invoker</description>
                    </init-param>
                    <load-on-startup>1</load-on-startup>
                </servlet>

             

             

                <servlet-mapping>
                    <servlet-name>ServerInvokerServlet</servlet-name>
                    <url-pattern>/ServerInvokerServlet/*</url-pattern>
                </servlet-mapping>

             

            Finally change the url in the jboss.xml file to:

            <client-bind-url><![CDATA[http://${jboss.bind.address}:8080/invoker/ServerInvokerServlet?timeout=300000&invokerDestructionDelay=300000]]></client-bind-url>

             

            Based on this message:

            http://www.mail-archive.com/jboss-user@lists.jboss.org/msg177682.html//www.mail-archive.com/jboss-user@lists.jboss.org/msg177682.html from Chris Russell

            • 3. Re: HttpInvoker on jboss 4.3.0
              Martin Sillence Newbie

              Missed one - add deploy/http-invoker.sar/META-INF/jboss-service.xml -

               

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