1 pièce(s) jointe(s)
Comment copier le fichier dans le dossier interne JSF
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":
Pièce jointe 382018
erreur :
Code:
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 :
Code:
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> |
ManagedBean :
Code:
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();
********}
****}
*
*
*
*
*
****} |
Requête HQL:
Code:
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();
*
} |
Et merci pour votre aide