gpt4 book ai didi

java - 创建 ActiveMQ 代理在后续测试中失败,找不到服务 : 'META-INF/services/org/apache/activemq/wireformat/default'

转载 作者:行者123 更新时间:2023-12-02 06:09:13 29 4
gpt4 key购买 nike

我在不同的测试类中对我的 Camel 路线进行了多个单元测试。第一个测试类运行良好,后续测试类失败并显示

Service not found:'META-INF/services/org/apache/activemq/wireformat/default'

我想测试我的 JMS 路由,因此我必须在测试中启动一个临时的 activemq 代理。

我已经尝试销毁我在 @BeforeClass 方法中创建的代理资源。但这似乎并没有什么区别。

这就是我在测试类中设置代理的方式:

@BeforeClass
public static void setUpClass() throws Exception {
brokerSvc = new BrokerService();
brokerSvc.setBrokerName("TestBroker");
brokerSvc.addConnector("tcp://localhost:61616");
brokerSvc.start();
}

这就是我拆掉它之后的方式

@AfterClass
public static void teardownClass() throws Exception {
brokerSvc.stop();
brokerSvc.waitUntilStopped();
}

我希望这会释放分配的资源,以便我可以在后续测试中使用相同的方法来设置和拆除临时代理,但它只会抛出上述错误。

如何安全地为每个测试类创建临时代理?

最佳答案

我不知道是否有人真的再使用 Camel 了,因为这个问题在 5 天内被浏览了 11 次,但无论如何,答案如下:

这是正确的设置

@Before
public void setUp() throws Exception {
super.setUp();
brokerSvc = new BrokerService();
brokerSvc.setBrokerName("TestBroker");
brokerSvc.addConnector("tcp://localhost:61616");
brokerSvc.start();
}

这是正确的拆解

@After
public void tearDown() throws Exception {
super.tearDown();
brokerSvc.stop();
brokerSvc = null;
}

关于java - 创建 ActiveMQ 代理在后续测试中失败,找不到服务 : 'META-INF/services/org/apache/activemq/wireformat/default' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55923825/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com