javax.xml.bind.UnmarshalException:意外元素(uri:“”,本地:"ClientConfigData")。预期元素是 <{}clientConfigData>

javax.xml.bind.UnmarshalException: unexpected element (uri:"", local:"ClientConfigData"). Expected elements are <{}clientConfigData>

我收到上述错误。添加代码片段以更多地了解我在做什么。请看看并提供帮助。提前致谢。 我的 xml:

<?xml version="1.0" encoding="UTF-8"?>
<ClientConfigData>
    <requestType>type1</requestType>
    <refreshEnable>false</refreshEnable>
    <compressionEnable>false</compressionEnable>
    <transformationEnable>true</transformationEnable>
...
</ClientConfigData>

我的Java:

@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();
}  

您应该将限定的根元素名称添加到 @XmlRootElement 注释中。在你的情况下它将是:

@XmlRootElement(name = "ClientConfigData")

默认情况下 JAXB 搜索 clientConfigData(首字母小写)。