请选择 进入手机版 | 继续访问电脑版

RMI协议远程调用

[复制链接]
丁翼 发表于 2020-12-31 18:05:55 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
服务提供者

1.接口
  1. 1.继续remote接口 2.声明RMI_URL和port 3.接口方法要throws RemoteExceptionpublic interface IUserService extends Remote {       String RMI_RRL = "rmi://localhost:55819/IUserService";    // 后面的IuserService可以自界说    int PORT = 55819;    String test1() throws RemoteException;    String test2() throws RemoteException;}
复制代码
2.实现类:
  1. 1.继续UnicastRemoteObject类2.构造方法throws RemoteExceptionpublic class UserServiceImpl extends UnicastRemoteObject implements IUserService {    public UserServiceImpl() throws RemoteException  {        super();    }    @Override    public String test1() {        return "服务端service的test1方法调用了";    }    @Override    public String test2() {        return "服务端service的test2方法调用了";    }}
复制代码
3.服务端初始化绑定路径和端口
  1. public class RMIServer {    public static void main(String[] args) {        try {            IUserService userService = new UserServiceImpl();                  //注册通讯路径            Naming.bind(userService.RMI_RRL, userService);            //注册通讯端口            LocateRegistry.createRegistry(userService.PORT);            System.out.println("初始化rmi绑定完成!");        } catch (Exception e) {            e.printStackTrace();        }    }}
复制代码
服务调用者

1.方法接口——直接copy服务提供者的接口
  1. public interface IUserService extends Remote {    //通讯路径 后面的IuserService可以自界说    String RMI_RRL = "rmi://localhost:55819/IUserService";    int PORT = 55819;    String test1() throws RemoteException;    String test2() throws RemoteException;}
复制代码
2.客户端
userService = (IUserService) Naming.lookup(userService.RMI_RRL);
  1. public static void main(String[] args) throws RemoteException, MalformedURLException {        IUserService userService = null;        try {            userService = (IUserService) Naming.lookup(userService.RMI_RRL);            String s1 = userService.test1();            String s2 = userService.test2();            System.out.println("111" + s1);            System.out.println("222" + s2);        } catch (NotBoundException e) {            e.printStackTrace();        }    }
复制代码
来源:https://blog.csdn.net/weixin_44635157/article/details/111911997
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


专注素材教程免费分享
全国免费热线电话

18768367769

周一至周日9:00-23:00

反馈建议

27428564@qq.com 在线QQ咨询

扫描二维码关注我们

Powered by Discuz! X3.4© 2001-2013 Comsenz Inc.( 蜀ICP备2021001884号-1 )