0

Linux サーバー上でプレイ アプリケーションを実行しています。play アプリケーションは、リクエストを処理するコントローラ コードである 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() メソッドの 1 行目の debug ステートメントは実行されません。別の ajax リクエストを作成し、行 ** の前にログ ステートメントを表示できるため、アプリはまだ実行されています。

デバッグモードで実行されるため、より多くの情報が得られることを期待して「play run」を試しましたが、うまくいきませんでした。

私のローカル開発コピーは正常に動作します。もう1つ、私は以前にこの問題を抱えていましたが、絶望的な試みとして、ProductsModelと同じ機能を持つ新しいクラス「ProductTestModel」を作成し、ProductsModelの代わりに使用しました(つまり、オンラインでは** Product productCase = ProductTestModel.createProduct() になります) )それを展開し、すべてが機能しました。いくつかのリリースの後、この問題が再び発生します。

私は GIT を使用してコードをサーバーに配布し、そこでアプリをコンパイルしてプレイしています。play clean compile を実行してもエラーは表示されません。

では、何が問題になるのでしょうか?

4

1 に答える 1