Spring Boot: как запустить запущенный порт приложения на JBoss (или на любом сервере приложений)? - PullRequest
0 голосов
/ 07 ноября 2019

Должен быть простой способ сделать это, но большинство ответов в сети предоставляют порт встроенного сервера Tomcat, используя что-то вроде ${server.port} (или его эквивалент). Другие решения упоминают прослушивание EmbeddedServletContainerInitializedEvent, но это также применимо только к встроенным веб-серверам.

Как я могу получить порт приложения, которое развернуто на (скажем) JBoss, где порт определяется черезсобственный файл конфигурации сервера (а не через application.properties)?

(PS: в Spring Boot 2 есть событие под названием WebServerInitializedEvent, с помощью которого мы, вероятно, можем получить истинный порт, но я 'ищу решения до Spring Boot 1.5.8)

1 Ответ

0 голосов
/ 07 ноября 2019

Я полагаю, что порт, на котором сервер приложений (JBoss и другие) готов принять http-соединение, является чем-то внутренним для самого сервера приложений и своего рода «вне области» для приложения весенней загрузки, когда это не так. запустите встроенный сервер.

Также возможно, что сервер приложений определит несколько соединителей, привязанных к разным портам (скажем, один для http и один для https), внутренние и общие соединения (фильтрация по сегментам ip) и что нет.

Обычно разработчики не заботятся о такой информации, если вам нужно сгенерировать какую-либо ссылку, сделайте это "относительно". Обычно вам даже не нужно знать контекстный путь, в котором развернута WAR.

Теперь, если вам абсолютно необходимо что-то подобное, нет единого руководства для этого, каждый сервер приложений может предоставить свои собственные способы. .

Вы можете попытаться получить доступ к JMX (например, Tomcat, который раньше работал в JBoss, возможно, я не был в курсе этого, долгое время не имел дела с JBoss) предоставляет MBean для Connector, из которого выможет читать информацию о порте (из многих портов, если развернуто много соединителей).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...