4月 7th, 2008at 12:21

Tags:

Axis2 1.1.1 クイックスタートガイドその2

ここでは様々な方法でのサービス作成を説明。

原文:http://ws.apache.org/axis2/1_1_1/quickstartguide.html

サービスの作成 

このセクションでは5種類の方法をつかってSampleServiceを元にWebサービスを作る。

  • Plain Old Java Object(POJO)をデプロイする方法
  • AXIOMのOMEElementを使ってサービスを構築する方法
  • Axis2のデータバインディングフレームワーク(ADB)を使ってサービスを作成する方法
  • XMLBeansを使ってサービスを作成する方法
  • JiBXを使ってサービスを作成する方法

Deploying POJOs 

POJO(Plain Old Java Objects)。AXIS2_HOME/samples/quickstartがPOJOを使ったものらしい。クイックスタートガイドその1のやりかたはPOJOらしいので説明は割愛。

Building the service using AXIOM 

services.xmlがPOJOと若干異なる。

 <service name="StockQuoteService" scope="application">   <description>Stock Quote Service</description>   <operation name="getPrice">     <messageReceiver class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/>   </operation>   <operation name="update">     <messageReceiver class="org.apache.axis2.receivers.RawXMLINOnlyMessageReceiver"/>   </operation>   <parameter name="ServiceClass">samples.quickstart.service.axiom.StockQuoteService</parameter> </service>

「<operation name=”update”>」というようにOperationごとにMessageReceiverを設定しているのがわかる。「RawXMLINOutMessageReceiver」は戻り値のある(引数があって戻り値がある)メソッドで、「RawXMLINOnlyMessageReceiver」は戻り値のないメソッドのように読み取ることができる。

Javaのソースを見ると、OM?というものを使っていることがわかる。

//抜粋OMElement symbolElement = element.getFirstElement();String symbol = symbolElement.getText();OMElement priceElement = (OMElement)symbolElement.getNextOMSibling();String price = priceElement.getText();

AXIOMとは「AXIS Object Model」というDOMに似た構造のオブジェクトモデル。これは、StAX APIというものをベースにしている。

メソッドはOMElementを引数として受け取らなければならない。OMElementはServiceに渡されるSOAPメッセージをあらわし
ている。ここでは、SOAPメッセージの最初の子要素を抜き取り、テキストを追加している。そして、返すOMElementとしてそれを使っている。戻り
値があるサービスのOperationならば、OMElementを返さなければならない。なぜなら、SOAPメッセージを返すことができないといけない
から。

Generating the service using ADB 

Generating the service using XMLBeans

Generating the service using JiBX 

Generating Clients 

Creating a client with AXIOM 

Generating a client using ADB 

Generating a client using XML Beans 

Generating a client using JiBX 

Summary 

For Further Study