由于以下消息,我试图将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异常?
答案 0 :(得分:0)
我在jaxb-impl v2.3.1 jar中看不到com.sun.xml.bind.ContextFactory类。您是否缺少依赖项?
听起来您应该打电话:com.sun.xml.bind。 v2 .ContextFactory
也许您仍然有一个过时的依赖项并正在调用旧类。