2016-09-30 6 views
0

wso2-am 2.0.0でRESTful APIを作成しました。しかし、私は問題に直面していると、いくつかの助けになります。 URLパラメータを受け取るHTTPメソッドを取得するリソースがあり、POST経由でバックエンドに送信するSOAPペイロードを作成しました(バックエンドはsoap11です)。このためWSO2 API Manager 2.0.0- GETリクエストを受信して​​バックエンドにPOSTを送信

、私は '配列の' カスタム使用:問題なく、ここまで

<?xml version="1.0" encoding="UTF-8"?> 
<sequence name="JSONtoSOAP" trace="disable" 
    xmlns="http://ws.apache.org/ns/synapse"> 
    <log description="Entrada" level="full" separator=","> 
    <property expression="get-property('uri.var.cpfCnpj')" name="cpfcnpj" /> 
    <property name="trace" 
     value="IN LOG" /> 
    </log> 
    <property name="HTTP_METHOD" value="POST" scope="axis2" type="STRING" /> 
    <property name="messageType" scope="axis2" type="STRING" 
    value="application/soap+xml" /> 
    <enrich> 
     <source type="inline"> 
      <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> 
       <soap:Body /> 
      </soap:Envelope> 
     </source> 
     <target action="replace" type="envelope" /> 
    </enrich> 
    <payloadFactory media-type="xml"> 
     <format> 
      <man:QueryCustomerDetailsRequestMessage 
       xmlns:man="http://www.algartelecom.com.br/SOA/Service/ManageCustomerInformationPortalClientesReqCS"> 
       <man:documentNumber>$1</man:documentNumber> 
       <man:tagetCRM /> 
      </man:QueryCustomerDetailsRequestMessage> 
     </format> 
     <args> 
      <arg evaluator="xml" expression="get-property('uri.var.cpfCnpj')" /> 
     </args> 
    </payloadFactory> 
    <property name="REST_URL_POSTFIX" value="" scope="axis2" /> 
    <header name="Action" scope="default" value="queryCustomerDetails" /> 
    <log description="Saida" level="full" separator=","> 
     <property name="trace" value="DEBUG LOG" /> 
    </log> 
</sequence> 

を。

しかし、私はこのように、実行時例外が発生任意のrestClient(例やWSO2-AMストア用SOAPUI)からリソースを呼び出すようにしてみてください:コードと説明のタグが空であることを

<?xml version='1.0' encoding='UTF-8'?> 
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> 
    <soap:Body> 
     <am:fault xmlns:am="http://wso2.org/apimanager"> 
      <am:code/> 
      <am:type>Status report</am:type> 
      <am:message>Runtime Error</am:message> 
      <am:description/> 
     </am:fault> 
    </soap:Body> 
</soap:Envelope> 

注意し、サーバーのログを確認したところ、私は見つけました:

[2016-09-30 16:53:44,603] INFO - LogMediator STATUS = Executing default 'fault' sequence, ERROR_CODE = null, ERROR_MESSAGE = null 

これは安らかなAPIを作成し、SOAPバックエンドを呼び出す正しい方法ですか?

誰でもこの問題について知っていますか? (私は、この機能はWSO2 ESBで機能すると信じています)。

誰かが助けてくれますか?

ありがとうございます!

+0

試してみます。 – ycr

答えて

0

あなたは次のことを試すことができます:Publisherで

  • 、あなたのシーケンスではHTTP/SOAPエンドポイントへ
  • をエンドポイントタイプを設定する「」REST_URL_POSTFIXを設定しますが、完全にプロパティを削除しないでくださいシーケンスそれを自己の中にコールメディエーターを追加

ダニー

+0

ダニー氏、助けてくれてありがとう! soapエンドポイント形式の設定(私の場合はsoap11)内の最初のトリックが私の問題を解決します。 また、 ''を削除します。 うまくいきます! – artCampos

関連する問題