title: Resful APi ouput is changing from JSON to XML when we send BAD Request status as output
body: <p>I made a restful API which produces JSON format output (@Produces(MediaType.APPLICATION_JSON)). This is working as expected when the status is Created or Ok. But whenever I send output bad request with some error message in JSON format. I'm not receiving the expected JSON result with error message instead of that I'm receiving something like "Unexpected 'B'" when i use postman for testing. If I use soapui for testing it is giving result in Xml.</p>
  
  <p>These are the annotations I have used for my method</p>
  
  <pre><code>@POST 
  @Produces(MediaType.APPLICATION_JSON)
  @Consumes(MediaType.APPLICATION_JSON)
  @Path("sample")
  </code></pre>
  
  <p>These are responses im sending based on request</p>
  
  <pre><code>return Response
              .status(Status.BAD_REQUEST)
              .type(MediaType.APPLICATION_JSON)
              .header("Access-Control-Allow-Origin", "*")
              .header("Access-Control-Allow-Methods", " POST")
              .entity(JsonResponse)
              .build();
  
  return Response
              .status(Status.UNAUTHORIZED)
              .type(MediaType.APPLICATION_JSON)
              .header("Access-Control-Allow-Origin", "*")
              .header("Access-Control-Allow-Methods", " POST")
              .entity(JsonResponse)
              .build();
  
   return Response
          .status(Status.CREATED)
          .type(MediaType.APPLICATION_JSON)
          .header("Access-Control-Allow-Origin", "*")
          .header("Access-Control-Allow-Methods", "POST")
          .entity(JsonResponse)
          .build();
  </code></pre>
  
  <p>I have problem only when the return type is Other than Status created.</p>
  
  <p>This is my object mapper class</p>
  
  <pre><code>private static final ObjectMapper MAPPER = new ObjectMapper();
  static 
  {
    MAPPER.setSerializationInclusion(Include.ALWAYS);
    MAPPER.disable(MapperFeature.USE_GETTERS_AS_SETTERS);
    MAPPER.configure(SerializationFeature.WRAP_ROOT_VALUE, true); //in response
    MAPPER.configure(DeserializationFeature.UNWRAP_ROOT_VALUE, true);//in   request
  
  
  }
  public ObjectMapperProvider()
  {
  System.out.println("Instantiate ObjectMapperProvider");
  }
  
  @Override
  public ObjectMapper getContext(Class&lt;?&gt; arg0) 
  {
  return MAPPER;
  }
  </code></pre>
  
  <p><a href="https://i.stack.imgur.com/7eNPt.png" rel="nofollow noreferrer"> I have used following response type in postman</a></p>
  
  <p><a href="https://i.stack.imgur.com/HwRdT.png" rel="nofollow noreferrer">This is the result I got for above request. Im expecting a json format output</a></p>
  
  <p><a href="https://i.stack.imgur.com/CMv3K.png" rel="nofollow noreferrer">This result im seeing in soapUi in XML format</a></p>
  
  <p><a href="https://i.stack.imgur.com/wFViS.png" rel="nofollow noreferrer">This result im seeing in SoapUi in json format</a></p>
  
  <p>This is the response Im seeing when I sent 401 status code with error message in XML Format but im sending in JSON format.</p>
  
  <pre><code>&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"&gt;
     &lt;html xmlns="http://www.w3.org/1999/xhtml"&gt;
     &lt;head&gt;
      &lt;meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/&gt;
      &lt;title&gt;401 - Unauthorized: Access is denied due to invalid credentials. 
      &lt;/title&gt;
      &lt;style type="text/css"&gt;
          &lt;!--
       body{margin:0;font-size:.7em;font-family:Verdana, Arial, Helvetica,                            
       sans-serif;background:#EEEEEE;}
        fieldset{padding:0 15px 10px 15px;} 
        h1{font-size:2.4em;margin:0;color:#FFF;}
        h2{font-size:1.7em;margin:0;color:#CC0000;} 
        h3{font-size:1.2em;margin:10px 0 0 0;color:#000000;} 
        #header{width:96%;margin:0 0 0 0;padding:6px 2% 6px 2%;font- 
        family:"trebuchet MS", Verdana, sans-serif;color:#FFF;
        background-color:#555555;}
        #content{margin:0 0 0 2%;position:relative;}
        .content-container{background:#FFF;width:96%;margin- 
         top:8px;padding:10px;position:relative;}
         --&gt;
  
          &lt;/style&gt;
         &lt;/head&gt;
           &lt;body&gt;
             &lt;div id="header"&gt;
               &lt;h1&gt;Server Error&lt;/h1&gt;
             &lt;/div&gt;
             &lt;div id="content"&gt;
                &lt;div class="content-container"&gt;
                   &lt;fieldset&gt;
                      &lt;h2&gt;401 - Unauthorized: Access is denied due to invalid 
                  credentials.&lt;/h2&gt;
                       &lt;h3&gt;You do not have permission to view this directory or page using the credentials that you supplied.&lt;/h3&gt;
                   &lt;/fieldset&gt;
               &lt;/div&gt;
            &lt;/div&gt;
            &lt;/body&gt;
          &lt;/html&gt;
  </code></pre>
  
  <p>If you need any other information let me know.</p>