2010-12-14 12 views
0

RESTインターフェイスを介してパッケージ全体を公開するために、バイナリデータ(画像、音楽、サムネイルなど)をxmlメタデータコンテナに埋め込む作業が行われました。現在、プロジェクトではJerseyとSpringを使用しています。 私は実際にsoap/wsdl(すべてのwsベースの問題のデフォルトの答えと思われる)やzipのようなコンテナ形式に戻ってそのデータをワイヤで取得することはしません。より適切なソリューション。rest + xop/xmlレスポンスに埋め込まれたバイナリデータ

SOAPで使用されているMTOMプロトコルの一部であるxmlにコンテンツを埋め込むためにXOPフォーマットが推奨されていますが、REST経由でXML + XOP応答を直接提供するソリューションはありません。

私の質問:誰かが私にJersey/springを使ってXOP + RESTを実装するヒントを教えてもらえますか?私は

敬具、
ティム

答えて

0

は、あなたがXMLにバイナリデータを埋め込むしたいと思うのはなぜ...誰かが前にそれを行っていることを意味するもので記事を見てきましたか?バイナリリソースを対応するメタデータに関連付ける方法は、単一の表現に含めることなく、さまざまな方法があります。

REST HTTPの主な利点の1つを打ち負かしています。要件に基づいて複数の異なるメディアタイプを処理する能力は、HTTPよりもRESTを使用する理由の1つがSOAPよりも効果的である理由の1つです。

Atomのようにバイナリリソースへのリンクを含むメタデータのXML表現を取得することを検討してください。最初にバイナリを取得する場合は、リンクヘッダーがメタデータを指すようにします。バイナリデータをXMLに埋め込むよりも、優れた方法がたくさんあります。

+0

回答ありがとうございます。悲しいことに、コンテンツの分割はオプションではありません。原因の1つは、aclsに応じてそのバンドルの内容の後ろにセキュリティモデルがあるということです。もう1つの原因は、バンドルを完全に送信する必要があることです。クライアントが要求をすぐに開始しなかったためにメッセージの一部が欠落していると、致命的な状況が発生する可能性があります。最後に最も重要なことは、今私はプロジェクト全体の意思決定を行う立場にないことです。 – Tim

+0

@Tim XOP仕様の「http://www.w3.org/TR/xop10/」に従ってメディアタイプとして 'Multipart/Related'を使うだけです。このメディアタイプのエンコーディングとデコードはRESTと完全に直交しているので、 'Multipart/Related'コンテンツを処理できるJavaライブラリを見つけるのが賢明です。その時点で、私はあなたがXOPをもう必要としているかどうかはまだ分かりません。 –

+0

ダーレルに感謝します。ある時点でこれは私が以前に見つけたものです。私は十分な時間がある場合は、私はこのソリューションを試して評価し、成功した場合はここでいくつかの行を削除します。 – Tim

関連する問題