2012-04-24 69 views
0

我试图在我的Spring应用程序中配置Atomikos。我使用:Spring,Atomikos,Tibco EMS 5.1集成问题

  • Atomikos公司3.7.1(TransactionsEssentials)
  • 春3.0.2
  • TIBCO EMS 5.1

可有一个人给我的使用连接工厂JNDI的详细配置信息对于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 

回答

0

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

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

+0

那就对了。我想知道tibco是否有一个实现了javax.jms.XAConnectionFactory接口的connectionFactory类。我已经能够使用ActiveMQ成功进行测试。 – shashikanthb 2012-04-24 08:00:49

0

这个答案是对OP为时已晚,但对子孙后代着想:

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