RMI : 어떤 변화에 재 컴파일 된 임플란치 클래스가 필요합니다

StackOverflow https://stackoverflow.com/questions/665280

  •  21-08-2019
  •  | 
  •  

문제

RMI 객체를 사용하여 통신하는 두 가지 응용 프로그램이 있습니다. 인터페이스, 구현 클래스 및 생성 된 스터브 클래스가 있습니다.

나는 임플란치 클래스의 일부 변화가 새로운 스터브 클래스를 만들 수 있다는 것을 인식했다.

내 질문은 스텁을 다시 컴파일하지 않고 어떤 변화를 할 수 있습니까?

내가 아는 한 :

  • 메소드 구조를 변경할 수 없습니다 (추가, 제거, 변경 방법)
  • INMS 클래스가 사용중인 클래스에 SerialVersionUid를 추가 할 수 있습니까?
  • 클래스를 변경할 수 있습니까? 임플란 클래스가 사용하는 것입니까?
  • IMP 및 모든 중고 클래스를 문서화 할 수 있습니까?

이번 주 초에 변경을했고 지금은 RMI 연결이 고장 났기 때문에이 질문을합니다. 그러나 댓글을 추가하고 체크 스타일을 업데이트했습니다. 그래서 나는 일련 버전 UID를 추가하고 일부 클래스를 최종적으로 변경했습니다.

도움이 되었습니까?

해결책

추가 및 삭제를 포함하여 메소드 서명을 변경하는 경우 RMIC를 다시 실행하고 배포 클래스를 생성하면됩니다. 생성 된 코드는 단순히 원격 호출 객체를 클래스의 정의 된 메소드를 통해 실제 구현에 연결합니다.

즉, INMS 코드 (메소드 서명 제외)와 INMS 클래스가 문제없이 사용하는 클래스의 코드를 변경할 수 있습니다. 구현에서 사용되는 클래스가 메소드 서명의 일부인 경우 원격 구현과 일치하기 위해 클라이언트 측에서 적절한 버전이 필요하지만 이는 RMI에 대한 것이 아닙니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top