salesforcerest.update 不适用于 WSO2 EI 6.1.1

salesforcerest.update not working in WSO2 EI 6.1.1

我正在使用 wso2 ei 中的 Salesforce Rest 连接器执行 Salesforce 更新操作。这里的问题是记录没有更新,它在形成请求负载后显示如下异常。 异常:

|**TID: [-1234] [] [2019-12-06 05:03:05,191] ERROR {org.apache.synapse.commons.json.JsonUtil} - #getNewJsonPayload. Could not save JSON payload. Invalid input stream found. MessageID: urn:uuid:33275d28-c55d-4a9e-bbcd-17d60cc38d1e {org.apache.synapse.commons.json.JsonUtil} TID: [-1234] [] [2019-12-06 05:03:05,192] ERROR {org.apache.synapse.mediators.transform.PayloadFactoryMediator} - Error creating JSON Payload from source Lead {org.apache.synapse.mediators.transform.PayloadFactoryMediator}**

代码片段:

<api xmlns="http://ws.apache.org/ns/synapse" name="TestImageAPI" context="/imageapi">
   <resource methods="GET" protocol="http https">
      <inSequence>
         <log level="custom" separator=",**, " description="FaultSequence">
            <property name="=====TestImageAPI=====" value="called===="/>
         </log>
         <property name="ValuationId" value="00Q5500000AGHikEAH" scope="default" type="STRING"/>
         <property name="First_Image_Name__c" value="cbimage" scope="default" type="STRING"/>
         <property name="ObjectName" value="Lead" scope="default" type="STRING"/>
         <payloadFactory media-type="json" description="Form Response Payload">
            <format>{"Lead_Type__c":""}</format>
            <args>
               <arg value="Phone"/>
            </args>
         </payloadFactory>
         <property name="fieldAndValue" expression="json-eval($.)" scope="default" type="STRING"/>
         <log level="custom">
            <property name="===FirstImagepayload=====" expression="$ctx:fieldAndValue"/>
         </log>
         <sequence key="QRSag_VBSalesforceInitializer" description="Load Configurations"/>
         <salesforcerest.init>
            <accessToken>{$ctx:accessToken}</accessToken>
            <apiVersion>{$ctx:apiVersion}</apiVersion>
            <hostName>{$ctx:hostName}</hostName>
            <refreshToken>{$ctx:refreshToken}</refreshToken>
            <clientSecret>{$ctx:clientSecret}</clientSecret>
            <clientId>{$ctx:clientId}</clientId>
            <apiUrl>{$ctx:apiUrl}</apiUrl>
            <registryPath>{$ctx:registryPath}</registryPath>
            <intervalTime>{$ctx:intervalTime}</intervalTime>
         </salesforcerest.init>
         <property name="SalesforceAccessToken" expression="json-eval($.access_token)" scope="default" type="STRING"/>
         <log level="full"/>
         <property xmlns:ns="http://org.apache.synapse/xsd" name="Authorization" expression="fn:concat('Bearer ', get-property('SalesforceAccessToken'))" scope="transport" type="STRING" description="Authorization"/>
         <salesforcerest.update>
            <sObjectName>{$ctx:ObjectName}</sObjectName>
            <Id>{$ctx:ValuationId}</Id>
            <fieldAndValue>{$ctx:fieldAndValue}</fieldAndValue>
         </salesforcerest.update>
      </inSequence>
      <outSequence/>
      <faultSequence/>
   </resource>
</api>

注意:在服务器和 ESB 项目中添加了 Salesforce Rest 连接器

谁能给我一个解决方案吗??

我已经实现了上述用例。仅供参考,

<property description="Authorization" expression="fn:concat('Bearer ', get-property('SalesforceAccessToken'))" name="Authorization" scope="transport" type="STRING" xmlns:ns="http://org.apache.synapse/xsd"/>
                                                <payloadFactory description="Form Response Payload" media-type="json">
                                                    <format>{"First_Image_Name__c":""}</format>
                                                    <args>
                                                        <arg evaluator="xml" expression="$ctx:First_Image_Name__c"/>
                                                    </args>
                                                </payloadFactory>
                                                <log level="custom">
                                                    <property expression="json-eval($.)" name="===FirstImagepayload====="/>
                                                </log>
                                                <property expression="json-eval($.)" name="fieldAndValue" scope="default" type="STRING"/>
                                                <property name="messageType" scope="axis2" type="STRING" value="application/json"/>
                                                <property name="OUT_ONLY" scope="default" type="STRING" value="false"/>
                                                <property expression="fn:concat($ctx:instance_url,'/services/data/v47.0/sobjects/Product2/',$ctx:StockID)" name="uri.var.ImageUpload" scope="default" type="STRING"/>
                                                <property description="Authorization" expression="fn:concat('Bearer ', get-property('SalesforceAccessToken'))" name="Authorization" scope="transport" type="STRING" xmlns:ns="http://org.apache.synapse/xsd"/>
                                                <log level="custom">
                                                    <property expression="$ctx:uri.var.ImageUpload" name="===SalesforceLink========="/>
                                                </log>
                                                <call description="ImageuploadEndpoint">
                                                    <endpoint>
                                                        <http method="patch" uri-template="{uri.var.ImageUpload}"/>
                                                    </endpoint>
                                                </call>
                                                <log level="full" separator="=== First Image Name Update Response ==="/>