如何使用java创建Activemq http侦听器

时间:2016-11-29 12:36:41

标签: java spring activemq resttemplate

我使用以下代码来读取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;
    }
}

1 个答案:

答案 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