[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 メーリングリストの案内