Как получить доступ к случайному значению порта vert.x в Quarkus?JAVA

Программисты JAVA общаются здесь
Anonymous
Как получить доступ к случайному значению порта vert.x в Quarkus?

Сообщение Anonymous »

Я пытаюсь зарегистрировать микросервис в службе обнаружения Consul. Мне не удалось сделать это автоматически, поэтому я делаю это явно, используя метод init с аннотацией @Observes. Проблема возникает, когда я устанавливаю номер порта равным 0 (то есть случайным образом), потому что я не могу получить порт, поскольку все, что я пытался сделать, просто возвращает 0 вместо фактического номера порта.
Пример:

Код: Выделить всё

@ConfigProperty(name = "consul.host")
String consulAddress;
@ConfigProperty(name = "consul.port")
int consulPort;
Integer applicationPort;
@ConfigProperty(name = "quarkus.application.name")
String applicationName;
ConsulClient consulClient;

public void init(@Observes HttpServer server, Vertx vertx) {
applicationPort = vertx.createHttpServer().actualPort();
System.out.println("SERVER PORT IS : " + applicationPort);

consulClient = ConsulClient.create(vertx, new ConsulClientOptions().setHost(consulAddress).setPort(consulPort));
consulClient.registerService(
new ServiceOptions().setPort(applicationPort).setAddress("localhost").setName(applicationName).setId(applicationPort + ""));
}
Я также попробовал HttpConfiguration.port, но результат тот же. Любой другой подход? Что-нибудь неявное?
!!! Похоже, что когда триггеры оперативной перезагрузки замедляют работу, порт отображается правильно. Есть ли какое-либо другое событие, которое я могу наблюдать и которое гарантированно произойдет после установки порта?
Я ожидал фактического номера порта, я всегда получаю 0.

Подробнее здесь: https://stackoverflow.com/questions/788 ... in-quarkus

Вернуться в «JAVA»