当前位置: 首页 > 知识库问答 >
问题:

camel ftp以递归方式导致ftp错误代码:226

澹台景辉
2023-03-14

我有一个非常简单的ftp路由,应该递归地从URL下载文件。今天让它静止运行将是非常重要的。

[...]
                        from("direct:ftp").routeId("ftp")
                                .log("### FTP is in progress ")
                                .pollEnrich().simple(ConfigData.getConfigData().getFtpUrl() 
                                        + "?binary=true&"
                                        + "recursive=true"
/*                                        + "soTimeout=300000&"
                                        + "stepwise=true&"
                                        + "ignoreFileNotFoundOrPermissionError=true&"
                                        + "ftpClient.dataTimeout=30000&"
                                        + "disconnect=true&"
                                        + "consumer.delay=1000" */
                                                    )
                                .to("file:modelFiles")
                                .end();

[...]
Any further comments?

from(ConfigData.getConfigData().getFtpUrl() 
            + "?binary=true&"
            + "recursive=true&"
            + "passiveMode=true&"
            + "ftpClient.bufferSize=10000000&"
            + "localWorkDirectory=" + ConfigData.getConfigData().getLocalTmpDirectory())
    .idempotentConsumer(header("CamelFileName"), FileIdempotentRepository.fileIdempotentRepository(new File("data", "repo.dat")))
    .to("file:modelFiles")
    .log("Downloaded file ${file:name} complete.")
    .end(); 
2016-03-19 15:27:53,921 [WARN|org.apache.camel.component.file.remote.FtpConsumer|MarkerIgnoringBase] Error processing file RemoteFile[2009-03-25/BioModels_Database-r13-sbml_files.tar.gz] due to File operation failed: null socket closed. Code: 221. Caused by: [org.apache.camel.component.file.GenericFileOperationFailedException - File operation failed: null socket closed. Code: 221]
org.apache.camel.component.file.GenericFileOperationFailedException: File **operation failed: null socket closed. Code: 221**
[...]
Caused by: java.net.SocketException: socket closed
        at java.net.SocketInputStream.socketRead0(Native Method)
        at java.net.SocketInputStream.read(Unknown Source)
        at java.net.SocketInputStream.read(Unknown Source)
        at sun.nio.cs.StreamDecoder.readBytes(Unknown Source)
        at sun.nio.cs.StreamDecoder.implRead(Unknown Source)
        at sun.nio.cs.StreamDecoder.read(Unknown Source)
        at java.io.InputStreamReader.read(Unknown Source)
        at java.io.BufferedReader.fill(Unknown Source)
        at java.io.BufferedReader.read(Unknown Source)
        at org.apache.commons.net.io.CRLFLineReader.readLine(CRLFLineReader.java:58)
        at org.apache.commons.net.ftp.FTP.__getReply(FTP.java:314)
        at org.apache.commons.net.ftp.FTP.__getReply(FTP.java:294)
        at org.apache.commons.net.ftp.FTP.sendCommand(FTP.java:483)
        at org.apache.commons.net.ftp.FTP.sendCommand(FTP.java:608)
        at org.apache.commons.net.ftp.FTP.cwd(FTP.java:828)
        at org.apache.commons.net.ftp.FTPClient.changeWorkingDirectory(FTPClient.java:1128)
        at org.apache.camel.component.file.remote.FtpOperations.doChangeDirectory(FtpOperations.java:769)

2016-03-19 12:42:16,068 [WARN|org.apache.camel.component.file.remote.FtpConsumer|MarkerIgnoringBase] Error processing file RemoteFile[2008-12-03/BioModels_Database-r12-sbml_files.tar.gz] due to File operation failed: null Socket Closed. Code: 226. Caused by: [org.apache.camel.component.file.GenericFileOperationFailedException - **File operation failed: null Socket Closed. Code: 226]**
[...]
Caused by: java.net.SocketException: Socket Closed
    at java.net.SocketInputStream.socketRead0(Native Method)
    at java.net.SocketInputStream.read(Unknown Source)
    at java.net.SocketInputStream.read(Unknown Source)
    at sun.nio.cs.StreamDecoder.readBytes(Unknown Source)
    at sun.nio.cs.StreamDecoder.implRead(Unknown Source)
    at sun.nio.cs.StreamDecoder.read(Unknown Source)
    at java.io.InputStreamReader.read(Unknown Source)
    at java.io.BufferedReader.fill(Unknown Source)
    at java.io.BufferedReader.read(Unknown Source)
    at org.apache.commons.net.io.CRLFLineReader.readLine(CRLFLineReader.java:58)
    at org.apache.commons.net.ftp.FTP.__getReply(FTP.java:314)
    at org.apache.commons.net.ftp.FTP.__getReply(FTP.java:294)
    at org.apache.commons.net.ftp.FTP.getReply(FTP.java:692)
    at org.apache.commons.net.ftp.FTPClient.completePendingCommand(FTPClient.java:1813)
    at org.apache.commons.net.ftp.FTPClient._retrieveFile(FTPClient.java:1885)
    at org.apache.commons.net.ftp.FTPClient.retrieveFile(FTPClient.java:1845)
    at org.apache.camel.component.file.remote.FtpOperations.retrieveFileToStreamInBody(FtpOperations.java:367)

正如Upadete1中添加的那样,我没有使用pollenfrich()。现在无法从计时器启动路由,但它可以工作。所以我将结束这个问题。我真的很喜欢幂等消费者的想法(与最初的问题无关)。

共有1个答案

茅慈
2023-03-14

不要忘记pollrich删除旧的Exchange并保留新的Exchange。

因此,您不想执行from(“ftp”).pollenrich(“timer”),而是执行from(“timer”).pollenrich(“ftp”)。

 类似资料:
  • 如果我注释掉“%matplotlib inline”,代码运行正常,但如果我不注释“%matplotlib inline”,则“fig,axes=plt.subplot(nrows=x_p,ncols=y_p)”开始创建空白绘图,下面的代码会触发如下错误。知道为什么吗?

  • 问题内容: 我不断收到此错误: 您的SQL语法有误;检查与您的MySQL服务器版本相对应的手册,以找到在第1行的“ …”附近使用的正确语法。 我知道我的“组”字段有问题,因为如果删除它,我的表将被更新而不会出现任何问题。 这是我的表单代码: 这是我对MySQL代码的更新: 如您所见,我做了一些回显,以检查是否获取了我的数据,并且一切正常。“分组”数据只会使事情变糟。有任何想法吗? 问题答案: 是保

  • 请检查下面的反转功能。剩下的代码应该没问题。由于某种原因,该函数没有反转双链接列表。 双链表节点结构 双链表结构 按从头部到尾部的顺序排列。 请检查下面的反向函数,因为此函数不会返回反向双链接列表。检查是否有任何错误并让我知道。

  • 错误(error )是指人们在使用软、硬件的时候,软、硬件不能正常操作的一种现象。由于错误的类型很多,为了对错误进行区分,系统设定了错误代码(error code),软、硬件在运行中如果发生错误,将通过它内部的原有的设定判断、识别而通过错误代码的显示方式给操作者,操作者通过错误代码识别,快速找到软、硬件不能正常操作的具体原因。

  • 问题内容: 我创建了一个示例,将数据发布到其他服务,发现当我使用非ASCII字符或非拉丁字符(请参阅data.firstName)时,使用TEST- REST.js的发布请求将引发 错误:{[错误:套接字挂起]代码:“ ECONNRESET”}。 在我的休息服务上,它给我这样的错误: 如果我将firstName值从“JoaquÌn”替换为“ abc”,则一切正常。我认为我缺少支持或逃脱的功能,无法