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

ご覧のとおり、OC4J10.1.3を使用しています。プロジェクトのほぼすべてのページでELが使用されています...唯一の代替手段はスクリプトレットを使用することですが、これには長い時間がかかります。

ELとOC4J10.1.3を使用する必要があります。そうしないと、すべてのページを再構築するのにコストがかかりすぎます。 どうすればこれを解決できますか?

4

1 に答える 1

4

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.

于 2012-02-08T20:49:04.290 に答える