日前的工做接觸到不少系統間的Webservice調用,這裏想談談基於spring+xfire實現的webservice的客戶端踩過的一些坑,須要測試關注的點。web
在spring中實現ws的client的客戶端仍是相對比較容易的,只須要編寫一個和webservice接口一致的接口類便可。在xml的配置中須要關注下面幾個參數:spring
xfire調用時,若是請求參數中包含特殊的ascii字符(ascii碼的0x00 ~ 0x1F)時,ws調用會失敗。處理方法就是對請求參數進行過濾,剔除出這些控制字符。安全
基於發送消息體的另一個考量就是i18N,發送的內容嘗試着包含:半角、全角、雙字節字符、三字節字符等。測試
1. xfire調用異常後的重試編碼
對於一些關鍵業務webservice調用失敗可能會產生比較嚴重的後果,但xfire自己是沒有重試機制的。如今的作法就是,若是xfire調用失敗,catch作異常,將消息體插入一個重試任務表中,由調度任務稍後進行重試。3d
2. xfire調用異常,打印日誌的脫敏日誌
若是xfire調用失敗,catch住異常後,一般會打印異常日誌。若是涉及核心業務,從數據安全性角度考慮,須要關注在異常堆棧中是否會包含敏感信息(如信用卡卡號),異常日誌打印須要過濾掉敏感信息。xml