簡體   English   中英

通過REST的ActiveMQ處理消息

[英]ActiveMQ Handling Messages thru REST

我是ActiveMQ的新手,我們在其他位置有ActiveMQ Server,我們無法通過tcp套接字進行連接,但是能夠使用REST命令收集消息

http://admin:admin@localhost:8161/api/message?destination=queue://orders.input

我在ActiveMQ中有99K +條消息,需要使用REST命令進行消費,並且需要存儲在文本文件中,

import static com.jayway.restassured.RestAssured.given;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.net.URI;
import java.net.URISyntaxException;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;

import org.apache.commons.codec.binary.Base64;
import org.apache.http.HttpRequest;
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;

import com.dnb.e2e.automation.util.CommonUtil;
import com.dnb.e2e.automation.util.WebServiceUtil;
import com.jayway.restassured.RestAssured;
import com.jayway.restassured.config.SSLConfig;
import com.jayway.restassured.config.SessionConfig;
import com.jayway.restassured.response.Headers;
public class MQwithRest {
     public static String getResponse() throws Exception 
     {
        String url = "http://admin:admin@localhost:8161/api/message?destination=queue://SAMPLEQUEUE";

        String response = "a";

            while(response!=""){
            try {
                response =  given().header("content-type", "application/json")
                        .request()
                        .config(RestAssured.config().sslConfig(new SSLConfig().allowAllHostnames()))
                        .when().get(url).asString();
                System.out.println(response);
            } catch (Exception e) {
                e.printStackTrace();
            }
            }
            return "empty";
        }

     public static void main(String args[]) throws Exception
     {
                 System.out.println(MQwithRest.getResponse());
     }
}

在上面的代碼中,我在輸出端顯示消耗的消息。 當我實施“通過休息”時,每個會話一次只能使用一條消息。

任何機構都可以使用REST服務在單個會話中幫助消耗99k +消息嗎?

您還可以通過HTTP隧道JMS客戶端 這樣,您可以繞過網絡中的任何非HTTP限制,並仍然使用JMS術語。

使用捆綁在一起的其余Web應用程序,您會有點局限於檢索消息的語義。 無論如何,無論如何,您都應該能夠使用純HTTP / Rest獲取所有消息。 只需使用循環即可獲取消息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM