`

使用WEBLOGIC收发JMS

    博客分类:
  • Java
阅读更多

JMS是一个由AS提供的Message服务。它能接受消息产生者(Message Provider)所发出的消息,并把消息转发给消息消费者(Message  Consumer)。
2、JMS提供2种类型的消息服务:(1)Queue,即点对点,每个消息只转发给一个消息消费者使用。(2)Topic,即发布和订阅,每个消息可以转发给所有的订阅者(消费者)。
3、WEBLOGIC 8下的JMS配置:
(1)配置JMS Connection Factory
(2)配置JMS File Store(目前所找到的文档都是配置File Store,其实在具体的应用中,可能JMS JDBC Store更广泛,但暂时没有找到资料)
(3)配置JMS Server
(4)在JMS Server的destinations中配置JMS Queue或者JMS Topic
其中提供给消息产生者和消息消费者使用的是JMS Connection Factory的JNDI和JMS Queue或者JMS Topic的JNDI。
4、消息产生者向JMS发送消息的步骤:
(1)使用JNDI查询对象JMS ConnectionFactory和Destination(JMS Queue/Topic)
(2)使用管理对象JMS ConnectionFactory建立连接Connection
(3)使用连接Connection 建立会话Session
(4)使用会话Session和管理对象Destination创建消息生产者MessageSender
(5)使用消息生产者MessageSender发送消息
一个消息发送者的例子:

package myjms;   
  
import java.util.*;   
import javax.naming.*;   
import javax.jms.*;   
  
public class MessageProducter {   
  public static void main(String[] args) {   
    String queueConnectionFactoryName = "myjmsconnectionfactory"; //JMS Connection Factory?JNDI   
    String queueName = "myjmsqueue"; //JMS Queue??JMS Topic?JNDI   
  
    boolean transacted = false;//transaction??   
    int acknowledgementMode = Session.AUTO_ACKNOWLEDGE;//acknowledgement??   
    String message="Message need to send";//?????????   
  
    Properties properties = new Properties();   
    properties.put(Context.INITIAL_CONTEXT_FACTORY,"weblogic.jndi.WLInitialContextFactory");   
    properties.put(Context.PROVIDER_URL, "t3://localhost:7001");   
  
    try {   
      Context context = new InitialContext(properties);   
      Object obj = context.lookup(queueConnectionFactoryName);   
      QueueConnectionFactory queueConnectionFactory = (QueueConnectionFactory) obj;//JMS Connection Factory???   
        
      obj = context.lookup(queueName);   
      Queue queue = (Queue) obj;//JMS Queue??JMS Topic???   
  
      QueueConnection queueConnection=queueConnectionFactory.createQueueConnection();//????   
      queueConnection.start();   
      QueueSession queueSession = queueConnection.createQueueSession(transacted, acknowledgementMode);   
      TextMessage textMessage = queueSession.createTextMessage();   
      textMessage.clearBody();   
      textMessage.setText(message);   
      QueueSender queueSender = queueSession.createSender(queue);   
      queueSender.send(textMessage);   
      if (transacted) {   
        queueSession.commit();   
      }   
  
      if (queueSender != null) {   
        queueSender.close();   
      }   
      if (queueSession != null) {   
        queueSession.close();   
      }   
      if (queueConnection != null) {   
        queueConnection.close();   
      }   
  
    }   
    catch(Exception ex){   
      ex.printStackTrace();   
    }   
  }   
}  
 

5、消息消费者从JMS接受消息的步骤:
(1)使用JNDI查询对象JMS ConnectionFactory和Destination(JMS Queue/Topic)
(2)使用管理对象JMS ConnectionFactory建立连接Connection
(3)使用连接Connection 建立会话Session
(4)使用会话Session和管理对象Destination创建消息消费者MessageReceiver
(5)使用消息消费者MessageReceiver接受消息,需要用setMessageListener将MessageListener接口绑定到MessageReceiver
消息消费者必须实现了MessageListener接口,需要定义onMessage事件方法。
一个消息消费者的例子:

package myjms;   
  
import java.util.*;   
import javax.naming.*;   
import javax.jms.*;   
  
public class MessageReciever   
    implements MessageListener {   
  public void onMessage(Message message) {   
    if (message instanceof TextMessage) {   
      TextMessage textMessage = (TextMessage) message;   
      try {   
        System.out.println("Message content is:" + textMessage.getText());   
      }   
      catch (JMSException e) {   
        e.printStackTrace();   
      }   
    }   
  }   
  
  public static void main(String[] args) {   
      
    MessageReciever msgRcvr=new MessageReciever();   
    String queueConnectionFactoryName = "myjmsconnectionfactory";   
    String queueName = "myjmsqueue";   
  
    boolean transacted = false;   
    int acknowledgementMode = Session.AUTO_ACKNOWLEDGE;   
  
    Properties properties = new Properties();   
    properties.put(Context.INITIAL_CONTEXT_FACTORY,   
                   "weblogic.jndi.WLInitialContextFactory");   
    properties.put(Context.PROVIDER_URL, "t3://localhost:7001");   
  
    try {   
      Context context = new InitialContext(properties);   
      Object obj = context.lookup(queueConnectionFactoryName);   
      QueueConnectionFactory queueConnectionFactory = (QueueConnectionFactory)   
          obj;   
  
      obj = context.lookup(queueName);   
      Queue queue = (Queue) obj;   
  
      QueueConnection queueConnection = queueConnectionFactory.   
          createQueueConnection();   
      queueConnection.start();   
      QueueSession queueSession = queueConnection.createQueueSession(transacted,   
          acknowledgementMode);   
      QueueReceiver queueReceiver = queueSession.createReceiver(queue);   
  
      queueReceiver.setMessageListener(msgRcvr);   
  
      synchronized(msgRcvr){   
        msgRcvr.wait(100000);   
      }   
  
      if (queueReceiver != null) {   
        queueReceiver.close();   
      }   
      if (queueSession != null) {   
        queueSession.close();   
      }   
      if (queueConnection != null) {   
        queueConnection.close();   
      }   
  
    }   
    catch (Exception ex) {   
      ex.printStackTrace();   
    }   
  }   
}  

 6、Message-driven Bean
MDB实际上就是一个消息消费者的客户端程序。它由AS EJB Container来管理。在JBUILDER生成一个MDB非常简单。

分享到:
评论

相关推荐

    weblogic与jms+spring

    【WebLogic 与 JMS+Spring 整合详解】 WebLogic 是由 BEA Systems(现已被 Oracle 收购)开发的一款 Java 应用服务器,它主要用于构建、部署和管理大型分布式Web应用、网络应用和数据库应用。WebLogic 提供了对多种...

    Weblogic创建JMS服务器

    WebLogic Server是一款由Oracle公司提供的企业级Java应用服务器,它支持Java ...同时,熟悉源码和工具的使用能帮助你更好地诊断和优化JMS服务器的性能。在实际操作中,一定要遵循最佳实践,确保系统的稳定性和安全性。

    springboot集成weblogic的jms源码.zip

    这个"springboot集成weblogic的jms源码.zip"压缩包提供了将Spring Boot应用与WebLogic的JMS服务集成的示例代码。 首先,我们来看`JmsConfiguration.java`文件。这是一个配置类,通常用于设置与JMS相关的bean。在...

    Weblogic JMS 依赖jar包下载

    Weblogic JMS 依赖jar包是Oracle公司的中间件产品Weblogic Server中用于...在开发过程中,理解JMS的原理和Weblogic JMS的配置细节,以及正确引用和使用这些jar包,对于成功地在Weblogic 11g上实现消息服务至关重要。

    weblogic_jms服务器配置

    总之,配置 WebLogic JMS 服务器需要理解 JMS 的基本概念,熟练使用 WebLogic 管理控制台,并且根据实际业务需求调整相关参数。正确配置后,JMS 服务器能为你的应用程序提供可靠的异步通信和消息传递能力。

    weblogic中使用JMS发送和接受消息

    本文将详细介绍如何在WebLogic中使用JMS来创建Queue(队列)和TOPIC(主题)并进行消息的发送与接收。 ### 一、JMS基本概念 1. **Queue(队列)**:队列是一种点对点的消息传递模型,其中每个消息只会被一个消费者...

    spring,weblogic配置jms

    Spring框架是一个广泛使用的Java应用开发框架,它提供了与多种消息中间件集成的能力,包括WebLogic Server的JMS服务。WebLogic是Oracle公司的一款企业级应用服务器,它支持JMS规范,提供了强大的消息队列和发布/订阅...

    JMS入门小例子以及weblogic安装,并且在weblogic中配置JMS服务

    JMS提供了一种标准接口,使得应用开发者可以使用不同的消息中间件(Message Broker),如WebLogic Server,而无需关心具体的实现细节。 WebLogic Server是一款由Oracle公司提供的企业级应用服务器,它支持JMS服务,...

    Weblogic_JMS+配置数据源配置

    WebLogic Server是一款由Oracle公司提供的企业级Java应用服务器,它提供了包括JMS(Java Message Service)在内的多种中间件服务。JMS是Java平台上的标准消息传递API,用于在分布式环境中发送和接收消息。配置...

    Spring+Weblogic JMS

    在本项目中,Spring与WebLogic JMS(Java消息服务)的集成展示了如何在Spring环境中使用消息队列进行通信。 WebLogic JMS是Oracle WebLogic Server提供的消息中间件,它遵循JMS规范,用于在分布式环境中传递消息,...

    Spring+weblogic接收JMS消息

    - 可以使用Spring的`JmsTemplate`进行发送消息的测试,或者通过WebLogic Server的管理控制台查看JMS资源的状态和消息队列。 通过以上知识,开发者可以构建一个基于Spring的Java应用,有效地利用WebLogic Server的...

    webLogic9.2配置JMS步骤

    WebLogic 9.2配置JMS(Java Message Service)涉及一系列步骤,主要目的是为了实现分布式消息传递,包括点对点的Queue模式和发布/订阅的Topic模式。在本例中,我们将专注于配置发布/订阅模式,即Topic。以下是详细的...

    Weblogic提供JMS服务Demo

    这两个例子会覆盖创建、连接、发送和接收消息的关键操作,帮助你理解和掌握Weblogic上的JMS使用。 总的来说,通过这个Demo,开发者可以学习到如何在Weblogic环境中配置和使用JMS服务,这对于构建高可用性和可扩展性...

    JMS经典实例 基于weblogic

    在WebLogic中,这通常涉及到JMS API的`ConnectionFactory`、`QueueConnectionFactory`、`Queue`、`MessageProducer`和`MessageConsumer`等接口的使用。 在实际应用中,JMS可以用来实现异步处理、负载均衡、系统间...

    Programming WebLogic JMS

    ### 编程WebLogic JMS:深入理解与实践 #### 一、引言 随着企业级应用对消息处理的需求日益增长,Java消息服务(JMS)作为一种标准的消息中间件技术,已经成为开发分布式应用的重要组成部分。BEA WebLogic Server...

    java weblogic jms temple

    自己写好的一个简单的weblogic jms的简单实现,包括点对点的实现,以及topic的实现,适合初学者参考

    Weblogic环境下JMS配置

    5. 部署JMS资源:将创建的JMS资源部署到WebLogic域中,以便应用程序能够使用它们。 6. 编写应用程序代码:在Java代码中,我们需要使用JMS API来发送和接收消息。例如,使用`ConnectionFactory`创建连接,然后创建...

    weblogic中配置JMS及其测试程序

    WebLogic Server是一款由Oracle公司提供的企业级Java应用服务器,它支持Java EE标准,其中包括Java消息服务(JMS:Java Message Service)。JMS是Java平台中用于异步通信的标准API,它允许应用程序创建、发送、接收...

    JMS 简介以及Weblogic配置JMS图解

    通过使用JMS,开发者可以专注于业务逻辑,而不必关心底层的消息传输细节,这极大地提高了代码的可移植性和系统的灵活性。同时,JMS提供的消息持久化和优先级机制确保了消息的重要性和可靠性。在WebLogic这样的应用...

Global site tag (gtag.js) - Google Analytics