Stai visualizzando la documentazione di Apigee Edge.
Vai alla sezione
Documentazione di Apigee X. Informazioni
SourceUnavailable
Codice di errore
steps.json2xml.SourceUnavailable
Corpo della risposta di errore
{ "fault": { "faultstring": "JSONToXML[policy_name]: Source [source_variable] is not available", "detail": { "errorcode": "steps.json2xml.SourceUnavailable" } } }
Errore di esempio
{
"fault": {
"faultstring": "JSONToXML[Convert-JSONToXML]: Source response is not available",
"detail": {
"errorcode": "steps.json2xml.SourceUnavailable"
}
}
}
Causa
Questo errore si verifica se la variabile message specificata nell'elemento <Source>
del criterio da JSON a XML ha una delle seguenti caratteristiche:
- Fuori ambito (non disponibile nel flusso specifico in cui viene eseguito il criterio) o
- Non può essere risolto (non è definito)
Ad esempio, questo errore si verifica se si prevede che il criterio da JSON a XML debba essere eseguito nel flusso di richiesta, ma l'elemento <Source>
è impostato sulla variabile response
, che non esiste nel flusso di richiesta.
Diagnosi
Identifica il criterio da JSON a XML in cui si è verificato l'errore e il nome della variabile che non è disponibile. Puoi trovare entrambi gli elementi nell'elemento
faultstring
della risposta di errore. Ad esempio, nel seguentefaultstring
, il nome del criterio èConvert-JSONToXML
e la variabile èresponse
:"faultstring": "JSONToXML[Convert-JSONToXML]: Source response is not available"
Nel file XML del criterio JSON to XML con errore, verifica che il nome del set di variabili nell'elemento
<Source>
corrisponda al nome della variabile identificato nella stringa di errore (passaggio 1 sopra). Ad esempio, il seguente criterio da JSON a XML specifica una variabile denominataresponse
nell'elemento<Source>
, che corrisponde al contenuto infaultstring
:<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <JSONToXML async="false" continueOnError="false" enabled="true" name="Convert-JSONToXML"> <DisplayName>Convert-JSONToXML</DisplayName> <Properties/> <Options> <NullValue>NULL</NullValue> <NamespaceBlockName>#namespaces</NamespaceBlockName> <DefaultNamespaceNodeName>$default</DefaultNamespaceNodeName> <NamespaceSeparator>:</NamespaceSeparator> <TextNodeName>#text</TextNodeName> <AttributeBlockName>#attrs</AttributeBlockName> <AttributePrefix>@</AttributePrefix> <InvalidCharsReplacement>_</InvalidCharsReplacement> <ObjectRootElementName>Root</ObjectRootElementName> <ArrayRootElementName>Array</ArrayRootElementName> <ArrayItemElementName>Item</ArrayItemElementName> </Options> <OutputVariable>request</OutputVariable> <Source>response</Source> </JSONToXML>
Determina se la variabile utilizzata nell'elemento
<Source>
è definita e disponibile nel flusso in cui viene eseguito il criterio da JSON a XML.Se la variabile è:
- Fuori ambito (non disponibile nel flusso specifico in cui viene eseguito il criterio) o
- Impossibile risolvere (non è definito)
questa è la causa dell'errore.
Ad esempio, supponiamo che il criterio di conversione da JSON a XML mostrato sopra debba essere eseguito nel flusso di richiesta. Ricorda che la variabile
response
viene utilizzata nell'elemento<Source>
del criterio da JSON a XML. La variabile di risposta è disponibile solo nel flusso di risposta.Poiché la variabile
response
non esiste nel flusso di richiesta, ricevi il codice di errore:steps.json2xml.SourceUnavailable
Risoluzione
Assicurati che la variabile impostata nell'elemento <Source>
del criterio JSON to XML non riuscito sia definita ed esista nel flusso in cui viene eseguito il criterio.
Per correggere il criterio da JSON a XML di esempio mostrato sopra, puoi modificare l'elemento <Source>
in modo che utilizzi la variabile request
, perché esiste nel flusso di richiesta:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<JSONToXML async="false" continueOnError="false" enabled="true" name="Convert-JSONToXML">
<DisplayName>Convert-JSONToXML</DisplayName>
<Properties/>
<Options>
<NullValue>NULL</NullValue>
<NamespaceBlockName>#namespaces</NamespaceBlockName>
<DefaultNamespaceNodeName>$default</DefaultNamespaceNodeName>
<NamespaceSeparator>:</NamespaceSeparator>
<TextNodeName>#text</TextNodeName>
<AttributeBlockName>#attrs</AttributeBlockName>
<AttributePrefix>@</AttributePrefix>
<InvalidCharsReplacement>_</InvalidCharsReplacement>
<ObjectRootElementName>Root</ObjectRootElementName>
<ArrayRootElementName>Array</ArrayRootElementName>
<ArrayItemElementName>Item</ArrayItemElementName>
</Options>
<OutputVariable>request</OutputVariable>
<Source>request</Source>
</JSONToXML>
ExecutionFailed
Codice di errore
steps.json2xml.ExecutionFailed
Corpo della risposta di errore
{ "fault": { "faultstring": "JSONToXML[policy_name]: Execution failed due to reason: Expecting { or [ at line 1", "detail": { "errorcode": "steps.json2xml.ExecutionFailed" } } }
Possibili cause
Le possibili cause di questo errore sono:
Causa | Descrizione |
Payload input mancante | Il payload di input (JSON) è vuoto. |
Input non valido o non corretto | L'input (JSON) passato al criterio JSON-XML non è valido o è in un formato non corretto. |
Causa: payload di input mancante
Nel criterio da JSON a XML se i contenuti (payload) della variabile specificata nell'elemento <Source>
sono vuoti, si verifica questo errore.
Ad esempio, se l'elemento <Source>
nel criterio JSON to XML è impostato come variabile request
o response
e dovrebbe contenere un payload JSON, ma se il payload è vuoto, si verifica l'errore.
Diagnosi
Identifica il criterio JSON to XML in cui si è verificato l'errore. Puoi trovare queste informazioni nell'elemento
faultstring
della risposta all'errore. Ad esempio, nel seguentefaultstring
, il nome del criterio èConvert-JSONToXML
:"faultstring": "JSONToXML[Convert-JSONToXML]: Execution failed due to reason: Expecting { or [ at line 1"
Esamina l'elemento
<Source>
nel file XML del criterio JSON to XML con errore e determina la variabile specificata. Ad esempio, nel seguente criterio da JSON a XML l'elemento<Source>
è impostato surequest
:<?xml version="1.0" encoding="UTF-8&quo>t<; standalone="yes"? JSONToXML async="false" continueOnError="f>a<lse" e>nabled="true<" name=>&<quot;Conver>t<-JSONTo>XML&q<uot; Disp>layN<ameConvert>-JSON<ToXML/DisplayName >Properties/< Options NullVa>lueNU<LL/NullValue Namespa>ceBlockN<ame#namespaces/NamespaceB>lockN<ame DefaultNam>e<spaceNodeName$defau>lt/De<faultNamespa>ceNod<eName Nam>espac<eSeparator:/Namesp>aceSep<arator TextNode>Name#<text/TextNodeNa>m<e AttributeB>lockN<ame#attrs/AttributeBloc>k<Name AttributePrefix>@/Att<ributePrefix Inva>lidC<harsReplacement_/Inval>idCha<rsReplacement Ob>jectR<ootElementNameRoot/Ob>jectR<ootElementName A>rray<RootElementNameArray/>A<rrayRoot>E<lementName > ArrayI<temElementNameI>t<em/Arr>ayItemE<lementN>a<me /Option>s
OutputVariablerequest/OutputVariable Sourcerequest/Source /JSONToXMLControlla se la variabile specificata per l'elemento
<Source>
nel criterio è vuota. Se è vuoto, questo è la causa dell'errore.Nel criterio da JSON a XML di esempio mostrato sopra, il payload della richiesta (ossia il corpo della richiesta) inviato dal client è vuoto.
Ad esempio:
curl -v "ht<tp:>/</or>g-env.apigee.net/v1/testjsontoxml" -H "Content-Type: app
lication/json"Poiché il payload della risposta JSON è vuoto, viene visualizzato il codice di errore:
steps.json2xml.ExecutionFailed
Questo errore può verificarsi anche se l'elemento
<Source>
è impostato come risposta, ma il server di backend passa un payload vuoto.
Risoluzione
Assicurati che l'input passato al criterio da JSON a XML nell'elemento <Source>
sia un payload JSON valido e che non sia vuoto.
Per risolvere il problema relativo al criterio da JSON a XML di esempio, trasmetti un payload JSON valido. Ad esempio:
Crea un file denominato
city.json
con i seguenti contenuti:{ "Name":"Apigee", "City":"
Bengaluru", "Pincode":"560016" }Effettua la chiamata API utilizzando un comando cURL come segue:
curl -v "ht<tp:>/</or>g-env.apigee.net/v1/testxmltojson" -H "Content-Type: application/json" -X PO
ST -d @company.json
Causa: input non valido o non corretto
Se il criterio da JSON a XML analizza un input non valido o non valido, viene visualizzato questo errore.
Ad esempio, se il seguente JSON non valido viene fornito come input al criterio JSON to XML,
[
"args": ["name&q
uot; : "Google" ]
]
viene visualizzato l'errore:
"faultstring": "JSONToXML[Convert-JSONToXML]: Execution failed due to reason: Expecting { or [ at line 1"
Diagnosi
Identifica il criterio da JSON a XML in cui si è verificato l'errore. Puoi trovare queste informazioni nell'elemento
faultstring
della risposta di errore. Ad esempio, nel seguentefaultstring
, il nome del criterio èConvert-JSONToXML
:"faultstring": "JSONToXML[Convert-JSONToXML]: Execution failed due to reason: Expecting { or [ at line 1"
Esamina l'elemento
<Source>
specificato nel file XML con il criterio JSON-XML non riuscito. Ad esempio, nel seguente criterio da JSON a XML l'elemento<Source>
è impostato sulla variabilerequest
:<?xml version="1.0" encoding="UTF-8&quo>t<; standalone="yes"? JSONToXML async="false" continueOnError="f>als<e" ena>bled="true&q<uot; name=&q>uot<;Convert-JS>ONT<oXML&qu>ot; D<isplayNam>eCon<vert-JSONT>oXML/Di<splayName Proper>ties/ Opt<ions NullValu>eNULL/N<ullValue Namespace>BlockNam<e#namespaces/NamespaceBlo>ckName < DefaultNames>p<aceNodeName$default>/Defaul<tNamespaceNo>deNam<e Names>paceSep<arator:/NamespaceS>eparat<or TextNodeNa>me#text</TextNodeName > < AttributeBlo>ckName#<attrs/AttributeBlockNam>e< AttributePrefix@/>Attribu<tePrefix Invali>dCha<rsReplacement_/Invalid>CharsRe<placement Obje>ctRoo<tElementNameRoot/Obje>ctRootE<lementName Arr>ayRo<otElementNameArray/Ar>ray<RootElem>ent<Name Arr>ayItemE<lementNameItem/>Arr<ayItem>Element<Name >/<Options >O
utputVariablerequest/OutputVariable Sourcerequest/Source /JSONToXMLVerifica che l'input specificato nell'elemento
<Source>
sia un payload JSON valido. Se l'input non è valido o è in un formato non corretto, è questa la causa dell'errore.Supponiamo che al criterio sia stato passato il seguente JSON non valido
[ "args": ["name&q
uot; : "Google" ] ]Ecco la chiamata API di esempio che mostra come è stata passata la richiesta:
curl -v "ht<tp:>/</or>g-env.apigee.net/v1/testjsontoxml" -H "Content-Type: application/json" -X POST -d '[ "ar
gs" : ["name" : "Google" ]]'Il payload JSON passato nella richiesta non è valido perché l'oggetto JSON inizia e termina con le parentesi quadre ([ ]). Per questo motivo, ricevi il codice di errore:
steps.json2xml.ExecutionFailed
Questo errore può verificarsi anche se l'elemento
<Source>
è stato impostato come risposta, ma il payload della risposta JSON non è valido o è in un formato non corretto.
Risoluzione
Assicurati che l'input trasmesso al criterio da JSON a XML nell'elemento <Source>
sia valido e non in un formato corretto.
Per risolvere il problema relativo al criterio JSON to XML di esempio discusso sopra, passa una richiesta di payload JSON valida come segue:
{
"args" : {
"name"
: "Google"
}
}
OutputVariableIsNotAvailable
Codice di errore
steps.json2xml.OutputVariableIsNotAvailable
Corpo della risposta di errore
{ "fault": { "faultstring": "JSONToXML[policy_name]: Output variable is not available.", "detail": { "errorcode": "steps.json2xml.OutputVariableIsNotAvailable" } } }
Errore di esempio
{
"fault": {
"faultstring": "JSONToXML[Check-JSONToXML]: Output variable is not available.",
"detail": {
"errorcode": "steps.js
on2xml.OutputVariableIsNotAvailable"
}
}
}
Causa
Questo errore si verifica se la variabile specificata nell'elemento <Source>
del criterio JSON to XML è di tipo stringa e l'elemento <OutputVariable>
non è definito. L'elemento <OutputVariable>
è obbligatorio quando la variabile definita nell'elemento <Source>
è di tipo stringa.
Diagnosi
Identifica il criterio JSON to XML in cui si è verificato l'errore. Puoi trovarlo nell'elemento
faultstring
della risposta di errore. Ad esempio, nel seguentefaultstring
, il nome del criterio èCheck-JSONToXML
:"faultstring": "JSONToXML[Check-JSONToXML]: Output variable is n
ot available."Nel criterio JSON-XML non è stato possibile eseguire la convalida se manca
<OutputVariable>
.Il seguente criterio JSONToXML di esempio manca dell'elemento
<OutputVariable>
:<?xml version="1.0" encoding="UTF-8&quo>t<; standalone="yes"? JSONToXML async="false" continueOnError>=&quo<t;false&quo>t; enabled=&quo<t;true"> name<="JSON>ToXML<"<>/span> Displ<ayNameChe>ck-J<SONToXML/D>isplayNam<e Properties/ > Options< NullValueN>ULL/NullV<alue NamespaceBl>ockName#<namespaces/NamespaceBlock>Name < DefaultNamespa>c<eNodeName$default/D>efaultNam<espaceNodeNa>me < Namespa>ceSeparat<or:/NamespaceSepar>ator < TextNodeName>#text/Tex<tNodeName > < AttributeBlock>Name#attr<s/AttributeBlockName > < AttributePrefix@/At>tributePr<efix InvalidC>hars<Replacement_/InvalidCh>arsReplac<ement Object>RootE<lementNameRoot/Object>RootEleme<ntName Array>Root<ElementNameArray/Arra>yRoot<ElementN>ame < > ArrayItem<Element>N<ameItem/Ar>r
ayItemElementName /Options SourcePostalCode/Source /JSONToXMLDetermina il tipo di variabile specificato nell'elemento
<Source>
:- Individua il codice all'interno del proxy API in cui è stata definita per la prima volta la variabile.
- Una volta stabilito il criterio in cui la variabile viene definita e compilata per primo, devi stabilire il tipo di variabile come segue:
- Controlla il valore dell'attributo type (se presente).
- Se l'attributo type non è presente, la variabile viene considerata una stringa.
- Se il tipo della variabile è stringa, questa è la causa dell'errore. Per saperne di più sulle variabili comuni e sui relativi tipi, consulta il Riferimento sulle variabili.
Ad esempio, guarda la variabile
PostalCode
nel criterio da JSON a XML riportato sopra.Ad esempio, consideriamo che il criterio Assegna messaggio viene utilizzato per assegnare un valore a una variabile denominata
PostalCode
, come mostrato di seguito:<?xml version="1.0" encoding="UTF-8&quo>t<; standalone="yes"? AssignMessage async="false" continueOnError="f>alse&<quot; enabl>ed="true&quo<t; name=&quo>t;Ass<ign_PostalC>ode&q<uot; Displ>ayNameAss<ign_>PostalCode</Disp>layName < Pr>operties/ Ass<ignVar>iable < > Name<PostalCode/Name> < Value{"value&quo>t;:&<quot;56008"}/Value > < Ref/ /AssignVariable IgnoreUnresolvedVariablestrue>/<IgnoreUnresolv>e
dVariables AssignTo createNew="false" transport="http" type="request"/ /AssignMessageTieni presente che il tipo di variabile impostato in
<AssignVariable>
è di tipo stringa. La variabilePostalCode
è di tipo stringa.A questo punto, ricorda che la variabile
PostalCode
viene utilizzata nell'elemento<Source>
del criterio JSONToXML:<Source>PostalCode</Source>
Poiché
PostalCode
è di tipo stringa e manca l'elemento<OutputVariable>
, ricevi il codice di errore:steps.json2xml.OutputVariableIsNotAvailable
Risoluzione
Assicurati che se la variabile specificata nell'elemento <Source>
del criterio JSONToXML sia di tipo stringa, l'elemento <OutputVariable>
sia definito all'interno del criterio.
Per correggere il criterio JSONToXML discusso sopra, includi un elemento <OutputVariable>
come mostrato di seguito.
<?xml version="1.0" encoding="UTF-8&quo>t; <standalone="yes"?
JSONToXML async="false" continueOnError>="<false"> enabled="<true" n>ame=&qu<ot;JSONToXM>L"<
>DisplayName<Check-JSO>NToX<ML/Display>Name
<Properties/
>Options
< NullValueNUL>L/NullValue<
NamespaceBloc>kName#na<mespaces/NamespaceBlockNa>me
< DefaultNamespace>N<odeName$default/Def>aultNamespa<ceNodeName
> < Namespace>Separator:/<NamespaceSeparator>
< TextNodeName#t>ext/TextNod<eName
> <AttributeBlockNa>me#attrs/At<tributeBlockName
> < AttributePrefix@/Attr>ibutePrefix<
InvalidCha>rsRe<placement_/InvalidChar>sReplacemen<t
ObjectRo>otEle<mentNameRoot/ObjectRo>otElementNa<me
ArrayRo>otEl<ementNameArray/ArrayR>ootElem<entName<>/span>
< ArrayItemEl>ementNam<eItem/ArrayItem>Element<Name
> /Opti<ons
> <OutputVari>a
bleresponse/OutputVariable
SourcePostalCode/Source
/JSONToXML
InCompatibleTypes
Codice di errore
steps.json2xml.InCompatibleTypes
Corpo della risposta di errore
{ "fault": { "faultstring": "JSONToXML[policy_name]: String can not be assigned to message type.", "detail": { "errorcode": "steps.json2xml.InCompatibleTypes" } } }
Errore di esempio
{
"fault": {
"faultstring": "JSONToXML[JSONToXML_checktype]: String can not be assigned to message type.",
"detail": {
"errorcode": &qu
ot;steps.json2xml.InCompatibleTypes"
}
}
}
Causa
Questo errore si verifica se il tipo di variabile definita nell'elemento <Source>
e nell'elemento <OutputVariable>
non sono uguali. È obbligatorio che il tipo di variabili contenute nell'elemento <Source>
e nell'elemento <OutputVariable>
corrisponda.
I tipi validi sono message
e string
.
Diagnosi
Identifica il criterio da JSON a XML in cui si è verificato l'errore. Puoi trovarlo nell'elemento
faultstring
della risposta di errore. Ad esempio, nel seguentefaultstring
, il nome del criterio èJSONToXML_checktype
:"faultstring": "JSONToXML[JSONToXML_checktype]: String can not be assigned to
message type."Nel criterio JSON-XML non riuscito prendi nota dei valori specificati in
<OutputVariable>
e<Source>
.Considera il seguente criterio di esempio:
<?xml version="1.0" encoding="UTF-8&quo>t<; standalone="yes"? JSONToXML async="false" continueOnError="fal>se&qu<ot; enabled>="true" n<ame="JS>ONToX<ML_checktyp>e&quo<t; >DisplayNa<meJSONToX>ML_c<hecktype/D>isplayNam<e Properties/ > Options< NullValueN>ULL/NullV<alue NamespaceBl>ockName#<namespaces/NamespaceBlock>Name < DefaultNamespa>c<eNodeName$default/D>efaultNam<espaceNodeNa>me < Namespa>ceSeparat<or:/NamespaceSepar>ator < TextNodeName>#text/Tex<tNodeName > < AttributeBlock>Name#attr<s/AttributeBlockName > < AttributePrefix@/At>tributePr<efix InvalidC>hars<Replacement_/InvalidCh>arsReplac<ement Object>RootE<lementNameRoot/Object>RootEleme<ntName Array>Root<ElementNameArray/Arra>yRoot<ElementN>ame < ArrayIt>emElemen<tNameItem/Array>ItemE<lement>Name /<Options> < Output>Va
riableresponse/OutputVariable SourcePostalCode/Source /JSONToXMLDetermina il tipo di variabile specificato negli elementi
<Source>
e<OutputVariable>
:- Individua il codice all'interno del proxy API in cui sono state definite per la prima volta tutte queste variabili.
- Una volta stabilito il criterio in cui la variabile viene definita e compilata per primo, devi stabilire il tipo di variabile come segue:
- Controlla il valore dell'attributo type (se presente).
- Se l'attributo type non è presente, la variabile viene considerata come una stringa.
- Se il tipo di variabile specificato in
<Source>
è stringa, mentre il tipo<OutputVariable>
è messaggio o viceversa, è questa la causa dell'errore. Per saperne di più sulle variabili comuni e sui relativi tipi, consulta la documentazione di riferimento sulle variabili.
Considera ad esempio il criterio Assegna messaggio utilizzato per assegnare un valore a una variabile denominata
PostalCode
, come illustrato di seguito:<?xml version="1.0" encoding="UTF-8&quo>t<; standalone="yes"? AssignMessage async="false" continueOnError="f>alse&<quot; enabl>ed="true&quo<t; name=&quo>t;Ass<ign_PostalC>ode&q<uot; Displ>ayNameAss<ign_>PostalCode</Disp>layName < Pr>operties/ Ass<ignVar>iable < > Name<PostalCode/Name> < Value{"value&quo>t;:&<quot;56008"}/Value > < Ref/ /AssignVariable IgnoreUnresolvedVariablestrue>/<IgnoreUnresolv>e
dVariables AssignTo createNew="false" transport="http" type="request"/ /AssignMessageTieni presente che il tipo di variabile impostato in
<AssignVariable>
è di tipo stringa; pertanto la variabilePostalCode
è di tipo stringa.Ora ricorda che la variabile
PostalCode
viene utilizzata nell'elemento<Source>
del criterio JSONToXML:<Source>PostalCode</Source>
Analogamente, ricorda che la variabile
response
viene utilizzata nell'elemento<OutputVariable>
del criterio JSONToXML:<OutputVariable>response</OutputVariable>
Poiché
PostalCode
è di tipo stringa, mentre la variabileresponse
è di tipo messaggio, non sono tipi compatibili, perciò ricevi il codice di errore:steps.json2xml.InCompatibleTypes
L'errore riportato sopra può verificarsi anche se la variabile nell'elemento
<Source>
è di tipomessage
, mentre la variabile nell'elemento<OutputVariable>
è di tipo stringa.
Risoluzione
Assicurati che il tipo di variabile definita nell'elemento <Source>
e nell'elemento <OutputVariable>
sia sempre lo stesso. È obbligatorio che il tipo di variabili contenute nell'elemento <Source>
e nell'elemento <OutputVariable>
corrisponda. Assicurati quindi che il tipo di elementi <Source>
e <OutputVariable>
sia un tipo di stringa o di messaggio.
Per correggere il criterio da JSON a XML discusso sopra, puoi dichiarare un'altra variabile PostalCode_output
di tipo stringa utilizzando il criterio Assegna messaggio e utilizzare questa variabile nell'elemento <OutputVariable>
del criterio JSON to XML.
Criterio Assegna messaggio modificato:
<?xml version="1.0" encoding="UTF-8&quo>t<; standalone="yes"?
AssignMessage async="false" continueOnError="f>alse&<quot; enabl>ed="true&quo<t; name=&quo>t;Ass<ign_PostalC>ode&q<uot;
Displ>ayNameAss<ign_>PostalCode</Disp>layName
< Pr>operties/
Ass<ignVar>iable
< > Name<PostalCode/Name>
< Value{&quo>t;value&q<uot;>:"56008"<;}/Va>lue
< R>ef/
< /AssignVaria>ble
< AssignVariable
> Nam<ePostalCode_output/Name
> < Ref/
/AssignVariable
IgnoreUnresolvedVariablestrue>/<IgnoreUnresolv>e
dVariables
AssignTo createNew="false" transport="http" type="request"/
/AssignMessage
Criterio JSONToXML modificato:
<?xml version="1.0" encoding="UTF-8&quo>t<; standalone="yes"?
JSONToXML async="false" continueOnError>=&quo<t;false&quo>t; enabled="tr<ue" nam>e=&qu<ot;JSONToXM>L&quo<t;
>DisplayNa<meJSONToX>ML_c<hecktype/D>isplayNam<e
Properties/
> Options<
NullValueN>ULL/NullV<alue
NamespaceBl>ockName#<namespaces/NamespaceBlock>Name
< DefaultNamespa>c<eNodeName$default/D>efaultNam<espaceNodeNa>me
< Namespa>ceSeparat<or:/NamespaceSepar>ator
< TextNodeName>#text/Tex<tNodeName
> < AttributeBlock>Name#attr<s/AttributeBlockName
> < AttributePrefix@/At>tributePr<efix
InvalidC>hars<Replacement_/InvalidCh>arsReplac<ement
Object>RootE<lementNameRoot/Object>RootEleme<ntName
Array>Root<ElementNameArray/Arra>yRoot<ElementN>ame
< ArrayIt>emElementNameItem</ArrayItemEleme>ntNam<e
>/Options
< Outp>u<tVariableP>o
stalCode_output/OutputVariable
SourcePostalCode/Source
/JSONToXML
InvalidSourceType
Codice di errore
steps.json2xml.InvalidSourceType
Corpo della risposta di errore
{ "fault": { "faultstring": "JSONToXML[class invalid_class]: Invalid source type class invalid_class. Valid source types are [message, string].", "detail": { "errorcode": "steps.json2xml.InvalidSourceType" } } }
Errore di esempio
{
"fault": {
"faultstring": "JSONToXML[class java.lang.Integer]: Invalid source type class java.lang.Integer. Valid source types are [message, string].",
"detail": {
"errorcode": &qu
ot;steps.json2xml.InvalidSourceType"
}
}
}
Causa
Questo errore si verifica se il tipo di variabile utilizzato per definire l'elemento <Source>
non è valido.I tipi di variabile validi sono message
e string
.
Diagnosi
Identifica il tipo di origine non valida utilizzato nel criterio da JSON a XML. Puoi trovare queste informazioni nel messaggio di errore. Ad esempio, nell'errore seguente, il tipo non valido è Numero intero.
"faultstring": "JSONToXML[class java.lang.Integer]: Invalid source type class java.lang.Integer. Valid source types are [mess
age, string]."Esamina tutti i criteri da JSON a XML nel proxy API specifico in cui si è verificato l'errore. Nel criterio JSON-XML non riuscito, prendi nota del nome della variabile specificata in
<Source>
.Di seguito è riportato un criterio di esempio in cui è specificata la variabile denominata EmployeeID nell'elemento
<Source>
:
<?xml version="1.0" encoding="UTF-8&quo>t<; standalone="yes"?
JSONToXML async="false" continueOnError>=&quo<t;false&quo>t; enabled="<;true" >name=<"JSONT>oXML&<quot;
> Displa<yNameChec>k_So<urceType/D>isplayNam<e
Properties/
> Options<
NullValueN>ULL/NullV<alue
NamespaceBl>ockName#<namespaces/NamespaceBlock>Name
< DefaultNamespa>c<eNodeName$default/D>efaultNam<espaceNodeNa>me
< Namespa>ceSeparat<or:/NamespaceSepar>ator
< TextNodeName>#text/Tex<tNodeName
> < AttributeBlock>Name#attr<s/AttributeBlockName
> < AttributePrefix@/At>tributePr<efix
InvalidC>hars<Replacement_/InvalidCh>arsReplac<ement
Object>RootE<lementNameRoot/Object>RootEleme<ntName
Array>Root<ElementNameArray/Arra>yRoot<ElementN>ame
< ArrayIt>emEleme<ntNameItem/Arra>yItem<Elemen>tName
</Option>s<
Outpu>t
Variablerequest/OutputVariable
SourceEmployeeID/Source
/JSONToXML
Determina il tipo di variabile specificato nell'elemento
<Source>
:- Individua il codice all'interno del proxy API in cui è stata definita prima questa variabile.
- Una volta stabilito il criterio in cui la variabile viene definita e compilata per primo, devi stabilire il tipo di variabile come segue:
- Controlla il valore dell'attributo type (se presente).
- Se l'attributo type non è presente, la variabile viene considerata come una stringa.
- Se il tipo della variabile specificata in
<Source>
non è né un tipo di messaggio né un tipo di stringa, questo è la causa dell'errore. Per saperne di più sulle variabili comuni e sui relativi tipi, consulta la documentazione di riferimento sulle variabili.
Ad esempio, consideriamo che il criterio ExtractVariables viene utilizzato per estrarre il valore da un payload JSON e imposta il valore sulla variabile
EmployeeID
di tipo numero intero come mostrato di seguito:<?xml version="1.0" encoding="UTF-8&quo>t<; standalone="yes"? ExtractVariabl>es na<me=&qu>ot;Extr<actJSON>Varia<bles"<>/span> Sourc<erequest/Source JSONPayload V>ariable name=<"Em>ploy<eeID">; type=&q<uot;integ>er&qu<ot; > < JSONPath$.ID/J>S
ONPath /Variable /JSONPayload /ExtractVariablesA questo punto, ricorda che la variabile
EmployeeID
viene utilizzata nell'elemento<Source>
del criterio JSONToXML:<Source>EmployeeID</Source>
Poiché il tipo di questa variabile è
Integer
, che non è un tipo<Source>
valido, il proxy API non riesce e restituisce l'errore:steps.json2xml.InvalidSourceType
Risoluzione
Assicurati che il tipo di variabile utilizzato per specificare l'elemento <Source>
sia
valida. I tipi di <Source>
validi sono message
e string
.
Per evitare l'errore riportato sopra con il criterio JSONToXML, puoi utilizzare la richiesta che è di tipo message o qualsiasi altra stringa che è un payload JSON valido.