MOCK擋板的一些思考總結(jié)

最近,接手了一份新活,為方便下游同學(xué)的使用,需要給他們做擋板。mock假數(shù)據(jù),完成常規(guī)版本正常邏輯的驗(yàn)證;

于是,想法是這樣的:

首先做一個(gè)擋板服務(wù),監(jiān)聽(tīng)下游請(qǐng)求,如若遇到約定的參數(shù)值,則直接走擋板服務(wù)。返回存儲(chǔ)在服務(wù)器上的數(shù)據(jù)文件即可,否則走正常的服務(wù)請(qǐng)求邏輯。


想法有了,且之前有做過(guò)類似的流量復(fù)制的工程,于是,想著直接套用原有工程代碼即可。

開(kāi)干;

首先,建立了一個(gè)maven工程,將需要的代碼copy過(guò)來(lái),直接改改,然后就開(kāi)始打包并部署服務(wù)器了。問(wèn)題來(lái)了

1.如何使用maven打jar包,出現(xiàn)打包后,無(wú)法直接運(yùn)行

原因有2:

1. maven依賴的jar未打入

2.lib下本地依賴的jar未打入

針對(duì)以上兩種,首先將lib下的jar安裝的本地的maven倉(cāng)庫(kù)

命令如下:mvninstall:install-file -Dfile=xx.jar ? ? -DgroupId=org.wltea.ik-analyzer ? ?-DartifactId=ik-analyzer ? ? ? ? -Dversion=3.2.8 -Dpackaging=jar

然后在pom文件中加入

第二步,在pom文件中加入如下內(nèi)容:


以上即可完成打包工作。

第二個(gè)問(wèn)題,發(fā)現(xiàn)請(qǐng)求無(wú)效,無(wú)論怎么做,均返回405.

發(fā)現(xiàn)原因在于未重寫post以及get方法。按照父類傳參重寫后正常。

第三個(gè)問(wèn)題,如何獲取到返回結(jié)果

需要將response添加一些結(jié)果,如下:

response.setHeader("Content-Type","application/octet-stream");

//設(shè)置返回的狀態(tài)碼

response.setStatus(HttpServletResponse.SC_OK);

response.setHeader("Content-Length",String.valueOf(res.length));

response.getOutputStream().write(res);

然后即可獲取結(jié)果了。


遇到最后一個(gè)問(wèn)題,也是最傻的一個(gè)問(wèn)題

我想著服務(wù)啟動(dòng)了,端口生效了,但是為什么我get不到請(qǐng)求呢

想了好久,終于明白了。我這是一個(gè)代理服務(wù)器,需要配置nginx才行。

比如監(jiān)聽(tīng)80端口下的請(qǐng)求,只有我請(qǐng)求80端口時(shí),且滿足我的判斷條件,才走我的邏輯。配置完成nginx后,驗(yàn)證,圓滿解決

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容