Java 无法识别传输方案:[tcp]
我已经好几年没有和activeMQ合作了。我现在正在实现一个新的activeMQ服务器,其内部和外部都有客户端应用程序 我在本地测试了我的外部客户端应用程序,但当我部署它时,我开始出现如下错误:Java 无法识别传输方案:[tcp],java,spring,activemq,Java,Spring,Activemq,我已经好几年没有和activeMQ合作了。我现在正在实现一个新的activeMQ服务器,其内部和外部都有客户端应用程序 我在本地测试了我的外部客户端应用程序,但当我部署它时,我开始出现如下错误: 2014-04-10 08:01:31,392 [signInResultListenerContainer-1] ERROR org.springframework.jms.listener.DefaultMessageListenerContainer - Could not refresh JMS
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>
关于导致错误的原因有什么想法吗?我相信您的类路径中没有必要的资源。看看这个,并从类路径检查ActiveMQ JAR/资源。最简单的解决方法是通过在ra配置中将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>
1.
20
真的
假的
我正在使用Spring Boot,这就是我解决问题的原因:
org.springframework.boot
springbootstarteractivemq
我带来了activemq所有jar文件。这是一个独立的jar,所以我只是把所有的类都带过来。你知道我可能缺少什么类名吗?OIC,META-INF/services之类的东西。我只是简单地将META-INF下的所有内容复制到我的jar中,它似乎正在工作。感谢您的帮助。这不是一个类,而是定义tcp传输实现的activemq all.jar\META-INF\services\org\apache\activemq\transport\tcp下的一个文件。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-activemq</artifactId>
</dependency>