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

    }

  • 相关阅读:
    解决PowerDesigner中DBMS设置的问题-创建物理模型时DBMS选项为空
    转载 缓存技术Redis在C#中的使用及Redis的封装
    T4模版 mysql
    T4 模版应用类
    在点击run之后,没有显示任何设备,这一般是adb的问题,解决方法是重新启动adb
    webapi 返回不同格式的数据
    使用elk+redis搭建nginx日志分析平台
    [C#]使用WebClient上传文件并同时Post表单数据字段到服务端
    关于AJAX跨域调用ASP.NET MVC或者WebAPI服务的问题及解决方案
    2019.12.09-新闻列表布局代码
  • 原文地址:https://www.cnblogs.com/zjf6666/p/9577519.html
Copyright © 2011-2022 走看看