我是JMS的新手,我写了一个发送者和接收者,但它工作得很好。现在我想要一个MDB用于此。我已经搜索了很多,但没有找到任何好的网站所以我正在夏天写我的方式。如果我错了,请纠正我 这不完全正常,所以我觉得我的代码有问题。
发信人:
public class MySender {
/**
* @param args
*/
public static void main(String[] args) {
try
{ //Create and start connection
Hashtable hashTable = new Hashtable();
hashTable.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.enterprise.naming.impl.SerialInitContextFactory");
hashTable.put(Context.URL_PKG_PREFIXES, "com.sun.enterprise.naming");
hashTable.put(Context.PROVIDER_URL, "http://localhost:4848");
//1) Create and start connection
InitialContext ctx=new InitialContext(hashTable);
QueueConnectionFactory f=(QueueConnectionFactory)ctx.lookup("myQueueConnectionFactory");
QueueConnection con=f.createQueueConnection();
con.start();
//2) create queue session
QueueSession ses=con.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);
//3) get the Queue object
Queue t=(Queue)ctx.lookup("myQueue");
//4)create QueueSender object
QueueSender sender=ses.createSender(t);
//5) create TextMessage object
//5) create TextMessage object
TextMessage msg=ses.createTextMessage();
msg.setText("Hello ************************************");
sender.send(msg);
con.close();
System.out.println("*****************end********************");
}catch(Exception e){System.out.println(e);} }
}
MDB和Listner:
@MessageDriven(mappedName="myQueue")
public class MyListener implements MessageListener {
public void onMessage(Message message) {
try{
if (message != null && TextMessage.class.isInstance(message)) {
System.out.println("((((((((((((((((((((((((((((((((((");
TextMessage msg=(TextMessage)message;
final XStream xsStream = new XStream();
final TextMessage textMessage = (TextMessage) message;
Reader xmlMessage = new StringReader(textMessage.getText());
Object obj = xsStream.fromXML(xmlMessage);
System.out.println("obj:::::::::::"+obj);
if (obj != null && LetterOutHeader.class.isInstance(obj)) {
LetterOutHeader letterObj = (LetterOutHeader)obj;
System.out.println("one:::::::"+letterObj.getState());
}
System.out.println("following message is received::::::::::::::::::"+msg.getText());
}
}catch(JMSException e){System.out.println(e);}
}
}
创建了一个EJB项目,添加了一个类MyListener并将其导出为jar并将其部署到服务器。
写了一个普通的java应用程序并添加了一个MySender类。