Erro em jsp de upload de arquivo (passando inferno)

olá pessoal estou passado um inferno com isso ja usei um bean, jausei duas paginas e nada

formulario de envio de arquivo
<%-- 
    Document   : teste
    Created on : Feb 24, 2010, 11:13:58 PM
    Author     : Hudson
--%>

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
   "http://www.w3.org/TR/html4/loose.dtd">

<html>
    <head>
        <title>Fazer o Upload do arquivo </title>
    </head>
    <body>
        <form action="salvar.jsp" method="post" enctype="multipart/form-data" >
            <font size="-1"><span
            style="font-weight: bold; font-family: Times New Roman,Times,serif;">Fazer o Upload do arquivo </a>
            <br>
            <br>
            <font size="-1"><span style="font-weight: bold; font-family: Times New Roman,Times,serif;">Selecione o arquivo <input type="file" name="file1">
            <input type="submit" value="Upload" />
        </form>
    </body>
</html>

jsp que faz o envio

<%-- 
    Document   : salvar
    Created on : Feb 24, 2010, 11:15:19 PM
    Author     : Hudson
--%>

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
   "http://www.w3.org/TR/html4/loose.dtd">

<%@page contentType="text/html"%>
<%@ page import="java.io.*" %> 
<%@ page import="java.util.*" %>
<%@ page import="org.apache.commons.fileupload.*" %>
<%
    try
    {
        DiskFileUpload fu = new DiskFileUpload();
        List fileItems = fu.parseRequest(request);
        Iterator i = fileItems.iterator();
        FileItem fi = (FileItem)i.next();
        InputStream in = fi.getInputStream();
        File file = new File("c:/temp");
        FileOutputStream fos = new FileOutputStream(file);
        int c;
        while((c = in.read()) != -1)
        fos.write(c);
        fos.close();
        out.println("O Upload do arquivo foi efetuado com sucesso.");
    }
    catch(Exception e)
    {
        out.println(e.toString());
    }
%>

erro

HTTP Status 500 - 

--------------------------------------------------------------------------------

type Exception report

message 

description The server encountered an internal error () that prevented it from fulfilling this request.

exception 

org.apache.jasper.JasperException: An exception occurred processing JSP page /teste/salvar.jsp at line 19

16:     try
17:     {
18:         DiskFileUpload fu = new DiskFileUpload();
19:         List fileItems = fu.parseRequest(request);
20:         Iterator i = fileItems.iterator();
21:         FileItem fi = (FileItem)i.next();
22:         InputStream in = fi.getInputStream();


Stacktrace:
	org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:505)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:398)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390)


root cause 

javax.servlet.ServletException: java.lang.NoClassDefFoundError: org/apache/commons/io/output/DeferredFileOutputStream
	org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:852)
	org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:781)
	org.apache.jsp.teste.salvar_jsp._jspService(salvar_jsp.java:93)
	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390)


root cause 

java.lang.NoClassDefFoundError: org/apache/commons/io/output/DeferredFileOutputStream
	org.apache.commons.fileupload.DefaultFileItemFactory.createItem(DefaultFileItemFactory.java:102)
	org.apache.commons.fileupload.FileUploadBase.createItem(FileUploadBase.java:500)
	org.apache.commons.fileupload.FileUploadBase.parseRequest(FileUploadBase.java:367)
	org.apache.commons.fileupload.FileUploadBase.parseRequest(FileUploadBase.java:268)
	org.apache.jsp.teste.salvar_jsp._jspService(salvar_jsp.java:70)
	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390)


root cause 

java.lang.ClassNotFoundException: org.apache.commons.io.output.DeferredFileOutputStream
	org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1387)
	org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1233)
	java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
	org.apache.commons.fileupload.DefaultFileItemFactory.createItem(DefaultFileItemFactory.java:102)
	org.apache.commons.fileupload.FileUploadBase.createItem(FileUploadBase.java:500)
	org.apache.commons.fileupload.FileUploadBase.parseRequest(FileUploadBase.java:367)
	org.apache.commons.fileupload.FileUploadBase.parseRequest(FileUploadBase.java:268)
	org.apache.jsp.teste.salvar_jsp._jspService(salvar_jsp.java:70)
	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390)


note The full stack trace of the root cause is available in the Apache Tomcat/6.0.18 logs.

por favor me ajudem
Grato

Está faltando um jar.
Classe não encontrada.

DeferredFileOutputStream 

[Editando]
Procura por esse jar : commons-io-1.3.1.

Espero ter ajudado.

ateh q funcionou mas como pego nome do arquivo
para colocar na linha


File file = new File("C:/temp/teste.txt");

senao nao sei op nome nen a extensao do arquivo

Tenta ai.

fi.getName()

[quote=henriquejhc]Tenta ai.

fi.getName() [/quote]
kara ele retorna o path todo mas ai conseguir pegaro nome usando substring

String nome = fi.getName().toString();
String nomeArquivo = nome.substring(nome.lastIndexOf("\\")+1);

so que agora estou ocm um prloblema quando up a oraquivo ele tem q ir para a pasta do usuario, como vou saber o usuario no jsp q fa o upload ?
no metodo post da pra enviar mais de um valor? como receuprar esse valor.
Grato.

Não consegui entender a sua dúvida.
Você não irá fazer um upload para o usuário e sim o usuário fará um upload para o servidor.
Te aconselharia a criar um servlet que fizesse esse processo de upload.
Esse link irá te ajudar.

Espero ter ajudado.

[quote=henriquejhc]Não consegui entender a sua dúvida.
Você não irá fazer um upload para o usuário e sim o usuário fará um upload para o servidor.
Te aconselharia a criar um servlet que fizesse esse processo de upload.
Esse link irá te ajudar.

Espero ter ajudado.
[/quote]
vou tentar explicar melhor,
essa rotina de upload vai ser acionada por um usuario, ele vai estar logado no sistema, ento aquando ele escolher o arquivo a ser upado eu tenho q saber o usuario q esta upando para colocar no path do file a pasta respectiva do usuario que fica no servidor, tenho assim C:\Aplicacao\user\jjjava, C:\Aplicacao\user\henriquejhc ai quero q quando o usuario up o arquivo vai para pasta dele…
Grato