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

时间:2015-04-09 12:41:25

标签: java xml jaxb

我收到了上述错误。添加代码段以获取有关我正在做的事情的更多信息。请看看并帮忙。提前致谢。 我的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();
}  

1 个答案:

答案 0 :(得分:0)

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

@XmlRootElement(name = "ClientConfigData")

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