Rozwiązywanie problemów z wyodrębnianiem zmiennych w środowisku wykonawczym

Przeglądasz dokumentację Apigee Edge.
Przejdź do Dokumentacja Apigee X.
informacje.

SourceMessageNotAvailable

Kod błędu

steps.extractvariables.SourceMessageNotAvailable

Treść odpowiedzi na błąd

{
  "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 zasadzie Wyodrębnianie zmiennych to:

  • poza zakresem (niedostępne w ramach konkretnego procesu, w którym jest wykonywana zasada) lub
  • nie można rozwiązać (nie jest zdefiniowany)

Na przykład ten błąd występuje, jeśli zasada Wyodrębnij zmienne jest wykonywana w sekcji przepływu żądań, ale element <Source> jest ustawiony na response lub error , która nie występuje w przepływie żądania.

Diagnostyka

  1. Zidentyfikuj zasadę dotyczącą wyodrębniania zmiennych, w której wystąpił błąd, oraz nazwę zmiennej, która jest niedostępna. Oba te elementy znajdziesz w elemencie faultstring odpowiedzi na błąd. Na przykład w następującej informacji o błędzie nazwa zasady to ExtractVariables-1, a jej zmienna to response:

    "faultstring": "response message is not available for ExtractVariable: ExtractVariables-1"

  2. W pliku XML zasady wyodrębniania zmiennych sprawdź, czy nazwa zmiennej ustawiony w elemencie odpowiada nazwie zmiennej określonej w ciągu błędu (krok 1) powyżej). Na przykład ta zasada wyodrębniania zmiennych określa w elemencie zmienną o nazwie response, która jest zgodna z wartością w ciągu błędów:

    <ExtractVariables name="ExtractVariables-1">
        <Source>response</Source>
        <URIPath>
            <Pattern ignoreCase="true">/a/{pathSeg}</Pattern>
        </URIPath>
        <VariablePrefix>urirequest</VariablePrefix>
    </ExtractVariables>
    
  3. Sprawdź, czy zmienna używana w elemencie <Source> jest zdefiniowana i dostępna w przepływie, w którym jest wykonywana zasada wyodrębniania zmiennych.

  4. Jeśli zmienna to:

    • poza zakresem (niedostępne w ramach konkretnego procesu, w którym są realizowane zasady) lub
    • nie może zostać rozwiązana (nie jest zdefiniowana).

    to właśnie jest przyczyną błędu.

    Na przykład załóżmy, że przedstawiona powyżej zasada Wyodrębnianie zmiennych jest wykonywana w ramach procesu żądania. Pamiętaj, że zmienna response jest używana w elemencie <Source> w zasadach dotyczących wyodrębniania zmiennych. Zmienna response jest dostępna tylko w przepływie odpowiedzi.

    Zmienna response nie występuje w przepływie żądania, dlatego otrzymujesz kod błędu: steps.extractvariables.SourceMessageNotAvailable.

Rozdzielczość

Upewnij się, że zmienna ustawiona w elemencie <Source> nieudanych zasad wyodrębniania zmiennych jest zdefiniowana i istnieje w przepływie wykonywania tej zasady.

Aby poprawić przykładową zasadę wyodrębniania zmiennych widoczną powyżej, możesz zmodyfikować element <Source>, tak aby używał zmiennej request w postaci obecnej w przepływie żą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 na błąd

{
    "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 zasada Wyodrębnianie zmiennych nie może ustawić wartości zmiennej. Zwykle dzieje się tak, gdy próbujesz przypisać wartości wielu zmiennym, których nazwy zaczynają się od tych samych słów w zagnieżdżonym formacie rozdzielonym kropkami.

Załóżmy np., że tworzysz lub przypisujesz wartość do zmiennej var.color. W tym przypadku color jest przypisany jako węzeł obiektu. Jeśli spróbujesz przypisać wartość innej zmiennej var.color.next, nie uda Ci się to, ponieważ zmienna color jest już przypisana i nie można jej przypisać innej zmiennej.

Diagnostyka

  1. Wskaż zasadę wyodrębniania zmiennych, w której wystąpił błąd, i wskaż nazwę zmiennej, której wartości nie można ustawić. Oba te elementy znajdziesz w elemencie faultstring odpowiedzi na błąd. Na przykład w tym ciągu błędu nazwa zasady to ExtractColors, a zmienna to var.color.next:

    "faultstring": "Failed to set variable var.color.next value red from ExtractVariables: ExtractColors"

  2. W pliku XML zasady wyodrębniania zmiennych sprawdź, czy nazwa zmiennej pasuje do nazwy zmiennej podanej w ciągu błędu (krok 1 powyżej). Dla: na przykład ta zasada próbuje przypisać wartość z zapytania do zmiennej o nazwie var.color.next (wartości, która pojawia się 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>
    
  3. Sprawdź wszystkie nazwy zmiennych używane w niezgodnym z zasadami wyodrębniania zmiennych. Jeśli masz przypisaną wartość do innej zmiennej, której nazwa zaczyna się tak samo jak nazwa podana w serii błędów (czynność 1 powyżej), to właśnie ona jest przyczyną błędu.

    Zwróć uwagę na widoczną powyżej przykładową zasadę wyodrębniania zmiennych:

    • Wartość parametru zapytania o nazwie color jest najpierw przypisana do zmiennej var.color (uwaga: var jest prefiksem wszystkich zmiennych ustawionym w elemencie <VariablePrefix>)
    • W następnym przypisaniu wartość parametru zapytania nextcolor jest przypisana do innej zmiennej var.color.next.
    • Zmienna var.color została już przydzielona, więc zasada Wyodrębnianie zmiennych nie może przydzielić innej zagnieżdżonej zmiennej var.color.next. Dlatego pojawia się kod błędu: steps.extractvariables.SetVariableFailed

Rozdzielczość

  1. Upewnij się, że nie masz wielu nazw zmiennych, których nazwy zaczynają się od te same słowa zagnieżdżone w formacie oddzielonych kropkami.

    Aby poprawić widoczną powyżej zasadę wyodrębniania zmiennych, możesz zmodyfikować nazwa zmiennej var.color.next, aby użyć nazwy zmiennej var.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 na błąd

{
    "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> używana jest nieprawidłowa ścieżka JSON zasad Wyodrębnianie zmiennych. Jeśli na przykład ładunek JSON nie zawiera obiektu Name, ale jako ścieżkę w sekcji Wyodrębnianie zmiennych podasz Name , wtedy występuje ten błąd.

Diagnostyka

  1. Określ zasadę wyodrębniania zmiennych, w której wystąpił błąd i nieprawidłową Ścieżka JSON. Oba te produkty znajdziesz w elemencie faultstring w odpowiedź na żądanie błędu. Na przykład w tym ciągu błędu nazwa zasady to ExtractJSONVariables, a nieprawidłowa ścieżka JSON to $.Name:

    "faultstring": "Invalid JSON path $.Name in policy ExtractJSONVariables."

  2. W pliku XML zasady „Extract Variables” (wyodrębnianie zmiennych) sprawdź, czy ścieżka JSON ustawiona w elemencie <JSONPath> jest zgodna ze ścieżką wskazaną w ciągu błędów (krok 1 opisany powyżej). Na przykład ta zasada wyodrębniania zmiennych określa ścieżkę JSON $.Name, która jest zgodna z informacjami w 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>
    
  3. Sprawdź element <Source> i ustanów, z którego ładunku JSON chcesz wyodrębnić zmienną. Jeśli na przykład element <Source> ma wartość request, zasada pobiera ładunek JSON z obiektu żądania. Jeśli ma wartość response, jest to obiekt odpowiedzi.

    W wyświetlonej powyżej przykładowej regule wyodrębniania zmiennych element <Source> ma wartość response, więc zmienne są wyodrębniane z ładunku JSON odpowiedzi.

    <Source>response</Source>

  4. Sprawdź odpowiedni ładunek JSON (określony w kroku 3) i sprawdź, czy zawiera obiekt określony w elemencie <JSONPath>. Jeśli ładunek JSON nie ma tego obiektu, to to jest przyczyną błędu.

    Wyobraź sobie na przykład, że próbujesz wyodrębnić zmienne z następujących elementów Ładunek odpowiedzi JSON:

    {
      "firstName":"John",
      "lastName":"Doe",
      "city":"San Jose",
      "state":"CA"
    }
    

    Ponieważ ładunek odpowiedzi JSON nie ma obiektu Name, zasada wyodrębniania zmiennych kończy się niepowodzeniem i pojawi się błąd z kodem: steps.extractvariables.InvalidJSONPath.

Rozdzielczość

  1. Upewnij się, że w elemencie <JSONPath> zasady Wyodrębnianie zmiennych znajdują się tylko obiekty, które są częścią ładunku JSON, z którego są wyodrębniane zmienne.

    Aby poprawić przykładową zasadę wyodrębniania zmiennych widoczną powyżej, możesz zmodyfikować element <JSONPath>, tak aby określał jeden z obiektów dostępnych w ładunku przykładowej odpowiedzi JSON (np. prawidłowe są obiekty firstName i lastName):

    <?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 na błąd

{
    "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 sformatowane dane wejściowe Dane wejściowe (JSON, XML itp.) przekazywane 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 pobierać zmienne z ładunku JSON lub XML, ale zawartość (ł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 powinny zawierać ładunek JSON lub XML, ale ładunek jest pusty, wystąpi błąd.

Diagnostyka

  1. Wskaż zasadę wyodrębniania zmiennych, w której wystąpił błąd. Więcej . Przykład: w tym ciągu znaków nazwa zasady to ExtractJSONVariables:

    "faultstring": "Failed to execute the ExtractVariables: ExtractXMLVariables"

  2. Sprawdź element <Source> w nieprawidłowym kodzie XML wyodrębniania zmiennych i ustal typ danych wejściowych, z których wyodrębniane są zmienne. Na przykład ta zasada Wyodrębnianie zmiennych ma element <Source> ustawiony na response 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>
    
    
  3. Sprawdź, czy dane wejściowe analizowane przez zasadę Wyodrębnianie zmiennych są puste. Jeśli dane wejściowe są puste, to to jest przyczyną błędu.

    W wyświetlonej powyżej przykładowej polityce wyodrębniania zmiennych ładunek odpowiedzi (czyli treść odpowiedzi) wysłany przez serwer zaplecza był pusty.

    Ponieważ ładunek odpowiedzi XML jest pusty, otrzymujesz 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 jest przekazywany żaden ładunek. Na przykład:

    curl -v "http://<org>-<env>.apigee.net/v1/testevexecutionfailed" -H "Content-Type: application/xml"
    

    Zasada Wyodrębnij zmienne przeprowadza wyodrębnianie kodu XML tylko wtedy, gdy Nagłówek Content-Type ma wartość application/xml, text/xml lub application/*+xml. Nagłówek Content-Type musi być przekazywany jako application/xml, text/xml lub application/*+xml, jeśli chcesz, aby zasada Wyodrębnianie zmiennych analizowała kod XML. ładunku żądania.

Rozdzielczość

Sprawdź, czy dane wejściowe przekazywane do zasady Wyodrębnianie zmiennych są prawidłowe i niepuste.

Aby rozwiązać problem z przykładową zasadą wyodrębniania zmiennych podaną powyżej, prześlij prawidłowy ładunek XML. Na przykład:

  1. Utwórz plik o nazwie city.xml z tą zawartością:

    <city>Bengaluru</city>
    <area>Sanjaynagar</area>
    
  2. Wywołanie interfejsu API przy użyciu polecenia cURL w następujący 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 źle sformatowane dane wejściowe

Ten błąd występuje, jeśli zasada Wyodrębnianie zmiennych analizuje dane wejściowe, które są nieprawidłowe lub uszkodzone.

Ten błąd wystąpi na przykład, jeśli jako dane wejściowe w zasadzie wyodrębniania zmiennych zostanie podany poniższy nieprawidłowy kod JSON.

[
    "args": ["name" : "amar" ]
]

Diagnostyka

  1. Wskaż zasadę wyodrębniania zmiennych, w której wystąpił błąd. Więcej te informacje w elemencie faultstring odpowiedzi na błąd. Przykład: w tym elemencie faultstring nazwa zasady to ExtractJSONVariables:

    "faultstring": "Failed to execute the ExtractVariables: ExtractJSONVariables"

  2. Sprawdź element <Source> w nieprawidłowym kodzie XML wyodrębniania zmiennych i ustal typ danych wejściowych, z których wyodrębniane są zmienne. Na przykład ta zasada Wyodrębnianie zmiennych ma element <Source> ustawiony na request i pobiera 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>
    
    
  3. Sprawdź, czy dane wejściowe analizowane przez zasadę Wyodrębnianie zmiennych są prawidłowe. Jeśli dane wejściowe są nieprawidłowe lub źle sformułowane, to właśnie jest przyczyną błędu.

    W pokazanej powyżej przykładowej zasadzie wyodrębniania zmiennych do zasady Wyodrębnianie zmiennych przekazano następujący nieprawidłowy kod JSON:

    [
        "args": ["name" : "amar" ]
    ]
    

    Oto przykładowe wywołanie interfejsu API, które pokazuje, jak żądanie zostało przekazane:

    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 otrzymujesz 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 źle sformułowany.

Rozdzielczość

Sprawdź, czy dane wejściowe przekazywane do zasady Wyodrębnianie zmiennych są prawidłowe i nie mają prawidłowego formatu.

Aby rozwiązać problem z omówioną powyżej przykładową zasadą wyodrębniania zmiennych, prześlij prawidłowe żądanie ładunku JSON w następujący sposób:

{
   "args":{
      "name":"amar"
   }
}

UnableToCast

Kod błędu

steps.extractvariables.UnableToCast

Treść odpowiedzi na błąd

{
    "fault": {
        "faultstring": "Unable to cast value [value] as [type].",
        "detail": {
            "errorcode": "steps.extractvariables.UnableToCast"
        }
    }
}

Przyczyna

Ten błąd występuje, jeśli zasada Wyodrębnianie zmiennych nie mogła rzutować wyodrębnionych zmiennych do zmiennej. Zwykle dzieje się tak, gdy próbujesz ustawić wartość z jednego typu danych na zmienną innego typu danych.

Jeśli na przykład zasada Wyodrębnij zmienną próbuje ustawić wartość, która została wyodrębnionej ze zmiennej typu String (ciąg znaków) do zmiennej typu Liczba całkowita.

Diagnostyka

  1. Określ typ danych zmiennej, do której służy zasada Wyodrębnianie zmiennych próbuje przesyłać treści, ale kończy się to niepowodzeniem. Te informacje znajdziesz tutaj: faultstring w odpowiedzi na błąd. Na przykład w tym elemencie faultstring atrybut typ obiektu to BOOLEAN:

    "faultstring":"Unable to cast value 36.231 as BOOLEAN."

  2. Zidentyfikuj zasadę Wyodrębnianie zmiennych, w której próbujesz ustawić wartość zmiennej typu określonego w kroku 1.

    Na przykład ta zasada Wyodrębnianie zmiennych pobiera wartość z JSONPath $.latitude do zmiennej typu boolean, która odpowiada w ciągu znaków 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>
    
    
  3. Sprawdź typ danych dla wyodrębnionej wartości. Dane mogą znajdować się w formy nagłówków, ścieżek URI, ładunków JSON/XML, parametrów formularza i parametrów zapytań.

  4. Sprawdź, czy typ danych określony w kroku 3 i typ danych zmiennej, do której przypisujesz dane (zdefiniowane w kroku 2), są takie same.

  5. Jeśli typ danych zmiennych źródłowych i docelowych jest inny, jest to przyczyną błędu.

    W przykładzie zasad wyodrębniania zmiennych pokazanych powyżej ładunek zapytania JSON ma postać:

    {
     "latitude":36.2312
    }
    

    Typ danych wartości wyodrębnionej z elementu <JSONPath>, ‘$.latitude’, to liczba całkowita, która jest przypisywana do zmiennej typu danych boolean.

    Ponieważ typ danych wyodrębnionej wartości i typ danych zmiennej, której przypisujesz tę wartość, są różne, otrzymasz kod błędu: steps.extractvariables.UnableToCast.

Rozdzielczość

Upewnij się, że typ danych wyodrębnionej wartości i zmiennej, do której przypisywane są treści, jest taki sam.

Aby poprawić przykładową zasadę wyodrębniania 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 na błąd

{
    "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 wyodrębnij zmienne zasada nie może przeanalizować ścieżki JSON i wyodrębnić danych ze zmiennej przepływu określono w elemencie <Source>. Zwykle dzieje się tak, gdy zmienna przepływu określone w elemencie <Source> nie istnieje w bieżącym procesie.

Ten błąd występuje na przykład, gdy zasada wyodrębniania zmiennych jest wykonywana w przepływie odpowiedzi i oczekuje zanalizowania ścieżki JSON, ale element <Source> określa zmienną przepływu request.content, która nie istnieje w przepływie odpowiedzi.

Diagnostyka

  1. Określ zasadę wyodrębniania zmiennych, w której wystąpił błąd, oraz nazwę zmiennej przepływu, z której nie udało się wyodrębnić danych. Oba te elementy znajdziesz w elemencie faultstring odpowiedzi z informacją o błędzie. Na przykład w tym ciągu błędów nazwa zasady to ExtractVariables-1, a zmienna to request.content:

    "faultstring": "ExtractVariables ExtractJSONVariabes: Json path parsing failed for flow variables request.content"

  2. W pliku XML zasady wyodrębniania zmiennych sprawdź, czy nazwa ustawiona w elemencie <Source> odpowiada nazwie zmiennej określonej w parametrze ciąg błędu (krok 1 powyżej). Na przykład ta polityka dotycząca zmiennych ekstrakcji określa zmienną o nazwie request.content, która pasuje do wartości w polu faultstring:

    <?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>
    
    
  3. 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.

  4. Jeśli zmienna to:

    • poza zakresem (niedostępne w ramach konkretnego procesu, w którym są realizowane zasady) lub
    • nie może zostać rozwiązana (nie jest zdefiniowana).

    to jest przyczyną błędu.

    Na przykład załóżmy, że pokazana powyżej zasada Extractvariables powinna być wykonywana w przepływie odpowiedzi. Pamiętaj, że zmienna przepływu request.content jest używana w elemencie <Source> zasad Wyodrębnianie zmiennych. Zmienna przepływu request.content jest dostępna tylko w przepływie żądania.

    Zmienna response nie występuje w przepływie żądania, dlatego otrzymujesz kod błędu: steps.extractvariables.JsonPathParsingFailure.

Rozdzielczość

Upewnij się, że zmienna przepływu używana w <Source>elemencie wyodrębniania Zasada dotycząca zmiennych jest dostępna w procesie, w którym zasada Wyodrębnianie zmiennych jest dostępna .

Załóżmy na przykład, że w odpowiedzi istnieje zmienna o nazwie response.content zawiera kod JSON, który chcesz wyodrębnić. Aby poprawić fragment Jeśli korzystasz z powyższych zasad dotyczących zmiennych, możesz zmodyfikować element <Source> w taki 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>