ws-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Apache Wiki <wikidi...@apache.org>
Subject [Ws Wiki] Update of "ja/axis/DeployedServiceTocall" by ToshiyukiKimura
Date Fri, 01 Apr 2005 06:58:57 GMT
Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Ws Wiki" for change notification.

The following page has been changed by ToshiyukiKimura:
http://wiki.apache.org/ws/ja/axis/DeployedServiceTocall

The comment on the change is:
Axis Wiki in Japanese

New page:
##language:ja

'''質問: Axis はどのようにして、どのデプロイされたサービスを呼び出すかを解決しますか?'''

回答: Axis には、3つの組み込みオプションがあり、また自分用のカスタマイズができる、柔軟性のあるディスパッチ機構があります。Axis
におけるサービスへのディスパッチは、実際には{{{MessageContext}}}のサービスフィールドを設定することを意味します。なぜならディスパッチはあなたが設定した様々なハンドラの中を流れていくからです。一度サービスが設定されると、エンジンはサービスを適切な場面で呼び出すことができます。結局、誰が設定を行うのですか?
それは、設定を行いたいあらゆるハンドラです。Axis におけるデフォルトのディスパッチ機構は
URL によって行われます。ですからもし http://myhost/axis/services/WeatherReport
にアクセスしたら{{{"WeatherReport"}}}サービスを受けることになります。Axis
における HTTP トランスポートが、リクエストチェインにデプロイされた{{{URLMapper
(org.apache.axis.handlers.http.URLMapper)}}}ハンドラを持っているので、この機構が働きます。{{{URLMapper}}}は入力された
URL を受け取り、その最後の部分をサービスの名前として取り出し、現在の{{{EngineConfiguration}}}の中からその名前のサービスを検索しようとします。

同じく、{{{SOAPAction HTTP}}}ヘッダを介してディスパッチするように、{{{HTTPActionHandler}}}をデプロイすることができます。自分の好きなようにサービスを設定することもできます。例えば、もし単一のサービスに全てのメッセージを流し込むトランスポートを持っているならば、トランスポートが{{{AxisEngine}}}を呼ぶ前に{{{MessageContext}}}にそのサービスを設定するだけです。もしくは、もし
SOAP ヘッダの内容や日時に基づいてディスパッチするならば、それを行うハンドラを書きます。

誰かが SOAP メッセージをデシリアライズする必要がある時に、どのハンドラもサービスを設定していなければ、最初ボディ要素の名前空間を使用して検索を試みます。ですから例えば、

{{{
<SOAP:Body>
  <ns:MyMethod xmlns:ns="http://ws.apache.org/axis/Weather"/>
</SOAP:Body>
}}}
このメッセージは、関連するサービスがあるかどうか名前空間マッピングリストの中の
"http://ws.apache.org/axis/Weather" を検索します。
Mime
View raw message