Apache Axis2 /Java 學習手冊 by 星雲
0x01 什么是Apache Axis2/Java?
Apache Axis2™ 是一個Web Service / SOAP / WSDL引擎,是廣泛使用的Apache Axis SOAP Stack的升級版。
我的理解: Apache Axis2 可以理解成是一個 Web Service 框架,使用它可以高效安全可靠地處理XML 報文消息。
Apache Axis2 Web Service 引擎有兩種實現:
- Abache Axis2 / Java
- Apache Axis2 / C.
我的理解:Apache Axis2 框架有兩種實現,一種用C語言寫的,一種用Java寫的。
0x02 為什么選擇Apache Axis2?
優點:
- 比Axis 1.x 架構更靈活,高效可配置
- Apache Axis2 不僅支持SOAP 1.1和SOAP 1.2 還集成了對Rest 風格的Web Service 的支持
- 比Axis 1.x 更模塊化,更面向XML
功能特點:
- XML解析速度更快
- 低內存占用空間
- 熱部署,將新服務添加到系統而無需關閉服務器
- 異步Web服務,Axis2現在支持使用非阻塞客戶端和傳輸的異步Web服務和異步Web服務調用
- WSDL 支持,Web服務描述語言版本1.1 和2.0
- ...
我的理解:Apache Axis2 比Apache Axis 更好更優秀
0x03 安裝指南
系統要求:
基本上應該都滿足,
- JDK 1.5+
- Ant 1.6.5+
- Maven 2.0.7 +
Apache Axis2 可以作為獨立服務器安裝,也可以作為J2EE兼容servlet容器的一部分安裝
我的理解:
Apache Axis2 可以將axis2.war 包放到自己安裝包目錄的webapps 目錄下運行
也可以將axis2.war 包放到 Tomcat 等 Servlet 容器中的webapps 目錄下運行
下載官網地址:http://axis.apache.org/axis2/java/core/download.html
1. 使用標准二進制分發將Axis2安裝為獨立服務器
假設我們已經安裝好JDK 1.5 以上版本的JDK
1.1 打開上面的下載地址,然后點擊圖中所示的二進制下載超鏈接
1.2 解壓
我們下載Apache Axis2 的二進制文件,下載解壓后如圖所示:
1.2 配置環境變量
我的電腦——屬性——環境變量
新建環境變量配置如下:
AXIS2_HOME
C:\app\axis2\axis2-1.7.9
Path路徑追加:
%AXIS2_HOME%\bin\
1.3 啟動 Apache Axis2 Standalone Server
Windows 操作系統下輸入命令
axis2server.bat
Unix操作系統下輸入命令:
axis2server.sh
啟動成功后,
打開瀏覽器
http://127.0.0.1:8080/axis2/services/
可以看到:
我的理解:通過訪問這個url地址我們可以看到當前axis2附帶的默認Web Service
當我們點擊上圖中的Version 超鏈接,它會跳轉到這個鏈接
http://127.0.0.1:8080/axis2/services/Version?wsdl
可以看到這個Web Service 的描述信息詳情如下圖所示:
2. 構建Axis2 Web應用程序(axis2.war)
我們打開安裝目錄,可以看到這樣的目錄結構
接下來我們需要使用ant 構建工具,將這些文件打包成axis2-web.war
首先呢,我們需要下載Ant https://ant.apache.org/bindownload.cgi
下載解壓后如下所示:
配置環境變量:
ANT_HOME
C:\app\ant\apache-ant-1.10.5
添加到Path 路徑下:
%ANT_HOME%\bin\
打開Power Shell 或者CMD 命令行輸入以下命令
ant -version
配置成功后可以看到回顯效果如下所示:
輸入構建命令
ant create.war
我們可以在安裝目錄的dist 目錄下找到生成的axis2.war
其次所有的模塊和Service 會打包到repository文件夾下
Axis2 腳本命令說明
接下來我們講解下這個目錄下的一些腳本的用法和功能
C:\Apps\axis2\axis2-1.7.9\bin
截圖如下所示:
腳本名稱 | 描述 |
axis2.{bat|sh} | 此腳本可以運行使用Axis2編寫的Web Service客戶端。在為Axis2依賴庫(AXIS2_HOME/lib中存在 * .jar文件)添加類路徑,設置Axis2存儲庫位置(AXIS2_HOME / repository)和設置Axis2配置文件位置(AXIS2_HOME/conf)后,此腳本調用“java”命令/axis2.xml)為你。有了這個,您可以放心設置所有上述Axis2特定參數。 用法:axis2.{sh.bat} [-options] class [args...] |
axis2server.{sh|bat} | 此腳本將使用AXIS2_HOME/repository作為Axis2存儲庫並將AXIS2_HOME/conf/axis2.xml作為Axis2配置文件啟動獨立的Axis2服務器。這將啟動AXIS2_HOME/conf/ axis2.xml中列出的所有傳輸偵聽器。 例如,如果要使用獨立的Axis2服務器部署服務,請將服務存檔復制到AXIS2_HOME/repository/services目錄。接下來,轉到AXIS2_HOME/conf/axis2.xml的“Transport Ins”部分並配置傳輸接收器(默認情況下列出端口8080中的simpleHttpServer)。然后調用此腳本。 通過 在命令行中添加-xdebug選項,可以在調試模式下啟動服務器。然后可以通過連接到端口8000來連接遠程調試器。 |
wsdl2java.{bat|sh} | 此腳本根據給定的WSDL文件生成Java代碼,以處理Web服務調用(client-side stubs)。此腳本還能夠根據給定的WSDL生成Web服務框架。 用法:wsdl2java.{sh|bat} [OPTION]... -uri <Location of WSDL> 例如,wsdl2java.sh -uri ../wsdl/Axis2Sample.wsdl 有關此腳本的更詳細參考可在此處找到 |
java2wsdl.{bat|sh} | 此腳本為給定的Java類生成適當的WSDL文件。 用法:Java2WSDL.{sh|bat} [OPTION]... -cn <fully qualified class name> 例如,Java2WSDL.sh -cn ../samples/test/searchTool.Search 有關此腳本的更詳細參考可在此處找到 |
在Servlet容器中安裝Axis2
無論哪個發行版,在符合J2EE的servlet容器中安裝Axis2如下:
我的理解:
1. Axis2 構件War 文件有兩種方式,一種是使用命令ant create.war 構建war 包,就像剛才我們生成axis2.war 一樣。另外一種是解壓axis2.war 修改源代碼,然后構建war 包。
2. 將*.war 文件放到 web 容器的webapps 文件夾中,比如復制剛才生成的axis2.war 放到tomcat 的webapps 中,大多數web 容器可以自動安裝,有些需要重啟web 容器。
3.一旦war安裝成功后,我們就可以通過瀏覽 http://<host :port>/axis2 訪問頁面如下所示
比如我用的tomcat,端口是8014端口,瀏覽器打開地址:
http://localhost:8014/axis2/
點擊Services 超鏈接,查看此服務器中部署的所有可用服務的列表。
http://localhost:8014/axis2/services/listServices
點擊Validate 超鏈接,檢查系統以查看是否所有必需的庫都已就位並查看系統信息。
http://localhost:8014/axis2/axis2-web/HappyAxis.jsp
點擊 Administration 超鏈接,用於管理此Axis2安裝的控制台。
我的理解:這里Axis2 就像我們熟悉的Tomcat 一樣也有一個web控制台,
這個賬號密碼是%AXIS2_HOME%\conf\ axis2.xml 中配置的
默認賬號:admin, 默認密碼axis2 這個密碼最好修改,否則極為不安全
除此之外,這個配置文件還可以修改axis2 獨立服務器的端口號,默認是8080端口
<transportReceiver name="http" class="org.apache.axis2.transport.http.SimpleHTTPServer"> <parameter name="port">8080</parameter>
登陸成功后我們可以看到如下界面
上傳 Service
上傳的.aar文件將存儲在默認服務目錄中。對於Axis2,這將是<webapps> / axis2 / WEB-INF / services目錄。上傳服務后,將立即安裝。
由於Axis2支持熱部署,因此您可以通過文件系統將服務存檔直接刪除到上述服務目錄。它還將導致服務自動安裝,而不會重新啟動容器。
使用Maven 構建WAR
1. 配置並安裝Maven項目
2. 新建一個maven web app 項目
由於這個模板是早期的Maven 模板,所以完成后,Build Path-----> 修改JRE 1.5 為JDK 1.8,這樣目錄結構就會自動生成
3. 下載axis2.war 模板引擎文件
http://axis.apache.org/axis2/java/core/download.html
復制axis2.war 解壓的源碼文件到項目的webapp 目錄下
使用maven install 命令構建*.war 包,執行成功后將會在target 文件夾下找到*.war
然后我們將這個axis2-helloworld-sample.war 包復制到 tomcat 的webapps 目錄下,啟動我們的tomcat
startup
前提:Tomcat 配置好環境變量,輸入startup 才會啟動startup.bat 或者startup.sh 腳本,啟動我們的tomcat
訪問URL地址:
http://localhost:8014/axis2-helloworld-sample/
訪問成功后如圖所示: