近期在做多個數據庫應用交互系統,其中數據交互采用了webservice的方式,說到webservice項目中不得不用到xfire這個框架,有了它我們幾乎不用寫代碼,就可以很快速的創建自己的webservice
但在使用的過程中遇到一些小細節上的問題:
就是在寫webservice接口的時候,通常大家都會定義一些方法的參數,但是根據xfire的xsd文件描述情況來看,它的參數命名通常是in0,in1等等,一次類推,很不友好。
按照XFire-Spring生成的WSDL文檔中接口參數名極不友好:
<xsd:element maxOccurs="1" minOccurs="1" name="in0" nillable="true" type="xsd:string" />
<xsd:element maxOccurs="1" minOccurs="1" name="in1" nillable="true" type="xsd:string" />
<xsd:element maxOccurs="1" minOccurs="1" name="in2" nillable="true" type="xsd:string" />
<xsd:element maxOccurs="1" minOccurs="1" name="in3" nillable="true" type="xsd:string" />
大家都知道,作為一個合格的程序員,在寫代碼的時候方法參數命名什么的要盡量做到見名知意,顯然他這種風格是不適合我們的。因此我們要創新,這就有了下文。
如何自動將in0與in1替換成友好的參數名稱呢 ?
方法如下:
1.在與接口類同一包下面建一個接口類名稱.aegis.xml 的文件,內容如下
<?xml version="1.0" encoding="UTF-8"?>
<mappings>
<mapping>
<method name="settleMessage">
<parameter index="0" mappedName="id" />
<parameter index="1" mappedName="username" />
<parameter index="2" mappedName="pass" />
</method>
</mapping>
</mappings>
注意:
name為接口中方法名稱
index為方法中第一個參數
mappedName為替換后的名稱
該XML文件的位置一定要與你定義的webservice的接口位于同一個目錄(包下)否則不起作用