code: <T> T _deserialize(String body, Class<T> clazz) {
          if(body == null || body.isEmpty()){
             throw new ServiceException(ErrorCode.REMOTE_DIRECTORY_SERVER_ERROR,
                       ErrorCode.REMOTE_DIRECTORY_SERVER_ERROR.getMessageTemplate(),
                      "the message body is empty");
          }
  
          try {
              return deserialize(body.getBytes(), clazz);
          } catch (IOException e) {
              throw new ServiceException(ErrorCode.REMOTE_DIRECTORY_SERVER_ERROR, e,
                      ErrorCode.REMOTE_DIRECTORY_SERVER_ERROR.getMessageTemplate(),
                      "unrecognized message, deserialize failed.");
          }
      }
docs: Deserialize a JSON String to the target object.
  
  @param body
  the JSON String.
  @param clazz
  the Object class name deserialized to.
  @return
  the deserialized Object instance.
  @throws IOException
  @throws JsonMappingException
  @throws JsonParseException