AXIS2架構下另一種發布WEBSERVICE的方法,以及瀏覽器中驗證的方法及參數的寫法

來源:互聯網
上載者:User

http://blog.csdn.net/ccccdddxxx/article/details/8587160

這篇文章中寫出了發布WEBSERVICE的一種形式,以及利用架構自動產生的webservice用戶端的發布。

下面是在AXIS2架構下另一種發布WEBSERVICE的方法

1、編寫一個簡單的WebService的伺服器端代碼,代碼如下:

import java.util.Random;/** * function: WebService HelloWorld服務樣本 * @author hoojo * @createDate 2011-1-5 下午03:35:06 * @file HelloWorldService.java * @package com.hoo.service * @project Axis2WebService * @blog http://blog.csdn.net/IBM_hoojo * @email hoojo_@126.com * @version 1.0 */public class HelloWorldService {public String sayHello(String name) {return name + " say: hello [axis2]";}public int getAge(int i) {return i + new Random().nextInt(100);}}

注意,上面的HelloWorldService是沒有package的。Copy這個類的class檔案,放到tomcat目錄下的webapps的axis2的WEB-INF目錄的pojo檔案夾下。

如果沒有pojo這個目錄就手動建立一個一個檔案夾。然後在瀏覽器輸入:http://localhost:8080/axis2/

點擊Services的連結就可以看到我們手動發布的HelloWorldService了,或者是瀏覽器地址欄輸入:http://localhost:8080/axis2/services/listServices

你就可以看到你剛才粘貼過去的這個WebService了。

點選連結就可以看到wsdl檔案的內容了。內容很多,如果你看過axis1.x的介紹就知道wsdl檔案的大致結構了。

下面講解下為什麼要將class放在pojo檔案夾下。首先我們看看[tomcat_home]/webapps/axis2/WEB-INF/conf/axis2.xml

該檔案中有這樣一行代碼:

<deployer extension=".class" directory="pojo" class="org.apache.axis2.deployment.POJODeployer"/>

.class的尾碼檔案放在目錄pojo目錄下。

2、測試這個WebService的方法

複製上面的HelloWorldService的連結地址,然後帶上方法名稱和參數值即可測試調用是否成功。如下:

http://localhost:8080/axis2/services/HelloWorldService/sayHello?name=jack

http://localhost:8080/axis2/services/HelloWorldService這個是WebService的地址

/sayHello是方法名稱,?name=jack是參數名稱和值

在瀏覽器中輸入上面的地址後,可以看到如下效果:

可以看到傳回值,和方法名稱。ns:sayHelloResponse是方法名稱,所有的方法名稱後都會帶上Response,後面的ns當然是當前方法所在的類的包名了,

這裡沒有package就是預設的axis2的網域名稱。同樣,getAge方法,也是一樣的調用方法。

http://localhost:8080/axis2/services/HelloWorldService/getAge?i=22

結果如下:

這裡需要注意有有在瀏覽器中輸入的URL地址

在本人按照上述實驗時按照上面提供的URL地址寫是不對的

如所示:

重點在於,參數的名稱要與WDSL檔案的參數名稱是相對應的,這裡我產生的WDSL檔案看到

如可以看到name  對應的參數名稱應該是args0,以及getAge對應的參數也是args0

這樣就成功了,

其實重點還是看WDSL檔案

好了,今天就寫到這,討論沒完,下篇文章接著說

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.