Chemin relatif dans un projet Maven JEE (IDE Eclipse)

Fermé
kaka1989 Messages postés 12 Date d'inscription dimanche 31 janvier 2010 Statut Membre Dernière intervention 30 avril 2014 - 27 avril 2014 à 14:40
kaka1989 Messages postés 12 Date d'inscription dimanche 31 janvier 2010 Statut Membre Dernière intervention 30 avril 2014 - 30 avril 2014 à 19:37
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)
A voir également:

1 réponse

KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
27 avril 2014 à 14:52
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/
0
kaka1989 Messages postés 12 Date d'inscription dimanche 31 janvier 2010 Statut Membre Dernière intervention 30 avril 2014
27 avril 2014 à 15:28
est ce que je doit remplacer config.properties par le nom de mon dossier ??
0
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
27 avril 2014 à 15:36
Non, le fichier peut s'appeler config.properties ça ne pose pas de problème.
Par contre il doit être placé dans le bon dossier. Avec Maven ça devrait être src/main/resources
0
kaka1989 Messages postés 12 Date d'inscription dimanche 31 janvier 2010 Statut Membre Dernière intervention 30 avril 2014
27 avril 2014 à 15:40
le chemin src/main/ressources n'existe pas dans le projet ,et je veux le chemin relatif de dossier files
0
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
27 avril 2014 à 15:44
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
0
kaka1989 Messages postés 12 Date d'inscription dimanche 31 janvier 2010 Statut Membre Dernière intervention 30 avril 2014
27 avril 2014 à 15:51
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;

}
0