2017-03-14 5 views
0

직렬화해야하는 객체가 있습니다. 기압 내가 직렬화 구현 할 수 있지만 런타임에 내가직렬화 : 원하는 직렬화 된 객체의 직렬화 불가능한 컴포넌트를 찾을 수 없습니다.

Failed to marshal object with optimized marhshaller:{ $heresAhugeString$ } 
Failed to serialize object: { $alsoHugeString$ } 
java.io.IOException: Externalizable class doesn't have default constructor: interface java.io.Externalizable 
Externalizable class doesn't have default constructor: interface java.io.Externalizable 
java.io.Externalizable.<init>() 

마지막 예외가 나는 비 직렬화 가능 필드를 찾으려고하지만 만 볼 수 (java.io.Externalizable의가.() 무한 회 제공) ConcurrentHashMap을 직렬화 할 때 예외가 발생합니다. 나는 이것이 많은 정보는 아니지만 완전한 stacktrace가 아주 크다는 것을 알고있다. 지도에서 비 직렬화를 담당하는 필드를 찾는 방법에 대한 팁은 무엇입니까? 또는 어떤 정보를 추가해야합니까? 감사합니다

+0

해서는 안이 당신을 도울 -'외부화 클래스 아무튼 ' 기본 생성자가 없습니다 ' – Abubakkar

+0

하지만 클래스가 어떤 클래스인지 의미하지 않습니다 ... –

+0

@Abubakkar이 정확합니다. 직렬화 할 때 직렬화 된 클래스를 인스턴스화하려면 기본 생성자가 필요합니다. 당신은 하나도 가지고 있지 않습니다. – Dakoda

답변

-1

당신이하고있는 직렬화의 유형을 모르지만, 비 정렬 화 후이 필드를 사용할 필요가 없다면 transient으로 설정해야합니다.

당신이 잭슨

을 사용하는 경우 아르도 @JsonIgnoreProperties을 자바 직렬화 사용하거나 @Transient 당신은 JPA를 사용하는 경우, 또는 경우 transient 자바 키워드를 사용할 수 있습니다