[start]學(xué)習(xí)web service編程 2006年4月28日 劉濤(LiuTao.PRC@gmail.com)1.? 通過(guò)IBM網(wǎng)站上的簡(jiǎn)單例子建立感性認(rèn)識(shí)應(yīng)用AXIS開(kāi)始Web 服務(wù)之旅1.1 Web Service服務(wù)端開(kāi)發(fā)編寫(xiě)Hello.java,內(nèi)容如下:
將文件改名為Hello.jws,并拷貝到AXIS應(yīng)用目錄%AXIS_HOME%\下。測(cè)試該Web服務(wù):打開(kāi)瀏覽器并輸入http://localhost:8080/axis/Hello.jws ,瀏覽器顯示如下結(jié)果:
到此我們已經(jīng)完成了hello的Web服務(wù)了,那我們?cè)趺锤嬖V用戶(hù)如何來(lái)使用該服務(wù)呢?我們只需要告訴用戶(hù)我們的Web服務(wù)的URL地址: http://localhost:8080/axis/Hello.jws?wsdl 就可以了!下一節(jié)我們將介紹如何通過(guò)這個(gè)地址來(lái)訪問(wèn)對(duì)應(yīng)的Web服務(wù)。1.2 Web Service客戶(hù)端開(kāi)發(fā)1.2.1 JAVA客戶(hù)端使用AXIS的工具將使Web服務(wù)的訪問(wèn)和我們之前介紹的創(chuàng)建一個(gè)Web服務(wù)一樣的簡(jiǎn)單。我們前面安裝的AXIS環(huán)境中已經(jīng)包含著這樣的工具,它是一個(gè)JAVA類(lèi),類(lèi)名為:org.apache.axis.wsdl.WSDL2Java。打開(kāi)命令行窗口,轉(zhuǎn)到AXIS目錄下的WEB-INF子目錄。確保Tomcat服務(wù)已經(jīng)處于啟動(dòng)狀態(tài),鍵入命令 :
該命令執(zhí)行的結(jié)果是在當(dāng)前所在目錄下產(chǎn)生一個(gè)子目錄 localhost/axis/Hello_jws,該目錄下有四個(gè)JAVA源文件,它們分別是: Hello.java 定義了Web服務(wù)接口,此例中只有一個(gè)hello方法。HelloService.java 定義了用于獲取Web服務(wù)接口的方法。 HelloServiceLocator.java 接口HelloService的具體實(shí)現(xiàn)。HelloSoapBindingStub.java Web服務(wù)客戶(hù)端樁,通過(guò)該類(lèi)與服務(wù)器交互。
這四個(gè)JAVA類(lèi)幫我們處理了大部分的邏輯,我們需要的僅僅是把這些類(lèi)加到我們的項(xiàng)目然后創(chuàng)建一個(gè)我們自己的類(lèi)來(lái)調(diào)用它們即可。為此我們新加一個(gè)類(lèi)Main.java,為了方便,讓這個(gè)類(lèi)與剛產(chǎn)生的四個(gè)類(lèi)都在同一個(gè)包下。內(nèi)容如下:
使用以下命令進(jìn)行編譯:
如果編譯沒(méi)有問(wèn)題的話執(zhí)行該測(cè)試程序:
在WSDL2Java工具自動(dòng)產(chǎn)生的幾個(gè)類(lèi)中,類(lèi)HelloServiceLocator中保存這一些跟服務(wù)器相關(guān)的信息,例如URL地址等,當(dāng)服務(wù)器的地址更改后但是服務(wù)并沒(méi)有改動(dòng)的時(shí)候直接修改該文件中的字符串定義,而無(wú)需重新生成這幾個(gè)類(lèi)。具體需要修改的內(nèi)容,打開(kāi)該文件便可一目了然。1.2.2 VC客戶(hù)端參見(jiàn)IBM的原貼。2. Web服務(wù)的定義:A Web service is a software system designed to support interoperable machine-to-machine interaction over a network. It has an interface described in a machine-processable format (specifically WSDL). Other systems interact with the Web service in a manner prescribed by its description using SOAP messages, typically conveyed using HTTP with an XML serialization in conjunction with other Web-related standards.From:W3C 1.4 What is a Web service?3. 閱讀Axis Developer's Guide(下載的Axis包內(nèi)/docs/developers-guide.html)讀到一條關(guān)于代理上網(wǎng)的信息,或許以后有用,先記一筆。If you access the internet via a proxy server, you'll need to set an environment variable so that the Axis tests do the same. Set ANT_OPTS to, for example:
?