1.Service
1.1 新建一个类,实现MessageListener,在类的顶部添加(将bean标示为消息驱动):
@MessageDriven(activationConfig=
{
@ActivationConfigProperty(propertyName="destinationType",propertyValue="javax.jms.Queue"),
@ActivationConfigProperty(propertyName="destination",propertyValue="queue/printMsg")
}
)
1.2 覆写onMessage方法
public void onMessage(Message msg) {
System.out.println("---PrintBean.onMessage(Message msg) is process---");
try {
TextMessage tmsg = (TextMessage) msg;
this.print(tmsg.getText());
} catch (JMSException e) {
e.printStackTrace();
}
}
2. Client
2.1 jsp配置如下:
<%
QueueConnection cnn = null;
QueueSender sender = null;
QueueSession sess = null;
Queue queue = null;
try{
Properties p = new Properties();
p.setProperty("java.naming.factory.initial","org.jnp.interfaces.NamingContextFactory");
p.setProperty("java.naming.factory.url.pkgs","org.jboss.naming:org.jnp.interfaces");
p.setProperty("java.naming.provider.url","localhost:1099");
Context ct = new InitialContext(p);
//建立一个连接工厂
QueueConnectionFactory factory = (QueueConnectionFactory)ct.lookup("ConnectionFactory");
//通过连接工程取得连接
cnn = factory.createQueueConnection();
//通过连接创建一个session
sess = cnn.createQueueSession(false,QueueSession.AUTO_ACKNOWLEDGE);
//查询目的地
queue = (Queue)ct.lookup("queue/printMsg");
}catch(Exception e){
e.printStackTrace();
}
//发送消息
TextMessage msg = sess.createTextMessage("你好,这是我的第一个MDB");
sender = sess.createSender(queue);
sender.send(msg);
sess.close();
out.println("消息已经发送到控制台中,请查收...");
%>