1 Reply Latest reply on Mar 1, 2009 1:07 AM by ron_sigal

    jboss.remoting:service=invoker,transport=servlet is already

    kevinpauli

      I have set up UnifiedInvoker over HTTPS for both naming remote ejb3 invocations. Things seem to work, but I am worried b/c I am getting a warning on startup:

      jboss.remoting:service=invoker,transport=servlet is already registered with MBeanServer


      I peeked in the source, and it seems that MBean object name is hardcoded in the source! from ServletServerInvoker.java:

      public String getMBeanObjectName()
       {
       return "jboss.remoting:service=invoker,transport=servlet";
       }


      I am not sure what is going on. Here are the relevant mbeans from my jboss-service.xml

      <?xml version="1.0" encoding="UTF-8"?>
      
       <!-- ==================================================================== -->
       <!-- JNDI -->
       <!-- ==================================================================== -->
      
       <!-- A simple mbean wrapper around the jndi Naming object. This only handles an in memory instance. The NamingService uses this as the JNDI store and exposes it remotely. -->
       <mbean code="org.jnp.server.NamingBeanImpl" name="jboss:service=NamingBeanImpl" xmbean-dd="resource:xmdesc/NamingBean-xmbean.xml">
       </mbean>
      
       <mbean code="org.jboss.naming.NamingService" name="jboss:service=Naming" xmbean-dd="resource:xmdesc/NamingService-xmbean.xml">
       <!-- The call by value mode. true if all lookups are unmarshalled using the caller's TCL, false if in VM lookups return the value by reference. -->
       <attribute name="CallByValue">false</attribute>
      
       <!-- The thread pool service used to control the bootstrap lookups -->
       <depends optional-attribute-name="LookupPool" proxy-type="attribute">jboss.system:service=ThreadPool</depends>
      
       <depends optional-attribute-name="Naming" proxy-type="attribute">jboss:service=NamingBeanImpl</depends>
       </mbean>
      
       <!-- mbean name="jboss:service=invoker,type=unified" code="org.jboss.invocation.unified.server.UnifiedInvoker">
       <depends>jboss:service=TransactionManager</depends>
       <depends>jboss.remoting:service=Connector</depends>
       </mbean-->
      
       <mbean code="org.jboss.remoting.network.NetworkRegistry" name="jboss.remoting:service=NetworkRegistry"/>
      
      <mbean code="org.jboss.invocation.jrmp.server.JRMPProxyFactory" name="jboss:service=proxyfactory,type=unified,transport=sslservlet,target=naming">
       <attribute name="InvokerName">jboss:service=invoker,type=unified,transport=sslservlet,target=naming</attribute>
       <attribute name="TargetName">jboss:service=Naming</attribute>
       <attribute name="ExportedInterface">org.jnp.interfaces.Naming</attribute>
       <attribute name="ClientInterceptors">
       <interceptors>
       <interceptor>org.jboss.proxy.ClientMethodInterceptor</interceptor>
       <interceptor>org.jboss.proxy.SecurityInterceptor</interceptor>
       <interceptor>org.jboss.naming.interceptors.ExceptionInterceptor</interceptor>
       <interceptor>org.jboss.invocation.InvokerInterceptor</interceptor>
       </interceptors>
       </attribute>
       <depends>jboss:service=invoker,type=unified,transport=sslservlet,target=naming</depends>
       </mbean>
      <mbean code="org.jboss.invocation.unified.server.UnifiedInvoker" name="jboss:service=invoker,type=unified,transport=sslservlet,target=naming">
       <depends>jboss:service=TransactionManager</depends>
       <depends>jboss.remoting:service=connector,transport=sslservlet,target=naming</depends>
       </mbean>
      <mbean code="org.jboss.remoting.transport.Connector" display-name="SSL Servlet transport Connector" name="jboss.remoting:service=connector,transport=sslservlet,target=naming">
       <attribute name="Configuration">
       <config>
       <invoker transport="sslservlet">
       <attribute isParam="true" name="dataType">httpsinvocation</attribute>
       <attribute isParam="true" name="marshaller">org.jboss.invocation.unified.marshall.InvocationMarshaller</attribute>
       <attribute isParam="true" name="unmarshaller">org.jboss.invocation.unified.marshall.InvocationUnMarshaller</attribute>
       <attribute isParam="true" name="return-exception">true</attribute>
       <attribute name="serverBindAddress">${jboss.bind.address}</attribute>
       <attribute name="serverBindPort">8443</attribute>
       <attribute name="path">unified-invoker/SSLServerInvokerServlet</attribute>
       </invoker>
       <handlers>
       <handler subsystem="invoker">jboss:service=invoker,type=unified,transport=sslservlet,target=naming</handler>
       </handlers>
       </config>
       </attribute>
       </mbean>
      <mbean code="org.jboss.invocation.unified.server.UnifiedInvoker" name="jboss:service=invoker,type=unified,transport=sslservlet,target=ejb3">
       <depends>jboss:service=TransactionManager</depends>
       <depends>jboss.remoting:service=connector,transport=sslservlet,target=ejb3</depends>
       </mbean>
      <mbean code="org.jboss.remoting.transport.Connector" display-name="EJB3 Servlet SSL transport Connector" name="jboss.remoting:service=connector,transport=sslservlet,target=ejb3">
       <depends>jboss.aop:service=AspectDeployer</depends>
       <depends>jboss.remoting:service=NetworkRegistry</depends>
       <attribute name="Configuration">
       <config>
       <invoker transport="sslservlet">
       <attribute isParam="true" name="return-exception">true</attribute>
       <attribute name="serverBindAddress">${jboss.bind.address}</attribute>
       <attribute name="serverBindPort">8443</attribute>
       <attribute name="path">unified-invoker/SSLEjb3ServerInvokerServlet</attribute>
       </invoker>
       <handlers>
       <handler subsystem="AOP">org.jboss.aspects.remoting.AOPRemotingInvocationHandler</handler>
       <handler subsystem="invoker">jboss:service=invoker,type=unified,transport=sslservlet,target=ejb3</handler>
       </handlers>
       </config>
       </attribute>
       </mbean>
      </server>
      


      P.S. I am running JBoss 4.2.2.GA

        • 1. Re: jboss.remoting:service=invoker,transport=servlet is alre
          ron_sigal

           

          "kevinpauli" wrote:

          I peeked in the source, and it seems that MBean object name is hardcoded in the source!


          Yes, you're exactly right. This is an old problem that I fixed in Remoting 2.4/2.5, but not in the older versions. However, I've had a request to do so in JBREM-1100 "Link ServerInvokerServlet instances to Connectors via MBean names rather than locator URLs", so the problem should be fixed in Remoting 2.2.2.SP12.

          In the meantime, this message is nothing to worry about.