URL-адрес портала из портлета

Можно ли получить базовый URL-адрес портала (например, http://www.thisismyportal.com) из портлета, используя Портлет 2.0 API?

Прямо сейчас я планирую вручную построить его, объединив PorletRequest.getServerName(), PortletRequest.getServerPort() и PortletRequest.getContextPath(); но выглядит как-то коряво (и нет PortletRequest.getProtocol())


person Carlos Gavidia-Calderon    schedule 28.09.2012    source источник


Ответы (2)


У нас были эти свойства конфигурации в Resource Environment Provider для создания внешних URL-адресов для отправки их по электронной почте. Это было конкретное решение, и для нас это не было проблемой, так как у нас там хранились и другие свойства, поэтому мы знали, что они будут доступны во время выполнения. Я не знаю, соответствует ли это вашим потребностям. Это зависит от вашего сценария. Кроме того, мы использовали https только при входе в систему, поэтому мы всегда генерировали URL-адреса http.

Надеюсь это поможет.

person pzecevic    schedule 01.10.2012

Хотя это неуклюже, это самый безопасный способ создания URL; и пока нет PortletRequest.getProtocol() метода, можно заключить протокол методом PortletRequest.isSecure().

Я бы посоветовал против использовать внешнюю конфигурацию для базового URL по нескольким причинам.

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

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

person Isaac    schedule 30.10.2012