jaxb java_jaxbapi的java8到java11迁移问题

在将Java应用从Java 8迁移到Java 11的过程中,遇到JAXB API的问题。在本地使用maven-spring-boot:run正常,但在QA服务器上部署并使用java-jar运行时,出现`javax.xml.bind.JAXBException`,指出JAXB-API实现未在模块路径或类路径中找到。尽管尝试了通过Maven Shade插件生成包含所有依赖的JAR,但创建`JAXBContext`时错误依然存在。问题集中在`com.sun.xml.bind.v2.ContextFactory`类找不到。
摘要由CSDN通过智能技术生成

jakarta.xml.bind

jakarta.xml.bind-api

2.3.3

org.glassfish.jaxb

jaxb-runtime

2.3.2

当我们使用运行API项目时,一切都正常

mvn弹簧-启动:运行

但是,当API部署在QA服务器中并使用带有-

java-jar示例-api-3.0.0-快照.jar

Caused by: javax.xml.bind.JAXBException: Implementation of JAXB-API has not been found on module path or classpath.

有链接的例外:

[java.lang.ClassNotFoundException: com.sun.xml.bind.v2.ContextFactory]

at javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:269)

at javax.xml.bind.ContextFinder.find(ContextFinder.java:412)

at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:721)

at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:662)

at com.eoriginal.ecore.client.documents.SearchDocumentHistoryAPI$RequestParameters.toMap(SearchDocumentHistoryAPI.java:344)

... 14 more

Caused by: java.lang.ClassNotFoundException: com.sun.xml.bind.v2.ContextFactory

at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581)

at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)

at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)

at javax.xml.bind.ServiceLoaderUtil.nullSafeLoadClass(ServiceLoaderUtil.java:122)

at javax.xml.bind.ServiceLoaderUtil.safeLoadClass(ServiceLoaderUtil.java:155)

at javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:267)

更新:

我添加了Maven Shade插件来生成包含所有依赖项的JAR,但是当执行代码行来创建JAXBContext时,错误仍然存在-

JAXBContext jaxbc=JAXBContext.newInstance(新类[]{Abc类});

X76cQ.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值