栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

在JAX-RS 2.0客户端库中处理自定义错误响应

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

在JAX-RS 2.0客户端库中处理自定义错误响应

我相信您想做这样的事情:

Response response = builder.get( Response.class );if ( response.getStatusCode() != Response.Status.OK.getStatusCode() ) {    System.out.println( response.getStatusType() );    return null;}return response.readEntity( MyEntity.class );

您可以尝试做的另一件事(因为我不知道此API将内容放到哪里-即在标头或实体中还是在什么地方)是:

Response response = builder.get( Response.class );if ( response.getStatusCode() != Response.Status.OK.getStatusCode() ) {    // if they put the custom error stuff in the entity    System.out.println( response.readEntity( String.class ) );    return null;}return response.readEntity( MyEntity.class );

如果您通常希望将REST响应代码映射到Java异常,则可以添加客户端过滤器来执行此操作:

class ClientResponseLoggingFilter implements ClientResponseFilter {    @Override    public void filter(final ClientRequestContext reqCtx, final ClientResponseContext resCtx) throws IOException {        if ( resCtx.getStatus() == Response.Status.BAD_REQUEST.getStatusCode() ) { throw new MyClientException( resCtx.getStatusInfo() );        }        ...

在上面的过滤器中,您可以为每个代码创建特定的异常,或者创建一种用于包装响应代码和实体的通用异常类型。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/571031.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号