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;
    }

    }

  • 相关阅读:
    Linux下mysql的自动定时备份
    javaweb面试题
    java面试题
    Web应用优化之nginx+tomcat集群配置+redis管理session
    Web应用系统通常可以经过哪些层面的优化
    HBase安装
    博客园所有文章字数统计
    Python生成器
    Python列表生成式
    直方图均衡化-Python实现
  • 原文地址:https://www.cnblogs.com/zjf6666/p/9577519.html
Copyright © 2011-2022 走看看