Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Add a permalink. Fix formatting. Convert links to https.

...

Permalink to this page: https://cwiki.apache.org/confluence/x/tSklBg

Preface

This page discusses the various ways you see Class Not Found errors or very similar errors. It is strongly advised you read the following topics:

  • Wiki MarkupClassloader HOWTO pages: \[http://tomcat.apache.org/tomcat-4.1-doc/class-loader-howto.html Tomcat 4.1\], \[http://tomcat.apache.org/tomcat-5.0-doc/class-loader-howto.html Tomcat 5.0\], \[http://tomcat.apache.org/tomcat-5.5-doc/class-loader-howto.html Tomcat 5.5\].
  • Wiki Markup
    \[http://marc.theaimsgroup.com/?t=104317529200004&r=1&w=2 Don't\] \[http://marc.theaimsgroup.com/?t=104380440100003&r=1&w=2 use\] \[http://marc.theaimsgroup.com/?t=96947656900002&r=1&w=2 packageless\] \[http://marc.theaimsgroup.com/?t=104491020100002&r=1&w=2 classes\] \[http://marc.theaimsgroup.com/?t=104265576200003&r=1&w=2 and\] \[http://marc.theaimsgroup.com/?t=104249748300001&r=1&w=2 declare\] \[http://marc.theaimsgroup.com/?t=102996950100003&r=1&w=2 all\] \[http://marc.theaimsgroup.com/?t=102922189400001&r=1&w=2 imported classes\]!
  • Tomcat 9.0, Tomcat 8.5, Tomcat 7.0, (historic: Tomcat 6.0).
  • Don't use packageless classes and declare all imported classes!
  • Another answer to a classloader issue Wiki Markup\[http://marc.theaimsgroup.com/?l=tomcat-user&m=103843452413727&w=2 Another answer to a classloader issue\] \\

If you get a NoClassDefFoundError exception, the root cause might be the same as for a ClassNotFound exception.

Questions

...

  1. Why is jsp:useBean is

...

  1. not working?
  2. Why do I get java.lang.NoClassDefFoundError: javax/servlet/Filter?
  3. Why do I get java.lang.NoClassDefFoundError: org/xml/sax/InputSource?

Answers

...

Anchor
Q1
Q1
Why is

jsp:useBean

...

is not working?

...

Make sure:

  • Your bean is packaged in a class.
  • You have fully qualified your class name (

    eg: No Format

    e.g.: com.bar.package.MyClass

    ) OR

  • You have imported your class into your jsp (

    eg: No Format <%@ pageimport

    e.g.: <%@ page import="com.bar.package.MyClass"%>

    )

     )

...

Anchor
Q2
Q2
Why do I get

...

java.lang.NoClassDefFoundError:

...

javax/servlet/Filter

...

?

...

You probably have servlet-api.jar floating around somewhere it shouldn't be. This really messes up the classloaders since Tomcat's classloaders don't act quite as normal as one expects (see links above). servlet-api.jar should only be found only once in $CATALINA_HOME/common/lib.

Anchor
Q3
Q3
Why do I get

...

java.lang.NoClassDefFoundError:

...

org/xml/sax/InputSource

...

?

...

You have conflicting XML api jar files in your classpath. Read the README or RELEASE-NOTES for more information.

...