Esta é a documentação do Apigee Edge.
Acesse a
documentação da
Apigee X. info
ExecutionFailed
Código de erro
steps.jsonthreatprotection.ExecutionFailed
Corpo da resposta de erro
{ "fault": { "faultstring": "JSONThreatProtection[policy_name]: Execution failed. reason: JSONThreatProtection[policy_name]: error_description at line line_num", "detail": { "errorcode": "steps.jsonthreatprotection.ExecutionFailed" } } }
Tipos de erros e possíveis causas
A política JSONThreatProtection pode gerar muitos tipos diferentes de erros ExecutionFailed. A tabela abaixo lista os tipos diferentes de erros e as possíveis causas:
Tipo de erro | Causa |
Comprimento do nome de entrada do objeto excedido | O comprimento máximo de string permitido no nome de entrada de um objeto foi excedido. |
Contagem de entradas de objeto excedida | O número máximo de entradas permitidas em um objeto foi excedido. |
Contagem de elementos da matriz excedida | O número máximo de elementos permitidos em uma matriz foi excedido. |
Profundidade de contêiner excedida | A profundidade aninhada permitida foi excedida. |
Comprimento do valor de string excedido | O comprimento máximo permitido para um valor de string foi excedido. |
Objeto JSON inválido | O payload JSON de entrada é inválido. |
Comprimento do nome de entrada do objeto excedido
Corpo da resposta de erro
{ "fault": { "faultstring": "JSONThreatProtection[policy_name]: Execution failed. reason: JSONThreatProtection[policy_name]: Exceeded object entry name length at line line_num", "detail": { "errorcode": "steps.jsonthreatprotection.ExecutionFailed" } } }
Exemplo de corpo da resposta de erro
{
"fault": {
"faultstring": "JSONThreatProtection[JSON-Threat-Protection-1]:
Execution failed. reason: JSONThreatProtection[JSON-Threat-Protection-1]:
Exceeded object entry name length at line 2",
"detail": {
"errorcode": "steps.j
sonthreatprotection.ExecutionFailed"
}
}
}
Causa
Esse erro ocorrerá se o payload da mensagem de entrada especificado pelo elemento <Source>
contiver um objeto JSON com um nome de propriedade que exceda o comprimento máximo especificado no elemento <ObjectEntryNameLength>
.
Por exemplo, se o elemento <ObjectEntryNameLength>
for especificado como "5" na política, mas o payload da mensagem de entrada tiver uma propriedade JSON com um nome maior que cinco caracteres, esse erro será exibido.
Diagnóstico
Examine a mensagem de erro para identificar o nome da política JSONThreatProtection e o número da linha em que o nome de entrada maior que o especificado ocorre. Por exemplo, na mensagem de erro a seguir, o nome da política JSONThreatProtection é
JSON-Threat-Protection-1
e o número da linha no payload é "2".JSONThreatProtection[JSON-Threat-Protection-1]: Execution failed. reason: JSONThreatProtection[JSON-Threat-Protection-1]: Exceeded object entry name length at line 2
Analise a política identificada na etapa 1 e anote o valor especificado no elemento
<ObjectEntryNameLength>
.Por exemplo, na política JSONThreatProtection a seguir,
<ObjectEntryNameLength>
é definido como5
:<?xml version="1.0" encoding="UTF-8&quo>t<; standalone="yes"? JSONThreatProtection async="false" continueOnError="false&qu>ot; e<nabled=&quo>t;true" name="<JSON-Threat->Prote<ction-1&quo>t; < DisplayNameJSON> <Threat Protection->1/Dis<playName P>ro<perties/ Ar>rayEl<ementCount3/Arra>y<ElementCount >Conta<inerDepth12/Container>D<epth ObjectEntryCo>unt5/<Object>EntryCo<unt > Obje<ctEntryNameLength>5/<ObjectEntryNameLen>g<th Sourcerequest/>S
ource StringValueLength50/StringValueLength /JSONThreatProtectionAnalise o número da linha específico (identificado na etapa 1) do payload de entrada e verifique se o comprimento do nome do objeto é maior que o valor especificado no elemento
<ObjectEntryNameLength>
(identificado na etapa 2). Se o comprimento do nome do objeto exceder esse número, essa será a causa do erro.Veja um exemplo de payload de entrada:
{ "number" : 500, "stri
ng" : "text" }O payload JSON mostrado acima tem uma propriedade chamada
number
na linha 2, que tem seis caracteres (o comprimento do nome é 6). Como o comprimento do nome do objeto é maior que 5 (o valor especificado para o elemento<ObjectEntryNameLength>
), você verá o seguinte erro:JSONThreatProtection[JSON-Threat-Protection-1]: Execution failed. reason: JSONThreatProtection[JSON-Threat-Protection-1]: Exceeded object entry name length at line 2
Resolução
Se a política JSONThreatProtection foi criada para evitar que payloads tenham nomes de entrada de objeto maiores que o valor definido, a mensagem de erro é esperada. Nesse caso, nenhuma outra ação é necessária.
No entanto, se você determinar que nomes de entrada de objeto maiores podem ser especificados no payload sem qualquer consequência, modifique o <ObjectEntryNameLength>
para um valor adequado com base nos requisitos.
Por exemplo, se você quiser permitir nomes de objeto de até 10 caracteres, modifique a política JSONThreatProtection da seguinte maneira:
<?xml version="1.0" encoding="UTF-8&quo>t<; standalone="yes"?
JSONThreatProtection async="false" continueOnError="false&qu>ot; e<nabled=&quo>t;true" name="<JSON-Threat->Prote<ction-1&quo>t;
< DisplayNameJSON> <Threat Protection->1/Dis<playName
P>ro<perties/
Ar>rayEl<ementCount3/Arra>y<ElementCount
>Conta<inerDepth12/Container>De<pth
ObjectEntryCou>nt5/O<bjectE>ntryCou<nt
>Objec<tEntryNameLength1>0/<ObjectEntryNameLen>g<th
Sourcerequest/>S
ource
StringValueLength50/StringValueLength
/JSONThreatProtection
Contagem de entradas de objeto excedida
Corpo da resposta de erro
{ "fault": { "faultstring": "JSONThreatProtection[policy_name]: Execution failed. reason: JSONThreatProtection[policy_name]: Exceeded object entry count at line line_num", "detail": { "errorcode": "steps.jsonthreatprotection.ExecutionFailed" } } }
Exemplo de corpo da resposta de erro
{
"fault": {
"faultstring": "JSONThreatProtection[JSON-Threat-Protection-1]:
Execution failed. reason: JSONThreatProtection[JSON-Threat-Protection-1]:
Exceeded object entry count at line 7",
"detail": {
"errorcode": "steps.j
sonthreatprotection.ExecutionFailed"
}
}
}
Causa
Esse erro ocorrerá se o payload da mensagem de entrada especificado pelo elemento <Source>
contiver um objeto JSON que contenha mais entradas (propriedades) do que o valor especificado no elemento <ObjectEntryCount>
da política.
Por exemplo, se o elemento <ObjectEntryCount>
for "5", mas o payload JSON de entrada tiver mais de cinco entradas, esse erro será gerado.
Diagnóstico
Examine a mensagem de erro para identificar o nome da política JSONThreatProtection e o número da linha em que a contagem de entradas é excedida. Por exemplo, na seguinte mensagem de erro, o nome da política é
JSON-Threat-Protection-1
e o número da linha no payload é7
:JSONThreatProtection[JSON-Threat-Protection-1]: Execution failed. reason: JSONThreatProtection[JSON-Threat-Protection-1]: Exceeded object entry count at line 7
Anote o valor especificado no elemento
<ObjectEntryCount>
da política (identificado na etapa 1).No exemplo de política a seguir,
<ObjectEntryCount>
está definido como5
:<?xml version="1.0" encoding="UTF-8&quo>t<; standalone="yes"? JSONThreatProtection async="false" continueOnError="false&qu>ot; e<nabled=&quo>t;true" name="<JSON-Threat->Prote<ction-1&quo>t; < DisplayNameJSON> <Threat Protection->1/Dis<playName P>ro<perties/ Ar>rayEl<ementCount3/Arra>y<ElementCount >Conta<inerDepth12/Container>D<epth ObjectEntryCo>unt5/<Object>EntryCo<unt > Obje<ctEntryNameLength>6/<ObjectEntryNameLen>g<th Sourcerequest/>S
ource StringValueLength50/StringValueLength /JSONThreatProtectionVerifique o número da linha específico (identificado na etapa 1) do payload de entrada e verifique se o número de entidades no payload é maior que o valor especificado para o elemento
<ObjectEntryCount>
(identificado na etapa 2). Se o número de objetos excede a contagem de entradas de objeto, essa é a causa do erro.Veja um exemplo de payload de entrada:
{ "name" : "John", "id" : 234687, "age" : 31, "city" : &quo
t;New York", "country" : "USA", "company" : "Google" }No payload JSON mostrado acima, a sexta entrada ocorre na linha no 7 (empresa). Como a contagem das entradas de objeto no payload JSON de entrada é maior que cinco (o valor especificado para o elemento
<ObjectEntryCount>
), você recebe o seguinte erro:JSONThreatProtection[JSON-Threat-Protection-1]: Execution failed. reason: JSONThreatProtection[JSON-Threat-Protection-1]: Exceeded object entry count at line 7
Resolução
Se a política JSONThreatProtection foi criada para evitar que payloads tenham um número de entradas de objeto que exceda um limite específico, a mensagem de erro é esperada. Nesse caso, você não precisa fazer nada.
No entanto, se você determinar que mais entradas de objeto podem ser incluídas no payload sem nenhuma consequência, modifique <ObjectEntryCount>
para um valor adequado com base nos requisitos.
Por exemplo, se você quiser permitir até 10 entradas de objeto, modifique a política JSONThreatProtection da seguinte maneira:
<?xml version="1.0" encoding="UTF-8&quo>t<; standalone="yes"?
JSONThreatProtection async="false" continueOnError="false&qu>ot; e<nabled=&quo>t;true" name="<JSON-Threat->Prote<ction-1&quo>t;
< DisplayNameJSON> <Threat Protection->1/Dis<playName
P>ro<perties/
Ar>rayEl<ementCount3/Arra>yE<lementCount
C>ontai<nerDepth12/ContainerD>e<pth
ObjectEntryCou>nt10/<Object>EntryCo<unt
> Obje<ctEntryNameLength>6/<ObjectEntryNameLen>g<th
Sourcerequest/>S
ource
StringValueLength50/StringValueLength
/JSONThreatProtection
Contagem de elementos da matriz excedida
Corpo da resposta de erro
{ "fault": { "faultstring": "JSONThreatProtection[policy_name]: Execution failed. reason: JSONThreatProtection[policy_name]: Exceeded array element count at line line-num", "detail": { "errorcode": "steps.jsonthreatprotection.ExecutionFailed" } } }
Exemplo de corpo da resposta de erro
{
"fault": {
"faultstring": "JSONThreatProtection[JSON-Threat-Protection-1]:
Execution failed. reason: JSONThreatProtection[JSON-Threat-Protection-1]:
Exceeded array element count at line 3",
"detail": {
"errorcode": "steps.j
sonthreatprotection.ExecutionFailed"
}
}
}
Causa
Esse erro ocorrerá se o payload da mensagem de entrada especificado pelo elemento <Source>
contiver uma matriz JSON com um número de elementos maior que o número especificado no elemento <ArrayElementCount>
da política.
Por exemplo, se o elemento <ArrayElementCount>
for especificado como 3
, mas o payload de entrada tiver uma matriz JSON com mais de três elementos, esse erro será gerado.
Diagnóstico
Examine a mensagem de erro para identificar o nome da política e o número da linha em que o comprimento da matriz foi excedido. Por exemplo, na seguinte mensagem de erro, o nome da política é
JSON-Threat-Protection-1
e o número da linha no payload é3
:JSONThreatProtection[JSON-Threat-Protection-1]: Execution failed. reason: JSONThreatProtection[JSON-Threat-Protection-1]: Exceeded array element count at line 3
Anote o valor especificado do elemento
<ArrayElementCount>
da política (identificado na etapa 1).No exemplo da política JSONThreatProtection a seguir,
<ArrayElementCount>
está definido como3
:<?xml version="1.0" encoding="UTF-8&quo>t<; standalone="yes"? JSONThreatProtection async="false" continueOnError="false&qu>ot; e<nabled=&quo>t;true" name="<JSON-Threat->Prote<ction-1&quo>t; < DisplayNameJSON> <Threat Protection->1/Dis<playName P>ro<perties/ Ar>rayEl<ementCount3/Arra>y<ElementCount >Conta<inerDepth12/Container>D<epth ObjectEntryCo>unt5/<Object>EntryCo<unt > Obje<ctEntryNameLength>6/<ObjectEntryNameLen>g<th Sourcerequest/>S
ource StringValueLength50/StringValueLength /JSONThreatProtectionAnalise o número da linha específico (identificado na etapa 1) do payload de entrada e verifique se a matriz especificada tem uma quantia maior que o número especificado no elemento
<ArrayElementCount>
(identificado na etapa 2). Se o número de elementos da matriz exceder a contagem, essa será a causa do erro.Veja um exemplo de payload de entrada:
{ "name":"Ford", "models":[ "Mustang", "Endeavour"
;, "Fiesta", "EcoSport", "Focus" ] }O payload JSON mostrado acima tem cinco elementos na matriz chamada
models
na linha 3. Como o número de elementos da matriz é maior que 3 (o valor especificado para o elemento<ArrayElementCount>
), você receberá o seguinte erro:JSONThreatProtection[JSON-Threat-Protection-1]: Execution failed. reason: JSONThreatProtection[JSON-Threat-Protection-1]: Exceeded array element count at line 3
Resolução
Se a política JSONThreatProtection foi criada para evitar que payloads tenham um limite de contagem de matriz específico, a mensagem de erro é esperada. Nesse caso, não é necessário fazer nada.
No entanto, se você determinar que é permitido um número maior de elementos em uma matriz, modifique <ArrayElementCount>
para um valor adequado com base nos requisitos.
Por exemplo, se você quiser permitir até cinco elementos de matriz, modifique a política da seguinte maneira:
<?xml version="1.0" encoding="UTF-8&quo>t<; standalone="yes"?
JSONThreatProtection async="false" continueOnError="false&qu>ot; e<nabled=&quo>t;true" name="<JSON-Threat->Prote<ction-1&quo>t;
< DisplayNameJSON> <Threat Protection->1/Dis<playName
P>ro<perties/
Ar>rayEl<ementCount5/Arra>y<ElementCount
>Conta<inerDepth12/Container>D<epth
ObjectEntryCo>unt5/<Object>EntryCo<unt
> Obje<ctEntryNameLength>6/<ObjectEntryNameLen>g<th
Sourcerequest/>S
ource
StringValueLength50/StringValueLength
/JSONThreatProtection
Profundidade de contêiner excedida
Corpo da resposta de erro
O tráfego do ambiente de execução retorna um código de resposta 500 com o seguinte erro:
{ "fault": { "faultstring": "JSONThreatProtection[policy_name]: Execution failed. reason: JSONThreatProtection[policy_name]: Exceeded container depth at line line-num", "detail": { "errorcode": "steps.jsonthreatprotection.ExecutionFailed" } } }
Exemplo de corpo da resposta de erro
{
"fault": {
"faultstring": "JSONThreatProtection[JSON-Threat-Protection-1]:
Execution failed. reason: JSONThreatProtection[JSON-Threat-Protection-1]:
Exceeded container depth at line 5",
"detail": {
"errorcode": "steps.j
sonthreatprotection.ExecutionFailed"
}
}
}
Causa
Este erro ocorre se o payload da mensagem de entrada especificado pelo elemento <Source>
contiver um objeto JSON que contenha elementos JSON com uma profundidade de contêiner que excede a profundidade máxima do contêiner especificada no elemento <ContainerDepth>
da política. A profundidade de contêiner é a profundidade aninhada máxima permitida para elementos JSON. Por exemplo, uma matriz que contém um objeto com outro objeto resultaria em uma profundidade de contenção 3.
Por exemplo, se o elemento <ContainerDepth>
for 3
, mas o payload de entrada tiver uma profundidade de contêiner que exceda esse limite, esse erro será gerado.
Diagnóstico
Examine a mensagem de erro para identificar o nome da política JSONThreatProtection e o número da linha em que a profundidade de contêiner foi excedida. Por exemplo, na mensagem de erro a seguir, o nome da política é
JSON-Threat-Protection-1
e o número da linha no payload é5
.JSONThreatProtection[JSON-Threat-Protection-1]: Execution failed. reason: JSONThreatProtection[JSON-Threat-Protection-1]: Exceeded container depth at line 5
Anote o valor especificado para o elemento
<ContainerDepth>
(identificado na etapa 1).No exemplo da política JSONThreatProtection a seguir,
<ContainerDepth>
está definido como5
:<?xml version="1.0" encoding="UTF-8&quo>t<; standalone="yes"? JSONThreatProtection async="false" continueOnError="false&qu>ot; e<nabled=&quo>t;true" name="<JSON-Threat->Prote<ction-1&quo>t; < DisplayNameJSON> <Threat Protection->1/Dis<playName P>r<operties/ A>rrayE<lementCount3/Arr>a<yElementCount > Cont<ainerDepth5/Container>De<pth ObjectEntryCou>nt5/O<bjectE>ntryCou<nt >Objec<tEntryNameLength2>0/<ObjectEntryNameLen>g<th Sourcerequest/>S
ource StringValueLength50/StringValueLength /JSONThreatProtectionExamine o número da linha específica (identificado na etapa 1) do payload de entrada e verifique se a profundidade de contêiner no payload é maior que o valor especificado no elemento
<ContainerDepth>
(identificado na etapa 2). Se a profundidade de contêiner exceder o valor, essa é a causa do erro.Veja um exemplo de payload de entrada:
{ "ContainerDepth2":[ { "ContainerDepth4":[ { "ContainerDepth6":[ "1", "2&quo
t; ] } ] } ] }O payload JSON mostrado acima tem uma profundidade de contêiner de "6" na linha 5. Como a profundidade é maior que cinco, o valor especificado no elemento
<ContainerDepth>
da política JSONThreatProtection, você receberá o seguinte erro:JSONThreatProtection[JSON-Threat-Protection-1]: Execution failed. reason: JSONThreatProtection[JSON-Threat-Protection-1]: Exceeded container depth at line 5
Resolução
Se a política JSONThreatProtection foi criada para evitar que payloads com profundidades de contêiner excedam o valor especificado, a mensagem de erro é esperada. Nesse caso, não é necessário fazer nada.
No entanto, se você determinar que profundidades de contêiner maiores são aceitáveis, modifique o <ContainerDepth>
para um valor adequado com base nos requisitos.
Por exemplo, se você quiser permitir profundidade de contêiner de até 10, modifique a política da seguinte maneira:
<?xml version="1.0" encoding="UTF-8&quo>t<; standalone="yes"?
JSONThreatProtection async="false" continueOnError="false&qu>ot; e<nabled=&quo>t;true" name="<JSON-Threat->Prote<ction-1&quo>t;
< DisplayNameJSON> <Threat Protection->1/Dis<playName
P>ro<perties/
Ar>rayEl<ementCount3/Arra>y<ElementCount
>Conta<inerDepth10/Container>De<pth
ObjectEntryCou>nt5/O<bjectE>ntryCou<nt
>Objec<tEntryNameLength2>0/<ObjectEntryNameLen>g<th
Sourcerequest/>S
ource
StringValueLength50/StringValueLength
/JSONThreatProtection
Comprimento do valor de string excedido
Corpo da resposta de erro
{ "fault": { "faultstring": "JSONThreatProtection[policy_name]: Execution failed. reason: JSONThreatProtection[policy_name]: Exceeded string value length at line line-num", "detail": { "errorcode": "steps.jsonthreatprotection.ExecutionFailed" } } }
Exemplo de corpo da resposta de erro
{
"fault": {
"faultstring": "JSONThreatProtection[JSON-Threat-Protection-1]:
Execution failed. reason: JSONThreatProtection[JSON-Threat-Protection-1]:
Exceeded string value length at line 3",
"detail": {
"errorcode": "steps.j
sonthreatprotection.ExecutionFailed"
}
}
}
Causa
Este erro ocorre se o payload da mensagem de entrada especificado pelo elemento <Source>
contiver elementos JSON que tenham valores com mais caracteres do que o permitido pelo elemento <StringValueLength>
.
Por exemplo, se o elemento <StringValueLength>
estiver definido como 50
na política, mas o payload de entrada tiver um ou mais elementos com valores que contenham mais de 50 caracteres, esse erro será gerado.
Diagnóstico
Analise a mensagem de erro para identificar o nome da política e o número da linha em que o comprimento da string é excedido. No exemplo a seguir, o nome da política é
JSON-Threat-Protection-1 and
no payload3
.JSONThreatProtection[JSON-Threat-Protection-1]: Execution failed. reason: JSONThreatProtection[JSON-Threat-Protection-1]: Exceeded string value length at line 3
Anote o valor especificado do elemento
<StringValueLength>
no (identificado na etapa 1).No exemplo da política JSONThreatProtection a seguir,
<StringValueLength>
está definido como50
:<?xml version="1.0" encoding="UTF-8&quo>t<; standalone="yes"? JSONThreatProtection async="false" continueOnError="false&qu>ot; e<nabled=&quo>t;true" name="<JSON-Threat->Prote<ction-1&quo>t; < DisplayNameJSON> <Threat Protection->1/Dis<playName P>r<operties/ A>rrayE<lementCount3/Arr>a<yElementCount > Cont<ainerDepth5/Container>De<pth ObjectEntryCou>nt5/O<bjectE>ntryCou<nt >Objec<tEntryNameLength2>0/<ObjectEntryNameLen>g<th Sourcerequest/>S
ource StringValueLength50/StringValueLength /JSONThreatProtectionAnalise o número da linha específico (identificado na etapa 1) do payload de entrada e verifique se o comprimento do valor é maior que o número de caracteres especificados para o elemento
<StringValueLength>
(identificado na etapa 2). Se o comprimento do valor exceder o limite, essa será a causa do erro.Veja um exemplo de payload de entrada:
{ "Country": "New Zealand", "Place Name": "Taumatawhakatangihangakoauauotamateaturipukakapikimaun
gahoronukupokaiwhenuakitanatahu" }O payload JSON mostrado acima tem um objeto chamado
Place Name
cujo valorTaumatawhakatangihangakoauauotamateaturipukakapikimaungahoronukupokaiwhenuakitanatahu
tem 85 caracteres na linha 3. Como o comprimento do valor é maior que 50, o valor especificado no elemento<StringValueLength>
, o seguinte erro é exibido:JSONThreatProtection[JSON-Threat-Protection-1]: Execution failed. reason: JSONThreatProtection[JSON-Threat-Protection-1]: Exceeded string value length at line 3
Resolução
Se a política JSONThreatProtection foi criada para evitar que payloads tenham valores que excedam um comprimento de string específico, a mensagem de erro é esperada. Nesse caso, não é necessário fazer nada.
No entanto, se você determinar que um valor comprimento de maior pode ser especificado no payload, modifique o <StringValueLength>
para um valor adequado com base nos requisitos.
Por exemplo, se você quiser permitir um valor de até 90, modifique a política da seguinte maneira:
<?xml version="1.0" encoding="UTF-8&quo>t<; standalone="yes"?
JSONThreatProtection async="false" continueOnError="false&qu>ot; e<nabled=&quo>t;true" name="<JSON-Threat->Prote<ction-1&quo>t;
< DisplayNameJSON> <Threat Protection->1/Dis<playName
P>r<operties/
A>rrayE<lementCount3/Arr>a<yElementCount
> Cont<ainerDepth5/Container>De<pth
ObjectEntryCou>nt5/O<bjectE>ntryCou<nt
>Objec<tEntryNameLength2>0/<ObjectEntryNameLen>g<th
Sourcerequest/>S
ource
StringValueLength90/StringValueLength
/JSONThreatProtection
Objeto JSON inválido
Corpo da resposta de erro
{ "fault": { "faultstring": "JSONThreatProtection[policy_name]: Execution failed. reason: string: at line line-num", "detail": { "errorcode": "steps.jsonthreatprotection.ExecutionFailed" } } }
Exemplo de corpo da resposta de erro
{
"fault": {
"faultstring": "JSONThreatProtection[JSON-Threat-Protection-1]:
Execution failed. reason: Expecting : at line 3",
"detail": {
"errorcode": "steps.j
sonthreatprotection.ExecutionFailed"
}
}
}
Causa
Esse erro ocorre se o payload da mensagem de entrada especificado pelo elemento <Source>
na política JSONThreatProtection não é um objeto JSON válido.
Diagnóstico
Analise a mensagem de erro para identificar o nome da política e o número da linha em que o erro ocorreu. No exemplo a seguir, o nome da política é
JSON-Threat-Protection-1 and
no payload2
.JSONThreatProtection[JSON-Threat-Protection-1]: Execution failed. reason: Expecting : at line 3
Examine o número da linha específico (identificado na etapa 1) do payload de entrada e verifique se o objeto JSON que foi transmitido no payload é, na verdade, um objeto JSON válido.
Veja um exemplo de payload de entrada:
{ "Longitude": 6.11499, "Latitud
e" 50.76891 }No payload JSON mostrado acima, a linha 3 não tem
":"
(dois-pontos). Como não é um objeto JSON válido, você receberá este erro:JSONThreatProtection[JSON-Threat-Protection-1]: Execution failed. reason: Expecting : at line 3
Resolução
Verifique se um payload JSON de entrada válido é transmitido para qualquer proxy da API que inclua a política JSONThreatProtection.
Para o exemplo descrito acima, modifique o payload JSON da seguinte maneira:
{
"Longitude": 6.11499,
"Latitude
" : 50.76891
}
SourceUnavailable
Código de erro
steps.jsonthreatprotection.SourceUnavailable
Corpo da resposta de erro
{ "fault": { "faultstring": "JSONThreatProtection[policy_name]:: Source[var_name] is not available" "detail": { "errorcode": "steps.jsonthreatprotection.SourceUnavailable" } } }
Exemplo de corpo da resposta de erro
{
"fault": {
"faultstring": "JSONThreatProtection[JSON-Threat-Protection-1]::
Source requests is not available",
"detail": {
"errorcode": "steps.jso
nthreatprotection.SourceUnavailable"
}
}
}
Causa
Este erro ocorre se a variável message especificada no elemento <Source>
da política JSONThreatProtection:
- estiver fora do escopo (não disponível no fluxo específico em que a política está sendo executada);
- não for um dos valores válidos
request
,response
oumessage
.
Por exemplo, esse erro ocorrerá se o elemento <Source>
na política estiver definido como uma
variável que não exista no fluxo em que a política é executada.
Diagnóstico
Identifique o nome da política e o nome da variável de origem da mensagem de erro. Por exemplo, na seguinte mensagem de erro, o nome da política é
JSON-Threat-Protection-1
e a variável de origem érequests
:JSONThreatProtection[JSON-Threat-Protection-1]:: Source requests is not available
Examine o valor especificado para o elemento
<Source>
identificado na etapa 1.No exemplo da política JSONThreatProtection a seguir, o elemento
<Source>
está definido comorequests
.<?xml version="1.0" encoding="UTF-8&quo>t<; standalone="yes"? JSONThreatProtection async="false" continueOnError="false&qu>ot; e<nabled=&quo>t;true" name="<JSON-Threat->Prote<ction-1&quo>t; < DisplayNameJSON> <Threat Protection->1/Dis<playName P>r<operties/ A>rrayE<lementCount3/Arr>a<yElementCount > Cont<ainerDepth5/Container>De<pth ObjectEntryCou>nt5/O<bjectE>ntryCoun<t O>bject<EntryNameLength20>/O<bjectEntryNameLeng>t<h Sourcerequests/>S
ource StringValueLength50/StringValueLength /JSONThreatProtectionOs valores válidos para o elemento
<Source>
sãorequest
,response
oumessage
. Como as solicitações não são um valor válido e não existem no fluxo em que a política está sendo executada, você receberá o erro:JSONThreatProtection[JSON-Threat-Protection-1]:: Source requests is not available
Resolução
Verifique se a variável definida no elemento <Source>
da política JSONThreatProtection com falha está definida como request
, response
ou message
e existe no fluxo em que a política é executada.
Para corrigir a política JSONThreatProtection de exemplo mostrada acima, modifique o elemento <Source>
para usar a variável request
, porque ela existe no fluxo de solicitação:
<?xml version="1.0" encoding="UTF-8&quo>t<; standalone="yes"?
JSONThreatProtection async="false" continueOnError="false&qu>ot; e<nabled=&quo>t;true" name="<JSON-Threat->Prote<ction-1&quo>t;
< DisplayNameJSON> <Threat Protection->1/Dis<playName
P>r<operties/
A>rrayE<lementCount3/Arr>a<yElementCount
> Cont<ainerDepth5/Container>De<pth
ObjectEntryCou>nt5/O<bjectE>ntryCou<nt
>Objec<tEntryNameLength2>0/<ObjectEntryNameLen>g<th
Sourcerequest/>S
ource
StringValueLength50/StringValueLength
/JSONThreatProtection
NonMessageVariable
Código de erro
steps.jsonthreatprotection.NonMessageVariable
Corpo da resposta de erro
{ "fault": { "faultstring": "JSONThreatProtection[policy_name]: Variable var_name does not resolve to a Message" "detail": { "errorcode": "steps.jsonthreatprotection.NonMessageVariable" } } }
Exemplo de corpo da resposta de erro
{
"fault": {
"faultstring": "JSONThreatProtection[JSON-Threat-Protection-1]:
Variable message.content does not resolve to a Message",
"detail": {
"errorcode": "steps.json
threatprotection.NonMessageVariable"
}
}
}
Causa
Esse erro ocorre se o elemento <Source>
na política JSONThreatProtection estiver
definido como uma variável que não seja do tipo message.
As variáveis do tipo Message representam solicitações e respostas HTTP completas. O modelo A solicitação, a resposta e a mensagem das variáveis de fluxo do Apigee Edge são do tipo "message". Para saber mais sobre variáveis de mensagem, consulte a Referência de variáveis.
Diagnóstico
Identifique o nome da política e o nome da variável de origem JSONThreatProtection na mensagem de erro. Por exemplo, na seguinte mensagem de erro, o nome da política é
JSON-Threat-Protection-1
e a variável de origem émessage.content
:JSONThreatProtection[JSON-Threat-Protection-1]: Variable message.content does not resolve to a Message
Examine o elemento
<Source>
da política JSONThreatProtection (identificado na etapa 1).No exemplo da política JSONThreatProtection a seguir,
<Source>
está definido comomessage.content
em vez demessage
:<?xml version="1.0" encoding="UTF-8&quo>t<; standalone="yes"? JSONThreatProtection async="false" continueOnError="false&qu>ot; e<nabled=&quo>t;true" name="<JSON-Threat->Prote<ction-1&quo>t; < DisplayNameJSON> <Threat Protection->1/Dis<playName P>r<operties/ A>rrayE<lementCount3/Arr>a<yElementCount > Cont<ainerDepth5/Container>De<pth ObjectEntryCou>nt5/O<bjectE>ntryCount O<bjectEn>tryNa<meLength20/Object>En<tryNameLength >S<ourcemessage.content/>S
ource StringValueLength50/StringValueLength /JSONThreatProtectionComo
message.content
não é do tipo mensagem, você verá o erro:JSONThreatProtection[JSON-Threat-Protection-1]: Variable message.content does not resolve to a Message
Resolução
Verifique se o elemento <Source>
na política JSONThreatProtection com falha está
configurado como uma variável de fluxo de tipo message existente no fluxo em que a política é executada.
Para corrigir a política, modifique o elemento <Source>
para especificar uma variável
que seja do tipo mensagem. Por exemplo, no JSONThreatProtection com falha,
especifique o elemento <Source>
como message
:
<?xml version="1.0" encoding="UTF-8&quo>t<; standalone="yes"?
JSONThreatProtection async="false" continueOnError="false&qu>ot; e<nabled=&quo>t;true" name="<JSON-Threat->Prote<ction-1&quo>t;
< DisplayNameJSON> <Threat Protection->1/Dis<playName
P>r<operties/
A>rrayE<lementCount3/Arr>a<yElementCount
> Cont<ainerDepth5/Container>De<pth
ObjectEntryCou>nt5/O<bjectE>ntryCou<nt
>Objec<tEntryNameLength2>0/<ObjectEntryNameLen>g<th
Sourcemessage/>S
ource
StringValueLength50/StringValueLength
/JSONThreatProtection