一、问题描述
在将某个项目部署到wildfly服务器,使用
mvn clean package wildfly:deploy
命令部署时,报错如下:
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"}}
二、运行环境
wildfly-10.0.0.Final + maven-3.3.9
三、原因分析
这是由于(之前的项目缓存留下的问题,待我研究一下dom4j的详细资料再做解释),
可以查看$JBOSS_HOME/standalone/configuration
目录下的standalone.xml文件,该文件显示了在wildfly服务器上部署过的所有项目,以及可能存在的项目缓存。
比如本人的该文件的内容如下:
从中可以查看我部署过的所有项目。可能是之前的项目存在问题,所以导致在本次项目部署时报dom4j错误。
四、问题解决
清除之前的项目缓存即可。
清除项目缓存方法如下:
清除掉$JBOSS_HOME/standalone/data
和$JBOSS_HOME/standalone/tmp
两个目录下的所有内容。
五、问题延展
tomcat服务器清除项目缓存的方法。
1.在你的IDE里清除一下项目,下面以eclipse为例:
Project–>Clean–>选择你要清除的项目即可。
如下图:
2.在tomcat中清除项目缓存
清除掉$TOMCAT_HOME/wor
k目录下的所有内容即可。
六、参考资料
1.http://www.itkeyword.com/doc/336653364447979x774/wildfly-10-java-lang-classcastexception-org-dom4j-documentfactory-cannot-be-ca
2.https://www.baidu.com/link?url=kIwrVvJgYZEtXFgGWmHL6BQYLmf7X5BGtoEkaXyGxZuDtGcLY_LYHIQn20TJQUubH5bNgR7-mlAznpWV_jYQ6SnWjkO1rMVtfJsIqxyaBJ7&wd=&eqid=b33011430002ae2700000002591d310d