介绍下JMS通信: 首先下载ActiveMQ http://activemq.apache.org/ 以下是Client和Server的代码实现:
Client代码:
Server代码
注:在运行server前要启动activemq
需要导入工程的库文件: activemq-core-5.0.0.jar geronimo-jms_1.1_spec-1.0.jar commons-logging-1.1.jar geronimo-j2ee-management-1.0_spec-1.0 在apache-activemq的lib文件夹下
Client代码:
package
com.jms.test;
import javax.jms.Connection;
import javax.jms.DeliveryMode;
import javax.jms.Destination;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageConsumer;
import javax.jms.MessageListener;
import javax.jms.MessageProducer;
import javax.jms.Session;
import javax.jms.TextMessage;
import org.apache.activemq.ActiveMQConnectionFactory;
public class Client implements MessageListener {
private String url = "tcp://127.0.0.1:61616";
protected Connection createConnection() throws JMSException, Exception {
ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory(
url);
Connection connection = connectionFactory.createConnection();
connection.start();
return connection;
}
protected Session createSession(Connection connection) throws Exception {
Session session = connection.createSession(false,
Session.AUTO_ACKNOWLEDGE);
return session;
}
protected MessageProducer createProducer(Session session)
throws JMSException {
Destination destination = session.createQueue("queue.hello");
MessageProducer producer = session.createProducer(destination);
producer.setDeliveryMode(DeliveryMode.NON_PERSISTENT);
return producer;
}
public void onMessage(Message message){
try {
System.out.println("client: "+ ((TextMessage)message).getText());
} catch (JMSException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void main(String[] args) {
try {
Client client = new Client();
Connection connection = client.createConnection();
Session session = client.createSession(connection);
Destination destination = session.createQueue("queue.hello");
MessageConsumer consumer = session.createConsumer(destination);
consumer.setMessageListener(client);
} catch (JMSException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
import javax.jms.Connection;
import javax.jms.DeliveryMode;
import javax.jms.Destination;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageConsumer;
import javax.jms.MessageListener;
import javax.jms.MessageProducer;
import javax.jms.Session;
import javax.jms.TextMessage;
import org.apache.activemq.ActiveMQConnectionFactory;
public class Client implements MessageListener {
private String url = "tcp://127.0.0.1:61616";
protected Connection createConnection() throws JMSException, Exception {
ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory(
url);
Connection connection = connectionFactory.createConnection();
connection.start();
return connection;
}
protected Session createSession(Connection connection) throws Exception {
Session session = connection.createSession(false,
Session.AUTO_ACKNOWLEDGE);
return session;
}
protected MessageProducer createProducer(Session session)
throws JMSException {
Destination destination = session.createQueue("queue.hello");
MessageProducer producer = session.createProducer(destination);
producer.setDeliveryMode(DeliveryMode.NON_PERSISTENT);
return producer;
}
public void onMessage(Message message){
try {
System.out.println("client: "+ ((TextMessage)message).getText());
} catch (JMSException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void main(String[] args) {
try {
Client client = new Client();
Connection connection = client.createConnection();
Session session = client.createSession(connection);
Destination destination = session.createQueue("queue.hello");
MessageConsumer consumer = session.createConsumer(destination);
consumer.setMessageListener(client);
} catch (JMSException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
Server代码
/**
*
*/
package com.jms.test;
import javax.jms.Connection;
import javax.jms.DeliveryMode;
import javax.jms.Destination;
import javax.jms.JMSException;
import javax.jms.MessageProducer;
import javax.jms.Session;
import javax.jms.TextMessage;
import org.apache.activemq.ActiveMQConnectionFactory;
/**
* @author Sui
*
*/
public class Server {
private String url = "tcp://127.0.0.1:61616";
protected Connection createConnection() throws JMSException, Exception {
ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory(
url);
Connection connection = connectionFactory.createConnection();
connection.start();
return connection;
}
protected Session createSession(Connection connection) throws Exception {
Session session = connection.createSession(false,
Session.AUTO_ACKNOWLEDGE);
return session;
}
protected MessageProducer createProducer(Session session)
throws JMSException {
Destination destination = session.createQueue("queue.hello");
MessageProducer producer = session.createProducer(destination);
producer.setDeliveryMode(DeliveryMode.NON_PERSISTENT);
return producer;
}
public static void main(String[] args) {
try {
Server server = new Server();
Connection connection = server.createConnection();
Session session = server.createSession(connection);
MessageProducer producer = server.createProducer(session);
TextMessage message = session.createTextMessage();
message.setText("Hello !");
producer.send(message);
} catch (JMSException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
*
*/
package com.jms.test;
import javax.jms.Connection;
import javax.jms.DeliveryMode;
import javax.jms.Destination;
import javax.jms.JMSException;
import javax.jms.MessageProducer;
import javax.jms.Session;
import javax.jms.TextMessage;
import org.apache.activemq.ActiveMQConnectionFactory;
/**
* @author Sui
*
*/
public class Server {
private String url = "tcp://127.0.0.1:61616";
protected Connection createConnection() throws JMSException, Exception {
ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory(
url);
Connection connection = connectionFactory.createConnection();
connection.start();
return connection;
}
protected Session createSession(Connection connection) throws Exception {
Session session = connection.createSession(false,
Session.AUTO_ACKNOWLEDGE);
return session;
}
protected MessageProducer createProducer(Session session)
throws JMSException {
Destination destination = session.createQueue("queue.hello");
MessageProducer producer = session.createProducer(destination);
producer.setDeliveryMode(DeliveryMode.NON_PERSISTENT);
return producer;
}
public static void main(String[] args) {
try {
Server server = new Server();
Connection connection = server.createConnection();
Session session = server.createSession(connection);
MessageProducer producer = server.createProducer(session);
TextMessage message = session.createTextMessage();
message.setText("Hello !");
producer.send(message);
} catch (JMSException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
注:在运行server前要启动activemq
需要导入工程的库文件: activemq-core-5.0.0.jar geronimo-jms_1.1_spec-1.0.jar commons-logging-1.1.jar geronimo-j2ee-management-1.0_spec-1.0 在apache-activemq的lib文件夹下