2014-11-20 2 views
1

Camel을 사용하여 두 개의 FTP 위치간에 파일을 전송하는 Java 응용 프로그램을 빌드하는 중입니다. 성공적인 파일 전송에 대한 알림을받을 수있는 방법이 있습니까? 우리는 애플리케이션 구축을 위해 JMS 솔루션을 사용할 수 없습니다.Apache camel ftp 구성 요소 - 성공적인 전송시 알림

+0

경로에서 여러 개의 'to'호출을 가질 수 있습니다. 나는 당신이 염두에두고있는 어떤 통지 메커니즘을 모르겠다. JMS가 아니라면 웹 호출 일까? '.to ("ftp : ..."). to ("http : ...")'아니면 이메일로 보내시겠습니까? ~ "("ftp : ... ") ~ to ("smtp : ... ")'아니면''SEDA 이벤트''를 사용하기를 원합니다 .to ("ftp : ... "). to ("seda : ... ")'. 나는 당신이 요점을 얻은다고 생각합니다. – Ray

+0

@ 레이 빠른 답장을 보내 주셔서 감사합니다. 몇 가지 명확성을 더하기 위해 총 흐름에는 이 포함됩니다. 1. 원격 FTP에서 위치를 읽고 성공적으로 읽을 때 이름을 바꾸고 다른 폴더로 이동하십시오. 2. 일부 처리를 위해 도청 장치 추가 3. 파일을 다른 원격 FTP 위치. 성공적인 쓰기/전송에 대한 상태 알림을받을 수 있습니까? – kallada

+0

비즈니스 목적으로이 알림이 필요하다는 것을 알고 있습니다. 너는 와서 또는 그냥 기록하기 위해이 정보가 필요합니까? 완료 통보로 뭐하고 있니? 이에 대한 당신의 대답은 우리가 대답하려고 시도하는 대답을 향상시키는 데 도움이 될 것입니다. –

답변

1

다른 경로를 작성하고 seda/vm을 엔드 포인트로 사용할 수 있기를 바랍니다.이 엔드 포인트는 ftp 엔드 포인트 이후에 호출해야합니다.

<route id="MainRoute"> 
<from uri="ftp:RemoteLocation"/> 
<from uri="seda:Retry"/> 
<to uri="seda:MyLog"/> 
<!--Your Main Processing logic --> 
</route> 

<route id="Notification-processor"> 
<from uri="seda:MyLog"/> 
<!--Your Logging/Notification Processing logic --> 
</route> 

알림 프로세서의 위 시나리오에서 사용자는 알림/로그 작업을 수행 할 수 있습니다. 이것은 사용자 지정 알림 논리입니다. 예외를 통지해야하는 경우 통지를 전송하기 위해 통지 프로세서에 엔드 포인트를 가질 수 있습니다.

동적 경로를 사용하여 특정 파일을 ftp 위치에서 추출하고 다시 처리 할 수있는 Notification-processor에서 Bean을 호출 할 수 없다면 메시지가 완료되었는지 확인하는 로직을 작성해야합니다. 아래처럼

<route id="Notification-processor"> 
<from uri="seda:MyLog"/> 
<!--Anomaly checker --> 
<to uri="seda:Retry"/> 
<!--Your Logging/Notification Processing logic --> 
</route>