Java 类org.springframework.boot.autoconfigure.web.ErrorController 实例源码

项目:ByteTCC    文件:CompensableHandlerInterceptor.java   
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)
        throws Exception {
    HandlerMethod hm = (HandlerMethod) handler;
    Class<?> clazz = hm.getBeanType();
    if (CompensableCoordinatorController.class.equals(clazz)) {
        return;
    } else if (ErrorController.class.isInstance(hm.getBean())) {
        return;
    }

    String transactionStr = request.getHeader(HEADER_TRANCACTION_KEY);
    if (StringUtils.isBlank(transactionStr)) {
        return;
    }

    Compensable annotation = clazz.getAnnotation(Compensable.class);
    if (annotation == null) {
        return;
    }

    SpringCloudBeanRegistry beanRegistry = SpringCloudBeanRegistry.getInstance();
    CompensableBeanFactory beanFactory = beanRegistry.getBeanFactory();
    CompensableManager compensableManager = beanFactory.getCompensableManager();
    TransactionInterceptor transactionInterceptor = beanFactory.getTransactionInterceptor();

    CompensableTransaction compensable = compensableManager.getCompensableTransactionQuietly();
    TransactionContext transactionContext = compensable.getTransactionContext();

    byte[] byteArray = CommonUtils.serializeObject(transactionContext);
    String compensableStr = ByteUtils.byteArrayToString(byteArray);
    response.addHeader(HEADER_TRANCACTION_KEY, compensableStr);
    response.addHeader(HEADER_PROPAGATION_KEY, this.identifier);

    TransactionResponseImpl resp = new TransactionResponseImpl();
    resp.setTransactionContext(transactionContext);
    resp.setSourceTransactionCoordinator(beanRegistry.getConsumeCoordinator(null));

    transactionInterceptor.beforeSendResponse(resp);

}
项目:ByteJTA    文件:TransactionHandlerInterceptor.java   
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
    HandlerMethod hm = (HandlerMethod) handler;
    Class<?> clazz = hm.getBeanType();
    if (TransactionCoordinatorController.class.equals(clazz)) {
        return true;
    } else if (ErrorController.class.isInstance(hm.getBean())) {
        return true;
    }

    String transactionStr = request.getHeader(HEADER_TRANCACTION_KEY);
    if (StringUtils.isBlank(transactionStr)) {
        return true;
    }

    String propagationStr = request.getHeader(HEADER_PROPAGATION_KEY);

    String transactionText = StringUtils.trimToNull(transactionStr);
    String propagationText = StringUtils.trimToNull(propagationStr);

    SpringCloudBeanRegistry beanRegistry = SpringCloudBeanRegistry.getInstance();
    TransactionBeanFactory beanFactory = beanRegistry.getBeanFactory();
    TransactionInterceptor transactionInterceptor = beanFactory.getTransactionInterceptor();

    byte[] byteArray = transactionText == null ? new byte[0] : ByteUtils.stringToByteArray(transactionText);

    TransactionContext transactionContext = null;
    if (byteArray != null && byteArray.length > 0) {
        transactionContext = (TransactionContext) CommonUtils.deserializeObject(byteArray);
    }

    TransactionRequestImpl req = new TransactionRequestImpl();
    req.setTransactionContext(transactionContext);
    req.setTargetTransactionCoordinator(beanRegistry.getConsumeCoordinator(propagationText));

    transactionInterceptor.afterReceiveRequest(req);

    return true;
}
项目:ByteJTA    文件:TransactionHandlerInterceptor.java   
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)
        throws Exception {
    HandlerMethod hm = (HandlerMethod) handler;
    Class<?> clazz = hm.getBeanType();
    if (TransactionCoordinatorController.class.equals(clazz)) {
        return;
    } else if (ErrorController.class.isInstance(hm.getBean())) {
        return;
    }

    String transactionText = request.getHeader(HEADER_TRANCACTION_KEY);
    if (StringUtils.isBlank(transactionText)) {
        return;
    }

    SpringCloudBeanRegistry beanRegistry = SpringCloudBeanRegistry.getInstance();
    TransactionBeanFactory beanFactory = beanRegistry.getBeanFactory();
    TransactionManager transactionManager = beanFactory.getTransactionManager();
    TransactionInterceptor transactionInterceptor = beanFactory.getTransactionInterceptor();

    Transaction transaction = transactionManager.getTransactionQuietly();
    TransactionContext transactionContext = transaction.getTransactionContext();

    byte[] byteArray = CommonUtils.serializeObject(transactionContext);
    String transactionStr = ByteUtils.byteArrayToString(byteArray);
    response.addHeader(HEADER_TRANCACTION_KEY, transactionStr);
    response.addHeader(HEADER_PROPAGATION_KEY, this.identifier);

    TransactionResponseImpl resp = new TransactionResponseImpl();
    resp.setTransactionContext(transactionContext);
    resp.setSourceTransactionCoordinator(beanRegistry.getConsumeCoordinator(null));

    transactionInterceptor.beforeSendResponse(resp);

}
项目:crnk-framework    文件:CrnkErrorControllerAutoConfiguration.java   
@Bean
@ConditionalOnMissingBean(value = ErrorController.class, search = SearchStrategy.CURRENT)
public BasicErrorController jsonapiErrorController(ErrorAttributes errorAttributes) {
    return new CrnkErrorController(errorAttributes, this.serverProperties.getError(), this.errorViewResolvers);
}
项目:ByteTCC    文件:CompensableHandlerInterceptor.java   
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
    HandlerMethod hm = (HandlerMethod) handler;
    Class<?> clazz = hm.getBeanType();
    if (CompensableCoordinatorController.class.equals(clazz)) {
        return true;
    } else if (ErrorController.class.isInstance(hm.getBean())) {
        return true;
    }

    String transactionStr = request.getHeader(HEADER_TRANCACTION_KEY);
    if (StringUtils.isBlank(transactionStr)) {
        return true;
    }

    String propagationStr = request.getHeader(HEADER_PROPAGATION_KEY);

    String transactionText = StringUtils.trimToNull(transactionStr);
    String propagationText = StringUtils.trimToNull(propagationStr);

    Compensable annotation = clazz.getAnnotation(Compensable.class);
    if (annotation == null) {
        return true;
    }

    SpringCloudBeanRegistry beanRegistry = SpringCloudBeanRegistry.getInstance();
    CompensableBeanFactory beanFactory = beanRegistry.getBeanFactory();
    TransactionInterceptor transactionInterceptor = beanFactory.getTransactionInterceptor();

    byte[] byteArray = transactionText == null ? new byte[0] : ByteUtils.stringToByteArray(transactionText);

    TransactionContext transactionContext = null;
    if (byteArray != null && byteArray.length > 0) {
        transactionContext = (TransactionContext) CommonUtils.deserializeObject(byteArray);
    }

    TransactionRequestImpl req = new TransactionRequestImpl();
    req.setTransactionContext(transactionContext);
    req.setTargetTransactionCoordinator(beanRegistry.getConsumeCoordinator(propagationText));

    transactionInterceptor.afterReceiveRequest(req);

    return true;
}
项目:onetwo    文件:ErrorHandleConfiguration.java   
@Bean
@ConditionalOnMissingBean(DataResultErrorController.class)
public ErrorController dataResultErrorController(ErrorAttributes errorAttributes){
    return new DataResultErrorController(errorAttributes, this.serverProperties.getError(),
            this.errorViewResolvers);
}