/** * Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods. * * @param request servlet request * @param response servlet response * @throws ServletException if a servlet-specific error occurs * @throws IOException if an I/O error occurs */ protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/xml;charset=UTF-8"); response.setHeader("Content-Disposition", "attachment; filename=export.xml"); PrintWriter out = response.getWriter(); try { DatabaseWrapper db = new DatabaseWrapper(); // fill database wrapper with data db.setUsers(userMgr.findAll()); db.setBooks(bookMgr.findAll()); db.setAuthors(authorMgr.findAll()); db.setBookings(bookingMgr.findAll()); db.setBorrows(borrowMgr.findAll()); db.setExemplars(exemplarMgr.findAll()); db.setGenres(genreMgr.findAll()); db.setPublishers(publisherMgr.findAll()); // Step 2 - convert to xml JAXBContext jaxbContext = JAXBContext.newInstance(DatabaseWrapper.class); Marshaller marshaller = jaxbContext.createMarshaller(); marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true); marshaller.marshal(db, out); } catch (Exception ex) { ex.printStackTrace(out); } finally { out.close(); } }