2
JAXB를 사용하여 객체에서 XML을 작성하려고합니다.jaxb를 사용하여 객체를 XML로 변환하는 중 예외가 발생했습니다.
하지만 예외 얻을 수 있기 때문에 내가 뭔가를 놓친 거지 :
javax.xml.bind.MarshalException - 링크 제외 : [com.sun.istack.internal.SAXException2 : 클래스 직원이나 중 하나를 그것의 슈퍼 클래스는이 문맥에 알려져있다. javax.xml.bind.JAXBException : 클래스 직원이나 그 슈퍼 클래스의이 상황에 알려져있다]
@XmlRootElement(name = "employee")
public class Employee {
private String name;
private String employeeId;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getEmployeeId() {
return employeeId;
}
public void setEmployeeId(String employeeId) {
this.employeeId = employeeId;
}
}
@XmlRootElement(name = "Data")
public class Data {
public Data() {
}
private List employees;
@XmlElementWrapper(name = "employeeList")
@XmlElement(name = "employee")
public List getEmployees() {
return employees;
}
public void setEmployees(List employees) {
this.employees = employees;
}
}
public static void main(String[] args) {
ArrayList list = new ArrayList();
Employee e1 = new Employee();
e1.setName("Name");
e1.setEmployeeId("1");
list.add(e1);
Data data = new Data();
data.setEmployees(list);
JAXBContext context;
ByteArrayOutputStream outStream = new ByteArrayOutputStream();
try {
context = JAXBContext.newInstance(Data.class);
Marshaller m = context.createMarshaller();
m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);
m.marshal(data, outStream);
} catch (JAXBException e) {
e.printStackTrace();
}
}