I have a bit difficulty in understanding:
<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 the "resource-ref" defines a jndi resource on the J2EE platform. But
what about the "message-destination-ref"?
When should I use "Consumes"/"Produces"? Should I create 2 entries, one for
when I post, and another when a retrieve a message? Is that it? (noob
question really lol)
What about the "message-destination-link" what value should it have? Must it
match some value around? Because I don't use it for message posting ... for
that I use "java:comp/env/jms/myqueue" as defined in
"message-destination-ref-name" (this is the physical name right?) ?
Thanks
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-tp18875397s134p18889658.html
Sent from the Apache Geronimo - Users mailing list archive at Nabble.com.