Playframework 获得;无法从play.api.mvc.AsyncResult类型的结果中提取状态代码;即使结果类型已转换为结果

Playframework 获得;无法从play.api.mvc.AsyncResult类型的结果中提取状态代码;即使结果类型已转换为结果,playframework,playframework-2.0,Playframework,Playframework 2.0,我正在使用Play2.0.3(Java)并编写了以下代码。由于我的参与者是异步的,所以在测试时,我尝试通过以下操作将AsyncResult转换为结果类型: Result result = new Result() { @Override public play.api.mvc.Result getWrappedResult() { return ((play.api.mvc.AsyncResult) callAction(con

我正在使用Play2.0.3(Java)并编写了以下代码。由于我的参与者是异步的,所以在测试时,我尝试通过以下操作将AsyncResult转换为结果类型:

    Result result = new Result() { 
        @Override 
        public play.api.mvc.Result getWrappedResult() {
            return ((play.api.mvc.AsyncResult) callAction(controllers.routes.ref.Dashboard.index(),
                    authenticatedFakeRequest(lenderUser.getId())).getWrappedResult()).result().await().get();
        }
    };

    assertThat(Integer.valueOf(status(result)), is(Integer.valueOf(OK)));
这段代码在我编写的另一组测试中确实有效,但当我在这个特定情况下使用它时,它会引发以下运行时异常。我完全不明白为什么它在其他测试中有效,而不是在这里。在转到上面的语句之前,我已经检查了result的实例类型是result而不是AsyncResult。我非常感谢大家的帮助,因为我是新手,在谷歌集团找不到答案

java.lang.RuntimeException: Cannot extract the Status code from a result of type play.api.mvc.AsyncResult
at scala.sys.package$.error(package.scala:27)
at play.core.j.JavaResultExtractor$.getStatus(JavaResults.scala:38)
at play.core.j.JavaResultExtractor.getStatus(JavaResults.scala)
at play.test.Helpers.status(Helpers.java:122)
at functional.controllers.LenderDashboardTest.dashboardPageHasNoControlsToAccessOtherTeamMembersInboxes(LenderDashboardTest.java:97)

我刚刚遇到了与您相同的问题,似乎将Play更新为2.1为我解决了这个问题。希望这会有所帮助

谢谢,但升级对我来说不是一个选项,因为这需要一个漫长的过程才能得到批准。