Frage

An EJB application which works using Java6 JRE fails to deploy with Java7, it throws the following error:

14/01/13 13:33:23 WARNING: Application.setConfig Application: accesscontrolapp is in failed state as initialization failed. oracle.classloader.util.AnnotatedNoClassDefFoundError:

Missing class: org.apache.crimson.tree.ElementNode

Dependent class: com.sun.enterprise.deployment.xml.EjbBundleNode Loader: oc4j:10.1.3 Code-Source: .../oc4j_standalone/j2ee/home/lib/oc4j-internal.jar
Configuration: in META-INF/boot.xml in ...\oc4j_standalone\j2ee\home\oc4j.jar

The missing class is not available from any code-source or loader in the system.

I located the missing class in j2ee/home/lib/crimson_1_1_3.jar so I don't understand, why the error?

War es hilfreich?

Lösung

The error message refers to META-INF/boot.xml within oc4j.jar, if you look at that file it reads:

    <code-source path="lib/crimson_1_1_3.jar" if="java.specification.version == /1\.[5-6]/"/>

This was apparently done to prevent loading of crimson in java 1.4. If you change this to read '[5-9]' then this works for Java 1.7 and presumably 1.8 and 1.9 as well.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top