Eclipse Apache Camel FTP: Fehlerbehandlung, wie?

Sn4k3

Mitglied
Hallo zusammen,

ich muss per Apache Camel FTP einen FTP-Upload realsieren, dies passiert über folgende Zeilen:

Java:
@Override
  public void configure() throws Exception {     
    getContext().getShutdownStrategy().setTimeout(10);
    from("file:"+TEMP_PATH).to(prepareFtpServer()); 
  }

Der Upload an sich funktioniert auch wunderbar. Falls jedoch keine Verbindung zum Host aufgebaut werden (z. B. Falsche IP, falscher Benutzer etc.) kann, läuft das Programm einfach durch, ohne irgendeine Execption zu schmeißen. Den Parameter "&throwExceptionOnConnectFailed=true" habe ich angegeben.

Ich bräuchte eine vernünftige Fehlerbehandlung um den User drauf hinzuweisen. In Moment funktioniert einfach der Upload nicht. Falls es noch was hilft, hier der Aufruf:

Java:
 @Override
  public boolean send() throws Exception {    
    CamelContext camelContext = new DefaultCamelContext();    
    try {      
      camelContext.addRoutes(new FtpClientRouteBuilder(ftpTransport));       
      camelContext.start();
      Thread.sleep(5000);
    }catch(CamelException ce) {
      throw new BadArgumentException(messages.getMessage(Messages.BATCH_ERROR_UPLOAD_TO_FTP_FAILD, ce.getMessage()));
    } catch (Exception e) {
      throw new BadArgumentException(messages.getMessage(Messages.BATCH_ERROR_UPLOAD_TO_FTP_FAILD, e.getMessage()));
    } finally {
      camelContext.stop();
    }
    return true;
  }

Hier würde ich gerne bei z.B. einen Connection Timeout ein false zurück geben. Ich finde aber einfach ums verrecken nicht heraus, wie ich auf einen Fehler prüfen kann :noe: Google & SuFu hat mir leider auch nicht weiter geholfen ;(

Im Voraus vielen Dank für eure Hilfe.

Grüße,
Sn4k3
 
Zuletzt bearbeitet:
Nach Tage langer Googlerei habe ich doch noch eine Lösung gefunden.

Falls es jemanden interessiert:

Java:
 onException(Exception.class).handled(true)
    .process(new Processor() {
      @Override
      public void process(Exchange exchange) throws Exception {
            ftpException = exchange.getProperty(Exchange.EXCEPTION_CAUGHT, Exception.class);                        
      }
    }); 
     from("file:" + BatchUtils.getDocumentStoragePath(joe) + messageRefId).to(prepareFtpServer());

Es gibt noch einen Getter für die ftpException Variabel. Von Außen kann ich dann über diesen Getter auf die Exception zugreifen.

Gruß,
Sn4k3
 

Zurück
Oben