Solución de problemas de errores en la implementación de políticas de transformación de XSL

Estás viendo la documentación de Apigee Edge.
Ve a la documentación de Apigee X.
Más información

XSLEmptyResourceUrl

Mensaje de error

La implementación del proxy de API a través de la IU de Edge o la API de administración de Edge falla con este mensaje de error:

Error Saving Revision revision_number
Error occurred while validation of bean policy_name.xml. Reason:- Non null
value expected for element ResourceURL in XSL

Ejemplo de mensaje de error

En el siguiente mensaje de error de ejemplo, el nombre de la política de transformación de XSL que causa el error es xslt:

Error Saving Revision 1
Error occurred while validation of bean xslt.xml. Reason: - Non null value
expected for element ResourceURL in XSL

Captura de pantalla de ejemplo

En la IU de Edge, verás un error en una ventana emergente similar al siguiente:

Causa

Si el elemento <ResourceURL> en la política de transformación de XSL está vacío, la implementación del proxy de API falla.

Diagnóstico

Examina el elemento <ResourceURL> en la política de transformación de XSL que se menciona en el mensaje de error. Si no se especifica una URL del recurso en el elemento <ResourceURL>, entonces, esa es la causa del error. Por ejemplo, la siguiente política de transformación de XSL tiene un elemento <ResourceURL> vacío:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<XSL async="false" continueOnError="false" enabled="true" name="xslt">
    <DisplayName>xslt</DisplayName>
    <Properties/>
    <ResourceURL></ResourceURL>
    <Parameters ignoreUnresolvedVariables="true"/>
    <OutputVariable/>
</XSL>

Debido a que el elemento <ResourceURL> está vacío, la implementación del proxy de API falla.

Solución

Asegúrate de que el elemento <ResourceURL> en la política de transformación de XSL tenga una URL válida que apunte a un archivo XSLT.

Por ejemplo:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<XSL async="false" continueOnError="false" enabled="true" name="xslt">
    <DisplayName>xslt</DisplayName>
    <Properties/>
    <ResourceURL>xsl://my_transform.xsl</ResourceURL>
    <Parameters ignoreUnresolvedVariables="true"/>
    <OutputVariable/>
</XSL>

XSLInvalidResourceType

Mensaje de error

La implementación del proxy de API a través de la IU de Edge o la API de administración de Edge falla con este mensaje de error:

Error Deploying Revision revision_number to env_name
XSL policy_name: Resource type must be xsl. Context Revision:revision_number;
APIProxy:api_proxy_name;Organization:org_name;Environment:env_name.

Ejemplo de mensaje de error

En el siguiente mensaje de error de ejemplo, el nombre de la política de transformación de XSL que causa el error es xslt:

Error Deploying Revision 1 to test
XSL xslt: Resource type must be xsl. Context Revision:1;APIProxy:XSLTransform;
Organization:jdoe-test;Environment:test.

Captura de pantalla de ejemplo

En la IU de Edge, verás un error en una ventana emergente similar al siguiente:

Causa

Si el tipo de recurso especificado en el elemento <ResourceURL> de la política de transformación de XSL no es del tipo xsl, la implementación del proxy de API falla.

A continuación, se muestra el formato correcto para especificar esto:

<ResourceURL>xsl://<file_name>.xsl</ResourceURL>

Por ejemplo, si el tipo de recurso se especifica como jsc en el elemento <ResourceURL> de la política de transformación de XSL como se muestra a continuación, la implementación del proxy de API falla:

<ResourceURL>jsc://my_transform.xsl</ResourceURL>

Diagnóstico

  1. Identifica el nombre de la política de transformación de XSL en la que se produjo el error. Puedes encontrar esta información en el mensaje de error. Por ejemplo, en el siguiente error, el nombre de la política es xslt.

    XSL xslt: Resource type must be xsl. Context Revision:1;APIProxy:XSLTransform;
    Organization:jdoe-test;Environment:test.
    
  2. En el archivo XML de la política de transformación de XSL con errores, verifica si el tipo de recurso especificado en el elemento <ResourceURL> no es del tipo xsl. Si no es del tipo xsl, entonces, esa es la causa del error.

    Por ejemplo, la siguiente política especifica un tipo que no es xsl en el elemento <ResourceURL>:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <XSL async="false" continueOnError="false" enabled="true" name="xslt">
        <DisplayName>xslt</DisplayName>
        <Properties/>
        <ResourceURL>jsc://my_transform.xsl</ResourceURL>
        <Parameters ignoreUnresolvedVariables="true"/>
        <OutputVariable/>
    </XSL>
    

    Como la URL del recurso se especifica como jsc://my_transform.xsl, que no es del tipo xsl, la implementación del proxy de API falla con el error:

    XSL xslt: Resource type must be xsl. Context Revision:1;APIProxy:XSLTransform;
    Organization:jdoe-test;Environment:test.
    

Solución

Asegúrate de que el tipo de recurso especificado en el elemento <ResourceURL> de la política de transformación de XSL siempre sea del tipo xsl. Por ejemplo:

  <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
  <XSL async="false" continueOnError="false" enabled="true" name="xslt">
      <DisplayName>xslt</DisplayName>
      <Properties/>
      <ResourceURL>xsl://my_transform.xsl</ResourceURL>
      <Parameters ignoreUnresolvedVariables="true"/>
      <OutputVariable/>
  </XSL>