正在迁移到 java17。因此将包移至雅加达。*。
版本: jakarta.xml.bind-api = 4.0.0 , com.sun.xml.bind/jaxb-impl = 2.0.1
现在面临的问题是:
jakarta.xml.bind.PropertyException:名称:com.sun.xml.bind.namespacePrefixMapper 值:com.abc$NamespacePrefixMapperImpl@65c3d713 在 jakarta.xml.bind.helpers.AbstractMarshallerImpl.setProperty(AbstractMarshallerImpl.java:355) 在 org.glassfish.jaxb.runtime.v2.runtime.MarshallerImpl.setProperty(MarshallerImpl.java:492)
如果我将 - com.sun.xml.bind/jaxb-impl 移动到 4.0.2,我看不到 - NamespacePrefixMapper。
迁移到 JAXB4 时,您应该使用以下内容而不是
com.sun.xml.bind:jaxb-impl
:
<dependency>
<groupId>org.glassfish.jaxb</groupId>
<artifactId>jaxb-runtime</artifactId>
<version>4.0.4</version> <!-- latest version at the moment -->
</dependency>
您还应该在 api 和 impl 之间对齐主要版本号。
命名空间前缀映射器已从
com.sun.xml.bind.marshaller.NamespacePrefixMapper
移至 org.glassfish.jaxb.runtime.marshaller.NamespacePrefixMapper
。