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

📄 jms.java

📁 openacs source for CPE wan management
💻 JAVA
字号:
/* * To change this template, choose Tools | Templates * and open the template in the editor. */package org.openacs.utils;import java.io.Serializable;import java.util.logging.Level;import java.util.logging.Logger;import javax.jms.ExceptionListener;import javax.jms.JMSException;import javax.jms.Message;import javax.jms.MessageConsumer;import javax.jms.MessageFormatException;import javax.jms.MessageProducer;import javax.jms.ObjectMessage;import javax.jms.QueueConnection;import javax.jms.QueueConnectionFactory;import javax.jms.QueueSession;import javax.naming.InitialContext;import javax.naming.NamingException;import org.openacs.HostsLocal;/** * * @author Administrator */public class Jms implements ExceptionListener{    private MessageProducer producer;    private QueueSession queuesession;    private javax.jms.Queue queue;    private QueueConnection conn;    public Jms () throws NamingException, JMSException {        setupJMS();    }    public void closeJMS() {        try {            queuesession.close();            conn.close();        } catch (JMSException ex) {            ex.printStackTrace();        }    }    public void setupJMS() throws NamingException, JMSException {//        try {            //System.out.println ("SERVLET: Creating JMS objects");            InitialContext iniCtx = new InitialContext();            QueueConnectionFactory qcf = (QueueConnectionFactory) iniCtx.lookup("ConnectionFactory");            queue = (javax.jms.Queue) iniCtx.lookup("queue/acsQueue");            conn = qcf.createQueueConnection();            conn.setExceptionListener(this);            conn.start();            queuesession = conn.createQueueSession(false, QueueSession.AUTO_ACKNOWLEDGE);            producer = queuesession.createProducer(queue);        //System.out.println ("SERVLET: Created.");  /*      } catch (NamingException e) {            //throw new ServletException();            Logger.getLogger(getClass().getName()).log(Level.SEVERE, e.getMessage());        } catch (JMSException e) {            //throw new ServletException();            Logger.getLogger(getClass().getName()).log(Level.SEVERE, e.getMessage());        }   */     }    public MessageConsumer createConsumer(String filter) throws JMSException {        return queuesession.createConsumer(queue, filter);    }    public void onException(JMSException e) {        System.out.println("onException " + e);        closeJMS();        try {        setupJMS();        } catch (NamingException ex) {            //throw new ServletException();            Logger.getLogger(getClass().getName()).log(Level.SEVERE, e.getMessage());        } catch (JMSException ex) {            //throw new ServletException();            Logger.getLogger(getClass().getName()).log(Level.SEVERE, e.getMessage());        }     }    public void sendResponseMessage (Serializable object, String id) throws JMSException {        ObjectMessage message = queuesession.createObjectMessage();        message.setObject(object);        if (id != null) message.setJMSCorrelationID(id);        message.setJMSExpiration(3600 * 1000);        producer.send(queue, message);    }    public void sendCallMessage (Serializable object, String id, HostsLocal host/*String oui, String sn*/) throws JMSException {        ObjectMessage msg = queuesession.createObjectMessage();        msg.setJMSMessageID(id);        msg.setJMSExpiration(3600 * 1000);        msg.setObject(object);        /*        msg.setStringProperty("OUI", oui);        msg.setStringProperty("SN", sn);        */        msg.setStringProperty("HWID", host.getHwid().toString());        msg.setStringProperty("SN", host.getSerialno());                producer.send(queue, msg);    }    public Object Receive (String filter, long timeoutReceive) throws JMSException {        System.out.println("CLIENT: Creating cosumer: " + filter + "'");        MessageConsumer consumer = queuesession.createConsumer(queue, filter);        Message mrcv;        if ((mrcv = consumer.receive(timeoutReceive)) != null) {            Object rm1;            try {                rm1 = ((ObjectMessage) mrcv).getObject();                //System.out.println("RCV1: " + mrcv.getJMSCorrelationID() + " req=" + rm1.name);                return rm1;            } catch (MessageFormatException e) {                System.out.println("MessageFormatException: " + e.getMessage());                mrcv.acknowledge();            }        }        return null;    }       }

⌨️ 快捷键说明

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