我在Java中使用playFramework 2.3.5,想要设置......在缓存中,并希望在下一步中显示它。所以Application.java中的代码如下所示:
public static Result addText() {
Input input = new Input("Test");
Cache.set("1", input);
return ok(index.render("Your new application is ready."));
}
public static Result getText(){
Input output = (Input) Cache.get("1");
try{
String out = output.getText();
return ok(Html.apply(out));
}catch(NullPointerException e){
return ok(index.render("Fail"));
}
}
我在路线中的代码如下:
GET / controllers.Application.index()
POST / controllers.Application.addText()
GET /output controllers.Application.getText()
Input类看起来很......像这样:
public class Input {
public String text;
public Input(String text){
this.text = text;
}
public String getText(){
return text;
}
}
当我想测试它时,localhost:9000 / output会抛出NullPointerException。有人可以说,为什么对象不在缓存中?
答案 0 :(得分:0)
在开发模式(播放运行)中,播放缓存不能完全正常工作。但更大的问题是,根据定义,缓存可以随时刷新。您的应用程序需要能够处理Cache.get,以便为最近放入缓存的内容返回null。