使用axis2進行webservice的編寫:
axis2感覺和axis1完全不一樣,更智能化,但。。。越智能越摸不透了
1、下載axis2-1.6.2-bin、axis2-1.6.2-war 、axis2-eclipse-service-plugin-1.6.2.zip 三個包,下載地址 http後面是
axis2-1.6.2-war.zip
axis2-1.6.2-bin.zip
axis2-eclipse-service-plugin-1.6.2.zip
(該文件加壓後,將plugin文件放到eclipse的plugins目錄下,重啓eclipse)
2、解壓axis2-1.6.2-bin.zip,lib目錄下是axis2的類庫,需要加載到項目中
3、解壓axis2-1.6.2-war.zip,發現下面有一個文檔叫axis2.war的文件,很重要,
將此文件直接copy到tomcat的webapps目錄下,當重新開啓tomcat時,此文件將會被自動加載,
且在webapps目錄下面會新生成一個axis2的項目 文件夾,一個完整的項目
應該有axis2-web、META-INF、org、WEB-INF四個目錄,其中axis2-web與axis2-1.6.2-bin.zip中的一致
4、運行如下url ,顯示如下,可以點擊進Services
5、進行webservice文件的編譯:
右鍵項目名稱,點擊new,選擇(回顧第一點的第三個文件,原本eclipse下面是沒有該選項的)
按照步驟,先選擇tomcat下要項目的web-inf\class文件夾,“Include.class file only”應該是勾選狀態,
Next(點選skip Wsdl),
next,
next(此處讓配置xml文件,可以選擇“Generate....”,不用配置,後面介紹幹嘛用的),
next (Outfilelocation:選擇路徑xxx\tomcat\webapps\axis2\web-inf\services,這裏的就是自動將webservice生效文件直接生成到了axis2的目錄下面)
(output File name:填寫webservice的名稱 whinfo),點擊 Finish,完成配置
到xxx\tomcat\webapps\axis2\web-inf\services下面看到一個新的文件whinfo.arr,可以解壓縮,發現其實就是將我們整個項目的class全部壓縮進來了
所以axis2在調用webservice的時候可以說和原項目根本沒有關係,只和webapps/axis2有關 ,原來的項目全被打包放進來了
其中whinfo.arr中有met-inf文件夾下的 service.xml文件,可以進行一些webservice參數的配置,如targetnamespace之類的
以上,全部完成,使用之前一篇的客戶端進行連接,測試ok(可以直接用ie測試,在url後面加上?message=xxxxxxxxxxxxxx)
但是,使用客戶提供的程式確無法連接,參數傳不過來,報arrayindexout錯誤。。。實在無語,搜索很多文章都沒能夠解決
客戶的程式是用axis編寫的,不知道是否和這個有關
之前用C#.NET、VB.net編寫的同樣的webservice也都是,自己測試完全ok,但是客戶的程式一旦調用就收不到參數。。。。。。。。。
可能是webservice的某些參數沒有確認到