谷本 心 in せろ部屋

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

Silverlight + S2Axis2じゃダメ。

Axis2ってもしかしてJSONとかサポートしてんじゃね?
と思って調べたら、確かにサポートしてた模様。


http://ws.apache.org/axis2/1_3/json_support.html
この辺りを参考にして、
S2Axis2-exampleの、WebContent/WEB-INF/conf/axis2.xmlを修正すれば
いちおう、JSONには対応できた。


ただ、JSONの仕様というか、マッピングというか、
そういうものがSilverlightAxis2で異なっているせいで、
どうしても正常に動かない。

  1. DATE (Calendar) の扱いが違う
    • Silverlight側が出力する日付は /DATE(12345)/ という形式。12345と書いた所には、日付のlong値が入る。
    • Axis2側が期待する日付は yyyy/MM/ddThh:mm:ss という形式。いわゆるSOAPのDATE型。
  2. namespaceの扱い辺りも異なっている。
    • Badgerfishとか意味分からん。


ちょっとAxis2側のソースを書き換えながら強引に動かして、
一応、S2が管理するコンポーネント(サービス)までは呼び出せたんだけど
レスポンスを返す途中で

Mapped formatted JSON with namespaces are not supported in Axis2. Make sure that your request doesn't include namespaces or use the Badgerfish convention

なんてエラーが出た所で、心が折れた。


JSONも参考程度のRFCがあるみたいだけど、
現状ではこういうエラーが出るのは仕方ないのか、
もう2〜3年もすれば状況が変わるのか、
JSON周辺の事情を知らないから、分からないけどさ。


いずれにせよ、Silverlight + S2Axis2だけで動かすのは難しい模様。


次は、そろそろ、enunciateを試そうかな。
Badgerfishにも対応してるとか書いてるし。