javax.xml.bind.UnmarshalException:意外元素(uri:“”,本地:“经理”)。预期元素是 <{}Manager>
javax.xml.bind.UnmarshalException: unexpected element (uri:“”, local:“Managers”). Expected elements are <{}Manager>
我知道 SO 上有很多这样的问题,但是 none 为我提供了正确的答案,所以我开始了。
这是我得到的 XML :
<?xml version="1.0" encoding="UTF-8"?>
<Managers>
<Manager ManagerID="1996" />
<Manager ManagerID="1997" />
<Manager ManagerID="1998" />
<Manager ManagerID="1999" />
<Manager ManagerID="2000" />
</Managers>
这里是 java class 关联:
@XmlRootElement(name = "Managers")
@XmlAccessorType(XmlAccessType.FIELD)
public class ManagerList {
@XmlElement(name = "Manager")
private List<Manager> Managers = null;
public List<Manager> getList() {
return Managers;
}
public void setList(List<Manager> Managers) {
this.Managers = Managers;
}
}
最后是解组部分:
String stringManagers = //Here is the above XML(as String), i get it from an external source
StringReader reader = new StringReader(stringManagers);
JAXBContext context;
Unmarshaller un;
context = JAXBContext.newInstance(ManagerList.class);
un = context.createUnmarshaller();
ManagerList managerList = (ManagerList) un.unmarshal(reader);
我正在使用 wsdl2java 生成 java classes,并且我有一个包-info.java class 定义了命名空间使用 XmlSchema 注释。
但我仍然收到错误:
javax.xml.bind.UnmarshalException: unexpected element (uri:“”, local:“Managers”). Expected elements are <{}Manager>
如有任何想法,我们将不胜感激,
提前致谢!
好吧,看来我用来获取 XML 的 API 最近发生了变化,即使我使用 wsdl2java 重新生成了 类,Eclipse 也很难理解那。
我只需要把它全部清理干净,然后用新鲜的 类 重新开始。
抱歉 "dumb" 问题!
我知道 SO 上有很多这样的问题,但是 none 为我提供了正确的答案,所以我开始了。
这是我得到的 XML :
<?xml version="1.0" encoding="UTF-8"?>
<Managers>
<Manager ManagerID="1996" />
<Manager ManagerID="1997" />
<Manager ManagerID="1998" />
<Manager ManagerID="1999" />
<Manager ManagerID="2000" />
</Managers>
这里是 java class 关联:
@XmlRootElement(name = "Managers")
@XmlAccessorType(XmlAccessType.FIELD)
public class ManagerList {
@XmlElement(name = "Manager")
private List<Manager> Managers = null;
public List<Manager> getList() {
return Managers;
}
public void setList(List<Manager> Managers) {
this.Managers = Managers;
}
}
最后是解组部分:
String stringManagers = //Here is the above XML(as String), i get it from an external source
StringReader reader = new StringReader(stringManagers);
JAXBContext context;
Unmarshaller un;
context = JAXBContext.newInstance(ManagerList.class);
un = context.createUnmarshaller();
ManagerList managerList = (ManagerList) un.unmarshal(reader);
我正在使用 wsdl2java 生成 java classes,并且我有一个包-info.java class 定义了命名空间使用 XmlSchema 注释。
但我仍然收到错误:
javax.xml.bind.UnmarshalException: unexpected element (uri:“”, local:“Managers”). Expected elements are <{}Manager>
如有任何想法,我们将不胜感激,
提前致谢!
好吧,看来我用来获取 XML 的 API 最近发生了变化,即使我使用 wsdl2java 重新生成了 类,Eclipse 也很难理解那。
我只需要把它全部清理干净,然后用新鲜的 类 重新开始。
抱歉 "dumb" 问题!