Java rmi遠(yuǎn)程方法調(diào)用基本用法解析
本文主要介紹Java中的rmi的基本使用
1:項(xiàng)目架構(gòu)
api:主要是接口的定義,url地址,端口號
rmiconsumer:rmi服務(wù)的調(diào)用者
rmiserver:rmi服務(wù)的提供者
2:pom.xnl
api的pom.xml
<artifactId>api</artifactId> <groupId>com.api</groupId> <version>1.0</version> rmiconsumer和rmiserver的pom.xml <dependency> <groupId>com.api</groupId> <artifactId>api</artifactId> <version>1.0</version> </dependency>
該功能主要是將api的引入到服務(wù)端和客戶端
3:代碼
api的代碼
public interface RMIInterface extends Remote { String RMI_URL = "rmi://127.0.0.1:9080/RMIServer"; int PORT = 9080; Object sayHello(String name) throws RemoteException; }
rmiserver的代碼
public class RMIInterfaceImpl extends UnicastRemoteObject implements RMIInterface { public RMIInterfaceImpl() throws RemoteException { } @Override public Object sayHello(String name) throws RemoteException { return "你好,你連接成功,姓名:"+name; } }
public class RMIServer { public static void main(String[] args) { try { RMIInterface rmi = new RMIInterfaceImpl(); //注冊通訊端口 LocateRegistry.createRegistry(RMIInterface.PORT); //注冊通訊路徑 Naming.bind(RMIInterface.RMI_URL,rmi); System.out.println("rmi服務(wù)端啟動成功"); }catch (Exception e){ e.printStackTrace(); } } }
rmiconsumer
public class RMIConsumer { public static void main(String[] args) { //遠(yuǎn)程調(diào)用RMI RMIInterface rmiInterface =null; try{ rmiInterface =(RMIInterface) Naming.lookup(RMIInterface.RMI_URL); Object ret = rmiInterface.sayHello("張先生"); System.out.println("測試遠(yuǎn)程調(diào)用成功,返回結(jié)果:"+ret); }catch (Exception e){ e.printStackTrace(); } } }
4:總結(jié)
接口必須繼承 Remote
接口的實(shí)現(xiàn)類必須繼承 UnicastRemoteObject
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
詳解SpringBoot可執(zhí)行Jar包運(yùn)行原理
SpringBoot有一個很方便的功能就是可以將應(yīng)用打成可執(zhí)行的Jar,那么大家有沒想過這個Jar是怎么運(yùn)行起來的呢,本篇博客就來介紹下 SpringBoot可執(zhí)行Jar包的運(yùn)行原理,需要的朋友可以參考下2023-05-05Spring 靜態(tài)變量/構(gòu)造函數(shù)注入失敗的解決方案
我們經(jīng)常會遇到一下問題:Spring對靜態(tài)變量的注入為空、在構(gòu)造函數(shù)中使用Spring容器中的Bean對象,得到的結(jié)果為空。不要擔(dān)心,本文將為大家介紹如何解決這些問題,跟隨小編來看看吧2021-11-11Maven創(chuàng)建項(xiàng)目過慢的4種解決辦法
最近經(jīng)常會遇到一個困擾,那就是用idea創(chuàng)建maven項(xiàng)目時,速度很慢,本文就來介紹一下Maven創(chuàng)建項(xiàng)目過慢的4種解決辦法,感興趣的可以了解一下2021-12-12引入mybatis-plus報(bào) Invalid bound statement錯誤問題的解決方法
這篇文章主要介紹了引入mybatis-plus報(bào) Invalid bound statement錯誤問題的解決方法,需要的朋友可以參考下2020-05-05java.io.EOFException產(chǎn)生原因及解決方法(附代碼)
java.io.EOFException表示在讀取數(shù)據(jù)時突然遇到了文件或流的末尾,也就是說客戶端或服務(wù)器已經(jīng)關(guān)閉了連接,但是你還在嘗試讀取數(shù)據(jù),這篇文章主要給大家介紹了關(guān)于java.io.EOFException產(chǎn)生原因及解決的相關(guān)資料,需要的朋友可以參考下2023-09-09使用Spark?SQL實(shí)現(xiàn)讀取不帶表頭的txt文件
這篇文章主要為大家詳細(xì)介紹了如何使用Spark?SQL實(shí)現(xiàn)讀取不帶表頭的txt文件,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-03-03