我使用代码中的供应商调用restTemplate,并在出现异常时发出自定义消息。
但是,在我的消息中,我需要通过我的requestCall获得信息,但是当我抛出请求时会出现java thow错误
..。
我的代码:
{ HttpHeaders headers = buildDefaultHeaders();UriBuilder uri = UriBuilder.fromUri(wdd3dGatewayEndpoint + API_URL);HttpEntity请求=新HttpEntity(headers);this.executeRequest(() -> restTemplate.exchange(uri.build(),HttpMethod.DELETE,request,Void.class));}
我的供应商
受保护的ResponseEntity executeRequest(供应商请求){尝试{ ResponseEntity response = request.get();updateSessionToken(响应);返回响应;} catch (HttpClientErrorException = HttpServerErrorException e) { String msg =“WDD3D-服务通信中的错误”+ e.getResponseBodyAsString();抛出新的MaestroException(msg);}}
现在,我试着找出URL.
受保护的ResponseEntity executeRequest(供应商请求){尝试{ ResponseEntity response = request.get();updateSessionToken(响应);返回响应;} catch (HttpClientErrorException = HttpServerErrorException e) {//抛出.请帮帮我..。RequestEntity requestEntity = (RequestEntity)请求;String url = requestEntity.getUrl().toString();String msg =“WDD3D-服务通信中的错误”+ e.getResponseBodyAsString();抛出新的MaestroException(msg);}]
发布于 2021-11-07 18:21:49
您应该使用get()方法的Supplier,请参阅更多的文档。
发布于 2021-11-07 18:22:48
RequestEntity requestEntity = (RequestEntity) request;
您正在尝试将Supplier<ResponseEntity>转换为RequestEntity。这是两个非常不同的阶级,这样的阵容是行不通的。
也许您想调用request.get()并从您拥有的ResponseEntity中获取URL。
告诉我它是否在注释中对您有效,还是我们需要进一步调试?
发布于 2021-11-07 20:58:39
您试图从RequestEntity获取的唯一东西是URL,因为它不是Supplier<ResponseEntity>,所以您不能从它获得URL,那么为什么不直接将URL作为另一个参数传递给executeRequest呢?然后,它将获得记录错误所需的附加信息。
https://stackoverflow.com/questions/69875240
复制相似问题