클라이언트가 분산 시스템에서 검색 할 수있는 개체가 서버에 있습니다. 이것은 모두 로컬 컴퓨터에서 발생하며 클라이언트는 RMI 조회를 통해 서버 개체를 호출합니다. 요점은 서버 개체가 클라이언트가 수정할 수있는 하나의 단일 개체 여야한다는 것입니다. 그러나 클라이언트에서 역 직렬화되면 모두 다른 개체 ID를 갖게됩니다. 즉, 서버에서 모두 동일한 개체를 검색해야하지만 새 개체를 얻는 것처럼 보입니다. 개체가 별도의 컴퓨터 (클라이언트 당)에 있어야한다는 점을 고려하면 이는 의미가 있습니다.
서버 개체에서 해시 코드 및 같음 메서드를 구현하려고 시도했지만 클라이언트는 여전히 다른 개체 ID를 얻습니다. 클라이언트가 역 직렬화 된 서버 개체에 대해 작업을 수행 할 때 원래 서버 개체는 변경 내용을받지 않습니다. 후속 조회가 원래 상태의 서버 개체를 검색하기 때문에 이것을 알고 있습니다.
기본적으로 내 질문은 : 내 클라이언트가 각각의 역 직렬화 된 개체에 대해 클라이언트 작업을 수행하여 원래 서버 개체를 업데이트하도록하려면 어떻게해야합니까? 다른 클라이언트가 역 직렬화 된 개체의 getter를 볼 때 다른 클라이언트가 수행 한 모든 변경 사항을 확인해야합니다. 더 명확히하기 위해, 객체가 서로 다른 시스템에서 역 직렬화 되었음에도 불구하고 동일한 시스템에서 하나의 동일한 객체 인 것처럼 동작하기를 원합니다.
요점은 서버 개체가 클라이언트가 수정할 수있는 하나의 단일 개체 여야한다는 것입니다. 그러나 클라이언트에서 역 직렬화되면 모두 다른 개체 ID를 갖습니다.
요점은 이것이 원격 객체가 아니므로 직렬화되어 원하지 않는다는 것입니다.
나는 그들이 마치 같은 기계에서 하나의 동일한 객체 인 것처럼 행동하기를 원합니다.
바로 그거죠. 다음을 수행해야합니다.
UnicastRemoteObject
(선호)하거나 UnicastRemoteObject.exportObject()
건설을 요청 하여 내보내십시오 .이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다