ActiveMQ тестовое соединение - PullRequest
0 голосов
/ 28 мая 2019

Я пытаюсь проверить соединение 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;
  }

1 Ответ

0 голосов
/ 30 мая 2019

При запуске ActiveMQ обычно запускается встроенный веб-сервер. Этот веб-сервер используется для размещения консоли веб-администратора, а также конечной точки Jolokia, которая выступает в качестве фасада HTTP перед MBeans брокера. Другими словами, любой клиент может отправлять HTTP-запросы на специально сформированные URL-адреса посредника для получения результатов от базовых компонентов управления. Это именно то, что делает ваш бит кода. Похоже, что он отправляет HTTP-запрос к конечной точке Jolokia (т.е. api/jolokia), чтобы определить, жив ли брокер или нет.

На основании предоставленной информации невозможно определить, почему testConnection() не возвращается успешно, поскольку вы не указали информацию о конфигурации или состоянии брокера.

Я рекомендую вам добавить дополнительное ведение журнала, чтобы увидеть, что может происходить, а также поймать Exception, а не просто IOException.

...