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

问题的标题几乎全部说明:是否可以使用
Java和JMS连接到本地运行的IBM MQ Light?


this post的评论部分,Rob Nicholson说这是不可能的,但我想知道事情是否已经改变.可悲的是,除了这个评论之外,我无法找到明确否定这种可能性的信息.

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

最佳答案 当然你可以在MQLight中使用JMS!

由于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>
点赞