RMI 애플리케이션 배포(서버와 RMI 레지스트리 분리)

1627 단어 rmi
일반적으로 RMI 응용 프로그램을 배치할 때 서버와 RMI 등록표 프로세스를 한 서버에 동시에 실행합니다. 이것은 RMI 등록표가 원격 대상을 등록할 때 Remote를 실현하는 인터페이스(.class)에서 생성된 바이트 파일을 불러와야 하기 때문입니다.그러나 RMI 서비스는 원격 서버에서 로드를 지원합니다.
이 애플리케이션을 배포하려면 다음 네 단계로 나뉩니다.
첫 번째 단계:
1. NanoHTTPD를 httpserver 디렉토리로 다운로드
NanoHTTPD는 간편한 HTTP 서버입니다.매개변수 설명
>java NanoHTTPD – p단 구호 – d http 접근 디렉터리
2. httpserver 디렉토리에서 NanoHTTPD 클래스 컴파일
3. httpserver 디렉터리에서 디렉터리 다운로드를 만들고 NanoHTTPD를 시작하여 명령줄을 열고 입력합니다:java NanoHTTPD – p 8989 – d download.다운로드 디렉터리는 원격 인터페이스를 저장하는 데 사용됩니다.class 파일은 패키지가 있으면 같은 패키지 경로를 만들어야 합니다. 즉, RMI 등록표는 바이트 파일을 불러와야 합니다.
2단계:
서버에서 빈 디렉터리를 찾거나 만들고classpath 환경 변수를 비어 있도록 설정합니다. 윈도우즈에서 set%classpath%=;이것은 서버 로컬에 불러오는 일부 종류의 혼란을 방지하기 위해서입니다.
3단계:
원격 객체 클래스를 생성하여 UniCastRmoteObject를 원격 인터페이스에서 상속합니다.원격 객체의 모든 메서드에서 RemoteException 예외가 발생합니다. -Djava.rmi.server.codebase=
서버 사이드를 만들고 원격 대상을 등록합니다.이 블로그에는 쓰여 있다.
4단계:
클라이언트를 만들고 클라이언트를 통해 원격 대상에 접근합니다.클라이언트에서도 전체 클래스 경로를 가진 원격 대상이 필요합니다.class 파일.(서버에서 직접 복사하여 패키지와 함께 복사할 수 있음)
//		System.setProperty("java.rmi.server.codebase", "http://localhost:8888/example/");
//		RemoteService service = new RemoteServiceImpl();
//		Naming.rebind("service", service);
//		
//		String path = ClassLoader.getSystemClassLoader().getResource(".").toString();
//		System.setProperty("java.rmi.server.codebase", path);
//		Registry registry = LocateRegistry.getRegistry();
//		RemoteService service = new RemoteServiceImpl();
//		registry.rebind("service", service);

좋은 웹페이지 즐겨찾기