gpt4 book ai didi

deployment - 由 : org. dom4j.DocumentException 引起 : org. dom4j.DocumentFactory 无法转换为 org.dom4j.DocumentFactory

转载 作者:行者123 更新时间:2023-12-01 17:59:29 28 4
gpt4 key购买 nike

我有一个使用 hibernate > 4 的 gradle 项目。如果我在 Apache tomcat 中运行我的 war 文件,我不会收到任何错误。但是当我在 Wildfly 8.2 中部署它时,出现以下异常

Caused by: org.hibernate.InvalidMappingException: Error while parsing file: /G:/wildfly-8.2.0.Final/bin/content/mywar-1.0.war/WEB-INF/classes/com/mysite/
hbm/Role.hbm.xml
at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.buildHibernateConfiguration(EntityManagerFactoryBuilderImpl.java:1182) [hibernate-ent
itymanager-4.3.7.Final.jar:4.3.7.Final]
at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl$4.perform(EntityManagerFactoryBuilderImpl.java:848) [hibernate-entitymanager-4.3.7.Fi
nal.jar:4.3.7.Final]
at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl$4.perform(EntityManagerFactoryBuilderImpl.java:845) [hibernate-entitymanager-4.3.7.Fi
nal.jar:4.3.7.Final]
at org.hibernate.boot.registry.classloading.internal.ClassLoaderServiceImpl.withTccl(ClassLoaderServiceImpl.java:398) [hibernate-core-4.3.7.Final.jar:4.
3.7.Final]
at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:844) [hibernate-entitymanager-4.3.7.Final.
jar:4.3.7.Final]
at org.jboss.as.jpa.hibernate4.TwoPhaseBootstrapImpl.build(TwoPhaseBootstrapImpl.java:44) [jipijapa-hibernate4-3-1.0.1.Final.jar:]
at org.jboss.as.jpa.service.PersistenceUnitServiceImpl$1$1.run(PersistenceUnitServiceImpl.java:154) [wildfly-jpa-8.2.0.Final.jar:8.2.0.Final]
... 8 more
Caused by: org.hibernate.InvalidMappingException: Unable to read XML
at org.hibernate.internal.util.xml.MappingReader.legacyReadMappingDocument(MappingReader.java:375) [hibernate-core-4.3.7.Final.jar:4.3.7.Final]
at org.hibernate.internal.util.xml.MappingReader.readMappingDocument(MappingReader.java:304) [hibernate-core-4.3.7.Final.jar:4.3.7.Final]
at org.hibernate.cfg.Configuration.add(Configuration.java:518) [hibernate-core-4.3.7.Final.jar:4.3.7.Final]
at org.hibernate.cfg.Configuration.add(Configuration.java:514) [hibernate-core-4.3.7.Final.jar:4.3.7.Final]
at org.hibernate.cfg.Configuration.add(Configuration.java:688) [hibernate-core-4.3.7.Final.jar:4.3.7.Final]
at org.hibernate.cfg.Configuration.addInputStream(Configuration.java:726) [hibernate-core-4.3.7.Final.jar:4.3.7.Final]
at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.buildHibernateConfiguration(EntityManagerFactoryBuilderImpl.java:1177) [hibernate-ent
itymanager-4.3.7.Final.jar:4.3.7.Final]
... 14 more
Caused by: org.dom4j.DocumentException: org.dom4j.DocumentFactory cannot be cast to org.dom4j.DocumentFactory Nested exception: org.dom4j.DocumentFactory cannot
be cast to org.dom4j.DocumentFactory
at org.dom4j.io.SAXReader.read(SAXReader.java:484) [dom4j-1.6.1.jar:1.6.1]

我刚刚在我的 Gradle 文件中添加了一个排除,例如

runtime.exclude group: "dom4j" 

现在,当我运行 gradle build 时,war 文件中不会创建 dom4j.jar。现在我可以在 Wildfly 8.2 上成功运行我的部署并运行我的项目,没有任何错误。但真正的问题从这里开始。

我的项目中的一个功能是,它将一个 file.xlsm 复制到另一个 file.xlsm,我在其中使用 Apache Poi 等 jar 来实现这些目的。这里,Apache Poi 在文件处理过程中尝试访问 dom4j.jar 中的方法,导致以下错误

18:40:13,261 ERROR [io.undertow.request] (default task-29) UT005023: Exception handling request to /app/parentPath/myAction: org.springframework.web.util.NestedSe
rvletException: Handler processing failed; nested exception is java.lang.NoClassDefFoundError: org/dom4j/DocumentException
at org.springframework.web.servlet.DispatcherServlet.triggerAfterCompletionWithError(DispatcherServlet.java:1287) [spring-webmvc-4.1.4.RELEASE.jar:4.1.4
.RELEASE]

有什么想法可以在我的类路径中永久使用 dom4j.jar 吗?我搜索了很多问题,其中大多数建议从类路径中删除 dom4j。我通过从类路径中删除程序来成功运行我的程序,但它会在 Excel 文件处理期间导致上述错误。浪费了一天多的时间..!!是否可以将 dom4j.jar 包含在我的类路径中?

更新:

我在 MANIFEST.MF 文件中做了一些小技巧。我已经打开了mywar.war > META-INF > MANIFEST.MF

并添加 依赖项: org.dom4j 导出位于文件末尾并保存。因此,如果我部署 war 文件,我就能成功运行它,不会出现任何错误。

有人可以解释一下我必须在 src/文件中添加此类属性,以便在 gradle 构建后自动将其添加到 MANIFEST.MF 中。

最佳答案

当你在你的war中包含一个与wildfly不同的hibernate库时,wildfly上的这个异常通常会发生,因为你正在部署到wildfly,它已经包含hibernate,所以你可以按照gradle中提供的方式设置你的生活,又名compileProvided并部署而无需导出依赖。如果您仍然遇到相同的错误,请尝试声明对 list 的休眠依赖,但保留库,因为它应该可以正常工作。

关于deployment - 由 : org. dom4j.DocumentException 引起 : org. dom4j.DocumentFactory 无法转换为 org.dom4j.DocumentFactory,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29329593/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com