我使用此代码使用泽西客户端调用泽西JAX-RS服务。
public static void main(String[] args) {
ClientConfig config = new DefaultClientConfig();
Client client = Client.create(config);
WebResource service = client.resource(getBaseURI());
String msg = service.path("rest").path("ExceptionDemo").path("user").queryParam("id", "001").get(String.class);
System.out.println(msg);
}
private static URI getBaseURI() {
return UriBuilder.fromUri("http://localhost:8045/ExceptionHanlding").build();
}
当响应状态代码为200时,此代码可以正常工作。但是对于200以外的任何其他代码,此代码会抛出异常。
如何修改此代码,以便根据响应的状态代码执行某些操作?
答案 0 :(得分:15)
使用.get(ClientResponse.class)
代替.get(String.class)
。这抑制了不良状态的例外情况"行为,ClientResponse使您可以访问有关HTTP响应的详细信息。 "Receiving a response"下的用户指南中简要介绍了该行为。