通讯流程图

首先是Server端的开发及设置:
1、增加一个用户:
bin\add-user.bat
用户名密码随便,但要属于guest组
2、启动Server
standalone.bat -server-config=standalone-full.xml
3、新建Queue
jboss-cli.bat --connect jms-queue add --queue-address=jmsQueue --entries=queue/jmsQueue,java:jboss/exported/jms/queue/jmsQueue
到这里服务端已经完成了。
然后是客户端的设置:
1、Sender
package com.neohope.jms.test;
import javax.jms.*;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import java.util.Hashtable;
/**
* Created by Hansen
*/
public class TestQueueSender {
public static void main(String[] args) throws NamingException, JMSException {
final Hashtable jndiProperties = new Hashtable();
jndiProperties.put(Context.INITIAL_CONTEXT_FACTORY, "org.jboss.naming.remote.client.InitialContextFactory");
jndiProperties.put(Context.PROVIDER_URL, "remote://localhost:4447");
final InitialContext ctx = new InitialContext(jndiProperties);
QueueConnectionFactory factory = (QueueConnectionFactory) ctx.lookup("jms/RemoteConnectionFactory");
QueueConnection connection = factory.createQueueConnection("user001", "user001#");
QueueSession session = connection.createQueueSession(false, QueueSession.AUTO_ACKNOWLEDGE);
Queue queue = (Queue) ctx.lookup("jms/queue/jmsQueue");
TextMessage msg = session.createTextMessage("Queue Test Messagee");
QueueSender sender = session.createSender(queue);
sender.send(msg);
session.close();
connection.close();
}
}
2、Receiver
package com.neohope.jms.test;
import javax.jms.*;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import java.io.IOException;
import java.util.Hashtable;
/**
* Created by Hansen
*/
public class TestQueueReceiver {
public static void main(String[] args) throws NamingException, JMSException, IOException {
final Hashtable jndiProperties = new Hashtable();
jndiProperties.put(Context.INITIAL_CONTEXT_FACTORY, "org.jboss.naming.remote.client.InitialContextFactory");
jndiProperties.put(Context.PROVIDER_URL, "remote://localhost:4447");
final InitialContext ctx = new InitialContext(jndiProperties);
QueueConnectionFactory factory = (QueueConnectionFactory) ctx.lookup("jms/RemoteConnectionFactory");
QueueConnection connection = factory.createQueueConnection("user001", "user001#");
QueueSession session = connection.createQueueSession(false, QueueSession.AUTO_ACKNOWLEDGE);
Queue queue = (Queue) ctx.lookup("jms/queue/jmsQueue");
QueueReceiver receiver = session.createReceiver(queue);
receiver.setMessageListener(new MessageListener() {
public void onMessage(Message message) {
try{
TextMessage msg=(TextMessage)message;
System.out.println("Queue message received:"+msg.getText());
}
catch(JMSException e)
{
System.out.println(e);
}
}});
connection.start();
System.in.read();
session.close();
connection.close();
}
}