[Seasar-user:18423] Re: [S2Axis2] Teeda+S2DaoのWebアプリを利用するクライアント

Takanori Suzuki [E-MAIL ADDRESS DELETED]
2009年 9月 2日 (水) 00:08:35 JST


たかのりです。

2009年9月1日21:12 fukuyama <[E-MAIL ADDRESS DELETED]>:
>
> WSDLにはgetAllについては含まれていなかったです。
> SELECT文のメソッドであるgetAllをwsdlに含ませるということは
> 下記のような感じで正しいでしょうか?
>
> HogeService.javaの一部
> ---------------------------------------------------
> private HogeDao hogedao;
> private List[] list;
>
> public List[] getGetAll() {
>    return hogedao.getAll();
> }
> public void setGetAll(HogeDao list) {
>    this.list = list.getAll();
> }
> ---------------------------------------------------

記述するとしたら、上記は以下のようになるのではないでしょうか?
---------------------------------------------------
private HogeDao hogedao;
private Hoge[] hogeArray;

public Hoge[] getAll() {

    List list = hogedao.getAll();
    Hoge[] array = (Hoge[])list.toArray(new Hoge[list.size()]);
    return array;
}
---------------------------------------------------

#setGetAll(HogeDao list)というメソッドは、
#なぜ必要なのでしょうか?
#良く分からなかったため、上記では削除しています。


配列で処理しているのは、s2axis2-examplesの
以下のサービスでも実装しています。

org.seasar.remoting.axis2.examples.ex03.NestedBeanService

参考にしてみてください。


> ちなみに上記のものを使ってWSDLにgetAllを含ませてからテストしてみましたが
> 結果は前回と変わらず「サービスの呼び出しに失敗しました」というエラーになりま
> した。
> (getAll() の戻り値型を配列にしてみたりもしましたが同じでした)

WSDLに含ませる、というのは、
Webサービスとして公開するクラスがデプロイできていれば、
ブラウザで、WSDLを表示させた場合に、
そのメソッドの定義が記述されているかどうかで分かります。

そのように確認できているでしょうか?

上記でうまくいかない場合、
WSDLファイルを添付してもらえると助かります。

-- 
====
Takanori Suzuki


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