我正在开发 JMS 队列以满足 JBOSS AS 7 的要求。 我正在用头撞墙:( 我最终在队列中收到此错误。当所有这些配置都是 applicationContext.xml 的一部分时,它可以正常工作。我们正在避免使用 cml 配置并转向 java 配置。这就是问题出现的时候。请帮忙!!!
这是standalone.xml中的队列配置:
<jms-queue name="ticketOrderQueue">
<entry name="queue/ticketOrderQueue"/>
</jms-queue>
这是我的 java spring 配置类。
//JMS Configuration
@Bean
public ConnectionFactory jmsConnectionFactory() throws IllegalArgumentException, NamingException {
JndiObjectFactoryBean jndiObjectFactoryBean = new JndiObjectFactoryBean();
jndiObjectFactoryBean.setJndiName("java:/ConnectionFactory");
jndiObjectFactoryBean.afterPropertiesSet(); //HERE
return (ConnectionFactory) jndiObjectFactoryBean.getObject();
}
@Bean
public Queue requestsQueue() throws IllegalArgumentException, NamingException {
JndiObjectFactoryBean jndiObjectFactoryBean = new JndiObjectFactoryBean();
jndiObjectFactoryBean.setJndiName("queue/ticketOrderQueue");
jndiObjectFactoryBean.setProxyInterface(Queue.class);
jndiObjectFactoryBean.afterPropertiesSet();
logger.debug("The Quues is :" + jndiObjectFactoryBean.getObject());
return (Queue) jndiObjectFactoryBean.getObject();
}
@Bean
public JmsTemplate jmsTemplate() throws IllegalArgumentException, NamingException {
final JmsTemplate jmsTemplate = new JmsTemplate(jmsConnectionFactory());
jmsTemplate.setDefaultDestination(requestsQueue());
return jmsTemplate;
}
@Bean
public CustomerDetailedReportJMSListener queueMessageReceiver() {
return new CustomerDetailedReportJMSListener();
}
@Bean
public DefaultMessageListenerContainer jmsListenerContainer() throws IllegalArgumentException, NamingException {
DefaultMessageListenerContainer dmlc = new DefaultMessageListenerContainer();
dmlc.setConnectionFactory(jmsConnectionFactory());
dmlc.setDestination(requestsQueue());
MessageListenerAdapter listener = new MessageListenerAdapter();
listener.setDelegate(queueMessageReceiver());
listener.setDefaultListenerMethod("onMessage");
dmlc.setMessageListener(listener);
dmlc.setConcurrentConsumers(10);
dmlc.afterPropertiesSet();
dmlc.start();
return dmlc;
最佳答案
好吧,经过大量的试验和错误,结果发现我的类路径因 jms jar 而重载。一旦我去掉了多余的,我就不再遇到错误了。
关于java - 不是 HornetQDestination : HornetQQueue,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33639045/