Hello World on RMI
3523 단어 rmi
package org.autumn.rmi.client;
import java.rmi.Remote;
import java.rmi.RemoteException;
public interface IHello extends Remote {
String say() throws RemoteException;
}
2. 서버에서 이 인터페이스를 실현하려면 Unicast Remote Object 클래스를 계승해야 한다.
package org.autumn.rmi.server;
import java.rmi.RemoteException;
import java.rmi.server.UnicastRemoteObject;
import org.autumn.rmi.client.IHello;
public class HelloImpl extends UnicastRemoteObject implements IHello {
private static final long serialVersionUID = -22963382911437689L;
public HelloImpl() throws RemoteException {
super();
}
@Override
public String say() throws RemoteException {
return "hello from remote server";
}
}
3. 서버에서 디렉터리 서비스를 열고 이 실행 클래스를 등록합니다.
package org.autumn.rmi.server;
import java.net.MalformedURLException;
import java.rmi.Naming;
import java.rmi.RMISecurityManager;
import java.rmi.RemoteException;
import java.rmi.registry.LocateRegistry;
import org.autumn.rmi.client.IHello;
public class HelloServer {
public static void main(String[] args) {
System.setProperty("java.security.policy", "F:\\Server.policy");
if (System.getSecurityManager() == null) {
System.setSecurityManager(new RMISecurityManager());
}
try {
LocateRegistry.createRegistry(1099);
IHello hello = new HelloImpl();
Naming.rebind("rmi://192.168.0.193:1099/hello", hello);
} catch (RemoteException e) {
e.printStackTrace();
} catch (MalformedURLException e) {
e.printStackTrace();
}
}
}
Server.정책 파일의 내용은 다음과 같습니다.
grant
{
permission java.net.SocketPermission
"*:1000-9999","accept,connect,listen,resolve";
};
4. 서버 외부에 발표된 인터페이스를 클라이언트로 복사합니다. 패키지 이름을 포함합니다.
5. 클라이언트 호출 프로그램.
package org.autumn.rmi.client;
import java.net.MalformedURLException;
import java.rmi.Naming;
import java.rmi.NotBoundException;
import java.rmi.RMISecurityManager;
import java.rmi.RemoteException;
public class HelloClient {
public static void main(String[] args) {
System.setProperty("java.security.policy", "F:\\Client.policy");
if (System.getSecurityManager() == null) {
System.setSecurityManager(new RMISecurityManager());
}
try {
IHello hello = (IHello) Naming.lookup("rmi://192.168.0.193:1099/hello");
System.out.println(hello.say());
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (RemoteException e) {
e.printStackTrace();
} catch (NotBoundException e) {
e.printStackTrace();
}
}
}
Client.정책 파일의 내용은 다음과 같습니다.
grant
{
permission java.net.SocketPermission
"*:1000-9999","accept,connect,listen,resolve";
};
5. HelloServer 클래스를 실행하여 서버 서비스를 시작합니다.클라이언트 RMI 호출을 위해 HelloClient 클래스로 이동합니다.
출력:hello from remote server
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 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에 따라 라이센스가 부여됩니다.