8 Replies Latest reply on Aug 31, 2001 12:39 PM by Mike Lecza

    Calling JBossMQ standalone from JBoss+TC

    Mike Lecza Newbie

      Is it possible to Publish a message from a servlet running on JBoss+TC 2.4 final onto JBossMQ running standalone?

      I can publich a message just fine from a Servlet to JBossMQ integrated with 2.4 - but from what I have been reading the new version of JBossMQ is clearly what I should be using.

      Regards

        • 1. Re: Calling JBossMQ standalone from JBoss+TC
          Hiram Chirino Expert

          Yes you can.. You just have to JNDI setup ok.
          You have serveral options:

          a. You can have JBossMQ bind itself to the JBoss/TC naming server. Just modify the jndi.properties file in the JBossMQ conf directory to specify the URL. Disable the Naming server MBean in the JBossMQ conf directory.

          b. You can runn another Naming Server instance in JBossMQ standalone. (You may get port conflicts if a naming server is allready running on the same machine.) From the servlet you will need to explicitly initialize the IntialContext with a URL pointing to the server:port were the JBossMQ standalone naming server is running.

          • 2. Re: Calling JBossMQ standalone from JBoss+TC
            Mike Lecza Newbie

            Thanx for the reply.

            I tried option b and am getting the following error:

            [Default] javax.naming.CommunicationException [Root exception is java.rmi.Unmars
            halException: error unmarshalling return; nested exception is:
            java.lang.ClassNotFoundException: org.jboss.mq.referenceable.ObjectRefAd
            dr (no security manager: RMI class loader disabled)]

            any ideas?

            This is how I did the InitialContext in the servlet:
            Hashtable props = new Hashtable();
            props.put(Context.INITIAL_CONTEXT_FACTORY,
            "org.jnp.interfaces.NamingContextFactory");
            props.put(Context.PROVIDER_URL, "localhost:1088");
            props.put("java.naming.rmi.security.manager", "yes");
            props.put(Context.URL_PKG_PREFIXES, "org.jboss.naming:org.jnp.interfaces");

            Context context = new InitialContext(props);

            JNDI is running fine in the JBOssMQ instance on port 1088

            Thanx

            • 3. Re: Calling JBossMQ standalone from JBoss+TC
              Mike Lecza Newbie

              ... and same type of message when I tried option A - this error happens when starting JBossMQ:

              [RMIServerILService] Stopped
              java.rmi.ServerException: RemoteException occurred in server thread; nested exce
              ption is:
              java.rmi.UnmarshalException: error unmarshalling arguments; nested excep
              tion is:
              java.lang.ClassNotFoundException: org.jboss.mq.referenceable.ObjectRefAd
              dr (no security manager: RMI class loader disabled)
              java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is:

              java.lang.ClassNotFoundException: org.jboss.mq.referenceable.ObjectRefAd
              dr (no security manager: RMI class loader disabled)
              java.lang.ClassNotFoundException: org.jboss.mq.referenceable.ObjectRefAddr (no s
              ecurity manager: RMI class loader disabled)
              at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(Stream
              RemoteCall.java:245)
              at sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:
              220)
              at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:122)
              at org.jnp.server.NamingServer_Stub.bind(Unknown Source)
              at org.jnp.interfaces.NamingContext.bind(NamingContext.java:314)
              at org.jnp.interfaces.NamingContext.bind(NamingContext.java:286)
              at javax.naming.InitialContext.bind(InitialContext.java:358)
              at org.jboss.mq.il.ServerILJMXService.bindJNDIReferences(ServerILJMXServ
              ice.java:92)
              at org.jboss.mq.il.rmi.RMIServerILService.startService(RMIServerILServic
              e.java:72)
              at org.jboss.util.ServiceMBeanSupport.start(ServiceMBeanSupport.java:109
              )
              at java.lang.reflect.Method.invoke(Native Method)
              at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:16
              28)
              at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:15
              23)
              at org.jboss.configuration.ConfigurationService$ServiceProxy.invoke(Conf
              igurationService.java:938)
              at $Proxy0.start(Unknown Source)
              at org.jboss.util.ServiceControl.start(ServiceControl.java:83)
              at java.lang.reflect.Method.invoke(Native Method)
              at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:16
              28)
              at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:15
              23)
              at org.jboss.Main.(Main.java:209)
              at org.jboss.Main$1.run(Main.java:115)
              at java.security.AccessController.doPrivileged(Native Method)
              at org.jboss.Main.main(Main.java:111)

              • 4. Re: Calling JBossMQ standalone from JBoss+TC
                Juha Lindfors Master

                java.lang.ClassNotFoundException: org.jboss.mq.referenceable.ObjectRefAddr

                Make sure you have jbossmq-client.jar in your classpath.

                • 5. Re: Calling JBossMQ standalone from JBoss+TC
                  Mike Lecza Newbie

                  That's not the problem.

                  Pretty sure the problem has somethign to do with this part of the error:
                  (no security manager: RMI class loader disabled)

                  • 6. Re: Calling JBossMQ standalone from JBoss+TC
                    Mike Lecza Newbie

                    Got it to work both ways - I needed to take a copy of jbossmq.jar from the beta install and put it in the JBoss2.4+TC area :-))

                    Thanx for the replies.

                    • 7. Re: Calling JBossMQ standalone from JBoss+TC
                      Juha Lindfors Master

                      Pretty sure the problem has somethign to do with this part of the error: (no security manager: RMI class loader disabled)


                      This means the same thing. The RMI subsystem can't find the classes in your classpath, and since no security manager is installed, can't download the classes it needs either.

                      So yes, it is the problem.

                      • 8. Re: Calling JBossMQ standalone from JBoss+TC
                        Mike Lecza Newbie

                        yeah - I had the old jbossmq.jar that comes with 2.4 in the JB+TC area - guess either there were missing classes or conflicts.

                        Thanx for the reply