Précédent   Forum du club des développeurs et IT Pro > Java > Serveurs, conteneurs, et Java EE > Modularisation (OSGi, SCA...)
Modularisation (OSGi, SCA...) Forum d'entraide sur les architectures modulaires à base de composants et services (OSGi, SCA...). Avant de poster -> Les cours OSGi
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 07/01/2013, 11h33   #1
menakikou
Candidat au titre de Membre du Club
 
Inscription : 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
menakikou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/01/2013, 13h40   #2
kinaesthesia
Membre éclairé
 
Homme Anthony
Java Analyst Developer
Inscription : mai 2011
Messages : 128
Détails du profil
Informations personnelles :
Nom : Homme Anthony
Âge : 23
Localisation : Belgique

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

Informations forums :
Inscription : mai 2011
Messages : 128
Points : 344
Points : 344
Envoyer un message via Skype™ à kinaesthesia
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 !
kinaesthesia est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/01/2013, 14h17   #3
menakikou
Candidat au titre de Membre du Club
 
Inscription : 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
menakikou est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 16h52.


 
 
 
 
Partenaires

Hébergement Web