Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 3 sur 3
  1. #1
    Candidat au titre de Membre du Club
    Inscrit en
    septembre 2008
    Messages
    88
    Détails du profil
    Informations forums :
    Inscription : septembre 2008
    Messages : 88
    Points : 14
    Points
    14

    Par défaut Apache Camel OnExeption

    Bonjour,

    j'ai différentes routes en Camel, je voudrais que lorsque une exception apparaît le programme puisse router vers une route erreur juste pour afficher l exception.

    J'ai mis au début de mon programme (En DSL).
    Code java :
    onException(Exception.class).to(endpoint);

    Que dois je mettre dans ce endpoint ?

    auriez vous une idée ? ou des exemples pour la gestion des exeptions ?!!

    Merci d'avance

  2. #2
    Membre confirmé
    Homme Profil pro Anthony
    Java Analyst Developer
    Inscrit en
    mai 2011
    Messages
    129
    Détails du profil
    Informations personnelles :
    Nom : Homme Anthony
    Âge : 24
    Localisation : Belgique

    Informations professionnelles :
    Activité : Java Analyst Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : mai 2011
    Messages : 129
    Points : 272
    Points
    272

    Par défaut

    Tu peux faire ceci :

    Code :
    onException(Exception.class).log(LoggingLevel.ERROR, "Erreur message")
    Tu as différent constructeur pour log (3 si mes souvenir sont bon ^^ ).

    Maintenant tu veux aussi rediriger vers un autre endpoint (qui peut être une route si tu veux) et dans cet endpoint mettre le log.
    Kinaesthetic project

    • Une réponse pertinente ? Alors le bouton pouce vert +1 indique votre accord avec la solution proposée.

    • Une discussion est terminée ? Alors le bouton est votre ami !

  3. #3
    Candidat au titre de Membre du Club
    Inscrit en
    septembre 2008
    Messages
    88
    Détails du profil
    Informations forums :
    Inscription : septembre 2008
    Messages : 88
    Points : 14
    Points
    14

    Par défaut Apache Camel OnExeption

    j'ai ajouté un BeanErreur ,

    Code java :
    onException(Exception.class).process(new MyFunctionFailureHandler()).stop();

    Voici la définition de MyFunctionFailureHandler.
    Code java :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    public class MyFunctionFailureHandler  implements Processor {
     
    	@Override
    	public void process(Exchange exchange) throws Exception {
    		// TODO Auto-generated method stub
    		 // the caused by exception is stored in a property on the exchange
            Throwable caused = exchange.getProperty(Exchange.EXCEPTION_CAUGHT, Throwable.class);
            // here you can do what you want, but Camel regard this exception as handled, and
            // this processor as a failurehandler, so it wont do redeliveries. So this is the
            // end of this route. But if we want to route it somewhere we can just get a
            // producer template and send it.
     
            // send it to our mock endpoint
            exchange.getContext().createProducerTemplate().send("mock:myerror", exchange);
    	}
     
    }

    j'ai crée une exeption de type 0/0 NumberExeption mais rien ne se passe

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •