Понимание разницы между Fuse и Camel для интеграции с Salesforce

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

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

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

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

Failed to create route route1: Route(route1)[[From[salesforce:query?sObjectQuery]] -> [SetB... because of Failed to resolve endpoint: salesforce://query?sObjectQuery= due to: Cannot auto create component: salesforce

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

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

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

JBoss Fuse - коммерческое предложение Red Hat. Вам не нужно смотреть на это, если вы не покупаете у Red Hat их стек промежуточного программного обеспечения. Что касается документации, Camel переделывает свою документацию, которая неуместна. Лучше всего зайти на github в репозиторий Camel, перейти к компоненту Salesforce и просмотреть модульные тесты.

Souciance Eqdam Rashti 02.05.2018 12:07

Спасибо, я проверю. @SoucianceEqdamRashti

malteser 02.05.2018 12:56
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
2
255
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я нашел решение этого. Вам необходимо определить компонент с помощью 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);

Другие вопросы по теме