gpt4 book ai didi

Java 11 的 javax.xml.bind.JAXBException

转载 作者:行者123 更新时间:2023-12-01 16:58:56 48 4
gpt4 key购买 nike

我有一个较旧的小部件应用程序,它使用 JAXB,现在正在迁移到 Java 11。
我知道 java.xml.bind/JAXB 已在此版本中删除,因此我们尝试用 Jakarta 替换它。

我们有 jakarta.activation.jar 和 jakarta.xml.bind-api.jar,它可以很好地编译,但不适用于运行时

当应用程序启动时,我得到这个:

javax.xml.bind.JAXBException: Implementation of JAXB-API has not been found on module path or classpath.
- with linked exception:
[java.lang.ClassNotFoundException: com.sun.xml.internal.bind.v2.ContextFactory]
at java.xml.bind/javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:232)
... ...

com.sun.xml.internal.* 类是 rt.jar 的一部分,我相信它在 Java 9 中已被删除,但最新的 Jakarta 消息来源仍然提到他们......这应该如何运作?我看到一些帖子有类似的问题,典型的解决方案是添加 Maven 依赖
我不确定细节,但无论如何我们不使用 Maven 或 Gradle,也没有 pom.xml。
我能做些什么来让它发挥作用吗?

最佳答案

事实证明,事情并没有我想象的那么糟糕。RT。 jar 被分解为多个模块,我开始寻找我需要的模块。jaxb-runtime.jar 对我来说看起来很正确,我在它上面运行了 strings/grep - 它确实包含了所有 com.sun.xml.bind 类!

当我将这个 jar 添加到那些 jar 中时,我将原始错误更改为“找不到其他类”,并且我必须添加更多 jar 直到应用程序满意为止。最后我有这个:jakarta.activation.jar、jakarta.xml.bind-api.jar、jaxb-runtime.jar、istack-commons-runtime.jar、stax-ex.jar、FastInfoset.jar、txw2.jar

没有对 list 、makefile 或任何其他与构建相关的内容进行更改,纯粹是打包问题。长叹一口气……

关于Java 11 的 javax.xml.bind.JAXBException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61542627/

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