0

FTPからファイルをコピーしようとしていますが、ローカルマシンに配置したいと思います。

このために、インバウンドチャネル構成を作成しました。

<bean name="publishStockSessionFactory"
      class="org.springframework.integration.ftp.session.DefaultFtpSessionFactory">
  <property name="host"
        value="10.255.255.1" />
<property name="port" value="21" />
    <property name="username"
        value="test" />
    <property name="password"
        value="test" />
</bean>

<bean id="stockLocalDirectory" class="java.lang.String">
    <constructor-arg
        value="/opt/test" />
</bean>

<bean id="stockRemoteDirectory" class="java.lang.String">
    <constructor-arg
        value="stock" />
</bean>

<int-ftp:inbound-channel-adapter 
     local-directory="# {stockLocalDirectory}"             
     channel="stockFilesFromFTP"  
     session-factory="publishStockSessionFactory" 
     remote-directory="#{stockRemoteDirectory}" 
     delete-remote-files="true" 
     filename-regex="Stock*.csv" >
    <int:poller fixed-rate="120000" max-messages-per-poll="100" />
</int-ftp:inbound-channel-adapter>

<int:publish-subscribe-channel id="stockFilesFromFTP" />

そして、起動中に発生するエラーは

INFO   | jvm 1    | main    | 2013/01/15 22:20:02.715 | 2013-01-15 22:20:02,699 
ERROR  task-scheduler-4     ErrorHandler            : failed to send message 
to  channel 'stockFilesFromFTP' within timeout: -1

オンにしたデバッグは

log4j.logger.org.springframework.aop=DEBUG
org.springframework.integration.channel.DirectChannel=DEBUG
org.springframework.integration.channel.MessagePublishingErrorHandler=DEBUG
org.springframework.integration.config.xml.PointToPointChannelParser=DEBUG

このエラーをデバッグする方法を教えてください。

4

2 に答える 2

0

FTPclientfactory Bean には、次のような構成を使用しました。タイムアウト パラメータもあるため、接続タイムアウトが原因で問題が発生した場合に役立ちます。

<bean id="testapp.standardFTPClientFactory" class="org.springframework.integration.ftp.DefaultFTPClientFactory"
        abstract="true">
        <property name="host" value="${ftp.host}"/>
        <property name="username" value="${ftp.username}"/>
        <property name="password" value="${ftp.password}"/>
        <property name="port" value="${ftp.port}"/>
        <property name="remoteWorkingDirectory" value="${ftp.remotedir}"/>
        <property name="dataTimeout" value="3600000"/>
        <property name="connectTimeout" value="${ftp.connectTimeout}"/>
        <property name="clientMode" value="2"/>
</bean>
于 2013-01-18T13:47:31.007 に答える
0

DEBUG レベルのロギングで実行します。

channel に少なくとも 1 人のサブスクライバーが必要ですstockFilesFromFTP

于 2013-01-15T20:44:37.697 に答える