我正在尝试设置如下前缀,
// 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
我正在使用java8,并且我已经在依赖关系中看到了jaxb-api 2.3.1
。我在这里错过了什么?
在ResultDetails下,我已经在每个属性级别中定义了以下内容。
@XmlElement(namespace = "http://www.mycompany.com/services/SimpleResults/data/abc"
属性名称为com.sun.xml.bind.namespacePrefixMapper
时,工作正常