【发布时间】:2014-03-17 06:58:40
【问题描述】:
我正在查看 Apache Camel Jms 连接的各种示例,并试图弄清楚我是否可以
在 QueueConnectionFactory 中将自定义 Jms 提供程序连接到我的 JmsComponent?
所以我想通过 jndi 查找队列名称
但我有自定义 QueueConnectionFactory 来创建连接
然后从那个电话createQueueSession。
我的sudo代码如下:
<bean id="customQueueConnectionFactory" class="QueueConnectionFactoryImpl"/>
<bean id="authenticatedConnectionFactory" class="org.springframework.jms.connection.UserCredentialsConnectionFactoryAdapter">
<property name="targetConnectionFactory" ref="customQueueConnectionFactory"/>
<property name="username" value="username"/>
<property name="password" value="password"/>
</bean>
<bean id="jms" class="org.apache.camel.component.jms.JmsComponent">
<property name="connectionFactory" ref="authenticatedConnectionFactory"/>
</bean>
这是失败的,因为它不是连接 QueueConnectionFactory 的正确方法。
QueueConnectionFactoryImpl.createConnection(Ljava/lang/String;Ljava/lang/String;)Ljavax/jms/Connection;
at org.springframework.jms.connection.UserCredentialsConnectionFactoryAdapter.doCreateConnection(UserCredentialsConnectionFactoryAdapter.java:175)
at org.springframework.jms.connection.UserCredentialsConnectionFactoryAdapter.createConnection(UserCredentialsConnectionFactoryAdapter.java:150)
at org.springframework.jms.support.JmsAccessor.createConnection(JmsAccessor.java:184)
at org.springframework.jms.listener.AbstractJmsListeningContainer.createSharedConnection(AbstractJmsListeningContainer.java:405)
at org.springframework.jms.listener.AbstractJmsListeningContainer.establishSharedConnection(AbstractJmsListeningContainer.java:373)
at org.springframework.jms.listener.DefaultMessageListenerContainer.establishSharedConnection(DefaultMessageListenerContainer.java:767)
at org.springframework.jms.listener.AbstractJmsListeningContainer.doStart(AbstractJmsListeningContainer.java:280)
at org.springframework.jms.listener.AbstractJmsListeningContainer.start(AbstractJmsListeningContainer.java:265)
at org.springframework.jms.listener.DefaultMessageListenerContainer.start(DefaultMessageListenerContainer.java:568)
at org.apache.camel.component.jms.JmsConsumer.startListenerContainer(JmsConsumer.java:105)
at org.apache.camel.component.jms.JmsConsumer.prepareAndStartListenerContainer(JmsConsumer.java:171)
at org.apache.camel.component.jms.JmsConsumer.doStart(JmsConsumer.java:155)
有什么提示吗?我正在使用 Spring 3.2.4 版和 Apache Camel 2.12.2 版
【问题讨论】:
标签: jms apache-camel spring-jms