运输方案未得到承认:[tcp]

时间:2014-04-10 12:10:43

标签: java spring activemq

自从我使用activeMQ以来已经有好几年了。我现在正在内部和外部实现一个带有客户端应用程序的新activeMQ服务器。

我在本地测试了我的外部客户端应用程序,但是当我部署它时,我开始遇到如下错误:

2014-04-10 08:01:31,392 [signInResultListenerContainer-1] ERROR org.springframework.jms.listener.DefaultMessageListenerContainer - Could not refresh JMS Connection for destination 'queue://signInResult' - retrying in 5000 ms. Cause: Could not create Transport. Reason: java.io.IOException: Transport scheme NOT recognized: [tcp]

我检查了服务器上的防火墙,它是敞开的。

<bean id="amqConnectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
    <property name="brokerURL" value="tcp://xxx.30.8.163:61616"/>
</bean>

关于导致错误的原因的任何想法?

3 个答案:

答案 0 :(得分:2)

我相信你的类路径中没有必要的资源。看看这个similar issue并检查类路径中的ActiveMQ jar /资源。

答案 1 :(得分:1)

最简单的解决方法是通过在ra config

中将prefill元素设置为true来为ConnectionFactory预填充连接
        <connection-definitions>
            <connection-definition class-name="org.apache.activemq.ra.ActiveMQManagedConnectionFactory" jndi-name="java:/ConnectionFactory" enabled="true" pool-name="ConnectionFactory">
                <xa-pool>
                    <min-pool-size>1</min-pool-size>
                    <max-pool-size>20</max-pool-size>
                    <prefill>true</prefill>
                    <is-same-rm-override>false</is-same-rm-override>
                </xa-pool>
            </connection-definition>
        </connection-definitions>

答案 2 :(得分:0)

我正在使用Spring Boot,这就是为我解决的问题:

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-activemq</artifactId>
    </dependency>