2017-12-18 3 views
-2

스프링 부트 (1.5.1 버전) 애플리케이션이 있습니다.아파치 카멜 루트 및 스프링 부트 : 애플리케이션 시작

응용 프로그램을 시작할 때 외부 서비스를 호출해야합니다. 괜찮습니다. ApplicationListener를 구현하는 클래스를 구현했으며 외부 서비스가 올바르게 호출됩니다.

제 문제는 외부 서비스가 즉시 콜백 URL에서 내 애플리케이션을 다시 호출한다는 것입니다. 404 응용 프로그램 호출이 실패했습니다. URL 끝점은 Apache Camel (2.17.0 절) 경로로 설정됩니다. 외부 서비스가 404를 얻으므로 외부 서비스가 호출 할 때까지 내 애플리케이션에서 경로가 시작되지 않았 음을 의미합니다.

사실, 나는 응용 프로그램을 디버깅하고 외부 서비스를 호출하기 전에 중단 점을 추가하여이를 증명했습니다. 일시 중지 된 코드로 콜백 URL을 직접 호출하면 404가 발생합니다. ApplicationListener 클래스의 메서드 전체가 완료되고 내 응용 프로그램이 완전히 시작될 때까지 (메시지 : "FrameworkServlet 'dispatcherServlet': 초기화가 완료되었습니다.) 콜백 URL을 사용할 수있게됩니다.

외부 서비스를 호출하기 전에 Apache Camel 경로를 시작할 수있는 방법이 있습니까?

미리 도움을 청하십시오.

답변

0

콜백 URL 경로 다음에 시작하도록 구성된 새로운 Camel Route로 ApplicationListener 코드를 전송하여 문제가 해결되었습니다. 그것은 Camel 타이머를 통해 실행됩니다.

관련 문제