Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache camel 从seda队列中获取null_Apache Camel_Junit4 - Fatal编程技术网

Apache camel 从seda队列中获取null

Apache camel 从seda队列中获取null,apache-camel,junit4,Apache Camel,Junit4,我有一条骆驼路线,看起来像这样: bean类如下所示: @组件 公共类BeanName{ 私有最终静态记录器Logger=Logger.getLogger(BeanName.class.getName()); 公共静态字符串消息=null; 公共静态字符串映射(字符串自定义){ 消息=自定义; 退货习惯; } } 我编写了一个单元测试,它应该从bean中获取数据,然后将其与来自seda:external的数据进行比较。问题是,当我从seda队列中获取数据时,我将变为null。

我有一条骆驼路线,看起来像这样:


bean类如下所示:

@组件
公共类BeanName{
私有最终静态记录器Logger=Logger.getLogger(BeanName.class.getName());
公共静态字符串消息=null;
公共静态字符串映射(字符串自定义){
消息=自定义;
退货习惯;
}       
}
我编写了一个单元测试,它应该从bean中获取数据,然后将其与来自
seda:external
的数据进行比较。问题是,当我从seda队列中获取数据时,我将变为null。下面是单元测试:

公共类测试{
@端点注入
ProducerTemplate ProducerTemplate;
@端点注入
消费者模板消费者模板;
@自动连线
豆名豆名;
@试验
public void testName()引发异常{
发送体(“seda:内部”,“再见”);
Thread.sleep(10000);//需要睡眠,以便在访问之前执行bean
//beanName.message;
String message=beanName.message;
LOGGER.info(“打印”+消息);//打印(再见)
String body=consumerTemplate.receiveBodyNoWait(“seda:external”,String.class);
LOGGER.info(“Body是”+Body);//打印空值
}

队列给出
null
的任何原因?

其到期并发,并且您使用ReceiveBodyNoWait进行快速检查。相反,使用receiveBody并提供超时值,以避免在队列上没有消息时等待

或者,如果您仍要使用receiveBodyNoWait,请在代码中添加睡眠。

您所说的“其到期并发”是什么意思?此外,如果我使用receiveBody,它会卡在consumerTemplate.receiveBody上,因为队列中没有任何内容。此外,您的意思是,在使用receiveBodyNoWait时,我应该在代码中使用睡眠,我已经在这样做了。:)。。