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

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

  1. 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 to ExtractVariables-1, a zmienna to response:

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

  2. 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>
    
  3. Ustal, czy zmienna 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 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. Zmienna response 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

  1. 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 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 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>
    
  3. 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 zmiennej var.color (uwaga: var to prefiks wszystkich zmiennych ustawionych w elemencie <VariablePrefix>).
    • W następnym przypisaniu wartość parametru zapytania nextcolor zostanie przypisana do innej zmiennej var.color.next.
    • Ponieważ element var.color jest już przydzielony, zasada Wyodrębnianie zmiennych nie może przydzielić kolejnej zagnieżdżonej zmiennej var.color.next. Pojawia się więc kod błędu: steps.extractvariables.SetVariableFailed

Rozdzielczość

  1. 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 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 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

  1. 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 to ExtractJSONVariables, a nieprawidłowa ścieżka JSON to $.Name:

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

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

  4. 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ść

  1. 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. obiekty firstName i lastName 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

  1. 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"

  2. 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 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, 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 to application/xml, text/xml lub application/*+xml. Jeśli chcesz, aby zasada Wyodrębnianie zmiennych analizuje ładunek żądania XML, musisz przekazać nagłówek Content-Type jako application/xml, text/xml lub application/*+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:

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

    <city>Bengaluru</city>
    <area>Sanjaynagar</area>
    
  2. 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

  1. 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 tagu faultstring nazwa zasady to ExtractJSONVariables:

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

  2. 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 na request 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>
    
    
  3. 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

  1. 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 kodzie faultstring 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ść 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 typu boolean, 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>
    
    
  3. 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.

  4. 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.

  5. 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

  1. 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 to request.content:

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

  2. 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 nazwie request.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>
    
    
  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 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ływu request.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>