java - 不是 HornetQDestination : HornetQQueue

标签 java spring

我正在开发 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/

相关文章:

java - 不使用 ObjectOutputStream 的序列化

java - 正则表达式计算字符串中单引号的数量(不包括2个连续双引号)

java - 二元运算符的操作数类型错误 '+'

尝试使用 Thymeleaf 加载 HTML 文件时出现 Spring Boot 404

mysql - Spring Hibernate MySQL,MySQLSyntaxErrorException : table does not exist

java - 在java正则表达式中转义特殊字符(不引用)

java - 无法读取另一个可分割对象中的可分割对象

java - Java 项目中包的冗余导入 - 是否有任何性能影响?

java - 如何在运行时为当前测试ApplicationContext注册Spring Context事件

java - SPNEGO 身份验证失败的自定义错误页面