`
tenn
  • 浏览: 572350 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
文章分类
社区版块
存档分类
最新评论

Apache Axis2(java web service)备忘记

阅读更多

Axis2 增強舊版 Axis 的效能, 加入模組化及使其更面向 XML,
Axis2 設計成更容易嵌入 如 security 及其他可靠模組. 官方網站有更詳細的說明.

Web service 其運作原理如下 (下圖引用官方網站簡介):
  +--------------------------------------+
  |         web service registry         
  |         (aka service broker)          
  |                (UDDI)                         
  +--------------------------------------+
         ^                            ^
         |                              |
   (2) |                               | (1)
         |  (the client             (the web service
       WSDL  finds the           WSDL  provider publishes
         |   service                  the web service)
         |   they want)             | 
         |                              |
         v                              v
   +-----------+                +-----------+
   | service     |<--SOAP-->|  service    |
   | requestor |                 |  provider   |
   +-----------+     (3)       +-----------+

(1) 發佈 Web Service.
(2) 尋找已發佈的 Web Service.
(3) 通過 SOAP 互相溝通.
(1) 及 (2) 均為 optional.

WSDL -- Web Services description Language. WSDL 描述 web service 的功能.
UDDI -- Universal Description, Discovery and Integration. 發佈 web service 的協定.
SOAP -- Simple Object Access Protocol. SOAP 通過 HTTP 傳送 XML message.

下面將對Axis2 作最簡單的實作 Hello World.

開始備忘記:

安裝Tomcat 5.x.  ( 亦可選擇使用 Axis2 提供的 SimpleHTTPServer )
http://apache.seekmeup.com/tomcat/tomcat-5/v5.5.17/bin/apache-tomcat-5.5.17.exe
下載後直接安裝到目錄 D:\tomcat
由於本人電腦安裝了幾個 tomcat , 故把 port設為8083 ( 預設port是8080 )
http://localhost:8083/ 測試是否安裝成功.

下載 axis2-std-1.0-bin.zip 並解壓到 D:\axis2
http://ws.apache.org/axis2/download.cgi
http://www.reverse.net/pub/apache/ws/axis2/1_0/axis2-std-1.0-bin.zip

設定系統環境變數 AXIS2_HOME=D:\axis2

下載 axis2.war :
http://ws.apache.org/axis2/download.cgi
http://mirrors.isc.org/pub/apache/ws/axis2/1_0/axis2.war

將 axis2.war 放進 D:\tomcat\webapps 目錄下.
啟動 tomcat 就會自動產生 D:\tomcat\webapps\axis2

瀏覽 http://localhost:8083/axis2/ , 畫面如下:

Services -- 觀看已 desploy 的 web services.
Validate -- 確定系統是否缺少 必要的library.
Administration -- axis2 管理控制台.

點選 Administration 連結進入控制台登入介面, 輸入
User : admin
Password : axis2

上面用戶及密碼為預設值,
可到 D:\tomcat\webapps\axis2\WEB-INF\conf\axis2.xml 修改 用戶名及密碼.
<parameter name="userName" locked="false">admin</parameter>
<parameter name="password" locked="false">axis2</parameter>

登入後畫面如下:


安裝 Axis2 Service Archive & Code Generator Eclipse plug in(使用上發生問題):
下載 Eclipse WTP:
http://www.eclipse.org/webtools/
http://www.eclipse.org/downloads/download.php?file=/webtools/downloads/drops/R-1.5.0-200606281455/wtp-all-in-one-sdk-R-1.5.0-200606281455-win32.zip
解壓至 D:\eclipse_wtp

下載 Axis2_Service_Archiver.zip 及 Axis2_Code_Generator.zip
http://ws.apache.org/axis2/tools/index.html
http://mirrors.combose.com/apache/ws/axis2/tools/1_0/Axis2_Service_Archiver.zip
http://apache.edgescape.com/ws/axis2/tools/1_0/Axis2_Code_Generator.zip
解壓後 將 plugins 目錄複製至 D:\eclipse_wtp\plugins

測試 Axis2 Web Service:
編寫 Axis2 Web Service 主要需要4個步驟:
[1] 編寫實作類別.
[2] 編寫 services.xml 描述 Web Services 檔案.
[3] 建立 Web Services *.aar archive (Axis Archive)
[4] 最後發佈 Web Services.

使用 Eclipse 建立 Project:
Eclipse: File -> New -> Java Project
Project Name: HelloWorldService -> Finish

[1] 建立 HelloWorldService class:
-------------- HelloWorldService.java -----------------
package test.joeyta;
public class HelloWorldService {
 public String echo(String value) {    // 這個 service 只是將輸入的文字 return 出去
  System.out.println("Service HelloWorldService: " + value);
  return value;
 }
}
-------------- HelloWorldService.java -----------------

[2] 新增目錄 D:\eclipse_wtp\HelloWorldService\META-INF
建立 service descriptor 檔案 D:\eclipse_wtp\HelloWorldService\META-INF\services.xml:
--------------------- services.xml --------------------------
<service>
 <parameter name="ServiceClass"
          locked="false">test.joeyta.HelloWorldService</parameter>
 <operation name="echo">
  <messageReceiver class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/>
 </operation>   
</service>
--------------------- services.xml --------------------------

<parameter name="ServiceClass" locked="false">test.joeyta.HelloWorldService</parameter>
描述 service class. 這裡要包含 package,
<operation name="echo">
描述 此 Service 提供的服務.

Eclipse 裡的 project 如下所示:


[3] 建立 Axis2 service archive:
在 Eclipse 裡 right click "HelloWorldService" project
選 Export -> JAR file
Select the resource to export: 點擇 HelloWorldService 裡的 services.xml 及 test.joeyta package
JAR file: D:\eclipse_wtp\workspace\HelloWorldService.aar
然後按 Finish, 就會產生 D:\eclipse_wtp\workspace\HelloWorldService.aar
設定如下圖所示:

[4] 上載 Axis2 Service:
Axis2 Administration 登陸後 選擇 Upload Service 連結:
http://localhost:8083/axis2/axis2-admin/upload
然後選擇瀏覽 D:\eclipse_wtp\workspace\HelloWorldService.aar
按 upload 後, 點選 Available Services 就會看到如下所示:


在上圖中點選 HelloWorldService 連結就會看到該 service 的 WSDL:
http://localhost:8083/axis2/services/HelloWorldService?wsdl

如果檢視 WSDL 時出現 (internal server error page) :
即檢視 WSDL: http://localhost:8083/axis2/services/HelloWorldService?wsdl
出現 Provider org.apache.xalan.processor.TransformerFactoryImpl not found 等信息.
請到 http://www.apache.org/dist/java-repository/xalan/jars/
下載 xalan-2.7.0.jar
把它放在 D:\tomcat\webapps\axis2\WEB-INF\lib 下就能解決.


建立 Client 測試程式:
Eclise: File -> New -> Java Project
Project name: HelloWorldClient
按 Finish 就產生 HelloWorldClient project
點擊 HelloWorldClient 右鍵選 Properties
然後選擇 Java Build Path,
Source:
Source folders on build path: 新增 src 目錄
Default output folder: HelloWorldClient/bin
如下圖所示:

Library:
按 Add External JARs 新增所有 D:\axis2\lib 裡的 jar libraries.

使用 WSDL2JAVA 產生 stub classes:
由於測試時 Eclipse Axis2 Code Generator plugin 出問題,
故只好在 DOS command prompt 用手工輸入產生.

進入目錄 D:\axis2\bin , 執行:
D:\axis2\bin>wsdl2java.bat -uri http://localhost:8083/axis2/services/HelloWorldService?wsdl -o D:\eclipse_wtp\workspace\HelloWorldClient -p test.joeyta
-uri WSDL 的 uri 位置.
-o 輸出 stub classes 的位置. 預設會增加 src 目錄.
-p 設定輸出 stub classes 使用的 package.

產生 HelloWorldServiceStub.java 及 HelloWorldServiceCallbackHandler.java , 如下圖所示.


建立 Client 程式
------------------- HelloWorldClient.java ----------------------
public class HelloWorldClient {

 public static void main(String[] args) throws Exception {

  HelloWorldServiceStub stub = new HelloWorldServiceStub();

  HelloWorldServiceStub.Echo request = new HelloWorldServiceStub.Echo();
  request.setValue("Hello world, Joeyta"); 

  EchoResponse response = stub.echo(request);

  System.out.println("Response : " + response.get_return());
 }

}
------------------- HelloWorldClient.java ----------------------

執行後輸出結果:
Response : Hello world, Joeyta

如下圖下示:


使用 TCP Monitor 監視 request 及 response SOAP conent:
下載舊版 Axis library axis-bin-1_4.zip:
http://apache.seekmeup.com/ws/axis/1_4/
解壓後把 axis.jar 複製至 D:\axis2\lib 裡,
進入 D:\axis2\lib 目錄
執行  D:\axis2\lib> java -classpath axis.jar org.apache.axis.utils.tcpmon
就會彈出 TCPMonitor
Listen port 設為 9999 ,
Target Hostname : 127.0.0.1
Target Port:8083    
然後按 Add, 如下圖所示:
[ 這樣設可以依靠 port 9999 去監聽 port 8083 ]

修改 Client program HelloWorldServiceStub.java 
將所有 port 從 8083 改為 9999 後,  再次過行 HelloWorldClient.java
就可以得到如下的 SOAP message:


使用 SOAP Monitor 監視 SOAP data, 下面是官方的教學.
http://ws.apache.org/axis2/1_0/soapmonitor-module.html

官方文檔非常多及齊全, 若想進一步了解, 需要花更長的時間:
http://ws.apache.org/axis2/1_0/index.html

Axis2 的文檔及教學非常充足. 官方文檔如下連結:
http://ws.apache.org/axis2/1_0/index.html

Axis2 官方的安裝教學:
http://ws.apache.org/axis2/1_0/installationguide.html

Axis2 用戶指南:
http://ws.apache.org/axis2/1_0/userguide.html

Axis2 WEB Administration 介面的使用教學:
http://ws.apache.org/axis2/1_0/webadminguide.html

Axis2 的設定文檔:
http://ws.apache.org/axis2/1_0/axis2config.html

AXIOM (Axis Object Model) 教學:
http://ws.apache.org/axis2/1_0/OMTutorial.html

Axis2 Eclipse plugin 教學:
http://ws.apache.org/axis2/tools/1_0/eclipse/wsdl2java-plugin.html

分享到:
评论

相关推荐

    axis2,apache axis2,web service

    标签“axis2, apache axis2, web service”进一步强调了我们讨论的主题是关于使用Apache Axis2框架进行Web服务开发。Web服务是一种通过网络进行通信的应用程序接口,允许不同系统之间的数据交换。Apache Axis2作为...

    Apache Axis2 Web Services, 2nd Edition.pdf

    Chapter 1, Apache Web Services and Axis2 - Gives you an introduction to web services and the web service stack at Apache. Chapter 2, Looking inside Axis2 - Learn about Axis2 architecture and the ...

    基于 Apache Axis2 将上述类的方法对外提供 Web 服务,生成 WSDL 文件,以及调用服务

    Apache Axis2 是一个流行的开源Web服务引擎,它允许开发者创建和部署高级Web服务。这个框架是基于Apache SOAP项目,提供了一种高效、灵活且模块化的方式来处理Web服务。在这个教程中,我们将学习如何使用Apache Axis...

    org.apache.axis2.eclipse.service.plugin_1.7.8

    总的来说,`org.apache.axis2.eclipse.service.plugin_1.7.8`是一个强大的工具,它简化了在Eclipse中使用Apache Axis2进行Web服务开发的工作流程,提升了开发者的生产力。通过集成开发环境的便利性,开发者可以更...

    基于Axis2的Web Service 快速开发.ppt

    其中,Axis2是由Apache推出的下一代Web Service框架,它是一个基于Servlet的模型,可以在任何Servlet容器上运行,比如Tomcat。Axis2提供了自己的轻量级Web服务器,同时也支持其他Servlet容器。 安装和部署Axis2涉及...

    用Axis2创建Web Service

    【Apache Axis2 创建 Web Service 知识点详解】 Apache Axis2 是一个强大的 Web Service 框架,由 Apache 软件基金会开发,主要用于构建和部署高性能、高效率的 Web Services。它基于 Java 语言,提供了全面的 Web ...

    基于Tomcat5.0和Axis2开发Web Service应用实例

    本教程将详细介绍如何利用Apache Tomcat 5.0作为应用服务器,以及如何结合Axis2来构建Web Service应用程序。 首先,我们需要理解Web Service的基本概念。Web Service是一种基于开放标准(如WSDL、SOAP和UDDI)的...

    axis2 web service完整教学

    【Apache Axis2 Web Service 教程】 Apache Axis2 是一个流行的开源Web服务框架,用于创建、部署和管理高性能的Web服务。本教程将详细介绍如何在Eclipse环境中利用Apache Axis2搭建Web服务及其客户端。 **环境配置...

    Axis2创建web service快速入门

    Axis2是Apache软件基金会开发的一个高效、灵活且可扩展的Web服务引擎,它允许开发者轻松地创建和部署Web服务。本教程将引导你快速入门,掌握使用Axis2创建Web服务的基本步骤。 **一、了解Axis2** Axis2是Axis1的下...

    Axis开发Web Service实例

    在探讨如何使用Apache Axis来开发Web Service之前,我们首先需要了解一些基本概念。 **Web Service**是一种标准的技术框架,用于实现不同平台之间的应用通信。它使用XML作为数据交换格式,并通过HTTP进行传输。...

    Java RPC通信机制之SOAP:应用Apache Axis进行Web Service开发

    以下是使用Apache Axis进行Web Service开发的关键步骤: 1. **创建服务**: 开发者首先定义Java接口和服务实现,这些接口描述了可供远程调用的方法。然后,使用Axis工具,这些接口和实现可以被转换成SOAP服务。 2. ...

    Eclipse下基于Axis2的Web Service平台搭建与使用

    2. **Axis2**:Apache Axis2是Java平台上的Web Service引擎,它是Apache Axis1的下一代产品,提供了更高效、更灵活的服务架构。Axis2允许开发者创建、部署和管理Web Services,并且支持多种协议如SOAP、REST等。 3....

    Apache Web Services Axis2(1.4.1) 详细经典入门实例图文并茂

    Apache Axis2是Apache软件基金会开发的一个用于构建Web服务和实现Service-Oriented Architecture (SOA)的核心框架。本文将深入探讨Axis2 1.4.1版本的经典入门实例,通过Eclipse集成开发环境中的Axis2插件,帮助你...

    axis2(web service接口文件生成工具)

    Axis2是Apache软件基金会开发的一款开源Web服务框架,主要用于生成和处理Web服务接口文件。它是一个高度可扩展且模块化的平台,支持多种协议,如SOAP、REST、HTTP、HTTPS等,使得开发人员能够轻松地创建和部署Web...

    Spring集成AXIS2的Web_service配置方法

    Spring 集成 AXIS2 的 Web service 配置方法 Spring 是一个流行的 Java 应用程序框架,它提供了一个灵活的方式来构建企业级应用程序。AXIS2 是一个流行的 Web Service 引擎,它提供了一个强大的方式来构建 Web ...

    Axis2 Web Service 开发教程

    【Axis2 Web Service 开发教程】是一份详细指导开发者如何使用Apache Axis2框架创建和部署Web服务的教学资料。Apache Axis2是Java世界中一个强大的Web服务引擎,它提供了高效的性能和灵活的架构,使得Web服务的开发...

    axis2发布web service

    ### Axis2 发布 Web Service 的详细步骤与原理 #### 标题解读:Axis2发布Web Service Axis2 是一个开放源代码的Web服务框架,它实现了 SOAP 1.1 和 SOAP 1.2 协议,并支持 JAX-WS、JAX-RPC 等多种标准。使用 Axis2...

    深入理解axis2-web service产生

    ### 深入理解Axis2与Web Service #### Web Service概览 随着互联网技术的不断发展,Web Service作为一种标准的应用间通信方式,逐渐被广大开发者所接受。它是一种以标准方式暴露应用程序功能的服务,使得不同平台...

Global site tag (gtag.js) - Google Analytics