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 を実行してもエラーは表示されません。
では、何が問題になるのでしょうか?