我的应用是一个Java REST应用,我需要发送电子邮件。
电子邮件的相关操作有网址 ...
我如何获得真实的服务器地址????
我可以获取Session实例,但它只有contextPath ...
http://xxxxxx/<contextPath>
我需要完整的背景......像这样
<protocol>://<domain>/<contextPath>
答案 0 :(得分:1)
如果您使用Java EE 7 / CDI 1.1+,则可以为应用程序注入ServletContext
,为当前请求注入HttpServletRequest
:
@Inject
ServletContext context;
@Inject
HttpServletRequest request;
您将拥有构建网址所需的内容。
如果您使用的是Java EE 6 / CDI 1.0,最简单的解决方案是将Apache Deltaspike servlet module添加到您的项目中,然后您将拥有相同的功能:
@Inject
@Deltaspike
ServletContext context;
@Inject
@Deltaspike
HttpServletRequest request;