zoukankan      html  css  js  c++  java
  • com.sun.xml.bind.v2.runtime.IllegalAnnotationsException: 2 counts of IllegalAnnotationExceptions 属性className已存在, 但未在 @XmlType.propOrder 中指定 this problem is related to the following location: at pub

    学习CXF的JAXB时遇到的小问题

    利用JAXB把java对象 转换为xml

    package com.example.test;

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

    @XmlRootElement(name="student")
    @XmlType(name = "student", propOrder = { "name","ClassName" })
    public class Student {
    private String name;
    private String ClassName;
    public String getName() {
    return name;
    }
    public void setName(String name) {
    this.name = name;
    }
    public String getClassName() {
    return ClassName;
    }
    public void setClassName(String className) {
    className = className;
    }

    }

     工具类

    package com.example.test;
    import java.io.StringWriter;
    import javax.xml.bind.JAXBContext;
    import javax.xml.bind.JAXBException;
    import javax.xml.bind.Marshaller;

    public class JAXBUtil {
    public static String toXml(Object o){
    StringWriter writer = new StringWriter();
    try {
    Class obj = o.getClass();
    JAXBContext jaxbContext = JAXBContext.newInstance(obj);
    Marshaller marshaller = jaxbContext.createMarshaller();
    marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
    marshaller.marshal(o, writer);
    } catch (JAXBException e) {
    e.printStackTrace();
    }
    return writer.toString();

    }
    }

    测试类

    package com.example.test;

    public class JaxbHelperTest {
    public static void main(String[] args) {
    Student stu = new Student();

    stu.setName("小明");

    stu.setClassName("三一班");

    System.out.println(JAXBUtil.toXml(stu));


    }
    }

     运行后报错  实在是大意了,最后把实体类的 属性ClassName 改为 className 问题解决,应该是实体类的属性第一个字母不能大写。


    package com.example.test;

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

    @XmlRootElement(name="student")
    @XmlType(name = "student", propOrder = { "name","className" })
    public class Student {
    private String name;
    private String className;
    public String getName() {
    return name;
    }
    public void setName(String name) {
    this.name = name;
    }
    public String getClassName() {
    return className;
    }
    public void setClassName(String className) {
    className = className;
    }

    }

  • 相关阅读:
    layui flow loading占位图实现方法
    layui弹出层layer的area过大被遮挡
    layui 复选框checkbox 实现全选全选
    axios 设置headers token
    elementUI vue this.$confirm 和el-dialog 弹出框 移动
    vue + axios + formdata 上传文件带参数的爬坑之路
    Java四舍五入时保留指定小数位数
    List containsKey 和Map contains 判断集合中是否包含某个值
    BigDecimal 基本使用 比较大小和加减乘除
    springMVC返回json数据乱码问
  • 原文地址:https://www.cnblogs.com/zjf6666/p/9577519.html
Copyright © 2011-2022 走看看