Thanks for the suggestion. Unfortunately, when the AMQ/lib jar files
are deployed to Tomcat session.createProducer(dest) still throws
'Error java.lang.LinkageError: loader constraints violated when
linking javax/jms/Destination'
A couple of other observations:
1. If I declare my Connection to be a jms/Connection rather than an
AMQConnection, as I've seen in some examples, connection.start()
throws 'java.lang.LinkageError: Class javax/jms/Connection violates
loader constraints' before I ever get to the createProducer() call.
2. With Tomcat 5.5.15 and AMQ 4.0 (May 8) running on the same box,
I'm also seeing some 'buggy' interactions between the two. If I try
to keep AMQ running and build and reinstall my webapp, my build
process hangs. I then have to restart AMQ and Tomcat to rebuild and
launch my webapp. On occasion I also end up with some stray java
processes that must also be killed.
Thanks for any help anyone can provide.
Brad
On May 19, 2006, at 12:25 PM, amerigo5 wrote:
Can you try adding the jar files from $ACTIVEMQ_HOME/lib/?
--
View this message in context: http://www.nabble.com/Connecting+from
+Tomcat+5.5.15-t1639639.html#a4475584
Sent from the ActiveMQ - User forum at Nabble.com.
On May 17, 2006, at 3:35 PM, brad steiner wrote:
ActiveMQ Users
We are exploring the use of ActiveMQ as part of our IT
infrastructure but have run into some difficulties connecting to a
standalone AMQ server from Tomcat 5.5.15 with both the 4.0 release
and the May 8th 2006 build (on MacOS X, JVM 1.5, using Struts
1.2.9). Using the latter, I've added incubator-activemq-4.0.jar to
$CATALINA_HOME/common/lib, included it in my class path, and added
the following code:
<< in META-INF/context.xml >>
<Context antiJARLocking="true">
<Resource
name="jms/ConnectionFactory"
auth="Container"
type="org.apache.activemq.ActiveMQConnectionFactory"
description="JMS Connection Factory"
factory="org.apache.activemq.jndi.JNDIReferenceFactory"
brokerURL="tcp://localhost:61616"
brokerName="LocalActiveMQBroker"
useEmbeddedBroker="false"/>
<Resource name="jms/someTopic"
auth="Container"
type="org.apache.activemq.command.ActiveMQTopic"
factory="org.apache.activemq.jndi.JNDIReferenceFactory"
physicalName="TEST_TOPIC.FOO"/>
<Resource name="jms/aQueue"
auth="Container"
type="org.apache.activemq.command.ActiveMQQueue"
factory="org.apache.activemq.jndi.JNDIReferenceFactory"
physicalName="TEST.FOO"/>
</Context>
<< in my struts action class >>
Context initContext = new InitialContext();
Context envContext = (Context) initContext.lookup("java:comp/env");
ActiveMQConnectionFactory connectionFactory =
(ActiveMQConnectionFactory) envContext.lookup("jms/
ConnectionFactory");
ActiveMQConnection connection = (ActiveMQConnection)
connectionFactory.createConnection();
connection.start();
ActiveMQSession session = (ActiveMQSession) connection.createSession
(false, Session.AUTO_ACKNOWLEDGE);
ActiveMQDestination dest = (ActiveMQDestination) session.createQueue
("TEST.FOO");
ActiveMQMessageProducer producer = (ActiveMQMessageProducer)
session.createProducer(dest); /* throws Threw Error
java.lang.LinkageError: loader constraints violated when linking
javax/jms/Destination */
producer.setDeliveryMode(DeliveryMode.NON_PERSISTENT);
ActiveMQTextMessage message = (ActiveMQTextMessage)
session.createTextMessage("Struts Action Sent This Message");
producer.send(message);
session.close();
connection.close();
The result is that session.createProducer(dest) throws 'Error
java.lang.LinkageError: loader constraints violated when linking
javax/jms/Destination'. I've spent several days tracking down javax/
jms/Destination declarations in jars on my classpath and removing
them but continue to get the same result. I've also tried declaring
my ActiveMQXxx variables as the javax/jms superclass of each, as in
many of the examples I've seen, but get ClassCastExceptions on the
connection factory lookup. ActiveMQ would be great addition to our
infrastructure so I'm hopeful that someone knows of a solution to
this little bump in the road.
Thanks in Advance,
Brad Steiner
Senior Software Engineer
The GreaterGood Network