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....