ActiveMQ Artemis是一个开源的消息代理,它提供了一个REST API用于管理和操作消息队列。要使用ActiveMQ Artemis的REST API,您需要启动ActiveMQ Artemis服务器,并在服务器上配置REST API。
以下是一个示例代码,演示如何使用ActiveMQ Artemis的REST API来发送和接收消息:
import okhttp3.*;
public class ArtemisRestExample {
public static final MediaType JSON = MediaType.parse("application/json; charset=utf-8");
public static void main(String[] args) {
OkHttpClient client = new OkHttpClient();
// 发送消息
sendMessage(client, "queue.example", "Hello, ActiveMQ Artemis!");
// 接收消息
String message = receiveMessage(client, "queue.example");
System.out.println("Received message: " + message);
}
public static void sendMessage(OkHttpClient client, String destination, String message) {
String url = "http://localhost:8161/api/message/" + destination;
RequestBody body = RequestBody.create(JSON, message);
Request request = new Request.Builder()
.url(url)
.post(body)
.build();
try (Response response = client.newCall(request).execute()) {
if (!response.isSuccessful()) {
throw new RuntimeException("Failed to send message: " + response);
}
} catch (Exception e) {
e.printStackTrace();
}
}
public static String receiveMessage(OkHttpClient client, String destination) {
String url = "http://localhost:8161/api/message/" + destination;
Request request = new Request.Builder()
.url(url)
.get()
.build();
try (Response response = client.newCall(request).execute()) {
if (!response.isSuccessful()) {
throw new RuntimeException("Failed to receive message: " + response);
}
return response.body().string();
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
}
在上面的示例中,我们使用OkHttp库来发送HTTP请求。首先,我们定义了一个sendMessage
方法来发送消息,该方法将消息体作为JSON格式的字符串发送到指定的目的地队列。然后,我们定义了一个receiveMessage
方法来接收消息,该方法从指定的目的地队列中获取消息的内容。
请注意,示例中的URL是基于默认的ActiveMQ Artemis服务器配置进行的。如果您的服务器配置有所不同,请相应地更改URL。
此外,请确保您已经正确地配置了ActiveMQ Artemis服务器以启用REST API。有关配置指南,请查阅ActiveMQ Artemis的官方文档。