code: @Override
      public <T> T invoke(Context context, Class<T> classOfT, Type genericType) {
          T t = null;
          try {
              final String content = context.body();
              if (content == null || content.length() == 0) {
                  return null;
              }
              if (classOfT.equals(Document.class)) {
                  return (T) parseXMLDocument(content.getBytes(Charsets.UTF_8));
              }
              if (genericType != null) {
                  t = xml.xmlMapper().readValue(content, xml.xmlMapper().constructType(genericType));
              } else {
                  t = xml.xmlMapper().readValue(content, classOfT);
              }
          } catch (IOException e) {
              LOGGER.error(ERROR, e);
          }
          return t;
      }
docs: Invoke the parser and get back a Java object populated
  with the content of this request.
  <p>
  MUST BE THREAD SAFE TO CALL!
  
  @param context     The context
  @param classOfT    The class we expect
  @param genericType the generic type
  @return The object instance populated with all values from raw request