2015-07-28 1 views
0

Je suis nouveau sur OSB. 1) J'ai un Service S1 avec deux méthodes dites: AsyncQueryAccount, SyncQueryAccount. AsyncQueryAccount a les paramètres d'entrée id, name. SyncQueryAccount a des paramètres d'entrée id, name, addToQueue.OSB operation1 in Service1 pour appeler aussi operation2 dans Service2

2) J'ai un service S2 avec une méthode dire: AsyncQueryAccount. Cela a des paramètres d'entrée id, name.

Mon objectif est d'appeler S1, S2 à la demande du proxy. Si l'opération est AsyncQueryAccount, elle doit appeler la méthode suivante dans S1, S2. Si l'opération est SyncQueryAccount, elle doit appeler AsyncQueryAccount en supprimant addToQueue dans S2 et SyncQueryAccount dans S1.

Pour y parvenir, j'ai essayé suivante Proxy -> Route à S1 et dans le cadre de la route à S1 -> Ajout d'un service Callout à S2 avec des détails en disant: Si opération $ = 'SyncQueryAccount' ou opération de $ = 'AsyncQueryAccount' puis invoque AsyncQueryAccount dans S2.

Cela fonctionne très bien quand AsyncQueryAccount est appelée, mais échoue lorsque SyncQueryAccount est appelé.

Comment pouvons-nous assurer que lorsque SyncQueryAccount est appelé, alors AsyncQueryAccount est appelé S2 ainsi.

je reçois en disant erreur: Une erreur système est survenue à « RouteNode1 ». Raison: "L'action d'appel de service OSB a reçu une réponse de défaillance SOAP". S'il vous plaît contacter un administrateur système ESB

Répondre

0

Comme je l'ai bien compris votre problème, je pense que le flux devrait être comme ci-dessous

Proxy -> callout S2 -> en cas d'opération $ = 'SyncQueryAccount' CallOut alors un service spécifique SycnQueryAccount (veuillez utiliser Xquery pour la transformation si nécessaire) ou le service spécifique de l'appel AsyncQueryAccount.

S'il vous plaît essayer d'assigner la charge utile de la demande dans différentes variables parce que je pense que votre corps demande une fois que vous se change recevez une réponse du service d'abord.