Dear friends, I am writing a program for uploading a file onto my webserver with JSP. I use JSP, Tomcat, Apache2, MySQL. I use this program : http://jakarta.apache.org/commons/fileupload/ . I choose the version 1.1. But it does not run properly as I expect (HTTP Status 500). Please tell me where the mistake. Thank you very much in advance. ----- // This is my 'ps.jsp' : <body> <table cellpadding="0" cellspacing="0" border="1" align="center"> <form enctype="multipart/form-data" action="http://localhost:8080/penguin-teknologi/penguin-teaches/cgiupload.jsp" method="post" name="myform"> <tr><td align="justify"><font style="Comic Sans MS, Arial">Silahkan pilih file yg akan diupload.</font></td></tr> <tr><td><input type="text" name="nama"></td></tr> <tr><td align="justify"><input type="file" name="soalnya"></td></tr> <tr><td align="justify"><input type="submit" value="Kirim"><input type="reset"></td></tr> </form> </table> </body> ----- // This is my 'cgiupload.jsp' <%@ page import="org.apache.commons.fileupload.*, java.util.List, java.io.File, java.util.Iterator" %> <% boolean isMultipart = FileUpload.isMultipartContent(request); if(!isMultipart){ request.setAttribute("msg", "Request was not multipart!"); request.getRequestDispatcher("msg.jsp").forward(request, response); return; } DiskFileUpload upload = new DiskFileUpload(); List items = upload.parseRequest(request); Iterator itr = items.iterator(); while(itr.hasNext()){ FileItem item = (FileItem) itr.next(); if(item.isFormField()) { String fieldName = item.getFieldName(); if(fieldName.equals("name")) request.setAttribute("msg", "Thank You: " + item.getString()); } else { File fullFile = new File(item.getName()); File savedFile = new File(getServletContext().getRealPath("/"), fullFile.getName()); item.write(savedFile); } } request.getRequestDispatcher("msg.jsp").forward(request, response); %> ----- // This is my 'msg.jsp' : <body> <% String msg = (String)request.getAttribute("msg"); if(msg != null) out.println("<font size=+1>Buseettt<br>" + msg + "</font><br/>"); %> Click <a href="../../../../../Apache%20Group/Apache2/htdocs/p-tek/penguin-teaches/ps.jsp">here</a> to go to the upload page. </body> ----- 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: org/apache/commons/io/output/DeferredFileOutputStream org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:510) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:375) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264) javax.servlet.http.HttpServlet.service(HttpServlet.java:802) root cause javax.servlet.ServletException: org/apache/commons/io/output/DeferredFileOutputStream org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:858) org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:791) org.apache.jsp.penguin_002dteaches.cgiupload_jsp._jspService(cgiupload_jsp.java:80) org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97) javax.servlet.http.HttpServlet.service(HttpServlet.java:802) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:332) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264) javax.servlet.http.HttpServlet.service(HttpServlet.java:802) 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.penguin_002dteaches.cgiupload_jsp._jspService(cgiupload_jsp.java:57) org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97) javax.servlet.http.HttpServlet.service(HttpServlet.java:802) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:332) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264) javax.servlet.http.HttpServlet.service(HttpServlet.java:802) note The full stack trace of the root cause is available in the Apache Tomcat/5.5.16 logs. -------------------------------------------------------------------------------- Apache Tomcat/5.5.16