了解Salesforce Integration的Fuse和Camel之间的差异

时间:2018-05-02 09:22:07

标签: java jboss apache-camel salesforce

我正在努力学习如何进行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之间差异的任何信息

1 个答案:

答案 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);