weblogic 与jms事例配置

来源:互联网 发布:淘宝直通车在哪里找图 编辑:程序博客网 时间:2024/04/30 04:49

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. }  

 

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
原创粉丝点击