It's not a secret anymore!
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!