RMI 소예 1개
7784 단어 rmi
· 원격 서비스의 인터페이스 정의
· 원격서비스 인터페이스의 구체적인 실현
· 말뚝(Stub) 및 프레임(Skeleton) 파일(JDK1.5 이후 자동 생성)
· 원격 서비스를 실행하는 서버
· RMI 이름 지정 서비스, 이 원격 서비스를 발견할 수 있도록 허용 클라이언트
· 클래스 파일의 공급자(HTTP 또는 FTP 서버
· 이 원격 서비스가 필요한 클라이언트 프로그램
원격 서비스의 인터페이스 정의 Server.java:
import java.rmi.Remote;
import java.rmi.RemoteException;
public interface Server extends Remote{ // Remote
String hellpWorld(String name) throws RemoteException;
Person getPerson(String name,int age)throws RemoteException;
}
Person 객체(네트워크 전송, 정렬화되어야 함):
import java.io.Serializable;
public class Person implements Serializable{
private String name;
private int age;
public Person(String name, int age) {
super();
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "Person [name=" + name + ", age=" + age + "]";
}
}
원격서비스 인터페이스의 구체적인 구현 ServerImpl.java:
import java.net.MalformedURLException;
import java.rmi.Naming;
import java.rmi.RemoteException;
import java.rmi.registry.LocateRegistry;
import java.rmi.server.UnicastRemoteObject;
// UnicastRemoteObject
public class ServerImpl extends UnicastRemoteObject implements Server {
protected ServerImpl() throws RemoteException {
super();
}
public String hellpWorld(String name) throws RemoteException {
return name+" ";
}
public Person getPerson(String name, int age) throws RemoteException {
return new Person(name,age);
}
//
public void info(){
System.out.println(" ");
}
public static void main(String[] args) throws RemoteException, MalformedURLException {
Server imp=new ServerImpl();
//
LocateRegistry.createRegistry(1097);
Naming.rebind("rmi://:1097/jim", imp);
}
}
클라이언트:
import java.net.MalformedURLException;
import java.rmi.Naming;
import java.rmi.NotBoundException;
import java.rmi.RemoteException;
public class RMIClient {
/**
* @param args
* @throws NotBoundException
* @throws RemoteException
* @throws MalformedURLException
*/
public static void main(String[] args) throws MalformedURLException, RemoteException, NotBoundException {
Server ser=(Server) Naming.lookup("rmi://:1097/jim");
System.out.println(ser.hellpWorld("jim"));
System.out.println(ser.getPerson("jim", 24));
}
}
클라이언트가 원격 서비스 인터페이스에 원격 메서드를 호출하면 다음 단계를 거쳐야 합니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Hello World on RMI1. 먼저 서버에서 발표할 인터페이스를 정의하고 원격 인터페이스를 계승해야 한다. 2. 서버에서 이 인터페이스를 실현하려면 Unicast Remote Object 클래스를 계승해야 한다. 3. 서버에서 디렉터리 서비...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.