Понимание различий между Fuse и Camel для интеграции с Salesforce - PullRequest
0 голосов
/ 02 мая 2018

Я пытаюсь научиться осуществлять интеграцию с Salesforce, но мне не хватает документации в этой области. У меня есть очень простой маршрут, который я пытаюсь проверить, используя только верблюда.

Это мой маршрут:

 public void configure() throws Exception {
            from("salesforce:query?sObjectQuery="+myQuery)
                .log(body().toString());
 }

По какой-то причине я получаю следующую ошибку при запуске этого маршрута, и я получаю очень минимальное сообщение об ошибке с минимальной полезной информацией. Ошибка

Не удалось создать маршрут route1: Маршрут (route1) [[From [salesforce: query? SObjectQuery]] -> [SetB ... из-за не удалось разрешить конечную точку: salesforce: // query? sObjectQuery = из-за: Невозможно автоматически создать компонент: Salesforce

При поиске ошибки я обнаружил, что эта ошибка обычно вызывается отсутствующей зависимостью для коннектора salesforce внутри pom. Но у меня есть эта зависимость, и я также вижу camel-salesforce.jar в classpath моего проекта.

Я искал примеры работы отдела продаж с Camel и почти ничего не нашел. Я нашел несколько примеров, используя JBoss Fuse. Но Я не могу понять В чем разница между JBoss Fuse и Camel и зачем нужен Jboss. Требуется ли мне предохранитель Jboss для интеграции продаж с верблюдом? Или одного верблюда должно быть достаточно для запуска моего кода? Какой смысл в JBoss Fuse и стоит ли мне его использовать?

Я считаю, что документации по разъему salesforce для Camel очень не хватает, и поэтому я был бы очень признателен за любую информацию об этой ошибке и о разнице между предохранителем JBoss и Camel

1 Ответ

0 голосов
/ 02 мая 2018

Я нашел решение этого. Вам необходимо определить компонент с помощью SalesforceLoginConfig, а затем добавить этот компонент в контекст верблюда. В документации по продажам верблюдов это нигде не упоминается, и ее действительно следует добавить, чтобы сэкономить людям время.

            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);
...