У меня есть проблема в моем SpringMVC RestController
, которая записывает результаты JSON:
1) Когда я возвращаю объект домена, как показано ниже, ActivityT, я получаю внутреннюю ошибку сервера AJAX 500 на стороне клиента.
@RequestMapping("/participant/activityForEvent")
public ActivitiesT getActivityForGuiEventId() throws Exception {
ActivitiesT activitiesT = participantService.getActivity();
return activitiesT;
}
Объект домена ActivityT, сгенерированный Hiberate:
@Entity
@Table(name = "activities_t", schema = "public")
public class ActivitiesT implements java.io.Serializable {
/**
*
*/
private static final long serialVersionUID = 1L;
private int id;
//... etc...
}
2) Но когда я возвращаю пользовательский POJO, метод AJAX работает. Это почти то же самое.
@RequestMapping("/participant/activityForEvent")
public ActivitiesT getActivityForGuiEventId() throws Exception {
ActivitiesT activitiesT = participantService.getActivity();
// Create a custom Activity POJO and return it
return new Activity(activitiesT.id, activitiesT.title);
}
Пользовательский POJO активности:
public class Activity implements Serializable {
/**
*
*/
private static final long serialVersionUID = 1L;
public int id;
public String title;
//etc.
СООБЩЕНИЕ ОБ ОШИБКЕ
HTTP Status 500 - Could not write JSON: could not initialize proxy - no Session; nested exception is com.fasterxml.jackson.databind.JsonMappingException: could not initialize proxy -
нет сеанса (через цепочку ссылок: com.myapp")
Некоторые вещи, которые следует отметить:
- Оба объекта реализуют
Serializable
, это нормально - Проблема не в DAO, я вижу, что DAO всегда возвращает правильные данные для обоих, мы можем игнорировать часть DAO.
- Контроллер имеет аннотацию
@RestController
, поэтому он всегда выводит JSON; Мне не нужен ResponseBody или старые теги
Любые мысли о том, где проблема может лежать? Проблема сводится к следующему:
- Я не могу вернуть JSON из методов RestController для сгенерированных Hibernate @Entity POJO,
- Но я могу вернуть JSON из методов RestController в свои собственные POJO.
500 Internal Server Error
)? - person lzagkaretos   schedule 18.12.2017ActivitiesT
- это простой или сложный объект (просто угадывая), где какое-то исключение было вызвано после того, как контроллер вернул значение. - person lzagkaretos   schedule 18.12.2017HTTP Status 500 - Could not write JSON: could not initialize proxy - no Session; nested exception is com.fasterxml.jackson.databind.JsonMappingException: could not initialize proxy - no Session (through reference chain: com.myapp")
- person gene b.   schedule 18.12.2017