與大家共同成長(zhǎng)
本例子的WebService提供了兩個(gè)方法,分別是sayHello和sayHelloToPerson,第一個(gè)只是返回一個(gè)"Hello"字符串,沒(méi) 有參數(shù),第二個(gè)函數(shù)接受一個(gè)字符串作為參數(shù),返回"Hello 參數(shù)值",該例子比較簡(jiǎn)單,但是清楚的說(shuō)明了從編寫代碼到發(fā)布為WebService以及測(cè)試編寫好的WebService全過(guò)程。
服務(wù)代碼提供了兩個(gè)函數(shù),分別為sayHello和sayHelloToPerson,源代碼如下:
要將上邊寫的HelloService類發(fā)布為WebService,需要先搭建Web應(yīng)用。下面是在Tomcat下使用Axis創(chuàng)建WebService服務(wù)的例子。
在該例子中,在Tomcat下創(chuàng)建了一個(gè)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)對(duì)axis進(jìn)行了配置,但是還需要進(jìn)行額外的配置。
復(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文件夾下,也就是說(shuō)在WEB-INF "classes文件夾下的文件夾結(jié)構(gòu)為:com"sinosoft"webservice,在webservice文件夾下有一個(gè) helloservice.class文件。
啟動(dòng)Tomcat服務(wù),打開(kāi)IE瀏覽器,訪問(wèn)地址http:host:port/ws/services,如果看到如下界面就說(shuō)明AXIS部署成功了。
發(fā)布WebService需要使用現(xiàn)有的AdminService來(lái)實(shí)現(xiàn),這里我寫了一個(gè)批處理文件來(lái)發(fā)布WebService,以后如果需要發(fā)布其他文件,只需要修改相應(yīng)的參數(shù)就可以了。
文件deploy.wsdd內(nèi)容如下所示:
批處理文件deploywebservice.bat內(nèi)容如下:
其中E:"Stephen"Lib"axislib是存放axis對(duì)應(yīng)的jar文件的文件夾,現(xiàn)在將所有的jar文件都加入到classpath中進(jìn)行執(zhí)行。
-l后的參數(shù)是本地要發(fā)布WebService的AdminService對(duì)應(yīng)的訪問(wèn)地址。
最后deploy.wsdd是對(duì)應(yīng)的配置文件名稱。
將deploy.wsdd文件和deploywebservice.bat文件復(fù)制到同一個(gè)文件夾下,執(zhí)行deploywebservice.bat批處理文件,就可以將deploy.wsdd中描述的Java類發(fā)布為WebService。發(fā)布完成之后在訪問(wèn)http://host:port/ws/services如下圖所示:
從上圖可以看出,發(fā)布成功后,多了一個(gè)HelloServices的服務(wù)。這樣就說(shuō)明HelloService發(fā)布成功了。
訪問(wèn)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