J'ai une application Web fonctionnant en mode cluster avec un équilibreur de charge. Il consiste en deux tomcats (T1 et T2) adressant un seul DB. T2 est nfs monté sur T1. C'est la seule différence entre les deux nœuds. J'ai une méthode Java générant des fichiers. Si la demande fonctionne sur T1 il n'y a pas de problème, mais si la demande est en cours d'exécution sur le noeud 2 je reçois une exception comme suit:java.io.IOException: argument non valide
java.io.IOException: Invalid argument
at java.io.FileOutputStream.close0(Native Method)
at java.io.FileOutputStream.close(FileOutputStream.java:279)
Le code correspondant est le suivant:
for (int i = 0; i < dataFileList.size(); i++) {
outputFileName = outputFolder + fileNameList.get(i);
FileOutputStream fileOut = new FileOutputStream(outputFileName);
fileOut.write(dataFileList.get(i), 0, dataFileList.get(i).length);
fileOut.flush();
fileOut.close();
}
Le exception apparaît à la fileOut.close()
Une indication?
Luis
Pouvez-vous écrire des fichiers normalement à partir du système d'exploitation de T2 (relatives à l'extérieur de Java.)? – Damo
Oui, je peux. De plus, lorsque l'exception ninja jeté un fichier vide est généré. – Luixv
Oui! Je peux écrire directement sur le système de fichiers à partir d'un shell. De plus. Un fichier vide est généré. – Luixv