当前位置: 首页 > 知识库问答 >
问题:

UnMarshalException:意外元素(URI:“”,本地:“ClientConfigData”)。所需元素为

解沈义
2023-03-14
<?xml version="1.0" encoding="UTF-8"?>
<ClientConfigData>
    <requestType>type1</requestType>
    <refreshEnable>false</refreshEnable>
    <compressionEnable>false</compressionEnable>
    <transformationEnable>true</transformationEnable>
...
</ClientConfigData>
@XmlRootElement 
public class ClientConfigData {

    private String requestType;
    private boolean refreshEnable;
    private boolean compressionEnable;
    private boolean transformationEnable;
...
}

在这里,我将从XML创建java对象:

File configFile = new File(classLoader.getResource("ClientRegistration.xml").getFile());
JAXBContext jaxbContext;

try {
    jaxbContext = JAXBContext.newInstance(ClientConfigData.class);
    Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller();  
    ClientConfigData configData= (ClientConfigData) jaxbUnmarshaller.unmarshal(configFile);
    System.out.println(configData);
} catch (JAXBException e) {
    e.printStackTrace();
}  

共有1个答案

罗安宁
2023-03-14

您应该向@XmlRootElement批注添加限定的根元素名称。在您的情况下,它将是:

@XmlRootElement(name=“ClientConfigData”)

默认情况下,jaxb搜索clientconfigdata(第一个字母是小写的)。

 类似资料: