計(jì)算機(jī)語言分類有很多,如C、C++、C#、Java、Php、Python等等,她們有各自的特性及擅長的領(lǐng)域,但她們各自又不是全能的。在一個(gè)稍微大型一點(diǎn)的項(xiàng)目都會(huì)用到多種語言共同完成,那么這些編程語言如何進(jìn)行通信呢。什么意思呢,就是比如說我Java寫的一個(gè)方法,其他編程語言要怎么去調(diào)用呢?這就是本文要探討的問題了。
一般來說,方法層面的編程語言通信用的是網(wǎng)絡(luò)接口形式,只暴露出形參和結(jié)果供別人調(diào)用。接口一般分為接口定義者和接口調(diào)用者,定義者可以規(guī)定接收參數(shù)的類型及返回形式,而接口定義者則只能完全按照接口定義者規(guī)定的參數(shù)進(jìn)行訪問。就叫是我們所說的webService(網(wǎng)絡(luò)服務(wù))。
以前的做法是利用XML作接口格式定義,然后通過Http做通訊和請求,如大名鼎鼎的SOAP,其實(shí)現(xiàn)在也是的,只不過現(xiàn)在流行RestFul風(fēng)格的Rest接口形式,但用的還是XML+HTTP,那這兩者有啥區(qū)別呢?最大的區(qū)別就是SOAP返回的主要是XML格式,有時(shí)還需要附帶一些輔助文件,而Rest則還可以返回JSON類型的字符串,減少了很多繁亂的XML標(biāo)簽。本文就以Java為例,用她寫一個(gè)接口,并讓其他人去調(diào)用,以此來簡單展示接口調(diào)用是怎么樣一個(gè)過程。
步驟:
1、本機(jī)裝有Java JDK運(yùn)行環(huán)境及編程IDE(如Myeclipse)
2、建立一個(gè)maven項(xiàng)目,用以下載jar包,項(xiàng)目結(jié)構(gòu)如下:
3、pom.xml文件內(nèi)容如下:
4、applicationContext.xml內(nèi)容如下:
5、web.xml則主要配置采用的容器、日志管理及攔截器,攔截器可以實(shí)現(xiàn)到達(dá)請求鄭濤之前進(jìn)行身份認(rèn)證,踢除沒有訪問資格的請求,而rest項(xiàng)目一般是用Jersey容器。配置如下:(kendy只是我的英文名,你們可以自己定義路徑)
6、攔截器如下:
7、注冊Jersey容器所要管理的類
8、接口定義(Restful風(fēng)格)
9、調(diào)用接口,有多種方式,本文用HttpClient
10、返回接口
11、最后通過Map、List和Json工具對(duì)返回來的字面量進(jìn)行各種處理。
-
接口
+關(guān)注
關(guān)注
33文章
9293瀏覽量
155586 -
JAVA
+關(guān)注
關(guān)注
20文章
2992瀏覽量
115048
發(fā)布評(píng)論請先 登錄
請問Labview如何寫一個(gè)心形動(dòng)態(tài)曲線圖?
設(shè)備驅(qū)動(dòng)的入門教程 (教你如何寫驅(qū)動(dòng))
module 概述以及如何寫一個(gè)module
一文看懂scala和java的區(qū)別

如何寫一個(gè)簡短的Python代碼做一個(gè)換臉程序的詳細(xì)概述
如何寫一個(gè)會(huì)講笑話的Python程序

HarmonyOS如何自動(dòng)生成JS FA調(diào)用Java PA的模板代碼
如何寫要被C調(diào)用的匯編函數(shù)
如何寫一個(gè)簡單的裝飾器

評(píng)論