The HTTP transport classes are in the activemq-optional jar.

On Fri, May 20, 2011 at 11:09 PM, Michael <mtarullo...@optonline.net> 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);
>
>        }
>
>    }
>
> }
>
>
>
>

Reply via email to