2010-12-14 62 views
0

我已經被賦予了將二進制數據(如圖片,音樂,縮略圖等)嵌入到xml元數據容器中以便通過REST接口發佈整個包的任務。目前我們正在使用澤西島,並在我們的項目中發佈。 我真的不想回到肥皂/ wsdl(這似乎是每個基於ws的問題的默認答案)或任何容器格式,如拉鍊只是爲了通過電線獲得該數據,所以我GOOGLE了一段時間更合適的解決方案rest + xop /嵌入在xml響應中的二進制數據

我發現推薦使用XOP格式將內容嵌入到XML中,這是SOAP中使用的MTOM協議的一部分,但我沒有看到通過REST直接提供XML + XOP響應的解決方案。

我的問題:有人可以給我一個提示如何使用Jersey/spring實現XOP + REST嗎?我已經看到了暗示有人做了它之前的帖子...

最好的問候,

回答

0

你爲什麼要二進制數據嵌入到XML?有很多方法可以將二進制資源與其對應的元數據相關聯,而無需將其填充到單個表示中。

您正在擊敗REST HTTP的主要優勢之一。根據需求處理多種不同媒體類型的能力是使用基於HTTP的REST比SOAP更有效的原因之一。

考慮檢索包含鏈接到二進制資源的元數據的XML表示,如Atom所做的那樣。如果您想先檢索二進制文件,那麼請考慮鏈接標題指向元數據。嘗試將二進制數據填充到XML中有很多更好的方法。

+0

感謝您的回答。可悲的是,分割內容不是選擇。其中一個原因是,根據acls捆綁內容的背後有一個安全模型。另一個原因是捆綁包必須完全傳輸 - 想象一下如果由於客戶端沒有立即發起請求而丟失了部分消息,則會導致一個致命的情況。最後也是最重要的是,現在我不能做項目範圍的決定:) – Tim 2010-12-14 15:29:18

+0

@Tim根據XOP規範'http:// www.w3.org/TR/xop10 /'你會只需使用'Multipart/Related'作爲媒體類型。這種媒體類型的編碼和解碼與REST完全正交,所以訣竅是找到一個可處理'Multipart/Related'內容的Java庫。那時候,我甚至不知道你需要XOP了。 – 2010-12-15 12:33:29

+0

感謝親愛的。在某些時候,這是我之前發現的。如果我碰巧有足夠的時間,我會嘗試和評估這個解決方案,如果它證明成功,我會在這裏放下更多的線。 – Tim 2010-12-16 11:56:35