Przeglądasz dokumentację Apigee Edge.
Otwórz dokumentację Apigee X. Informacje
SourceMessageNotAvailable
Kod błędu
steps.extractvariables.SourceMessageNotAvailable
Treść odpowiedzi o błędzie
{ "fault": { "faultstring": "[variable_name] message is not available for ExtractVariable: [policy_name]", "detail": { "errorcode": "steps.extractvariables.SourceMessageNotAvailable" } } }
Przyczyna
Ten błąd występuje, jeśli zmienna message określona w elemencie <Source>
w zasadach wyodrębniania zmiennych ma wartość:
- poza zakresem (niedostępne w konkretnym procesie, w którym jest wykonywana zasada) lub
- Nie można rozwiązać (nie określono)
Ten błąd występuje np. wtedy, gdy zasada Wyodrębnianie zmiennych jest wykonywana w przepływie żądania, ale element <Source>
jest ustawiony na zmienną response
lub error
, której nie ma w przepływie żądania.
Diagnostyka
Zidentyfikuj zasadę Wyodrębnianie zmiennych, w której wystąpił błąd, i nazwę zmiennej, która jest niedostępna. Oba te elementy znajdziesz w elemencie
faultstring
odpowiedzi o błędzie. Na przykład w tym ciągu błędów nazwa zasady toExtractVariables-1
, a zmienna toresponse
:"faultstring": "response message is not available for ExtractVariable: ExtractVariables-1"
W pliku XML zasad dotyczących wyodrębniania zmiennych sprawdź, czy nazwa zestawu zmiennych w elemencie jest zgodna z nazwą zmiennej określoną w ciągu błędu (krok 1 powyżej). Na przykład ta zasada Wyodrębnianie zmiennych określa w elemencie zmienną o nazwie
response
, która odpowiada zawartości ciągu błędu:<ExtractVariables name="ExtractVariables-1"> <Source>response</Source> <URIPath> <Pattern ignoreCase="true">/a/{pathSeg}</Pattern> </URIPath> <VariablePrefix>urirequest</VariablePrefix> </ExtractVariables>
Ustal, czy zmienna używana w elemencie
<Source>
jest zdefiniowana i dostępna w procesie, w którym wykonywana jest zasada Wyodrębnianie zmiennych.Jeśli zmienna to:
- poza zakresem (niedostępne w konkretnym procesie, w którym jest wykonywana zasada) lub
- Nie można rozwiązać (nie określono)
to jest jego przyczyna.
Załóżmy, że powyższa zasada Wyodrębnianie zmiennych jest wykonywana w procesie żądania. Pamiętaj, że zmienna
response
jest używana w elemencie<Source>
zasady Wyodrębnianie zmiennych. Zmiennaresponse
jest dostępna tylko w procesie odpowiedzi.W przepływie żądania nie ma zmiennej
response
, więc pojawia się kod błędu:steps.extractvariables.SourceMessageNotAvailable
.
Rozdzielczość
Upewnij się, że zmienna ustawiona w elemencie <Source>
w nieudanej zasadzie Wyodrębnianie zmiennych jest zdefiniowana i istnieje w ramach procesu jej uruchamiania.
Aby poprawić pokazaną powyżej przykładową zasadę Wyodrębnianie zmiennych, możesz zmodyfikować element <Source>
tak, aby używał zmiennej request
w takiej postaci, w jakiej występuje w procesie żądania:
<ExtractVariables name="ExtractVariables-1">
<Source>request</Source>
<URIPath>
<Pattern ignoreCase="true">/a/{pathSeg}</Pattern>
</URIPath>
<VariablePrefix>urirequest</VariablePrefix>
</ExtractVariables>
SetVariableFailed
Kod błędu
steps.extractvariables.SetVariableFailed
Treść odpowiedzi o błędzie
{ "fault": { "faultstring": "Failed to set variable [variable_name] value [variable_value] from ExtractVariables: [policy_name]", "detail": { "errorcode": "steps.extractvariables.SetVariableFailed" } } }
Przyczyna
Ten błąd występuje, jeśli za pomocą zasady Wyodrębnianie zmiennych nie można ustawić wartości jako zmiennej. Dzieje się tak zazwyczaj wtedy, gdy próbujesz przypisać wartości do wielu zmiennych, których nazwy zaczynają się takimi samymi słowami w zagnieżdżonym formacie z oddzielnymi kropkami.
Załóżmy np., że tworzysz lub przypisujesz wartość do zmiennej var.color
. W tym przypadku węzeł color
jest przydzielony jako węzeł obiektu. Próba przypisania wartości do innej zmiennej var.color.next
zakończy się niepowodzeniem, ponieważ color
jest już przydzielony i nie można przypisać do niej innej zmiennej.
Diagnostyka
Zidentyfikuj zasadę Wyodrębnianie zmiennych, w której wystąpił błąd, i nazwę zmiennej, dla której nie można ustawić wartości. Oba te elementy znajdziesz w elemencie
faultstring
odpowiedzi o błędzie. Na przykład w tym ciągu znaków błędu nazwa zasady toExtractColors
, a zmienna tovar.color.next
:"faultstring": "Failed to set variable var.color.next value red from ExtractVariables: ExtractColors"
W pliku XML zasad wyodrębniania zmiennych sprawdź, czy nazwa zmiennej jest zgodna z nazwą zmiennej określoną w ciągu błędu (krok 1 powyżej). Na przykład ta zasada próbuje przypisać wartość z parametru zapytania żądania do zmiennej o nazwie
var.color.next
(wartości wyświetlanej jako ciąg błędu):<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ExtractVariables name="ExtractColors"> <DisplayName>ExtractColors</DisplayName> <Source>request</Source> <QueryParam name="color"> <Pattern ignoreCase="true">{color}</Pattern> </QueryParam> <QueryParam name="nextcolor"> <Pattern ignoreCase="true">{color.next}</Pattern> </QueryParam> <VariablePrefix>var</VariablePrefix> </ExtractVariables>
Sprawdź wszystkie nazwy zmiennych używane w nieudanej zasadzie Wyodrębnianie zmiennych. Jeśli przypiszesz wartość do innej zmiennej, której nazwa zaczyna się od tej samej nazwy co nazwa zmiennej zidentyfikowana w ciągu błędu (krok 1 powyżej), to jest przyczyną błędu.
W przykładowej zasadzie Wyodrębnianie zmiennych pokazanej powyżej zwróć uwagę na te nieprawidłowości:
- Wartość parametru zapytania o nazwie
color
jest najpierw przypisywana do zmiennejvar.color
(uwaga:var
to prefiks wszystkich zmiennych ustawionych w elemencie<VariablePrefix>
). - W następnym przypisaniu wartość parametru zapytania
nextcolor
zostanie przypisana do innej zmiennejvar.color.next
. - Ponieważ element
var.color
jest już przydzielony, zasada Wyodrębnianie zmiennych nie może przydzielić kolejnej zagnieżdżonej zmiennejvar.color.next
. Pojawia się więc kod błędu:steps.extractvariables.SetVariableFailed
- Wartość parametru zapytania o nazwie
Rozdzielczość
Upewnij się, że nie masz wielu nazw zmiennych, których nazwy zaczynają się od tych samych słów i są zagnieżdżone w formacie rozdzielanym kropkami.
Aby poprawić pokazaną powyżej zasadę Wyodrębnianie zmiennych, możesz zmienić nazwę zmiennej
var.color.next
, tak aby używała nazwy zmiennejvar.nextcolor.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ExtractVariables name="ExtractColors"> <DisplayName>ExtractColors</DisplayName> <Source>request</Source> <QueryParam name="color"> <Pattern ignoreCase="true">{color}</Pattern> </QueryParam> <QueryParam name="nextcolor"> <Pattern ignoreCase="true">{nextcolor}</Pattern> </QueryParam> <VariablePrefix>var</VariablePrefix> </ExtractVariables>
Więcej informacji
Więcej informacji znajdziesz w tym poście na karcie Społeczność.
InvalidJSONPath
Kod błędu
steps.extractvariables.InvalidJSONPath
Treść odpowiedzi o błędzie
{ "fault": { "faultstring": "Invalid JSON path [path_name] in policy [policy_name].", "detail": { "errorcode": "steps.extractvariables.InvalidJSONPath" } } }
Przyczyna
Ten błąd występuje, jeśli w elemencie <JSONPath>
zasady Wyodrębnianie zmiennych użyto nieprawidłowej ścieżki JSON. Ten błąd występuje na przykład, jeśli ładunek JSON nie zawiera obiektu Name
, ale jako ścieżkę w zasadzie Wyodrębnianie zmiennych podasz Name
.
Diagnostyka
Zidentyfikuj zasadę Wyodrębnianie zmiennych, w której wystąpił błąd, i nieprawidłową ścieżkę JSON. Oba te elementy znajdziesz w elemencie
faultstring
odpowiedzi o błędzie. Na przykład w tym ciągu błędu nazwa zasady toExtractJSONVariables
, a nieprawidłowa ścieżka JSON to$.Name
:"faultstring": "Invalid JSON path $.Name in policy ExtractJSONVariables."
W pliku XML zasad wyodrębniania zmiennych sprawdź, czy ścieżka JSON ustawiona w elemencie
<JSONPath>
jest zgodna ze ścieżką określoną w ciągu błędu (krok 1 powyżej). Na przykład ta zasada Wyodrębnianie zmiennych określa ścieżkę JSON$.Name
, która jest zgodna z treścią ciągu błędu:<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ExtractVariables name="ExtractJSONVariables"> <Source>response</Source> <JSONPayload> <Variable name="name" type="string"> <JSONPath>$.Name</JSONPath> </Variable> </JSONPayload> <VariablePrefix>employee</VariablePrefix> </ExtractVariables>
Sprawdź element
<Source>
i określ, z którego ładunku JSON próbujesz wyodrębnić zmienną. Jeśli np. element<Source>
ma wartośćrequest
, zasada wyodrębnia ładunek JSON z obiektu żądania. Jeśli ma wartośćresponse
, jest to obiekt odpowiedzi.W przykładowej zasadzie Wyodrębnianie zmiennych widocznej powyżej element
<Source>
ma wartośćresponse
, więc zmienne są wyodrębniane z ładunku JSON odpowiedzi.<Source>response</Source>
Sprawdź odpowiedni ładunek JSON (określony w kroku 3) i sprawdź, czy zawiera on obiekt określony w elemencie
<JSONPath>
. Jeśli ładunek JSON nie ma tego obiektu, to jest przyczyną błędu.Załóżmy, że próbujesz wyodrębnić zmienne z następującego ładunku odpowiedzi JSON:
{ "firstName":"John", "lastName":"Doe", "city":"San Jose", "state":"CA" }
Ładunek odpowiedzi JSON nie zawiera obiektu
Name
, więc zasada Wyodrębnianie zmiennych nie działa z błędem, który pojawia się w postaci kodu błędu:steps.extractvariables.InvalidJSONPath
.
Rozdzielczość
Sprawdź, czy w elemencie
<JSONPath>
zasady Wyodrębnianie zmiennych określone są tylko obiekty należące do ładunku JSON, z którego wyodrębniane są zmienne.Aby poprawić przykładową zasadę Wyodrębnianie zmiennych widocznej powyżej, możesz zmodyfikować element
<JSONPath>
tak, aby określić jeden z obiektów dostępnych w przykładowym ładunku odpowiedzi JSON (np. obiektyfirstName
ilastName
są prawidłowe):<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ExtractVariables name="ExtractJSONVariables"> <Source>response</Source> <JSONPayload> <Variable name="name" type="string"> <JSONPath>$.firstName</JSONPath> </Variable> </JSONPayload> <VariablePrefix>employee</VariablePrefix> </ExtractVariables>
ExecutionFailed
Kod błędu
steps.extractvariables.ExecutionFailed
Treść odpowiedzi o błędzie
{ "fault": { "faultstring": "Failed to execute the ExtractVariables: [policy_name]", "detail": { "errorcode": "steps.extractvariables.ExecutionFailed" } } }
Możliwe przyczyny
Możliwe przyczyny tego błędu:
Przyczyna | Opis |
Brak ładunku wejściowego | Ładunek wejściowy (JSON, XML) jest pusty. |
Nieprawidłowe lub źle sformułowane dane wejściowe | Dane wejściowe (JSON, XML itp.) przekazane do zasady są nieprawidłowe lub źle sformułowane. |
Przyczyna: brak ładunku wejściowego
Ten błąd występuje, jeśli zasada Wyodrębnianie zmiennych ma wyodrębniać zmienne z ładunku JSON lub XML, ale treść (ładunek) zmiennej określonej w elemencie <Source>
jest pusta.
Jeśli na przykład element <Source>
w zasadzie Wyodrębnianie zmiennych jest ustawiony jako request
lub response
i ma zawierać ładunek JSON lub XML, ale jest on pusty, wystąpi błąd.
Diagnostyka
Zidentyfikuj zasadę Wyodrębnianie zmiennych, w której wystąpił błąd. Te informacje możesz znaleźć w elemencie typu „faultstring” odpowiedzi błędu. Na przykład w tym ciągu błędów nazwa zasady to
ExtractJSONVariables
:"faultstring": "Failed to execute the ExtractVariables: ExtractXMLVariables"
Sprawdź element
<Source>
w pliku XML narzędzia Wyodrębnianie zmiennych z błędem i określ typ danych wejściowych, z których są wyodrębniane zmienne. Na przykład ta zasada Wyodrębnianie zmiennych zawiera element<Source>
ustawiony naresponse
i pobiera zmienne z ładunku XML:<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ExtractVariables name="ExtractXMLVariables" async="false" continueOnError="false" enabled="true"> <XMLPayload> <Namespaces/> <Variable name="City" type="string"> <XPath>/city</XPath> </Variable> </XMLPayload> <Source clearPayload="false">response</Source> </ExtractVariables>
Sprawdź, czy dane wejściowe analizowane przez zasadę Wyodrębnianie zmiennych są puste. Jeśli dane wejściowe są puste, jest to przyczyna błędu.
W przykładowej zasadzie Wyodrębnianie zmiennych widocznej powyżej ładunek odpowiedzi (tj.treść odpowiedzi) wysłany przez serwer backendu był pusty.
Ładunek odpowiedzi XML jest pusty, więc pojawia się kod błędu:
steps.extractvariables.ExecutionFailed
Ten błąd może też wystąpić, jeśli element
<Source>
ma wartośćrequest
, ale w żądaniu serwera proxy interfejsu API nie są przekazywane żadne ładunki. Na przykład:curl -v "http://<org>-<env>.apigee.net/v1/testevexecutionfailed" -H "Content-Type: application/xml"
Zasada Wyodrębnianie zmiennych przeprowadza wyodrębnianie kodu XML tylko wtedy, gdy nagłówek
Content-Type
wiadomości toapplication/xml
,text/xml
lubapplication/*+xml
. Jeśli chcesz, aby zasada Wyodrębnianie zmiennych analizuje ładunek żądania XML, musisz przekazać nagłówek Content-Type jakoapplication/xml
,text/xml
lubapplication/*+xml
.
Rozdzielczość
Sprawdź, czy dane wejściowe przekazywane do zasady Wyodrębnianie zmiennych są prawidłowe i nie są puste.
Aby rozwiązać problem za pomocą przykładowej zasady wyodrębniania zmiennych widocznej powyżej, przekaż prawidłowy ładunek XML. Na przykład:
Utwórz plik o nazwie
city.xml
z tą zawartością:<city>Bengaluru</city> <area>Sanjaynagar</area>
Wywołaj interfejs API za pomocą polecenia cURL w ten sposób:
curl -v "http://<org>-<env>.apigee.net/v1/testevexecutionfailed" -H "Content-Type: application/xml" -X POST -d @city.xml
Przyczyna: nieprawidłowe lub błędne dane wejściowe
Ten błąd pojawia się, jeśli zasada Wyodrębnianie zmiennych analizuje dane wejściowe, które są nieprawidłowe lub źle sformułowane.
Ten błąd wystąpi na przykład w przypadku podania poniższego nieprawidłowego kodu JSON jako danych wejściowych w zasadzie Wyodrębnianie zmiennych.
[
"args": ["name" : "amar" ]
]
Diagnostyka
Zidentyfikuj zasadę Wyodrębnianie zmiennych, w której wystąpił błąd. Te informacje znajdziesz w elemencie
faultstring
odpowiedzi o błędzie. Na przykład w tagufaultstring
nazwa zasady toExtractJSONVariables
:"faultstring": "Failed to execute the ExtractVariables: ExtractJSONVariables"
Sprawdź element
<Source>
w pliku XML narzędzia Wyodrębnianie zmiennych z błędem i określ typ danych wejściowych, z których są wyodrębniane zmienne. Na przykład ta zasada Wyodrębnianie zmiennych ma element<Source>
ustawiony narequest
i wyodrębnia zmienne z ładunku JSON:<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ExtractVariables name="ExtractJSONVariables" async="false" continueOnError="false" enabled="true"> <JSONPayload> <Variable name="Name" type="string"> <JSONPath>$.args.name</JSONPath> </Variable> </JSONPayload> <Source clearPayload="false">request</Source> </ExtractVariables>
Sprawdź, czy dane wejściowe analizowane przez zasadę Wyodrębnianie zmiennych są prawidłowe. Jeśli dane wejściowe są nieprawidłowe lub błędnie sformatowane, to właśnie jest przyczyną błędu.
W przykładowej zasadzie Wyodrębnianie zmiennych wyświetlanej powyżej do zasady Wyodrębnianie zmiennych został przekazany poniższy nieprawidłowy plik JSON
[ "args": ["name" : "amar" ] ]
Oto przykładowe wywołanie interfejsu API, które pokazuje sposób przekazania żądania:
curl -v "http://<org>-<env>.apigee.net/v1/testevexecutionfailed" -H "Content-Type: application/json" -X POST -d '[ "args" : ["name" : "amar" ]]'
Ładunek JSON przekazany do interfejsu API jest nieprawidłowy, ponieważ zawiera tablicę w nawiasach kwadratowych (
[ ]
), więc pojawia się kod błędu:steps.extractvariables.ExecutionFailed
Ten błąd może też wystąpić, jeśli element
<Source>
ma wartośćresponse
, ale ładunek odpowiedzi JSON jest nieprawidłowy lub błędnie sformatowany.
Rozdzielczość
Sprawdź, czy dane wejściowe przekazywane do zasady Wyodrębnianie zmiennych są prawidłowe i nie są sformatowane.
Aby rozwiązać problem z przykładową zasadą wyodrębniania zmiennych omówioną powyżej, przekaż prawidłowe żądanie ładunku JSON w następujący sposób:
{
"args":{
"name":"amar"
}
}
UnableToCast
Kod błędu
steps.extractvariables.UnableToCast
Treść odpowiedzi o błędzie
{ "fault": { "faultstring": "Unable to cast value [value] as [type].", "detail": { "errorcode": "steps.extractvariables.UnableToCast" } } }
Przyczyna
Ten błąd występuje, jeśli za pomocą zasady Wyodrębnianie zmiennych nie udało się rzutować wyodrębnionej wartości na zmienną. Zwykle dzieje się tak, gdy próbujesz ustawić wartość jednego typu danych na zmienną innego typu.
Ten błąd wystąpi na przykład, jeśli zasada Wyodrębnianie zmiennej próbuje ustawić wartość, która została wyodrębniona ze zmiennej typu Ciąg znaków, do zmiennej liczby całkowitej.
Diagnostyka
Określ typ danych zmiennej, do której zasada Wyodrębnianie zmiennych próbuje rzutować elementy, które kończą się niepowodzeniem. Informacje te można znaleźć w elemencie
faultstring
odpowiedzi o błędzie. Na przykład w tym kodziefaultstring
typ obiektu toBOOLEAN
:"faultstring":"Unable to cast value 36.231 as BOOLEAN."
Zidentyfikuj zasadę Wyodrębnianie zmiennych, w której próbujesz ustawić wartość na zmienną typu określonego w kroku 1.
Na przykład ta zasada Wyodrębnianie zmiennych wyodrębnia wartość ze ścieżki JSONPath
$.latitude
do zmiennej typuboolean
, która odpowiada zawartości ciągu błędu:<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ExtractVariables name="EV-XML-Name" async="false" continueOnError="false" enabled="true"> <JSONPayload> <Variable name="latitude" type="boolean"> <JSONPath>$.latitude</JSONPath> </Variable> </JSONPayload> <Source clearPayload="false">response</Source> </ExtractVariables>
Sprawdź typ danych wyodrębnionej wartości. Dane mogą mieć postać nagłówków, ścieżek URI, ładunków JSON/XML, parametrów formularzy i parametrów zapytania.
Sprawdź, czy typ danych określony w kroku 3 i typ danych zmiennej, do której są przypisywane (określone w kroku 2) są takie same.
Jeśli typ danych zmiennej źródłowej i docelowej nie jest taki sam, jest to przyczyna błędu.
W przykładowej zasadzie Wyodrębnianie zmiennych pokazanej powyżej ładunek żądania JSON wygląda tak:
{ "latitude":36.2312 }
Typ danych wartości wyodrębnionej z zastosowania
<JSONPath>
(‘$.latitude’
) to liczba całkowita, która jest przypisywana do zmiennej typu logicznego.Ponieważ typ danych wyodrębnionej wartości i typ danych zmiennej, do której jest przypisywana wartość, są różne, pojawia się kod błędu:
steps.extractvariables.UnableToCast
.
Rozdzielczość
Upewnij się, że typ danych wartości wyodrębnionej i zmienna, do której są przypisywane treści, są tego samego typu.
Aby poprawić przykładową zasadę Wyodrębnianie zmiennych, musisz zmienić typ zmiennej na Liczba całkowita:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ExtractVariables name="EV-XML-Name" async="false" continueOnError="false" enabled="true">
<JSONPayload>
<Variable name="latitude" type="integer">
<JSONPath>$.latitude</JSONPath>
</Variable>
</JSONPayload>
<Source clearPayload="false">response</Source>
</ExtractVariables>
JsonPathParsingFailure
Kod błędu
steps.extractvariables.JsonPathParsingFailure
Treść odpowiedzi o błędzie
{ "fault": { "faultstring": "ExtractVariables [policy_name]: Json path parsing failed for flow variables [variable_name]", "detail": { "errorcode": "steps.extractvariables.JsonPathParsingFailure" } } }
Przyczyna
Ten błąd występuje, gdy zasada Wyodrębnianie zmiennych nie może przeanalizować ścieżki JSON i wyodrębnić danych ze zmiennej przepływu określonej w elemencie <Source>
. Zwykle dzieje się tak, gdy zmiennej przepływu określonej w elemencie <Source>
nie ma w bieżącym przepływie.
Ten błąd występuje np. wtedy, gdy zasada Wyodrębnianie zmiennych jest wykonywana w przepływie odpowiedzi i oczekuje na przeanalizowanie ścieżki JSON, ale element <Source>
określa zmienną przepływu request.content
, której nie ma w przepływie odpowiedzi.
Diagnostyka
Zidentyfikuj zasadę Wyodrębnianie zmiennych, w której wystąpił błąd, i nazwę zmiennej przepływu, do której nie udało się wyodrębnić danych. Oba te elementy możesz znaleźć w elemencie ciągu błędów odpowiedzi błędu. Na przykład w tym ciągu błędów nazwa zasady to
ExtractVariables-1
, a zmienna torequest.content
:"faultstring": "ExtractVariables ExtractJSONVariabes: Json path parsing failed for flow variables request.content"
W pliku XML zasad wyodrębniania zmiennych sprawdź, czy nazwa zestawu zmiennych w elemencie
<Source>
jest zgodna z nazwą zmiennej określoną w ciągu błędu (krok 1 powyżej). Na przykład ta zasada Wyodrębnianie zmiennych określa zmienną o nazwierequest.content
, która odpowiada zawartości ciągu błędów:<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ExtractVariables name="ExtractJSONVariables" async="false" continueOnError="false" enabled="true"> <JSONPayload> <Variable name="Name" type="string"> <JSONPath>$.args.name</JSONPath> </Variable> </JSONPayload> <Source clearPayload="false">request.content</Source> </ExtractVariables>
Sprawdź, czy zmienna przepływu używana w elemencie
<Source>
jest zdefiniowana i dostępna w procesie, w którym wykonywana jest zasada Wyodrębnianie zmiennych.Jeśli zmienna to:
- poza zakresem (niedostępne w konkretnym procesie, w którym jest wykonywana zasada) lub
- Nie można rozwiązać (nie określono)
to jest jego przyczyna.
Załóżmy na przykład, że wskazana powyżej zasada ExtractVariables powinna być uruchamiana w procesie odpowiedzi. Pamiętaj, że zmienna przepływu
request.content
jest używana w elemencie<Source>
zasady Wyodrębnianie zmiennych. Zmienna przepływurequest.content
jest dostępna tylko w przepływie żądania.W przepływie żądania nie ma zmiennej
response
, więc pojawia się kod błędu:steps.extractvariables.JsonPathParsingFailure
.
Rozdzielczość
Upewnij się, że zmienna przepływu używana w elemencie <Source>
zasady Wyodrębnianie zmiennych jest dostępna w ramach procesu, w którym stosowana jest zasada Wyodrębnianie zmiennych.
Załóżmy np., że w przepływie odpowiedzi istnieje zmienna o nazwie response.content
, która zawiera plik JSON, który chcesz wyodrębnić. Aby poprawić powyższą zasadę Wyodrębnianie zmiennych, możesz zmodyfikować element <Source>
w ten sposób:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ExtractVariables name="ExtractJSONVariables" async="false" continueOnError="false" enabled="true">
<JSONPayload>
<Variable name="Name" type="string">
<JSONPath>$.args.name</JSONPath>
</Variable>
</JSONPayload>
<Source clearPayload="false">response.content</Source>
</ExtractVariables>