Apache camel では Salesforce を使用する際の DTO である SObject を mvn コマンドから生成できます。
ドキュメントでは「POM にclientId, clientSecret, userName や password を設定するのはよくないから、次のコマンドを発行する方がよいですよ」とあります。
mvn camel-salesforce:generate -DcamelSalesforce.clientId=clientid
-DcamelSalesforce.clientSecret=clientsecret
-DcamelSalesforce.userName=username
-DcamelSalesforce.password=password
.m2 フォルダ配下の setting.xml に pluginGroups タグ配下に pluginGroup として org.apache.camel.maven を追記して、Salesforce 開発環境 での SObject を生成しようと上記のコマンドを実行すると、以下のエラーが発生しました。
[INFO] Logging in to Salesforce
[INFO] Login at Salesforce loginUrl: https://login.salesforce.com/services/oauth2/token
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 8.221 s
[INFO] Finished at: 2019-12-23T08:17:14+09:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.camel.maven:camel-salesforce-maven-plugin:3.0.0:generate (default-cli) on project ins_sfdc: Error connecting to Salesforce: Salesforce login error {errors:[{"errorCode":"invalid_grant","message":"Login err
or code:[invalid_grant] description:[authentication failure]","fields":null}],statusCode:400} -> [Help 1]
ログイン URL が https://login.salesforce.com/services/oauth2/token になっています。
開発環境では URL が https://test.salesforce.com なので(当然ですが)パラメータが異なるためです。
これは上記の mvn コマンドに -DcamelSalesforce.loginUrl=https://test.salesforce.com を付けると解決できました。
mvn camel-salesforce:generate -DcamelSalesforce.clientId=clientid
-DcamelSalesforce.clientSecret=clientsecret
-DcamelSalesforce.userName=username
-DcamelSalesforce.password=password
-DcamelSalesforce.loginUrl=https://test.salesforce.com
実行すると以下のように処理が進みました。
[INFO] Login at Salesforce loginUrl: https://test.salesforce.com/services/oauth2/token
[INFO] Login successful
[INFO] Salesforce login successful
簡単ではありますが、ご参考になればと思います。
Japan Camel User Group(JCUG)では毎月読書会を開いています。毎回すごく勉強になる内容なので、ぜひ遊びに来てください。