2016-02-29 95 views
1

我有一個Mule應用程序,它使用<http:request連接器通過HTTPS調用外部API。當我在本地構建和部署我的應用程序時,通話正常。當我使用Mule應用程序發送的完全相同的有效載荷對同一個外部API進行郵差調用時,調用工作正常。但是,當我將Mule應用程序部署到Cloudhub併發出請求時 - 我從外部API獲得400響應。Mule HTTPS POST請求在部署到Cloudhub時不起作用

這裏是我的流程:

<http:request-config name="mambuRequestConfiguration" protocol="HTTPS" doc:name="HTTP Request Configuration"> 
    <http:basic-authentication username="${mambu.username}" password="${mambu.password}" preemptive="true" /> 
    <tls:context> 
     <tls:key-store type="jks" path="keystore.jks" alias="${keystore.alias}" keyPassword="${keystore.keypassword}" password="${keystore.password}" /> 
    </tls:context> 
</http:request-config> 

<flow name="createClientDepositAccount"> 
    <dw:transform-message metadata:id="412fd434-12bb-47a3-9605-9bfc1d9fec46" doc:name="Transform Message"> 
     <dw:set-payload><![CDATA[%dw 1.0 
%output application/json 
--- 
{ 
savingsAccount: { 
    accountHolderKey: payload.clientKey, 
    accountHolderType: "CLIENT", 
    productTypeKey: payload.productKey, 
    name: payload.clientProductName, 
    accountType: payload.accountType, 
    accountState: payload.accountState, 
    interestRate: payload.interestRate 
} 
}]]></dw:set-payload> 
    </dw:transform-message> 
    <http:request config-ref="mambuRequestConfiguration" path="${mambu.deposit.path}" method="POST" host="${mambu.host}" port="${mambu.port}" doc:name="Mambu: Create Client Deposit Account"> 
     <http:success-status-code-validator values="0..599"/> 
    </http:request> 
    <dw:transform-message metadata:id="49f1231f-485f-433c-82c4-3d83856ac442" doc:name="Transform Message"> 
     <dw:set-payload><![CDATA[%dw 1.0 
%output application/json 
--- 
{ 
message: "Account created successfully", 
key: payload.savingsAccount.encodedKey 
}]]></dw:set-payload> 
    </dw:transform-message> 
</flow> 

我打電話給外部服務是Mambu,雲銀行平臺。我在我的應用程序中有許多其他流程,都會向其他各種Mambu API發出GET請求 - 所有工作都正常(所有GET請求也通過HTTPS)。我從Mambu得到的響應是400與有效載荷:

{"returnCode":3,"returnStatus":"INVALID_API_OPERATION"}

相關鏈接到Mambu文檔是herehere

我無法複製我在本地實例的Cloudhub中看到的行爲。唯一不同的是這個電話給我正在做的其他人,這是一個POST請求。

回答

0

奇怪的是,對此的解決方案是「關閉並再次打開」,如question I posted on the Mulesoft forum上建議的那樣。我只是從Cloudhub中刪除了該應用程序並重新部署了它,並且所有內容都按預期工作。在Cloudhub中,看起來很奇怪的問題。希望Mulesoft能夠解決...

1

在大多數情況下,這個錯誤與API自動發現被錯誤地配置或損壞有關。如果在Mule應用程序上配置了API自動發現,最好的解決方案是從Mule應用程序中刪除該設置,通過再次啓動該過程來檢查錯誤是否已解決,然後重新配置自動發現。