S2Axis 開発記 静的起動クライアント

こちらもさぼりまくっている S2Axis
アルファ版リリースへ向けて残っているのは

  • クライアントの静的起動
  • HTTP セッションを利用したステートフルなサービス

といったところなのですが,後者は Web サービスの標準にはない Axis 固有の機能を使うので,なくてもいいような気もする今日この頃.
いやその,決してさぼりたいだけというわけではあうあう.心より恥じる.


そんなわけで静的起動ですが,ちょっと悩んでいたのです.
Axis ユーザガイド」によると,静的起動は次のように使うそうです.

public class Tester
{
 public static void main(String [] args) throws Exception {
  // Make a service
  AddressBookService service = new AddressBookServiceLocator();
 
  // Now use the service to get a stub which implements the SDI.
  AddressBook port = service.getAddressBook();
 
  // Make the actual call
  Address address = new Address(...);
  port.addEntry("Russell Butek", address);
 }

}

変数名がアレなんで分かりにくいですが,ここでクライアントが主に使いたいのは port という変数で参照している AddressBook 型のオブジェクト.これがサービスのスタブ (プロキシ) です.
そのスタブを入手するために,AddressBookServiceLocatorgetAddressBook() を呼び出しています.つまり,サービスロケータってファクトリなんですね.ってことは...
Spring なら FactoryBean を使えばいいじゃん! って感じなのですが,S2 にはそういうのはないはず.
どうしたものか...


そうしたら,ちょうど今日 Seasar-user ML にその話題が流れてるじゃないですか.
なんか,OGNL を使うということで FA らしい.
こんな感じ.

<component name="addressBookLocator" class="AddressBookServiceLocator"/>

<component name="foo" class="...">
    <property name="addressBook">addressBookLocator.getAddressBook()</property>
</component>

これで,foo という名前のコンポーネントaddressBook というプロパティに,AddressBookServiceLocator から取得したスタブが DI されます.
なるほど,悪くないですね.
ってことは,S2Axis として実装するものは何もないってこと? ラッキー♪
いやその,決してさぼりたいだけというわけではあうあう.心より恥じる.
遠くない未来に,ドキュメントとサンプルで頑張るということで.m(__)m


ところで,一応 SourceForge でアカウント作ったのですが,その後はいったい何をすればいいのでしょうか?
ほそぴー or きむきむの日記を探せばどっかに書いてあるのかな?