Java 如何在没有spring的情况下创建ActiveMQ使用者?
我创建了一个必须使用activemq主题的应用程序,但在这个项目中,我们不需要使用SpringXML。我只创建了一个名为ActiveMQConsumer的类,它实现了MessageListener并重写了onMessage方法,但什么也没发生。。。这个方法行吗?还是少了什么?我目前正在通过tcp连接Java 如何在没有spring的情况下创建ActiveMQ使用者?,java,jms,activemq,Java,Jms,Activemq,我创建了一个必须使用activemq主题的应用程序,但在这个项目中,我们不需要使用SpringXML。我只创建了一个名为ActiveMQConsumer的类,它实现了MessageListener并重写了onMessage方法,但什么也没发生。。。这个方法行吗?还是少了什么?我目前正在通过tcp连接 public class ActiveMQConsumer implements MessageListener { public ActiveMQConsumer() throws JMSExc
public class ActiveMQConsumer implements MessageListener {
public ActiveMQConsumer() throws JMSException {
try {
ConnectionFactory factory = new ActiveMQConnectionFactory(CATALOG_BROKER_URL.getValue());
Connection connection = factory.createConnection();
connection.start();
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
Destination destination = session.createTopic(CATALOG_TOPIC_NAME.getValue());
MessageConsumer consumer = session.createConsumer(destination);
consumer.setMessageListener(this);
} catch (JMSException e) {
System.out.println("Error");
}
}
@Override
public void onMessage(final Message message) {
LOGGER.info("Start consuming message from Catalog");
try {
if (message instanceof TextMessage) {
TextMessage txtMessage = (TextMessage) message;
System.out.println("Message: " + txtMessage.getText());
} else {
System.out.println("Invalid Message !");
}
} catch (JMSException e) {
System.out.println("Exception" + e);
}
}
}我已经解决了使用ContextListener调用可运行类的问题。只要把它放到web.xml中就可以了。这个类是如何使用的?您是否正在某处执行
新建ActiveMQConsumer()
?它是用@Component
注释的,所以spring会这样做吗?仅仅编写一个类并不意味着它可以在运行时使用。可能相关:@zapl我不想使用spring,我看到了一些不需要它的例子。。。我怎么做?啊,好的。不需要弹簧。您的代码是否正常运行?您是否已验证它是否建立了连接?是否有发布消息的内容?在运行程序后,如果在activeMQ UI中,您可以看到“no of consumer”对应于该主题为1,那么您可以确保您的consumer运行正常,并且存在一些不同的问题,但是如果consumer没有在那里注册,您需要了解消费者的执行情况