java 远程方法调用

java 远程方法调用
2018年07月09日 09:41 九云教育

1.编写远程方法接口

import java.rmi.Remote;

import java.rmi.RemoteException;

public interface MyRemote extends Remote{

public String sayHello(int year) throws RemoteException;

}

2.编写实现类

import java.rmi.Naming;

import java.rmi.RemoteException;

import java.rmi.server.UnicastRemoteObject;

import com.XXX.RemoteInterface.MyRemote;

/*java version "1.7.0_80"

*Java(TM) SE Runtime Environment (build 1.7.0_80-b15)

*Java HotSpot(TM) 64-Bit Server VM (build 24.80-b11, mixed mode)

*远程服务实现

*/

@SuppressWarnings("serial")

public class MyRemoteImpl extends UnicastRemoteObject implements MyRemote{

public String sayHello(int year) throws RemoteException {

return "I invoking this Method names sayHello() in "+year;

}

//此处为空的构造方法

public MyRemoteImpl() throws RemoteException { }

public static void main(String[] args){

try {

MyRemote service = new MyRemoteImpl();

Naming.rebind("/MyRemote/RemoteHello", service);

} catch (Exception e) {

e.printStackTrace();

}

}

}

3.编写客户端调用方法

import java.rmi.Naming;

import com.XXX.RemoteInterface.MyRemote;

/*

* 调用远程服务

*/

public class MyRemoteClient {

public static void main(String[] args){

new MyRemoteClient().go();

}

public void go(){

try {

MyRemote service = (MyRemote)Naming.lookup("rmi://127.0.0.1/MyRemote/RemoteHello");

String s = service.sayHello(2018);

System.out.println(s);

} catch (Exception e) {

e.printStackTrace();

}

}

}

3.1 打开cmd . cd 定位到项目classes 目录运行 rmic com.XXX.Remote.MyRemoteImpl 生成 MyRemoteImpl_Stub.class3.2 cmd 里在 classes目录下 执行 rmiregistry命令

3.3 启动 MyRemoteImpl 的 main()方法;

3.4 启动MyRemoteClient 的 main()方法;

控制台打印:“I invoking this Method names sayHello() in 2018”

远程方法调用成功

财经自媒体联盟更多自媒体作者

新浪首页 语音播报 相关新闻 返回顶部