[Seasar-user:12068] Re: [S2Axis2] Entityを返すサービス作成について教えてください.

Takanori Suzuki [E-MAIL ADDRESS DELETED]
2007年 12月 12日 (水) 23:08:05 JST


たかのりです。

07/12/12 に Applied_MATSUDA Masaaki<[E-MAIL ADDRESS DELETED]> さんは書きました:
> TigerCatです.いつもお世話になっております.
>
> このサービスクラス(仮にHogeService/HogeServiceImpl)は,
> DB検索用のメソッドを実行すると,List<HogeEntity> を返す
> ことになっています.

XML-RPCの仕様(おそらく)では、
引数や戻り値で、Listを含むコレクションクラスがサポートされていません。

戻り値を、List<HogeEntity>ではなく、
HogeEntity[]にして試してみてください。


> HogeEntityは,ManyToOneでマスタと外部キーの関係を
> 持っているのですが,そういう場合だとHogeEntityの
> 中には
> private Master id;
> public Master getId(){
>  return this.id;
> }
> というようなMasterエンティティのクラスもあちこちで
> 登場しているので,そのあたりが怒られポイントなのか
> なぁ,などと悩んでいるところです・・・

S2Axis2の以下のサンプルで、
上記のようなネストされるBeanの動作も確認しているので、
通常のJavaBeanならば、問題ないと思います。

org.seasar.remoting.axis2.examples.ex03


> p.s.
> メソッドをオーバーロードしているサービスクラスは,
> WSDLの制限上,利用できないんですね・・・

そうなんですよね。

> 代替方法とかで,なんとかできたりしませんでしょうか?
> 既存クラスがそうなっちゃってるのでオーバーロードを
> なんとかせいといわれても・・・(汗) ですよね.

S2Axis2では、

 1)インタフェースを分け、メソッド名が一意になるようにする。
 2)org.seasar.remoting.axis2.ServiceDefを利用して、
  公開するメソッドを制限する。

という方法で、回避できると思います。


Seasar-user メーリングリストの案内