簡體   English   中英

Axis2-附件未編碼

[英]Axis2 - Attachment is not encoded

我們正在使用SOAP Web服務向我們的客戶發送交易。

我們的環境:

容器:無(組件獨立運行)軸版本:1.6.2

要求:

如果交易規模很小,我們需要將內容作為正文的一部分發送。 如果交易量很大,則需要將內容作為附件發送。

程式碼片段:

final ServiceClient sender = new ServiceClient();

final Options options = new Options();

options.setTo(endpointRef);

options.setTransportInProtocol(Constants.TRANSPORT_HTTP);

options.setProperty(Constants.Configuration.ENABLE_MTOM,Constants.VALUE_TRUE);

sender.setOptions(options); 

final OMFactory omFactory = OMAbstractFactory.getOMFactory();

. 
. 
. 

DataHandler dataHandler = new DataHandler(new FileDataSource(new File("C://KB_9.9.xml")));

OMText omText = omFactory.createOMText(dataHandler, true); 

final OMElement inputData = omFactory.createOMElement("inputData",null); 
inputData.addChild(omText); 

method.addChild(inputData); 
sender.fireAndForget(omElement);

我們的問題:

它工作正常,並且數據已成功到達。 但問題是附件未編碼。 它按原樣顯示文件的內容。 我的問題是我們是否需要啟用axis的任何屬性來編碼附件內容,還是需要手動執行Base64編碼。

樣本輸出:

***--MIMEBoundary_5e6b57717e6fc299242f9cc2ec3ab3d6cd5ef851033370e3***

Content-Type: application/xop+xml; charset=UTF-8; type="text/xml"

Content-Transfer-Encoding: binary

Content-ID: <0.d5d9e693c8e32f0069b7cbb392d60e7f8b08366c7cb4384d@apache.org> 

<?xml version='1.0' encoding='UTF-8'?>

 xop:Include xmlns:xop="http://www.w3.org/2004/08/xop/include" href="cid:1.7e6b57717e6fc299242f9cc2ec3ab3d6cd5ef851033370e3@apache.org"

***--MIMEBoundary_5e6b57717e6fc299242f9cc2ec3ab3d6cd5ef851033370e3***

Content-Type: application/octet-stream

Content-Transfer-Encoding: binary

Content-ID: <1.7e6b57717e6fc299242f9cc2ec3ab3d6cd5ef851033370e3@apache.org> 

My test file..... 

***--MIMEBoundary_5e6b57717e6fc299242f9cc2ec3ab3d6cd5ef851033370e3--***

你能幫我解決這個問題嗎

為了獲得最佳的MTOM效率,建議使用base64encoding(未優化)發送較小的二進制附件,並使用優化的內容發送較大的附件。

請參閱部分(在服務器端啟用MTOM優化)

要全局為所有服務啟用MTOM,用戶可以在Axis2.xml中將“ enableMTOM”參數設置為True。 設置后,所有傳出消息將被序列化並作為MTOM優化的MIME消息發送。 如果未設置,則二進制內容節點中的所有二進制數據都將被序列化為Base64編碼的字符串。 可以基於每個服務和每個操作在services.xml中覆蓋此配置。

<parameter name="enableMTOM">true</parameter>

http://axis.apache.org/axis2/java/core/docs/mtom-guide.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM