Ich versuche eine benutzerdefinierte ExceptionMapper
Klasse für JAX-RS zu schreiben. Ich möchte irgendwie die ursprünglich angeforderte URI aus dem JAX-RS javax.ws.rs.core.Response
Objekt lesen.Wie bekomme ich den ursprünglich angeforderten URI von JAX-RS? Javax.ws.rs.core.Response
Wenn ich überprüfen Sie die Response-Objekt mit IntelliJ IDEA im Debug-Modus, dann kann ich diese Informationen unter folgendem Pfad finden: response> Kontext> resolvedUri wo
Typ des context
org.glassfish.jersy.client.ClientResponse
ist. Diese Klasse hat eine resolvedUri
Variable, die die Informationen enthält, die ich brauche.
Kann ich diese Informationen irgendwie bekommen? Wie kann ich meine getRequestUri(response)
Methode schreiben?
public class MyExceptionMapper implements ExceptionMapper<WebApplicationException> {
@Override
public Response toResponse(WebApplicationException error) {
Response response = error.getResponse();
ErrorResponse errorResponse = ErrorResponseBuilder
.builder()
.httpStatus(getDefaultStatusCodeIfNull(response))
.errorMessage(getCustomErrorMessage(response))
.requestedUri(getRequestedUri(response)) <--------- HOW TO READ IT?
.build();
return Response
.status(errorResponse.getHttpStatus())
.type(ExtendedMediaType.APPLICATION_JSON)
.entity(errorResponse)
.build();
}
}
Haben Sie versucht, 'URI uri = response.getLocation(); System.out.println (uri.toString()); '? – Anddo
Ich habe es versucht. Es kommt mit null zurück :( – zappee
Nicht sicher, aber als Java [API doc] (http://docs.oracle.com/javaee/7/api/javax/ws/rs/core/Response.html#getLocation--) es gibt den Standort-URI sonst Null, wenn ** nicht vorhanden **. – Anddo