2017-02-09 16 views
0

Я хочу получить IP-адрес и порт веб-приложения при запуске сервера? Например, в моем классе ServletContextListener. Но я не мог заставить их использовать ни FaceContext, ни ServletContextEvent.Получите веб-приложение ip и порт на ServletContextListener

FacesContext.getCurrentInstance().getExternalContext().getRequestServerName() 

Использование такого кода, как указано выше, приведет к неподдерживаемому методу.

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

Нашего приложение, использующее jsf2, primeface и работать на WebLogic 10.3.6

ответ

2

Вы должны получить доступ к HTTPServletRequest, как это:

HttpServletRequest request = ((HttpServletRequest)FacesContext.getCurrentInstance().getExternalContext().getRequest()); 
request.getLocalAddr(); 
request.getLocalPort(); 
+0

эр я упоминаю технику его подводит перед тем, что мы не могли ждать, пока кто-нибудь отправить запрос на наш сервер? так как нам нужно в начале нашего сервера, getRequest вернется в null, так что этот ответ не работает – mameo

+0

О, я вижу. Я пропустил эту часть ... Нет стандартного способа доступа к тому, какой IP-адрес, какой порт открыт веб-сервером из приложения. Фактически, веб-сервер может быть настроен на то, чтобы открыть одно веб-приложение в нескольких портах. Возможно, у WebLogic есть проприетарный API, но я ничего не знаю. Возможно, если вы уточните _why_, вам нужно найти IP и порт, мы можем придумать умное решение ... –

+0

У нас есть несколько серверов, каждый из которых имеет поток для создания файла. Эти потоки начинаются в начале нашего сервера, который обычно начинается в середине ночи, когда в это время не было входа пользователя. Что ж, из-за какой-то глупой причины у нас не было такого ресурса, как FTP или хранилище san, поэтому каждый сервер создает свой файл на своем собственном сервере. поэтому, когда наш пользователь заходит на сервер A, но файл находится на сервере B, нам нужна ссылка сервера B, чтобы пользователь мог получить файл. Что-то вроде того. – mameo

 Смежные вопросы

  • Нет связанных вопросов^_^