Eri*_*ong 3 java apache ftp apache-camel
我在测试类中配置了一个简单的路由,如下所示:
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");
}
};
}
}
Run Code Online (Sandbox Code Playgroud)
我已经通过 FileZilla 验证了身份验证详细信息和文件位置。
这是我执行上述代码时骆驼产生的跟踪片段:
[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 查看更多详细信息
INFO Route: route1 已启动并从:Endpoint['endpoint url'] <-- I can' t 显然发布了 2 个以上的链接 [
main] DefaultCamelContext INFO 总共 1 条路线,其中 1 条已启动。[main] DefaultCamelContext
INFO Apache Camel 2.14.0 (CamelContext: camel-1) 在 0.140 秒内启动 [main] MockEndpoint
INFO 断言:端点 [mock://result] 满意 [tal-music-ftp.amazonmp3.com:21] FtpConsumer INFO 已连接并登录:['端点 url'] <-- 我不能发布超过2 个链接显然 [主要] AmazonMP3SimpleFTPRouteTest INFO ******************************************** ************************************** [主要] AmazonMP3SimpleFTPRouteTest INFO 测试完成:testRouteConsumesTestFileFromFTPEndpoint(com. test.camel.SimpleFTPRouteTest) [主要] AmazonMP3SimpleFTPRouteTest INFO 花了:10。010 秒 (10010 毫秒) [主要] AmazonMP3SimpleFTPRouteTest INFO *************************************** ***************************************** [主要] 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) 线程 #1 - ShutdownTask] DefaultShutdownStrategy
信息正在等待,因为仍有 1 个飞行中和待处理的交换要完成,9 秒后超时。[el-1) 线程 #1 - ShutdownTask] DefaultShutdownStrategy INFO 正在等待,因为仍有 1 个正在进行的和待处理的交换要完成,8 秒后超时。[el-1) 线程 #1 - ShutdownTask] DefaultShutdownStrategy INFO 正在等待,因为仍有 1 个飞行中和待处理的交换要完成,7 秒后超时。[el-1) 线程 #1 - ShutdownTask] DefaultShutdownStrategy INFO 正在等待,因为仍有 1 个飞行中和待处理的交换要完成,6 秒后超时。[el-1) 线程 #1 - ShutdownTask] DefaultShutdownStrategy INFO 正在等待,因为仍有 1 个正在进行的和待处理的交换要完成,5 秒后超时。[el-1) 线程 #1 - ShutdownTask] DefaultShutdownStrategy INFO 正在等待,因为仍有 1 个飞行中和待处理的交换要完成,4 秒后超时。[el-1) 线程 #1 - ShutdownTask] DefaultShutdownStrategy INFO 正在等待,因为仍有 1 个飞行中和待处理的交换要完成,3 秒后超时。[el-1) 线程 #1 - ShutdownTask] DefaultShutdownStrategy INFO 正在等待,因为仍有 1 个飞行中和待处理的交换要完成,2 秒后超时。[el-1) 线程 #1 - ShutdownTask] DefaultShutdownStrategy INFO 正在等待,因为仍有 1 个飞行中和待处理的交换要完成,1 秒后超时。[主要] DefaultShutdownStrategy WARN 发生超时。现在强制关闭路由。某些资源可能仍在运行。[el-1) 线程 #1 - ShutdownTask] DefaultShutdownStrategy WARN 在正常关闭期间等待时中断,现在将强制关闭。[el-1) 线程 #1 - ShutdownTask] DefaultShutdownStrategy INFO 路线:route1 关闭完成,正在消耗: Endpoint['endpoint url'] <-- 我显然不能发布超过 2 个链接 [main] DefaultShutdownStrategy INFO Graceful shutdown共 1 条路线在 52 秒内完成 [
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 秒内关闭
我该怎么做才能简单地下载文件?
MockEndpoint 默认会在单元测试 10 秒后超时。所以你需要设置更长的等待时间让FTP下载和处理文件。
例如,您可以传入超时值
assertMockEndpointsSatisfied(5, TimeUnit.MINUTES);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1526 次 |
| 最近记录: |