我正在努力学习如何进行Salesforce集成,但我发现该领域的文档非常缺乏。我有一个非常简单的路线,我试图仅使用骆驼进行测试。
这是我的路线:
public void configure() throws Exception {
from("salesforce:query?sObjectQuery="+myQuery)
.log(body().toString());
}
出于某种原因,我在运行此路由时遇到以下错误,并且收到一条非常小的错误消息,几乎没有任何有用的信息。错误是
创建路由route1失败: 路由(route1)[[来自[salesforce:query?sObjectQuery]] - > [组B ... 因为无法解析端点: salesforce:// query?sObjectQuery =由于:无法自动创建组件: 销售人员
在搜索错误时,我发现此错误通常是由于pom内的salesforce连接器缺少依赖性而导致的。但我有这种依赖关系,并且在项目的类路径中也看到了camel-salesforce.jar。
我已经研究过使用Camel的salesforce的工作示例,我几乎找不到任何东西。我找到了一些使用JBoss Fuse的例子。但是我无法理解 JBoss Fuse和Camel之间的区别是什么以及为什么需要Jboss。我是否需要Jboss保险丝才能与骆驼进行销售人员整合?或者应该单独使用骆驼来运行我的代码? JBoss Fuse的重点是什么?我应该使用它吗?
我发现骆驼的salesforce连接器的文档非常缺乏,因此我非常感谢有关此错误以及JBoss fuse和Camel之间差异的任何信息
答案 0 :(得分:0)
我找到了解决方法。您需要使用SalesforceLoginConfig定义组件,然后必须将此组件添加到camel上下文中。骆驼的salesforce文档在任何地方都没有提到这一点,它确实应该被添加以节省人们的时间。
SalesforceComponent component = new SalesforceComponent();
final SalesforceEndpointConfig config = new SalesforceEndpointConfig();
config.setApiVersion(System.getProperty("apiVersion", "28.0"));
component.setConfig(config);
SalesforceLoginConfig loginConfig = new SalesforceLoginConfig();
loginConfig.setClientId("clientId");
loginConfig.setClientSecret("ClientSecret");
loginConfig.setUserName("username");
loginConfig.setPassword("password");
loginConfig.setLoginUrl("url");
component.setLoginConfig(loginConfig);
context.addComponent("salesforce", component);