Chemin relatif dans un projet Maven JEE (IDE Eclipse)
kaka1989
Messages postés
12
Statut
Membre
-
kaka1989 Messages postés 12 Statut Membre -
kaka1989 Messages postés 12 Statut Membre -
Bonjour,
j'ai un problème de création d'un File en utilisant chemin relatif dans une Beans.
j'ai mon Bean qui existe dans le dossier /src/main/java/service/FileUploadController.java de mon projet, et j'ai le dossier ou je veux Uploader les fichiers dedans qui exsite /WEB-INF/files
voila mon code :
file = File.createTempFile(prefix + "_", "." + suffix,new File("/WEB-INF/files"));
output = new FileOutputStream(file);
IOUtils.copy(uploadedFile.getInputstream(), output);
Exception :
java.io.IOException: Le chemin d'accès spécifié est introuvable
at java.io.WinNTFileSystem.createFileExclusively(Native Method)
at java.io.File.createNewFile(Unknown Source)
at java.io.File.createTempFile(Unknown Source)
at service.FileUploadController.handleFileUpload(FileUploadController.java:44)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.el.parser.AstValue.invoke(AstValue.java:277)
j'ai un problème de création d'un File en utilisant chemin relatif dans une Beans.
j'ai mon Bean qui existe dans le dossier /src/main/java/service/FileUploadController.java de mon projet, et j'ai le dossier ou je veux Uploader les fichiers dedans qui exsite /WEB-INF/files
voila mon code :
file = File.createTempFile(prefix + "_", "." + suffix,new File("/WEB-INF/files"));
output = new FileOutputStream(file);
IOUtils.copy(uploadedFile.getInputstream(), output);
Exception :
java.io.IOException: Le chemin d'accès spécifié est introuvable
at java.io.WinNTFileSystem.createFileExclusively(Native Method)
at java.io.File.createNewFile(Unknown Source)
at java.io.File.createTempFile(Unknown Source)
at service.FileUploadController.handleFileUpload(FileUploadController.java:44)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.el.parser.AstValue.invoke(AstValue.java:277)
1 réponse
-
Bonjour,
Tu ne peux pas accéder au contenu d'un jar/war/ear avec un chemin relatif, il faut que tu récupères la ressource avec le ClassLoader.
https://mkyong.com/java/java-getresourceasstream-in-static-method/-
-
-
-
Si le chemin n'existe pas tu peux le créer !
Mais mettre un fichier de ressources ailleurs, par exemple dans ton dossier files, ce n'est pas propre, les projets Maven sont fait de tels sortes que l'architecture soit respectée. Si tu veux faire ta propre configuration, n'utilise pas Maven...
À voir : La structure de répertoires Maven 2 -
si j'ai bien compris je doit modifier le code comme suite :
public String getFilePathToSave() {
Properties prop = new Properties();
String filePath = "";
try {
InputStream inputStream =
getClass().getClassLoader().getResourceAsStream("src/main/resources");
prop.load(inputStream);
filePath = prop.getProperty("json.filepath");
} catch (IOException e) {
e.printStackTrace();
}
return filePath;
}
-