Salut tout le monde,
Je fais face à un problème qui semble à mon encadrant être éventuellement un bug dans Talend Opens Studio , ou peut-être j'utilise le mauvais composant .
*Je voulais mettre une condition sur le verbe HTTP, si c'est un GET, alors ..., si c'est un POST, alors ...
j'ai donc utilisé un composant cMassegeRouter_1 avec la condition "$ {-tête." + Org.apache.camel.Exchange.HTTP_METHOD + "} == 'GET'" avec trois branches "when" , tout fonctionnait très bien
Après que je mets un autre composant cMessageRouter dans chaque branche "when" , de manière à imprimer un message différent selon le code de réponse HTTP, en utilisant la condition "$ {-tête." + Org.apache.camel.Exchange.HTTP_RESPONSE_CODE + "} == 200»
Maintenant ma route se comporte bizarrement; exemple:
quand je lance une requête DELETE, le test est comme suit:
-La route passe par le client "Get", traverse le cMessageRouter_2, afficher un code "200", puis arrête au lieu de me faire passer par la branche "when2" qui correspond à une demande "supprimer".
*Les if / else imbriquées ne fonctionne pas selon la logique correspondant au graphe.la brache "when2" est appelée uniquement lorsque les deux conditions "when4" et "when5" sont fausses (même si dans mon Client Rest , le verbe http est "Supprimer".
Quand je regardais dans le code, il parait qu'il est un peu en désordre:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
from(uriMap.get("cHttp_3"))
 
				.routeId("Base_cHttp_3")
				.choice()
				.id("cMessageRouter_1")
				.when()
				.simple("${header." + org.apache.camel.Exchange.HTTP_METHOD
						+ "} == 'GET'")
 
				.setHeader("CamelHttpMethod", constant("GET"))
				.to(uriMap.get("cHttp_4"))
 
				.id("cHttp_4")
				.choice()
				.id("cMessageRouter_2")
				.when()
				.simple("${header."
						+ org.apache.camel.Exchange.HTTP_RESPONSE_CODE
						+ "} == 200 ")
				.log(org.apache.camel.LoggingLevel.INFO,
						"chouetteRoute.cLog_1", "good")
 
				.id("cLog_2")
				.when()
				.simple("${header."
						+ org.apache.camel.Exchange.HTTP_RESPONSE_CODE
						+ "} == 200 ")
				.log(org.apache.camel.LoggingLevel.ERROR,
						"chouetteRoute.cLog_1", "eRREUR")
 
				.id("cLog_9")
				.when()
				.simple("${header." + org.apache.camel.Exchange.HTTP_METHOD
						+ "} == 'POST'")
				.log(org.apache.camel.LoggingLevel.ERROR,
						"chouetteRoute.cLog_7",
						"fhjjytyutttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt")
 
				.id("cLog_7")
				.setHeader("CamelHttpMethod", constant("POST"))
				.setHeader("Content-Type", constant("application/json"))
				.to(uriMap.get("cHttp_7"))
 
				.id("cHttp_7")
				.choice()
				.id("cMessageRouter_4")
				.when()
				.simple("${header."
						+ org.apache.camel.Exchange.HTTP_RESPONSE_CODE
						+ "} == 200 ")
				.log(org.apache.camel.LoggingLevel.INFO,
						"chouetteRoute.cLog_1", "good")
 
				.id("cLog_5")
				.when()
				.simple("${header."
						+ org.apache.camel.Exchange.HTTP_RESPONSE_CODE
						+ "} == 404 ")
				.log(org.apache.camel.LoggingLevel.ERROR,
						"chouetteRoute.cLog_1", "eRREUR")
 
				.id("cLog_6")
				.when()
				.simple("${header." + org.apache.camel.Exchange.HTTP_METHOD
						+ "} == 'DELETE'")
 
				.setHeader("CamelHttpMethod", constant("DELETE"))
				.to(uriMap.get("cHttp_1"))
 
				.id("cHttp_1")
				.choice()
				.id("cMessageRouter_3")
				.when()
				.simple("${header."
						+ org.apache.camel.Exchange.HTTP_RESPONSE_CODE
						+ "} == 200 ")
				.log(org.apache.camel.LoggingLevel.INFO,
						"chouetteRoute.cLog_1", "good")
 
				.id("cLog_3")
				.when()
				.simple("${header."
						+ org.apache.camel.Exchange.HTTP_RESPONSE_CODE
						+ "} == 404 ")
				.log(org.apache.camel.LoggingLevel.ERROR,
						"chouetteRoute.cLog_1", "eRREUR")
 
				.id("cLog_4");
	}
je ne sais plus quel«.which(...)" est lié à quel ".choice ()", et je pense que cela est ce qui cause le comportement bizarre de ma route.
Merci pour vos suggestions et votre temps.
Nom : rest Client.png
Affichages : 504
Taille : 53,3 KoNom : Route1.png
Affichages : 499
Taille : 52,8 KoNom : Route2.png
Affichages : 551
Taille : 72,3 Ko