resteasy中统一异常处理

1 篇文章 0 订阅

在使用基于dubbox的微服务中,使用resteas实现rest接口时,常用的spring中统一异常处理已不适用。通过查资料发现使用这种方式可以实现。

1、定义一个统一异常处理类

package com.sf.xxx.user.exception;
import javax.ws.rs.WebApplicationException;
import javax.ws.rs.core.Response;
import javax.ws.rs.ext.ExceptionMapper;
import javax.ws.rs.ext.Provider;
import com.xxx.framework.domain.Result;
/**
 * @author 833902
 * 2018年2月9日 下午4:25:23
 */
@Provider
public class CustomException implements ExceptionMapper<WebApplicationException>{
  @Override
  public Response toResponse(WebApplicationException exception) {
    Result<Object> result = new Result<>();
    result.setSuccess(false);
    result.setErrorMessage(exception.getMessage());
    return Response.ok().entity(result).build();
  }
}

2、在定义访问的xml中,添加extension

<dubbo:protocol name="rest"
                   port="8888"
                   threads="500"
                   contextpath="services"
                   server="tomcat"
                   accepts="500"
                   extension="com.alibaba.dubbo.rpc.protocol.rest.support.LoggingFilter,com.xxx.xxxx.user.exception.CustomException"/>

3、在业务代码需要进行统一处理的地方进行throw

    throw new WebApplicationException("运行时异常");


参考资料:



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值