使用JAVA 11从orm.xml生成hibernate静态元模型

问题描述 投票:0回答:1

我尝试将项目从 java 8 升级到 java 11。在构建过程中,我们从 orm.xml 文件生成 hibernate 静态元模型。

当使用 jdk11 进行 Maven 构建时

mvn clean install
。未生成 StaticModel 类,并且“target/ generated-sources/annotations”为空。 在 org.hibernate.jpamodelgen.xml.JpaDescriptorParser#L153 中有一个调试点。我设法检索真正的错误消息。

错误信息

在模块路径或类路径中未找到 JAXB-API 的实现。

好吧,它链接到 Java 11 中删除 jaxb。

我做了一个简单的项目来展示我的问题:https://github.com/epi-fr/hibernate-orm-xml-java11

我尝试了几种在生成阶段导入 jaxb 的方法。但我没能生成静态模型。

基于 Mkyong 文章(第 6.3 点)。我想我设法走得更远,但我得到了这个奇怪的错误:

新的异常消息位于 org.hibernate.jpamodelgen.xml.JpaDescriptorParser#L153

ClassCastException:尝试强制转换 jar:文件:/home/sibuv2/.m2/repository/javax/xml/bind/jaxb-api/2.3.1/jaxb-api-2.3.1.jar!/javax/xml/bind/JAXBContext.class jar:文件:/home/sibuv2/.m2/repository/javax/xml/bind/jaxb-api/2.3.1/jaxb-api-2.3.1.jar!/javax/xml/bind/JAXBContext.class。请确保您指定了正确的类加载器。

我将我的更改推送到分支“try_import_jaxb2.3”上的演示项目。

有什么办法让它发挥作用吗?

hibernate jaxb java-11 jpamodelgen
1个回答
0
投票

我很确定没有办法解决这个未解决的问题,或者通过分叉最新的 hibernate 5.x 并修补它。

在 Hibernate 中发现了这个 issue,它解释了很多关于您所遇到的问题(重要的部分是 Hack Kampbjørn 的第二个最新评论)。

尝试覆盖 jaxb-runtime / jaxb-api 也不能解决问题。

© www.soinside.com 2019 - 2024. All rights reserved.