0 Replies Latest reply on Jan 14, 2019 10:51 AM by DLopez

    Xml to Java Class using JAXBContext

    DLopez

      Hi,

       

      I have created several REST Web Services that will return list of records, from my database.

      I'm returning all query results in XML format and in my Web service methods I convert it to Java to send it to my client app in JSON (I know, not the best case).

      I'm trying to reduce the code in my methods an part of the code that I started with was the XML to Java conversion.

       

      Right now I'm using the following

       

      String xml = xml.replaceFirst("ROWSET xmlns:xsi = " + "\"http://www.w3.org/2001/XMLSchema-instance\"", "invTrxXmlList");
      String string = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n";
      xml = string.concat(xml);
      xml = xml.replaceAll("ROWSET", "invTrxXmlList");
      xml = xml.replaceAll("ROW", "invTrxXmlList");
      xml = xml.replaceAll(" xsi:nil = \"true\"", "");
      InputStream instr = new ByteArrayInputStream(xml.getBytes());
      JAXBContext jaxbContext = JAXBContext.newInstance(InvTrxXmlList.class);
      Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller();
      InvTrxXmlList invTrxXml = (InvTrxXmlList) jaxbUnmarshaller.unmarshal(instr);
      
      inventoryTrx = new InventoryTrx(invTrxXml);
      

       

      What I want is to create a separate method that could be called by all methods to this job, if possible to work with several distinct Custom Objects, like InvTrxXmlList.

      I have, in another task worked a little with Reflection and i was thinking of using it to solve this issue.

       

      Can you help me?

      Is there another approach?

      Thanks

       

       

      (UPDATE)

      No suggestions?

       

      Message was edited by: DLopez