[jboss-dev-forums] [Design of JBoss Remoting, Unified Invokers] - Re: Remoting 2: Servlet Invoker
ron.sigal@jboss.com
do-not-reply at jboss.com
Wed Jan 14 02:59:27 EST 2009
While you were off finding G-d, I got invoker-test to pass. :)
There's one change in servlet-invoker-service.xml:
| <?xml version="1.0" encoding="UTF-8"?>
|
| <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">
| <handlers>
| <handler subsystem="AOP">org.jboss.aspects.remoting.AOPRemotingInvocationHandler</handler>
| </handlers>
| </attribute>
| </mbean>
|
| </server>
|
In particular, I changed the MBean name from "jboss.remoting:service=invoker,transport=servlet" to "jboss.remoting:service=connector,transport=servlet". That's the source of the "Unable to find operation processRequest(javax.servlet.http.HttpServletRequest,[B,javax.servlet.http.HttpServletResponse)" problem. ServerInvokerServlet found the "jboss.remoting:service=invoker,transport=servlet" it was looking for, but what it was finding was an org.jboss.remoting.transport.Connector instead of the ServletServerInvoker created by the Connector.
Also, I changed web.xml:
| <web-app>
| <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-->
| <init-param>
| <param-name>locatorUrl</param-name>
| <param-value>servlet://${jboss.bind.address}:8080/servlet-invoker/ServerInvokerServlet</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>
| </web-app>
|
so that it searches for the ServletServerInvoker by InvokerLocator instead of MBean name. Strictly speaking, that shouldn't be necessary, as long as the correct MBean name is supplied.
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4201602#4201602
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4201602
More information about the jboss-dev-forums
mailing list