要使用Java连接MQ(消息队列)实现信息查询,你可以使用JMS(Java消息服务)API。以下是一个简单的示例,展示了如何使用Java连接到ActiveMQ并发送和接收消息:
- 首先,确保你已经安装了ActiveMQ,并在本地运行。你可以从官方网站下载并安装:http://activemq.apache.org/
- 添加ActiveMQ的依赖项到你的项目中。如果你使用的是Maven,可以在pom.xml文件中添加以下依赖项:
<dependency>
<groupId>org.apache.activemq</groupId>
<artifactId>activemq-client</artifactId>
<version>5.16.3</version>
</dependency>
- 创建一个Java类,用于发送和接收消息:
import javax.jms.*;
import org.apache.activemq.ActiveMQConnectionFactory;
public class MQExample {
public static void main(String[] args) throws JMSException {
// 创建连接工厂
ConnectionFactory connectionFactory = new ActiveMQConnectionFactory("tcp://localhost:61616");
// 创建连接
Connection connection = connectionFactory.createConnection();
connection.start();
// 创建会话
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
// 创建队列
Queue queue = session.createQueue("example.queue");
// 创建生产者
MessageProducer producer = session.createProducer(queue);
// 创建并发送消息
TextMessage message = session.createTextMessage("Hello, this is a message from Java!");
producer.send(message);
System.out.println("Message sent: " + message.getText());
// 创建消费者
MessageConsumer consumer = session.createConsumer(queue);
// 接收消息
Message receivedMessage = consumer.receive(1000);
if (receivedMessage instanceof TextMessage) {
TextMessage textMessage = (TextMessage) receivedMessage;
System.out.println("Message received: " + textMessage.getText());
} else {
System.out.println("Received message is not a TextMessage");
}
// 关闭资源
consumer.close();
session.close();
connection.close();
}
}
这个示例中,我们首先创建了一个连接工厂,然后使用该工厂创建了一个连接。接着,我们创建了一个会话,并使用该会话创建了一个队列。然后,我们创建了一个生产者,用于发送消息,以及一个消费者,用于接收消息。最后,我们关闭了所有资源。