Question

I'm working on a project that is currently migrating from Apache Tomcat 6 to OC4J (due to the client's specifications).

The problem is that we're getting this:

2012-02-08 18:23:53.091 NOTIFICATION J2EE JSP-0008 Error: Exception Oracle.classloader.util.AnnotatedNoClassDefFoundError:

  Class not found: javax.el.ELException

Classe dependente: oracle.jsp.parse.JspBeanInfo
         Carregador: oc4j:10.1.3
    Origem do Código: /C:/Users/cvgpb/Desktop/Oracle-OC4J/j2ee/home/lib/ojsp.jar
  Configuração: <code-source> in META-INF/boot.xml in C:\Users\cvgpb\Desktop\Oracle-OC4J\j2ee\home\oc4j.jar

We're using, as you can see, OC4J 10.1.3. Almost every page on the project is using ELs... The only alternative is to use scriptlets but that would take long time.

We must use EL and OC4J 10.1.3 otherwise it'll cost too much to rebuild all the pages. How can I manage to solve this?

Was it helpful?

Solution

javax.el.ELException is introduced in JSP/EL 2.1 which goes hand in hand with Servlet 2.5 which is part of Java EE 5. Tomcat 6.0 is a Servlet 2.5 compatible container.

OC4J 10.1.3, however, is an ancient J2EE 1.4 container, supporting only Servlet 2.4.

As long as your webapp's web.xml is declared conform Servlet 2.4, all the code is programmed against the Servlet 2.4 / JSP 2.0 APIs, the /WEB-INF/lib does not contain servletcontainer specific libraries such as a copy of jsp-api.jar from Tomcat 6, and the webapp runs perfectly fine on Tomcat 5.5 (which is also a Servlet 2.4 container), then it should in theory work as good on OC4J 10.1.3.

This particular error indicates that you have libraries in /WEB-INF/lib which are either copied from Tomcat 6, or have in turn Servlet 2.5 dependencies, such as for example JSF 2.0. Cleanup the /WEB-INF/lib and/or downgrade the involved libraries to Servlet 2.4 compatible versions.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top