在混合的Scala / Java Play中访问Http.context!应用

时间:2017-08-15 19:22:07

标签: java scala playframework

我有一个混合的Scala / Java Play!应用程序(版本2.5.11)。我刚刚将WebSocket处理从Java移动到Scala,但接收请求并返回响应的控制器仍然是Java。现在我不能再访问cookie了(也没有任何Http.context)

更详细:

  • Java控制器接收WebSocket请求并调用Scala服务。
  • Scala服务生成play.api.mvc.WebSocket,然后将其提供给Java控制器,该控制器或多或少地将其提供给客户端。
  • 通常,Java中的WebSockets属于play.mvc.WebSocket
  • 不知怎的,如果我使用Scala WebSocket Play!并没有给我Http.context:如果我打电话给Http.Context.current().request().cookies()我就得到了 java.lang.RuntimeException: There is no HTTP Context available from here.

有人知道如何在Java中返回Http.Context的控制器操作中访问play.api.mvc.WebSocket吗?

1 个答案:

答案 0 :(得分:0)

您是否只考虑使用可以传递给控制器​​方法的请求对象,而不是依赖于Java Http.Context类?

控制器方法如下所示:

  def socket = WebSocket.acceptOrResult[String, String] { request =>
    // headers
    val headers = request.headers
    // cookies
    val cookies = request.cookies
    // your websocket process
    //  ...
  }