2

私は hornetQ への connectionFactory の spring-bean を持っています:

   <bean name="connectionFactory" class="org.hornetq.jms.client.HornetQConnectionFactory" >
            <constructor-arg value="false" />
            <constructor-arg ref="transportConfiguration" />
        </bean>

そして、このBeanはそれを使用しています:

<bean name="jmsTemplate" class="org.springframework.jms.core.JmsTemplate">
    <property name="connectionFactory" ref="connectionFactory"></property>
</bean>

'jmsTemlpate' Bean が起動しているときに、すべてがその例外で失敗します。

タイプ「org.hornetq.jms.client.HornetQConnectionFactory」のプロパティ値を必要なタイプ「javax.jms.ConnectionFactory」に変換できませんでした

つまり、jmsTemplate では、connectionFactory が javax.jms.ConnectionFactory である必要がありますが、そうではありません。

要件を満たすために「HornetQConnectionFactory」の適切な実装をダウンロードする方法と場所に関する質問です。

pom.xml でこの deps を使用します。

   <hornetq.version>2.2.13.Final</hornetq.version>
   ...
   <dependency>
        <groupId>org.hornetq</groupId>
        <artifactId>hornetq-core</artifactId>
        <version>${hornetq.version}</version>
    </dependency>

    <dependency>
        <groupId>org.hornetq</groupId>
        <artifactId>hornetq-jms</artifactId>
        <version>${hornetq.version}</version>
    </dependency>
    <dependency>
        <groupId>org.hornetq</groupId>
        <artifactId>hornetq-spring-integration</artifactId>
        <version>${hornetq.version}</version>
    </dependency>
4

2 に答える 2

4

これを行う最善の方法は、HornetQJMSClient.createConnectionFactory メソッドを使用することです

実装を直接使用していましたが、これは変更される可能性があります。

HornetQJMSClient は API の一部であるため、契約はリリース間でより適切に維持されます。

HornetQJMSClient を使用するように例を変換する必要があります...

これを見つけたブログに関しては、ブログが公開 API ではなく内部実装を使用しているため、おそらくこの質問/回答を指摘する必要があります。

于 2012-10-11T16:05:11.037 に答える
2

私は解決策を見つけたと思います:

HornetQJMSConnectionFactoryを使用するだけです(内部にJMSワードを含む)。javax.jms.ConnectionFactory である HornetQConnectionFactory の古い実装があったようですが、現在はそうではありません。

于 2012-10-10T18:57:34.273 に答える