Я пишу веб-приложение на Java, используя Spring MVC. У меня есть фоновый процесс, который проходит через базу данных и находит уведомления, которые должны быть отправлены моим пользователям по электронной почте. Эти сообщения электронной почты должны содержать гиперссылки на приложение. Это похоже на довольно распространенный шаблон для веб-приложения, но у меня возникли проблемы.
Как получить полный URL-адрес моего приложения с именем сервера и контекстным путем? У меня нет доступа к любому из методов в HttpServletRequest, потому что я запускаю это как фоновый процесс, а не в ответ на веб-запрос. Лучшее, что я могу сделать, - это получить доступ к ServletContext.
В настоящее время я помещаю базовый URL-адрес в файл конфигурации и читаю его при запуске, но это приложение будет лицензировано и развернуто на серверах приложений клиентов, и, если возможно, я бы хотел, чтобы их не приходилось настраивать. это вручную.