HTTP Status 500 - Ajuda Urgente

3 respostas
X

Pessoal Bom dia,

Peguei esse servlet aqui mesmo no forum, estava funcionando ok, mas devo ter alterado algo e nao consigo identificar, devido ao tempo venho aqui desesperadamente pedir ajuda, quem puder ajudar agradeço desde já.

import java.io.*;
 import java.text.SimpleDateFormat;
 import java.util.Date;
 import java.util.Iterator;
 import java.util.List;
 import java.util.StringTokenizer;

 import javax.servlet.*;
 import javax.servlet.http.*;
 import org.apache.commons.fileupload.FileItem;
 import org.apache.commons.fileupload.FileItemFactory;
 import org.apache.commons.fileupload.FileUploadBase;
 import org.apache.commons.fileupload.disk.DiskFileItemFactory;
 import org.apache.commons.fileupload.servlet.ServletFileUpload;

 /**
 *
 * @author Razbrouser
 * @version
 */
 public class uploadServlet extends HttpServlet {

 private String msg = null;
 private String path="C:\\temp\\";
 private String filename = null;
     public String getMsg() {
         return msg;
     }

     public void setMsg(String msg) {
         this.msg = msg;
     }

     public String getPath() {
         return path;
     }

     public void setFilename(String filename) {
         this.filename = filename;
     }

     public String getFilename() {
         return filename;
     }


     protected void processRequest(HttpServletRequest request, HttpServletResponse response)
     throws ServletException, IOException {
 //        String idProjeto = request.getInputStream("idProjeto");

         int MB = 1024 * 1024;
         boolean isMultipart = ServletFileUpload.isMultipartContent(request);
         FileItemFactory factory = new DiskFileItemFactory();
         ServletFileUpload upload = new ServletFileUpload(factory);

         try{
             upload.setSizeMax(MB);

             List items = upload.parseRequest(request);
             Iterator iter = items.iterator();

             while (iter.hasNext()) {
                 FileItem item = (FileItem) iter.next();

                 if(!item.isFormField()){
                     setFilename(item.getName());
                     if((getFilename()!=null)&&(!getFilename().equals(""))){
                         if(isPermission(getFilename())){
                             setFilename((new File(getFilename())).getName());
                             String[] nomeSplit = getFilename().split("\\.");
                             setFilename(nomeData()+"."+nomeSplit[1]);
                             item.write(new File(getPath() +getFilename()));
                             setMsg(getFilename()+" - Arquivo enviado com sucesso!");
                         }
                         else{
                             setMsg("Arquivo não permitido para upload");
                             imprimir(request, response);
                         }
                     }
                 }
             }
         }
         catch(FileUploadBase.SizeLimitExceededException slee){
             slee.printStackTrace();
             setMsg("Tamanho exedido");
             setFilename("");
             imprimir(request, response);
        }
         catch(Exception e){
             e.printStackTrace();
         }

 //        response.sendRedirect("index.jsp");
         response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();

         out.println("<html>");
         out.println("<head>");
         out.println("<title>Servlet uploadServlet</title>");
        out.println("</head>");
         out.println("<body>");
         out.println("File Uploaded Proprieties <br><rh>");
         out.println("nome do arquivo: <strong>"+ getFilename() +"</strong><br>");
         out.println("path do arquivo: <strong>"+ getPath() +"</strong><br>");
 //        out.println("idProjeto: <strong>"+ idProjeto +"</strong><br>");
         out.println("Erro de tamanho: <strong>"+ getMsg() +"</strong>");
         out.println("</body>");
         out.println("</html>");

         out.close();



     }
     private boolean isPermission(String fileName){
        String lowerCaseName = fileName.toLowerCase();
         StringTokenizer st = new StringTokenizer("doc,DOC,txt,TXT,pdf,PDF"," ,");
         while(st.hasMoreTokens()){
             if(lowerCaseName.endsWith("."+st.nextToken())){
                return true;
             }
         }
         return false;
     }

     private void imprimir (HttpServletRequest request, HttpServletResponse response)
         throws ServletException, IOException {

         response.setContentType("text/html;charset=UTF-8");
         PrintWriter out = response.getWriter();

         out.println("<html>");
         out.println("<head>");
         out.println("<title>Servlet uploadServlet</title>");
         out.println("</head>");
         out.println("<body>");
         out.println("File Uploaded errors <br><rh>");
         out.println("Erro: <strong>"+ getMsg() +"</strong>");
         out.println("</body>");
         out.println("</html>");

         out.close();
     }

     private String nomeData(){
        Date hoje = new Date();
         System.out.println ("A data de hoje é: "+ hoje);
         SimpleDateFormat formatter = new SimpleDateFormat("yyMMddhhmmss");
         String nome = formatter.format(hoje);
         return nome;
     }
     // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
     /** Handles the HTTP <code>GET</code> method.
      * @param request servlet request
      * @param response servlet response
      */
     protected void doGet(HttpServletRequest request, HttpServletResponse response)
     throws ServletException, IOException {
         processRequest(request, response);
     }

     /** Handles the HTTP <code>POST</code> method.
      * @param request servlet request
      * @param response servlet response
      */
     protected void doPost(HttpServletRequest request, HttpServletResponse response)
     throws ServletException, IOException {
         processRequest(request, response);
     }
     /** Returns a short description of the servlet.
      */
     public String getServletInfo() {
         return "Short description";
     }
     // </editor-fold>
 }

Trata-se de um servlet para upload de pdf, doc e txt para o servidor.

Aparece o seguinte erro
exception

javax.servlet.ServletException: Servlet execution threw an exception

root cause

java.lang.NoClassDefFoundError: org/apache/commons/io/output/DeferredFileOutputStream
	org.apache.commons.fileupload.disk.DiskFileItemFactory.createItem(DiskFileItemFactory.java:196)
	org.apache.commons.fileupload.FileUploadBase.parseRequest(FileUploadBase.java:358)
	org.apache.commons.fileupload.servlet.ServletFileUpload.parseRequest(ServletFileUpload.java:126)
	ProjEngSoft.uploadServlet.processRequest(uploadServlet.java:61)
	ProjEngSoft.uploadServlet.doPost(uploadServlet.java:170)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

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:319)
	org.apache.commons.fileupload.disk.DiskFileItemFactory.createItem(DiskFileItemFactory.java:196)
	org.apache.commons.fileupload.FileUploadBase.parseRequest(FileUploadBase.java:358)
	org.apache.commons.fileupload.servlet.ServletFileUpload.parseRequest(ServletFileUpload.java:126)
	ProjEngSoft.uploadServlet.processRequest(uploadServlet.java:61)
	ProjEngSoft.uploadServlet.doPost(uploadServlet.java:170)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

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

alguem pode ajudar a arrumar?

Obrigado.

3 Respostas

A

Provavelmente está faltando o pacote commons-io-x.x.x.jar no seu projeto. O commons-fileupload precisa dele para funcionar.

edysnipes

java.lang.ClassNotFoundException: org.apache.commons.io.output.DeferredFileOutputStream indica a falta do commons.io! Verifique se alguem retirou essa lib aí.

Abraço!

X

Resolvido, MUITO OBRIGADO!!

Criado 10 de outubro de 2009
Ultima resposta 10 de out. de 2009
Respostas 3
Participantes 3