Play Framework(Java)中的绝对URL,没有HTTP上下文

时间:2016-02-23 13:42:12

标签: java playframework playframework-2.0 playframework-2.3

在我们的(Java)Play应用程序中,我们有一个异步作业,可以在传递各种截止日期时向用户发送电子邮件。电子邮件应包含指向我们网站相关页面的链接。但是,在这样的异步作业中,无法使用routes.MyPage.myTemplate().absoluteURL()创建绝对URL,因为没有可用的HTTP上下文。

在HTTP上下文之外获取绝对URL的推荐模式是什么?对于测试,人们会create a "fake" HTTP context,但我觉得这不是正确的生产方式吗?

1 个答案:

答案 0 :(得分:1)

play.mvc.CallabsoluteUrl的多个版本。有一个类似于以下的版本:

/**
 * Transform this call to an absolute URL.
 *
 * @param secure true if the absolute URL should use HTTPS protocol instead of HTTP
 * @param host the absolute URL's domain
 * @return the absolute URL string
 */
public String absoluteURL(boolean secure, String host)

您可以使用它在没有请求的情况下生成绝对网址。