Axon을 사용하여 개발중인 프로젝트가 있지만, 내 Saga가 제대로 실행되지 않습니다. (. 올바르게 추가 단계의 집합을 생성) :associationProperty와 일치하는 이벤트가 Axon Saga에 통지되도록하려면 어떻게해야합니까?
내 사가는 다음과 유사한 행이 포함
첫 번째 이벤트가 시작 사가 트리거링, 또한 initialiseWorkflow 작업을 트리거한다@StartSaga
@SagaEventHandler(associationProperty = "uuid")
public void handle(FirstEvent event) {
System.out.println("Processing FirstEvent for uuid=" + event.getUuid());
associateWith("uuid", event.getUuid().toString());
initialiseWorkflow(event.getUuid(), Status.CREATED) ;
}
@SagaEventHandler(associationProperty = "uuid")
public void handle(SecondEvent event) {
System.out.println("Processing SecondEvent for uuid=" + event.getUuid());
this.processStep(STEP_2,event.getUuid());
}
그러나 때 Saga가 두 번째 이벤트를 선택하지 않으면 SecondEvent가 도착합니다 (FirstEvent와 동일한 UUID associationProperty 값).
나는 연결을 향상시키기 위해 다음 줄을 포함하여 구체적으로 시도했다, 그러나 그것은 또한 작동하지 않았다 :
associateWith("uuid", event.getUuid().toString());
는 아이러니하게도, 내가 테스트 케이스를 가지고, 제대로 작동 축삭 테스트 프레임 워크를 사용하여,이
@Test
public void testSecondEvent() {
fixture.givenAggregate(uuid).published(new FirstEvent(uuid))
.whenAggregate(uuid).publishes(new SecondEvent(uuid))
.expectDispatchedCommandsMatching(exactSequenceOf(
new CompleteTaskCommandMatcher("SecondEvent")));
}
문제는 내가 CommandGateway에 직접 명령을 가하고, 그리고 저장소에 직접 결과를 확인하고 테스트를 종료 나의 끝에서 발생 비슷합니다.
AnnotatedSagaManager가 사용되고 있는지 다시 한 번 확인했습니다.
잘못된 것이 무엇인지에 대한 아이디어가있는 사람이 있습니까? 아니면 Sagas가 어떻게 작동해야하는지 오해 한 적이 있습니까?
편집 : 더 몇 업데이트 :
1) 내가 toString()를 직접 UUID를 연결 할 때 사용하는 데 필요한 것으로 나타났습니다, 그래서 이벤트에 대한 문자열로 값을 시도 - 아니 진행.
2) I는 연관된 값을 인쇄했는데, I는 직접적인 연관 라인 I가 온 @StartSaga 바꾸어 시도 (UUID를가))
3 시작 사가 과정 연관된 필요하지 않은 것을 알 수있다 secondEvent, 그리고 이것은 "Processing SecondEvent ..."에 대한 코드에 도달했지만 새로운 무용담에 있습니다.
더 많은 이해가되었지만 아직 해결 방법이 없습니다.