ActiveMQ 测试连接



我正在尝试测试ActiveMQ连接并返回一个值。 它在线崩溃:

httpResponse  = client.execute(theHttpGet); 

这不是我的代码,我正在尝试调试它。谁能帮助我理解为什么代码使用 HttpGet

  public ActivemqBrokerInfo(String serverAddress, int port, String apiUrl, int timeout) {
    // Default Activemq location
    this.serverAddress = String.format("http://%s:%s/%s", serverAddress, port, apiUrl);
    int timeoutInMs = timeout;
    HttpClientBuilder builder = HttpClientBuilder.create();
    RequestConfig requestConfig = RequestConfig.custom().setConnectTimeout(timeoutInMs).build();
    builder.setDefaultRequestConfig(requestConfig);
    client = builder.build();
  }
  public ActivemqBrokerInfo(String serverAddress) {
    this(serverAddress, DEFAULT_PORT, DEFAULT_API_URL, DEFAULT_TIMEOUT);
  }
  @Override
  public boolean testConnection() {
    HttpGet theHttpGet = new HttpGet(serverAddress);
    theHttpGet.addHeader("test-header-name", "test-header-value");
    HttpResponse httpResponse = null;
    try{
      httpResponse  = client.execute(theHttpGet);// Code is crashing on this line 
    } catch (IOException ex){
      LOGGER.error("Broker down: ", ex);
    }
    return httpResponse != null;
  }

当ActiveMQ运行时,通常会启动嵌入式Web服务器。此 Web 服务器用于托管 Web 管理控制台以及 Jolokia 端点,该端点充当代理 MBean 前面的 HTTP 门面。换句话说,任何客户端都可以将 HTTP 请求发送到代理上特殊格式的 URL,以从底层管理 Bean 获取结果。这正是您的代码位似乎正在做的事情。它似乎正在向Jolokia端点发送HTTP请求(即 api/jolokia(,以确定经纪人是否还活着。

根据提供的信息,无法确定testConnection()未成功返回的原因,因为您没有包含有关代理配置或状态的信息。

我建议您添加其他日志记录以查看可能发生的事情并捕获Exception而不仅仅是IOException

相关内容

  • 没有找到相关文章

最新更新