2016-08-11 1 views
0

Ich rufe einen HTTP-Endpunkt auf und erhalte die Antwort in eine Sequenz. Die Antwort wird im seq_sla_resp protokolliert.WSO2 ESB-Zugriffskontexteigenschaft in der Antwortsequenz eines HTTP-Endpunkts

Innerhalb dieser Antwortreihenfolge kann ich keine Eigenschaft abrufen, die ich zuvor während des Aufrufs (im Hauptproxy) festgelegt habe.

<property expression="//m1:sla_row/m1:tran_id/text()" 
          name="tran_id" scope="default" type="STRING" 
          xmlns:m1="http://ws.wso2.org/dataservice" /> 

Wenn ich versuche, die Eigenschaft in der seq_sla_resp loggt endet es in der folgenden Fehlermeldung bis

<log> 
    <property expression="$tran_id" name="tran_id" xmlns:m0="http://ws.wso2.org/dataservice"/> 
</log> 

Es folgt der Fehler.

SynapseXPath Evaluation of the XPath expression $tran_id resulted in an error 
org.jaxen.UnresolvableException: Variable tran_id 

Wie kann ich den Kontextwert in der Antwortsequenz erhalten.

In der Dokumentation heißt es, der Standardbereich habe die größte Lebensdauer für die Eigenschaft.

Jede Hilfe wird sehr geschätzt.

Antwort

1

Ich denke, Sie würden feststellen, dass Ihr Ausdruck auch nicht in der InSequence funktionieren würde. Sie sollten entweder expression="$ctx:tran_id" oder expression="get-property('tran_id')"

+0

Mein Fehler verwenden können, sind Sie richtig, Vielen Dank für Ihre Zeit. – Yasothar

1

verwenden. Bitte beachten Sie, dass WSO2 die Verwendung von $ ctx anstelle der get-Eigenschaft empfiehlt, wenn der Bereich standardmäßig ist. Die Methoden "get-property" suchen in der Registrierung, wenn der Wert im Nachrichtenkontext nicht verfügbar ist. Daher beeinflusst es die Leistung.

In Ihrem Fall Sie

<property expression="$ctx:tran_id" name="tran_id" scope="default" xmlns:m0="http://ws.wso2.org/dataservice"/> 

Dank

Kranthi
+0

Vielen Dank für den Punkt. geschätzt. Yasothar – Yasothar

Verwandte Themen