我在测试类中配置了一个简单的路由,见下文:
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.component.mock.MockEndpoint;
import org.apache.camel.test.junit4.CamelTestSupport;
import org.junit.Test;
public class TestClass extends CamelTestSupport {
String ftpSourceUri = "ftp://some.server.com:21?username=user&password=secret&fileName=test.csv";
@Test
public void testRouteConsumesTestFileFromFTPEndpoint() throws Exception{
MockEndpoint mock = getMockEndpoint("mock:result");
mock.expectedMinimumMessageCount(1);
assertMockEndpointsSatisfied();
}
@Override
protected RouteBuilder createRouteBuilder() throws Exception {
return new RouteBuilder() {
@Override
public void configure() throws Exception {
from(ftpSourceUri)
.multicast().to("mock:result","stream:out");
}
};
}
}
我已经通过FileZilla验证了身份验证详细信息和文件位置。
这是我执行上述操作时由camel生成的跟踪片段 代码:
[main] DefaultCamelContext INFO Apache Camel 2.14.0(CamelContext:camel-1)正在启动[
main] DefaultManagementStrategy INFO JMX被禁用[
main] DefaultTypeConverter INFO已加载192个类型的转换器 [main] DefaultCamelContext INFO AllowUseOriginalMessage已启用。如果访问原始邮件 不需要,然后建议关闭此选项 提高绩效。 [主要] DefaultCamelContext INFO StreamCaching未使用。如果 使用流然后建议启用流缓存。看更多 详细信息在[main] DefaultCamelContext
信息路由:route1启动并消耗:端点['端点 url']< - 我显然不能发布超过2个链接[
main] DefaultCamelContext INFO共1条路线,其中1条 开始了。 [main] DefaultCamelContext
信息Apache Camel 2.14.0(CamelContext:camel-1)在0.140开始 秒[主] MockEndpoint
INFO断言:端点[mock:// result]得到满足 [tal-music-ftp.amazonmp3.com:21] FtpConsumer INFO 已连接并登录:['端点网址']< - 我无法发布更多信息 明显超过2个链接[主要] AmazonMP3SimpleFTPRouteTest INFO ************************************************** ****************************** [main] AmazonMP3SimpleFTPRouteTest INFO 测试完成: testRouteConsumesTestFileFromFTPEndpoint(com.test.camel.SimpleFTPRouteTest) [main] AmazonMP3SimpleFTPRouteTest INFO 采取:10.010秒(10010毫秒)[主要] AmazonMP3SimpleFTPRouteTest INFO ************************************************** ****************************** [main] DefaultCamelContext INFO Apache Camel 2.14.0(CamelContext:camel-1)正在关闭[
main] DefaultShutdownStrategy INFO开始优雅 关闭1路由(超时10秒)[el-1]线程#1 - ShutdownTask] DefaultShutdownStrategy INFO在那里等待 仍有1个机上和待完成的交换完成,超时10 秒。 [el-1] thread#1 - ShutdownTask] DefaultShutdownStrategy
INFO等待,因为仍有1个机上和待定交换 完成,在9秒内超时。 [el-1]线程#1 - ShutdownTask] DefaultShutdownStrategy INFO等待仍然有1 飞行和待定交换完成,8秒内超时。 [el-1] thread#1 - ShutdownTask] DefaultShutdownStrategy INFO 等待仍有1个机上和待定交换 完成,在7秒内超时。 [el-1]线程#1 - ShutdownTask] DefaultShutdownStrategy INFO等待仍然有1 飞行和待定交换完成,在6秒内超时。 [el-1] thread#1 - ShutdownTask] DefaultShutdownStrategy INFO 等待仍有1个机上和待定交换 完成,在5秒内超时。 [el-1]线程#1 - ShutdownTask] DefaultShutdownStrategy INFO等待仍然有1 飞行和待定交换完成,4秒内超时。 [el-1] thread#1 - ShutdownTask] DefaultShutdownStrategy INFO 等待仍有1个机上和待定交换 完成,3秒内超时。 [el-1]线程#1 - ShutdownTask] DefaultShutdownStrategy INFO等待仍然有1 飞行和待定交换完成,2秒内超时。 [el-1] thread#1 - ShutdownTask] DefaultShutdownStrategy INFO 等待仍有1个机上和待定交换 完成,1秒内超时。 [主要] DefaultShutdownStrategy WARN发生超时。强迫 现在要关闭的路线。某些资源可能仍在运行。 [el-1] thread#1 - ShutdownTask] DefaultShutdownStrategy WARN 在正常关机期间等待中断,将强行执行 现在关机。 [el-1] thread#1 - ShutdownTask] DefaultShutdownStrategy 信息路由:route1关闭完成,正在消耗: 端点['端点网址']< - 我显然不能发布2个以上的链接 [main] DefaultShutdownStrategy INFO 在52秒内完成1条路线的正常关闭[
main] DefaultCamelContext INFO Apache Camel 2.14.0 (CamelContext:camel-1)正常运行时间1分钟[
main] DefaultCamelContext INFO Apache Camel 2.14.0 (CamelContext:camel-1)在52.486秒内关闭
如果只是下载文件,我该怎么办?
答案 0 :(得分:4)
默认情况下,MockEndpoint将在单元测试10秒后超时。因此,您需要为FTP下载和处理文件设置更长的等待时间。
您可以传入超时值,例如
assertMockEndpointsSatisfied(5, TimeUnit.MINUTES);