Je veux juste copier mes fichiers dans un dossier interne dans mon application java ee, ça fonctionne quand je mets le chemin de mon répertoire portable (ex: C: \ Utilisateurs \ helyoubi \ Desktop \ Japon 2) mais quand je veux le mettre dedans mon dossier webcontent j'ai cette exeption ci-dessous, dans ma méthode "importToDB" j'ai créé je demande de télécharger les données à ma base de données en utilisant "LOAD DATA LOCAL INFILE":
erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54 2018-05-20 10:08:18 INFO* MyfacesConfig:205 - Starting up Tomahawk on the RI-JSF-Implementation. java.nio.file.NoSuchFileException: WebContent\upload\csv\export.csv ****at sun.nio.fs.WindowsException.translateToIOException(Unknown Source) ****at sun.nio.fs.WindowsException.rethrowAsIOException(Unknown Source) ****at sun.nio.fs.WindowsException.rethrowAsIOException(Unknown Source) ****at sun.nio.fs.WindowsFileSystemProvider.newByteChannel(Unknown Source) ****at java.nio.file.spi.FileSystemProvider.newOutputStream(Unknown Source) ****at java.nio.file.Files.newOutputStream(Unknown Source) ****at java.nio.file.Files.copy(Unknown Source) ****at com.sybaway.gestionprojet.presentation.ImportFichier.saveFile(ImportFichier.java:55) ****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:247) ****at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:267) ****at com.sun.faces.facelets.el.TagMethodExpression.invoke(Unknown Source) ****at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(Unknown Source) ****at com.sun.faces.application.ActionListenerImpl.processAction(Unknown Source) ****at javax.faces.component.UICommand.broadcast(Unknown Source) ****at javax.faces.component.UIViewRoot.broadcastEvents(Unknown Source) ****at javax.faces.component.UIViewRoot.processApplication(Unknown Source) ****at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(Unknown Source) ****at com.sun.faces.lifecycle.Phase.doPhase(Unknown Source) ****at com.sun.faces.lifecycle.LifecycleImpl.execute(Unknown Source) ****at javax.faces.webapp.FacesServlet.service(Unknown Source) ****at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231) ****at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ****at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) ****at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ****at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ****at com.sybaway.gestionprojet.filter.AuthorizationFilter.doFilter(AuthorizationFilter.java:42) ****at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ****at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ****at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199) ****at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96) ****at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502) ****at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140) ****at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81) ****at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:651) ****at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87) ****at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342) ****at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:417) ****at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) ****at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:754) ****at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1376) ****at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) ****at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) ****at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) ****at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) ****at java.lang.Thread.run(Unknown Source) Form : * <h:form enctype="multipart/form-data">
Formulaire :
ManagedBean :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 <h:form enctype="multipart/form-data"> * ********<p:growl id="messages" showDetail="true" /> * ********<h:inputFile label="Choisir" value="#{importFichier.file}"/> * ********<p:separator/> * ********<h:commandButton value="Envoyer" ajax="false" action="#{importFichier.saveFile()}" /> * ****</h:form>
Requête HQL:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66 @ManagedBean public class ImportFichier implements Serializable{ * ****/** ****** ******/ ****private static final long serialVersionUID = 1L; * * ****private PrelevementServices prelevServ = new PrelevementServicesImpl(); * ****private Part file; * ****private String folder = "WebContent/upload/csv/"; * ****public Part getFile() { ********return file; ****} * * ****public void setFile(Part file) { ********this.file = file; ****} * * ****public void saveFile(){ * ********try (InputStream input = file.getInputStream()) { * ************String fileName = file.getSubmittedFileName(); * ************Files.copy(input, new File(folder, fileName).toPath()); * ************if(fileName!= null) { * ****************//prelevServ.importToDB("C:\\Users\\helyoubi\\Desktop\\Japon 2\\"+fichierUpload.getFileName()); * ****************prelevServ.importToDB(folder+fileName); * ****************FacesMessage message = new FacesMessage("Succesful",fileName+ " is uploaded."); * ****************FacesContext.getCurrentInstance().addMessage(null, message); * ************}else { * ****************FacesMessage message = new FacesMessage("Le chemin du fichier : "+fileName+" est introuvable"); * ****************FacesContext.getCurrentInstance().addMessage(null, message); * ************} * * ************System.out.println("CSV added to your the DB Table"); * * ********} ********catch (IOException e) { ************e.printStackTrace(); ********} ****} * * * * * ****}
Et merci pour votre aide
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 @Override public void importToDB(String cheminFichier) { * ****session.beginTransaction(); * ****//session.createQuery("LOAD DATA INFILE '"+cheminFichier+"' INTO TABLE Prelevement_saisons FIELDS TERMINATED BY ',' (espece,saison,departement,commune,code,attributions,realisations)").executeUpdate(); * ****session.createSQLQuery("LOAD DATA LOCAL INFILE :filename INTO TABLE Prelevement_saisons FIELDS TERMINATED BY ',' ENCLOSED BY '\"'(espece,saison,departement,commune,code,attributions,realisations)").setString("filename", cheminFichier).executeUpdate(); * ****session.getTransaction().commit(); * }
Partager