6

これまでのところ、単純な base64 エンコーディングを使用して SOAP で添付ファイルを送信し、それらをインラインで配置してきました - すべて CURL によって行われました。ここで、添付ファイルを MTOM 添付ファイルとして送信する必要がある新しい要求があります。質問は、Linux カールで可能ですか? おそらく、multipart/relatedまたは類似のコンテンツタイプが必要になるでしょう。

JAX-WS を使用すると可能であることがわかりますが、これを行うには新しいクライアントを開発する必要があり、実際には最適なオプションではありません。

可能かどうか教えてください。可能であれば、その方法を教えてください。

4

1 に答える 1

0

ファイル コンテンツを 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 を使用してリクエストを投稿する

$ 猫 req.xml | curl -X POST -H 'Content-type: application/soap+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>

これはうまくいきますか?

于 2013-02-25T02:05:23.453 に答える