Axis --SOAP引擎
1. ?SOAP是一個(gè)基于XML的用于應(yīng)用程序之間通信數(shù)據(jù)編碼的傳輸協(xié)議。最初由微軟和Userland Software提出,隨著不斷地完善和改進(jìn),SOAP很快被業(yè)界廣泛應(yīng)用,目前完全發(fā)布版本是1.1。在其發(fā)展過(guò)程中,W3C XML標(biāo)準(zhǔn)工作小組積極促成SOAP成為一個(gè)真正的開(kāi)放標(biāo)準(zhǔn)。在寫(xiě)作此文檔之時(shí),SOAP1.2草案已經(jīng)發(fā)布,1.2對(duì)1.1中相對(duì)混亂的部分做了改進(jìn)。
SOAP被廣泛作為新一代跨平臺(tái)、跨語(yǔ)言分布計(jì)算Web Services的重要部分。
2. 什么是Axis
Axis是Apache組織推出的SOAP引擎,Axis項(xiàng)目是Apache組織著名的SOAP項(xiàng)目的后繼項(xiàng)目,目前最新版本是采用Java開(kāi)發(fā)的1.1版本,C++的版本正在開(kāi)發(fā)之中。Axis v1.1軟件包可以從http://ws.apache.org/axis/dist/1_1/下載得到。
但是Axis不僅僅是一個(gè)SOAP引擎,它還包括:
? ? ?一個(gè)獨(dú)立運(yùn)行的SOAP服務(wù)器
? ? ?一個(gè)servlet引擎的插件,這個(gè)servlet引擎可以是Tomcat
? ? ?對(duì)WSDL的擴(kuò)展支持
? ? ?一個(gè)將WSDL的描述生成JAVA類的工具
? ? ?一些示例代碼
? ? ?還有一個(gè)監(jiān)控TCP/IP包的工具
二、Axis的安裝
應(yīng)用Axis開(kāi)發(fā)Web Services,你需要安裝如下軟件:
1.JDK1.4.2
2.一個(gè)支持Servlet的服務(wù)器引擎,比如廣為人知的Tomcat。
當(dāng)安裝好Tomcat之后,只需將下載的Axis軟件包解壓縮,將其中的“webapps”目錄下的“axis”目錄整個(gè)拷貝到Tomcat安裝目錄下的“webapps”目錄下即可。
三、Axis的配置
Axis基于Java開(kāi)發(fā),可以部署于多種操作系統(tǒng),使用前需要配置一系列的系統(tǒng)變量,在此假定你已經(jīng)在本機(jī)上裝好了Tomcat 4.0以上的版本,需要配置的系統(tǒng)變量如下表所示:
CATALINA_HOME
C:/Tomcat_4_1
(此處應(yīng)為T(mén)omcat的安裝位置,注意路徑名中不要有空格)
AXIS_HOME
%CATALINA_HOME%/webapps/axis
AXIS_LIB
%AXIS_HOME%/lib
AXISCLASSPATH
%AXIS_LIB%/axis.jar;%AXIS_LIB%/commons-discovery.jar; %AXIS_LIB%/commons-logging.jar;%AXIS_LIB%/jaxrpc.jar; %AXIS_LIB%/saaj.jar;%AXIS_LIB%/log4j-1.2.8.jar; %AXIS_LIB%/xml-apis.jar;%AXIS_LIB%/xercesImpl.jar
CLASSPATH 中加入:
%AXIS_LIB%/axis.jar;%AXIS_LIB%/commons-discovery.jar; %AXIS_LIB%/commons-logging.jar;%AXIS_LIB%/jaxrpc.jar; %AXIS_LIB%/saaj.jar;%AXIS_LIB%/log4j-1.2.8.jar; %AXIS_LIB%/xml-apis.jar;%AXIS_LIB%/xercesImpl.jar
四、Axis的測(cè)試
安裝配置完畢后,應(yīng)測(cè)試一下是否Axis可以正確運(yùn)行了。
啟動(dòng)Tomcat服務(wù)器,在瀏覽器中訪問(wèn)http://www.01chengde.cn,如果頁(yè)面顯示有錯(cuò)誤,則需要回頭檢查一下相關(guān)配置是否正確,如果瀏覽頁(yè)面能正確顯示出系統(tǒng)組件、屬性等參數(shù)配置信息,則表示安裝成功。現(xiàn)在可以開(kāi)始開(kāi)發(fā)你的Web Services應(yīng)用了。
五、服務(wù)的發(fā)布
Axis提供了兩種服務(wù)發(fā)布方式,一種是即時(shí)發(fā)布(Instant Deployment),一種是定制發(fā)布(Custom Deployment)。
1. 使用即時(shí)發(fā)布 Java Web Service(JWS)
對(duì)即時(shí)發(fā)布的支持是Axis的特色之一,使用即時(shí)發(fā)布使用戶只需有提供服務(wù)的Java類的源代碼,即可將其迅速發(fā)布成Web服務(wù)。每當(dāng)用戶調(diào)用這類服務(wù)的時(shí)候,Axis會(huì)自動(dòng)進(jìn)行編譯,即使服務(wù)器重啟了也不必對(duì)其做任何處理,使用非常簡(jiǎn)單快捷。
使用即時(shí)發(fā)布首先需要一個(gè)實(shí)現(xiàn)服務(wù)功能的Java源文件,將其擴(kuò)展名改為.jws(Java Web Service的縮寫(xiě)),然后將該文件放到“……/webapps/axis”目錄下即可。
? ? ?在此給出一個(gè)從英里到公里的長(zhǎng)度單位轉(zhuǎn)換的服務(wù),其源碼如下:
文件Distance.jws
public class Distance
{
? ? ?public double convertMile2Kilometre( double mile )
? ? ?{
return mile * 1.609; ? ?//實(shí)現(xiàn)英里到公里的距離轉(zhuǎn)換
? ? ?}
}
將其放到“……/webapps/axis”目錄,通過(guò)訪問(wèn)http://www.01chengde.cn可以看到這個(gè)服務(wù)的WSDL描述文件,這說(shuō)明Distance服務(wù)被成功發(fā)布了。描述的WDSL代碼如下:
<?xml version="1.0" encoding="UTF-8" ?>
- <wsdl:definitions targetNamespace="http://www.jingjingdianying.com" xmlns="http://schemas.xmlsoap.org/wsdl/" ?
? ? xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:impl="http://192.168.0.26:8080/axis/Distance.jws" xmlns:intf="http://192.168.0.26:8080/axis/Distance.jws" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsdl="http://dy.01chengde.cn" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
- <wsdl:message name="convertMile2KilometreRequest">
? ?<wsdl:part name="mile" type="xsd:double" />
? ?</wsdl:message>
- <wsdl:message name="convertMile2KilometreResponse">
? ?<wsdl:part name="convertMile2KilometreReturn" type="xsd:double" />
? ?</wsdl:message>
- <wsdl:portType name="Distance">
- <wsdl:operation name="convertMile2Kilometre" parameterOrder="mile">
? ?<wsdl:input message="impl:convertMile2KilometreRequest" name="convertMile2KilometreRequest" />
? ?<wsdl:output message="impl:convertMile2KilometreResponse" name="convertMile2KilometreResponse" />
? ?</wsdl:operation>
? ?</wsdl:portType>
- <wsdl:binding name="DistanceSoapBinding" type="impl:Distance">
? ?<wsdlsoap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http" />
- <wsdl:operation name="convertMile2Kilometre">
? ?<wsdlsoap:operation soapAction="" />
- <wsdl:input name="convertMile2KilometreRequest">
? ?<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://DefaultNamespace" use="encoded" />
? ?</wsdl:input>
- <wsdl:output name="convertMile2KilometreResponse">
? ?<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://192.168.0.26:8080/axis/Distance.jws" use="encoded" />
? ?</wsdl:output>
? ?</wsdl:operation>
? ?</wsdl:binding>
- <wsdl:service name="DistanceService">
- <wsdl:port binding="impl:DistanceSoapBinding" name="Distance">
? ?<wsdlsoap:address location="http://192.168.0.26:8080/axis/Distance.jws" />
? ?</wsdl:port>
? ?</wsdl:service>
? ?</wsdl:definitions>
轉(zhuǎn)載于:https://blog.51cto.com/7419391/1225031
總結(jié)
以上是生活随笔為你收集整理的Axis --SOAP引擎的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: HandlerThread 类的学习(转
- 下一篇: 【Android开发】构建Android