How will I send messages to Activemq
Solution 1
Download common-logging.ja r file from
http://grepcode.com/snapshot/repo1.maven.org/maven2/commons-logging/commons-logging/1.1.3/
and place this into your classpath and run again.
Solution 2
The message is from the line 38 of ActiveMQPrefetchPolicy which occurs during the initialization of the class (due it is an static field) (example of the line in grepcode http://grepcode.com/file/repository.springsource.com/org.apache.activemq/com.springsource.org.apache.activemq/5.3.0/org/apache/activemq/ActiveMQPrefetchPolicy.java#38 ) . You will need common-logging.jar as it is a dependency in the classpath of your application to run. You might get other errors. I would recommend you to follow some sample in the internet, for example the example of the Chapter 8 of the ActiveMQ in Action -> http://code.google.com/p/activemq-in-action/source/browse/#svn%2Ftrunk%2Fexamples%2Fchapter8%2Fjms-webapp-jboss%253Fstate%253Dclosed
Regards,
Luan
Hanumath
Updated on July 18, 2022Comments
-
Hanumath almost 2 years
I never work on
JMS
. Recently I downloadedActivemq
and changed port no from61616
to61617
in allconf/activemq-*.xml
files.I run the following command from command prompt and open console page on browser.C:\Users\Infratab Bangalore\Desktop\Queueing\apache-activemq-5.8.0\bin>activemq
Now I want to send messages from java code using
JMS
toActivemq
.For this I wrote the following code. And run my code using Apache Tomcat server.it's not workingThis code is implemented in Eclipse.
package PackageName; import java.io.IOException; import javax.jms.Connection; import javax.jms.ConnectionFactory; import javax.jms.Queue; import javax.jms.Session; import javax.jms.TextMessage; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.activemq.ActiveMQConnectionFactory; public class MessageProducer extends HttpServlet { @Override protected void service(HttpServletRequest arg0, HttpServletResponse arg1) throws ServletException, IOException { try { //created ConnectionFactory object for creating connection ConnectionFactory factory = new ActiveMQConnectionFactory("admin", "admin", "tcp://localhost:61617"); //Establish the connection Connection connection = factory.createConnection(); Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); Queue queue = session.createQueue("Test"); //Added as a producer javax.jms.MessageProducer producer = session.createProducer(queue); // Create and send the message TextMessage msg = session.createTextMessage(); msg.setText("TestMessage"); producer.send(msg); } catch (Exception e) { // TODO: handle exception } } }
I am getting the following error
java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory org.apache.activemq.ActiveMQPrefetchPolicy.<clinit>(ActiveMQPrefetchPolicy.java:30) org.apache.activemq.ActiveMQConnectionFactory.<init>(ActiveMQConnectionFactory.java:88) PackageName.MessageProducer.service(MessageProducer.java:20) javax.servlet.http.HttpServlet.service(HttpServlet.java:723)
can you suggest me, where I wrote wrong.
Thanks.