1 Reply Latest reply on Jun 5, 2008 12:43 PM by Ron Sigal

    ejb access to 4.2.2 server from 4.0.3 client - compatibility

    David Purcell Newbie

      Hello,
      We're trying to access an ejb(2) deployed on a jboss 4.2.2 server from a client on jboss 4.0.3SP1. According to: http://wiki.jboss.org/wiki/JBossVersionCompatibilityMatrix, 'you must use the legacy rmi invokers' in this case. We weren't sure how to do that, but digging into some jboss remoting jira tickets, we saw that testers for these compatibility issues where basically replacing unified-invoker references with rmi-invoker references in their standardjboss.xml file (basically replacing the 4.2.2's standardjboss.xml with that from 4.0.3). Trying that, it worked in some instances, but we've now come across this error:

      java.rmi.UnmarshalException: Error unmarshaling return; nested exception is: java.lang.ClassNotFoundException: No ClassLoaders found for: org.jboss.invocation.JBossLazyUnmarshallingException (no security manager: RMI class loader disabled)

      I fear I'm barking up the wrong tree. Anyone know how to go about 'you must use the legacy rmi invokers'? Does that actually mean substituting the jboss-remoting jar with an older version?

      Thanks in advance,

      David

        • 1. Re: ejb access to 4.2.2 server from 4.0.3 client - compatibi
          Ron Sigal Master

          Hi David,

          I'm not the best person to answer your question, since the legacy invokers are completely independent from Remoting. However, I can tell you that 'you must use the legacy rmi invokers' actually means not using jboss-remoting.jar at all. Well, you can continue to use if for other applications, but not for your 4.0.3 client.

          If you look in the server/default/deploy directory, you should find a file called "invokers-service.xml" with the MBean definition

           <!-- RMI/JRMP invoker -->
           <mbean code="org.jboss.invocation.jrmp.server.JRMPInvoker"
           name="jboss:service=invoker,type=jrmp">
           <attribute name="RMIObjectPort">4444</attribute>
           <attribute name="ServerAddress">${jboss.bind.address}</attribute>
           <!--
           <attribute name="RMIClientSocketFactory">custom</attribute>
           <attribute name="RMIServerSocketFactory">custom</attribute>
           <attribute name="RMIServerSocketAddr">custom</attribute>
           <attribute name="SecurityDomain">ssl-domain-name</attribute>
           -->
           <depends>jboss:service=TransactionManager</depends>
           </mbean>
          


          which configures the server side of the rmi invoker. I suppose you need to add something like that to your 4.2.2 server configuration.

          For a better answer, I'm going to suggest that you pose the question on the "Installation, Configuration & DEPLOYMENT" forum (http://www.jboss.com/index.html?module=bb&op=viewforum&f=61).

          Good luck, and I'd be interested in hearing how things work out.

          -Ron