设置namespacePrefixMapper定义前缀映射时,Jaxb属性异常

问题描述

我尝试如下设置前缀,

// Create JAXB Context
            JAXBContext jaxbContext = JAXBContext.newInstance(ResultDetails.class);    
            // Create Marshaller
            Marshaller jaxbMarshaller = jaxbContext.createMarshaller();    
            jaxbMarshaller.setProperty("com.sun.xml.internal.bind.namespacePrefixMapper",new NamespacePrefixMapper() {                    
                @Override
                public String getPreferredPrefix(String namespaceUri,String suggestion,boolean requirePrefix) {
                    if (TPTConstant.NAMESPACE_SIMPLE_RESULTS.equals(namespaceUri)) {
                        return "psr";
                    }
                    return suggestion;
                }
            });

但是从setProperty中,我得到了一个属性异常com.sun.xml.internal.bind.namespacePrefixMapper

我正在使用Java 8,并且已经在依赖项中看到jaxb-api 2.3.1。我在这里想念什么?

在ResultDetails下,我已经在每个属性级别中定义了以下内容。 @XmlElement(namespace =“ http://www.mycompany.com/services/SimpleResults/data/abc”

解决方法

使用属性名称为com.sun.xml.bind.namespacePrefixMapper的方法,