Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    13

    java.lang.NoClassDefFoundError: org/apache/commons/fileupload/FileUploadException

    Ho composto il codice Jsp-java, per l'Upload di file su server.

    parte di codice contenuto nella pagina JSP
    codice:
    <td>
      <html:form action="/upload" enctype="multipart/form-data">   
            <table align="center" border="2" style="border-collapse: collapse">   
                 <tr>        
                     <td align="center">File</td>       
                    <td>         
                                  
                      <html:file property="myFile"/>    
                    </td>       <td>             
                        <html:submit value="SALVA"/>       
                </td>     
            </tr>
            </table>
        </html:form> 
    </td>
    Specifiche contenuto nel file xml di struts

    codice:
    <form-bean      name="formUpload" type="it.progetto.form.FormUpload"/>
    .....       
    <action 
                    attribute="uploadForm" 
                    input="./upload.jsp" 
                    name="formUpload" 
                    path="/upload" 
                    scope="request" 
                    type="it.progetto.controllo.AzioneUpload">
                    <forward name="successo" path="/WEB-INF/protette/paginaInserimento.jsp" />
                    <forward name="errori" path="/errori.jsp" />  
             </action>
    classe java
    codice:
    package it.progetto.controllo;
    
    import it.progetto.form.*;
    import java.util.*;
    import javax.servlet.http.*;
    import org.apache.commons.logging.*;
    import org.apache.commons.*;
    import org.apache.struts.action.*;
    import org.apache.struts.upload.*;
    import org.apache.torque.Torque;
    import org.apache.torque.util.*;
    import javax.servlet.*;
    import java.io.*;
    import javax.servlet.*;
    
    public class AzioneUpload extends Action {
    
           public ActionForward execute(ActionMapping mapping,
                   ActionForm form,
                   HttpServletRequest request,
                   HttpServletResponse response) throws Exception{ 
               try {       
                   // istanziamo il nostro ActionForm  
                   FormUpload theForm = (FormUpload) form;
                   // ricaviamo il testo inserito dall'utente   
                   String text = theForm.getText();    
                   // ricaviamo l'immagine del file di cui si vuole fare l'upload  
                   FormFile file = theForm.getMyFile();    
                   // ricaviamo il nome del file      
                   String fileName= file.getFileName(); 
                   // ricaviamo il MIME type del file    
                   String contentType = file.getContentType(); 
                   // ricaviamo le dimensioni del file (in Bytes) 
                   int sizeTemp = file.getFileSize();       
                   String size = (sizeTemp + " Bytes");  
                   // costruiamo una stringa che indicherà il percorso assoluto sul server nel quale   
                   // sarà salvato il file, ad                
                   // esempio C:\files\mioFile.txt      
                   String path = "C:\\files\\" + fileName; 
                   try {           
                       // ricaviamo i dati del file mediante un InputStream  
                       InputStream inStream = file.getInputStream();  
                       FileOutputStream outStream = new FileOutputStream(path);  
                       // salviamo il file nel percorso specificato        
                       while (inStream.available()>0) {         
                           outStream.write(inStream.read());
                       }
                   }  catch (FileNotFoundException fnfe) {  
                       return null;
                   }    catch (IOException ioe) { 
                       return null;
                   }    // eliminiamo il file temporaneo che abbiamo creato 
                   file.destroy();  
                   // mettiamo nella request i dati così da poterli ricavare dalla jsp 
                   request.setAttribute("text",text);   
                   request.setAttribute("path",path);  
                   request.setAttribute("contentType",contentType);   
                   request.setAttribute("size",size);    
    // forwardiamo alla jsp mappata come "Success" nel file struts-config.xml  
                   return mapping.findForward("Success");
               }catch(Exception e){
                   e.printStackTrace();
               }        return null;
           }
    }

    e questo è l'errore che ritorna
    codice:
    HTTP Status 500 - 
    
    --------------------------------------------------------------------------------
    
    type Exception report
    
    message 
    
    description The server encountered an internal error () that prevented it from fulfilling this request.
    
    exception 
    
    javax.servlet.ServletException: Servlet execution threw an exception
    
    
    root cause 
    
    java.lang.NoClassDefFoundError: org/apache/commons/fileupload/FileUploadException
    	java.lang.Class.getDeclaredConstructors0(Native Method)
    	java.lang.Class.privateGetDeclaredConstructors(Unknown Source)
    	java.lang.Class.getConstructor0(Unknown Source)
    	java.lang.Class.newInstance0(Unknown Source)
    	java.lang.Class.newInstance(Unknown Source)
    	org.apache.struts.util.RequestUtils.applicationInstance(RequestUtils.java:167)
    	org.apache.struts.util.RequestUtils.applicationInstance(RequestUtils.java:142)
    	org.apache.struts.util.RequestUtils.getMultipartHandler(RequestUtils.java:536)
    	org.apache.struts.util.RequestUtils.populate(RequestUtils.java:394)
    	org.apache.struts.chain.commands.servlet.PopulateActionForm.populate(PopulateActionForm.java:50)
    	org.apache.struts.chain.commands.AbstractPopulateActionForm.execute(AbstractPopulateActionForm.java:60)
    	org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:51)
    	org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
    	org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:304)
    	org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
    	org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:283)
    	org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
    	org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    
    
    note The full stack trace of the root cause is available in the Apache Tomcat/6.0.10 logs.
    
    
    --------------------------------------------------------------------------------
    
    Apache Tomcat/6.0.10


    Chi mi può aiutare, sono giorni che mi sbatto per creare la prte di codice che mi permetta di caricare file sul server, tecnologia Tomcat-struts-java....
    sl

  2. #2
    Utente di HTML.it L'avatar di Ed_Bunker
    Registrato dal
    Jul 2003
    Messaggi
    1,119
    In un'applicazioncina web utilizzo anch'io quella libreria per fare l'upload di file (Immagini nel mio caso) e mi e' "bastato" mettere il jar chiamato commons-fileupload (Se usi axis2 lo trovi anche nella "sua" directory lib) nella directory lib del progetto in questione.
    Non so se la cosa possa funzionare anche mettendolo nella lib di tomcat anziche' in quella del particolare progetto che stai sviluppando.
    Non ti resta che provare...

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    13
    Ho provato a caricare il jar commons-fileupload (rinominato da commons-fileupload-1.2.1), e l'errore è diventato:

    codice:
    HTTP Status 500 - 
    
    --------------------------------------------------------------------------------
    
    type Exception report
    
    message 
    
    description The server encountered an internal error () that prevented it from fulfilling this request.
    
    exception 
    
    javax.servlet.ServletException: Servlet execution threw an exception
    
    
    root cause 
    
    java.lang.NoClassDefFoundError: org/apache/commons/io/output/DeferredFileOutputStream
    	org.apache.commons.fileupload.DefaultFileItemFactory.createItem(DefaultFileItemFactory.java:103)
    	org.apache.commons.fileupload.FileUploadBase.parseRequest(FileUploadBase.java:358)
    	org.apache.commons.fileupload.FileUploadBase.parseRequest(FileUploadBase.java:310)
    	org.apache.struts.upload.CommonsMultipartRequestHandler.handleRequest(CommonsMultipartRequestHandler.java:185)
    	org.apache.struts.util.RequestUtils.populate(RequestUtils.java:405)
    	org.apache.struts.chain.commands.servlet.PopulateActionForm.populate(PopulateActionForm.java:50)
    	org.apache.struts.chain.commands.AbstractPopulateActionForm.execute(AbstractPopulateActionForm.java:60)
    	org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:51)
    	org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
    	org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:304)
    	org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
    	org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:283)
    	org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
    	org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    
    
    note The full stack trace of the root cause is available in the Apache Tomcat/6.0.10 logs.
    Posso chiedeti se la piccola applicazioncina che usi è disponibile on-line, cosi posso scaricarla, perchè anche a me dovrebbe cricare solo immagini o pdf.

    Grazie
    sl

  4. #4
    Utente di HTML.it L'avatar di Ed_Bunker
    Registrato dal
    Jul 2003
    Messaggi
    1,119
    No, e' praticamente terminata e pronta per la consegna ma non e' disponibile on line.
    Ad ogni modo quell'errore e' dovuto al fatto che devi mettere tra le librerie presenti ib "lib" anche la commons-io (Che e' utilizzata, appunto, dalla fileupload).

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.