我有一个旧应用程序,它处理带有 ActiveMQ 5.8.0 的 JMS 消息和一些连接到这个 ActiveMQ 的 JNDI 远程主题。
我有一个这样的连接器:
<bean class="org.apache.activemq.network.jms.JmsConnector">
<property name="outboundTopicConnectionFactory" ref="jmsConnectionFactoryTo" />
<property name="outboundClientId" value="${remote.clientId}" />
<property name="jndiOutboundTemplate" ref="jndiTemplateTo" />
<property name="preferJndiDestinationLookup" value="true" />
<property name="inboundTopicBridges">
<list>
<bean class="org.apache.activemq.network.jms.InboundTopicBridge">
<property name="inboundTopicName" value="${remote.topic.to}"/>
<property name="localTopicName" value="${local.topic.to}"/>
<property name="consumerName" value="${remote.consumer.name}"/>
<property name="selector" value="${remote.selector}"/>
</bean>
</list>
</property>
</bean>
它工作得很好,但是现在,由于某些技术原因(严格的 JMS 1.1),我需要使用“ConnectionFactory”而不是“TopicConnectionFactory”。在实际配置中,我被卡住了,因为 ActiveMQ 似乎使用“TopicConnectionFactory”而不是“ConnectionFactory”,而我的新类“MyConnectionFactoryImpl”现在实现了“ConnectionFactory”:
nested exception is org.springframework.beans.ConversionNotSupportedException:
Failed to convert property value of type 'com.webmethods.jms.impl.MyConnectionFactoryImpl'
to required type 'javax.jms.TopicConnectionFactory'
for property 'outboundTopicConnectionFactory';
nested exception is java.lang.IllegalStateException:
Cannot convert value of type [com.webmethods.jms.impl.MyConnectionFactoryImpl]
to required type [javax.jms.TopicConnectionFactory] for property 'outboundTopicConnectionFactory':
no matching editors or conversion strategy found
在“org.apache.activemq.network.jms.JmsConnector”类中,它到处使用“TopicConnectionFactory”,这在JMS 1.1 中不再推荐。
编辑:根据@Justin Bertram,我需要使用 Camel 而不是 ActiveMQ 嵌入式桥接器。但是我找不到任何可以用来替换我实际的两个 bean JMSConnector 的 XML 配置示例。保留我的 XML 配置文件的简单方法是什么?