ciao!
mi stavo studiando un pò jaxb, e volevo esportare una jtable in xml.
questo il model:
poi ho creato una classe per settare la lista dei libri:codice:import javax.xml.bind.annotation.XmlRootElement; @XmlRootElement(name = "book") public class BookModel { private int id; private String title; private String author; private String editor; private String isbn; private double price; private String note; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public String getAuthor() { return author; } public void setAuthor(String author) { this.author = author; } public String getEditor() { return editor; } public void setEditor(String editor) { this.editor = editor; } public String getIsbn() { return isbn; } public void setIsbn(String isbn) { this.isbn = isbn; } public double getPrice() { return price; } public void setPrice(double price) { this.price = price; } public String getNote() { return note; } public void setNote(String note) { this.note = note; } }
infine lancio tutto così:codice:@XmlRootElement(name = "books") public class ListBooks { @XmlElementWrapper(name = "bookList") ArrayList<BookModel> bookList; public void setBookList(ArrayList<BookModel> bookList) { this.bookList = bookList; } public ArrayList<BookModel> getBookList() { return bookList; } }
il problema è che ottengo questa eccezione:codice:public class ExportXml { public void createXml(JTable table, File file) throws JAXBException { ArrayList<BookModel> bookList = new ArrayList<>(); for (int row = 0; row < table.getRowCount(); row++) { BookModel bookModel = new BookModel(); for (int column = 0; column < table.getColumnCount(); column++) { bookModel.setId(Integer.parseInt(table.getValueAt(row, 0).toString())); bookModel.setTitle(table.getValueAt(row, 1).toString()); bookModel.setAuthor(table.getValueAt(row, 2).toString()); bookModel.setEditor(table.getValueAt(row, 3).toString()); bookModel.setPrice(Double.parseDouble(table.getValueAt(row, 4).toString())); bookModel.setIsbn(table.getValueAt(row, 5).toString()); bookModel.setNote(table.getValueAt(row, 6).toString()); } bookList.add(bookModel); } ListBooks books = new ListBooks(); books.setBookList(bookList); JAXBContext context = JAXBContext.newInstance(ListBooks.class); Marshaller m = context.createMarshaller(); m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE); m.marshal(books, file); } }
ma non riesco a capire dove sto sbagliando.codice:1 counts of IllegalAnnotationExceptions
qualche idea??

Rispondi quotando
