2011-12-24 8 views
1

표준 ObjectDecoderObjectEncoder from netty framework을 사용하고 있습니다. netty에있는 다양한 객체를 비 직렬화합니다.

  1. 그것은 ObjectDecoder 콘크리트 하나의 인스턴스 만, ObjectDecoder을 통해 다양한 유형의 직렬화, 역 직렬화 객체에 안전한가요?

  2. 기본값 ObjectDecoder 생성자가 부적절한 이유는 무엇입니까?

  3. 적합한 생성자 버전은 ClassReslover을 인수로 사용합니다. 는 ClassResolver 생성자는 객체의 한 유형 (ObjectDecoderObjectEncoder) 객체와 난이 (ObjectDecoder, ObjectDecoder을 전환해야 다른 직렬화/해제하려면 다음 콘크리트로 직렬화/해제 할 수 있음을 의미합니까) 개체가 ChannelPipeline?

저는 다양한 유형의 요청에 대한 응답을 제공해야하며이 방법으로 구현하고 싶은 서버를 작성하고 있습니다.

TYPE_REQUEST 필드가있는 표준 메시지 클래스가 더 좋을 수 있습니까?

답변

1

구체적인 ObjectDecoder, ObjectDecoder 인스턴스를 통해 다양한 유형의 객체를 직렬화하는 것이 안전할까요?

예. ObjectDecoder는 일반적으로 state (클래스 로더 이외의 변경되지 않음)를 가지고 있지 않습니다. - decode()를 호출 할 때 필요한 다른 것을 만듭니다. 클래스 로더는 선택 사항입니다. null을 전달할 수 있으며, 디코딩 할 때 클래스 로더 (내 경우에는 기본 클래스)가 컨텍스트에있는 모든 것을 사용합니다.

왜 기본 ObjectDecoder 생성자가 손상 되었습니까?

잘 모르겠습니다. Netty 3.2.4를 사용 중이며 더 이상 사용되지 않습니다. 버전 정보 : * @version $ Rev : 2279 $, $ 날짜 : 2010-05-13 23:13:07 +0900 (목, 2010 년 5 월 13 일) $

최신 버전을 사용하는 경우 , javadoc 봐, 그것은 당신에게 말해야한다.

적합한 버전의 생성자는 ClassReslover를 인수로 사용합니다. ClassResolver 생성자는 이러한 구체적인 (ObjectDecoder, ObjectEncoder) 객체에 의해 하나의 유형의 객체 만 de/serialize되고 다른 객체를 de/serialize 할 수 있음을 의미합니다. 이러한 (ObjectDecoder, ObjectDecoder) Objects는 ChannelPipeline에 있습니까?

전혀. ClassLoader arg는 기본 클래스가 부적절하기 때문에 필요한 일부 클래스 로더가있는 경우입니다.다른 쪽에서 적절한 ObjectEncoder를 사용하는 한, 한 ObjectDecoder로 모든 항목을 serialize/deserialize 할 수 있습니다.

+0

감사합니다. netd에는 3.2.7 javadoc이 없기 때문에 기본 ObjectDecoder 생성자가 손상된 이유는 무엇입니까?하지만 더 이상 중요하지 않습니다. –

관련 문제