当前位置:首页 > JAVA > 正文内容

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

高老师12个月前 (10-11)JAVA524
(1).先看看XML内容
<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
@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
@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不支持继承,在反序列化的时候必须给每个子节点设置这个命名空间。我们完善下子节点的命名空间即可,例如:
@XmlElement(name = "header", namespace = "http://tempurl.org")
protected Header header;

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

扫描二维码推送至手机访问。

版权声明:本文由高久峰个人博客发布,如需转载请注明出处。

本文链接:https://blog.5b1.cn/post/647.html

分享给朋友:

“Java Jaxb 反序列化Soap Xml的异常记录” 的相关文章

 java字节与字符的区别,字节与字的区别与联系

java字节与字符的区别,字节与字的区别与联系

字节(Byte)是计量单位,表示数据量多少,是计算机信息技术用于计量存储容量的一种计量单位,通常情况下一字节等于八位。字符(Character)计算机中使用的字母、数字、字和符号,比如'A'、'B'、'$'、'&'等。一般在英文...

java增强型for循环

java增强型for循环

Java5 引入了一种主要用于数组的增强型 for 循环,类似js中的for inpublic class Member {     public static void main(String[]&...

java Character 类,java判断字符是否是一个字母,java判断字符是否是一个数字,java判断字符是否是一个空白,java判断字符是否是小写字母,java判断字符是否是大写字母,java转换字符为大写,java转换字符为小写

java Character 类,java判断字符是否是一个字母,java判断字符是否是一个数字,java判断字符是否是一个空白,java判断字符是否是小写字母,java判断字符是否是大写字母,java转换字符为大写,java转换字符为小写

java判断字符是否是一个字母System.out.println(Character.isLetter('a'));java判断字符是否是一个数字System.out.println(Character.isDigit('0'));java判断字符是否是一个空白Sy...

java String 类 ,java 字符串类,java创建字符串,java获取字符串长度,java连接字符串,java格式化字符串

java String 类 ,java 字符串类,java创建字符串,java获取字符串长度,java连接字符串,java格式化字符串

在java中字符串属于对象,刚开始我就疑惑为什么int char等类型都是小写,结果String是大写,java太反人类,后来才知道String是对象。(1).java创建字符串String text = "net"; String tex...

java stringBuffer,java stringBuffer反转字符串,java stringBuffer delete删除字符/移除字符,java stringBuffer在指定位置插入字符串,java stringBuffer替换指定位置的字符串,java stringBuffer获取指定索引的值

java stringBuffer,java stringBuffer反转字符串,java stringBuffer delete删除字符/移除字符,java stringBuffer在指定位置插入字符串,java stringBuffer替换指定位置的字符串,java stringBuffer获取指定索引的值

java stringBuffer(1).stringBuffer和stringBuilder区别stringBuffer是线程安全的,stringBuilder速度更快(2).简单的stringBuffer例子StringBuffer sBuffer = new&nb...

java数组,java创建数组,java创建数组并赋值,java数组元素个数,java foreach 循环数组,java数组排序

java数组,java创建数组,java创建数组并赋值,java数组元素个数,java foreach 循环数组,java数组排序

(1).创建数组double[] myList = new double[size];  //推荐创建方式 double myList[] = new double[size];  ...