【问题标题】:unmarshalling complex types with Jaxb2使用 Jaxb2 解组复杂类型
【发布时间】:2011-09-23 21:49:23
【问题描述】:

您好,当我使用 Spring OXM 框架使用 JAXB2 处理器解组时,我有以下 XML 和 java 类,我得到所有空值。有什么想法吗?

import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;

@XmlRootElement(name="AuthentXML",namespace="http://xml.authentify.net/MessageSchema.xml")
public class AuthentifyResult { 
    private Header header;
    public Header getHeader() {
        return header;
    }
    public void setHeader(Header header) {
        this.header = header;
    }
}

@XmlType(name="", propOrder={"asid", "teid", "replyTo"}) 
public class Header {
 private String asid;

private String teid;

private String replyTo;
public String getAsid() {
 return asid;
}
public void setAsid(String asid) {
this.asid = asid;
}
public String getTeid() {
return teid;
}
public void setTeid(String teid) {
this.teid = teid;
}
public String getReplyTo() {
return replyTo;
}
public void setReplyTo(String replyTo) {
this.replyTo = replyTo;
}
}

<?xml version="1.0" ?>
<AuthentXML>
<header>
<asid>AuthenticationSubjectID</asid>
<teid>B6F997AE-FB4E-11D3-80BD-0050DA5DC7B8</teid>
<replyTo>https://r1.authentify.net/s2s/default.asp</replyTo>
</header>
</AuthentXML>

unmarshaling code

FileInputStream is = null;

is = new FileInputStream(FILE_NAME);
this.authentifyResult = (AuthentifyResult) this.jaxbUnmarshaller.unmarshal(new StreamSource(is));

我在 authentifyResult 中收到了标头的空值。为什么?

【问题讨论】:

    标签: java xml jaxb unmarshalling jaxb2


    【解决方案1】:

    我认为您的代码唯一有问题的是 AuthentifyResult 上的 @XmlRootElement 注释不应指定命名空间,因为您发布的 XML 片段不是命名空间限定的:

    import javax.xml.bind.annotation.XmlRootElement;
    
    @XmlRootElement(name="AuthentXML")
    public class AuthentifyResult { 
        private Header header;
        public Header getHeader() {
            return header;
        }
        public void setHeader(Header header) {
            this.header = header;
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-25
      • 1970-01-01
      • 2014-09-24
      • 2020-04-10
      相关资源
      最近更新 更多