我正在从事一个项目,该项目目前正在从Apache 6迁移到OC4J (由于客户端的规范)。
问题是我们得到了这个:
2012-02-08 18:23:53.091通知Oracle.classloader.util.AnnotatedNoClassDefFoundError: JSP-0008错误:异常J2EE
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。项目的几乎每一页都在使用ELs..。唯一的选择是使用scriptlet,但这需要很长时间。
我们必须使用EL和OC4J 10.1.3,否则重建所有页面的成本太高。我怎样才能解决这个问题?
发布于 2012-02-08 20:49:04
javax.el.ELException是在JSP/EL 2.1中引入的,它与Java 5的一部分Servlet2.5并驾齐驱。Tomcat6.0是一个Servlet2.5兼容容器。
然而,OC4J 10.1.3是一个古老的Servlet1.4容器,只支持Servlet2.4。
只要您的webapp的web.xml声明符合Servlet2.4,所有代码都是针对Servlet2.4/JSP2.0API编写的,/WEB-INF/lib不包含特定于Servlet容器的库,例如Tomcat 6的jsp-api.jar副本,并且webapp在Tomcat 5.5 (也是Servlet2.4容器)上运行得非常好,那么理论上它应该在OC4J 10.1.3上运行良好。
此特定错误表示/WEB-INF/lib中有库,这些库要么是从Tomcat 6复制的,要么是具有Servlet2.5依赖关系,例如JSF2.0。清理/WEB-INF/lib和/或将涉及的库降级为Servlet2.4兼容版本。
https://stackoverflow.com/questions/9200988
复制相似问题