`
youngmaster
  • 浏览: 57127 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

EJB:事件驱动 bean ---Queue

阅读更多

创建一个简单的工具类:

//ContextFactory.java

 

package com.youngmaster.jms.utils;

import java.util.Hashtable;

import javax.naming.Context;
import javax.naming.InitialContext;

/**
 * @author youngmaster
 * @E-mail:youngmaster.fly@gmail.com
 * @version myEclipse 6.6
 * @create time:Sep 26, 2009 1:55:42 AM
 */
public class ContextFactory {

	@SuppressWarnings("unchecked")
	public static Context getContext() throws Exception {
		Hashtable props = new Hashtable();

		props.put(Context.INITIAL_CONTEXT_FACTORY,
				"org.jnp.interfaces.NamingContextFactory");

		props.put(Context.PROVIDER_URL, "localhost:1099");

		props.put("java.naming.rmi.security.manager", "yes");

		props.put(Context.URL_PKG_PREFIXES, "org.jboss.naming");

		@SuppressWarnings("unused")
		Context context = new InitialContext(props);
		return context;
	}

}

 

创建一个简单的java bean:

//Employee.jva

package com.youngmaster.jms.objectmsg;

import java.io.Serializable;

/**
 * @author youngmaster
 * @E-mail:youngmaster.fly@gmail.com
 * @version myEclipse 6.6
 * @create time:Sep 26, 2009 2:30:54 AM
 */
@SuppressWarnings("serial")
public class Employee implements Serializable {
	
	private String name;
	private int age;
	
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
}
 

 

发送端:

//Sender.java

 

package com.youngmaster.jms.sender;

import javax.jms.ObjectMessage;
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.naming.Context;

import com.youngmaster.jms.objectmsg.Employee;
import com.youngmaster.jms.utils.ContextFactory;

/**
 * @author youngmaster
 * @E-mail:youngmaster.fly@gmail.com
 * @version myEclipse 6.6
 * @create time:Sep 26, 2009 3:03:08 AM
 */
public class Sender {

	/**
	 * @param args
	 * @throws Exception
	 */
	public static void main(String[] args) throws Exception {
		
		/**
		 * access Context
		 */
		Context context=ContextFactory.getContext();
		
		/**
		 * access QueueConnectionFactory
		 */
		QueueConnectionFactory factory=(QueueConnectionFactory) context.lookup("ConnectionFactory");
		
		/**
		 * access QueueConnection
		 */
		QueueConnection connection=factory.createQueueConnection();
		
		/**
		 * access QueueSession
		 */
		@SuppressWarnings("unused")
		QueueSession queueSession =connection.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);

		/**
		 * create distination
		 */
		Queue queue = (Queue) context.lookup("queue/testQueue");

		QueueSender sender = queueSession.createSender(queue);

		/**
		 * create objectmsg
		 */
		ObjectMessage objectmessage = queueSession.createObjectMessage();

		Employee employee = new Employee();

		employee.setName("youngmaster");

		objectmessage.setObject(employee);

		sender.send(queue, objectmessage);

		queueSession.close();
		connection.close();

	}

}

 

接送端:

//Receive.java

 

package com.youngmaster.jms.receive;

import javax.jms.Queue;
import javax.jms.QueueConnection;
import javax.jms.QueueConnectionFactory;
import javax.jms.QueueReceiver;
import javax.jms.QueueSession;
import javax.jms.Session;
import javax.naming.Context;

import com.youngmaster.jms.utils.ContextFactory;

/**
 * @author youngmaster
 * @E-mail:youngmaster.fly@gmail.com
 * @version myEclipse 6.6
 * @create time:Sep 26, 2009 3:11:09 AM
 */
public class Receive {

	/**
	 * @param args
	 * @throws Exception
	 */
	public static void main(String[] args) throws Exception {

		/**
		 * access Context
		 */
		Context context = ContextFactory.getContext();

		/**
		 * access QueueConnectionFactory
		 */
		QueueConnectionFactory factory = (QueueConnectionFactory) context
				.lookup("ConnectionFactory");

		/**
		 * access QueueConnection
		 */
		QueueConnection connection = factory.createQueueConnection();
		
		/**
		 * access QueueSession
		 */
		@SuppressWarnings("unused")
		QueueSession queueSession = connection.createQueueSession(false,
				Session.AUTO_ACKNOWLEDGE);

		/**
		 * create distination
		 */
		Queue queue = (Queue) context.lookup("queue/testQueue");

		/**
		 * access QueueReceiver
		 */
		QueueReceiver queueReceiver = queueSession.createReceiver(queue);
		queueReceiver.setMessageListener(new MyReceive());
		connection.start();
	}

}

 

创建一个监听器:

//MyReceive.java

 

package com.youngmaster.jms.receive;

import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageListener;
import javax.jms.ObjectMessage;

import com.youngmaster.jms.objectmsg.Employee;

/**
 * @author youngmaster
 * @E-mail:youngmaster.fly@gmail.com
 * @version myEclipse 6.6
 * @create time:Sep 26, 2009 3:11:21 AM
 */
public class MyReceive implements MessageListener {

	public void onMessage(Message arg0) {

		ObjectMessage ob = (ObjectMessage) arg0;
		Employee employee;
		try {
			employee = (Employee) ob.getObject();
			System.out.println(employee.getName());
		} catch (JMSException e) {
			e.printStackTrace();
		}

	}

}
 

 

分享到:
评论
1 楼 zhouwendong006 2010-02-01  
这个怎么做测试啊?我怎么看不到效果?

相关推荐

Global site tag (gtag.js) - Google Analytics