jakarta.xml.bind.PropertyException:名称:com.sun.xml.bind.namespacePrefixMapper 值 - com.abc$NamespacePrefixMapperImpl@65c3d713

问题描述 投票:0回答:1

正在迁移到 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。

jakarta-ee jaxb java-17
1个回答
0
投票

迁移到 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

© www.soinside.com 2019 - 2024. All rights reserved.