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

📄 jmsdemo.java

📁 随书光盘:精通Sping 2.0 的随书源代码
💻 JAVA
字号:
package test;

import java.util.Properties;

import javax.jms.Connection;
import javax.jms.ConnectionFactory;
import javax.jms.Destination;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageConsumer;
import javax.jms.MessageProducer;
import javax.jms.Session;
import javax.jms.TextMessage;
import javax.naming.InitialContext;
import javax.naming.NamingException;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

/**
 * 
 * @author worldheart
 * 
 */
public class JmsDemo {

	protected static final Log log = LogFactory.getLog(JmsDemo.class);

	public static void main(String[] args) {
		Properties prop = new Properties();
//		prop.setProperty("java.naming.factory.initial",	"weblogic.jndi.WLInitialContextFactory");
//		prop.setProperty("java.naming.provider.url", "t3://localhost:7001");


		prop.setProperty("java.naming.factory.initial",	"org.jnp.interfaces.NamingContextFactory");
		prop.setProperty("java.naming.provider.url", "jnp://localhost:1099");
		prop.setProperty("java.naming.factory.url.pkgs", 	"org.jboss.naming:org.jnp.interfaces");
		InitialContext ic = null;
		ConnectionFactory cf = null;
		Destination dest = null;
		Connection conn = null;
		Session session = null;
		MessageProducer producer = null;
		MessageConsumer consumer = null;
		TextMessage message = null;
		try {
			ic = new InitialContext(prop);
			cf = (ConnectionFactory) ic.lookup("ConnectionFactory");
			dest = (Destination) ic.lookup("queue/testQueue");
			conn = cf.createConnection();
			//创建非事务性Session
			session = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);
			
			producer = session.createProducer(dest);
			message = session.createTextMessage();
			for (int i = 0; i < 5; ++i) {
				message.setText("消息" + (i + 1));
				log.info("发送消息: " + message.getText());
				//发送消息
				producer.send(message);
			}
			
			consumer = session.createConsumer(dest);
			//开始消费消息
			conn.start();
			while(true){
				//接收消息
				Message m = consumer.receive(10);
                if (m != null) {
                    if (m instanceof TextMessage) {
                        message = (TextMessage) m;
                        log.info("接收到消息: " + message.getText());
                    }
                 } else {
                        break;                    
                }
			}						
		} catch (NamingException ne) {
			log.error(ne);
		} catch (JMSException je) {
			log.error(je);
		} finally {
			try {
				//手工关闭所有的资源
				consumer.close();
				producer.close();
				session.close();
				conn.close();
				ic.close();
			} catch (JMSException jmse) {
				log.error(jmse);
			} catch (NamingException ne) {
				log.error(ne);
			}
		}
	}

}

⌨️ 快捷键说明

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