何とか、S2Axis2-ExampleにServletFilterを追加して
Silverlightから呼び出すことが出来たらしい。
■ダウンロード
http://hatena.tanimoto.ninja/s2silverlight/SilverlightFilter.java
■必要なもの
- S2Axis2Examples 0.3.0 (http://s2axis.seasar.org/ja/)
- S2Container 2.4.18-rc2 (http://s2container.seasar.org/2.4/ja/downloads.html)
- JSON-lib (http://json-lib.sourceforge.net/)
- EZMorph (http://ezmorph.sourceforge.net/)
- Jakarta commons-lang (http://commons.apache.org/lang/)
- jakarta commons-collections (http://commons.apache.org/collections/)
■セットアップ
- S2Axis2Examples 0.3.0を動かせる状態にする
- WEB-INF/lib/にあるS2Containerのjarを、2.4.18-rc2のものに差し替える
- S2Containerに含まれるJSONSerializerを利用しているので
- JSON-libはpublicフィールドに対応していないので、S2Containerのものを使う
- その他、JSON-libやらEZmorphやらのjarをWEB-INF/lib/に置いて、ビルドパスを通す。
- web.xmlに、org.seasar.silverlight.SilverlightFilterの定義を追加
<filter> <filter-name>s2filter</filter-name> <filter-class> org.seasar.framework.container.filter.S2ContainerFilter </filter-class> </filter> <filter> <filter-name>s2SilverlightFilter</filter-name> <filter-class> org.seasar.silverlight.SilverlightFilter </filter-class> </filter> <filter-mapping> <filter-name>s2filter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <filter-mapping> <filter-name>s2SilverlightFilter</filter-name> <url-pattern>/services/*</url-pattern> </filter-mapping>
- Visual Studio 2008 beta2側のセットアップも、もちろんやっておいてちょうだいね。
■動かし方
- S2AxisExmaplesを起動
- VS2008beta2 (SilverlightTools入り) から、Web参照の追加で、S2Axis2ExampleのWSDLを参照
- 適当にVS2008側でクライアントアプリケーションを作成
- 作成してできたファイル群を、S2AxisExmaplesのWebContent以下にもフォルダごとコピー
- (VS2008上でデバッグ実行。別にデバッグ不要なら、この手順はスキップ)
- ブラウザで http://localhost:8080/s2axis2-examples/(VS2008で作ったプロジェクト名)/(VS2008で作ったHTML名) にアクセス。
- Move it!!
■制限事項
- 現時点では、S2が管理するコンポーネントなら何でも呼び出せちゃうので、びっくりするほどセキュリティホールです。
- Date型とかCalendar型には対応できいないので、この辺りはnullにしてください。
- というか対応できない型はいっぱいあると思うので、細長い目で見守ってください。
■今後の予定