2010-04-12 58 views
7

我試圖做一個非常簡單的網絡服務,執行以下操作:如何MTOM工作+示例代碼

  1. 客戶端點擊web服務請求的文件。
  2. Web服務的服務類查詢散列表,其中包含關鍵字(搜索查詢)和值作爲文件的base64編碼值(比如pdf)
  3. 現在,我需要使用MTOM返回存儲的base64編碼值在散列表中給客戶端。

這是由客戶端解碼並將其轉換爲pdf。

所以,這裏是我的問題:

  1. 我明白,我們的文件編碼爲Base64爲通過網絡傳輸業務,但如果和如何MTOM來到這個畫面呢?

  2. 有人可以給我一個簡單的方法,它使用MTOM併發回數據。我們是否需要在WSDL中指定某些內容?或者一個簡單的String返回類型就足夠了?爲什麼/爲什麼不?

感謝

我已經看到了這code。它使用了很多註釋,我只需要使用MTOM的簡單Java代碼。新到J2EE在這裏:)

更新1

足夠體面的解釋here,現在我需要從執行層面上理解它。 良好的信息here,但對於.NET

更新2

應該用什麼方法 「createMTOM(INT ID)」 的返回類型?

回答

7

你似乎在混合實現和協議。

MTOM的規格是hereThis頁面有示例消息。

如果您使用的是JAX-WS環境,那麼最確定的是使用Annotations來打開它。如果您手動滾動soap消息,則可以編寫任何需要編寫的Java代碼來生成它。本質上,MTOM意味着數據的內容移動到一個附件中,該附件是消息的一個單獨的MIME部分,並且通過xop引用:包含具有href的MIME部分的元素。

模式必須將base64Binary聲明爲元素類型,但其他屬性提供了有關字節解釋的提示:xmime:contentType和xmime:expectedContentType。根據我的經驗,JAX-B參考實現對這些使用有一些限制。例如,你不能自動將文本來回地轉換爲字節。在CXF或Glassfish等典型工具包中,您將數據放入DataHandler中,工具包將其轉換爲附件。

0

有描述MTOM以及如何使這是一種有益的文章here CXF。該文章還包括一個工作示例的源代碼。

相關問題