以往在FTPC裏建立WebService是用jaxrpc,可是此次服務端的返回解析不了,而使用jaxrpc對返回值本身解析也很差操做,測試過axis2以後,以爲還不錯。java
一、使用wsdl2java自動生成java代碼apache
進入Windows控制檯,執行以下命令來生成WebService的客戶端代碼:網絡
%AXIS2_HOME%\bin\wsdl2java -uri http://127.0.0.1:8080/awyb/services/mySoapService?wsdl -p client -s -o stubapp
其中-uri參數指定了wsdl文件的路徑,能夠是本地路徑,也能夠是網絡路徑。-p參數指定了生成的Java類的包名,-o參數指定了生成的一系列文件保存的根目錄。在執行完上面的命令後,咱們就會發如今當前目錄下多了個stub目錄,在./stub/src/client目錄能夠找到對應的客戶端調用文件,這些文件複雜調用WebService,咱們能夠在程序中直接使用這些文件dom
二、引入Axis2的jar包,開發測試的時候能夠建library,部署的時候放到SOS的lib下面便可,不用擔憂jar包衝突測試
三、須要引入的jarcode
其中引入dom4j是由於解析服務端返回的報文出錯,本身手寫的把XML轉換成對象的解析語句要用到。xml
其餘的是axis2自己要用到的jar包對象
四、服務端反應收不到請求對象,要求將HTTP請求頭設爲:Content-Type: text/xml; charset=UTF-8 開發
修改方法:
_serviceClient.getOptions().setSoapVersionURI(org.apache.axiom.soap.SOAP11Constants.SOAP_ENVELOPE_NAMESPACE_URI);
若是使用SOAP11Constants(SOAP 1.1),HTTP請求頭以下:
若是使用SOAP12Constants(SOAP 1.2) ,HTTP請求頭以下:
若是不設置這個參數,HTTP請求頭以下(和SOAP 1.1是同樣的,能夠確認默認使用SOAP 1.1):
HTTP響應頭中的Content-Type字段也是同樣的