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