당신은 Transport Service Override을 활용할 수
<sftp:connector name="sftp-connector" ... />
...
<service-overrides messageReceiver="com.mycomp.MySftpMessageReceiver" />
</sftp:connector>
나는 당신이 뮬 버전에 대한 기존 수신기의 poll()
함수를 재정의 추천 할 것입니다 당신 사용하고 있습니다. Mule 3.9의 경우 모든 파일을 검색하고 발견 된 각 파일에 대해 routeFile()
을 호출합니다. 자신 만의 poll()
을 구현할 수 있으며 대신 가장 최근의 10 개의 파일을 선택하여 동일한 동작을 재현합니다. 여기서 완전한 코드 샘플을 제공하지는 않겠지 만, 기존 함수 (검색, 잠금, 라우트)의 영감을 받아 직접 구현할 수 있습니다. 예를 들어 기존 SftpMessageReceiver
를 오버라이드 (override)
public class MySftpMessageReceiver extends SftpMessageReceiver {
...
@Override
public void poll() throws Exception {
//poll 10 oldest files
//...
//route them
for (String file : files){
//...
routeFile(file);
}
}
...
}
참고 단순히 다른 사람의 사이에서 갈 수있는 방법입니다. 아이디어는 자신의 MessageReceiver
을 구현하고 위에서 설명한대로 서비스 재정의를 사용하는 것입니다.
EDIT : @NNishanthi와 마찬가지로 개인 SftpReceiverRequesterUtil
을 검색하라는 요청 : 직접 생성자를 만들거나 수퍼 생성자가 생성 한 인스턴스를 검색 할 수 있습니다.
코드를 보면 코드가 보호 된 createSftpReceiverRequesterUtil()
함수로 생성되었으며 생성자가 개인 필드에 영향을 미친 것을 볼 수 있습니다.
private SftpReceiverRequesterUtil sftpRRUtil = null;
...
@Override
protected SftpReceiverRequesterUtil createSftpReceiverRequesterUtil(InboundEndpoint endpoint) {
sftpRRUtil = super.createSftpReceiverRequesterUtil(endpoint);
return sftpRRUtil;
}
당신이 SFTP를 사용하려면 또는 마십시오 :이 동작을 복제 않거나 중복을 통해 인스턴스 객체를 검색하기 위해이 메소드를 오버라이드 (override) 방지와 같은, 당신의 자신의 분야에 영향을 미치는 자신의 생성자에서이 함수를 호출 할 수 있습니다 FTP 커넥터? 이것들은 다른 것들입니다. (정확한 답변을 편집하십시오) –
죄송합니다. 실수로 FTP를 추가했습니다. SFTP 커넥터가 필요합니다. 내 질문을 업데이트했습니다. –