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

📄 beanmsg.java

📁 J2EE平台是一种比较 优秀的开发平台 此为其上一个比较大的案例开发
💻 JAVA
字号:
package goodTrans;
import java.io.IOException;
import javax.jms.JMSException;
import javax.jms.Queue;
import javax.jms.QueueConnection;
import javax.jms.QueueConnectionFactory;
import javax.jms.QueueSender;
import javax.jms.QueueSession;
import javax.jms.Session;
import javax.jms.TextMessage;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class BeanMsg extends HttpServlet {
	public void doGet(HttpServletRequest req, HttpServletResponse resp)
		throws ServletException, IOException {
		InitialContext context;
		try {
			context = new InitialContext();
			//从最初的上下文中
			//查找队列连接工厂
			QueueConnectionFactory qcf =
				(QueueConnectionFactory) context.lookup("QCF");
			//从队列连接工厂
			//创建新的队列连接
			QueueConnection conn;
			conn = qcf.createQueueConnection();
			//	在创建了QueueConnection之后 , 就进行启动 , 这样它就可以用于处理传入的消息 。			//开始连接
			conn.start();
			//	现在 , 可以用QueueConnection来创建QueueSession对象 。 在创建了QueueSession对象之后 , 就必须指定该会话是否要进行处理 , 以及它应该如何应答任何接收到的消息 。 在本文中 , 我们将不处理会话 , 消息应答也将由基础JMS提供者自动进行处理 。			//从队列连接中创建新的队列会话
			//该会话不应该进行处理
			//而应该使用自动会话应答
			QueueSession session =
				conn.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);
			//在发送和接收任何消息之前 , 您必须从JNDI中检索Queue对象 , 获得消息将发送到哪儿以及从何处读取的详细资料 。 为达此目的 , 可以按照类似的方式使用QueueConnectionFactory来查找上下文对象 。 同样 , 您可以选择传送到查找的对象的名称 , 如同您在下面将配置的一样 。			//查找用于发送和接收
			//来自最初上下文中的消息
			Queue q = (Queue) context.lookup("Q");
			//在找到该Queue对象之后 , 就可以在创建QueueSender对象时进行使用 , 它可用于向队列发送消息 。 QueueSender对象是从现有的QueueSession对象中创建的 :			//使用队列会话创建新的队列发送者。
			//该发送者应该创建成能把消息发送到
			//队列
			QueueSender sender = session.createSender(q);
			//在创建了QueueSender对象之后 , 现在 , 您就可以创建和发送消息了 。 和QueueSenders类似 , 可以使用Session对象来创建JMS消息 。 在本文中 , 您将创建一个TextMessage消息 , 其消息数据可以用您选择的某些文本进行初始化 。			//使用该队列会话创建一个文本消息
			//将此消息的数据初始化为
			//您选择的某个字符串
			TextMessage sentMessage =
				session.createTextMessage("My first JMS message.");
			//使用该队列发送者发送sentMessage对象
			sender.send(sentMessage);
			//在将TextMessage发送到队列之后 , 现在 , 您需要把它再次读取回来 。 您可以使用QueueReceiver对象 ( 其创建方式和前面的QueueSender对象大致相同 ) 来完成 。			// Create a new queue receiver using the queue session.
			//该队列应该创建成能从
			//队列q接收消息
			//			QueueReceiver receiver = session.createReceiver(q);
			//现在 , 您可以使用QueueReceiver对象从队列中读取消息了 。 JMS提供了三种读取消息的方式 。 调用receive() 将使代码保持等待 , 直到队列中有可以读取的消息为止 。 调用receive(n) 将使代码保持等待可以读取的消息长达n毫秒 。 顾名思义 , 调用receiveNoWait() 将使代码立即返回 , 而不管队列中是否有可以读取的消息 。 在这种情况下 , 由于消息刚发送到队列中 , 我们就能够肯定可以读取一个消息 , 所以将使用receiveNoWait方法 。			//使用队列接收者来接收
			//先前发送的消息
			//			Message receivedMessage = receiver.receive();
			//为了验证接收到的消息和所发送的是相同的消息 , 可以把该消息输出到System.out 。			//把接收到的消息输出到System.out中
			//			System.out.println(receivedMessage);
			//保存已更新的源代码 , 现在 , 就可以准备对该点对点应用程序进行测试了 。 
			System.out.println("have finished");
		} catch (NamingException e) {
		} catch (JMSException e) {
		}
	}
}

⌨️ 快捷键说明

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