如何在没有JSF的情况下使用java cdi获取服务器的url

时间:2014-04-10 13:04:58

标签: java rest java-ee cdi

我的应用是一个Java REST应用,我需要发送电子邮件。

电子邮件的相关操作有网址 ...

我如何获得真实的服务器地址????

我可以获取Session实例,但它只有contextPath ...

http://xxxxxx/<contextPath>

我需要完整的背景......像这样

<protocol>://<domain>/<contextPath>

1 个答案:

答案 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;