Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.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
Spring boot Ftp出站适配器|无法写入Ftp @使能集成 @配置 公共类RTWEEmploymentComplianceFlow{ @豆子 DefaultFtpSessionFactory rtwFtpFileSessionFactory(){ DefaultFtpSessionFactory sf=新的DefaultFtpSessionFactory(); sf.设置端口(21); sf.setUsername(“a-asdf”); sf.setPassword(“asdf@123"); setHost(“asdf.ftp.org”); 返回sf; } @自动连线 tiffToPdf转换器tiffToPdf; @豆子 公共集成流rtwFlow( @值(“${rtw input directory}”)文件rtwFolder,默认FTPSessionFactory RTWFTPFILESSessionFactory){ GenericTransformer PdfileConverter=(文件源)->{ 返回MessageBuilder.withPayload(“hello”).setHeader(FileHeaders.FILENAME,source.getName().split(“\\”)[0]+.txt”).build(); }; 返回积分流 .from(文件.inboundAdapter(rtwFolder) .autoCreateDirectory(true) .防止重复(正确) .patternFilter(“*.tif”), 轮询器->轮询器.轮询器(pm->pm.fixedDelay(1000))) .transform(File.class,pdfFileConverter) .handle(Ftp.outboundAdapter(rtwFtpFileSessionFactory) .remoteDirectory(“专家”) .useTemporaryFileName(false) .fileNameGenerator(消息->{ 对象o=message.getHeaders().get(FileHeaders.FILENAME); 字符串文件名=String.class.cast(o); System.out.println(“输出文件名为:“+FileName”); 返回文件名; }) ) .get(); } }_Spring Boot_Ftp_Spring Integration - Fatal编程技术网 { 返回MessageBuilder.withPayload(“hello”).setHeader(FileHeaders.FILENAME,source.getName().split(“\\”)[0]+.txt”).build(); }; 返回积分流 .from(文件.inboundAdapter(rtwFolder) .autoCreateDirectory(true) .防止重复(正确) .patternFilter(“*.tif”), 轮询器->轮询器.轮询器(pm->pm.fixedDelay(1000))) .transform(File.class,pdfFileConverter) .handle(Ftp.outboundAdapter(rtwFtpFileSessionFactory) .remoteDirectory(“专家”) .useTemporaryFileName(false) .fileNameGenerator(消息->{ 对象o=message.getHeaders().get(FileHeaders.FILENAME); 字符串文件名=String.class.cast(o); System.out.println(“输出文件名为:“+FileName”); 返回文件名; }) ) .get(); } },spring-boot,ftp,spring-integration,Spring Boot,Ftp,Spring Integration" /> { 返回MessageBuilder.withPayload(“hello”).setHeader(FileHeaders.FILENAME,source.getName().split(“\\”)[0]+.txt”).build(); }; 返回积分流 .from(文件.inboundAdapter(rtwFolder) .autoCreateDirectory(true) .防止重复(正确) .patternFilter(“*.tif”), 轮询器->轮询器.轮询器(pm->pm.fixedDelay(1000))) .transform(File.class,pdfFileConverter) .handle(Ftp.outboundAdapter(rtwFtpFileSessionFactory) .remoteDirectory(“专家”) .useTemporaryFileName(false) .fileNameGenerator(消息->{ 对象o=message.getHeaders().get(FileHeaders.FILENAME); 字符串文件名=String.class.cast(o); System.out.println(“输出文件名为:“+FileName”); 返回文件名; }) ) .get(); } },spring-boot,ftp,spring-integration,Spring Boot,Ftp,Spring Integration" />

Spring boot Ftp出站适配器|无法写入Ftp @使能集成 @配置 公共类RTWEEmploymentComplianceFlow{ @豆子 DefaultFtpSessionFactory rtwFtpFileSessionFactory(){ DefaultFtpSessionFactory sf=新的DefaultFtpSessionFactory(); sf.设置端口(21); sf.setUsername(“a-asdf”); sf.setPassword(“asdf@123"); setHost(“asdf.ftp.org”); 返回sf; } @自动连线 tiffToPdf转换器tiffToPdf; @豆子 公共集成流rtwFlow( @值(“${rtw input directory}”)文件rtwFolder,默认FTPSessionFactory RTWFTPFILESSessionFactory){ GenericTransformer PdfileConverter=(文件源)->{ 返回MessageBuilder.withPayload(“hello”).setHeader(FileHeaders.FILENAME,source.getName().split(“\\”)[0]+.txt”).build(); }; 返回积分流 .from(文件.inboundAdapter(rtwFolder) .autoCreateDirectory(true) .防止重复(正确) .patternFilter(“*.tif”), 轮询器->轮询器.轮询器(pm->pm.fixedDelay(1000))) .transform(File.class,pdfFileConverter) .handle(Ftp.outboundAdapter(rtwFtpFileSessionFactory) .remoteDirectory(“专家”) .useTemporaryFileName(false) .fileNameGenerator(消息->{ 对象o=message.getHeaders().get(FileHeaders.FILENAME); 字符串文件名=String.class.cast(o); System.out.println(“输出文件名为:“+FileName”); 返回文件名; }) ) .get(); } }

Spring boot Ftp出站适配器|无法写入Ftp @使能集成 @配置 公共类RTWEEmploymentComplianceFlow{ @豆子 DefaultFtpSessionFactory rtwFtpFileSessionFactory(){ DefaultFtpSessionFactory sf=新的DefaultFtpSessionFactory(); sf.设置端口(21); sf.setUsername(“a-asdf”); sf.setPassword(“asdf@123"); setHost(“asdf.ftp.org”); 返回sf; } @自动连线 tiffToPdf转换器tiffToPdf; @豆子 公共集成流rtwFlow( @值(“${rtw input directory}”)文件rtwFolder,默认FTPSessionFactory RTWFTPFILESSessionFactory){ GenericTransformer PdfileConverter=(文件源)->{ 返回MessageBuilder.withPayload(“hello”).setHeader(FileHeaders.FILENAME,source.getName().split(“\\”)[0]+.txt”).build(); }; 返回积分流 .from(文件.inboundAdapter(rtwFolder) .autoCreateDirectory(true) .防止重复(正确) .patternFilter(“*.tif”), 轮询器->轮询器.轮询器(pm->pm.fixedDelay(1000))) .transform(File.class,pdfFileConverter) .handle(Ftp.outboundAdapter(rtwFtpFileSessionFactory) .remoteDirectory(“专家”) .useTemporaryFileName(false) .fileNameGenerator(消息->{ 对象o=message.getHeaders().get(FileHeaders.FILENAME); 字符串文件名=String.class.cast(o); System.out.println(“输出文件名为:“+FileName”); 返回文件名; }) ) .get(); } },spring-boot,ftp,spring-integration,Spring Boot,Ftp,Spring Integration,上面的代码开始在ftp站点中创建一个sample.txt.writing文件,但大小保持为0KB大约15秒,然后文件消失 没有提出任何例外情况 不确定ftp为什么无法完全写入文件。请帮忙 提前谢谢 感谢Gary的反馈 最后通过以下方式解决: factory.setClientMode(2)——被动模式 防火墙(windows防火墙),ftp服务器上TCP允许0-65000个端口(出站) 工作得很有魅力 这与clientMode有关,我尝试将其设置为2,但出现连接超时异常。有人能解释一下这个设置是

上面的代码开始在ftp站点中创建一个sample.txt.writing文件,但大小保持为0KB大约15秒,然后文件消失

没有提出任何例外情况

不确定ftp为什么无法完全写入文件。请帮忙


提前谢谢

感谢Gary的反馈

最后通过以下方式解决:

  • factory.setClientMode(2)——被动模式
  • 防火墙(windows防火墙),ftp服务器上TCP允许0-65000个端口(出站)

  • 工作得很有魅力

    这与clientMode有关,我尝试将其设置为2,但出现连接超时异常。有人能解释一下这个设置是什么吗?一般来说,如果涉及防火墙,则需要被动。
    @EnableIntegration
    @Configuration
    public class RtwEmploymentComplianceFlow {
    
    
    @Bean
    DefaultFtpSessionFactory rtwFtpFileSessionFactory() {
        DefaultFtpSessionFactory sf = new DefaultFtpSessionFactory();
    
        sf.setPort(21);
        sf.setUsername("a-asdf");
        sf.setPassword("asdf@123");
        sf.setHost("asdf.ftp.org");
    
        return sf;
    }
    
    @Autowired
    TiffToPdfConverter tiffToPdf;
    
    @Bean
    public IntegrationFlow rtwFlow(
            @Value("${rtw-input-directory}") File rtwFolder, DefaultFtpSessionFactory rtwFtpFileSessionFactory) {
        GenericTransformer<File, Message<String>> pdfFileConverter = (File source) -> {
    
            return MessageBuilder.withPayload("hello").setHeader(FileHeaders.FILENAME, source.getName().split("\\.")[0] + ".txt").build();
        };
    
        return IntegrationFlows
                .from(Files.inboundAdapter(rtwFolder)
                        .autoCreateDirectory(true)
                        .preventDuplicates(true)
                        .patternFilter("*.tif"), 
                        poller -> poller.poller(pm -> pm.fixedDelay(1000)))
                .transform(File.class, pdfFileConverter)
                .handle(Ftp.outboundAdapter(rtwFtpFileSessionFactory)
                            .remoteDirectory("Guru")
                            .useTemporaryFileName(false)
                            .fileNameGenerator(message -> {
                                Object o = message.getHeaders().get(FileHeaders.FILENAME);
                                String fileName = String.class.cast(o);
                                System.out.println("output FileName is: " + fileName);
    
                                return fileName;
                            })
                        )
                .get();     
        }
    }