论坛首页 入门技术论坛

JMS在glassfish中的使用(1)——JMS入门

浏览 2494 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2009-08-22  
通常使用JMS,我想要做的事是,让客户端应用(桌面应用),通过JMS接收和发送信息到服务器(EJB3).以往的例子是用eclipse开发一个RCP程序,通过JMS连上JBOSS....诸如此类的应用。当然桌面应用连接服务器有至少3种方式,这里就别争论这些问题了。

开始工作
准备:1 安装好glassfishv2.1(现在可以安装更新版本)
      2 准备好eclipse或者myeclipse
     3 在glassfish安装目录下\imq\lib这里将有下面代码中所需要的jar包

第一个例子 hello
说明:此例子不使用JNDI,接收与发送都包含在一个主函数内

package jms;

/**
 * The HelloWorldMessage class 向一个queue中发送信息和接收信息
 */

// Step 1:
// 这里我们需要导入两个jar包:jms.jar,imq.jar
import javax.jms.ConnectionFactory;
import javax.jms.Connection;
import javax.jms.Session;
import javax.jms.MessageProducer;
import javax.jms.MessageConsumer;
import javax.jms.Queue;
import javax.jms.Session;
import javax.jms.Message;
import javax.jms.TextMessage; 
import java.util.*;

public class HelloWorldMessage {

	public static void main(String[] args) {

		try {

			ConnectionFactory myConnFactory;
			Queue myQueue;

			// Step 2:
			// 实例化 ConnectionFactory
			myConnFactory = new com.sun.messaging.ConnectionFactory();

			// Step 3:
			// 创建一个连接
			Connection myConn = myConnFactory.createConnection();

			// Step 4:
			// Create a session within the connection.
			Session mySess = myConn.createSession(false,
					Session.AUTO_ACKNOWLEDGE);

			// Step 5:
			// 创建队列目的地			myQueue = new com.sun.messaging.Queue("world");

			// Step 6:
			// 创建消息生产者.
			MessageProducer myMsgProducer = mySess.createProducer(myQueue);

			// Step 7:
			// 创建信息到队列.
			TextMessage myTextMsg = mySess.createTextMessage();
			myTextMsg.setText("Hello World");
//			System.out.println("Sending Message: " + myTextMsg.getText());
			myMsgProducer.send(myTextMsg);

			// Step 8:
			// 创建一个消息消费者.
			MessageConsumer myMsgConsumer = mySess.createConsumer(myQueue);

			// Step 9:
			// 启动连接.
			myConn.start();

			// Step 10:
			// 消费者从队列接收消息.
			Message msg = myMsgConsumer.receive();

			// Step 11:
			// 辨别消息类型.
			if (msg instanceof TextMessage) {
				TextMessage txtMsg = (TextMessage) msg;
				System.out.println("Read Message: " + txtMsg.getText());
			}

			// Step 12:
			// 关闭资源.
			mySess.close();
			myConn.close();

		} catch (Exception jmse) {
			System.out.println("Exception occurred : " + jmse.toString());
			jmse.printStackTrace();
		}
	}
}

这个例子还无法做到应用连接服务器的目的。
PS:以上代码参照glassfish demo代码

JMS在glassfish中的使用(2)近日更新



论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics