You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

订阅Salesforce变更数据捕获事件时遇连接超时问题求助

Salesforce Change Data Capture 连接超时问题排查与解决

问题背景

我按照官方教程尝试消费Salesforce Change Data Capture事件,执行以下步骤后出现连接超时错误:

  1. 克隆EMP-Connector仓库:
    git clone https://github.com/forcedotcom/EMP-Connector.git
    
  2. 构建项目:
    cd EMP-Connector
    mvn clean package
    
  3. 运行连接命令:
    java -jar target/emp-connector-0.0.1-SNAPSHOT-phat.jar <username> <password> /data/Employee__ChangeEvent
    

报错信息

SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
java.util.concurrent.ExecutionException: java.net.SocketTimeoutException: Connect Timeout
        at org.eclipse.jetty.client.util.FutureResponseListener.getResult(FutureResponseListener.java:118)
        at org.eclipse.jetty.client.util.FutureResponseListener.get(FutureResponseListener.java:101)
        at org.eclipse.jetty.client.HttpRequest.send(HttpRequest.java:683)
        at com.salesforce.emp.connector.LoginHelper.login(LoginHelper.java:124)
        at com.salesforce.emp.connector.LoginHelper.login(LoginHelper.java:100)
        at com.salesforce.emp.connector.LoginHelper.login(LoginHelper.java:92)
        at com.salesforce.emp.connector.example.LoginExample.lambda$main$0(LoginExample.java:48)
        at com.salesforce.emp.connector.example.BearerTokenProvider.login(BearerTokenProvider.java:24)
        at com.salesforce.emp.connector.example.LoginExample.main(LoginExample.java:56)
Caused by: java.net.SocketTimeoutException: Connect Timeout
        at org.eclipse.jetty.io.ManagedSelector$Connect.run(ManagedSelector.java:801)
        at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
        at java.util.concurrent.FutureTask.run(Unknown Source)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(Unknown Source)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
        at java.lang.Thread.run(Unknown Source)

解决建议

1. 网络与代理检查

  • 确认本地网络可正常访问Salesforce,直接登录Salesforce验证连通性。
  • 企业网络下需配置JVM代理参数,运行命令时添加:
    java -Dhttp.proxyHost=<代理地址> -Dhttp.proxyPort=<代理端口> -Dhttps.proxyHost=<代理地址> -Dhttps.proxyPort=<代理端口> -jar target/emp-connector-0.0.1-SNAPSHOT-phat.jar <username> <password> /data/Employee__ChangeEvent
    
  • 若使用VPN,确保连接正常且Salesforce域名在路由范围内。

2. 凭证与实例URL验证

  • 用户名+密码需附加安全令牌(未设置IP白名单时必填),确认凭证正确。
  • 指定Salesforce实例URL,修改运行命令:
    java -jar target/emp-connector-0.0.1-SNAPSHOT-phat.jar <username> <password> <实例URL> /data/Employee__ChangeEvent
    
    示例实例URL:https://na1.salesforce.com

3. 调整超时参数

  • 延长连接超时时间,添加JVM参数:
    java -Demp.connector.login.timeout=30000 -jar target/emp-connector-0.0.1-SNAPSHOT-phat.jar <username> <password> /data/Employee__ChangeEvent
    
    (30000为30秒,可按需调整)

4. 防火墙与IP白名单检查

  • 确认本地防火墙未阻止Java程序的HTTPS(443端口)请求。
  • 若Salesforce组织设置了IP白名单,将本地IP加入允许列表。

5. 更新EMP-Connector版本

  • 拉取最新代码重新构建,修复已知bug:
    git pull origin main
    mvn clean package
    

内容的提问来源于stack exchange,提问作者SharpCoder

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 17:45:29