谷本 心 in せろ部屋

はてなダイアリーから引っ越してきました

何となく動いた

何とか、S2Axis2-ExampleにServletFilterを追加して
Silverlightから呼び出すことが出来たらしい。


■ダウンロード
http://hatena.tanimoto.ninja/s2silverlight/SilverlightFilter.java


■必要なもの


■セットアップ

  • S2Axis2Examples 0.3.0を動かせる状態にする
    • なんかOGNLとかJUnitのjarが重複してるんだけど、、、古い方は消そう
    • Tomcat起動時にlogging周りで怒られる人は、commons-loggingのバージョンを1.0.4に下げる
  • 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側のセットアップも、もちろんやっておいてちょうだいね。


■動かし方

  1. S2AxisExmaplesを起動
  2. VS2008beta2 (SilverlightTools入り) から、Web参照の追加で、S2Axis2ExampleのWSDLを参照
  3. 適当にVS2008側でクライアントアプリケーションを作成
  4. 作成してできたファイル群を、S2AxisExmaplesのWebContent以下にもフォルダごとコピー
  5. (VS2008上でデバッグ実行。別にデバッグ不要なら、この手順はスキップ)
  6. ブラウザで http://localhost:8080/s2axis2-examples/(VS2008で作ったプロジェクト名)/(VS2008で作ったHTML名) にアクセス。
  7. Move it!!


■制限事項

  • 現時点では、S2が管理するコンポーネントなら何でも呼び出せちゃうので、びっくりするほどセキュリティホールです。
  • Date型とかCalendar型には対応できいないので、この辺りはnullにしてください。
  • というか対応できない型はいっぱいあると思うので、細長い目で見守ってください。


■今後の予定

  • しばらくはAxis2に寄生するFilterとして活動します。
  • そのうち、Axis2を内部で呼び出すだけの、Servletに成ります。