我对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);
}
这是我的applicationContext
<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>
不知道我为什么没有收到邮件。有人可以帮忙吗?
答案 0 :(得分:0)
你说“另一个程序”。如果它真的是另一个程序,则它们是不同的myChannel
s。
我认为您要做的是向JMS发送消息,以便第一个程序的myChannel
将从JMS获取消息。
您需要在第二个程序中使用出站通道适配器将消息发送到JMS队列。