我有一个在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()方法第一行中的debug语句。该应用程序仍在运行,因为我可以创建另一个ajax请求并在行**之前查看日志语句。
我确实尝试过“play run”,希望它可以提供更多信息,因为它在调试模式下运行但没有运气。
我的本地开发副本工作正常。另一件事,我之前遇到过这个问题,并且作为一个绝望的尝试,我只是创建一个新的类“ProductTestModel”,它具有与ProductsModel相同的功能,并使用它而不是ProductsModel(即在线**它是产品productCase = ProductTestModel.createProduct()部署它,一切正常。现在经过多次发布后,我又遇到了这个问题。
我正在使用GIT将代码分发到服务器并在那里编译应用程序。运行play clean编译显示没有错误。
那可能是什么问题?
答案 0 :(得分:0)
我找到了问题的根本原因。这实际上是一个愚蠢的事情,我忘了包含一个conf文件。代码失败时该对象使用该conf文件。
谈论浪费时间!!