音もなく再開。
なんかS2Axis2でも、大丈夫じゃないみたいだ。
これまでの調査結果をまとめると、
- 現行のVS2008Beta2 + Silverlight Tools AlphaのWeb参照で、Axis2のWSDLは読み込み可
- VS2008Beat側でXAMLやコードビハインドを書いてビルドすると、htmlやjsができあがる
- できあがったhtmlやjsを、Axis2が動いているAPサーバのアプリケーション上にコピーすれば、動作可能
- htmlやjsからサービスを呼び出すと、もちろんAPサーバのAxisServletを呼び出そうとする
- 呼び出しには、今のところ、JSONが利用される(変更の仕方が分からん)
といったところ。
ここで、一番最後のJSONが厄介。
JSONのままじゃもちろんXMLとして読めないから、
Axis2の中で、AxisFaultが発生してしまう。
その対策の選択肢は、こんな感じ。
- Silverlight側のリクエストを、JSON以外にする方法を見つける(poxなら大丈夫なのかな?)
- AxisServletに到達する前に、ServletFilterの中で、JSON → SOAP変換を行なう
- いっそServletFilterの中でJSONを解析して、S2が管理するコンポーネントを呼び出す。AxisServletまでは到達させない
- Enunciate辺りを使って、サーバサイドで普通にJSONを受け付けられるようにする。EnunciateならWSDLも出力できるみたいだし
- 軽量のJSON用Servletを作って、WSDL出力機能を持たせる
もし、一番下の選択肢を実現させたら
それがS2Silverlightになると思う。
つか、Silverlightの正式なJSON通信仕様が
分からんのが、何とももどかしいんだよね。
S2Flexじゃないけど、挙動から仕様を抽出して
少しずつ実装していくしかないのかしら。