Ted Pat
Ted Pat

Reputation: 87

Tomcat 7 javax.el.ELException

I restarted the httpd and tomcat service today, and after doing so. I was greeted with the following message.

I saw this thread http://www.coderanch.com/t/592922/Tomcat/enable-el-api-jar-ver

And did as they told. I checked, and the el-api.jar is there. I checked another server, and tomcat is running great with it as well.

The server is a Centos 6.4 (final) and Tomcat 7.0.23.

I tried everything, even replacing the jar files, but nothing seems to work.

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

org.apache.jasper.JasperException: javax.el.ELException: Provider com.sun.el.ExpressionFactoryImpl not found
    org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:585)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:396)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
root cause

javax.el.ELException: Provider com.sun.el.ExpressionFactoryImpl not found
    javax.el.FactoryFinder.newInstance(FactoryFinder.java:101)
    javax.el.FactoryFinder.find(FactoryFinder.java:197)
    javax.el.ExpressionFactory.newInstance(ExpressionFactory.java:189)
    javax.el.ExpressionFactory.newInstance(ExpressionFactory.java:160)
    org.apache.jasper.runtime.JspApplicationContextImpl.getExpressionFactory(JspApplicationContextImpl.java:108)
    org.apache.jsp.index_jsp._jspInit(index_jsp.java:31)
    org.apache.jasper.runtime.HttpJspBase.init(HttpJspBase.java:49)
    org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:180)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:369)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
root cause

java.lang.ClassNotFoundException: com.sun.el.ExpressionFactoryImpl
    org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1688)
    org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1533)
    javax.el.FactoryFinder.newInstance(FactoryFinder.java:87)
    javax.el.FactoryFinder.find(FactoryFinder.java:197)
    javax.el.ExpressionFactory.newInstance(ExpressionFactory.java:189)
    javax.el.ExpressionFactory.newInstance(ExpressionFactory.java:160)
    org.apache.jasper.runtime.JspApplicationContextImpl.getExpressionFactory(JspApplicationContextImpl.java:108)
    org.apache.jsp.index_jsp._jspInit(index_jsp.java:31)
    org.apache.jasper.runtime.HttpJspBase.init(HttpJspBase.java:49)
    org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:180)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:369)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
note The full stack trace of the root cause is available in the Apache Tomcat/7.0.23 logs.

Upvotes: 7

Views: 15373

Answers (2)

Arun Sharma
Arun Sharma

Reputation: 41

I got the same error today on Tomcat 9.0.21

and as per this bug - https://bz.apache.org/bugzilla/show_bug.cgi?id=64097

It is a known bug with "el-api.jar" and has been fixed in following versions

Fixed in:

  • master for 10.0.0.0-M1 onwards
  • 9.0.x for 9.0.31 onwards
  • 8.5.x for 8.5.51 onwards
  • 7.0.x for 7.0.100 onwards

Solution :- You can upgrade tomcat to these versions or just bring over the "el-api.jar" from the lib folder of a newer tomcat (which has the fix), place it in your lib folder and restart tomcat. It would work.

Upvotes: 0

Ravi K Thapliyal
Ravi K Thapliyal

Reputation: 51711

Please, make sure you have both these jars at ${TOMCAT_HOME}/lib

el-api-2.2.jar // jar version could differ
el-impl-2.2.jar

Upvotes: 7

Related Questions