• 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 的模式为例。一些代码还是需要修改的在项目中。这里只做这参考。
    有时间,我会把相关的学习笔记和别人的笔记做整理,供大家学习。有什么问题欢迎拍砖。转载请标明出处。

  • 相关阅读:
    剑指offer:合并两个排序的链表
    剑指offer:调整数组顺序使奇数位于偶数前面
    剑指offer:链表中倒数第K个结点
    牛客网在线编程:末尾0的个数
    剑指offer7:数值的整数次方
    牛客网在线编程:计算糖果
    牛客网在线编程:求数列的和
    牛客网在线编程:公共字符
    剑指offer7:斐波那契数列
    Qt入门之常用qt控件认知之Button系列
  • 原文地址:https://www.cnblogs.com/java20130726/p/3218296.html
Copyright © 2020-2023  润新知