一.簡介
什么是SOAP?SOAP是一個應用程序間的基于XML的通信工具和規范.SOAP最初由MicroSoft和Userland公司開發,已經演化了好幾個版本,當前的版本SOAP1.1正飛速發展.W3C的XML協議工作組正努力把它發展為一個真正的開發的標準.SOAP1.2草案已經發布,它能澄清 1.1版規范的容易混淆的地方.
什么是Axis?Axis總體上是一個SOAP引擎,但又不僅僅是個引擎,它還:1)是一個簡單的獨立的服務器2)是一個可插入到servlet引擎(如Tomcat)中的服務3)可擴展的支持WSDL4)能根據WSDL產生JAVA文件/類5)包括一些例子程序6)包括一個可以監控TCP/IP包的工具
Axis起源于IBM的SOAP4J,是Apache SOAP的第三代產品,相對于以前的版本,它有如下特性:1)快速,它使用了基于事件的SAX解析機制.2)靈活,用戶可以靈活定制擴展.3)穩定,接口將會變動很小.4)基于組件開發.5)支持WSDL1.1
二.準備
應用Axis開發Web Services,你需要安裝如下軟件:
1.jdk1.5
2.安裝Tomcat5.0.28,這是當前穩定版本.Tomcat運行在80端口.訪問
http://localhost/8080
檢查Tomcat是否安裝成功.
3.下載AXIS:
官方站點:http://xml.apache.org/axis/index.html
下載軟件:axis-bin-1_2_1.tar.gz
4.下載相關包:
a.mail.jar 下載地址:http://java.sun.com/products/javamail
b.activation.jar 下載地址:http://java.sun.com/products/javabeans/glasgow/jaf.html
c.xerces.jar 下載地址:http://xml.apache.org/xerces-j/index.html
d.xmlsec-1.2.1.jar 下載地址:http://xml.apache.org/security/
三.安裝
1.將jdk1.5.0_04安裝在D:\jdk1.5.0_04下(當然安裝路徑可任意選)好后,環境變量配置如下:
JAVA_HOME=D:\jdk1.5.0_04
CLASSPATH=.;D:\jdk1.5.0_04\jre\lib\rt.jar;D:\jdk1.5.0_04\jre\lib\tools.jar
Path=D:\jdk1.5.0_04\bin
2.tomcat-5.0.28安裝在D:\tomcat-5.0.28下(安裝路徑可任選)好后,環境變量配置如下:
CATALINA_BASE=D:\tomcat-5.0.28
CATALINA_HOME=D:\tomcat-5.0.28
3.axis的安裝
a.將下載的Axis軟件包解壓縮,將其中的“webapps”目錄下的“axis”目錄整個拷貝到Tomcat安裝目錄下的“webapps”目錄下。
b.將mail.jar、activation.jar、xerces.jar、xmlsec-1.2.1.jar四個包,全部拷到D:\tomcat-5.0.28\webapps\axis\WEB-INF\lib下
c.環境變量配置
AXIS_HOME=D:\tomcat-5.0.28
AXIS_LIB=%AXIS_HOME%\WEB-INF\lib
AXISCLASSPATH=%AXIS_LIB%\activation.jar;%AXIS_LIB%\axis.jar;%AXIS_LIB%\axis-ant.jar;%AXIS_LIB%\commons-discovery-0.2.jar;%AXIS_LIB%\commons-logging-1.0.4.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_LIB%\mail.jar;AXIS_LIB%\wsdl4j-1.5.1.jar;%AXIS_LIB%\xerces.jar;%AXIS_LIB%\xmlsec-1.2.1.jar
CLASSPATH=%AXIS_HOME%\WEB-INF\lib
AXISCLASSPATH=%AXIS_LIB%\activation.jar;%AXIS_LIB%\axis.jar;%AXIS_LIB%\axis-ant.jar;%AXIS_LIB%\commons-discovery-0.2.jar;%AXIS_LIB%\commons-logging-1.0.4.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_LIB%\mail.jar;AXIS_LIB%\wsdl4j-1.5.1.jar;%AXIS_LIB%\xerces.jar;%AXIS_LIB%\xmlsec-1.2.1.jar
這里有幾點需要注意:中間不要有空格,包的名字可能有不同的版本,這時需要修改一下包名。
四.測試
安裝配置完畢后,應測試一下是否tomcat、Axis可以正確運行了。
啟動Tomcat服務器,在瀏覽器中訪問
http://localhost:8080/axis/happyaxis.jsp
,如果頁面顯示有錯誤,則需要回頭檢查一下相關配置是否正確,如果瀏覽頁面能正確顯示出系統組件、屬性等參數配置信息,則表示安裝成功。現在可以開始開發你的Web Services應用了。
五、服務的發布
Axis提供了兩種服務發布方式,一種是即時發布(Instant Deployment),一種是定制發布(Custom Deployment)。
1. 使用即時發布 Java Web Service(JWS)
對即時發布的支持是Axis的特色之一,使用即時發布使用戶只需有提供服務的Java類的源代碼,即可將其迅速發布成Web服務。每當用戶調用這類服務的時候,Axis會自動進行編譯,即使服務器重啟了也不必對其做任何處理,使用非常簡單快捷。
使用即時發布首先需要一個實現服務功能的Java源文件,將其擴展名改為.jws(Java Web Service的縮寫),然后將該文件放到“……\webapps\axis”目錄下即可。
?在此給出一個HelloWorld程序,其源碼如下:
HelloWorld.java
public class HelloWorld {
? public String sayHello()
? {
??? return "HELLO WORLD!";
? }
}
將其放到“……\webapps\axis”目錄,通過訪問
http://localhost:8080/axis/HelloWorld.jws?wsdl
可以看到這個服務的WSDL描述文件,這說明HelloWorld服務被成功發布了。
現在寫個客戶端程序訪問一下:

?2

?3

?4

?5

?6

?7

?8

?9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

?
下面我們介紹第二種發布方式,這是常用的。
我們的第二種發布方式:
1、將HelloWorld.java編譯成HelloWorld.class,放到%TOMCAT_HOME%\webapps\axis\WEB-INF\classes
????? 下
2、在%TOMCAT_HOME%\webapps\axis\WEB-INF下新建deploy.wsdd文件,即SOAP服務發布描述文件
???? deploy.wsdd
<deployment xmlns="
http://xml.apache.org/axis/wsdd/
" xmlns:java="
http://xml.apache.org/axis/wsdd/providers/java
">
??? <service name="HelloWorld" provider="java:RPC">
??????? <parameter name="className" value="HelloWorld"/>
??????? <parameter name="allowedMethods" value="sayHello"/>
??? </service>
</deployment>
在DOS下轉換目錄到%TOMCAT_HOME%\webapps\axis\WEB-INF,命令:
java org.apache.axis.client.AdminClient deploy.wsdd 后會出現
Processing file deploy.wsdd
<Admin>Done processing</Admin>
這時你會發現目錄下多了一個server-config.wsdd文件,這就是AXIS的配置文件,以后所有的服務發布描述都會在里面找到。(當然,你可以直接修改它,不用再寫deploy.wsdd)然后打開瀏覽器 http://localhost:8080/axis/services/HelloWorld?wsdl ,你就會看到你的服務已發布
同樣用客戶端程序訪問一下:(注意和上邊的差別!!)
?

?2

?3

?4

?5

?6

?7

?8

?9

10

11

12

13

14

15

16

17

18

19

20

21

22

?
五.總結
Web Services是未來網絡應用的發展方向,SOAP和WSDL是Web Services的核心協議,Axis給出了一個很好的SOAP實現,它使得開發Web Services應用變得輕松而有趣。
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
