與大家共同成長
本例子的WebService提供了兩個方法,分別是sayHello和sayHelloToPerson,第一個只是返回一個"Hello"字符串,沒 有參數(shù),第二個函數(shù)接受一個字符串作為參數(shù),返回"Hello 參數(shù)值",該例子比較簡單,但是清楚的說明了從編寫代碼到發(fā)布為WebService以及測試編寫好的WebService全過程。
服務(wù)代碼提供了兩個函數(shù),分別為sayHello和sayHelloToPerson,源代碼如下:
要將上邊寫的HelloService類發(fā)布為WebService,需要先搭建Web應(yīng)用。下面是在Tomcat下使用Axis創(chuàng)建WebService服務(wù)的例子。
在該例子中,在Tomcat下創(chuàng)建了一個context path為ws的WEB應(yīng)用。
1. 在Tomcat的webapps下創(chuàng)建如下文件系統(tǒng)
ws
WEB-INF
lib
classes
2. 在WEB-INF文件夾下創(chuàng)建web.xml文件,該文件的內(nèi)容如下:
在上面的web.xml中主要是配置了axis的相關(guān)配置。
在上述的web.xml文件中已經(jīng)對axis進行了配置,但是還需要進行額外的配置。
復(fù)制axis相關(guān)的jar文件
將axis的相關(guān)jar文件復(fù)制到WEB-INF"lib文件夾下。這些文件包括:
activation.jar axis.jar axis-ant.jar axis-schema.jar commons-discovery-0.2.jar commons-logging-1.0.4.jar jaxrpc.jar log4j-1.2.8.jar mailapi.jar saaj.jar wsdl4j-1.5.1.jar xmlsec-1.3.0.jar
復(fù)制WebService服務(wù)主文件
將HelloService.java編譯后的class文件復(fù)制到WEB-INF"classes文件夾下,也就是說在WEB-INF "classes文件夾下的文件夾結(jié)構(gòu)為:com"sinosoft"webservice,在webservice文件夾下有一個 helloservice.class文件。
啟動Tomcat服務(wù),打開IE瀏覽器,訪問地址http:host:port/ws/services,如果看到如下界面就說明AXIS部署成功了。
發(fā)布WebService需要使用現(xiàn)有的AdminService來實現(xiàn),這里我寫了一個批處理文件來發(fā)布WebService,以后如果需要發(fā)布其他文件,只需要修改相應(yīng)的參數(shù)就可以了。
文件deploy.wsdd內(nèi)容如下所示:
批處理文件deploywebservice.bat內(nèi)容如下:
其中E:"Stephen"Lib"axislib是存放axis對應(yīng)的jar文件的文件夾,現(xiàn)在將所有的jar文件都加入到classpath中進行執(zhí)行。
-l后的參數(shù)是本地要發(fā)布WebService的AdminService對應(yīng)的訪問地址。
最后deploy.wsdd是對應(yīng)的配置文件名稱。
將deploy.wsdd文件和deploywebservice.bat文件復(fù)制到同一個文件夾下,執(zhí)行deploywebservice.bat批處理文件,就可以將deploy.wsdd中描述的Java類發(fā)布為WebService。發(fā)布完成之后在訪問http://host:port/ws/services如下圖所示:
從上圖可以看出,發(fā)布成功后,多了一個HelloServices的服務(wù)。這樣就說明HelloService發(fā)布成功了。
訪問http://host:port/ws/services/HelloServices?wsdl可以看到如下wsdl的內(nèi)容:
下面是用Java調(diào)用剛發(fā)布的WebService例子。
Copyright @ 小菜毛毛 Powered by: .Text and ASP.NET Theme by: .NET Monster