springboot+HttpInvoke?實(shí)現(xiàn)RPC調(diào)用的方法
開(kāi)始用springboot2+hession4實(shí)現(xiàn)RPC服務(wù)時(shí),發(fā)現(xiàn)第一個(gè)服務(wù)可以調(diào)用成功,但第二個(gè)就一直報(bào)'<'isanunknowncode。第一個(gè)服務(wù)還是可以調(diào)用的。參考網(wǎng)上的方法,客戶(hù)端與服務(wù)端hession版本保持一致,查看本地版本是一致的, 換成其他版本也沒(méi)有效果。設(shè)置重載方法為true,都沒(méi)有效果。如果有其他小伙伴有過(guò)解決方法,望指正。 后改用用了spring自帶的HTTPInvoke?,F(xiàn)記錄如下:
1、將服務(wù)端的服務(wù)暴露出來(lái)
@Configuration public class HttpInvokeServiceConfig { @Bean("/xxx") public HttpInvokerServiceExporter rpcService(xxxService xxxService) { HttpInvokerServiceExporter httpInvokerServiceExporter = new HttpInvokerServiceExporter(); httpInvokerServiceExporter.setService(xxxService); httpInvokerServiceExporter.setServiceInterface(xxxService.class); return httpInvokerServiceExporter; } }
2、客戶(hù)端,將接口交由代理去執(zhí)行遠(yuǎn)程方法
@Configuration public class ClientRpcConfig { @Bean public HttpInvokerProxyFactoryBean rpcService() { HttpInvokerProxyFactoryBean httpInvokerProxyFactoryBean = new HttpInvokerProxyFactoryBean(); httpInvokerProxyFactoryBean.setServiceUrl(server_url); httpInvokerProxyFactoryBean.setServiceInterface(xxxService.class); return httpInvokerProxyFactoryBean; } }
注意點(diǎn)
1)、服務(wù)端與客戶(hù)端接口名一致、方法參數(shù)一致
2)、如果接口參數(shù)是對(duì)象的話(huà),參數(shù)對(duì)象須實(shí)現(xiàn)序列化
3)、接口參數(shù)是對(duì)象的話(huà),服務(wù)端與客戶(hù)端對(duì)象名要一致、包路徑也得一致。 不然會(huì)報(bào)找不到類(lèi)
3、將接口注入在所需要的地方即可實(shí)現(xiàn)遠(yuǎn)程調(diào)用接口所定義的方法
到此這篇關(guān)于springboot+HttpInvoke 實(shí)現(xiàn)RPC調(diào)用的文章就介紹到這了,更多相關(guān)springboot RPC調(diào)用內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SpringData @Query和@Modifying注解原理解析
這篇文章主要介紹了SpringData @Query和@Modifying注解原理解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-08-08給JavaBean賦默認(rèn)值并且轉(zhuǎn)Json字符串的實(shí)例
這篇文章主要介紹了給JavaBean賦默認(rèn)值并且轉(zhuǎn)Json字符串的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-03-03Spring 中如何根據(jù)環(huán)境切換配置 @Profile
這篇文章主要介紹了Spring中如何根據(jù)環(huán)境切換配置@Profile的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-08-08java斷點(diǎn)續(xù)傳功能實(shí)例(java獲取遠(yuǎn)程文件)
本文介紹了一種利用 Java 來(lái)實(shí)現(xiàn)斷點(diǎn)續(xù)傳的方法。2013-12-12Java Redis分布式鎖的正確實(shí)現(xiàn)方式詳解
這篇文章主要介紹了Java Redis分布式鎖的正確實(shí)現(xiàn)方式詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-09-09javascript與jsp發(fā)送請(qǐng)求到servlet的幾種方式實(shí)例
本文分別給出了javascript發(fā)送請(qǐng)求到servlet的5種方式實(shí)例與 jsp發(fā)送請(qǐng)求到servlet的6種方式實(shí)例2018-03-03