0

春の統合を使用して、ある場所から別の場所にファイルをどのようにコピーしますか。私の場合、戦争外のファイルを戦争内にコピーしたいと考えています。ここに私が考えているコードスニペットがあります:

<?xml version="1.0" encoding="UTF-8"?>

<beans:beans xmlns:beans="http://www.springframework.org/schema/beans" 
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xmlns="http://www.springframework.org/schema/integration"
             xmlns:file="http://www.springframework.org/schema/integration/file"
             xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
                                 http://www.springframework.org/schema/integration http://www.springframework.org/schema/integration/spring-integration-1.0.xsd
                                 http://www.springframework.org/schema/integration/file http://www.springframework.org/schema/integration/file/spring-integration-file-1.0.xsd
                                 http://www.springframework.org/schema/integration/mail http://www.springframework.org/schema/integration/mail/spring-integration-mail-1.0.xsd
             ">

<poller max-messages-per-poll="1" id="defaultPoller" default="true">
    <interval-trigger interval="1000"/>
</poller>


<file:inbound-channel-adapter id="filesIn"    
                              filename-pattern="ha-jdbc-cluster1.xml"
                              directory="file:/etc/****/" />


<file:outbound-channel-adapter id="filesOut" directory="classpath:/WEB-INF/classes" />

しかし、残念ながらうまくいきません。誰もそれを行う方法を知っていますか?

前もって感謝します .....

4

2 に答える 2

1

問題はターゲットディレクトリにあると思います。「classpath:」プレフィックスを使用しています。このプレフィックスは、ファイルの書き込みには使用できず、読み取りのみに使用できます。

このパスのファイルをコピーして、何を達成しようとしているのかをお知らせください。同じことを行うための別のアプローチを考え出します。

于 2011-02-04T14:34:35.527 に答える
0

file:inbound-file-adapter のディレクトリは、単一のディレクトリ (java.io.File インスタンス) に解決できるものである必要があります。1 つのアダプターを使用して複数のディレクトリから読み取ることはサポートされていません。最後に確認したのは...

インバウンドのディレクトリとアウトバウンドのディレクトリを、/tmp の 2 つのディレクトリ (/tmp/a と /tmp/b) のように、適切な / よく知られているものに変更してみます。それが機能する場合、構成が正常であることがわかります。ディレクトリの値だけが不安定です。Maven と STS / Eclipse または IntelliJ のいずれかを使用している場合、インバウンド チャネル アダプターの実装クラスを起動し、それが行っていることをデバッグ (FileReadingMessageSource、IIRC) するのは簡単です。

于 2011-02-08T00:11:29.223 に答える