com.ypy.hrp.db.service.impl.InvPageClassServiceImpl:41 异常 java.util.concurrent.C...
错误信息
2026-08-11 15:22:04,679 ERROR com.ypy.hrp.db.service.impl.InvPageClassServiceImpl:41 异常
java.util.concurrent.CompletionException: javax.xml.bind.DataBindingException: 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.base/java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:315)
at java.base/java.util.concurrent.CompletableFuture.completeThrowable(CompletableFuture.java:320)
at java.base/java.util.concurrent.CompletableFuture$AsyncRun.run(CompletableFuture.java:1807)
at java.base/java.util.concurrent.CompletableFuture$AsyncRun.exec(CompletableFuture.java:1796)
at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:373)
at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1182)
at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1655)
at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1622)
at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:165)
Caused by: javax.xml.bind.DataBindingException: 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 javax.xml.bind.JAXB.unmarshal(JAXB.java:241)
at com.ypy.hrp.db.service.impl.InvPageClassServiceImpl.lambda$initInvPageClass$0(InvPageClassServiceImpl.java:35)
at java.base/java.util.concurrent.CompletableFuture$AsyncRun.run(CompletableFuture.java:1804)
... 6 common frames omitted
Caused by: javax.xml.bind.JAXBException: Implementation of JAXB-API has not been found on module path or classpath.
at javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:278)
at javax.xml.bind.ContextFinder.find(ContextFinder.java:421)
at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:721)
at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:662)
at javax.xml.bind.JAXB$Cache.<init>(JAXB.java:127)
at javax.xml.bind.JAXB.getContext(JAXB.java:154)
at javax.xml.bind.JAXB.unmarshal(JAXB.java:238)
... 8 common frames omitted
Caused by: java.lang.ClassNotFoundException: com.sun.xml.internal.bind.v2.ContextFactory
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520)
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:276)
... 14 common frames omitted
2026-08-11 15:22:13,653 ERROR com.ypy.hrp.gl.service.basic.impl.AuxItemSetUpServiceImpl:36 异常
java.util.concurrent.CompletionException: javax.xml.bind.DataBindingException: 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.base/java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:315)
at java.base/java.util.concurrent.CompletableFuture.completeThrowable(CompletableFuture.java:320)
at java.base/java.util.concurrent.CompletableFuture$AsyncRun.run(CompletableFuture.java:1807)
at java.base/java.util.concurrent.CompletableFuture$AsyncRun.exec(CompletableFuture.java:1796)
at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:373)
at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1182)
at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1655)
at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1622)
at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:165)
Caused by: javax.xml.bind.DataBindingException: javax.xml.bind.JAXBException: Implementation of JAXB-API
AI 解决方案
🔍 报错分析
1. 🌐 错误翻译
原文:java.util.concurrent.CompletionException: javax.xml.bind.DataBindingException: 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]
译文:java.util.concurrent.CompletionException: javax.xml.bind.DataBindingException: javax.xml.bind.JAXBException: 在模块路径或类路径中未找到 JAXB-API 的实现。
- 附带的异常:
[java.lang.ClassNotFoundException: com.sun.xml.internal.bind.v2.ContextFactory]
2. 🎯 原因分析
com.sun.xml.internal.bind.v2.ContextFactory)com.ypy.hrp.db.service.impl.InvPageClassServiceImpl 和 com.ypy.hrp.gl.service.basic.impl.AuxItemSetUpServiceImpl 的 XML 反序列化过程中触发,具体在 JAXB.unmarshal 方法调用时3. 💡 解决方案
需要将 JAXB 依赖显式添加到项目构建配置中。以下是不同构建工具的修复方案:
#### Maven 项目(pom.xml 添加依赖)
<!-- 添加以下依赖 -->
<dependency>
<groupId>org.glassfish.jaxb</groupId>
<artifactId>jaxb-runtime</artifactId>
<version>2.3.3</version>
</dependency>
#### Gradle 项目(build.gradle 添加依赖)
// 添加以下依赖
implementation 'org.glassfish.jaxb:jaxb-runtime:2.3.3'
#### 运行时添加 JDK 模块(临时方案,不推荐生产使用)
如果使用 Java 11+,可在启动命令添加模块:
java --add-modules java.xml.bind -jar your-app.jar
4. 🛡️ 预防措施
- 使用 Maven Enforcer 插件或 Gradle 的 dependency-check 插件,检查依赖完整性
- 开发阶段启用模块路径检查(IDE 如 IntelliJ 可配置
--add-modules),提前暴露缺失模块问题jakarta.xml.bind:jakarta.xml.bind-api 配合实现依赖),避免版本冲突