내가 JSON 결과를 기록 내 SpringMVC RestController
에 문제가있는 작동 : 나는 아래와 같이 도메인 개체를 반환하는 경우RestController에서 반환 된 도메인 객체로 인해 AJAX 오류가 발생합니다. 사용자 정의 모델 개체
1), ActivitiesT, 나는 클라이언트 -에 AJAX를 500 내부 서버 오류 측면.
@RequestMapping("/participant/activityForEvent")
public ActivitiesT getActivityForGuiEventId() throws Exception {
ActivitiesT activitiesT = participantService.getActivity();
return activitiesT;
}
ActivitiesT 도메인 오브젝트는, Hiberate는 생성 : 나는 POJO정의를 반환 할 때
@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) 그러나이 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, 나는 우리가 컨트롤러가@RestController
로 주석하는 DAO 조각 - 을 무시할 수는 DAO는 항상 모두에 대한 정확한 데이터를 반환 참조 할 수 있으므로되지
- 괜찮아요 그 항상 JSON을 출력합니다. ResponseBody 나 이전 태그가 필요하지 않습니다.
문제가있는 위치에 대한 의견이 있으십니까? 문제는이 아래로 비등 :
- 내가 @Entity 최대 절전 모드에서 생성 된 POJO를에 RestController 방법에서 JSON을 반환 할 수 없습니다하지만 난 내 자신의 사용자 정의 POJO를에 RestController 방법에서 JSON을 반환 할 수 있습니다
던져진 예외를 제공 할 수 있습니까 ('500 내부 서버 오류')? – lzagkaretos
서버 쪽에서 예외가 발생하지 않으면 컨트롤러가 확인을 완료합니다. 클라이언트 측에서 AJAX JS를 얻을 때 Firebug에서 500 내부 서버 오류 만 표시됩니다. –
500 내부 서버 오류는 서버 측에서 문제가 있음을 나타냅니다. 이런 종류의 문제를 대형 객체의 직렬화에서 보았습니다. 'ActivitiesT'는 컨트롤러가 값을 반환 한 후 어떤 종류의 Exception이 발생하는 단순하거나 복잡한 객체 (그냥 추측)입니다. – lzagkaretos