猿问

创建 ActiveMQ 代理在后续测试中失败,找不到服务:

我在不同的测试类中对我的骆驼路线进行了多个单元测试。第一个测试类运行良好,随后的测试类失败


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();

}

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


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


翻过高山走不出你
浏览 101回答 1
1回答

胡子哥哥

我不知道是否有人真的再使用骆驼了,因为这个问题在 5 天内被查看了多达 11 次,但无论如何这里是答案:这是正确的设置@Beforepublic void setUp() throws Exception {    super.setUp();    brokerSvc = new BrokerService();    brokerSvc.setBrokerName("TestBroker");    brokerSvc.addConnector("tcp://localhost:61616");    brokerSvc.start();}这是正确的拆解@Afterpublic void tearDown() throws Exception {    super.tearDown();    brokerSvc.stop();    brokerSvc = null;}
随时随地看视频慕课网APP

相关分类

Java
我要回答