是否可以使用Java和JMS连接到本地运行的IBM MQ Light?

时间:2015-07-06 14:48:29

标签: jms ibm-cloud ibm-mq

问题的标题几乎说明了:是否可以使用Java和JMS连接到本地运行的IBM MQ Light? 在this post的评论部分,Rob Nicholson表示这是不可能的,但我想知道事情是否已经发生了变化。可悲的是,除了这个评论之外,我无法找到明确否定这种可能性的信息。

为了澄清,MQ Light在本地运行,而不是在IBM的bluemix中运行。

1 个答案:

答案 0 :(得分:2)

当然可以将JMS与MQLight一起使用!

由于MQLight支持有线协议AMQP 1.0,您可以使用Apache QPid Proton library

两个文件中的Working Sample将生成一条到MQLight队列的消息。

Main.java

import org.apache.qpid.jms.JmsConnectionFactory;
import javax.jms.*;

public class Main {

    public static void main(String[] args){
        try {
            ConnectionFactory cf = new JmsConnectionFactory("amqp://localhost:5672");
            Connection connection = cf.createConnection();
            Session session = connection.createSession(false,Session.AUTO_ACKNOWLEDGE);
            MessageProducer producer = session.createProducer(session.createQueue("QUE.BAR"));
            producer.send(session.createTextMessage("foo bar"));
            producer.close();
            session.close();
            connection.close();
        }catch(JMSException jmsException){
            jmsException.printStackTrace();
        }
    }
}

的pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.example.test</groupId>
    <artifactId>mqlight-jms</artifactId>
    <version>1.0-SNAPSHOT</version>
    <dependencies>
        <dependency>
            <groupId>org.apache.qpid</groupId>
            <artifactId>qpid-jms-client</artifactId>
            <version>0.3.0</version>
        </dependency>
    </dependencies>
</project>