下面的例子程序是从Jboss的官方文档上面获取的。简单改造。
文档地址:http://www.jboss.org/file-access/default/members/jbossas/freezone/docs/Server_Configuration_Guide/4/html/index.html
please refer the chapter 7
package org.liuxt.jboss;
import java.util.concurrent.ArrayBlockingQueue;
import java.util.concurrent.BlockingQueue;
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.QueueSender;
import javax.jms.QueueSession;
import javax.jms.TextMessage;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import org.apache.log4j.Logger;
/**
* A complete JMS client example program that sends a
* TextMessage to a Queue and asynchronously receives the
* message from the same Queue.
*
* @author Scott.Stark@jboss.org
* @version $Revision: 1.9 $
*/
public class PTPMessage
{
static Logger log=Logger.getLogger(PTPMessage.class);
QueueConnection conn;
QueueSession session;
Queue que;
QueueSender sender;
QueueReceiver receiver;
int i=0;
int messageCount=100;
final BlockingQueue<String> blockQueue=new ArrayBlockingQueue<String>(100);
public class ReceiverListener implements MessageListener
{
int j=0;
public void onMessage(Message msg)
{
TextMessage tm = (TextMessage) msg;
try {
log.info("onMessage, received message:=" + tm.getText());
//log.info("onMessage, received message:=" + tm.getJMSMessageID());
} catch(Throwable t) {
t.printStackTrace();
}
finally{
if(++j==messageCount){
try {
blockQueue.put("over");
} catch (InterruptedException e) {
}
}
}
}
}
/**
* setup Setup the PTP connection, session
* @throws JMSException
* @throws NamingException
*/
public void setupPTP()
throws JMSException,
NamingException
{
InitialContext iniCtx = new InitialContext();
Object tmp = iniCtx.lookup("ConnectionFactory");
QueueConnectionFactory qcf = (QueueConnectionFactory) tmp;
conn = qcf.createQueueConnection();
que = (Queue) iniCtx.lookup("queue/testQueue");
session = conn.createQueueSession(false, QueueSession.AUTO_ACKNOWLEDGE);
conn.start();
}
public void startMessageTest() throws JMSException, NamingException
{
while(++i<=this.messageCount){
//log.info("Begin sendRecvAsync");
// Send a text msg
TextMessage tm = session.createTextMessage("...message..."+i);
this.sender.send(tm);
//log.info("sending message, sent text=" + tm.getText());
}
}
private void createSender() throws JMSException {
this.sender = this.session.createSender(que);
}
private void createReceiver() throws JMSException {
this.receiver = this.session.createReceiver(que);
this.receiver.setMessageListener(new ReceiverListener());
}
public void stop()
throws JMSException
{
conn.stop();
this.sender.close();
this.receiver.close();
session.close();
conn.close();
}
public static void main(String args[])
throws Exception
{
PTPMessage client = new PTPMessage();
client.setupPTP();
client.createSender();
client.createReceiver();
client.startMessageTest();
client.blockQueue.take();
//done.acquire();
client.stop();
}
}
分享到:
相关推荐
JBOSS MESSAGE USER GUIDE
Jboss启动报Failed to parse WEB-INFweb.xml; - nested throwable错误
JMS (Java Message Service) JTS/JTA (Java Transaction Service / Java Transaction API) Servlet and JSP (JavaServer Pages) JNDI (Java Naming and Directory Interface) 它还提供一些高级特性,比如集群、JMX、...
JBOSS,JBoss安装部署 JBOSS,JBoss安装部署
JBoss启动JBoss启动JBoss启动JBoss启动JBoss启动JBoss启动JBoss启动JBoss启动 JBoss启动
JavaEE源代码 jboss-commonJavaEE源代码 jboss-commonJavaEE源代码 jboss-commonJavaEE源代码 jboss-commonJavaEE源代码 jboss-commonJavaEE源代码 jboss-commonJavaEE源代码 jboss-commonJavaEE源代码 jboss-...
Migrating Jboss ESB from hsql to mysql
JBOSS使用指南JBOSS使用指南JBOSS使用指南JBOSS使用指南JBOSS使用指南JBOSS使用指南JBOSS使用指南JBOSS使用指南
Jboss项目部署文档
jboss 下载(httpwww.jboss.org)
帮你设置jboss安全性问题。Jboss安全设置 jboss安全性 jboss设置安全性Jboss安全设置 jboss安全性 jboss设置安全性
way to start a JBoss server cluster is to start several JBoss instances on the same local network, using the run -c all command for each instance. Those server instances, all started in the all ...
如何在MyEclipse配置Jboss
Jboss配置虚拟路径
jboss热部署,jboss热部署,jboss热部署,jboss热部署,jboss热部署,jboss热部署,jboss热部署,jboss热部署,jboss热部署,jboss热部署,jboss热部署,jboss热部署
Jboss get started
2. Go to jboss-as-7.1.1.Final/modules/org/jboss/as/web/main Place the jboss-as-web-7.1.1.Final-RECOMPILE.jar in there. You can download from http://www.datafilehost.com/download-2cb9ff04.html 3. ...
jboss服务器配置https环境的详细方法
linux 环境jboss 7.1 (注jdk不要用1.8 否则不能启动)