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

📄 mdbexample.java

📁 jboss messaging examples, 基于jboss messaging的jms应用例子
💻 JAVA
字号:
/** * JBoss, Home of Professional Open Source * * Distributable under LGPL license. * See terms of license at gnu.org. */package org.jboss.example.jms.mdb;import javax.ejb.EJBException;import javax.ejb.MessageDrivenBean;import javax.ejb.MessageDrivenContext;import javax.jms.Connection;import javax.jms.ConnectionFactory;import javax.jms.Destination;import javax.jms.JMSException;import javax.jms.Message;import javax.jms.MessageListener;import javax.jms.MessageProducer;import javax.jms.Session;import javax.jms.TextMessage;import javax.naming.InitialContext;/** * @author <a href="mailto:ovidiu@feodorov.com">Ovidiu Feodorov</a> * @version <tt>$Revision: 2868 $</tt>  * $Id: MDBExample.java 2868 2007-07-10 20:22:16Z timfox $ */public class MDBExample implements MessageDrivenBean, MessageListener{   private MessageDrivenContext ctx;      private ConnectionFactory cf = null;      public void onMessage(Message m)   {      Session session = null;      Connection conn = null;            try      {         TextMessage tm = (TextMessage)m;                  String text = tm.getText();         System.out.println("message " + text + " received");         String result = process(text);         System.out.println("message processed, result: " + result);                  conn = getConnection();         session = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);                  Destination replyTo = m.getJMSReplyTo();         MessageProducer producer = session.createProducer(replyTo);         TextMessage reply = session.createTextMessage(result);                  producer.send(reply);         producer.close();               }      catch(Exception e)      {         ctx.setRollbackOnly();         e.printStackTrace();         System.out.println("The Message Driven Bean failed!");      }      finally      {         if (conn != null)         {            try            {               closeConnection(conn);            }            catch(Exception e)            {               System.out.println("Could not close the connection!" +e);            }         }      }   }      private String process(String text)   {      // flip the string            String result = "";            for(int i = 0; i < text.length(); i++)      {         result = text.charAt(i) + result;      }      return result;   }      public Connection getConnection() throws Exception   {            Connection connection = null;            try      {         connection = cf.createConnection();         connection.start();              }      catch(Exception e )      {         if(connection != null)         {            closeConnection(connection);         }         System.out.println("Failed to get connection...exception is " + e);         throw e;      }            return connection;   }      public void closeConnection(Connection con) throws Exception   {            try      {         con.close();               }      catch(JMSException e)      {         System.out.println("Could not close connection " + con + " exception was " + e);      }   }      public void ejbCreate()   {      try      {         InitialContext ic = new InitialContext();                  cf = (ConnectionFactory)ic.lookup("java:/JmsXA");                  ic.close();      }      catch(Exception e)      {         e.printStackTrace();         throw new EJBException("Failure to get connection factory: " + e.getMessage());      }   }      public void ejbRemove() throws EJBException   {      try      {         if(cf != null)         {            cf = null;         }      }      catch(Exception e)      {         throw new EJBException("ejbRemove", e);      }   }      public void setMessageDrivenContext(MessageDrivenContext ctx)   {      this.ctx = ctx;   }      }

⌨️ 快捷键说明

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