-- 최용문 님이 쓰신 글:
>> LDAP사용시 orion server를 중단할 때
>>
>> Error serializing bean: netscape.ldap.LDAPConnSetupMgr$ServerEntry
>>
>> 이런 에러가 발생합니다. LDAP에 접근한 만큼 생깁니다.
>>
>> 그리고 다시 orion server를 시작할 때
>>
>> Error deserializing session: java.io.WriteAbortedException: Writing aborted by exception; java.io.NotSerializableException: netscape.ldap.LDAPConnSetupMgr$ServerEntry
>>
>> LDAP에 처음으로 접근하면 이것도 접근한 만큼 생깁니다.
>>
>> 어떻게 해야 할지 모르겠네요..
>>
>> 시스템 사항 :
>> orion server, linux 7.0, informix
안녕하세요.
저는 orion서버를 사용해본적은 없지만 위의 에러는 다음과 같은 뜻일겁니
다. 객체의 serialization(직렬화)란, 객체의 데이타를 , 데이타의 상태를 나
타내는 bytestream으로 변환하는 것을 이야기 합니다. serialize(직렬화)된
데이타는 객체가 저장될때의 상태로 다시 생성될 수 있는 충분한 정보를 가
지고 있습니다 . 즉 serialize를 하여 객체를 바이트스트림으로 변환하여 객
체정보를 저장하거나 전송하고 다시 deserialize를 하여 원객체의 정보를 가
지는 똑같은 객체를 생성합니다.
이 serialize , deserialize를 하기 위해서 반드시 그 객체는 선언시에
Serialiable interface를 구현(implements)해야만 합니다. 즉 다음과 같이
ex) public class Something implements Serializable {
....
}
결국 netscape.ldap.LDAPConnSetupMgr$ServerEntry 클래스가
(LDAPConnSetupMgr$ServerEntry란 ServerEntry클래스는
LDAPConnSetupMgr클래스의 inner클래스라는 말입니다.)
Serializable interface를 구현하지 않고 있는데 이것을 serialize할려고 하
니 java.io.NotSerializableException 이 발생한 것입니다. 마찬가지로
deserialize할때에도 serialize가 되지 않았으니 deserialize할것이 없다는
뜻이겠지요.
오리온 서버가 내부적으로 serialize/deserialize하는지, 아니면 사용자 프로
그램에서 그렇게 하는지는 모르겠지만 그러한 이유때문인것 같습니다.
배포되는 Netscape클래스들을 수정하기는 뭣하니 위의 클래스를 serialize
하시려 마시고 정보를 가지는 또다른 클래스를 넘겨주는 방식으로 하시면 좋
겠습니다.
도움이 되었으면 좋겠군요.
그럼 즐거운 하루보내세요. :-)
|