Apache Куратор ZooKeeper Unit Test Giving Error - PullRequest
0 голосов
/ 07 мая 2020

Я пытаюсь писать модульные тесты для ZooKeeper, используя библиотеки Apache Curator. Я использую зависимость maven от куратора. Мой код выглядит так:

    final TestingCluster testingCluster = new TestingCluster(3);
    testingCluster.start();

Но я получаю эту ошибку:

Exception in thread "Thread-0" java.lang.NoSuchFieldError: configFileStr
at org.apache.curator.test.QuorumConfigBuilder$1.<init>(QuorumConfigBuilder.java:142)
at org.apache.curator.test.QuorumConfigBuilder.buildConfig(QuorumConfigBuilder.java:137)
at org.apache.curator.test.TestingZooKeeperServer$1.run(TestingZooKeeperServer.java:157)
at java.lang.Thread.run(Thread.java:748)

Я пробовал несколько комбинаций версий куратора с версиями ZooKeeper. В настоящее время я использую следующие зависимости maven:

    <dependency>
        <groupId>org.apache.curator</groupId>
        <artifactId>curator-recipes</artifactId>
        <version>4.3.0</version>
        <exclusions>
            <exclusion>  <!-- declare the exclusion here -->
                <groupId>org.apache.zookeeper</groupId>
                <artifactId>zookeeper</artifactId>
            </exclusion>
        </exclusions>
    </dependency>

    <dependency>
        <groupId>org.apache.curator</groupId>
        <artifactId>curator-framework</artifactId>
        <version>4.3.0</version>
        <exclusions>
            <exclusion>  <!-- declare the exclusion here -->
                <groupId>org.apache.zookeeper</groupId>
                <artifactId>zookeeper</artifactId>
            </exclusion>
        </exclusions>
    </dependency>

    <dependency>
        <groupId>org.apache.curator</groupId>
        <artifactId>curator-client</artifactId>
        <version>4.3.0</version>
        <exclusions>
            <exclusion>  <!-- declare the exclusion here -->
                <groupId>org.apache.zookeeper</groupId>
                <artifactId>zookeeper</artifactId>
            </exclusion>
        </exclusions>
    </dependency>

    <dependency>
        <groupId>org.apache.curator</groupId>
        <artifactId>curator-x-async</artifactId>
        <version>4.3.0</version>
        <exclusions>
            <exclusion>  <!-- declare the exclusion here -->
                <groupId>org.apache.zookeeper</groupId>
                <artifactId>zookeeper</artifactId>
            </exclusion>
        </exclusions>
    </dependency>

    <!-- https://mvnrepository.com/artifact/org.apache.zookeeper/zookeeper -->
    <dependency>
        <groupId>org.apache.zookeeper</groupId>
        <artifactId>zookeeper</artifactId>
        <version>3.4.13</version>
    </dependency>

Любая помощь приветствуется!

Ответы [ 2 ]

0 голосов
/ 30 июля 2020

https://github.com/apache/curator/pull/248/commits/e37cb59c1e9b7ac7f21d3c3444b6bb789a3e3708

Если вы хотите sh использовать {{TestingServer}} куратора с ZooKeeper 3.4.x, вы должны использовать его старую версию.

0 голосов
/ 08 мая 2020

Я заметил, что вы не исключаете ZooKeeper из зависимости рецептов. Кроме того, вы показываете только частичный помпон. Вы читали это до c? http://curator.apache.org/zk-compatibility.html - см. Раздел «Тестирование с ZooKeeper 3.4.x».

...