Sie lesen gerade die Dokumentation zu Apigee und Apigee Hybrid.
Apigee Edge-Dokumentation aufrufen.
SourceUnavailable
Fehlercode
steps.xml2json.SourceUnavailable
Fehlerantworttext
{ "fault": { "faultstring": "XMLToJSON[policy_name]: Source [source_variable] is not available", "detail": { "errorcode": "steps.xmltojson.SourceUnavailable" } } }
Beispiel für Fehlermeldung
{
"fault": {
"faultstring": "XMLToJSON[Convert-XMLToJSON]: Source response is not available",
"detail": {
"errorcode": "steps.xml2json.SourceUnavailable"
}
}
}
Ursache
Dieser Fehler tritt auf, wenn die im Element <Source>
der XML-zu-JSON-Richtlinie angegebene Variable Nachricht entweder:
- außerhalb des Gültigkeitsbereichs liegt (nicht in dem spezifischen Ablauf verfügbar ist, in dem die Richtlinie ausgeführt wird) oder
- nicht aufgelöst werden kann (nicht definiert ist)
Dieser Fehler tritt beispielsweise auf, wenn die XML-zu-JSON-Richtlinie im Anfrageablauf ausgeführt werden soll, das <Source>
-Element jedoch auf die Variable response
gesetzt ist, die im Anfrageablauf nicht vorhanden ist.
Diagnose
Ermitteln Sie die XML-zu-JSON-Richtlinie, in der der Fehler aufgetreten ist, sowie den Namen der nicht verfügbaren Variable. Sie finden beide Elemente im Element
faultstring
der Fehlerantwort. Beispiel: Im folgendenfaultstring
lautet der RichtliniennameConvert-XMLToJSON
und die Variableresponse
:"faultstring": "XMLToJSON[Convert-XMLToJSON]: Source response is not available"
Überprüfen Sie in der XML-Datei der XML-zu-JSON-Richtlinie, ob der Name der im Element
<Source>
festgelegten Variable mit dem Variablennamen übereinstimmt, der im Fehlerstring angegeben ist (Schritt 1 oben). Beispiel: Die folgende XML-zu-JSON-Richtlinie gibt eine Variable namensresponse
im Element<Source>
an, die dem Inhalt vonfaultstring
entspricht:<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <XMLToJSON async="false" continueOnError="false" enabled="true" name="Convert-XMLToJSON"> <DisplayName>Convert-XMLToJSON</DisplayName> <Properties/> <Format>google</Format> <OutputVariable>response</OutputVariable> <Source>response</Source> </XMLToJSON>
Prüfen Sie, ob die im Element
<Source>
verwendete Variable definiert und in dem Ablauf verfügbar ist, in dem die XML-zu-JSON-Richtlinie ausgeführt wird.Wenn die Variable entweder:
- außerhalb des Gültigkeitsbereichs liegt (nicht in dem spezifischen Ablauf verfügbar ist, in dem die Richtlinie ausgeführt wird) oder
- nicht aufgelöst werden kann (nicht definiert ist)
dann ist das die Ursache für den Fehler.
Beispiel: Die oben gezeigte XML-zu-JSON-Richtlinie muss im Anfrage-Ablauf ausgeführt werden. Denken Sie daran, dass die Variable
response
im Element<Source>
der XML-zu-JSON-Richtlinie verwendet wird: Die Antwortvariable ist nur im Antwortablauf verfügbar.Da die Antwortvariable im Anfrageablauf nicht vorhanden ist, erhalten Sie den Fehlercode:
steps.xml2json.SourceUnavailable
Lösung
Achten Sie darauf, dass die im Element <Source>
der fehlgeschlagenen XML-zu-JSON-Richtlinie definierte Variable definiert und in dem Ablauf vorhanden ist, in dem die Richtlinie ausgeführt wird.
Um die oben gezeigte XML-zu-JSON-Beispielrichtlinie zu korrigieren, können Sie das Element <Source>
so ändern, dass die Variable request
im Anfrageablauf verwendet wird:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<XMLToJSON async="false" continueOnError="false" enabled="true" name="Convert-XMLToJSON">
<DisplayName>Convert-XMLToJSON</DisplayName>
<Properties/>
<Format>google</Format>
<OutputVariable>response</OutputVariable>
<Source>request</Source>
</XMLToJSON>
ExecutionFailed
Fehlercode
steps.xml2json.ExecutionFailed
Fehlerantworttext
{ "fault": { "faultstring": "XMLToJSON[policy_name]: Execution failed. reason: Premature end of document while parsing at line [line_number](possibly around char [character_number])", "detail": { "errorcode": "steps.xml2json.ExecutionFailed" } } }
Mögliche Ursachen
Mögliche Ursachen für diesen Fehler:
Ursache | Beschreibung |
Fehlende Eingabe-Nutzlast | Die Eingabe-Nutzlast (XML) ist leer. |
Ungültige oder fehlerhafte Eingabe | Die an die "XML-to-JSON"-Richtlinie übergebene Eingabe (XML) ist ungültig oder fehlerhaft. |
Ursache: Fehlende Eingabe-Nutzlast
In der XML-zu-JSON-Richtlinie, wenn der Inhalt (Nutzlast) der Variablen im Element <Source>
leer ist, tritt dieser Fehler auf.
Wenn beispielsweise das Element <Source>
in der XML-zu-JSON-Richtlinie als request
- oder response
-Variable festgelegt wird und eine XML-Nutzlast enthalten soll, tritt dieser Fehler auf, wenn die Nutzlast leer ist.
Diagnose
Ermitteln Sie die XML-zu-JSON-Richtlinie, in der der Fehler aufgetreten ist. Sie finden diese Informationen im Element
faultstring
der Fehlerantwort. Im folgendenfaultstring
lautet der Richtlinienname beispielsweiseConvert-XMLToJSON
:"faultstring": "XMLToJSON[Convert-XMLToJSON]: Execution failed. reason: Premature end of document while parsing at line 1(possibly around char 0)"
Untersuchen Sie das Element
<Source>
in der XML-Datei der fehlgeschlagenen XML-zu-JSON-Richtlinie XML-Objekt und ermitteln Sie die angegebene Variable. In der folgenden XML-zu-JSON-Richtlinie wurde beispielsweise ein<Source>
-Element für die Anfrage festgelegt:<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <XMLToJSON async="false" continueOnError="false" enabled="true" name="Convert-XMLToJSON"> <DisplayName>Convert-XMLToJSON</DisplayName> <Properties/> <Options> <RecognizeNumber>true</RecognizeNumber> <RecognizeBoolean>true</RecognizeBoolean> <RecognizeNull>true</RecognizeNull> </Options> <OutputVariable>request</OutputVariable> <Source>request</Source> </XMLToJSON>
Prüfen Sie, ob die für das Element
<Source>
in der XML-zu-JSON-Richtlinie angegebene Variable leer ist. Wenn sie leer ist, ist dies die Ursache des Fehlers.Im oben gezeigten Beispiel einer XML-zu-JSON-Richtlinie war die vom Client gesendete Anfrage-Nutzlast (d. h. der Anfragetext) leer.
Beispiel:
curl -v "http://your_host_alias/v1/testxmltojson" -H "Content-Type: application/xml"
Dabei ist your_host_alias eine öffentlich zugängliche Domain, die für den Zugriff auf Ihre APIs verwendet wird, wie im Attribut
virtualhosts.hostAliases
in Ihrer Überschreibungsdatei konfiguriert. Siehe Konfigurationsüberschreibungen festlegen.Da die Anfrage-Nutzlast der XML leer ist, erhalten Sie den Fehlercode:
steps.xml2json.ExecutionFailed
Dieser Fehler kann auch auftreten, wenn das
<Source>
-Element auf „Antwort“ gesetzt ist, aber eine leere Nutzlast vom Backend-Server übergeben wird.
Lösung
Achten Sie darauf, dass die Eingabe, die über das Element <Source>
an die XML-zu-JSON-Richtlinie übergeben wird, eine gültige XML-Nutzlast ist und nicht leer ist.
Übergeben Sie eine gültige XML-Nutzlast, um das Problem mit der XML-zu-JSON-Beispielrichtlinie zu beheben. Beispiel:
Erstellen Sie eine Datei mit dem Namen „city.xml“ und folgendem Inhalt:
<?xml version="1.0" encoding="UTF-8"?> <root> <City>Bengaluru</City> <Name>Apigee</Name> <Pincode>560016</Pincode> </root>
Führen Sie folgenden API-Aufruf mit einem curl-Befehl aus:
curl -v "http://your_host_alias/v1/testxmltojson" -H "Content-Type: application/xml" -X POST -d @company.xml
Dabei ist your_host_alias eine öffentlich zugängliche Domain, die für den Zugriff auf Ihre APIs verwendet wird, wie im Attribut
virtualhosts.hostAliases
in Ihrer Überschreibungsdatei konfiguriert. Siehe Konfigurationsüberschreibungen festlegen.
Ursache: Ungültige oder fehlerhafte Eingabe
Wenn die XML-zu-JSON-Richtlinie eine Eingabe parst, die ungültig oder fehlerhaft ist, wird dieser Fehler angezeigt.
Beispiel: Die folgende ungültige XML-Datei wird als Eingabe für die XML-to-JSON-Richtlinie bereitgestellt,
<?xml version="1.0" encoding="UTF-8"?>
<root>
<City>Bengaluru</City>
<Name>Apigee</Name>
<Pincode>560016</Pincode>
dann erhalten Sie diese Fehlermeldung:
"faultstring": "XMLToJSON[Convert-XMLToJSON]: Execution failed. reason: Premature end of document while parsing at line 6(possibly around char 0)"
Diagnose
Ermitteln Sie die XML-zu-JSON-Richtlinie, in der der Fehler aufgetreten ist. Sie finden diese Informationen im Element
faultstring
der Fehlerantwort. Im folgendenfaultstring
lautet der Richtlinienname beispielsweiseConvert-XMLToJSON
:"faultstring": "XMLToJSON[Convert-XMLToJSON]: Execution failed. reason: Premature end of document while parsing at line 6(possibly around char 0)"
Prüfen Sie das
<Source>
-Element, das in der XML-Datei der fehlgeschlagenen XML-zu-JSON-Richtlinie angegeben ist. In der folgenden XML-zu-JSON-Richtlinie ist beispielsweise das<Source>
-Element auf die Variablerequest
festgelegt:<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <XMLToJSON async="false" continueOnError="false" enabled="true" name="Convert-XMLToJSON"> <DisplayName>Convert-XMLToJSON</DisplayName> <Properties/> <Options> <RecognizeNumber>true</RecognizeNumber> <RecognizeBoolean>true</RecognizeBoolean> <RecognizeNull>true</RecognizeNull> </Options> <OutputVariable>request</OutputVariable> <Source>request</Source> </XMLToJSON>
Überprüfen Sie, ob die im Element
<Source>
für die XML-zu-JSON-Richtlinie angegebene Eingabe eine gültige XML-Nutzlast ist. Wenn die Eingabe ungültig oder fehlerhaft ist, ist dies die Ursache des Fehlers.In der oben gezeigten Beispielrichtlinie für XML-zu-JSON wurde die folgende ungültige XML-Datei über die Datei
city.xml
an die Richtlinie "Variablen extrahieren" übergeben:<?xml version="1.0" encoding="UTF-8"?> <root> <City>Bengaluru</City> <Name>Apigee</Name> <Pincode>560016</Pincode>
Hier ist der Beispiel-API-Aufruf, der zeigt, wie die Anfrage übergeben wurde:
curl -v "http://your_host_alias/v1/testxmltpjson" -H "Content-Type: application/xml" -X POST -d @city.xml
Dabei ist your_host_alias eine öffentlich zugängliche Domain, die für den Zugriff auf Ihre APIs verwendet wird, wie im Attribut
virtualhosts.hostAliases
in Ihrer Überschreibungsdatei konfiguriert. Siehe Konfigurationsüberschreibungen festlegen.Die an die API übergebene XML-Nutzlast ist ungültig, da die XML-Datei kein End-Tag für das
<root>
-Element enthält. Sie erhalten deshalb den Fehlercode:steps.xml2json.ExecutionFailed
Dieser Fehler kann auch auftreten, wenn das Element
<Source>
auf „Antwort“ gesetzt wurde, die Nutzlast der XML-Antwort vom Back-End-Server jedoch ungültig oder fehlerhaft ist.
Lösung
Achten Sie darauf, dass die Eingabe, die über das Element <Source>
an eine XML-zu-JSON-Richtlinie übergeben wird, gültig und nicht fehlerhaft ist.
Übergeben Sie eine gültige XML-Nutzlastanfrage, um das Problem mit der oben beschriebenen Beispielrichtlinie für XML-zu-JSON zu beheben:
<?xml version="1.0" encoding="UTF-8"?>
<root>
<City>Bengaluru</City>
<Name>Apigee</Name>
<Pincode>560016</Pincode>
</root>
OutputVariableIsNotAvailable
Fehlercode
steps.xml2json.OutputVariableIsNotAvailable
Fehlerantworttext
{ "fault": { "faultstring": "XMLToJSON[policy_name]: Output variable is not available.", "detail": { "errorcode": "steps.xml2json.OutputVariableIsNotAvailable" } } }
Beispiel für Fehlermeldung
{
"fault": {
"faultstring": "XMLToJSON[Convert-XMLToJSON]: Output variable is not available.",
"detail": {
"errorcode": "steps.xml2json.OutputVariableIsNotAvailable"
}
}
}
Ursache
Dieser Fehler tritt auf, wenn die im <Source>
-Element der XML-to-JSON-Richtlinie angegebene Variable den Typ "String" aufweist und das Element <OutputVariable>
nicht definiert ist. Das Element <OutputVariable>
ist obligatorisch, wenn die im Element <Source>
definierte Variable vom Typ string
" ist.
Diagnose
Ermitteln Sie die XML-to-JSON-Richtlinie, in der der Fehler aufgetreten ist. Dies finden Sie im Element
faultstring
der Fehlerantwort. Im folgendenfaultstring
lautet der Richtlinienname beispielsweiseConvert-XMLToJSON
:"faultstring": "XMLToJSON[Convert-XMLToJSON]: Output variable is not available."
Prüfen Sie in der fehlgeschlagenen XML-to-JSON-Richtlinie, ob
<OutputVariable>
fehlt.Hier ist ein Beispiel für eine XML-zu-JSON-Richtlinie, bei der das Element
<OutputVariable>
fehlt:<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <XMLToJSON async="false" continueOnError="false" enabled="true" name="Convert-XMLToJSON"> <DisplayName>Convert-XMLToJSON</DisplayName> <Properties/> <Format>google</Format> <Source>TrackingNumber</Source> </XMLToJSON>
Ermitteln Sie den im
<Source>
-Element angegebenen Variablentyp:- Suchen Sie den Code innerhalb des API-Proxy-Bundles, wo die Variable zuerst definiert wurde.
- Nachdem Sie die Richtlinie ermittelt haben, in der die Variable zuerst definiert und ausgefüllt wird, müssen Sie den Typ dieser Variable so bestimmen:
- Prüfen Sie den Wert des Typattributs (falls vorhanden).
- Wenn das Typattribut nicht vorhanden ist, wird die Variable als String betrachtet.
- Wenn der Typ der Variable
string
ist, ist dies die Ursache des Fehlers. Weitere Informationen zu gängigen Variablen und ihren Typen finden Sie in der Variablenreferenz.
Betrachten Sie beispielsweise die Variable „TrackingNumber“ in der obigen XML-zu-JSON-Richtlinie. Sie ist vom Typ „String“. Betrachten Sie nun eine Richtlinie „Nachricht zuweisen“, die verwendet wird, um den Wert einer Variablen namens
TrackingNumber
so festzulegen:<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <AssignMessage async="false" continueOnError="false" enabled="true" name="Assign_TrackingNumber"> <DisplayName>Assign_TrackingNumber</DisplayName> <Properties/> <AssignVariable> <Name>TrackingNumber</Name> <Value><![CDATA[<Code>560075393539898</Code>]]></Value> <Ref/> </AssignVariable> <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables> <AssignTo createNew="false" transport="http" type="request"/> </AssignMessage>
Der in
<AssignVariable>
festgelegte Variablentyp ist String. Die VariableTrackingNumber
ist also vom Typ String.Denken Sie nun daran, dass die Variable
TrackingNumber
im Element<Source>
der XML-zu-JSON-Richtlinie verwendet wird:<Source>TrackingNumber</Source>
Da
TrackingNumber
vom Typ „String“ ist und<OutputVariable>
in der Richtlinie fehlt, erhalten Sie den Fehlercode:steps.xml2json.OutputVariableIsNotAvailable
Lösung
Wenn die im Element <Source>
der XML-zu-JSON-Richtlinie angegebene Variable den Typ "String" hat, ist in diesem Fall das Element <OutputVariable>
obligatorisch.
Um die oben erläuterte XML-to-JSON-Richtlinie zu korrigieren, fügen Sie wie unten gezeigt das Element <OutputVariable>
hinzu.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<XMLToJSON async="false" continueOnError="false" enabled="true" name="Convert-XMLToJSON">
<DisplayName>Convert-XMLToJSON</DisplayName>
<Properties/>
<Format>google</Format>
<OutputVariable>response</OutputVariable>
<Source>TrackingNumber</Source>
</XMLToJSON>
InCompatibleTypes
Fehlercode
steps.xml2json.InCompatibleTypes
Fehlerantworttext
{ "fault": { "faultstring": "XMLToJSON[policy_name]: String can not be assigned to message type.", "detail": { "errorcode": "steps.xml2json.InCompatibleTypes" } } }
Beispiel für Fehlermeldung
{
"fault": {
"faultstring": "XMLToJSON[XMLToJSON_CheckType]: String can not be assigned to message type.",
"detail": {
"errorcode": "steps.xml2json.InCompatibleTypes"
}
}
}
Ursache
Dieser Fehler tritt auf, wenn der Typ der im Element <Source>
definierten Variable und das Element <OutputVariable>
nicht identisch sind. Der Typ der im Element <Source>
enthaltenen Variablen muss mit dem Typ der im Element <OutputVariable>
enthaltenden Variable übereinstimmen.
The valid types are message and string.
Diagnose
Ermitteln Sie die XML-to-JSON-Richtlinie, in der der Fehler aufgetreten ist. Dies finden Sie im Element
faultstring
der Fehlerantwort. Im folgendenfaultstring
lautet der Richtlinienname beispielsweiseXMLToJSON_CheckType
:"faultstring": "XMLToJSON[XMLToJSON_CheckType]: String can not be assigned to message type."
Notieren Sie sich in der fehlgeschlagenen XML-to-JSON-Richtlinie die in
<OutputVariable>
angegebenen Werte.Hier ist ein Beispiel für eine XML-zu-JSON-Richtlinie, bei der das Element
<OutputVariable>
fehlt:<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <XMLToJSON async="false" continueOnError="false" enabled="true" name="XMLToJSON_CheckType"> <DisplayName>XMLToJSON_CheckType</DisplayName> <Properties/> <Format>google</Format> <OutputVariable>request</OutputVariable> <Source>TrackingNumber</Source> </XMLToJSON>
Legen Sie den Variablentyp fest, der in den Elementen
<Source>
und<OutputVariable>
angegeben ist:- Suchen Sie den Code im API-Proxy-Bundle, wo jede dieser Variablen zuerst definiert wurde.
- Nachdem Sie die Richtlinie ermittelt haben, in der die Variable zuerst definiert und ausgefüllt wird, müssen Sie den Typ dieser Variable so bestimmen:
- Prüfen Sie den Wert des Typattributs (falls vorhanden).
- Wenn das Typattribut nicht vorhanden ist, wird die Variable als String betrachtet.
- Wenn der Typ der in
<Source>
angegebenen Variablestring
und der Typ von<OutputVariable>
„Nachricht“ ist (oder umgekehrt), ist dies die Ursache des Fehlers. Weitere Informationen zu gängigen Variablen und ihren Typen finden Sie in der Variablenreferenz.
Als Beispiel können Sie die Richtlinie „Nachricht zuweisen“ verwenden, um einen Wert auf eine Variable namens
TrackingNumber
festzulegen. Beispiel:<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <AssignMessage async="false" continueOnError="false" enabled="true" name="Assign_TrackingNumber"> <DisplayName>Assign_TrackingNumber</DisplayName> <Properties/> <AssignVariable> <Name>TrackingNumber</Name> <Value><![CDATA[<Code>560075393539898</Code>]]></Value> <Ref/> </AssignVariable> <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables> <AssignTo createNew="false" transport="http" type="request"/> </AssignMessage>
Der in
<AssignVariable>
festgelegte Variablentyp ist String. Die VariableTrackingNumber
ist also vom Typ String.Denken Sie nun daran, dass die Variable
TrackingNumber
im Element<Source>
der XML-zu-JSON-Richtlinie verwendet wird:<Source>TrackingNumber</Source>
Denken Sie außerdem daran, dass die Variable
request
im Element<OutputVariable>
der XML-zu-JSON-Richtlinie verwendet wird:<OutputVariable>request</OutputVariable>
Da
TrackingNumber
vom Typstring
ist, während die Variableresponse
vom Typmessage
ist, erhalten Sie den folgenden Fehlercode, da diese Typen inkompatibel sind:steps.xml2json.InCompatibleTypes
Der obige Fehler kann auch auftreten, wenn die Variable im
<Source>
-Element vom Typmessage
ist, die Variable im<OutputVariable>
-Element jedoch vom Typ String ist.
Lösung
Achten Sie darauf, dass die Art der Variablen, die im Element <Source>
und im Element <OutputVariable>
definiert sind, immer gleich ist. Der Typ der im Element <Source>
enthaltenen Variablen muss mit dem Typ der im Element <OutputVariable>
enthaltenden Variable übereinstimmen.
Um die oben beschriebene XML-zu-JSON-Richtlinie zu korrigieren, können Sie eine weitere Variable TrackingNumber_output
vom Typ string
mit der Richtlinie „Nachricht zuweisen“ angeben und diese Variable im Element <OutputVariable>
der XML-zu-JSON-Richtlinie verwenden.
Geänderte Richtlinie "Nachricht zuweisen":
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<AssignMessage async="false" continueOnError="false" enabled="true" name="Assign_TrackingNumber">
<DisplayName>Assign_TrackingNumber</DisplayName>
<Properties/>
<AssignVariable>
<Name>TrackingNumber</Name>
<Value><![CDATA[<Code>560098</Code>]]></Value>
<Ref/>
</AssignVariable>
<AssignVariable>
<Name>TrackingNumber_output</Name>
<Ref/>
</AssignVariable>
<IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables>
<AssignTo createNew="false" transport="http" type="request"/>
</AssignMessage>
Geänderte XML-zu-JSON-Richtlinie:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<XMLToJSON async="false" continueOnError="false" enabled="true" name="XMLToJSON_CheckType">
<DisplayName>XMLToJSON_CheckType</DisplayName>
<Properties/>
<Format>google</Format>
<OutputVariable>TrackingNumber_output</OutputVariable>
<Source>TrackingNumber</Source>
</XMLToJSON>
InvalidSourceType
Fehlercode
steps.xml2json.InvalidSourceType
Fehlerantworttext
{ "fault": { "faultstring": "XMLToJSON[class invalid_class]: Invalid source type class invalid_class. Valid source types are [message, string].", "detail": { "errorcode": "steps.xml2json.InvalidSourceType" } } }
Beispiel für Fehlermeldung
{
"fault": {
"faultstring": "XMLToJSON[class java.lang.Integer]: Invalid source type class java.lang.Integer. Valid source types are [message, string].",
"detail": {
"errorcode": "steps.xml2json.InvalidSourceType"
}
}
}
Ursache
Dieser Fehler tritt auf, wenn der Variablentyp, der zum Definieren des <Source>
-Elements verwendet wird, ungültig ist. Die gültigen Variablentypen sind message
und string
.
Diagnose
Ermitteln Sie den ungültigen Quelltyp, der in der XML-zu-JSON-Richtlinie verwendet wird. Diese Information finden Sie in der Fehlermeldung. Im folgenden Fehler ist der ungültige Typ beispielsweise „Ganzzahl“.
"faultstring": "XMLToJSON[class java.lang.Integer]: Invalid source type class java.lang.Integer. Valid source types are [message, string]."
Untersuchen Sie alle „XML-to-JSON“-Richtlinien in dem API-Proxy, in dem der Fehler aufgetreten ist. Notieren Sie sich in der fehlgeschlagenen „XML-to-JSON“-Richtlinie den Namen der in
<Source>
angegebenen Variable.<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <XMLToJSON async="false" continueOnError="false" enabled="true" name="XMLToJSON_CheckType"> <DisplayName>XMLToJSON_CheckType</DisplayName> <Properties/> <Format>google</Format> <OutputVariable>response</OutputVariable> <Source>BookCode</Source> </XMLToJSON>
Ermitteln Sie den im
<Source>
-Element angegebenen Variablentyp:- Suchen Sie den Code innerhalb des API-Proxy-Bundles, wo die Variable zuerst definiert wurde.
- Nachdem Sie die Richtlinie ermittelt haben, in der die Variable zuerst definiert und ausgefüllt wird, müssen Sie den Typ dieser Variable so bestimmen:
- Prüfen Sie den Wert des Typattributs (falls vorhanden).
- Wenn das Typattribut nicht vorhanden ist, wird die Variable als String betrachtet.
- Wenn der Typ der in
<Source>
angegebenen Variable weder der Typ "message
" noch "string
" ist, ist dies die Ursache des Fehlers. Weitere Informationen zu gängigen Variablen und ihren Typen finden Sie in der Variablenreferenz.
Betrachten Sie als Beispiel eine ExtractVariables-Richtlinie, mit der der Wert aus einer XML-Nutzlast extrahiert wird. Anschließend wird der Wert auf die Variable
BookCode
alsinteger
-Typ festgelegt, wie unten dargestellt:<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ExtractVariables async="false" continueOnError="false" enabled="true" name="Extract_BookCode"> <DisplayName>Extract_BookCode</DisplayName> <Properties/> <Source>request</Source> <XMLPayload stopPayloadProcessing="false"> <Variable name="BookCode" type="integer"> <XPath>/root/BookCode</XPath> </Variable> </XMLPayload> </ExtractVariables>
Denken Sie nun daran, dass die Variable
BookCode
im Element<Source>
der XML-zu-JSON-Richtlinie verwendet wird:<Source>BookCode</Source>
Da der Typ dieser Variable
Integer
ist, aber kein gültiger<Source>
-Typ ist, schlägt der API-Proxy mit folgendem Fehler fehl:steps.xml2json.InvalidSourceType
Lösung
Prüfen Sie, ob der Typ der Variable, die zur Angabe des Elements <Source>
verwendet wird, gültig ist. Gültige <Source>
-Typen sind message
und string
.
Um den oben genannten Fehler in der XML-zu-JSON-Richtlinie zu vermeiden, können Sie die Variable request
vom Typ message
oder einen anderen String verwenden, der eine gültige XML-Nutzlast ist.