0

我正在开发一个项目,该项目目前正在从 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 否则重建所有页面会花费太多。 我该如何解决这个问题?

4

1 回答 1

4

javax.el.ELException在 JSP/EL 2.1 中引入,它与作为 Java EE 5 一部分的 Servlet 2.5 齐头并进。Tomcat 6.0 是与 Servlet 2.5 兼容的容器。

然而,OC4J 10.1.3 是一个古老的 J2EE 1.4 容器,仅支持 Servlet 2.4。

只要您的 webappweb.xml被声明为符合 Servlet 2.4,所有代码都是针对 Servlet 2.4 / JSP 2.0 API 编程的,/WEB-INF/lib包含servletcontainer 特定库,例如来自 Tomcat 6 的副本,并且 webapp 在 Tomcat 5.5 上运行得非常好(它也是一个 Servlet 2.4 容器),那么理论上它应该在 OC4J 10.1.3 上运行良好。jsp-api.jar

此特定错误表明您拥有/WEB-INF/lib从 Tomcat 6 复制的库,或者依次具有 Servlet 2.5 依赖项,例如 JSF 2.0。清理/WEB-INF/lib和/或降级涉及的库到 Servlet 2.4 兼容版本。

于 2012-02-08T20:49:04.290 回答