Non*_*one 8 java microprofile quarkus
我在 Quarkus (1.8.1) 服务中有一个 Rest 客户端,定义如下:
@RegisterRestClient
@Path("/")
@Produces("application/json")
@Consumes("application/json")
public interface MyClient {
@POST
@Path("/{entity}")
Response postEntity(@HeaderParam(value = "Authorization") String auth,
@PathParam("entity") String entity, Object payload) throws MyException;
}
Run Code Online (Sandbox Code Playgroud)
我已经ResponseExceptionMapper在同一个包中实现了这样的:
public class MyExceptionMapper implements ResponseExceptionMapper<MyException> {
@Override
public MyException toThrowable(Response r) {
return new DynamicsException(r.getStatus() + " - " + r.readEntity(String.class));
}
}
Run Code Online (Sandbox Code Playgroud)
MyExceptionMapper当我调用该服务时,它当前返回 404 错误,并且我期望调用类中的代码。然而它没有,而是javax.ws.rs.WebApplicationException抛出了 a 。堆栈跟踪包括对DefaultResponseExceptionMapper. 看来我的映射器尚未注册。
如何注册我的处理程序以处理对服务的调用的无效响应?
Har*_*oon 13
您需要将 MyExceptionMapper 注册为其余客户端的提供者@RegisterProvider(MyExceptionMapper.class)。
@RegisterRestClient
@RegisterProvider(MyExceptionMapper.class)
@Path("/")
@Produces("application/json")
@Consumes("application/json")
public interface MyClient {
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10756 次 |
| 最近记录: |