在我们的(Java)Play应用程序中,我们有一个异步作业,可以在传递各种截止日期时向用户发送电子邮件。电子邮件应包含指向我们网站相关页面的链接。但是,在这样的异步作业中,无法使用routes.MyPage.myTemplate().absoluteURL()
创建绝对URL,因为没有可用的HTTP上下文。
在HTTP上下文之外获取绝对URL的推荐模式是什么?对于测试,人们会create a "fake" HTTP context,但我觉得这不是正确的生产方式吗?
答案 0 :(得分:1)
play.mvc.Call
有absoluteUrl
的多个版本。有一个类似于以下的版本:
/**
* 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)
您可以使用它在没有请求的情况下生成绝对网址。