![](/img/trans.png)
[英]Missing dependency for method public javax.ws.rs.core.Response (Upload File JAX-RS)
[英]How to get the original requested URI from JAX-RS javax.ws.rs.core.Response
我正在嘗試為JAX-RS寫一個自定義的ExceptionMapper
類。 我想以某種方式從JAX-RS javax.ws.rs.core.Response
對象讀取原始請求的URI。
當我在調試模式下使用IntelliJ IDEA檢查響應對象時,可以在以下路徑下看到此信息:response> context> resolveUri其中
context
類型是org.glassfish.jersy.client.ClientResponse
。 此類具有resolvedUri
變量,其中包含我需要的信息。
我能以某種方式獲得此信息嗎? 如何編寫我的getRequestUri(response)
方法?
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();
}
}
采用
@Context私有HttpServletRequest servletRequest;
並使用HttpServletRequest.getRequestURI()
public class MyExceptionMapper implements
ExceptionMapper<WebApplicationException> {
@Context
private HttpServletRequest servletRequest;
@Override
public Response toResponse(WebApplicationException error) {
Response response = error.getResponse();
ErrorResponse errorResponse = ErrorResponseBuilder
.builder()
.httpStatus(getDefaultStatusCodeIfNull(response))
.errorMessage(getCustomErrorMessage(response))
.requestedUri(servletRequest.getRequestURI())
.build();
return Response
.status(errorResponse.getHttpStatus())
.type(ExtendedMediaType.APPLICATION_JSON)
.entity(errorResponse)
.build();
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.