weblogic 与jms事例配置


1). 创建domain

(2). 配置 Persistent Stores ,我这里使用filestore

       a. target:AdminServer

       b. Directory: "可访问路径"

(3). 创建JMS Server

       a. Persistent Store:选择(2)配置的

       b. target: AdminServer

(4). 创建JMS Modules

       4.1 进入创建的JMS Modules,切换到subdeployment tab,创建subdeployment, 注意将target配置成(3)的JMS Server

       4.2 切换到 configuration tab,创建 Connection Factory,target:AdminServer

        4.3 同样configuration tab, 创建 queue/topic ,subdeployment配置成(4.1)的subdeployment

 

2. 创建java project编写测试代码

(1) 创建一个java project(不是web项目)

(2) 将weblogic安装目录中的wlclient.jar加入classpath中(注意:weblogic老版本的话使用weblogic.jar), 具体路径:$Weblogic_HOME\wlserver_10.3\server\lib。

(3) 需要将javaee.jar加入到classpath,因为我们建的是java project项目,不会自动添加javaee包。注意:从官网下载javaee sdk,安装后lib中有这个包。

 

Sender:

Java代码 复制代码  收藏代码
  1. import java.util.Hashtable;  
  2.   
  3. import javax.jms.JMSException;  
  4. import javax.jms.Message;  
  5. import javax.jms.Queue;  
  6. import javax.jms.QueueConnection;  
  7. import javax.jms.QueueConnectionFactory;  
  8. import javax.jms.QueueSender;  
  9. import javax.jms.QueueSession;  
  10. import javax.jms.Session;  
  11. import javax.naming.Context;  
  12. import javax.naming.InitialContext;  
  13. import javax.naming.NamingException;  
  14.   
  15.   
  16. public class JMSSender {  
  17.   
  18.     /** 
  19.      * @param args 
  20.      * @throws NamingException  
  21.      * @throws JMSException  
  22.      */  
  23.     public static void main(String[] args) throws NamingException, JMSException {  
  24.         //init JNDI context  
  25.         String JNDIFactory = "weblogic.jndi.WLInitialContextFactory";//define JNDI context factory  
  26.         String providerUrl = "t3://localhost:8001"; //define weblogic JMS url  
  27.         Hashtable env = new Hashtable();  
  28.         env.put(Context.INITIAL_CONTEXT_FACTORY, JNDIFactory);  
  29.         env.put(Context.PROVIDER_URL, providerUrl);  
  30.         Context ctx = new InitialContext(env);  
  31.           
  32.         //find connection factory  
  33.         String connFactoryJNDI = "jms/ConnectionFactoryTest"//jms connectionFactory JNDI name  
  34.         QueueConnectionFactory connFactory = (QueueConnectionFactory) ctx.lookup(connFactoryJNDI);  
  35.         //create queue connection  
  36.         QueueConnection qConn = (QueueConnection) connFactory.createConnection();  
  37.         //create session  
  38.         QueueSession qSession = qConn.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);  
  39.         //find queue by JNDI lookup  
  40.         Queue queue = (Queue) ctx.lookup("jms/QueueTest");  
  41.         //create sender  
  42.         QueueSender qSender = qSession.createSender(queue);  
  43.         //create message  
  44.         Message msg = qSession.createTextMessage("Message is from JMS Sender!");  
  45.         qSender.send(msg);  
  46.           
  47.         qSender.close();  
  48.           
  49.         qSession.close();  
  50.           
  51.         qConn.close();  
  52.           
  53.     }  
  54.   
  55. }  
import java.util.Hashtable;

import javax.jms.JMSException;
import javax.jms.Message;
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 javax.naming.InitialContext;
import javax.naming.NamingException;


public class JMSSender {

	/**
	 * @param args
	 * @throws NamingException 
	 * @throws JMSException 
	 */
	public static void main(String[] args) throws NamingException, JMSException {
		//init JNDI context
		String JNDIFactory = "weblogic.jndi.WLInitialContextFactory";//define JNDI context factory
		String providerUrl = "t3://localhost:8001"; //define weblogic JMS url
		Hashtable env = new Hashtable();
		env.put(Context.INITIAL_CONTEXT_FACTORY, JNDIFactory);
		env.put(Context.PROVIDER_URL, providerUrl);
		Context ctx = new InitialContext(env);
		
		//find connection factory
		String connFactoryJNDI = "jms/ConnectionFactoryTest"; //jms connectionFactory JNDI name
		QueueConnectionFactory connFactory = (QueueConnectionFactory) ctx.lookup(connFactoryJNDI);
		//create queue connection
		QueueConnection qConn = (QueueConnection) connFactory.createConnection();
		//create session
		QueueSession qSession = qConn.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);
		//find queue by JNDI lookup
		Queue queue = (Queue) ctx.lookup("jms/QueueTest");
		//create sender
		QueueSender qSender = qSession.createSender(queue);
		//create message
		Message msg = qSession.createTextMessage("Message is from JMS Sender!");
		qSender.send(msg);
		
		qSender.close();
		
		qSession.close();
		
		qConn.close();
		
	}

}

 

Receiver:

 

Java代码 复制代码  收藏代码
  1. import java.util.Hashtable;  
  2.   
  3. import javax.jms.BytesMessage;  
  4. import javax.jms.JMSException;  
  5. import javax.jms.MapMessage;  
  6. import javax.jms.Message;  
  7. import javax.jms.MessageListener;  
  8. import javax.jms.ObjectMessage;  
  9. import javax.jms.Queue;  
  10. import javax.jms.QueueConnection;  
  11. import javax.jms.QueueConnectionFactory;  
  12. import javax.jms.QueueReceiver;  
  13. import javax.jms.QueueSession;  
  14. import javax.jms.Session;  
  15. import javax.jms.StreamMessage;  
  16. import javax.jms.TextMessage;  
  17. import javax.naming.Context;  
  18. import javax.naming.InitialContext;  
  19. import javax.naming.NamingException;  
  20.   
  21.   
  22. public class JMSReceiver {  
  23.       
  24.     public static void main(String[] args) throws NamingException, JMSException {  
  25.         //init JNDI context  
  26.         String JNDIFactory = "weblogic.jndi.WLInitialContextFactory";//define JNDI context factory  
  27.         String providerUrl = "t3://localhost:8001"; //define weblogic JMS url  
  28.         Hashtable env = new Hashtable();  
  29.         env.put(Context.INITIAL_CONTEXT_FACTORY, JNDIFactory);  
  30.         env.put(Context.PROVIDER_URL, providerUrl);  
  31.         Context ctx = new InitialContext(env);  
  32.           
  33.         //find connection factory  
  34.         String connFactoryJNDI = "jms/ConnectionFactoryTest"//jms connectionFactory JNDI name  
  35.         QueueConnectionFactory connFactory = (QueueConnectionFactory) ctx.lookup(connFactoryJNDI);  
  36.         //create queue connection  
  37.         QueueConnection qConn = (QueueConnection) connFactory.createConnection();  
  38.         //create session  
  39.         QueueSession qSession = qConn.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);  
  40.         //find queue by JNDI lookup  
  41.         Queue queue = (Queue) ctx.lookup("jms/QueueTest");  
  42.           
  43.         //create receiver  
  44.         QueueReceiver qReceiver = qSession.createReceiver(queue);  
  45.         //create message listener  
  46.         qReceiver.setMessageListener(new MessageListener() {  
  47.   
  48.             public void onMessage(Message msg) {  
  49.                 String msgText = "";  
  50.                 double d = 0;  
  51.                  try {  
  52.                     if (msg instanceof TextMessage) {     
  53.                             msgText = ((TextMessage) msg).getText();     
  54.                         } else if (msg instanceof StreamMessage) {     
  55.                             msgText = ((StreamMessage) msg).readString();     
  56.                             d = ((StreamMessage) msg).readDouble();     
  57.                         } else if (msg instanceof BytesMessage) {     
  58.                             byte[] block = new byte[1024];     
  59.                             ((BytesMessage) msg).readBytes(block);     
  60.                             msgText = String.valueOf(block);     
  61.                         } else if (msg instanceof MapMessage) {     
  62.                             msgText = ((MapMessage) msg).getString("name");     
  63.                         }   
  64.                 } catch (JMSException e) {  
  65.                     // TODO Auto-generated catch block  
  66.                     e.printStackTrace();  
  67.                 }     
  68.                   
  69.                 System.out.println(msgText + " " + d);  
  70.             }});  
  71.   
  72.         qConn.start();  
  73.           
  74.     }  
  75.       
  76. }  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值