0

アクティブな MQ のコンシューマー クライアントを作成しようとしています。しかし、私はメッセージを消費できませんでした。間違ったユーザー ID とパスワードを設定しても、例外は発生しません。誰かが私の設定をチェックしてください:

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

<bean id="jmsFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
        <property name="brokerURL">
            <value>nio://localhost:61616</value> 
        </property>
        <property name="userName"><value>saffsd</value></property>
        <property name="password"><value>asdfa</value></property>
    </bean>
<bean id="pooledJmsFactory" class="org.apache.activemq.pool.PooledConnectionFactory" destroy-method="stop">
    <property name="connectionFactory">
        <ref local="jmsFactory"/>
    </property>
</bean>



<bean id="LV_TOPIC" class="org.apache.activemq.command.ActiveMQTopic" autowire="constructor">
    <constructor-arg value="TOPIC.LV_REPORTING" />
  </bean>





 <bean id="LV_QUEUE" class="org.apache.activemq.command.ActiveMQQueue" autowire="constructor">
    <constructor-arg value="QUEUE.LV_REPORTING" />
  </bean> 





<bean id="portfolioListener" class="com.oneinterface.enterprise.tradinggateway.listeners.Listener">
  </bean>



<bean id="javaConsumer" class="org.springframework.jms.listener.DefaultMessageListenerContainer">
    <property name="connectionFactory" ref="pooledJmsFactory"/>
    <property name="destination" ref="LV_TOPIC" />
    <property name="messageListener" ref="portfolioListener" />
  </bean>




<bean id="ionaConsumer" class="org.springframework.jms.listener.DefaultMessageListenerContainer">
    <property name="connectionFactory" ref="pooledJmsFactory"/>
    <property name="destination" ref="LV_QUEUE" />
    <property name="messageListener" ref="portfolioListener" />
  </bean>



</beans>

私のJavaコードは次のとおりです。

public static void main(String[] args) {
    FileSystemXmlApplicationContext context = new FileSystemXmlApplicationContext("config/LVConsumer.xml");
    DefaultMessageListenerContainer defaultListen = (DefaultMessageListenerContainer) context.getBean("javaConsumer");
    defaultListen.start();
    System.err.println("Consuming message from Topic >>" + defaultListen.getDestination().toString());

    DefaultMessageListenerContainer queueListen = (DefaultMessageListenerContainer) context.getBean("ionaConsumer");
    queueListen.start();
    System.err.println("Consuming message from Queue >>" + queueListen.getDestination().toString());

}

ありがとうございます :)

4

1 に答える 1

0

このように org.springframework.jms.connection.UserCredentialsConnectionFactoryAdapter 内に jmsFactory をラップしてみてください

<bean id="userCredentialsConnectionFactory"
        class="org.springframework.jms.connection.UserCredentialsConnectionFactoryAdapter">
        <property name="targetConnectionFactory">
            <ref bean="jmsFactory" />
        </property>
        <property name="username">
            <value>user</value>
        </property>
        <property name="password">
            <value>password</value>
        </property>
    </bean>

jmsFactory の代わりに userCredentialsConnectionFactory を使用します。

于 2012-05-24T09:03:44.313 に答える