Not sure what you have been reading really, But you are trying to use a jms "client/producer" against the activemq webapp, not a transport, you are also missing commons-httpclient on the classpath.
/je On May 20, 2011, at 9:09 PM, Michael wrote: > I am trying to run a very simple ActiveMQ message producer client. The > source code is provided below. > > > > I am launching the app from Eclipse using the Run menu. I have configured a > Run Configuration For the client app. On the classpath tab of the Run > Configuration for the app I have included activemq-all-5.5.0.jar, > slf4j-simple-1.5.11 and httpclient-4.1.1.jar. > > > > When I run the app I get the following stack trace provided below. Can > anyone tell me what might be wrong? > > > > Thank you. > > > > Exception in thread "main" java.lang.NoClassDefFoundError: > org/apache/commons/httpclient/HttpMethod > > at > org.apache.activemq.transport.http.HttpTransportFactory.createTransport(Http > TransportFactory.java:75) > > at > org.apache.activemq.transport.TransportFactory.doConnect(TransportFactory.ja > va:141) > > at > org.apache.activemq.transport.TransportFactory.doConnect(TransportFactory.ja > va:51) > > at > org.apache.activemq.transport.TransportFactory.connect(TransportFactory.java > :80) > > at > org.apache.activemq.ActiveMQConnectionFactory.createTransport(ActiveMQConnec > tionFactory.java:243) > > at > org.apache.activemq.ActiveMQConnectionFactory.createActiveMQConnection(Activ > eMQConnectionFactory.java:258) > > at > org.apache.activemq.ActiveMQConnectionFactory.createActiveMQConnection(Activ > eMQConnectionFactory.java:230) > > at > org.apache.activemq.ActiveMQConnectionFactory.createConnection(ActiveMQConne > ctionFactory.java:178) > > at JMSActiveMQPublisherApp.Execute(JMSActiveMQPublisherApp.java:39) > > at JMSActiveMQPublisherApp.main(JMSActiveMQPublisherApp.java:28) > > Caused by: java.lang.ClassNotFoundException: > org.apache.commons.httpclient.HttpMethod > > at java.net.URLClassLoader$1.run(Unknown Source) > > at java.security.AccessController.doPrivileged(Native Method) > > at java.net.URLClassLoader.findClass(Unknown Source) > > at java.lang.ClassLoader.loadClass(Unknown Source) > > at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) > > at java.lang.ClassLoader.loadClass(Unknown Source) > > ... 10 more > > > > import java.util.Vector; > > > > import javax.jms.Connection; > > import javax.jms.Session; > > import javax.jms.Destination; > > import javax.jms.DeliveryMode; > > import javax.jms.MessageProducer; > > import javax.jms.TextMessage; > > > > import org.apache.activemq.ActiveMQConnection; > > import org.apache.activemq.ActiveMQConnectionFactory; > > > > public class JMSActiveMQPublisherApp > > { > > private String user = ActiveMQConnection.DEFAULT_USER; > > private String password = ActiveMQConnection.DEFAULT_PASSWORD; > > private String url = "http://localhost:8161/"; > > private String subject = "Subject.One"; > > private int messageCount = 10; > > private long sleepTime = 10000; > > > > > > private Destination destination; > > > > public static void main(String[] args) > > { > > JMSActiveMQPublisherApp app = new JMSActiveMQPublisherApp( ); > > app.Execute(); > > } > > > > public void Execute( ) > > { > > Connection connection = null; > > try > > { > > // Create the connection. > > ActiveMQConnectionFactory connectionFactory = > > new ActiveMQConnectionFactory(user, password, url); > > connection = connectionFactory.createConnection(); > > connection.start(); > > > > // Create the session > > // The argument false indicates that this session is not > transacted > > Session session = > > connection.createSession(false, Session.AUTO_ACKNOWLEDGE); > > > > // Note that this method is not for creating the physical topic. > > // The physical creation of topics is an administrative task and > > // is not to be initiated by the JMS API. > > // > > // So a publisher can not create new topics. The topics must > > // be created manually. The publisher can only send messages to > > // already existing topics. > > // > > // This appears to be a severely limited implementation of the > > // publish/subscribe model!!! > > destination = session.createTopic(subject); > > > > // Create the producer. > > MessageProducer producer = session.createProducer(destination); > > producer.setDeliveryMode(DeliveryMode.PERSISTENT); > > > > // Start sending messages > > SendLoop(session, producer); > > > > > > } > > catch (Exception e) > > { > > System.out.println("Exception: " + e.getMessage()); > > e.printStackTrace(); > > } > > finally > > { > > try > > { > > connection.close(); > > } > > catch (Throwable ignore) > > { > > } > > } > > } > > > > private void SendLoop(Session session, MessageProducer producer) throws > Exception > > { > > > > for (int i = 0; i < messageCount || messageCount == 0; i++) { > > > > TextMessage message = session.createTextMessage("This is message > " + messageCount + " for topic Subject.One!" ); > > > > producer.send(message); > > > > System.out.println("Message " + messageCount + " sent to topic > Subject.One"); > > > > Thread.sleep(sleepTime); > > } > > } > > } > > >