Я использую playFramework 2.3.5 с Java, хочу установить sth. в кеше и хотите отобразить его на следующем шаге. Так что мой код в Application.java выглядит следующим образом:Настройка кэша с помощью PlayFramework
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;
}
}
Когда я хочу, чтобы проверить это, локальный: 9000/выход бросает NullPointerException. Может кто-то сказать, почему объект не находится в кеше?
В какой строке исключено исключение? Btw, является 'Input' сериализуемым? –
Ошибка NullPointerException: String out = output.getText(); Я добавил класс ввода в свой вопрос. – alexfi
Вы действительно вызываете действие POST на '/' url? Если вы используете браузер и переходите к '/' url, игра вызывается 'controllers.Application.index()' action. –