简单的驼峰ftp路由超时

时间:2015-03-10 12:39:42

标签: 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");

            }
        };
    }
}

我已经通过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秒内关闭

如果只是下载文件,我该怎么办?

1 个答案:

答案 0 :(得分:4)

默认情况下,MockEndpoint将在单元测试10秒后超时。因此,您需要为FTP下载和处理文件设置更长的等待时间。

您可以传入超时值,例如

assertMockEndpointsSatisfied(5, TimeUnit.MINUTES);