您的位置:首页 > 其它

weblogic JMS 初体验P2P模式

2010-07-09 15:22 218 查看
程序运行前,需要编译wlfullclient.jar

主要步骤为

1.通过JNDI查询ConnectionFactory

2.通过工厂建立连接connection

3.创建session

程序简单,直接代码

下面是P2P的生成者

package com.test;

import javax.jms.Destination;

import javax.jms.JMSException;

import javax.jms.MessageProducer;

import javax.jms.QueueConnection;

import javax.jms.QueueConnectionFactory;

import javax.jms.QueueSession;

import javax.jms.TextMessage;

import javax.naming.Context;

import javax.naming.InitialContext;

import javax.naming.NamingException;

public class JMSP2PSend {

public static void main(String[] args) {

System.setProperty(Context.INITIAL_CONTEXT_FACTORY,"weblogic.jndi.WLInitialContextFactory");

System.setProperty(Context.PROVIDER_URL, "t3://localhost:7001");

QueueConnection connection = null;

QueueSession session = null;

Context ctx = null;

try {

ctx = new InitialContext();

//1.通过JNDI查询ConnectionFactory

QueueConnectionFactory factory = (QueueConnectionFactory) ctx.lookup("jms/connectionFactory");

//2.通过工厂建立连接connection

connection = factory.createQueueConnection();

//3.创建session

session = connection.createQueueSession(false,QueueSession.AUTO_ACKNOWLEDGE);

//4.创建Destination

Destination destination = (Destination) ctx.lookup("jms/fileQueue");

//5.创建MessageProducer(生产)或者MessageConsumer(消费)

MessageProducer mp = session.createProducer(destination);

//构造消息体

TextMessage tm = session.createTextMessage();

tm.setText("csdn tczxg");

tm.setStringProperty("user", "嘿嘿,JMS挺简单的。。。");

mp.send(tm);

} catch (NamingException ne) {

ne.printStackTrace();

} catch (JMSException jse) {

jse.printStackTrace();

} finally {

if (session != null)

try {

session.close();

} catch (JMSException e) {

}

if (connection != null)

try {

connection.close();

} catch (JMSException e) {

}

if (ctx != null)

try {

ctx.close();

} catch (NamingException e) {

}

}

}

}

下面是P2P jms 消费者代码

package com.test;

import javax.jms.Destination;

import javax.jms.JMSException;

import javax.jms.Message;

import javax.jms.MessageConsumer;

import javax.jms.QueueConnection;

import javax.jms.QueueConnectionFactory;

import javax.jms.QueueSender;

import javax.jms.QueueSession;

import javax.jms.TextMessage;

import javax.naming.Context;

import javax.naming.InitialContext;

import javax.naming.NamingException;

public class JMSP2PReciver {

/**

* @param args

*/

public static void main(String[] args) {

System.setProperty(Context.INITIAL_CONTEXT_FACTORY,

"weblogic.jndi.WLInitialContextFactory");

System.setProperty(Context.PROVIDER_URL, "t3://localhost:7001");

QueueConnection connection = null;

QueueSession session = null;

Context ctx = null;

try {

ctx = new InitialContext();

//1.通过JNDI查询ConnectionFactory

QueueConnectionFactory factory = (QueueConnectionFactory) ctx.lookup("jms/connectionFactory");

//2.通过工厂建立连接connection

connection = factory.createQueueConnection();

//3.创建session

session = connection.createQueueSession(false,QueueSession.AUTO_ACKNOWLEDGE);

//4.创建Destination

Destination destination = (Destination) ctx.lookup("jms/fileQueue");

//5.创建MessageProducer(生产)或者MessageConsumer(消费)

MessageConsumer mc = session.createConsumer(destination);

connection.start();

//构造消息体

Message message = mc.receive();

if(message instanceof TextMessage){

TextMessage tm = (TextMessage) message ;

String user = tm.getStringProperty("user");

System.out.println(tm.getText() + ", user : "+user);

}

connection.close();

} catch (NamingException ne) {

ne.printStackTrace();

} catch (JMSException jse) {

jse.printStackTrace();

} finally {

if (session != null)

try {

session.close();

} catch (JMSException e) {

}

if (ctx != null)

try {

ctx.close();

} catch (NamingException e) {

}

}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: