2012-08-08 52 views
4

到目前爲止,我一直使用簡單的base64封裝並使用簡單的base64封裝來發送SOAP附件 - 所有這些都是由CURL完成的。現在我有一個新的請求,附件需要作爲MTOM附件發送,問題是:是否可以使用linux curl?使用Linux的SOAP MTOM附件CURL

我可以看到使用JAX-WS是可能的,但爲了做到這一點,我們必須開發新的客戶端,這對我們來說並不是最好的選擇。

請告訴我,如果可能,如果是的話,給我任何提示如何做到這一點。

回答

1

您可以使用base64編碼並使用curl post來包含文件內容。

下面是一個例子:

  1. 有從安裝Axis2的MTOM樣本,爲你工作
  2. 構建下面的示例req.xml

$貓req.xml

<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:mtom="http://ws.apache.org/axis2/mtomsample/" xmlns:xm="http://www.w3.org/2005/05/xmlmime"> 
    <soap:Header/> 
    <soap:Body> 
     <mtom:AttachmentRequest> 
     <mtom:fileName>one.txt</mtom:fileName> 
     <mtom:binaryData xm:contentType="application/txt">SSBhbSB0aGUgZ3JlYXRlc3Qu</mtom:binaryData> 
    </mtom:AttachmentRequest> 
    </soap:Body> 
</soap:Envelope> 
  1. 發佈使用請求curl

$ cat req.xml |捲曲-X POST -H '內容類型:應用程序/肥皂+ XML' -d @ -
http://yourmachine.com:8080/axis2/services/MTOMSample.MTOMSampleSOAP12port_http/

<?xml version='1.0' encoding='UTF-8'?> 
<soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope"> 
    <soapenv:Body> 
    <ns2:AttachmentResponse xmlns:ns2="http://ws.apache.org/axis2/mtomsample/"> 
     File saved succesfully. 
    </ns2:AttachmentResponse> 
    </soapenv:Body> 
</soapenv:Envelope> 

這是否對你的工作?