A Java web application deployed in Tomcat, hits the following error message :

javax.servlet.ServletException: java.lang.NoClassDefFoundError: javax/el/ExpressionFactory
java.lang.ClassNotFoundException: javax.el.ExpressionFactory$ Method)
note The full stack trace of the root cause is available in the Apache Tomcat/6.0.26 logs.


The “javax.el.ExpressionFactory” class is belong to the “el-api.jar” library, you can download it from Maven central repository.


Alternative Solution

In some cases, Tomcat will still prompting the same error message even the “el-api.jar” file is included. Then you can try include J2EE standard API library, “javaee.jar“, it contains the “javax.el.ExpressionFactory” class as well, at least this is work for me.

This “javaee.jar” could be find in your J2EE SDK folder.

For Eclipse IDE

If you are in debugging, make sure your server instance is able to find the javaee.jar file.


Or you can add it yourself with following steps

  1. Double clicks on the server instance.
  2. Click on the “Open launch configuration”.
  3. Add javaee.jar in “Bootstrap Entries”.


  1. How to download javaee.jar from Maven