JsonParser jp = mapper.getFactory().createJsonParser(entityStream);
jp.disable(JsonParser.Feature.AUTO_CLOSE_SOURCE);
URL schemaLocation = schemaLookup.getSchemaURL(schemaAnnotation.value());
JsonSchema jsonSchema = cache.getSchema(schemaLocation);
JsonNode jsonNode = mapper.readTree(jp);
List<ErrorMessage> validationErrors = jsonSchema.validate(jsonNode);
if (validationErrors.isEmpty()) {
return mapper.reader().withType(mapper.constructType(genericType)).readValue(jsonNode);
}
throw new WebApplicationException(generateErrorMessage(validationErrors));