利用 WAS CE v2.1 创建基于 JMS 的应用
2009-11-11 00:00:00 来源:WEB开发网从代码中可见,MDB 继承了 java.jms.MessageListeneron 接口,并在 onMessage() 方法中接收并处理消息。当有消息到达时,MDB 的 onMessage() 方法会被自动执行,参数 message 就是所接收到的消息。通过 @MessageDriven 及 @ActivationConfigProperty 对 JMS 资源引用,指定了该 MDB 可以接收的消息来源。ShopAccountant 与 ShopStorage 都只接收 OrderTopic 中传递的消息。
点对点消息
发送消息
示例中,仓库完成提货后需要通知运输部门。因此,需要在 ShopStorage 中添加相应代码,以完成发送消息的动作。
以下是 ShopStorage 中添加的代码:
清单 9. ShopStorage.javapublic class ShopStorage implements MessageListener {
@Resource(name = "OrderConnectionFactory")
private ConnectionFactory factory;
@Resource(name = "OrderQueue")
private Queue orderQueue;
public void onMessage(Message message) {
TextMessage textMessage = (TextMessage) message;
try {
......
Connection connection;
connection = factory.createConnection();
Session sess = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
TextMessage msg = sess.createTextMessage();
msg.setStringProperty("CustomerId", customerId);
msg.setStringProperty("GoodsId", goodsId);
MessageProducer messageProducer = sess.createProducer(orderQueue);
messageProducer.send(msg);
System.out.println("ShopStorage: get ready to deliver goods.");
} catch (JMSException e) {
e.printStackTrace();
}
}
}
更多精彩
赞助商链接