はじめに
環境は以下。
- WildFly: 12.0.0.Final
- Java: 1.8.0_161
- NetBeans: 8.2
- CentOS: 7
発生したエラー
特に明示的にライブラリでdom4j
というものは使ってないが内部の何かが使っているのか、
WildFlyにデプロイしようとすると以下のエラーが発生する。
"java.lang.ClassCastException: org.dom4j.DocumentFactory cannot be cast to org.dom4j.DocumentFactory
Caused by: java.lang.ClassCastException: org.dom4j.DocumentFactory cannot be cast to org.dom4j.DocumentFactory"
対応
$ cd wildfly-12.0.0.Final/modules/system/layers/base/org/dom4j/main/
$ ls
# dom4j-1.6.1.jar module.xml
$ sudo wget http://central.maven.org/maven2/org/dom4j/dom4j/2.1.0/dom4j-2.1.0.jar
$ sudo vim module.xml
<module name="org.dom4j" xmlns="urn:jboss:module:1.5">
<resources>
<resource-root path="dom4j-2.1.0.jar"/> <!-- ここのバージョンを上げる -->
</resources>
<dependencies>
<module name="javax.api"/>
<module name="com.sun.xml.bind"/>
<module name="javax.xml.bind.api"/>
<module name="org.jaxen"/>
</dependencies>
</module>
$ sudo systemctl restart wildfly
# 再起動後デプロイできた