1. 程式人生 > >axis2 介面預設引數名稱和方法返回值變數名修改

axis2 介面預設引數名稱和方法返回值變數名修改

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";
	    }
	}
	...................
}