2009-11-02 2 views
21

현재 복잡한 객체가있는 tomcat에서 HTTP 세션 복제로 어려움을 겪고 있습니다.확장 직렬화 디버깅 정보를 사용하기위한 Java 플래그

일부 개체는 Serializable을 구현하지만 직렬화 할 수없는 멤버는 보유하지 않습니다.

불행히도 스택 트레이스는 기본적으로 유용한 정보를 제공하지 않습니다.

플래그 -XX : ???? NotSerializableException이 발생할 때 stacktrace에 상세한 클래스 이름을 활성화합니다. 이 플래그는 오류의 원인을 찾는 데 많은 도움이됩니다. 하지만 그 이름을 잊었습니다.

국기의 이름은 무엇입니까?

+1

사실, 당신은 서블릿'HttpSession'을 의미합니까? – McDowell

+0

예. HttpSession은 직렬화 가능한 객체 만 포함해야합니다. 그렇지 않으면 다시 시작하지 않고 다른 Tomcat 노드로 복제 할 수 없습니다. –

답변

49

-Dsun.io.serialization.extendedDebugInfo = 세션으로

+0

SO 규칙으로 인해 이것을 표시 할 수 있으려면 2 일 정도 기다려야합니다. http://mfondo.blogspot.com/2007/10/java-serialization-debugging.html에서 답변을 찾았습니다. –

+1

이 플래그는 직렬화 문제가있을 때만 실행될 수 있습니다. 결과적으로 로그가 생성됩니다. 이벤트가 발생하기 전에 미쳐 버려. – mrswadge

+0

@AndreasPetersson 어디에서 설정합니까? 내가 바람둥이 서버를 사용하고있는 것처럼 – eatSleepCode