前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java Jaxb 反序列化Soap Xml的异常记录

Java Jaxb 反序列化Soap Xml的异常记录

原创
作者头像
高久峰
发布2023-10-12 10:05:26
2420
发布2023-10-12 10:05:26
举报
文章被收录于专栏:编程语言的世界

(1).先看看XML内容

Java

代码语言:javascript
复制
<postsalescreateResponse
    xmlns="http://tempurl.org">
    <postsalescreateResult>
        <header>
            <responsecode>1000</responsecode>
            <responsemessage>[A00001-01-PS230925-2566-000009] PostSalesCreate - Sales doc. already exists.[20230925,A00001,01,PS230925-2566-000009]</responsemessage>

        </header>
        <salestotal>
            <txdate_yyyymmdd>20230925</txdate_yyyymmdd>
            <txtime_hhmmss>175607</txtime_hhmmss>

        </salestotal>
    </postsalescreateResult>
</postsalescreateResponse>

(2).查看实体类1:postsalescreateResponse

Java

代码语言:javascript
复制
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "postsalescreateResponse", namespace = "http://tempurl.org", propOrder = {
        "postsalescreateResult"
})
public class PostsalescreateResponse {

    @XmlElement(name = "postsalescreateResult")
    private PostsalescreateResult postsalescreateResult;
    --- getTer Or setTer
}

(3).查看实体类2:postsalescreateResult

Java

代码语言:javascript
复制
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "postsalescreateResult", propOrder = {
        "header",
        "salestotal"
})
public class PostsalescreateResult {

    @XmlElement(name = "header")
    protected Header header;

    @XmlElement(name = "salestotal")
    private Salestotal salestotal;
    
    --- getTer Or setTer
}

然后我获取到的PostsalescreateResult节点永远是null,之前通过序列化这样生成xml都是可以的,但是反序列化一直不可以,折腾太久了,最后在Google中查看到1个答案,反序列化的时候xml的命名空间namespace不支持继承,在反序列化的时候必须给每个子节点设置这个命名空间。我们完善下子节点的命名空间即可,例如:

Java

代码语言:javascript
复制
@XmlElement(name = "header", namespace = "http://tempurl.org")
protected Header header;

@XmlElement(name = "salestotal", namespace = "http://tempurl.org")
private Salestotal salestotal;

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档