【发布时间】:2013-10-29 22:57:32
【问题描述】:
我正在使用 mule 独立版 3.4。我正在尝试使用 Salesforce 连接器创建流以执行查询操作,然后将有效负载传递给 spring 组件。结果是组件没有被调用。
<flow name="sfcdContact" doc:name="sfcdContact">
<quartz:inbound-endpoint repeatInterval="2000"
startDelay="3000"
jobName="sfcdContact">
<quartz:event-generator-job/>
</quartz:inbound-endpoint>
<sfdc:query config-ref="Salesforce"
query="${salesforce.query.contact}"
doc:name="sfcdContactQuery"/>
<component>
<spring-object bean="salesForceConsumer"/>
</component>
<catch-exception-strategy doc:name="Catch Exception Strategy">
<flow-ref name="ErrorHandling"/>
</catch-exception-strategy>
</flow>
如果我从流程中删除 sfdc 部分,则成功调用了 spring 组件。如果我从流程中删除组件部分并将其替换为:
<logger message="\#\#\# query operation payload \#[payload]" level="INFO" doc:name="Logger"/>
结果已成功输入日志。所以看起来各个部分都可以正常工作。
我将日志设置为调试,并且没有报告错误。
这是 Java 代码:
public class SalesForceConsumer {
public Object consume(@Payload Object payload) throws Exception {
System.out.println("SalesForceConsumer::consume called");
return payload;
}
}
我也尝试将签名修改为:
public Object consume(@Payload HashMap<String,Object> payload)
从连接器返回文档指示的内容。
Salesforce 连接器是否有任何原因无法与 bean 组合,或者我的配置不正确?谢谢。
【问题讨论】:
-
添加你的组件的代码?还要提到它是否给出错误?怎么发现它没有调用组件?
-
嗨 user1760178 - 我用您要求的信息更新了我的问题。谢谢。
-
尝试通过实现 Callable Interface 将您的组件修改为 Mule 感知组件。您可以访问 MuleMessage。您可以调试和检查。
-
onCall() 方法永远不会被执行。无论如何谢谢。
-
顺便问一下 Salesforce 问题可以直接在salesforce.stackexchange.com
标签: spring salesforce mule