![](/img/trans.png)
[英]Apache camel 2.16 enrich - No consumers available on endpoint in JUnit
[英]Apache Camel - No Consumers available on endpoint in JUNIT test
我正在使用骆驼2.13.1,并且行为异常。 如果我想测试我的路线,我已经用XML编写了。
我总是收到一条消息,指出没有可用的消费者。 如果我将其部署在Tomcat上,则一切工作正常。 即使在启动时,我也可以看到日志清楚地指出该路由已消耗。
我的路线如下所示:
<route id="demo-polling-consumer">
<from uri="timer:demo-polling?fixedRate=true&period=60s" />
<to uri="bean:demo?method=selectDemoCustomer" />
<to uri="direct-vm:demo-get-new-orders" />
<split>
<simple>${body}</simple>
<to uri="direct-vm:demo-get-order-details" />
</split>
</route>
<route id="epunkt-get-new-jobadverts">
<from uri="direct-vm:demo-get-order-details" />
<to uri="bean:demo?method=getOrderDetail" />
</route>
我像这样开始测试:
@RunWith(SpringJUnit4ClassRunner.class)
@DirtiesContext(classMode = ClassMode.AFTER_EACH_TEST_METHOD)
@ContextConfiguration(locations = { "classpath:spring-module.xml" })
public class FirstBirdContextTest {
@EndpointInject(uri = "mock:out")
private MockEndpoint mockOut;
@Produce(uri = "direct:in")
private ProducerTemplate in;
@Test
public void testPayloadIsTransformed() throws InterruptedException, FileNotFoundException, JAXBException {
}
我基本上只是从春天开始。 spring-module.xml加载多个camel-context.xml文件。
错误提示:
org.apache.camel.component.directvm.DirectVmConsumerNotAvailableException:端点上没有可用的使用者:Endpoint [direct-vm:demo-get-order-details]。 Exchange [消息:[[Ljava.lang.Object; @ 6dd62653]]
启动日志说
[主要] SpringCamelContext信息路线:orderdetails开始并在以下位置消费:Endpoint [direct-vm:demo-get-order-details]
再次。 如果我将其部署在tomcat上,则一切正常。
该路线应有一个出发地,目前已丢失
<route id="epunkt-get-new-jobadverts">
<to uri="direct-vm:demo-get-order-details" />
<to uri="bean:demo?method=getOrderDetail" />
</route>
在调用目标路由时设置block=true
可以解决该问题,即
<to uri="direct-vm:demo-get-order-details?block=true" />
现在我宁愿假设它只是在服务器上运行,这只是一个巧合,并且可能也很少会在服务器上给出相同的错误,即在服务器启动且目标路由为还没有。 通常这不会真正发生……但是有可能,因此目标路线上的路障还是值得的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.