TopicSender 发送端
package com.test;
import java.util.Properties;
import javax.jms.Destination;
import javax.jms.JMSException;
import javax.jms.MessageProducer;
import javax.jms.Queue;
import javax.jms.QueueConnection;
import javax.jms.QueueConnectionFactory;
import javax.jms.QueueSession;
import javax.jms.TextMessage;
import javax.naming.Context;
import javax.naming.InitialContext;
public class TopicSender {
/**
* @param args
*/
public static void main(String[] args) {
// DFACJmsList list = new DFACJmsList();
// OBJTest obj = new OBJTest();
// list.add(obj);
sendWebLogicJMS();
// Thread t1 = new Thread(){
// @Override
// public void run() {
// while(true){
// DFACJmsList list = new DFACJmsList();
// for(int i = 0;i<30000;i++){
// OBJTest obj = new OBJTest();
// list.add(obj);
// }
// sendWebLogicJMS(list);
// try {
// Thread.sleep(1500);
// } catch (InterruptedException e) {
// e.printStackTrace();
// }
// }
// }
//
// };
//
// Thread t2 = new Thread(){
// @Override
// public void run() {
// while(true){
// DFACJmsList list = new DFACJmsList();
// for(int i = 0;i<33333;i++){
// OBJTest obj = new OBJTest();
// list.add(obj);
// }
// sendWebLogicJMS(list);
// try {
// Thread.sleep(1000);
// } catch (InterruptedException e) {
// e.printStackTrace();
// }
// }
// }
// };
//
// Thread t3 = new Thread(){
// @Override
// public void run() {
// while(true){
// DFACJmsList list = new DFACJmsList();
// for(int i = 0;i<44444;i++){
// OBJTest obj = new OBJTest();
// list.add(obj);
// }
// sendWebLogicJMS(list);
// try {
// Thread.sleep(777);
// } catch (InterruptedException e) {
// e.printStackTrace();
// }
// }
// }
// };
// t1.start();
// t2.start();
// t3.start();
// ListObject list = new ListObject();
// for(int i = 0;i<1599;i++){
// OBJTest obj = new OBJTest();
// list.add(obj);
// }
// sendWebLogicJMS(list);
}
public static void sendWebLogicJMS(){
// TopicConnection conn = null;
// TopicSession session = null;
QueueConnection conn = null;
QueueSession session = null;
try {
Properties props = new Properties();
props.setProperty(Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory");
// props.setProperty(Context.INITIAL_CONTEXT_FACTORY, "weblogic.jms.safclient.jndi.InitialContextFactoryImpl");
props.setProperty(Context.PROVIDER_URL, "t3://172.29.225.143:7002");
InitialContext ctx = new InitialContext(props);
// TopicConnectionFactory factory = (TopicConnectionFactory) ctx.lookup(TopicConnectionFactory.class.getName());
QueueConnectionFactory factory = (QueueConnectionFactory) ctx.lookup(QueueConnectionFactory.class.getName());
// conn = factory.createTopicConnection();
conn = factory.createQueueConnection();
// session = conn.createTopicSession(false, TopicSession.AUTO_ACKNOWLEDGE);
session = conn.createQueueSession(false, QueueSession.AUTO_ACKNOWLEDGE);
// Destination destination = (Topic) ctx.lookup("demo.BizQueue");
// Destination destination = (Queue) ctx.lookup("dfac/MesToScf");
Destination destination = (Queue) ctx.lookup("demo.BizQueue");
MessageProducer producer = session.createProducer(destination);
//发送文本
// ObjectMessage msg = session.createObjectMessage("aaa");
TextMessage msg = session.createTextMessage("");
producer.send(msg);
} catch (Exception e) {
System.out.println(e.getMessage());
}finally{
try {
session.close ();
conn.close();
} catch (JMSException e) {
e.printStackTrace();
}
}
}
// public static void sendJBossJMS(ListObject obj){
// TopicConnection conn = null;
// TopicSession session = null;
// try{
// Properties props = new Properties();
// props.setProperty(Context.INITIAL_CONTEXT_FACTORY,
// "org.jnp.interfaces.NamingContextFactory");
// props.setProperty(Context.PROVIDER_URL, "localhost:1099");
// props.setProperty(Context.URL_PKG_PREFIXES, "org.jboss.naming:org.jnp.interfaces");
// InitialContext ctx = new InitialContext(props);
// TopicConnectionFactory factory = (TopicConnectionFactory)ctx.lookup("TopicConnectionFactory");
// conn = factory.createTopicConnection();
// session = conn.createTopicSession(false, TopicSession.AUTO_ACKNOWLEDGE);
// Destination destination = (Topic)ctx.lookup("topic/chatTopic");
// MessageProducer producer = session.createProducer(destination);
//
// ObjectMessage msg = session.createObjectMessage(obj);
// producer.send(msg);
// }catch(Exception e){
// System.out.println(e.getMessage());
// }finally{
// try{
// session.close();
// conn.close();
// }catch(JMSException e){
// e.printStackTrace();
// }
// }
// }
}
MessageReciever 接收端
package com.test;
import java.util.*;
import javax.naming.*;
import javax.jms.*;
import javax.jms.Queue;
public class MessageReciever
implements MessageListener {
public void onMessage(Message message) {
if (message instanceof TextMessage) {
TextMessage textMessage = (TextMessage) message;
try {
System.out.println("Message content is:" + textMessage.getText());
}
catch (JMSException e) {
e.printStackTrace();
}
}
}
public static void main(String[] args) {
MessageReciever msgRcvr=new MessageReciever();
String queueConnectionFactoryName = "myconnectionfactory";
String queueName = "myqueue";
boolean transacted = false;
int acknowledgementMode = Session.AUTO_ACKNOWLEDGE;
Properties properties = new Properties();
properties.put(Context.INITIAL_CONTEXT_FACTORY,
"weblogic.jndi.WLInitialContextFactory");
properties.put(Context.PROVIDER_URL, "t3://172.29.225.185:7001");
try {
Context context = new InitialContext(properties);
Object obj = context.lookup(queueConnectionFactoryName);
QueueConnectionFactory queueConnectionFactory = (QueueConnectionFactory)
obj;
obj = context.lookup(queueName);
Queue queue = (Queue) obj;
QueueConnection queueConnection = queueConnectionFactory.
createQueueConnection();
queueConnection.start();
QueueSession queueSession = queueConnection.createQueueSession(transacted,
acknowledgementMode);
QueueReceiver queueReceiver = queueSession.createReceiver(queue);
queueReceiver.setMessageListener(msgRcvr);
synchronized(msgRcvr){
msgRcvr.wait(100000);
}
if (queueReceiver != null) {
queueReceiver.close();
}
if (queueSession != null) {
queueSession.close();
}
if (queueConnection != null) {
queueConnection.close();
}
}
catch (Exception ex) {
ex.printStackTrace();
}
}
}