0

我有一个在 linux 服务器上运行的播放应用程序。播放应用程序处理 ajax 请求,控制器代码处理请求:

public static Result getStorageId() {

    final String host = request().username();
    logger.debug("get storage id from origin:" + host);
    Promise<Product> promiseProduct = Akka.future(new Callable<Product>() {

                @Override
                public Product call() throws Exception {
                    Partner partner = PartnerModel.getPartner(host);
                    logger.debug("Partner origin:" + partner.getHost());

                    ** Product productCase = ProductsModel.createProduct(); 

                    logger.debug("product created. id:" + productCase.getId());
                    return productCase;
                }
            });

    return async(promiseProduct
            .map(new Function<Product, Result>() {

                @Override
                public Result apply(Product product) {

                    return ok();

                }
            }));

}

ProductsModel.createProduct() 代码是

public static Product createProduct(){
    logger.debug("creating new product");
    Product product = new ProductImpl();

    saveProduct(product);
    return product;
}

问题是当 ajax 请求使应用程序到达 ** 行并停止但 application.log 文件和播放控制台中没有指示错误时。不执行 createProduct() 方法第一行的调试语句。该应用程序仍在运行,因为我可以发出另一个 ajax 请求并在 ** 行之前查看日志语句。

我确实尝试过“播放运行”,希望它可以提供更多信息,因为它在调试模式下运行但没有运气。

我的本地开发副本工作正常。另一件事,我之前遇到过这个问题,作为一次绝望的尝试,我只是创建了一个与 ProductsModel 具有相同功能的新类“ProductTestModel”并使用它而不是 ProductsModel(即在线**它是 Product productCase = ProductTestModel.createProduct() ) 部署它并且一切正常。现在经过几次发布后,我又遇到了这个问题。

我正在使用 GIT 将代码分发到服务器并在那里编译应用程序。运行 play clean compile 没有显示错误。

那么可能是什么问题呢?

4

1 回答 1

0

我找到了问题的根本原因。这实际上是一件愚蠢的事情,我忘记包含一个conf文件。代码失败的地方是该对象正在使用该 conf 文件。

谈论浪费时间!

于 2013-07-05T22:02:27.297 回答