【问题标题】:Apache Camel JMS Connection to QueueConnectionFactory using SpringApache Camel JMS 使用 Spring 连接到 QueueConnectionFactory
【发布时间】: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


    【解决方案1】:

    camel-jms 使用 Spring JMS,因此您只需使用 Spring 方式连接即可。乍一看,你的 spring 看起来还不错。

    记得在 Camel 中使用“jms”作为组件名,因为那是你给组件的 id。

    【讨论】:

    • 看起来我的问题与 QueueuConnectionFactory 与 spring 框架的接线有关。我添加了异常详细信息。我仍在试图弄清楚这一点。
    猜你喜欢
    • 1970-01-01
    • 2017-02-14
    • 1970-01-01
    • 2020-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-19
    相关资源
    最近更新 更多