2016-09-11 2 views
0

senden Ich habe versucht, eine Validierung mit Fehler in es wie folgt deshalb habe ich DROPEklipse entfernt nach dem Drop-Vermittler

<on-fail> 
       <makefault version="soap11"> 
        <code xmlns:tns="http://www.w3.org/2003/05/soap-envelope" value="tns:Receiver"/> 
        <reason value="Invalid Request!!!"/> 
        <role/> 
       </makefault> 
       <log level="full"/> 
       <property name="RESPONSE" value="true"/> 
       <header name="To" action="remove"/> 
       <send/> 
       <drop/> 
      </on-fail> 

etwas zu implementieren, nachdem SEND welche Funktion gerade wie ich (ohne DROP wollte ich Nachricht nur recived FEHLER aber der Prozess stoppte nicht, was dazu führte, dass einige Endpunkte mit falschen Eingaben aufgerufen wurden)

Dann musste ich etwas überprüfen und ich öffne die gleiche Sequenz in Eclipse und entdeckte, dass DROP entfernt wurde. Ich habe versucht, DROP zu ziehen und ablegen, aber eine Fehlermeldung, dass der Mediator SEND kann nicht von einem anderen Mediator gefolgt werden.

warum?

Kennen Sie einen besseren Weg, SEND + DROP zu implementieren, so dass es kein Risiko gibt, dass ich das verliere, wenn ich es in Eclipse öffne?

thx viel!

+0

Können Sie hinzufügen, was Sie nach passieren müssen den Fehler erhalten? Es ist schwierig, eine konkrete Antwort auf Ihre Frage zu geben. – ophychius

Antwort

0

Sie müssen nach einem Sendevorgang keinen Drop-Mediator hinzufügen. Es ist ungültig, Mediatoren nach dem Sendmediator hinzuzufügen, da der Nachrichtenkontext nach dem Senden gelöscht wird. Möglicherweise können Sie anstelle eines SEND Mediators versuchen, einen Respond Mediator hinzuzufügen. Dein Anwendungsfall ist nicht so klar.

0

in Eclipse Developer Studio können wir geben jeden Vermittler nicht Mediator/RESPOND Mediator/DROP Vermittler nach SEND. Dies liegt daran, dass der Mediationsfluss idealerweise nach diesen Mediatoren nicht fortgesetzt werden sollte.

Für Ihren Fall können Sie CALL-Mediator versuchen [1] statt SEND gefolgt Vermittler von Mediator DROP wie folgt

<on-fail> 
      <makefault version="soap11"> 
       <code xmlns:tns="http://www.w3.org/2003/05/soap-envelope" value="tns:Receiver"/> 
       <reason value="Invalid Request!!!"/> 
       <role/> 
      </makefault> 
      <log level="full"/> 
      <property name="RESPONSE" value="true"/> 
      <header name="To" action="remove"/> 
      <call/> 
      <drop/> 
    </on-fail> 
  1. https://docs.wso2.com/display/ESB490/Call+Mediator