Estás viendo la documentación de Apigee Edge.
  Ve a la
     Documentación de Apigee X. información
SourceUnavailable
Código de error
steps.xml2json.SourceUnavailable
Cuerpo de la respuesta de error
{ "fault": { "faultstring": "XMLToJSON[policy_name]: Source [source_variable] is not available", "detail": { "errorcode": "steps.xmltojson.SourceUnavailable" } } }
Ejemplo de mensaje de error
{
    "fault": {
        "faultstring": "XMLToJSON[Convert-XMLToJSON]: Source response is not available",
        "detail": {
            "errorcode": "steps.xml2json.SourceUnavailable"
        }
    }
}
Causa
Este error se produce si el mensaje o la variable de string especificada en el elemento <Source> de la política de XML a JSON es la siguiente:
- fuera de alcance (no disponible en el flujo específico en el que se ejecuta la política) o
- no se pueden resolver (no está definida)
Por ejemplo, este error ocurre si se supone que la política de XML a JSON se ejecutará en el flujo de solicitud, pero el elemento <Source> se establece en la variable response, que no existe en el flujo de solicitud.
Diagnóstico
- Identifica la política de XML a JSON en la que se generó el error y el nombre de la variable que no está disponible. Puedes encontrar ambos elementos en el elemento - faultstringde la respuesta de error. Por ejemplo, en el siguiente valor- faultstring, el nombre de la política es- Convert-XMLToJSONy la variable es- response:- "faultstring": "XMLToJSON[Convert-XMLToJSON]: Source response is not available"
- En el archivo XML de políticas de XML a JSON con errores, verifica que el nombre de la variable establecida en el elemento - <Source>coincida con el nombre de la variable identificado en la string con errores (paso n.º 1 anterior). Por ejemplo, la siguiente política de XML a JSON especifica una variable llamada- responseen el elemento- <Source>, que coincide con lo que hay en la- faultstring:- <?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>
- Determina si la variable que se usa en el elemento - <Source>está definida y disponible en el flujo en el que se ejecuta la política de XML a JSON.
- Verifica si la variable tiene una de las siguientes características: - fuera de alcance (no disponible en el flujo específico en el que se ejecuta la política) o
- no se puede resolver (no está definido)
 - entonces esa es la causa del error. - Como ejemplo, supongamos que la política de XML a JSON anterior se debe ejecutar en el flujo de la solicitud. Recuerda que la variable - responsese usa en el elemento- <Source>de la política de XML a JSON. La variable de respuesta solo está disponible en el flujo de respuesta.- Debido a que la variable de respuesta no existe en el flujo de solicitud, recibes el siguiente código de error: - steps.xml2json.SourceUnavailable
Solución
Asegúrate de que la variable establecida en el elemento <Source> del archivo XML de políticas de XML a JSON con errores esté definida y exista en el flujo en el que se ejecuta la política.
A fin de corregir el ejemplo de la política de XML a JSON anterior, puedes modificar el elemento <Source> para usar la variable request como se encuentra en el flujo de solicitud:
<?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
Código de error
steps.xml2json.ExecutionFailed
Cuerpo de la respuesta del error
{ "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" } } }
Causas posibles
Las siguientes son las posibles causas de este error:
| Causa | Descripción | 
| Carga útil de entrada faltante | La carga útil de entrada (XML) está vacía. | 
| Entrada no válida o con formato incorrecto | La entrada (XML) que se pasa a la política de XML a JSON no es válida o el formato es incorrecto. | 
Causa: Carga útil de entrada faltante
En la política de XML a JSON si el contenido (carga útil) de la variable especificada en el elemento <Source> está vacío, se produce este error.
Por ejemplo, si el elemento <Source> de la política XML a JSON se establece como una variable request o response y se supone que contiene una carga útil XML, este error se genera si la carga útil está vacía.
Diagnóstico
- Identifica la política de XML a JSON en la que se produjo el error. Puedes encontrar esta información en el elemento - faultstringde la respuesta de error. Por ejemplo, en el siguiente- faultstring, el nombre de la política es- Convert-XMLToJSON:- "faultstring": "XMLToJSON[Convert-XMLToJSON]: Execution failed. reason: Premature end of document while parsing at line 1(possibly around char 0)"
- Examina el elemento - <Source>en el archivo XML de políticas de XML a JSON con errores y determina la variable especificada. Por ejemplo, la siguiente política de XML a JSON tiene configurado el elemento- <Source>:- <?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>
- Comprueba si la variable especificada para el elemento - <Source>en la política de XML a JSON está vacía. Si está vacía, esa es la causa del error.- En la política de XML a JSON de ejemplo anterior, la carga útil de la solicitud (es decir, el cuerpo de la solicitud) que envió el cliente estaba vacía. - Por ejemplo: - curl -v "http://<org>-<env>.apigee.net/v1/testxmltojson" -H "Content-Type: application/xml"- Debido a que la carga útil de la solicitud XML está vacía, recibirás el siguiente código de error: - steps.xml2json.ExecutionFailed- Este error también puede ocurrir si el elemento - <Source>está configurado como respuesta, pero el servidor de backend pasa una carga útil vacía.
Solución
Asegúrate de que la entrada que se pasa a la política de XML a JSON a través del elemento <Source> sea una carga útil de XML válida y no esté vacía.
Para corregir el problema con la política de XML a JSON, pasa una carga útil de XML válida. Por ejemplo:
- Crea un archivo llamado city.xml con el siguiente contenido: - <?xml version="1.0" encoding="UTF-8"?> <root> <City>Bengaluru</City> <Name>Apigee</Name> <Pincode>560016</Pincode> </root>
- Realiza la llamada a la API con un comando cURL de la siguiente manera: - curl -v "http://<org>-<env>.apigee.net/v1/testxmltojson" -H "Content-Type: application/xml" -X POST -d @company.xml
Causa: Entrada no válida o con formato incorrecto
Si la política de XML a JSON analiza una entrada que no es válida o tiene un formato incorrecto, aparecerá este error.
Por ejemplo, si se proporciona el siguiente XML no válido como entrada a la política de XML a JSON,
<?xml version="1.0" encoding="UTF-8"?>
<root>
   <City>Bengaluru</City>
   <Name>Apigee</Name>
   <Pincode>560016</Pincode>
aparecerá el siguiente error:
"faultstring": "XMLToJSON[Convert-XMLToJSON]: Execution failed. reason: Premature end of document while parsing at line 6(possibly  around char 0)"
Diagnóstico
- Identifica la política de XML a JSON en la que se produjo el error. Puedes encontrar esta información en el elemento - faultstringde la respuesta de error. Por ejemplo, en el siguiente- faultstring, el nombre de la política es- Convert-XMLToJSON:- "faultstring": "XMLToJSON[Convert-XMLToJSON]: Execution failed. reason: Premature end of document while parsing at line 6(possibly around char 0)"
- Examina el elemento - <Source>especificado en el archivo XML de política de XML a JSON con errores. Por ejemplo, la siguiente política de XML a JSON tiene el elemento- <Source>configurado en la variable- request:- <?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>
- Valida si la entrada especificada en el elemento - <Source>en la política de XML a JSON es una carga útil de XML válida. Si la entrada no es válida o incorrecto, esa es la causa del error.- En el ejemplo de política de XML a JSON anterior, el siguiente XML no válido se pasó a la política para extraer variables a través del archivo - city.xml:- <?xml version="1.0" encoding="UTF-8"?> <root> <City>Bengaluru</City> <Name>Apigee</Name> <Pincode>560016</Pincode>- A continuación, la llamada a la API de muestra que muestra cómo se pasó la solicitud: - curl -v "http://<org>-<env>.apigee.net/v1/testxmltpjson" -H "Content-Type: application/xml" -X POST -d @city.xml- La carga útil XML que se pasa a la API no es válida, ya que el XML no tiene una etiqueta final para el elemento - <root>. Recibirás el siguiente código de error:- steps.xml2json.ExecutionFailed- Este error también se puede generar si el elemento - <Source>está configurado como respuesta, pero la carga útil de la respuesta XML del servidor de backend no es válida o tiene un formato incorrecto.
Solución
Asegúrate de que la entrada que se pasa a la política de XML a JSON mediante el elemento <Source> sea válida y no tenga formato incorrecto.
Para corregir el problema con la política de XML a JSON de ejemplo que se mencionó antes, pasa una solicitud de carga útil de XML válida de la siguiente manera:
<?xml version="1.0" encoding="UTF-8"?>
<root>
   <City>Bengaluru</City>
   <Name>Apigee</Name>
   <Pincode>560016</Pincode>
</root>
OutputVariableIsNotAvailable
Código de error
steps.xml2json.OutputVariableIsNotAvailable
Cuerpo de la respuesta de error
{ "fault": { "faultstring": "XMLToJSON[policy_name]: Output variable is not available.", "detail": { "errorcode": "steps.xml2json.OutputVariableIsNotAvailable" } } }
Ejemplo de mensaje de error
{
    "fault": {
        "faultstring": "XMLToJSON[Convert-XMLToJSON]: Output variable is not available.",
        "detail": {
            "errorcode": "steps.xml2json.OutputVariableIsNotAvailable"
        }
    }
}
Causa
Este error se genera si la variable especificada en el elemento <Source> de la política de XML a JSON es de tipo string y no se define el elemento <OutputVariable>. El elemento <OutputVariable> es obligatorio cuando la variable definida en el elemento <Source> es del tipo string.
Diagnóstico
- Identifica la política de XML a JSON en la que se produjo el error. Puedes encontrarla en el elemento - faultstringde la respuesta de error. Por ejemplo, en el siguiente- faultstring, el nombre de la política es- Convert-XMLToJSON:- "faultstring": "XMLToJSON[Convert-XMLToJSON]: Output variable is not available."
- En la política de XML a JSON con errores, valida si falta la - <OutputVariable>.- A continuación, se muestra un ejemplo de la política de XML a JSON que contiene un elemento - <OutputVariable>.- <?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>
- Determina el tipo de variable especificado en el elemento - <Source>:- Localiza el código dentro del paquete del proxy de API, en el que la variable se definió primero.
- Una vez que determines la política en la que se define y propaga la variable primero, debes determinar el tipo de esa variable de la siguiente manera:- Comprueba el valor del atributo del tipo (si está presente).
- Si el atributo de tipo no está presente, la variable se considera una string.
 
- Si el tipo de variable es string, esa es la causa del error. Puedes obtener información sobre las variables comunes y sus tipos en la referencia de variables.
 - Por ejemplo, observa la variable TrackingNumber en la política de XML a JSON anterior. Es de tipo string. Ahora, considera una política de mensaje asignado que se usa para establecer el valor en una variable llamada - TrackingNumber, como se muestra a continuación:- <?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>- Ten en cuenta que el tipo de variable establecido mediante - <AssignVariable>es una string. Entonces, la variable- TrackingNumberes de tipo string.- Ahora, recuerda que la variable - TrackingNumberse usa en el elemento- <Source>de la política de XML a JSON:- <Source>TrackingNumber</Source>- Dado que - TrackingNumberes de tipo string y falta el- <OutputVariable>en la política, recibirás el siguiente código de error:- steps.xml2json.OutputVariableIsNotAvailable
Solución
Asegúrate de que, si la variable especificada en el elemento <Source> de la política de XML a JSON es de tipo string, el elemento <OutputVariable> es obligatorio en este caso.
Para corregir la política de XML a JSON anterior, incluye el elemento <OutputVariable> como se muestra a continuación.
<?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
Código de error
steps.xml2json.InCompatibleTypes
Cuerpo de la respuesta de error
{ "fault": { "faultstring": "XMLToJSON[policy_name]: String can not be assigned to message type.", "detail": { "errorcode": "steps.xml2json.InCompatibleTypes" } } }
Ejemplo de mensaje de error
{
    "fault": {
        "faultstring": "XMLToJSON[XMLToJSON_CheckType]: String can not be assigned to message type.",
        "detail": {
            "errorcode": "steps.xml2json.InCompatibleTypes"
        }
    }
}
Causa
Este error se genera si el tipo de variable definida en el elemento <Source> y el elemento <OutputVariable> no son iguales. Es obligatorio que el tipo de variables incluidas dentro del elemento <Source> y el elemento <OutputVariable> coincidan.
The valid types are message and string.
Diagnóstico
- Identifica la política de XML a JSON en la que se produjo el error. Puedes encontrarla en el elemento - faultstringde la respuesta de error. Por ejemplo, en el siguiente- faultstring, el nombre de la política es- XMLToJSON_CheckType:- "faultstring": "XMLToJSON[XMLToJSON_CheckType]: String can not be assigned to message type."
- En la política de XML a JSON con errores, ten en cuenta los valores especificados en - <OutputVariable>.- A continuación, se muestra una política de XML a JSON de ejemplo que no tiene el elemento - <OutputVariable>- <?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>
- Determina el tipo de variable especificada en los elementos - <Source>y- <OutputVariable>:- Ubica el código en el paquete del proxy de API, en el que se definió primero cada una de estas variables.
- Una vez que determines la política en la que se define y propaga la variable primero, debes determinar el tipo de esa variable de la siguiente manera:- Comprueba el valor del atributo del tipo (si está presente).
- Si el atributo de tipo no está presente, la variable se considera una string.
 
- Si el tipo de variable especificada en <Source>esstringmientras que el tipo de<OutputVariable>es mensaje o viceversa, esa es la causa del error. Puedes obtener información sobre las variables comunes y sus tipos en la referencia de variables.
 - A modo de ejemplo, política de mensaje asignado que se usa para establecer un valor en una variable llamada - TrackingNumbercomo se muestra a continuación:- <?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>- Ten en cuenta que el tipo de variable establecido mediante - <AssignVariable>es una string. Entonces, la variable- TrackingNumberes de tipo string.- Ahora, recuerda que la variable - TrackingNumberse usa en el elemento- <Source>de la política de XML a JSON:- <Source>TrackingNumber</Source>- Del mismo modo, recuerda que la variable - requestse usa en el elemento- <OutputVariable>de la política de XML a JSON:- <OutputVariable>request</OutputVariable>- Debido a que - TrackingNumberes de tipo- string, mientras que la variable- responsees de tipo- message, son tipos incompatibles, por lo que recibes el siguiente código de error:- steps.xml2json.InCompatibleTypes- El error anterior también se puede generar si la variable en el elemento - <Source>es de tipo- message, pero la variable en el elemento- <OutputVariable>es de tipo string.
Solución
Asegúrate de que el tipo de variable que se define en el elemento <Source> y el elemento <OutputVariable> siempre sea el mismo. Es obligatorio que el tipo de variables incluidas dentro del elemento <Source> y el elemento <OutputVariable> coincidan.
Para corregir la política de XML a JSON anterior, puedes declarar otra variable TrackingNumber_output de tipo string mediante la política de mensaje asignado y usar esta variable en el elemento <OutputVariable> de la política de XML a JSON.
Se modificó la política de mensaje asignado:
<?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>
Se modificó la política de XML a JSON:
  <?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
Código de error
steps.xml2json.InvalidSourceType
Cuerpo de la respuesta de error
{ "fault": { "faultstring": "XMLToJSON[class invalid_class]: Invalid source type class invalid_class. Valid source types are [message, string].", "detail": { "errorcode": "steps.xml2json.InvalidSourceType" } } }
Ejemplo de mensaje de error
{
    "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"
        }
    }
}
Causa
Este error se genera si el tipo de variable que se usa para definir el elemento <Source> no es válido. Los tipos de variable válidos son message y string.
Diagnóstico
- Identifica el tipo de fuente no válido que se usa en la política de XML a JSON. Puedes encontrar esta información en el mensaje de error. Por ejemplo, en el siguiente error, el tipo no válido es un número entero. - "faultstring": "XMLToJSON[class java.lang.Integer]: Invalid source type class java.lang.Integer. Valid source types are [message, string]."
- Examina todas las políticas de XML a JSON en el proxy de API específico en el que se produjo la falla. En la política de XML a JSON con errores, ten en cuenta el nombre de la variable especificada en - <Source>.- <?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>
- Determina el tipo de variable especificado en el elemento - <Source>:- Ubica el código en el paquete del proxy de API, en el que esta variable se definió primero.
- Una vez que determines la política en la que se define y propaga la variable primero, debes determinar el tipo de esa variable de la siguiente manera:- Comprueba el valor del atributo del tipo (si está presente).
- Si el atributo de tipo no está presente, la variable se considera una string.
 
- Si el tipo de variable especificada en <Source>no esmessagenistring, esa es la causa del error. Puedes obtener información sobre las variables comunes y sus tipos en la referencia de variables.
 - A modo de ejemplo, considera una política de ExtractVariables que se usa para extraer el valor de una carga útil XML y establece el valor en la variable - BookCodecomo- integer, como se muestra a continuación:- <?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>- Ahora, recuerda que la variable - BookCodese usa en el elemento- <Source>de la política de XML a JSON:- <Source>BookCode</Source>- Debido a que el tipo de esta variable es - Integer, que no es un tipo- <Source>válido, el proxy de API falla con el siguiente error:- steps.xml2json.InvalidSourceType
Solución
Asegúrate de que el tipo de variable que se usa para especificar el elemento <Source> sea válido. Los tipos <Source> válidos son message y string.
Para evitar el error anterior con la política de XML a JSON, puedes usar la variable request, que es del tipo message, o cualquier otra string que sea una carga útil XML válida.