无法将活动的mq池化连接工厂转换为javax.jms.connectionfactory

时间:2012-03-20 18:38:57

标签: spring activemq

我正在使用spring jms模板和active mq来发送消息。我得到错误说无法将类型org.apache.activemq.pool.PooledConnectionFactory的值转换为javax.jms.ConnectionFactory。有人可以通过告诉我可能做错了什么来帮助我吗?以下是我的配置:

    <beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"     xmlns:p="http://www.springframework.org/schema/p"
    xmlns:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="http://www.springframework.org/schema/beans                 http://www.springframework.org/schema/beans/spring-beans-3.0.xsd         
    http://www.springframework.org/schema/context         
    http://www.springframework.org/schema/context/spring-context-3.0.xsd
    http://www.springframework.org/schema/jms
         http://www.springframework.org/schema/jms/spring-jms.xsd
         http://activemq.apache.org/schema/core
         http://activemq.apache.org/schema/core/activemq-core.xsd">

     <bean id="jmsFactory" class="org.apache.activemq.pool.PooledConnectionFactory"     destroy-method="stop">
    <property name="connectionFactory">
      <bean class="org.apache.activemq.ActiveMQConnectionFactory">
        <property name="brokerURL">
          <value>tcp://localhost:61616</value>
        </property>
      </bean>
    </property>
  </bean>

  <!-- Spring JMS Template -->
  <bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate">
    <property name="connectionFactory">
      <ref local="jmsFactory"/>
    </property>
    <property name="defaultDestination" ref="destination" />
  </bean>

    <bean id="destination" class="org.apache.activemq.command.ActiveMQQueue">
        <constructor-arg value="orderQueue"/>
    </bean>


    <bean id="jmsSender" class="gov.ca.dmv.AKT.integration.Beans.JMSSender">
        <property name="jmsTemplate102">
          <ref bean="jmsQueueTemplate"/>
        </property>
    </bean>

    <bean id="jmsReceiver" class="gov.ca.dmv.AKT.integration.Beans.JMSReceiver">
        <property name="jmsTemplate102">
            <ref bean="jmsQueueTemplate"/>
        </property>
    </bean>

1 个答案:

答案 0 :(得分:3)

看起来你有点过分了,试试这样设置吧......

<bean id="jmsConnectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
    <property name="brokerURL" value="tcp://localhost:61616" />
</bean>
<bean id="pooledConnectionFactory" class="org.apache.activemq.pool.PooledConnectionFactory">
    <property name="connectionFactory" ref="jmsConnectionFactory"/>
</bean>
<bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate">
    <property name="connectionFactory" ref="pooledConnectionFactory" />
</bean>