无法创建骆驼 salesforce 端点

Unable to create camel salesforce endpoint

我正在尝试使用 Apache Camel salesforce 组件连接到 salesforce。

这是我尝试开始的一条非常简单的路线:

@Override
public void configure() throws Exception {
    from("salesforce:event/Case__e")
            .to("mock:end");
}

当我尝试启动它时,我收到一个明显的错误提示我没有指定客户端 ID:

Caused by: java.lang.IllegalArgumentException: clientId must be specified
at org.apache.camel.util.ObjectHelper.notNull(ObjectHelper.java:149) ~[camel-util-3.16.0.jar:3.16.0]
at org.apache.camel.component.salesforce.SalesforceLoginConfig.validate(SalesforceLoginConfig.java:238) ~[camel-salesforce-3.16.0.jar:3.16.0]

根据 Camel 文档,这非常有意义,因为必须指定 clentId 参数。为了解决这个问题,我指定了一个 clientId 如下:

@Override
public void configure() throws Exception {
    from("salesforce:event/Case__e?clientId=xyz")
            .to("mock:end");
}

这次尝试启动路线时,我收到一个相当奇怪的错误,抱怨 clientId 是一个未知参数:

Failed to resolve endpoint: salesforce://event/Case__e?clientId=xyz due to: There are 1 parameters that couldn't be set on the endpoint.
Check the uri if the parameters are spelt correctly and that they are properties of the endpoint.
Unknown parameters=[{clientId=xyz}]

不确定我做错了什么以及我应该如何解决这个问题。

提前感谢您的意见。

您的问题与 clientId is a component option 这一事实有关,因此当您尝试将其配置为无法工作的查询参数/端点选项时,必须在组件级别对其进行配置。

根据您使用的运行时,配置组件的方式可能会改变,但思路保持不变。

例如,假设您使用 application.properties 配置您的应用程序,您的 salesforce 组件的配置将如下所示:

在application.properties

# Salesforce credentials
camel.component.salesforce.login-config.client-id=<Your Client ID>
camel.component.salesforce.login-config.client-secret=<Your Client Secret>
camel.component.salesforce.login-config.refresh-token=<Your Refresh Token>
...

这是一个销售人员示例https://github.com/apache/camel-examples/blob/main/examples/salesforce-consumer/