Forums Register Login
Uploading files using servlet
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 java.io.*;

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)
java.security.SecureClassLoader.defineClass(Unknown 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!
Your class should have a statement

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

You're right!

I feel so stupid right now! hehehe

Thanks for the help! It really means a lot!

This thread has been viewed 1327 times.

All times above are in ranch (not your local) time.
The current ranch time is
Dec 14, 2018 01:00:39.