MTOM/XOP を使用して Web サービスを提供および使用するときに、(歴史的な理由から) いくつかのかなり珍しい要求を行う、準拠する必要がある仕様があります。
要約すると、Content-Type HTTP ヘッダーは次のようにコーディングする必要があります: 開始情報とアクションは、Content-Type の個別のパラメーターとしてコーディングする必要があります。
start-info="application/soap+xml";action="urn:ihe:iti:2007:RetrieveDocumentSet"
- それとは対照的に、MTOM/XOP 仕様では次のことが要求されます。
Content-Type: multipart/related;start="...";type="application/xop+xml";boundary="...";start-info="application/soap+xml;action=\"urn:ihe:iti:2007:RetrieveDocumentSet\""
- そのため、「アクション」は「start-info」パラメーター内に含まれてエスケープされます。私たちは JAX-WS を使用して Web サービスを提供および利用していますが、仕様の要求を満たすためにヘッダーと MIME 境界を変更する有効なソリューションが見つかりません。
Web サービス メッセージで送信される MIME 境界にも同じことが当てはまります。
Java7 と Java8 に含まれる JAX-WS 実装は、これを異なる方法で処理しているようです。つまり、Java7 は準拠する必要がある仕様で期待どおりにエンコーディングを行いますが、Java8 は MTOM/XOP 仕様に従ってそれを行います。私が使用している他のライブラリはJava8を必要とするため、Java8に戻ることはできません
JAX-WS の動作を変更する方法、または他のシステムに到達する前にヘッダー/MIME 境界を傍受して変更する方法はありますか?