gpt4 book ai didi

java - Junit - 通过注释加载 Spring XML 配置

转载 作者:搜寻专家 更新时间:2023-11-01 03:49:38 24 4
gpt4 key购买 nike

我正在使用 Camel 2.15.2、Spring 4.1.7.RELEASE、CXF 3.0.4、Junit 4.12。

当我运行以下测试时,加载 Spring 应用程序上下文失败:

@RunWith(CamelSpringJUnit4ClassRunner.class)
@BootstrapWith(CamelTestContextBootstrapper.class)
@ContextConfiguration(locations=
{
"classpath:com/me/someFile.xml",
"classpath:META-INF/spring/someFile.xml"
})
public class MyRouteTest extends CamelTestSupport
{
//...
}

这是我遇到的异常:

Caused by: java.lang.IllegalArgumentException: Cannot find RouteContext with id someRoute
at org.apache.camel.model.RouteContextRefDefinitionHelper.lookupRoutes(RouteContextRefDefinitionHelper.java:65)

但是当我运行这个测试时,Spring 应用程序上下文成功加载:

public class MyRouteTest extends CamelSpringTestSupport
{
@Override
protected AbstractApplicationContext createApplicationContext()
{
return new ClassPathXmlApplicationContext(new String[]
{
"classpath:com/me/someFile.xml",
"classpath:META-INF/spring/someFile.xml"
});
}

//...
}

为什么第一种情况会失败?

这两种加载Spring应用上下文的方式不是等价的吗?

最佳答案

我想答案和这个问题是一样的。 AbstractApplicationContext versus ApplicationContext如果没有看到您的实际上下文文件,就很难确切地了解为什么 @ContextConfiguration 注释所需的更严格的 ApplicationContext 实现失败了。希望这对您有所帮助!

关于java - Junit - 通过注释加载 Spring XML 配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31950979/

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