common调整seata异常捕获

This commit is contained in:
ajaxfan
2021-04-16 16:03:27 +08:00
parent 44e8145ac2
commit 4127f39422
10 changed files with 769 additions and 6 deletions

View File

@ -15,7 +15,6 @@ import org.springframework.dao.DataAccessException;
import org.springframework.dao.DuplicateKeyException;
import org.springframework.dao.EmptyResultDataAccessException;
import org.springframework.http.HttpStatus;
import org.springframework.transaction.TransactionSystemException;
import org.springframework.validation.BindException;
import org.springframework.validation.BindingResult;
import org.springframework.validation.FieldError;
@ -35,6 +34,7 @@ import com.chinaunicom.mall.ebtp.common.util.JsonUtils;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.exceptions.ExceptionUtil;
import io.seata.core.context.RootContext;
import io.seata.core.exception.BranchTransactionException;
import io.seata.core.exception.RmTransactionException;
import lombok.Getter;
import lombok.Setter;
@ -258,10 +258,10 @@ public class BusinessExceptionHandlerAdviceDefault {
return BaseResponse.fail(HttpStatus.INTERNAL_SERVER_ERROR.value(), "系统异常", Convert.toStr(body));
}
@ExceptionHandler({ TransactionSystemException.class, RmTransactionException.class })
@ExceptionHandler({ BranchTransactionException.class })
@ResponseStatus(HttpStatus.BAD_REQUEST)
public BaseResponse<String> handleTransactionSystemException(HttpServletRequest request,
TransactionSystemException exception) {
BranchTransactionException exception) {
log.info(ExceptionUtil.stacktraceToString(exception));
if (((String) Objects.requireNonNull(exception.getMessage())).contains("may be has finished")) {
String xid = RootContext.getXID();

View File

@ -35,6 +35,7 @@ import com.chinaunicom.mall.ebtp.common.util.JsonUtils;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.exceptions.ExceptionUtil;
import io.seata.core.context.RootContext;
import io.seata.core.exception.BranchTransactionException;
import io.seata.core.exception.RmTransactionException;
import io.seata.core.exception.TransactionException;
import lombok.Getter;
@ -257,10 +258,10 @@ public class BusinessExceptionHandlerAdvicePro {
return BaseResponse.fail(HttpStatus.INTERNAL_SERVER_ERROR.value(), "系统异常", Convert.toStr(body));
}
@ExceptionHandler({ TransactionException.class })
@ExceptionHandler({ BranchTransactionException.class })
@ResponseStatus(HttpStatus.BAD_REQUEST)
public BaseResponse<String> handleTransactionSystemException(HttpServletRequest request,
TransactionSystemException exception) {
BranchTransactionException exception) {
log.info(ExceptionUtil.stacktraceToString(exception));
if (((String) Objects.requireNonNull(exception.getMessage())).contains("may be has finished")) {
String xid = RootContext.getXID();
@ -271,7 +272,6 @@ public class BusinessExceptionHandlerAdvicePro {
return BaseResponse.fail("系统繁忙,请重试", null);
}
}
return BaseResponse.fail("系统异常", exception.getMessage());
}