tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Hadraba Petr" <hadra...@bluetone.cz>
Subject Re: Tomcat, ActiveMQ, 'jndi.properties' file problem
Date Fri, 02 Jun 2006 10:37:16 GMT
Hi,

sorry, I forgot to note, that the resources in the context.xml and
web.xml files are replacements for the jndi.properties. I'm using
Tomcat's build-in JNDI.

It looks like you're using one Queue with the name listenerDestination.

So, try the following:
META-INF/context.xml:
<Context>
...
      <Resource
              name="jms/ConnectionFactory"
              auth="Container"
              type="org.apache.activemq.ActiveMQConnectionFactory"
              description="JMS Connection Factory"
              factory="org.apache.activemq.jndi.JNDIReferenceFactory"
              brokerURL="ssl://localhost:32450"
              brokerName="localhost"
              useEmbeddedBroker="false" />
      <Resource
              name="jms/listenerDestination"
              auth="Container"
              type="org.apache.activemq.command.ActiveMQQueue"
              factory="org.apache.activemq.jndi.JNDIReferenceFactory"
              physicalName="dms.PublicLogQueue" />
...
</Context>

WEB-INF/web.xml:
...
      <resource-env-ref>

<resource-env-ref-name>jms/ConnectionFactory</resource-env-ref-name>

<resource-env-ref-type>javax.jms.ConnectionFactory</resource-env-ref-type>
      </resource-env-ref>

      <resource-env-ref>
              <resource-env-ref-name>jms/listenerDestination</resource-env-ref-name>
              <resource-env-ref-type>javax.jms.Queue</resource-env-ref-type>
      </resource-env-ref>
...


And in the code you can obtain the Destination using
              try {
                       InitialContext ic = new InitialContext();
                       Context ctx = (Context) ic.lookup("java:comp/env");

                       ConnectionFactory cf = (ConnectionFactory)
ctx.lookup("jms/ConnectionFactory");
                       Connection conn = (Connection) cf.createConnection();
                       conn.start();

                       Session s = conn.createSession(false,
Session.CLIENT_ACKNOWLEDGE);
                       Destination d = (Destination)
ctx.lookup("jms/listenerDestination");

                       MessageProducer mp = s.createProducer(d);
                       mp.setDeliveryMode(DeliveryMode.PERSISTENT);

                       TextMessage tm = s.createTextMessage();
                       tm.setText("Foo");

                       mp.send(tm);

                       tm = s.createTextMessage();
                       tm.setText("Bar");

                       mp.send(tm);

                       conn.close();
               } catch (Exception e) {
                       e.printStackTrace();
               }
 ...


If you want to run ActiveMQ under Tomcat, not as standalone broker,
specify useEmbeddedBroker="true" in the context.xml.

The Resource tags can be also placed in the server.xml, but I have bad
experience with JDBC resources there, so I didn't try it.


Try the configuration above. This must work for you!

PETR


On 6/2/06, Maciej Łabędzki <labedzki@man.poznan.pl> wrote:
> Hadraba Petr napisał(a):
> > Hi Maciej,
> >
> > I'm connecting from Tomcat to ActiveMQ with this configuration:
> >
> Thx, but how it corresponds to my jndi.properties file?
> How should I form my configuration files (context.xml, web.xml)?
> jndi.properties:
> ---------------
> java.naming.factory.initial =
> org.activemq.jndi.ActiveMQInitialContextFactory
> brokerURL =ssl://localhost:32450
> queue.listenerDestination = dms.PublicLogQueue
>
>
> Maciej
>
>
>
> ---------------------------------------------------------------------
> To start a new topic, e-mail: users@tomcat.apache.org
> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: users-help@tomcat.apache.org
>
>


-- 
Petr Hadraba
graphic artist and software designer
http://people.hadraba-soft.com/~petr
hadrabap AT bluetone DOT cz
Mime
View raw message