0

我正在经历

java.lang.ClassCastException: org.dom4j.DocumentFactory cannot be cast to org.dom4j.DocumentFactory

在部署到 WildFly 13.0.0.Final 期间,应用程序在我指定的 Payara 4.1.2.181 和 5.181 上部署良好

<class-loader delegate="false"/>

WEB-INF/glassfish-web.xml. 我假设类转换异常是由类加载问题引起的(因为由不同的类加载器加载的两个相同的类被认为是不相同的)<class-loader delegate="false"/>,因此我假设为 WildFly 指定等效项是 KISS 解决方案。

关于在不同的 Java EE 服务器中(分层)使用类加载器有很多术语(因为 Java EE 没有指定它),我开始阅读 WildFly 的概念,但是我将在 GlassFish/Payara 中表达我正在寻找的内容条款:避免类加载委托,并首先从部署的 WAR 中获取依赖项/搜索和加载类。

JBoss 论坛中关于 GlassFish 未发生的类转换异常的臃肿线程提供了一个不适用于我的应用程序的解决方案。

有趣的是,甚至不排除所有org.dom4j.DocumentFactory使应用程序在 Java EE 服务器之间有效地不可移植的传递依赖项都有帮助。

4

1 回答 1

1

我需要分析你的类路径以确定,但是当我部署一个包含不同版本的hibernate的应用程序时,我遇到了类似的错误,而不是wildfly中包含的那个。如果您使用的是休眠,那么这是开始调查的好点。如果不是,则检查其他一些(传递)依赖项是否与 wildfly 中包含的内容冲突。

于 2018-06-13T20:38:10.177 回答