为什么我打电话使用Play!的WSRequestHolder会使我的代码部分无法运行?

时间:2015-03-30 19:17:43

标签: java logging playframework playframework-2.2

    WS.WSRequestHolder request = WS.url(url);
    logger.info("1")     

    final Promise<Result> resultPromise = request.get().map(
        new Function<WS.Response, Result>() {
            public Result apply(WS.Response response) {
                logger.info("2");
                try {
                    logger.info("3");
                    return ok(response.asJson());
                } catch(Exception e) {
                    logger.info("4");
                    logger.error(e.getMessage());
                    return status(response.getStatus());
                }
            }
        }
    );
    logger.info("5");
    return resultPromise;

对于一个特定的URL,我的代码永远不会进入try / catch语句 - 它会在第1点和第5点记录 - 这是什么意思?该网址还没有返回任何内容?它适用于其他网址,即使它们返回400或由于格式导致异常。

我也尝试使用以下方法简化它:

    WS.WSRequestHolder request = WS.url(url);

    final WS.Response resultPromise = request.get().get();
    logger.info("Before result");
    logger.info("Res = " + resultPromise.getBody());
    logger.info("Before result");
    return null;

我没有看到使用该特定网址记录的任何行。它使用了一个URL,其中resultPromise.getBody()为空

0 个答案:

没有答案