首页 > 解决方案 > ClassNotFoundException com.sun.xml.bind.ContextFactory Jaxb-Impl

问题描述

由于以下消息,我正在尝试将jax-impl类从版本更新到更新的版本1.0.6以兼容:jaxb-runtime:2.3.1

java.lang.LinkageError:您正在尝试运行 JAXB 2.0 运行时(来自 jar:file:/opt/tomcat/appName/WEB-INF/lib/jaxb-runtime-2.3.1.jar!/com/sun/xml/ bind/v2/model/impl/ModelBuilder.class),但您在类路径的早期有旧的 JAXB 1.0 运行时(在 jar:file:/opt/tomcat/appName/WEB-INF/lib/jaxb-impl-1.0.6. jar!/com/sun/xml/bind/WhiteSpaceProcessor.class) 请删除 JAXB 1.0 运行时以使 2.0 运行时正常工作。

将版本jaxb-impl增加到任何新版本后,我收到以下投诉:

java.lang.ClassNotFoundException: com.sun.xml.bind.ContextFactory_1_0_1

这是因为调用JAXBContext.newInstance使用上下文路径作为参数的方法:

JAXBContext.newInstance('package.name')

newInstance使用类作为参数的调用仍然可以正常工作。

升级 Jaxb-Impl 时出现 ClassNotFoundException: com.sun.xml.bind.ContextFactory_1_0_1 异常有解决办法吗?

标签: javajaxb

解决方案


我在 jaxb-impl v2.3.1 jar 中没有看到 com.sun.xml.bind.ContextFactory 类。您是否缺少依赖项?

听起来您应该调用:com.sun.xml.bind。v2 .ContextFactory

也许您仍然有一个过时的依赖项并调用旧类。


推荐阅读