使用Axis2调用Web Service
本文作為使用Axis2創(chuàng)建Web Service的后篇,主要介紹如何使用Axis2調(diào)用Web Service。有關(guān)準備工作詳情請參考前篇的內(nèi)容。
在Eclipse的Packge Explorer中右鍵點擊New,選擇Other項,新建一個Axis2 Code Genrateor向?qū)А|c擊Next,打開向?qū)нx擇界面:
選擇Generate Java Source code from a WSDL file,點擊Next。
在WSDL file location中輸入WSDL文件的地址,點擊Next。
使用默認設(shè)置,繼續(xù)Next。
選擇文件輸出路徑,點擊Finish。啊哦,可怕的事情發(fā)生了:
于是Google,得知要將Tomcat安裝目錄下的webapps/axi2/WEB-INF/lib下的backport-util-concurrent-3.1.jar復(fù)制到eclipse\plugins\Axis2_Codegen_Wizard_1.3.0\lib目錄下,沒想到我的axis2的lib下竟然沒有backport-util-concurrent-3.1.jar,于是網(wǎng)上下載了一個。至于為什么沒有這個文件,至今還沒有搞明白。
復(fù)制之后,修改%ECLIPSE_HOME%\plugins\Axis2_Codegen_Wizard_1.3.0\plugin.xml文件,在<runtime/>標簽中添加該 jar的注冊信息。如下:
<library name="lib/backport-util-concurrent-3.1.jar"><export name="*"/> </library>然后,在命令行下切換至%ECLIPSE_HOME%目錄,使用-clean參數(shù)啟動Eclipse,清除osig cache,如下:
eclipse.exe -vm "c:\jre1.5.0_10\bin\java.exe" -clean -console -consoleLog -debug -vmargs –mx384M然后關(guān)閉Eclipse,使用普通方式重新啟動,再按上述步驟重新來過,問題終于解決。
刷新項目,會發(fā)現(xiàn)net.kirin.webservice包中多了兩個文件(文件的位置由以上最后一步文件的輸出路徑?jīng)Q定):
之所以會有錯誤,是因為還沒有安裝Axis2的類包。
在項目上右鍵選擇Build Path—>Add External Archives,選擇Tomcat安裝目錄webapps/axi2/WEB-INF/lib下的所有jar包。或則選擇項目屬性—>Java Build Path—>Add External JARs,選擇所有jar包。
在項目中新建CalculateServiceTest單元測試類(JUnit),輸入如下代碼(當(dāng)然,別忘了添加junit的jar包):
?
package net.kirin.webservice;import junit.framework.*;public class CalculateServiceTest extends TestCase{public void testCalculateService() throws Exception {CalculateServiceStub stub = new CalculateServiceStub();CalculateServiceStub.Add add = new CalculateServiceStub.Add();add.setX(1);add.setY(2);double retVal = stub.add(add).get_return();Assert.assertEquals(3.0, retVal);} }運行單元測試,順利通過:
至此,我們完成了使用Axis2調(diào)用Web Service的過程。
?
參考資料:
axis2創(chuàng)建web service(三)
java.lang.reflect.InvocationTargetException axis2 code generator error resolved
轉(zhuǎn)載于:https://www.cnblogs.com/kirinboy/archive/2009/09/22/1571593.html
總結(jié)
以上是生活随笔為你收集整理的使用Axis2调用Web Service的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: VS code 快捷键常用
- 下一篇: 韩家炜课题组重磅发文:文本分类只需标签名