嘗試按照WSO2 directions更新salesforce記錄時,出現以下錯誤。WSO2 ESB:使用Salesforce連接器時發生意外字符錯誤
Saleforce適配器 - 誤差注入sObjects到有效載荷:org.apache.axiom.om.OMException:com.ctc.wstx.exc.WstxUnexpectedCharException:在序言意外字符 '{'(代碼123);預計 '<'
<?xml version="1.0" encoding="UTF-8"?>
<proxy
xmlns="http://ws.apache.org/ns/synapse"
xmlns:sfdc="sfdc" name="SalesforceUpdateTest" startOnLoad="true" statistics="enable" trace="enable" transports="http,https">
<target>
<inSequence>
<sequence key="conf:/SalesforceLoginInfo"/>
<payloadFactory>
<format>
<sfdc:sObjects
xmlns:sfdc="sfdc" type="Account">
<sfdc:sObject>
<sfdc:Id>TestId1</sfdc:Id>
<sfdc:ValueToChange>Yes</sfdc:ValueToChange>
</sfdc:sObject>
</sfdc:sObjects>
</format>
<args/>
</payloadFactory>
<salesforce.update>
<allOrNone>0</allOrNone>
<allowFieldTruncate>0</allowFieldTruncate>
<sobjects
xmlns:sfdc="sfdc">{//sfdc:sObjects}
</sobjects>
</salesforce.update>
</inSequence>
<outSequence>
<send/>
</outSequence>
</target>
</proxy>
我使用WSO2 EI 6.1.0和Salesforce的連接器2.0.1。 Salesforce ID TestId1與ValueToChange字段一樣存在。我的SalesforceLoginInfo是正確的(我可以做Salesforce查詢,只是沒有更新)。
試圖解決這個問題,我看到這個問題very similar。但是我已經根據解決方案將這些行添加到了axis2.xml的,重新啓動,問題仍然存在。
<messageBuilder contentType="application/json" class="org.wso2.carbon.integrator.core.json.JsonStreamBuilder"/>
<messageBuilder contentType="text/javascript" class="org.wso2.carbon.integrator.core.json.JsonStreamBuilder"/>
<messageFormatter contentType="application/json" class="org.wso2.carbon.integrator.core.json.JsonStreamFormatter"/>
<messageFormatter contentType="text/javascript" class="org.wso2.carbon.integrator.core.json.JsonStreamFormatter"/>
有誰知道如何解決這個問題?我覺得我只是遵循一個教程(我的代碼幾乎就是給定的wso2 salesforce示例),但問題仍然存在。
更新:爲了減少有關SalesforceLoginInfo調用的混淆,我刪除了該代碼並將salesforce.init放入代碼中。錯誤仍然是一樣的。
<?xml version="1.0" encoding="UTF-8"?>
<proxy
xmlns="http://ws.apache.org/ns/synapse"
xmlns:sfdc="sfdc" name="SalesforceUpdateTest" startOnLoad="true" statistics="enable" trace="enable" transports="http,https">
<target>
<inSequence>
<salesforce.init>
<username>[email protected]</username>
<password>mypasswordandmytoken</password>
<loginUrl>https://test.salesforce.com/services/Soap/u/27.0</loginUrl>
<blocking>true</blocking>
</salesforce.init>
<payloadFactory>
<format>
<sfdc:sObjects
xmlns:sfdc="sfdc" type="Account">
<sfdc:sObject>
<sfdc:Id>TestId1</sfdc:Id>
<sfdc:ValueToChange>Yes</sfdc:ValueToChange>
</sfdc:sObject>
</sfdc:sObjects>
</format>
<args/>
</payloadFactory>
<salesforce.update>
<allOrNone>0</allOrNone>
<allowFieldTruncate>0</allowFieldTruncate>
<sobjects
xmlns:sfdc="sfdc">{//sfdc:sObjects}
</sobjects>
</salesforce.update>
</inSequence>
<outSequence>
<send/>
</outSequence>
</target>
</proxy>
嗨..這ESB的版本使用? –
更新了問題。 wso2ei-6.1.0是我爲esb安裝的。 Salesforce連接器是salesforce-connector-2.0.1 –
嗨..如何在不使用憑據的情況下調用端點?你錯過了這個https://docs.wso2.com/display/ESBCONNECTORS/Configuring+Salesforce+Connector+Operations – Hariprasath