有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

maven EmbeddedKafka/Zookeeper由于ZkInterruptedException:java而无法启动。中断异常

我正在尝试将EmbeddedKafka(https://github.com/spring-projects/spring-kafka/blob/master/src/reference/asciidoc/testing.adoc)与我的单元测试集成起来

不总是,但在EmbeddedKafka启动期间,我经常会出错

2019-10-08T11:23:43.894Z INFO  [main] org.apache.zookeeper.server.ZooKeeperServer: Server environment:java.io.tmpdir=C:\tmp\
2019-10-08T11:23:43.894Z INFO  [main] org.apache.zookeeper.server.ZooKeeperServer: Server environment:java.compiler=<NA>
2019-10-08T11:23:43.894Z INFO  [main] org.apache.zookeeper.server.ZooKeeperServer: Server environment:os.name=Windows 10
2019-10-08T11:23:43.894Z INFO  [main] org.apache.zookeeper.server.ZooKeeperServer: Server environment:os.arch=amd64
2019-10-08T11:23:43.894Z INFO  [main] org.apache.zookeeper.server.ZooKeeperServer: Server environment:os.version=10.0
2019-10-08T11:23:43.894Z INFO  [main] org.apache.zookeeper.server.ZooKeeperServer: Server environment:user.name=user
2019-10-08T11:23:43.894Z INFO  [main] org.apache.zookeeper.server.ZooKeeperServer: Server environment:user.home=C:\Users\user
2019-10-08T11:23:43.894Z INFO  [main] org.apache.zookeeper.server.ZooKeeperServer: Server environment:user.dir=C:\work\
2019-10-08T11:23:43.913Z INFO  [main] org.apache.zookeeper.server.ZooKeeperServer: Created server with tickTime 500 minSessionTimeout 1000 maxSessionTimeout 10000 datadir C:\tmp\kafka-2406612557331641452\version-2 snapdir C:\tmp\kafka-919479945966258903\version-2
2019-10-08T11:23:43.923Z INFO  [main] org.apache.zookeeper.server.NIOServerCnxnFactory: binding to port /127.0.0.1:0
Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0.146 sec <<< FAILURE! - in kafka.KafkaTopicUtilsTest
kafka.KafkaTopicUtilsTest  Time elapsed: 0.146 sec  <<< ERROR!
org.I0Itec.zkclient.exception.ZkInterruptedException: java.lang.InterruptedException
Caused by: java.lang.InterruptedException

波姆。xml:

       <dependency>
            <groupId>org.apache.kafka</groupId>
            <artifactId>kafka_2.11</artifactId>
            <version>2.2.1</kafka>
       </dependency>
       <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>5.0.7.RELEASE</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-test</artifactId>
            <version>5.0.7.RELEASE</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.kafka</groupId>
            <artifactId>spring-kafka-test</artifactId>
            <version>2.2.9.RELEASE</version>
            <scope>test</scope>
        </dependency>

卡夫卡托皮克蒂斯特测试。通过@Rule进行java服务器初始化:

@RunWith(MockitoJUnitRunner.class)
public class KafkaTopicUtilsTest {
    static final String INITIAL_TOPIC = "initial_topic";

    @ClassRule
    public static EmbeddedKafkaRule embeddedKafka = new EmbeddedKafkaRule(1, true, 5, INITIAL_TOPIC);
   ...
}

如前所述,当我在InteliJ中运行测试时,它几乎总是工作得很好

从INteliJ执行(运行“KafkaTopicUtilsTest”)可以正常工作

通过mavenmvn clean install执行测试失败

显式测试执行mvn-Dtest=KafkaTopicUtilsTest工作正常

有人面临这样的问题吗?有什么不对劲的线索吗

问题已解决

这个问题与其他测试用例有关。另一个测试(不使用EmbeddedKafka)是抛出和InterrupedException,并检查代码是否对其做出正确反应。通过调用线程保持中断状态。currentThread()。中断()。看起来虚拟机保持中断状态并嵌入卡夫卡对此作出反应


共 (0) 个答案