2020-06-09 16:51:53 +02:00
|
|
|
package org.gcube.data_catalogue.grsf_publish_ws.AAA_UNNEEDED;
|
2016-10-15 22:34:57 +02:00
|
|
|
|
|
|
|
import javax.validation.ConstraintViolation;
|
|
|
|
import javax.validation.ConstraintViolationException;
|
|
|
|
import javax.ws.rs.core.MediaType;
|
|
|
|
import javax.ws.rs.core.Response;
|
|
|
|
import javax.ws.rs.ext.ExceptionMapper;
|
|
|
|
import javax.ws.rs.ext.Provider;
|
|
|
|
|
2016-10-18 23:31:04 +02:00
|
|
|
import org.slf4j.LoggerFactory;
|
|
|
|
|
2016-10-15 22:34:57 +02:00
|
|
|
/**
|
2017-10-27 14:51:24 +02:00
|
|
|
* Exception thrown when @Valid fails
|
2016-10-15 22:34:57 +02:00
|
|
|
* @author Costantino Perciante at ISTI-CNR
|
|
|
|
*/
|
2016-10-21 22:33:38 +02:00
|
|
|
@Provider
|
2016-10-15 22:34:57 +02:00
|
|
|
public class ValidationException implements ExceptionMapper<javax.validation.ValidationException> {
|
2016-10-18 23:31:04 +02:00
|
|
|
private static final org.slf4j.Logger logger = LoggerFactory.getLogger(ValidationException.class);
|
2016-10-15 22:34:57 +02:00
|
|
|
|
|
|
|
@Override
|
|
|
|
public Response toResponse(javax.validation.ValidationException e) {
|
|
|
|
final StringBuilder strBuilder = new StringBuilder();
|
|
|
|
for (ConstraintViolation<?> cv : ((ConstraintViolationException) e).getConstraintViolations()) {
|
2016-10-18 23:57:27 +02:00
|
|
|
strBuilder.append(cv.getMessage());
|
|
|
|
break;
|
2016-10-15 22:34:57 +02:00
|
|
|
}
|
2016-10-18 23:31:04 +02:00
|
|
|
logger.warn("ValidationException invoked, returning " + strBuilder.toString());
|
2016-10-15 22:34:57 +02:00
|
|
|
return Response
|
|
|
|
.status(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode())
|
|
|
|
.type(MediaType.APPLICATION_JSON)
|
2016-10-19 14:34:19 +02:00
|
|
|
.entity(new ResponseBean(false, strBuilder.toString(), null))
|
2016-10-15 22:34:57 +02:00
|
|
|
.build();
|
|
|
|
}
|
|
|
|
}
|