使用Java6 JRE工作的EJB应用程序无法使用Java7进行部署,它会引发以下错误:
14/01/13 13:33:23警告:Application.setConfig应用程序: 初始化失败时,accesscontrolapp处于失败状态。 oracle.classloader.util.AnnotatedNoClassDefFoundError:
Missing class: org.apache.crimson.tree.ElementNode
依赖类:com.sun.enterprise.deployment.xml.EjbBundleNode 加载器:oc4j:10.1.3 代码来源:... / oc4j_standalone / j2ee / home / lib / oc4j-internal.jar
配置:在META-INF / boot.xml中 ... \ oc4j_standalone \ J2EE \家\ oc4j.jar缺少的类不能从任何代码源或加载器中获得 系统。
我找到了j2ee / home / lib / crimson_1_1_3.jar中缺少的类,所以我不明白,为什么会出错?
答案 0 :(得分:2)
错误消息引用oc4j.jar中的META-INF / boot.xml,如果你看一下它所读取的文件:
<code-source path="lib/crimson_1_1_3.jar" if="java.specification.version == /1\.[5-6]/"/>
这显然是为了防止在java 1.4中加载crimson。如果将其更改为“[5-9]”,那么这适用于Java 1.7,也可能是1.8和1.9。