JMS 使用步骤

JMS 使用步骤:以下以P2P 的例子加以说明,pub/sub的例子与此相似。
JMS 发送机:
第一步:需要一些属性来初始化容器。
        属性一:标识是那种容器,如weblogic :weblogic.jndi.WLInitialContextFactory
       属性二:访问容器的协议地址和端口:t3://localhost:7003
属性三:用户名和密码(这两个属性可选)
初始化运行JMS相关API的容器。
代码:
Properties p = new Properties();
p.put("Context.INITIAL_CONTEXT_FACTORY","weblogic.jndi.WLInitialContextFactory");
p.put(Context.PROVIDER_URL,"t3://localhost:7003");
p.put(Context.SECURITY_PRINCIPAL,"weblogic");//(可选)
p.put(Context.SECURITY_CREDENTIALS,"weblogic");//凭证 证件 (可选)
Context ctx = new InitialContext(p);// 上下文
第二步:测试是否连接JMS服务器上。
        Context 上下文提供的bind(绑定)方法,可以把一些相关的属性绑定到weblogic 中的JNDI 中,
并可以查询到。调用上下文提供的lookUp(查询) 方法,查询已经绑定在JNDI 树上的属性。
如果,绑定和查询 都没有问题,那说明已经连接到了JMS 服务器上。当然,Context 也提供了其它的API。代码:
/**测试JNDI 是否联连成功 是否可以把属性挂在JNDI 树上 开始*/
ctx.bind("name","zs");
Object ojbObject = ctx.lookup("name");
System.out.println(ojbObject.toString());
/**测试JNDI 是否联连成功 是否可以把属性挂在JNDI 树上 结束*/
第三步:查询JMS 连接工厂。
        获取一个JMS连接工厂是为了获取与服务器的连接。前题是这个JMS工厂一定要事先创建好,
代码:
QueueConnectionFactory connectionFactory =  (QueueConnectionFactory) ctx.lookup("testcf");
注:查询的是连接工厂的JNDI的名字,不是连接工厂的名字。
第四步:创建一个列队或主题连接。
        创建一个列队或主题连接是为了获取与JMS会话的Session.代码:
QueueConnection qConnection  = connectionFactory.createQueueConnection();
第五步:创建会话Session 。
        创建会话Session 是为了创建一个消息的发送者和发送内容类型。
代码:
QueueSession qSession = qConnection.createQueueSession(false,Session.AUTO_ACKNOWLEDGE);
注:有两个参数,这里就不多说了,具体的使用可以去查一下,建意这样写。
第六步:创建一个列队来存储消息,是消息的存方的物理地址,前题是这个队列需要在weblogic里创建后。
        代码:
Queue queue = (Queue) ctx.lookup("testjms");
第七步:创建一个消息的发送者。代码:   
QueueSender qSender =  qSession.createSender(queue);
第八步:创建一个发送内容类型(Stream,byte,map,text,object)。代码:
TextMessage tesTextMessage=qSession.createTextMessage();//建立消息
qSession.createTextMessage();
第九步:打开连接,设置发送文本内容。代码:
qConnection.start();//开始连接
tesTextMessage.setText(" 哈哈 成功了");//设置发送内容
qSender.setDeliveryMode(DeliveryMode.PERSISTENT);//设置发送模型
qSender.send(tesTextMessage); //发送 
第十步:关才相关连接,释放资源。代码:
        if(qConnection != null){
qConnection.stop();
qConnection.close();
qConnection=null;
}


JMS 消息消费机: 前六步与消息发送机一样,这里 就不多说了,查以参考一下。
    
第七步:创建 一个消息的接收者,获取消费消息。代码:
MessageConsumer comsumer = qSession.createConsumer(queue);
第八步:打开连接,接收消息。代码:
     qConnection.start();
     TextMessage textMessage =(TextMessage)comsumer.receive();
     String receiveString = textMessage.getText();
     System.out.println(receiveString);
第九步:关才相关连接,释放资源。代码:
        if(qConnection != null){
       qConnection.stop();
qConnection.close();
qConnection=null;
}
说明:以上代码是以point to point 的模式为例。一些代码还是需要修改的在项目中。这里只做这参考。
有时间,我会把相关的学习笔记和别人的笔记做整理,供大家学习。有什么问题欢迎拍砖。转载请标明出处。

原文地址:https://www.cnblogs.com/java20130726/p/3218296.html