0

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 境界を傍受して変更する方法はありますか?

4

1 に答える 1

2

一方、答えが見つかりましたTubeFactory。アプリケーションでカスタムを使用することは可能です。HttpTransportPipeこれにより、実装が変更された標準が返さCodecれ、メソッドの Content-Type ヘッダーが変更されgetStaticContentType(Packet)ます。

于 2015-10-09T06:06:39.610 に答える