⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 textmdb.java

📁 jboss 的官方实例程序
💻 JAVA
字号:
package org.jboss.book.jms.ex3;import javax.ejb.MessageDrivenBean;import javax.ejb.MessageDrivenContext;import javax.ejb.EJBException;import javax.jms.JMSException;import javax.jms.Message;import javax.jms.MessageListener;import javax.jms.Topic;import javax.jms.TopicConnection;import javax.jms.TopicConnectionFactory;import javax.jms.TopicPublisher;import javax.jms.TopicSession;import javax.jms.TextMessage;import javax.naming.InitialContext;import javax.naming.NamingException;import org.apache.log4j.Logger;/** An MDB that transforms the TextMessages it receives and send the transformed messages to the Topic found in the incoming message JMSReplyTo header. @author  Scott.Stark@jboss.org @version $Revision: 1.1 $ */public class TextMDB implements MessageDrivenBean, MessageListener{   private static Logger log = Logger.getLogger(TextMDB.class);   private MessageDrivenContext ctx = null;   private TopicConnection conn;   private TopicSession session;   public TextMDB()   {      log.info("TextMDB.ctor, this="+hashCode());      log.debug("ctor.StackTrace", new Throwable("ctor"));   }   public void setMessageDrivenContext(MessageDrivenContext ctx)   {      this.ctx = ctx;      log.info("TextMDB.setMessageDrivenContext, this="+hashCode());   }   public void ejbCreate()   {      log.info("TextMDB.ejbCreate, this="+hashCode());      try      {         setupPTP();      }      catch(Exception e)      {         log.error("Failed to init TextMDB", e);         throw new EJBException("Failed to init TextMDB", e);      }   }   public void ejbRemove()   {      log.info("TextMDB.ejbRemove, this="+hashCode());      ctx = null;      try      {         if( session != null )            session.close();         if( conn != null )            conn.close();      }      catch(JMSException e)      {         log.error("ejbRemove error", e);      }   }   public void onMessage(Message msg)   {      log.info("TextMDB.onMessage, this="+hashCode());      try      {         TextMessage tm = (TextMessage) msg;         String text = tm.getText() + "processed by: "+hashCode();         Topic dest = (Topic) msg.getJMSReplyTo();         sendReply(text, dest);      }      catch(Throwable t)      {         log.error("onMessage error", t);      }   }   private void setupPTP()      throws JMSException, NamingException   {      InitialContext iniCtx = new InitialContext();      Object tmp = iniCtx.lookup("java:comp/env/jms/TCF");      TopicConnectionFactory qcf = (TopicConnectionFactory) tmp;      conn = qcf.createTopicConnection();      session = conn.createTopicSession(false,         TopicSession.AUTO_ACKNOWLEDGE);      conn.start();   }   private void sendReply(String text, Topic dest)      throws JMSException   {      log.info("TextMDB.sendReply, this="+hashCode()         +", dest="+dest);      TopicPublisher sender = session.createPublisher(dest);      TextMessage tm = session.createTextMessage(text);      sender.publish(tm);      sender.close();   }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -