users@glassfish.java.net

JMS Using Spring

From: <glassfish_at_javadesktop.org>
Date: Mon, 19 Apr 2010 06:55:36 PDT

I'm trying to get a simple JMS Topic application running and I'm having problems. My message producer is a pojo that's inside n OSGi bundle that I've deployed. It gets called from within a service that's exposed using Spring DM to a web servlet.

 The code for the message producer:

    public void sendMessage(String data)
    {
          Context theContext = new InitialContext();
            System.out.println("Getting Connection Factory.");
            TopicConnectionFactory topicFactory = (TopicConnectionFactory) theContext.lookup("jms/TopicFactory");

            System.out.println("Getting Topic.");
            Topic topic = (Topic) theContext.lookup("jmsTopic"); // Here's where it fails

            topicConnection = topicFactory.createTopicConnection();
            session = topicConnection.createTopicSession(false, Session.AUTO_ACKNOWLEDGE);
            publisher = session.createPublisher(topic);
            message = session.createTextMessage(data);

            System.out.println("Sending Message.");
            publisher.publish(message);
   }

I've created the Factory and the Topic using the Glassfish Admin console (Resources->JMS Resources->Destination Resources). I also tried it with creating the physical resource (Configuration->Java Messaging Service->Physical Destinations).

Stack Trace:

[#|2010-04-19T09:01:37.462-0400|SEVERE|glassfishv3.0|javax.enterprise.system.std.com.sun.enterprise.v3.services.impl|_ThreadID=40;_ThreadName=Thread-8;|javax.naming.CommunicationException: Communication exception for SerialContext [Root exception is com.sun.appserv.connectors.internal.api.PoolingException]
        at com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:475)
        at javax.naming.InitialContext.lookup(InitialContext.java:392)
        at javax.naming.InitialContext.lookup(InitialContext.java:392)
        at examples.services.mdb.MsgProducer.sendMessage(MsgProducer.java:47)
        at examples.services.impl.MyServiceImpl.getString(MyServiceImpl.java:47)
        at HelloWorld.doGet(HelloWorld.java:40)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:844)
        at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1518)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:277)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:171)
        at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:651)
        at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:591)
        at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:94)
        at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:87)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:158)
        at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:328)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:229)
        at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:165)
        at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:811)
        at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:708)
        at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1017)
        at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:171)
        at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:135)
        at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:102)
        at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:88)
        at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:76)
        at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:53)
        at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:57)
        at com.sun.grizzly.ContextTask.run(ContextTask.java:69)
        at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:526)
        at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:507)
        at java.lang.Thread.run(Thread.java:619)
Caused by: com.sun.appserv.connectors.internal.api.PoolingException
        at com.sun.enterprise.resource.beans.AdministeredObjectResource.createAdministeredObject(AdministeredObjectResource.java:199)
        at com.sun.enterprise.resource.naming.AdministeredObjectFactory.getObjectInstance(AdministeredObjectFactory.java:128)
        at javax.naming.spi.NamingManager.getObjectInstance(NamingManager.java:304)
        at com.sun.enterprise.naming.impl.SerialContext.getObjectInstance(SerialContext.java:486)
        at com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:451)
        ... 32 more
Caused by: java.security.PrivilegedActionException: com.sun.appserv.connectors.internal.api.ConnectorRuntimeException
        at java.security.AccessController.doPrivileged(Native Method)
        at com.sun.enterprise.resource.beans.AdministeredObjectResource.createAdministeredObject(AdministeredObjectResource.java:176)
        ... 36 more
Caused by: com.sun.appserv.connectors.internal.api.ConnectorRuntimeException
        at com.sun.enterprise.connectors.util.SetMethodAction.handleException(SetMethodAction.java:140)
        at com.sun.enterprise.connectors.util.SetMethodAction.run(SetMethodAction.java:126)
        ... 38 more
Caused by: java.lang.reflect.InvocationTargetException
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at com.sun.enterprise.connectors.util.SetMethodAction.run(SetMethodAction.java:99)
        ... 38 more
Caused by: java.lang.IllegalArgumentException: MQ:Topic:Invalid Topic Name - jms/Topic
        at com.sun.messaging.Topic.setName(Topic.java:90)
        ... 43 more

  What I'd really like to do is create a simple JMS app using Spring, but nothing I try seems to work there either. When I add my bean info to my spring xml file, the OSGI bundle deploys but doesn't register the services. Are there any simple Spring JMS examples out there that work in OSGi?

Thanks,
 Larry
[Message sent by forum member 'ltouve']

http://forums.java.net/jive/thread.jspa?messageID=397816