我们正在开发spring boot应用程序。 在控制器中创建父范围,随后的服务方法为单个流创建子范围。 每当服务或DAO方法抛出覆盖整个流最终调用后关闭的异常范围时,我们都面临一个问题。 这也将父控制器跨度标记为已完成。 由于我们正在尝试在控制器异常处理程序方法中访问父范围,因此不可用
我们需要控制器父范围来继续直到异常处理程序。 控制器代码:
@ContinueSpan(log="handleAllExceptions")
public final ResponseEntity<Exception>
handleAllExceptions(@SpanTag("ApplicationError") RuntimeException ex)
{
LOGGER.error(ex.toString());
return new
ResponseEntity<Exception(ex,HttpStatus.INTERNAL_SERVER_ERROR);
}
Span code which is causing span to finish in case exception is thrown:
finally {
after(span, startNewSpan, log, hasLog);
}