【问题标题】:Spring, Atomikos, Tibco EMS 5.1 integration issueSpring、Atomikos、Tibco EMS 5.1 集成问题
【发布时间】:2012-04-24 06:38:20
【问题描述】:

我正在尝试在我的 Spring 应用程序中配置 Atomikos。我正在使用:

  • Atomikos 3.7.1(TransactionsEssentials)
  • 春季 3.0.2
  • Tibco EMS 5.1

谁能给我使用 JNDI for JMS 的连接工厂的配置详细信息以及有关 Tibco EMS 配置的详细信息?

我尝试了以下方法:

 <bean id="jmsTemplate2" class="org.springframework.jms.core.JmsTemplate" >
    <property name="connectionFactory" ref="amqConnectionFactory" />
    <property name="defaultDestination" ref="queue" />
    <property name="sessionTransacted" value="true"/>
    <property name="messageConverter" ref="messageConverter"></property>
</bean>


<bean id="amqConnectionFactory" class="com.atomikos.jms.AtomikosConnectionFactoryBean"    init-method="init">
    <property name="uniqueResourceName" value="XAEMS" />
    <property name="xaConnectionFactory" ref="connectionFactory" />
    <property name="poolSize" value="10" />
</bean>

<jee:jndi-lookup id="connectionFactory" jndi-name="emsConnectionFactory">
    <jee:environment>
        java.naming.factory.initial=com.tibco.tibjms.naming.TibjmsInitialContextFactory
        java.naming.provider.url=tibjmsnaming://localhost:7222
    </jee:environment>
</jee:jndi-lookup> 

<jee:jndi-lookup id="queue" jndi-name="emsQueue">
    <jee:environment>
        java.naming.factory.initial=com.tibco.tibjms.naming.TibjmsInitialContextFactory
        java.naming.provider.url=tibjmsnaming://localhost:7222
    </jee:environment>
</jee:jndi-lookup>

但是得到这个错误:

Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'amqConnectionFactory' defined in file [C:\springsource\vfabric-tc-server-developer-2.6.4.RELEASE\spring-insight-instance\wtpwebapps\iRebal-Backend-Poc-Web-Integration-Final-xa\WEB-INF\classes\META-INF\spring\batch\jobs\priority-queue.xml]: Initialization of bean failed; nested exception is org.springframework.beans.ConversionNotSupportedException: Failed to convert property value of type 'com.tibco.tibjms.naming.TibjmsFederatedQueueConnectionFactory' to required type 'javax.jms.XAConnectionFactory' for property 'xaConnectionFactory'; nested exception is java.lang.IllegalStateException: Cannot convert value of type [com.tibco.tibjms.naming.TibjmsFederatedQueueConnectionFactory] to required type [javax.jms.XAConnectionFactory] for property 'xaConnectionFactory': no matching editors or conversion strategy found
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:527)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:293)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:290)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:192)
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:322)
... 39 more
Caused by: org.springframework.beans.ConversionNotSupportedException: Failed to convert property value of type 'com.tibco.tibjms.naming.TibjmsFederatedQueueConnectionFactory' to required type 'javax.jms.XAConnectionFactory' for property 'xaConnectionFactory'; nested exception is java.lang.IllegalStateException: Cannot convert value of type [com.tibco.tibjms.naming.TibjmsFederatedQueueConnectionFactory] to required type [javax.jms.XAConnectionFactory] for property 'xaConnectionFactory': no matching editors or conversion strategy found
at org.springframework.beans.BeanWrapperImpl

【问题讨论】:

    标签: spring configuration atomikos tibco-ems


    【解决方案1】:

    这个答案对于OP来说为时已晚,但为了后代:

    你想要的类是 com.tibco.tibjms.TibjmsXAConnectionFactory。

    【讨论】:

      【解决方案2】:

      似乎在com.atomikos.jms.AtomikosConnectionFactoryBean 类中有一个名为xaConnectionFactory 的字段,它的类型(或其getter 返回类型)是javax.jms.XAConnectionFactory。但是,在 Spring 配置文件中,您将该字段配置为使用类型为 com.tibco.tibjms.naming.TibjmsFederatedQueueConnectionFactory 的实例进行设置。

      显然com.tibco.tibjms.naming.TibjmsFederatedQueueConnectionFactory 不能转换为javax.jms.XAConnectionFactory

      【讨论】:

      • 没错。我想知道 tibco 是否有实现 javax.jms.XAConnectionFactory 接口的 connectionFactory 类。我已经能够成功地使用 ActiveMQ 对其进行测试。
      猜你喜欢
      • 2020-07-31
      • 1970-01-01
      • 2017-02-11
      • 1970-01-01
      • 1970-01-01
      • 2014-11-21
      • 2016-02-22
      • 2019-04-12
      • 1970-01-01
      相关资源
      最近更新 更多