我使用以下代码来读取activemq消息。我需要使用REST实现activemq监听器。
这是消息读取演示类
public class ActiveMQConsumer {
public static void main(String args[]) {
String url = "http://localhost:8161/api/message?destination=queue://test.queue&readTimeout=10000&type=queue&clientId=test";
RestClient client = new RestClient(userName, password);
String activeMQResponse = client.get(url);
System.out.println(activeMQResponse);
}
}
这是spring resttemplate HTTP连接类
public class RestClient {
private String server = "";
private RestTemplate rest;
private HttpHeaders headers;
private HttpStatus status;
public RestClient(String userName, String password) {
this.rest = new RestTemplate();
this.headers = createHeaders(userName, password);
}
public HttpHeaders createHeaders(String username, String password) {
return new HttpHeaders() {
{
String auth = username + ":" + password;
byte[] encodedAuth = Base64.encodeBase64(auth.getBytes(Charset.forName("US-ASCII")));
String authHeader = "Basic " + new String(encodedAuth);
set("Authorization", authHeader);
set("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
set("Accept", "*/*");
}
};
}
public String get(String uri) {
HttpEntity<String> requestEntity = new HttpEntity<String>("", headers);
ResponseEntity<String> responseEntity = rest.exchange(server + uri, HttpMethod.GET, requestEntity, String.class);
this.setStatus(responseEntity.getStatusCode());
return responseEntity.getBody();
}
public HttpStatus getStatus() {
return status;
}
public void setStatus(HttpStatus status) {
this.status = status;
}
}
答案 0 :(得分:0)
首先,我不会使用RestClient联系某个经纪人,因为它不仅仅是简单的http通信。 new Vue({
el: '#app',
data: {
message: 'Hello Vue.js!',
words: [{
id: 1,
name: "sam",
marks: [1, 2, 4]
}, {
id: 1,
name: "name",
marks: [1, 12, 3]
}
]
}
})
或mqtt
协议不是amqt
。好的,我看到有效的mq提供了http api,但我仍然建议采用不同的方法。
使用apache-camel activemq组件。然后 您只需创建一条路线,如:
http
可以找到有关如何创建路线的更多信息here。好的是,骆驼有很大的支持和很好的文档。
如果这是一项要求,必须使用其余的消息,那么我可能会使用unirest。