SOAPによる通信

Laszloで作成したクライアントから、
SOAPを用いてサーバー上のプロシージャ(Apache Axisによる)を呼び出すことに挑戦してみました。


記述の仕方は、を用いた例がリファレンスに載っていたので、それを参考にしました。
それにしても、Laszloのドキュメントは、単純な例を交えた解説が多く、
初めてさわる人にとって取っつきやすさを感じさせるものになってていいですね。


さてSOAPに関して、以下、気づいた点をメモってみます。

  • WSDLのロードは非同期。のonloadイベントの発生以降に、通信が可能になる。
  • ondataイベントは、の下にも置けるし、の下にも置ける。両方に置いた場合、の下にある方が優先される。
  • パラメータの渡し方はいくつか方法があるみたい。の所で
<soap name="mysoap" wsdl="...">
    <remotecall name="myfunc" funcname="...">
        <param value="${myvalue}"/>
    </remotecall>
</soap>

と書いてこれを呼び出せば、そのときの変数myvalueの値を渡せるし、

<soap name="mysoap" wsdl="...">
    <remotecall name="myfunc" funcname="..."/>
</soap>

として、呼び出し側で

var params = new Array(1234);
canvas.mysoap.myfunc.invoke(params);

のように書くことで、自由にパラメータの値をセットすることもできる。

  • パラメータに日本語の文字列を渡すと、文字化けを起こす(なぜ!?原因調査中...)