Axis2 POJO实现WebService(一)发布
一、Axis2的下載和安裝
??? 讀者可以從如下的網址下載Axis2的最新版本:
??? http://ws.apache.org/axis2/
??? 下載: axis2-1.6.2-bin;
?
二、編寫和發布WebService
1)新建一個POJO:
1 /** 2 * @author damon.huang 3 * 4 */ 5 public class SimpleService 6 { 7 public String getGreeting(String name) 8 { 9 return "Hello: " + name; 10 } 11 public int getPrice() 12 { 13 return new java.util.Random().nextInt(1000); 14 } 15 16 17 }在SimpleService類中有兩個方法,由于這兩個方法都是public方法,因此,它們都將作為WebService方法被發布。
??? 編譯SimpleService類后,將SimpleService.class文件放到tomcat\webapps\axis2\WEB-INF\pojo目錄中(如果沒有pojo目錄,則建立該目錄)。現在我們已經成功將SimpleService類發布成了WebService。在瀏覽器地址欄中輸入如下的URL:(無須重啟tomcat)
http://localhost:8080/axis2/services/listServices
??? 這時當前頁面將顯示所有在Axis2中發布的WebService,如圖所示。
?
三、網頁調用測試
在瀏覽器地址欄中輸入如下的兩個URL來分別測試getGreeting和getPrice方法:
http://localhost:8080/axis2/services/SimpleService/getGreeting?args0=bill(注意:這里的args0是根據(點擊SimpleService)http://localhost:8080/axis2/services/SimpleService?wsdl自動生成的節點參數)
http://localhost:8080/axis2/services/SimpleService/getPrice
?圖1和圖2分別顯示了getGreeting和getPrice方法的測試結果。
?
圖1
圖2
?
在編寫、發布和測試0配置的WebService時應注意如下幾點:
????1.?POJO類不能使用package關鍵字聲明包。
????2.?Axis2在默認情況下可以熱發布WebService,也就是說,將WebService的.class文件復制到pojo目錄中時,Tomcat不需要重新啟動就可以自動發布WebService。如果想取消Axis2的熱發布功能,可以打開tomcat\webapps\axis2\WEB-INF\conf\axis2.xml,找到如下的配置代碼:
<parameter?name="hotdeployment">true</parameter>????將true改為false即可。要注意的是,Axis2在默認情況下雖然是熱發布,但并不是熱更新,也就是說,一旦成功發布了WebService,再想更新該WebService,就必須重啟Tomcat。這對于開發人員調試WebService非常不方便,因此,在開發WebService時,可以將Axis2設為熱更新。在axis2.xml文件中找到<parameter name="hotupdate">false</parameter>,將false改為true即可。
????3.?在瀏覽器中測試WebService時,如果WebService方法有參數,需要使用URL的請求參數來指定該WebService方法參數的值,請求參數名與方法參數名要一致,例如,要測試getGreeting方法,請求參數名應為name,如上面的URL所示。
????4.?發布WebService的pojo目錄只是默認的,如果讀者想在其他的目錄發布WebService,可以打開axis2.xml文件,并在<axisconfig>元素中添加如下的子元素:
????<deployer?extension=".class"?directory="my"?class="org.apache.axis2.deployment.POJODeployer"/>????上面的配置允許在tomcat\webapps\axis2\WEB-INF\my目錄中發布WebService。例如,將本例中的SimpleService.class復制到my目錄中也可以成功發布(但要刪除pojo目錄中的SimpleService.class,否則WebService會重名)
?
轉載于:https://www.cnblogs.com/damonhuang/archive/2013/05/27/3102056.html
總結
以上是生活随笔為你收集整理的Axis2 POJO实现WebService(一)发布的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 传雅虎有意收购Hulu 竞争者达6家
- 下一篇: HDOJ 1171 Big Event