2009-03-20 4 views
1

RMI 객체를 사용하여 통신하는 두 개의 응용 프로그램이 있습니다. 인터페이스, 구현 클래스 및 생성 된 스텁 클래스가 있습니다.RMI : 재 컴파일 된 impl 클래스가 필요한 변경

필자는 impl 클래스의 일부 변경으로 새로운 스텁 클래스를 만들 수 있음을 알고 있습니다.

내 질문은, 내가 스텁을 다시 컴파일하지 않고 만들 수있는 변경 사항은 무엇입니까?

마찬가지로 지금까지 내가 아는 것과 :

  • 나는 방법의 구조를 변경할 수 없습니다
  • 내가 IMPL 클래스가 사용하는 클래스 에의 serialVersionUID를 추가 할 수 있습니다 (변경 방법을 제거, 추가)?
  • impl 클래스가 인 클래스를 변경할 수 있습니까?
  • 내재 된 클래스와 사용되는 모든 클래스를 문서화 할 수 있습니까?

저는 이번 주 초에 변경을했기 때문에이 질문을합니다. 이제 RMI 연결이 끊어졌습니다. 하지만 난 단지 의견을 추가하고 내 checkstyle을 업데이 트되었습니다. 그래서 시리얼 버전 UID를 추가하고 일부 클래스를 최종 버전으로 변경했습니다.

답변

2

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

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