2013-08-12 3 views
0

Прежде всего, я новичок в JSM. Я пытаюсь создать пул соединения для JMS ActiveMQ Использование фабрики соединений ActiveMQConnectionFactory мне удается отправить/получить сообщения, но с использованием PooledConnectionFactoryBean он потерпел неудачу с этой ошибкой:Как использовать PooledConnectionFactoryBean с ActiveMQ

Exception in thread "Thread-0" java.lang.NoClassDefFoundError: org/springframework/beans/factory/FactoryBean 
    at java.lang.ClassLoader.defineClass1(Native Method) 
    at java.lang.ClassLoader.defineClass(ClassLoader.java:791) 
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) 
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:449) 
    at java.net.URLClassLoader.access$100(URLClassLoader.java:71) 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:361) 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:423) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:356) 
    at jmxproducer.JMXProducerTest.run(JMXProducerTest.java:28) 
    at java.lang.Thread.run(Thread.java:722) 
Caused by: java.lang.ClassNotFoundException: org.springframework.beans.factory.FactoryBean 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:366) 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:423) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:356) 
    ... 14 more 
Exception in thread "Thread-1" java.lang.NoClassDefFoundError: org/apache/activemq/pool/PooledConnectionFactoryBean 
    at jmxproducer.JMXProducerTest.run(JMXProducerTest.java:28) 
    at java.lang.Thread.run(Thread.java:722) 
Exception in thread "Thread-2" java.lang.NoClassDefFoundError: org/apache/activemq/pool/PooledConnectionFactoryBean 
    at jmxproducer.JMXProducerTest.run(JMXProducerTest.java:28) 
    at java.lang.Thread.run(Thread.java:722) 
Exception in thread "Thread-3" java.lang.NoClassDefFoundError: org/apache/activemq/pool/PooledConnectionFactoryBean 
    at jmxproducer.JMXProducerTest.run(JMXProducerTest.java:28) 
    at java 

.lang.Thread.run(Thread.java:722) 

Вот исходный код:

package jmxproducer; 

import javax.jms.*; 
import org.apache.activemq.ActiveMQConnectionFactory; 
import org.apache.activemq.pool.PooledConnectionFactoryBean; 

public class JMXProducerTest implements Runnable { 

    private String message; 

    public JMXProducerTest(String message) { 
     this.message = message; 
    } 

    public String getMessage() { 
     return message; 
    } 

    public void setMessage(String message) { 
     this.message = message; 
    } 

    @Override 
    public void run() { 
     try { 
      ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory("tcp://localhost:61616"); 

      PooledConnectionFactoryBean pool = new PooledConnectionFactoryBean(); 
      pool.setConnectionFactory(connectionFactory); 

      // Create a Connection 
      Connection connection = connectionFactory.createConnection(); 
      connection.start(); 

      // Create a Session 
      Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); 

      // Create the destination (Topic or Queue) 
      Destination destination = session.createQueue("MY.QUEUE"); 

      // Create a MessageProducer from the Session to the Topic or Queue 
      MessageProducer producer = session.createProducer(destination); 
      producer.setDeliveryMode(DeliveryMode.NON_PERSISTENT); 
      // Create a messages 
      TextMessage msg = session.createTextMessage(message); 
      producer.send(msg); 
      session.close(); 
      connection.close(); 
     } catch (JMSException e) { 
      e.printStackTrace(); 
     } 
    } 
} 

Что я пропустил? Я добавил в этой банке классов: ActiveMQ-все-5.8.0.jar

Спасибо, kdureidy

ответ

0

Добавили ли вы пружину библиотеку в свой проект?

Ошибка

java.lang.ClassNotFoundException: org.springframework.beans.factory.FactoryBean 

, кажется, указывает, что весна-бобы-X.jar отсутствует из проекта (где X является версия Spring, что вы не хватает).

+0

Вы правы, мне нужно было добавить две банки, spring-bean-x.jar и activemq-pool-x.jar – kdureidy

Смежные вопросы