首页 文章

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

提问于
浏览
0

我有一个混合的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中返回 play.api.mvc.WebSocket 的控制器动作中访问 Http.Context

1 回答

  • 0

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

    控制器方法如下所示:

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

相关问题