为了账号安全,请及时绑定邮箱和手机立即绑定

JAXB Unmarshalling - 未找到具有默认根元素的描述符...

JAXB Unmarshalling - 未找到具有默认根元素的描述符...

达令说 2022-06-23 15:45:22
我在将 api xml 响应解组为我创建的 POJO 时遇到问题。我确信 JAXB 上下文知道我的类,因为我能够正确地编组它。POJOpackage com.bnh.element.misc.Requests;import javax.xml.bind.annotation.XmlAccessType;import javax.xml.bind.annotation.XmlAccessorType;import javax.xml.bind.annotation.XmlElement;import javax.xml.bind.annotation.XmlRootElement;@XmlRootElement(name = "selectionResponse")@XmlAccessorType(XmlAccessType.FIELD)public class SelectionResponse {    @XmlElement    boolean _hasErrors;    @XmlElement    int selectionIndex;    @XmlElement    String type;}试图解组它:Object response = JAXB_CONTEXT.createUnmarshaller()    .unmarshal( new StringReader(xml) );抛出异常[异常 [EclipseLink-25008] (Eclipse Persistence Services - 2.6.4.v20160829-44060b6): org.eclipse.persistence.exceptions.XMLMarshalException 异常描述:具有默认根元素的描述符 { http://tripos.vantiv.com/ 2014/09/TriPos.Api }selectionResponse 在项目中找不到] 在 org.eclipse.persistence.jaxb.JAXBUnmarshaller.handleXMLMarshalException(JAXBUnmarshaller.java:1110)来自 API 的实际响应:<selectionResponse  xmlns:i="http://www.w3.org/2001/XMLSchema-instance"  xmlns="http://tripos.vantiv.com/2014/09/TriPos.Api">  <_errors />  <_hasErrors>false</_hasErrors>  <_links />  <_logs    xmlns:d2p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays" i:type="Logs" />    <_type>selectionResponse</_type>    <_warnings />    <selectionIndex>0</selectionIndex>  </selectionResponse>编组对象时生成的字符串:<selectionResponse    xmlns:ns0="http://tripos.vantiv.com/2014/09/TriPos.Api">    <_hasErrors>false</_hasErrors>    <selectionIndex>0</selectionIndex></selectionResponse>任何帮助,将不胜感激。谢谢!
查看完整描述

1 回答

?
12345678_0001

TA贡献1802条经验 获得超5个赞

您的错误说明了很多:


异常描述:在项目中未找到具有默认根元素 { http://tripos.vantiv.com/2014/09/TriPos.Api }selectionResponse 的描述符]


xmlns您的 xml 中的默认值是:


  xmlns="http://tripos.vantiv.com/2014/09/TriPos.Api">

它不能被“猜测”,因此将命名空间添加到您的根元素声明中,例如:


@XmlRootElement(name = "selectionResponse",

    namespace="http://tripos.vantiv.com/2014/09/TriPos.Api")

@XmlAccessorType(XmlAccessType.FIELD)

public static class SelectionResponse {

...


查看完整回答
反对 回复 2022-06-23
  • 1 回答
  • 0 关注
  • 93 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信