【问题标题】:Sending Message to QueueChannel向 QueueChannel 发送消息
【发布时间】:2015-07-13 04:31:55
【问题描述】:

我对 JMS 的了解非常薄弱,请多多包涵。

我正在尝试向队列消息通道发送一条简单的消息。

@Autowired
private MessageChannel myChannel = null;

@Test
public void testRecieveMethod() {
    Message m = ((QueueChannel)myChannel).receive();
    System.out.println("HELLO");
}

程序按预期挂起,但是当我尝试从另一个程序发送消息时,它似乎没有被接收到。

private MessageChannel channel = null;

@Test
public void testMessage() {
    channel = super.ctx.getBean("myChannel", MessageChannel.class);
    jackMessage message = new ameerMessage("Hello my name is jack");
    Message<ameerMessage> msg = MessageBuilder.withPayload(message).build();
    channel.send(msg, 10000);
}

这是我的应用程序上下文

<int:channel id="myChannel">
     <int:queue capacity="10"/>
 </int:channel>

 <jms:inbound-channel-adapter id="JmsAdapter"
     connection-factory="connectionFactory"
     destination="myQueue"
     channel="myChannel">
     <int:poller fixed-rate = "1000"/>
 </jms:inbound-channel-adapter>

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

<bean name="connectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
  <property name="brokerURL">
      <value>tcp://localhost:61616</value>
  </property> 
</bean>

<bean id="myProcessor"
   class="com.jack.springintegration.Processor"/>
</beans>

不知道为什么我没有收到邮件。有人可以帮忙吗?

【问题讨论】:

    标签: spring jms spring-integration


    【解决方案1】:

    你说“另一个程序”。如果它真的是另一个程序,那么它们是不同的myChannels。

    我认为您要做的是向 JMS 发送消息,以便第一个程序的 myChannel 将从 JMS 获取消息。

    您需要在第二个程序中使用出站通道适配器将消息发送到 JMS 队列。

    【讨论】:

    • 我确实看过一本集成书,它在某处提到了这一点。感谢您澄清这一点。
    猜你喜欢
    • 2015-11-30
    • 2019-09-16
    • 2014-04-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-17
    • 2019-11-13
    相关资源
    最近更新 更多