Получить порт приложения без доступа к объекту запроса - PullRequest
0 голосов
/ 21 июня 2011

У меня есть внутренний процесс, который запускается при запуске сервера.После завершения этого процесса я отправляю электронное письмо пользователям.Мне нужен доступ к порту приложения, чтобы создать полный URL-адрес веб-отчета, работающего на том же экземпляре.Есть ли способ получить порт без доступа к объекту запроса?

Ответы [ 2 ]

1 голос
/ 21 июня 2011

Мне нужен доступ к порту приложения, чтобы создать полный URL-адрес веб-отчета, запущенного на том же экземпляре.Есть ли способ получить порт без доступа к объекту запроса?

Почему бы вам не сохранить это как свойство в файле конфигурации для вашего внутреннего процесса?Код окажется намного проще, если просто нужен только порт (или даже фрагмент URL-адреса веб-сайта, который не изменяется), который должен быть встроен в электронное письмо.

Кроме того, рассматриваемые администраторылучше, чем периодически менять номера портов.

Смежные вопросы (но не совсем то же самое)

  1. Корневой URl изservlet
  2. Поиск URL-адреса вашего приложения только с помощью ServletContext

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

  • чтения файлов конфигурации сервера.В этом случае это будет $JETTY_HOME/etc/jetty.xml, который содержит необходимую информацию в элементах Connectors.
  • , получая ссылку на объект ServletRequest, который может не бытьправильный ответ на этот вопрос.
0 голосов
/ 21 июня 2011

Если в вашем приложении есть хотя бы один http-запрос, вы можете получить от него порт:

int portNumber = request.getServerPort();

Может быть, ваш стартовый скрипт может сделать такой вызов.

Подробнее: http://www.kodejava.org/examples/211.html

...