Получить порт сервера в веб-приложении при запуске сервера - PullRequest
1 голос
/ 10 мая 2011

Мне нужно получить информацию о сервере, такую ​​как IP-адрес сервера и порт при запуске сервера.Я использую Spring и hibernet в своем проекте, а Glassfish (и tomcat) - сервер приложений.

Я знаю, что могу получить информацию об IP-адресе и порте из запроса, но при запуске сервера нет запроса.

Я обнаружил в сети после некоторого поиска, что IP-адрес может быть получен следующим образом:

InetAddress.getLocalHost().getHostName();

, но я не нашел способа извлечь текущий порт сервера.Я надеюсь найти API с сервера приложений, который предоставит эту информацию.Я использую Spring в своем приложении, и поэтому любые указания из Spring API также будут полезны.

Ответы [ 2 ]

2 голосов
/ 10 мая 2011

Ну, вы должны настроить порт в вашем web.xml как параметр и прочитать его в своем коде, используя ServletContext, или вы можете использовать этот плохой хак

0 голосов
/ 10 мая 2011

Сервер может прослушивать несколько портов под несколькими именами, поэтому вы не можете быть уверены, что выбранный автоматически - именно тот, который вам действительно нужен.

Вопрос в том, для чего он вам нужен.

  • Если это для передачи URL-адресов в запросах, используйте информацию в запросах.
  • Если это для регистрации или объявления с ZeroConf, подумайте о написании специального кода сервера приложений, запрашивающего его.о его конфигурации.
  • Если ничего не помогает, явно передайте информацию через, например, системные свойства или JNDI.
...