Erro em jsp de upload de arquivo (passando inferno)

6 respostas
JJjava

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

6 Respostas

H

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

DeferredFileOutputStream

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

Espero ter ajudado.

JJjava

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

H

Tenta ai.

fi.getName()
JJjava

henriquejhc:
Tenta ai.

fi.getName()


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.

H

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.

JJjava

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.


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

Criado 25 de fevereiro de 2010
Ultima resposta 26 de fev. de 2010
Respostas 6
Participantes 2