我有一个泽西客户端调用一个api,它的返回类型是javax.ws.rs.core.Response,正如所使用的接口中所定义的那样。
public Response getResponse(String id)
调用的响应状态为“服务器错误”,但客户端不会抛出InternalServerException而是返回InboundJaxrsResponse。
在检查Jersey代码时,我看到正在使用的JerseyInvocation类具有检查响应类型是否为javax.ws.rs.core.Response然后返回InboundJaxrsResponse对象的逻辑。 如何根据此处的响应状态获得适当的异常?
PS:RestEasy客户端也有类似的逻辑。
答案 0 :(得分:1)
假设您使用<T> T get(Class<T> responseType)
从HTTP响应主体获取整数,如果响应状态不是2xx,则可以抛出异常WebApplicationException
。
在您的情况下,API合同的第二个要求未得到履行
WebApplicationException
- 如果是的响应状态代码 服务器返回的响应不成功 且指定的响应类型不是Response
。