This looks ok to me but a little more is needed...

you need a geronimo plan for your web app with a dependency on the jms connector you deployed. I don't know why your app would deploy without this, so maybe its there but you didn't mention it?

Which geronimo version?

thanks
david jencks

On Aug 7, 2008, at 10:17 AM, zm wrote:


Hi,

I'm looking forward to put a simple web application to work with JMS
messaging, but I can't seem to do it.

I have not much experience doing it, so I'm getting a bit frustrated.

First of all, my Java code that sends a message:


                String message = "Text Message to Send!";
                Connection connection = null;
                Session session = null;

                try {
                        Context ctx = new InitialContext();
ConnectionFactory connectionFactory = (ConnectionFactory) ctx.lookup(
"java:comp/env/jms/mycon" );
                        Queue myQueue = (Queue) ctx.lookup( 
"java:comp/env/jms/myqueue" );

                        connection = connectionFactory.createConnection();

session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);

                        MessageProducer producer = 
session.createProducer(myQueue);

                        Message jmsMessage = session.createTextMessage( message 
);

                        producer.send( jmsMessage );

                } catch(Throwable t) {
                        throw new Exception("Error found!", t);
                } finally {
                        try {
                                if(session!=null) session.commit();
                        } catch(Throwable t) {
                        }
                        try {
                                if(connection!=null) connection.close();
                        } catch(Throwable t) {
                        }
                }


In the web.xml:

        <resource-ref>
                <description></description>
                <res-ref-name>jms/mycon</res-ref-name>
                <res-type>javax.jms.QueueConnectionFactory</res-type>
                <res-auth>Container</res-auth>
                <res-sharing-scope>Shareable</res-sharing-scope>
        </resource-ref>
        <message-destination-ref>
<message-destination-ref-name>jms/myqueue</message-destination-ref- name>
                
<message-destination-type>javax.jms.Queue</message-destination-type>
                <message-destination-usage>Consumes</message-destination-usage>
                <message-destination-link>MyQueue</message-destination-link>
        </message-destination-ref>


Now to configure the Geronimo, I created selecting "for ActiveMQ" option under the "JMS Resources", entered data that gave me the following deploy
plan:

<?xml version="1.0" encoding="UTF-8"?>
<connector xmlns="http://geronimo.apache.org/xml/ns/j2ee/ connector-1.2">
   <dep:environment
xmlns:dep="http://geronimo.apache.org/xml/ns/deployment-1.2";>
       <dep:moduleId>
           <dep:groupId>console.jms</dep:groupId>
           <dep:artifactId>mytest</dep:artifactId>
           <dep:version>1.0</dep:version>
           <dep:type>rar</dep:type>
       </dep:moduleId>
       <dep:dependencies>
           <dep:dependency>
               <dep:groupId>org.apache.geronimo.configs</dep:groupId>
               <dep:artifactId>activemq-broker</dep:artifactId>
               <dep:type>car</dep:type>
           </dep:dependency>
       </dep:dependencies>
   </dep:environment>
   <resourceadapter>
       <resourceadapter-instance>
           <resourceadapter-name>mytest</resourceadapter-name>
           <nam:workmanager
xmlns:nam="http://geronimo.apache.org/xml/ns/naming-1.2";>
               <nam:gbean-link>DefaultWorkManager</nam:gbean-link>
           </nam:workmanager>
       </resourceadapter-instance>
       <outbound-resourceadapter>
           <connection-definition>

<connectionfactory-interface>javax.jms.QueueConnectionFactory</ connectionfactory-interface>
               <connectiondefinition-instance>
                   <name>jms/mycon</name>
                   <connectionmanager>
                       <xa-transaction>
                           <transaction-caching/>
                       </xa-transaction>
                       <single-pool>
                           <match-one/>
                       </single-pool>
                   </connectionmanager>
               </connectiondefinition-instance>
           </connection-definition>
       </outbound-resourceadapter>
   </resourceadapter>
   <adminobject>
       <adminobject-interface>javax.jms.Queue</adminobject-interface>

<adminobject-class>org.apache.activemq.command.ActiveMQQueue</ adminobject-class>
       <adminobject-instance>
<message-destination-name>jms/myqueue</message- destination-name>
           <config-property-setting
name="PhysicalName">jms/myqueue</config-property-setting>
       </adminobject-instance>
   </adminobject>
   <adminobject>
       <adminobject-interface>javax.jms.Topic</adminobject-interface>

<adminobject-class>org.apache.activemq.command.ActiveMQTopic</ adminobject-class>
   </adminobject>
</connector>


In the "JMS Resources" list, I now have:

mytest (console.jms/mytest/1.0/rar)
Type    Name    Deployed As     State   Actions
Connection Factory      jms/mycon       Server-wide     running         
Queue   jms/myqueue     Server-wide     running         

( One question at this point, how can I delete a "JMS Resource Groups" entry
like the one I created? )


Running, I receive the following exception:

Caused by: javax.naming.NotContextException: jms/mycon
       at
org.apache.xbean.naming.context.AbstractContext.lookup(AbstractContex
t.java:167)
       at
org.apache.xbean.naming.context.AbstractContext.lookup(AbstractContex
t.java:603)
       at javax.naming.InitialContext.lookup(InitialContext.java:351)
       at
com.megasis.utils.jms.LoggingFacade.postMessage(LoggingFacade.java:17
6)
       ... 21 more


I'm missing something, probably, and I can't find any good tutorials on how
to setup JMS without using MDB ...

Any help appreciated.

Thanks
--
View this message in context: 
http://www.nabble.com/JMS-config-and-use-under-geronimo-tp18875397s134p18875397.html
Sent from the Apache Geronimo - Users mailing list archive at Nabble.com.


Reply via email to