📄 jms1.java
字号:
package myjms;import javax.jms.*;import javax.naming.*;import java.util.Hashtable;/** * <p>Title: </p> * <p>Description: </p> * <p>Copyright: Copyright (c) 2000</p> * <p>Company: </p> * @author not attributable * @version 1.0 * * Use this class to send and receive point-to-point messages. * To send a text message: * <code> * Jms1 jms1 = new Jms1(); * jms1.setEnvironment(hashtable); //Specify any vendor-specific JNDI settings here * jms1.sendText("Hello world"); * jms1.close(); //Release resources * </code> * * <code> * To receive a message: * Jms1 jms1 = new Jms1(); * jms1.getQueueReceiver(); * </code> */public class Jms1 implements MessageListener { private static Context context = null; private boolean transacted = false; private int acknowledgementMode = Session.AUTO_ACKNOWLEDGE; private Hashtable environment = null; private QueueConnectionFactory queueConnectionFactory = null; private QueueConnection queueConnection = null; private QueueSession queueSession = null; private QueueSender queueSender = null; private QueueReceiver queueReceiver = null; private Queue queue = null; private String queueConnectionFactoryName = "weblogic.jms.ConnectionFactory"; private String queueName = "MyJMSQueue"; public boolean isTransacted() { return transacted; } public void setTransacted(boolean transacted) { this.transacted = transacted; } public int getAcknowledgementMode() { return acknowledgementMode; } public void setAcknowledgementMode(int acknowledgementMode) { this.acknowledgementMode = acknowledgementMode; } public Hashtable getEnvironment() { return environment; } public void setEnvironment(Hashtable environment) { this.environment = environment; } public String getQueueConnectionFactoryName() { return queueConnectionFactoryName; } public void setQueueConnectionFactoryName(String queueConnectionFactoryName) { this.queueConnectionFactoryName = queueConnectionFactoryName; } public String getQueueName() { return queueName; } public void setQueueName(String queueName) { this.queueName = queueName; } Context getContext() throws Exception { if (context == null) { try { context = new InitialContext(environment); } catch(Exception ex) { ex.printStackTrace(); throw ex; } } return context; } public QueueConnectionFactory getQueueConnectionFactory() throws Exception { if (queueConnectionFactory == null) { Object obj = getContext().lookup(queueConnectionFactoryName); queueConnectionFactory = (QueueConnectionFactory) obj; } return queueConnectionFactory; } public QueueConnection getQueueConnection() throws Exception { if (queueConnection == null) { queueConnection = getQueueConnectionFactory().createQueueConnection(); queueConnection.start(); } return queueConnection; } public QueueSession getQueueSession() throws Exception { if (queueSession == null) { queueSession = getQueueConnection().createQueueSession(transacted, acknowledgementMode); } return queueSession; } public Queue getQueue() throws Exception { if (queue == null) { Object obj = getContext().lookup(queueName); queue = (Queue) obj; } return queue; } public QueueSender getQueueSender() throws Exception { if (queueSender == null) { queueSender = getQueueSession().createSender(getQueue()); } return queueSender; } public QueueReceiver getQueueReceiver() throws Exception { if (queueReceiver == null) { queueReceiver = getQueueSession().createReceiver(getQueue()); queueReceiver.setMessageListener(this); } return queueReceiver; } public void sendText(String message) throws Exception { TextMessage textMessage = getQueueSession().createTextMessage(); textMessage.clearBody(); textMessage.setText(message); getQueueSender().send(textMessage); if (isTransacted()) { getQueueSession().commit(); } } public void onMessage(Message message) { if (message instanceof BytesMessage) { BytesMessage bytesMessage = (BytesMessage) message; //Process bytesMessage here } else { if (message instanceof MapMessage) { MapMessage mapMessage = (MapMessage) message; //Process mapMessage here } else { if (message instanceof ObjectMessage) { ObjectMessage objectMessage = (ObjectMessage) message; //Process objectMessage here } else { if (message instanceof StreamMessage) { StreamMessage streamMessage = (StreamMessage) message; //Process streamMessage here } else { if (message instanceof TextMessage) { TextMessage textMessage = (TextMessage) message; try{ System.out.println("Message content is:" + textMessage.getText()); }catch(JMSException e){ e.printStackTrace(); } } } } } } try { if (isTransacted()) { getQueueSession().commit(); } } catch(Exception ex) { ex.printStackTrace(); } } public void close() throws Exception { if (queueSender != null) { queueSender.close(); } if (queueReceiver != null) { queueReceiver.close(); } if (queueSession != null) { queueSession.close(); } if (queueConnection != null) { queueConnection.close(); } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -