我正在开发一个目前正在从Apache Tomcat 6迁移到OC4J的项目(由于客户端的规范)。
问题是我们得到了这个:
2012-02-08 18:23:53.091通知J2EE JSP-0008错误:异常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
正如您所见,我们正在使用OC4J 10.1.3。 几乎项目的每个页面都使用EL ... 唯一的选择是使用scriptlet,但这需要很长时间。
我们必须使用EL和OC4J 10.1.3,否则重建所有页面的成本太高。 如何解决此问题?
答案 0 :(得分:4)
javax.el.ELException
,它与Servlet 2.5密切相关,Servlet 2.5是Java EE 5的一部分.Tomcat 6.0是一个与Servlet 2.5兼容的容器。
只要您的webapp的web.xml
被声明为符合Servlet 2.4,所有代码都是针对Servlet 2.4 / JSP 2.0 API编程的,/WEB-INF/lib
不包含servletcontainer特定的库,例如来自Tomcat 6的jsp-api.jar
的副本,以及webapp在Tomcat 5.5(也是一个Servlet 2.4容器)上运行得非常好,那么理论上它应该在OC4J 10.1.3上运行良好。< / p>
此特定错误表示您在/WEB-INF/lib
中拥有从Tomcat 6复制的库,或者依次具有Servlet 2.5依赖项,例如JSF 2.0。清除/WEB-INF/lib
和/或将涉及的库降级为Servlet 2.4兼容版本。