Я пытаюсь добавить ErrorHandler с помощью метода EventProcessingConfigurer.registerErrorHandler(), и пока он отображается в конфигурации, сам класс не вызывается.
В настоящее время я использую Axon 4.1.1 (без сервера Axon) и Spring Boot 2.1.6.RELEASE.
я взял за основу свой код github/AxonFramework, но это не так.
Конфигурация:
@Autowired
public void configure(final EventProcessingConfigurer config) {
TestErrorHandler testErrorHandler = new TestErrorHandler();
config.registerErrorHandler("SolrProjection", configuration -> testErrorHandler);
}
Обработчик ошибок:
public class TestErrorHandler implements ErrorHandler, ListenerInvocationErrorHandler {
@Override
public void handleError(final ErrorContext errorContext) throws Exception {
System.out.println("TestErrorHandler.handleError()");
}
@Override
public void onError(final Exception exception, final EventMessage<?> event, final EventMessageHandler eventHandler) {
System.out.println("TestErrorHandler.onError()");
}
}
Проекция:
@Configuration
@RequiredArgsConstructor
@ProcessingGroup("SolrProjection")
public class SolrProjection {
@EventHandler
public void onEvent(final TestEvent event,
@SequenceNumber Long sequenceNumber,
@Timestamp final Instant requestTimestamp,
@MessageIdentifier final String messageIdentifier,
final MetaData metaData) {
if (true) {
throw new IllegalStateException();
}
}
даже если я прямо выдаю ошибку, я никогда не вижу два system.out в консоли. и размещение операторов журнала в @EventHandler вызывается правильно.