@JmsListenet无法从Tibco Ems接收味精

时间:2019-07-16 08:47:21

标签: spring-boot jms spring-jms ems

我有一个可创建jms模板的bean,用于在ems服务器下发送或接收messgae。它使用@Bean注入连接工厂和其他工厂。

我使用@JmsListener接收消息,但是它无法从队列接收消息,并且接收者计数显示为0。

但是我尝试使用xml而不是@Bean注入bean,它可以工作。

我不知道为什么,这让我困惑了很久。

这是要与@Bean一起注入的bean

@Bean
    public ConnectionFactory connectFactory() {
        TibjmsConnectionFactory factory = new TibjmsConnectionFactory(emsUrl);
        factory.setUserName(emsUsername);
        factory.setUserPassword(emsPassword);
        return factory;
    }

    @Bean
    @Primary
    public CachingConnectionFactory cachingConnectionFactory(ConnectionFactory connectionFactory) {
        CachingConnectionFactory factory = new CachingConnectionFactory();
        factory.setTargetConnectionFactory(connectionFactory);
        factory.setSessionCacheSize(100);
        return factory;
    }

    @Bean
    public JmsTemplate jmsQueueTemplate(CachingConnectionFactory cachingConnectionFactory) {
        JmsTemplate template = new JmsTemplate();
        template.setConnectionFactory(cachingConnectionFactory);
        return template;
    }

这是xml注入

    <bean id="connectionFactory" class="com.tibco.tibjms.TibjmsConnectionFactory">
        <constructor-arg value="${ems.jms.url}" />
        <property name="UserName" value="${ems.jms.username}" />
        <property name="UserPassword" value="${ems.jms.password}" />
    </bean>
    <bean id="cachingConnectionFactory"
        class="org.springframework.jms.connection.CachingConnectionFactory">
        <property name="targetConnectionFactory" ref="connectionFactory" />
        <property name="sessionCacheSize" value="30" />
    </bean>
<bean id="jmsQueueTemplate" class="org.springframework.jms.core.JmsTemplate">
        <property name="connectionFactory">
            <ref bean="cachingConnectionFactory" />
        </property>
    </bean>

@JmsListener

@JmsListener(destination = requestQueue)
    public void process(String json) throws JsonProcessingException {
       XXXXX
    }

0 个答案:

没有答案