File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
The moose likes Servlets and the fly likes Uploading files using servlet Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Java » Servlets
Bookmark "Uploading files using servlet" Watch "Uploading files using servlet" New topic

Uploading files using servlet

Renee de Castro

Joined: Mar 12, 2005
Posts: 4
Hi everyone!

I am trying to upload file(s) by using java servlet. I am using Tomcat 5.5 and Jason Hunter's MultiPartRequest class. I have also created a simple HTML that invokes the servlet.

My problem is whenever i test the program i always get an error.

here is a snippet of the code that im using..

import java.util.Enumeration;
import javax.servlet.*;
import javax.servlet.http.*;

import com.oreilly.servlet.MultipartRequest;
import com.oreilly.servlet.multipart.DefaultFileRenamePolicy;

public class UploadFile extends HttpServlet {
private String dirName;

public void init(ServletConfig config) throws ServletException {
// read the uploadDir from the servlet parameters
dirName = config.getInitParameter("uploadDir");
if (dirName == null) {
throw new ServletException("Please supply uploadDir parameter");

public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
PrintWriter out = response.getWriter();

<other part of the code here>

and i have this error message:


javax.servlet.ServletException: Cannot allocate servlet instance for path /servlet/test.UploadFile

root cause

java.lang.NoClassDefFoundError: test/UploadFile (wrong name: UploadFile)
java.lang.ClassLoader.defineClass1(Native Method)
java.lang.ClassLoader.defineClass(Unknown Source) Source)

I have already changed my classpath to include cos.jar. But still it doesnt work. So, what i did was put a copy of the jar file into all possible directories..i have put it in TOMCAT\...\web-inf\lib and C:\Program Files\Java\jdk1.5.0_01\bin directories.

Aside from this i have already compiled the UploadFile servlet so i already have the UploadFile class located in TOMCAT\..\web-inf\classes\test directory.. I have the HTML file in the root directory so i am calling the UploadFile class using this code..

<FORM ACTION="../servlet/test.UploadFile" METHOD=POST ENCTYPE="multipart/form-data">
What is your name? <INPUT TYPE=TEXT NAME=submitter> <BR>
Which file to upload? <INPUT TYPE=FILE NAME=file1> <BR>

I've been trying to figure this out for days now and i'm surely getting a bit desperate as days pass by.

I hope somebody can shed some light into this problem..

thanks a lot!
Annie Smith
Ranch Hand

Joined: Mar 05, 2005
Posts: 172
Your class should have a statement

on the first line. Then the class should be under WEB-INF/classes/test. That should work!

Cheers!<br /><b>Annie</b>
Renee de Castro

Joined: Mar 12, 2005
Posts: 4
Hi Annie!

You're right!

I feel so stupid right now! hehehe

Thanks for the help! It really means a lot!
I agree. Here's the link:
subject: Uploading files using servlet
It's not a secret anymore!