`
foxxiao
  • 浏览: 107285 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

JAVA直接创建MQ连接与JNDI创建连接的区别

 
阅读更多

1.直接使用应用程序创建。

 

[java] view plaincopy
  1. public static void main(String[] args) throws JMSException {  
  2.         String uri = "tcp://tcp://localhost:61616";  
  3.         // 创建连接工厂。  
  4.         ConnectionFactory connectionFactory = new ActiveMQConnectionFactory(uri);  
  5.           
  6.         //创建连接对象。  
  7.         Connection connection = connectionFactory.createConnection();  
  8.           
  9.         //创建Queue对象  
  10.         Destination queue = new ActiveMQQueue("Queue");  
  11.           
  12.         //创建Topic对象  
  13.         Destination topic = new ActiveMQTopic("Topic");       
  14.     }  

 

2.Use Jndi 配置。

使用JNDI配置可以屏蔽具体的实现细节,可以不用修改代码就可以实现在不同消息中间消息件产品之间的切换。一般情况下,我们只要使用JMS规范中提及的那些接口就可以完成所有的编程。它们之间的关系如下:

JMS

本例介绍ActiveMQ提供的默认的JNDI的支持。

[xhtml] view plaincopy
  1. java.naming.factory.initial=org.apache.activemq.jndi.ActiveMQInitialContextFactory  
  2. java.naming.provider.url=tcp://localhost:61616  
  3. //username  
  4. java.naming.security.principal=  
  5. //password  
  6. java.naming.security.credentials=  
  7.   
  8. connectionFactoryNames=con1,con2  
  9. queue.MyQueue=MyQueue  
  10. topic.MyTopic=MyTopic  

 

本例中,配置了两个连接工厂con1,con2,一个Queue对象MyQueue,一个Topic对象MyTopic。

 

[java] view plaincopy
  1. import java.io.IOException;  
  2. import java.util.Properties;  
  3.   
  4. import javax.naming.Context;  
  5. import javax.naming.InitialContext;  
  6. import javax.naming.NamingException;  
  7.   
  8. import org.apache.log4j.Logger;  
  9.   
  10. public class JndiFactory {  
  11.       
  12.     private static final Logger LOGGER = Logger.getLogger(JndiFactory.class);  
  13.       
  14.     protected Context context = null;  
  15.       
  16.     public void initalize() throws NamingException  
  17.     {         
  18.         Properties props = new Properties();  
  19.         try{  
  20.             props.load(this.getClass().getResourceAsStream("jndi.properties"));   
  21.         }catch(IOException ex){  
  22.             LOGGER.error("Can't load jndi.properties.", ex);  
  23.         }  
  24.         context = new InitialContext(props);          
  25.     }  
  26.   
  27.     public Context getJndiContext() throws NamingException {  
  28.         if(context == null){  
  29.             initalize();  
  30.         }  
  31.         return context;  
  32.     }     
  33.   
  34. }  

 

 

使用JNDI拿到连接对象以及其他资源。

 

[java] view plaincopy
  1. public static void main(String[] args) throws NamingException, JMSException {  
  2.           
  3.         JndiFactory factory = new JndiFactory();          
  4.           
  5.         Context ctx = factory.getJndiContext();  
  6.           
  7.         //获取连接工厂。  
  8.         ConnectionFactory factory1 = (ConnectionFactory) ctx.lookup("con1");  
  9.         ConnectionFactory factory2 = (ConnectionFactory) ctx.lookup("con2");  
  10.           
  11.         //创建连接对象  
  12.         Connection conn = factory1.createConnection();  
  13.           
  14.         //获取Queue对象。  
  15.         Destination queue = (Queue) ctx.lookup("MyQueue");        
  16.           
  17.         //获取Topic对象。  
  18.         Destination topic = (Topic) ctx.lookup("MyTopic");  
  19.           
  20.         System.out.println(conn);                 
  21.         System.out.println(queue);        
  22.         System.out.println(topic);  
  23.           
  24.     }  

 

分享到:
评论

相关推荐

    Java下操作IBM Websphere MQ的项目案例

    1. **IBM MQ Java API**:IBM提供了JMS API的实现,允许Java开发者创建MQ连接、队列管理器、队列和通道。通过`com.ibm.mq.allclient`和`com.ibm.mq.jms`这两个库,你可以编写发送和接收消息的代码。 2. **连接配置*...

    java调用ibmmq最全版本jar包,包含connector

    - **创建MQQueue**:定义要操作的MQ队列,可以是输入队列、输出队列或双工队列。 - **建立连接和会话**:通过ConnectionFactory创建Connection对象,然后创建Session对象,用于执行发送和接收消息的操作。 - **...

    三种Java向MQ发送消息的方法 -- java代码

    配置MQ连接工厂和目的地后,只需编写一个监听器或模板方法即可发送消息。例如,创建一个`@JmsListener`注解的方法来接收消息,或者使用`JmsTemplate`的`convertAndSend`方法发送消息。 每种方法都有其适用场景和优...

    MQ6.0使用Java编程

    在本篇内容中,我们将深入探讨MQ 6.0版本与Java编程的集成,以及如何在Java环境下进行MQ的开发。 1. **MQ基础概念**: - **消息队列(Message Queue)**:MQ的核心概念,它是一种存储和转发消息的数据结构。消息被...

    java 开发 IBM MQ jar包

    使用这些jar包时,开发者首先需要导入它们到Java项目中,然后可以通过JMS API创建ConnectionFactory,配置连接参数(如主机名、端口、频道、队列管理器名),建立到MQ服务器的连接,创建QueueSender和QueueReceiver...

    WebsphereMQ.rar_JMS MQ_MQ_MQ JMS_java mq jms_websphereMQ downloa

    1. **创建JMS连接**:首先,你需要创建一个ConnectionFactory对象,它是与消息服务器建立连接的工厂。这通常通过JNDI(Java Naming and Directory Interface)查找完成。 2. **创建会话**:使用ConnectionFactory...

    IBM-MQ服务包.zip

    4. **Connection Parameters**:连接参数包括队列管理器名称、主机名、端口号、通道名称等,它们是建立MQ连接所必需的。 5. **Channel**:通道定义了客户端与队列管理器之间的通信方式,包括传输协议、安全性设置等...

    访问 IBM MQ 服务所需要jar包

    6. **连接工厂**: 在配置MQ连接时,通常会用到`com.ibm.mq.connector.jar`,它提供了JCA(Java Connector Architecture)连接工厂,使IBM MQ能集成到Java应用服务器中。 7. **工具类**: `...

    MQ&JAVA;编程

    这样,开发人员就可以使用Java标准的JMS API来与MQ交互,而无需直接调用MQ的特定API。 #### 1.3 JMS消息与MQ消息的映射 在MQ与JMS的集成场景下,消息在MQ和JMS之间传输时需要进行格式转换。JMS消息会被转换成MQ...

    IBM MQ 全部JAR包

    6. **com.ibm.mq.nojndi.jar**:在某些不支持或不需要JNDI(Java Naming and Directory Interface)的环境中,可以使用这个JAR包来直接实例化MQ连接工厂和队列,而不是通过JNDI查找。 在开发过程中,将这些JAR包...

    weblogic,mq集成配置

    ..\IBM\WebSphere MQ\Java\bin\JMSAdmin.bat -cfg mq-jndi.properties ``` - 在命令提示符中,继续执行以下命令来定义连接工厂和队列: ```bash def xaqcf(MQSenderQCF) qmgr(MQTest) def xaqcf(MQReceiverQCF...

    在IBM WebSphere 6.1中配置IBM MQ并通过JMS验证的方法和详细示例

    通过集成WebSphere Application Server与IBM MQ,可以实现更加健壮、高效的消息处理能力。 #### 二、配置步骤详解 ##### 1. 安装和配置WebSphere MQ 首先,需要在WebSphere MQ主机上安装和配置WebSphere MQ。具体...

    linux下weblogic和mq集成.pdf

    此外,还需要在WebLogic中创建队列和连接工厂,映射到MQ的对应JNDI名称。 7. **安全和权限**:启动WebLogic Server的用户需要是MQ组的一部分,以避免认证错误。例如,如果使用`weblogic`用户启动服务,需要将其添加...

    MQjava基础编程.pdf

    文档中给出了一个使用Java进行MQ消息发送的示例代码,通过创建MQ连接和队列管理器,并使用MQMessage和MQPutMessageOptions等类进行消息的发送操作。这说明了Java开发者如何编写代码来实现与MQ的交互。 9. IBM ...

    WAS中配置MQ.doc

    7. **创建MQ队列连接工厂**: - 在管理控制台中,创建一个新的WebSphere MQ队列连接工厂,如`qmanager`。 - 设置参数包括JNDI名称(如`jms/spcQCF`)、组件和容器受管的认证别名、队列管理器(SPC)、主机(如`...

    mq+cxf相关资源jar包

    2. 配置MQ连接:在Spring的配置文件中定义MQ的连接工厂和目的地,可能包括JNDI查找、URL、通道、队列等信息。 3. 配置CXF服务:定义服务接口和实现,以及服务的HTTP端点。 4. 使用Spring的模板类:如JmsTemplate来...

    基于soap over jms 的websphere mq与axis2的实现

    这可能涉及到创建JNDI上下文、设置MQ连接工厂、配置消息监听器等步骤。`基于soap over jms 的websphere mq与axis2的实现.txt`这个文件很可能是记录了这个实现过程的详细步骤或代码示例。 总结起来,这个主题涵盖了...

    websphere MQ 8.0 自带jar包

    提供了与 IBM MQ 交互的低级别接口,用于本地和远程通信,支持 Java 连接器架构(JCA)。 - `com.ibm.mq.pcf.jar`: 提供了访问管理控制设施(PCF)的类,用于通过命令行或其他应用程序来管理 WebSphere MQ 配置。 ...

    Spring JMS消息处理-不基于JNDI

    ConnectionFactory是用于创建与消息服务器连接的对象,而Destination则代表我们要发送或接收消息的目标。以下是一个简单的配置示例: ```xml ``` 在这里,`YourConnectionFactoryImplementation`是你...

Global site tag (gtag.js) - Google Analytics