salesforce EMP 连接器 API 版本 37.0 失败,错误消息不受支持 API 版本

salesforce EMP connector API version 37.0 failing with error message unsupported API version

我正在使用 emp-connector 来使用 salesforce straming API,我从 salesforce 文档中的 LogingExample 开始,它的工作文件用于 API 版本 36.0,但是当我尝试使用 API 版本 37.0.

我收到以下回复

[{"channel":"/meta/handshake","error":"400::Unsupported API version. Only API versions '35.0' and '36.0' are supported.","successful":false}]

当我指定 API 版本 36.0 时,我的代码工作正常并通过 PushTopic

接收事件

我知道应该支持 API 版本 37.0,所以无法找出我做错了什么?

代码没有问题,因为我指定API版本36.0时它工作正常,仍然将代码粘贴在这里以供参考

public class SFPoc {
public static void main(String[] argv) throws Exception {
    String userName = "<someuser>";
    String password = "<pwd>";
    /*String pushTopicName = "/topic/InvoiceStatementUpdates";*/
    String pushTopicName = "/topic/Lead2";
    long replayFrom = EmpConnector.REPLAY_FROM_EARLIEST;
    String securityToken = "<securityToken>";

    BayeuxParameters custom = getBayeuxParamWithSpecifiedAPIVersion("37.0");
    BayeuxParameters params = null;
    try {
        params = login(userName, password +  securityToken, custom);
    } catch (Exception e) {
        e.printStackTrace();
    }

    Consumer<Map<String, Object>> consumer = event -> System.out.println(String.format("Received:\n%s", event));
    EmpConnector connector = new EmpConnector(params);

    connector.start().get(10, TimeUnit.SECONDS);

    TopicSubscription subscription = connector.subscribe(pushTopicName, replayFrom, consumer).get(10, TimeUnit.SECONDS);

    System.out.println(String.format("Subscribed: %s", subscription));
}

private static BayeuxParameters getBayeuxParamWithSpecifiedAPIVersion(String apiVersion) {
    BayeuxParameters params = new BayeuxParameters() {

        @Override
        public String version() {
            return apiVersion;
        }

        @Override
        public String bearerToken() {
            return null;
        }

    };
    return  params;
}
}

我已经在 emp-connector 中推送了一项更改,修改了版本 < 37 的端点。你能试试这个版本,看看是否能解决你的问题吗?