DWRでトラブル中
DWR利用時に、とある環境下で怪しい現象が発生中です。まとめるとこんな感じ。
- 現象
- 環境
- Windows XP SP2
- IE 6.0
- 詳細は調査中(現状では2台のマシンで現象を確認)
APサーバにTomcatなどを利用していれば問題にならなかったと思うけど(言語コードが無視されるだけ)、Oracle Application Serverは"j"みたいな一文字の言語コードを渡すと500番のエラーを返す仕様らしく・・・orz
現象が発生しているマシンが同時期に渡された2台だけって言うのも怪しいところ。検証用に全く同じマシンを用意してくれるので、届いたらさらに詳細を調べてみますー。
いないと思うけど、もし同じ現象に悩まされた方がいましたら教えて下さいまし!
追記:2007/12/07 01:47
いろいろ調べた結果、以下のことが分かりました。
- 同じMSXML 5.0(バージョンまで一緒)でも、環境によっては上記の現象が発生する。
- Oracle Application Serverが500番のエラーを返す理由は、内部でlocaleを解釈する際にStringIndexOutOfRangeExceptionが発生しているため(ぉぃ
結局以下の対応を行うことにしました。
変更前のengine.jsの記述
dwr.engine._XMLHTTP = ["Msxml2.XMLHTTP.6.0", "Msxml2.XMLHTTP.5.0", "Msxml2.XMLHTTP.4.0", "MSXML2.XMLHTTP.3.0", "MSXML2.XMLHTTP", "Microsoft.XMLHTTP"];
変更後のengine.jsの記述
dwr.engine._XMLHTTP = ["Msxml2.XMLHTTP.4.0", "MSXML2.XMLHTTP.3.0", "MSXML2.XMLHTTP", "Microsoft.XMLHTTP"];