Spring integration Fichier - lecture du fichier en entrant l'adaptateur de canal avant, il est écrit
Je suis en train de tester la SI l'échantillon et je rencontre le problème suivant.
Mon SI ver-1.0.4
Pour faciliter la compréhension, je suis coller le contenu ci-dessous:
fileCopyDemo-text.xml
<file:inbound-channel-adapter id="filesIn"
directory="file:${java.io.tmpdir}/spring-integration-samples/input" filename-pattern=".*\.xml">
<integration:poller id="poller" >
<integration:interval-trigger initial-delay="1000" interval="2000" fixed-rate="true"/>
</integration:poller>
</file:inbound-channel-adapter>
<integration:service-activator input-channel="filesIn"
output-channel="filesOut"
ref="handler"/>
<file:outbound-channel-adapter id="filesOut"
directory="file:${java.io.tmpdir}/spring-integration-samples/output"
delete-source-files="true"/>
<bean id="handler" class="org.springframework.integration.samples.filecopy.Handler"/>
FileBasedCopyTest.java
public class FileBasedFileCopyTest {
public static void main(String[] args)
{
ApplicationContext ac = new ClassPathXmlApplicationContext("/META-INF/spring/integration/fileCopyDemo-file.xml");
}
}
Handler.java
public class Handler {
public File handleFile(File input) {
System.out.println("Copying file: " + input.getAbsolutePath());
return input;
}
}
J'ai une autre classe java qui est la création d'un fichier dans le dossier d'entrée.
Sample.java
public static void main(String[] args) {
try {
String str = "SomeMoreTextIsHere";
File newTextFile = new File("C:/Windows/Temp/spring-integration-samples/input/thetextfile.xml");
FileWriter fw = new FileWriter(newTextFile);
fw.write(str);
fw.close();
} catch (IOException iox) {
iox.printStackTrace();
}
}
J'ai exécuté la FileBasedCopyTest et il est maintenant à l'écoute de dossier d'entrée.
Question
Je suis en cours d'exécution de la Sample.java fichier en mode debug et le moment
FileWriter fw = new FileWriter(newTextFile);
est exécuté, je suis la réception de la commande, Handler.java idéalement, j'aurais voulu recevoir le contrôle une fois que le fichier est fermé. Comment gérer ce scénario?
PS : j'ai aussi lu cette mais pas sûr que dans ce cas comment gérer ici.
Vous devez vous connecter pour publier un commentaire.
C'est un problème commun, peu importe si vous êtes à l'aide de Printemps de l'Intégration ou non.
Une approche commune (utilisé par SI en sortant de l'adaptateur) est d'écrire le fichier avec un nom temporaire (par exemple,
foo.txt.writing
) et puis le renommer enfoo.txt
après il est écrit.