title: @Consumes({"application/xml,application/json"}) how to program the return type
body: <p>I have an application and I want it to accept both XML and JSON , how can I program the return type ? for example this is my POJO</p>
  
  <pre><code>import javax.xml.bind.annotation.XmlElement;
  import javax.xml.bind.annotation.XmlRootElement;
  
  
  // Class to marshall and unmarshall the XML and JSON to POJO
  
   // This is a class for the request JSON and XML
  
  
  @XmlRootElement
  public class KeyProvision {
  
      private String Consumer ; 
      private String API ; 
      private String AllowedNames ; 
  
  
      public void setConsumer( String Consumer)
      {
          this.Consumer= Consumer;
  
      }
  
  
      public void setAPI( String API){
  
          this.API = API;
  
      }
  
  
      public void setAllowedNames(String AllowedNames){
  
          this.AllowedNames = AllowedNames;
  
      }
  
       @XmlElement(name="Consumer")
      public String  getConsumer(){
  
          return Consumer;
      }
  
       @XmlElement(name="API")
      public String getAPI(){
  
          return API;
      }
  
       @XmlElement(name="AllowedNames")
      public String getAllowedNames(){
  
          return AllowedNames;
      }
  
  }
  </code></pre>
  
  <p>My rest interface is </p>
  
  <pre><code>    import javax.ws.rs.Consumes;
  import javax.ws.rs.POST;
  import javax.ws.rs.Path;
  import javax.ws.rs.Produces;
  import javax.ws.rs.core.MediaType;
  import javax.ws.rs.core.Response;
  
  @POST
       @Path("/request")
       @Consumes({MediaType.APPLICATION_XML,MediaType.APPLICATION_JSON})
       @Produces({MediaType.APPLICATION_XML,MediaType.APPLICATION_JSON})
       public Response getRequest(KeyProvision keyInfo){
  
      /* StringReader reader = new StringReader(keyInfo); // this code just leads to an execution failure for some reason 
       try{
           JAXBContext jaxbContext = JAXBContext.newInstance(KeyProvision.class);
  
           Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller();
           KeyProvision api = (KeyProvision) jaxbUnmarshaller.unmarshal(reader);
           System.out.println(api);
  
       }   catch(JAXBException e){
           e.printStackTrace();
  
       }
        */
  
       String result = "Track saved : " + keyInfo;
       return Response.status(201).entity(result).build() ;
  
    //   return "success" ;
  
   }
  </code></pre>
  
  <p>my XML is </p>
  
  <pre><code>&lt;?xml version="1.0" encoding="UTF-8"?&gt;
  &lt;KeyProvision&gt;
  &lt;Consumer&gt; testConsumer &lt;/Consumer&gt;
  &lt;API&gt;posting&lt;/API&gt;
  &lt;AllowedNames&gt; google&lt;/AllowedNames&gt;
  &lt;/KeyProvision&gt;
  </code></pre>
  
  <p>my JSON is </p>
  
  <pre><code>{
      "KeyProvision": {
          "Consumer": "testConsumer",
          "API": "posting",
          "AllowedNames": "google",
  
      }
  }
  </code></pre>
  
  <p>My problems/questions are </p>
  
  <p>1) I keep getting an 415 error when I use the JSON , why is this not unmarshalling properly?
  2) Is the reuturn type determined by JAXB?</p>