Sender:
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Hashtable;
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.jms.TextMessage;
import javax.naming.Context;
import javax.naming.InitialContext;
/**
* @author Administrator
* @version 1.0
* @date 2008-8-30
* @class_displayName Sender
*/
public class Sender {
public void send() {
BufferedReader reader = new BufferedReader(new InputStreamReader(
System.in));
String icf = "weblogic.jndi.WLInitialContextFactory";
String url = "t3://192.168.20.36:7001";
// Initialise JNDI properties
Hashtable env = new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY, icf);
env.put(Context.PROVIDER_URL, url);
try {
//Lookup
final InitialContext initContext = new InitialContext(env);
QueueConnectionFactory factory = (QueueConnectionFactory) initContext
.lookup("SAS_factory");
Queue destination = (Queue) initContext.lookup("SAS_Queue");
initContext.close();
//Create JMS Object
QueueConnection connection = factory.createQueueConnection();
QueueSession session = connection.createQueueSession(false,
Session.AUTO_ACKNOWLEDGE);
QueueSender sender = session.createSender(destination);
//Send Message
String messageText = null;
while (true) {
System.out.println("Enter message to send or 'quit':");
messageText = reader.readLine();
if ("quit".equals(messageText))
break;
TextMessage message = session.createTextMessage(messageText);
sender.send(message);
}
//Exit
System.out.println("Exiting...");
reader.close();
connection.close();
System.out.println("Goodbye!");
} catch (Exception e) {
e.printStackTrace();
System.exit(1);
}
}
public static void main(String[] args) {
(new Sender()).send();
}
}
Receiver:
import java.util.Hashtable;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageListener;
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.jms.TextMessage;
import javax.naming.Context;
import javax.naming.InitialContext;
public class Receiver implements MessageListener{
private boolean stop = false;
public static void main(String[] args) {
(new Receiver()).receive();
}
public void receive() {
String icf = "weblogic.jndi.WLInitialContextFactory";
String url="t3://192.168.20.36:7001";
// Initialise JNDI properties
Hashtable env = new Hashtable();
env.put( Context.INITIAL_CONTEXT_FACTORY, icf );
env.put( Context.PROVIDER_URL, url );
try{
//Look up administratered objects
final InitialContext initContext = new InitialContext(env);
QueueConnectionFactory factory = (QueueConnectionFactory) initContext.lookup("SAS_factory");
Queue destination = (Queue) initContext.lookup("SAS_Queue");
initContext.close();
//Create JMS objects
QueueConnection connection = factory.createQueueConnection();
QueueSession session = connection.createQueueSession(false,Session.AUTO_ACKNOWLEDGE);
QueueReceiver receiver= session.createReceiver(destination);
receiver.setMessageListener(this);
connection.start();
System.out.println("服务启动");
//Wait for stop
while(!stop){
Thread.sleep(1000);
}
//Exit
System.out.println("Exiting...");
connection.close();
System.out.println("Goodbye!");
}catch(Exception e){
e.printStackTrace();
System.exit(1);
}
}
public void onMessage(Message message) {
try {
String msgText = ((TextMessage)message).getText();
System.out.println("接受到的消息是:"+msgText);
if("stop".equals(msgText)){
stop = true;
}
} catch (JMSException e) {
e.printStackTrace();
stop = true;
}
}
}