axis2 介面預設引數名稱和方法返回值變數名修改
阿新 • • 發佈:2019-01-08
1、註釋生成
在axis2+Spring結合釋出的場合,客服端呼叫時,介面函式引數的預設名稱為axis2的預設設定(如arg0),而呼叫方更想看到的是具體引數的名稱(如:testName)。
package wip; import javax.jws.WebParam; import javax.jws.WebResult; public interface WebDao{ @WebResult(name = "getTest") public String getTest(@WebParam(name = "testName")String testName); }
2、解決WebResult註釋無效問題
無論WebResult如何設定,方法返回值變數名都是預設“return”,看了axis2的原始碼後,最終將範圍定為到:
axis2專案的axis2-kernel-1.6.2.jar中的
org.apache.axis2.description.java2wsdl.DefaultSchemaGenerator 類
org.apache.axis2.description.java2wsdl.DocLitBareSchemaGenerator 類
對於上面兩個類需要做如下修改:
protected Method[] processMethods(Method[] declaredMethods) throws Exception { ................... WebResultAnnotation returnAnnon = JSR181Helper.INSTANCE.getWebResultAnnotation(jMethod); String returnName = "return"; if (returnAnnon != null) { returnName = returnAnnon.getName(); //原來的程式碼 if (returnName != null && !"".equals(returnName)) { if (returnName == null || "".equals(returnName)) { returnName = "return"; } } ................... }