RMI 입문 (2) 인 스 턴 스 - 직접 코드 디 버 깅 성공

3886 단어 rmi
1. RMI 프로그램 을 만 드 는 6 단계:
1. 원 격 인터페이스의 인 터 페 이 스 를 정의 합 니 다. 이 인터페이스의 모든 방법 은 Remote Exception 이상 이 발생 할 것 이 라 고 밝 혀 야 합 니 다.
2. 이 인 터 페 이 스 를 실현 하 는 클래스 를 정의 합 니 다.
3. RMIC 프로그램 을 사용 하여 원 격 실현 에 필요 한 잔 근 과 프레임 워 크 를 생 성 합 니 다.
4. 서버 를 만 들 고 2 에 적 힌 클래스 를 발표 하 며 server 에 포트 를 등록 합 니 다.
5. RMI 호출 을 위해 클 라 이언 트 프로그램 을 만 듭 니 다.
다음은 상세 한 설명 입 니 다.
1. 원 격 인터페이스의 인 터 페 이 스 를 정의 합 니 다. 이 인터페이스의 모든 방법 은 Remote Exception 이상 이 발생 할 것 이 라 고 밝 혀 야 합 니 다.
package com.liuc.server.inter;

import java.rmi.RemoteException;

public interface Hello extends java.rmi.Remote //    Remote  
{
	public String SayHello() throws RemoteException; //     remote  
}

2. 이 인 터 페 이 스 를 실현 하 는 클래스 를 정의 합 니 다.
/*
 *   Stub    -keepgenerated     class       
 * cd F:\work\RMITest\WebContent\WEB-INF\classes
 * rmic -keepgenerated  com.liuc.server.inter.impl.HelloImpl
 *  HelloImpl_Stub         
 */
package com.liuc.server.inter.impl;

import java.rmi.RemoteException;
import java.rmi.server.UnicastRemoteObject;

import com.liuc.server.inter.Hello;

public class HelloImpl extends UnicastRemoteObject //    UnicastRemoteObject   
		implements Hello {
	public HelloImpl() throws RemoteException //       Remote          
	{
	}

	public String SayHello() //      I_Hello     
	{
		return "Hello world !!";
	}
}

 
3. RMIC 프로그램 을 사용 하여 원 격 구현 에 필요 한 잔 근 Stub 와 프레임 워 크 를 생 성 합 니 다.
대응 하 는 class 파일 의 경 로 를 찾 습 니 다. HelloImpl 의 설명 을 참조 하여 잔 근 과 프레임 워 크 를 만 들 고 원본 파일 을 HelloImpl 같은 디 렉 터 리 에 복사 합 니 다.
4. 서버 를 만 들 고 2 에 적 힌 종 류 를 발표 합 니 다.
package com.liuc.server;

import java.rmi.Naming;
import java.rmi.registry.LocateRegistry;
import java.rmi.registry.Registry;

import com.liuc.server.inter.Hello;
import com.liuc.server.inter.impl.HelloImpl;

public class RMI_Server {
	public static void main(String[] args) {
		try {
			Registry r = LocateRegistry.getRegistry(9999);
            if(r != null) r = LocateRegistry.createRegistry(9999);
			Hello hello = new HelloImpl(); //         
			Naming.rebind("rmi://127.0.0.1:9999/helloServer", hello); //   RMI       
			System.out.println("=== Hello server Ready === ");
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}

 
5. RMI 호출 을 위해 클 라 이언 트 프로그램 을 만 듭 니 다.
package com.liuc.client;

import java.rmi.Naming;

import com.liuc.server.inter.Hello;

public class RMI_Client {
	public static void main(String[] args) {
		try {
			Hello hello = (Hello) Naming.lookup("rmi://127.0.0.1:9999/helloServer"); //   RMI        
			System.out.println(hello.SayHello()); //          
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

}

 
6. JRE 에서 포트 규칙 설정
이 때 프로그램 을 실행 하면 오류 가 발생 할 수 있 습 니 다. JRE 에 해당 하 는 포트 규칙 을 설정 해 야 합 니 다.
JRE 디 렉 터 리 를 찾 았 습 니 다. 제 디 렉 터 리 는 D: \ Program \ JDK 1.6 \ jre \ lib \ security 입 니 다.
java. policy 파일 을 열 고 마지막 에 아래 규칙 을 추가 하면 됩 니 다.
 
grant {
           permission java.net.SocketPermission "*:1024-65535","connect,accept";
  permission java.net.SocketPermission "*:80","connect";
        };
나 는 사용 할 수 있 는 모든 포트 를 열 었 다. 실제로 사용 할 때 너 는 필요 에 따라 지정 한 포트 만 열 수 있다.
첨부 파일 은 프로젝트 의 소스 코드 파일 입 니 다.

좋은 웹페이지 즐겨찾기