SOAP1.1と1.2について・・・

現場で久しぶりにSOAPサーバを作ることになったのでS2Axisを使って作成。
Axisクライアントとかではなく、自前のHTTP通信で送信する必要があったから
TCPMonのSender機能で動作確認してみたら↓のエラー。






soapenv:VersionMismatch
Transport level information does not match with SOAP Message namespace URI



バージョンがちげーゾと。
どうやらTCPMonはSOAP1.1の書式で送信するらしい。主流は1.2。
このバージョンによってSoapActionとContent-Typeの指定が違うみたい。
以下がその差異。

SOAP 1.1

POST /i_matsui/services/SampleSoap HTTP/1.1
SOAPAction: "urn:registOrder"
Content-Type: text/xml

SOAP 1.2
POST /i_matsui/services/SampleSoap HTTP/1.1
Content-Type: application/soap+xml; charset=utf-8; action="urn:registOrder"

しょうがないからRestClient(http://code.google.com/p/rest-client/)で送信テスト。
互換くらいしてほしいなー。
あと1.2の書式で送信したらWebLogic標準エラー出力にUnsupportedEncodingExceptionを吐いた。
WebLogic9.2だとrequest.getCharacterEncodingの内部でaction属性まで文字コードの一部だと判断しちゃうみたい・・・
なんか気持ち悪いなー。

Webを支える技術 -HTTP、URI、HTML、そしてREST (WEB+DB PRESS plus)

Webを支える技術 -HTTP、URI、HTML、そしてREST (WEB+DB PRESS plus)