【问题标题】:How to get the url of the server with java cdi without JSF如何在没有 JSF 的情况下使用 java cdi 获取服务器的 url
【发布时间】:2014-04-10 13:04:58
【问题描述】:
我的应用程序是 Java REST 应用程序,我需要发送电子邮件。
电子邮件有相关操作的URL...
我怎样才能得到真实的服务器地址????
我可以得到 Session 实例,但它只有 contextPath...
http://xxxxxx/<contextPath>
我需要完整的上下文...像这样
<protocol>://<domain>/<contextPath>
【问题讨论】:
标签:
java
rest
jakarta-ee
cdi
【解决方案1】:
如果您使用 Java EE 7 / CDI 1.1+,您可以为应用程序注入 ServletContext,为当前请求注入 HttpServletRequest:
@Inject
ServletContext context;
@Inject
HttpServletRequest request;
您将拥有构建 URL 所需的内容。
如果您使用的是 Java EE 6 / CDI 1.0,最简单的解决方案是将 Apache Deltaspike servlet module 添加到您的项目中,那么您将拥有与以下相同的功能:
@Inject
@Deltaspike
ServletContext context;
@Inject
@Deltaspike
HttpServletRequest request;