0

失敗としてマッピングされた応答コード 404 を取得して、オープン ソース API を使用しようとしています。

<http:listener-config name="HTTP_Listener_Configuration" host="0.0.0.0" port="8081" doc:name="HTTP Listener Configuration"/>
<http:request-config name="HTTP_Request_Configuration" protocol="HTTPS" host="api.taxjar.com" port="443" basePath="v2/taxes" doc:name="HTTP Request Configuration"/>
<flow name="postTaxCollectionFlow">
    <http:listener config-ref="HTTP_Listener_Configuration" path="/taxcollection" allowedMethods="POST" doc:name="HTTP"/>
    <dw:transform-message doc:name="Transform Message" metadata:id="2789cbd2-5ca6-46c2-856f-67ba2bdfa6dd">
        <dw:input-payload mimeType="application/json"/>
        <dw:set-payload>
            <![CDATA[%dw 1.0
            %output application/json
            ---
            payload
            ]]></dw:set-payload>
    </dw:transform-message>
    <http:request config-ref="HTTP_Request_Configuration" path="https://api.taxjar.com/v2/taxes" method="POST" doc:name="Web Service">
        <http:request-builder>
            <http:query-param paramName="Authorization" value="Token token=&quot;8dbc821e651fe0672c4032e65209b37c&quot;"/>
            <http:query-param paramName="Content-Type" value="application/json"/>
        </http:request-builder>
    </http:request>
    <byte-array-to-object-transformer doc:name="Byte Array to Object"/>
    <json:object-to-json-transformer doc:name="Object to JSON"/>
    <logger message="#[payload]" level="INFO" doc:name="Logger"/>
</flow>

エラーメッセージは

応答コード 404 が失敗としてマッピングされました。ペイロード: org.glassfish.grizzly.utils.BufferInputStream@12c30f42 要素: /postTaxCollectionFlow/processors/1 @ taxcollection_apisero:taxcollection_apisero.xml:23 (Web サービス) 要素 XML: http:request-builder

設定を手伝ってください

4

5 に答える 5

2

404 エラーは、http:request コネクタが正しくない URL を作成しているために発生します。

HTTP Request Connector 設定に関するMuleSoft ドキュメントから:

You need to provide a path and method for your requests, as well as reference 
a Connector Configuration global element. Note that the path field doesn’t 
define the full path, but rather the subpath, within the host and after the 
optional base path that can be specified in the Connector Configuration global element.

このロジックを使用すると、データをリクエストしようとしているコードで構築される URL はhttps://api.taxjar.com:443/v2/taxes/https://api.taxjar.com/v2/taxesになります。

于 2017-11-10T03:08:12.550 に答える
0

Jason Estevanの答えに完全に同意します。HTTP アウトバウンド コネクタの構成は次のようになります。

<http:request-config name="HTTP_Request_Configuration" protocol="HTTPS" host="api.taxjar.com" port="443" doc:name="HTTP Request Configuration"/>

送信コネクタは次のようになります。

<http:request config-ref="HTTP_Request_Configuration" path="v2/taxes" method="POST" doc:name="Web Service">
        <http:request-builder>
            <http:query-param paramName="Authorization" value="Token token=&quot;8dbc821e651fe0672c4032e65209b37c&quot;"/>
            <http:query-param paramName="Content-Type" value="application/json"/>
        </http:request-builder>
    </http:request>

パスには、ホスト名とポートの後にある URL のパスのみを指定する必要があります。コネクタ構成でホスト名とポートを既に定義しているため、パスには存在しないはずです。

于 2017-11-18T10:27:25.507 に答える