java - 在 Play 框架和安全社交中获取绝对 URL

标签 java http playframework-2.0 absolute-path securesocial

我在 Play 项目中使用安全社交。我正在尝试使用我自己的电子邮件进行注册过程。

此处描述了操作方法:

http://securesocial.ws/guide/views-customization.html

我的问题是,当我尝试在模板中生成绝对 URL 时出现错误:

@securesocial.controllers.routes.Registration.signUp(mailToken).absoluteURL(IdentityProvider.sslEnabled)

这是错误日志:

[error] play - Cannot invoke the action, eventually got an error: java.lang.Runt imeException: There is no HTTP Context available from here. [error] application -

! @6j0al12dk - Internal server error, for (POST) [/signup] ->

play.api.Application$$anon$1: Execution exception[[RuntimeException: There is no HTTP Context available from here.]] at play.api.Application$class.handleError(Application.scala:293) ~[play_ 2.10.jar:2.2.3] at play.api.DefaultApplication.handleError(Application.scala:399) [play_ 2.10.jar:2.2.3] at play.core.server.netty.PlayDefaultUpstreamHandler$$anonfun$3$$anonfun $applyOrElse$3.apply(PlayDefaultUpstreamHandler.scala:264) [play_2.10.jar:2.2.3]

    at play.core.server.netty.PlayDefaultUpstreamHandler$$anonfun$3$$anonfun

$applyOrElse$3.apply(PlayDefaultUpstreamHandler.scala:264) [play_2.10.jar:2.2.3]

    at scala.Option.map(Option.scala:145) [scala-library.jar:na]
    at play.core.server.netty.PlayDefaultUpstreamHandler$$anonfun$3.applyOrE

lse(PlayDefaultUpstreamHandler.scala:264) [play_2.10.jar:2.2.3] Caused by: java.lang.RuntimeException: There is no HTTP Context available from h ere. at play.mvc.Http$Context.current(Http.java:30) ~[play_2.10.jar:2.2.3] at play.mvc.Http$Context$Implicit.ctx(Http.java:196) ~[play_2.10.jar:2.2 .3] at play.core.j.PlayMagicForJava$.requestHeader(TemplateMagicForJava.scal a:56) ~[play-java_2.10.jar:2.2.3] at views.html.custom.mails.signUpEmail$.apply(signUpEmail.template.scala :42) ~[classes/:na] at plugins.NekViews.getSignUpEmail(NekViews.scala:100) ~[classes/:na] at securesocial.core.providers.utils.Mailer$.sendSignUpEmail(Mailer.scal a:49) ~[securesocial_2.10-2.1.3.jar:2.1.3] [info] application - [securesocial] unloaded identity provider: userpass [info] application - [securesocial] unloaded password hasher bcrypt [info] play - Shutdown application default Akka system.

有人知道错误是什么吗?

最佳答案

您的模板需要隐式请求,这是获取绝对 URL 所必需的。

@(/*template's parameters*/)(implicit request: RequestHeader)

此请求必须在呈现模板的方法中可用。

关于java - 在 Play 框架和安全社交中获取绝对 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24828042/

相关文章:

C# HttpClient.SendAsync 在测试某些 URL 时抛出 "An error occurred while sending the request"异常

playframework-2.0 - Play 2.0 小部件

scala - Play 2.0 Scala 框架中的计时页面渲染

java - 我可以使用 Java 的 Firefox 扩展吗?

java - Java strictfp 修饰符对现代 CPU 有什么影响吗?

java - Android:从网页获取 HTML 作为字符串,HttpClient 不工作

scala - 带有隐式参数的泛型函数

java - AS400 jt400 获取内存使用情况

python - 带有 python 套接字的 HTTP 服务器

python - 获取网页字符集的好用、可靠的快捷方式是什么?