Solução de problemas de erros na implantação da política de transformação XSL

Esta é a documentação da Apigee e da Apigee híbrida.
Confira a documentação da Apigee Edge.

XSLEmptyResourceUrl

Mensagem de erro

A implantação do proxy de API por meio da IU da Apigee ou da API falha com esta mensagem de erro:

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

Exemplo de mensagem de erro

Na seguinte mensagem de erro de exemplo, o nome da política de transformação XSL que causa o erro é xslt:

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

Exemplo de captura de tela

Na IU da Apigee, você verá um erro semelhante a este:

Valor não nulo esperado para o elemento ResourceURL em XSL.

Causa

Se o elemento <ResourceURL> na política de transformação XSL estiver vazio, a implantação do proxy da API falhará.

Diagnóstico

Examine o elemento <ResourceURL> na política de transformação XSL nomeada na mensagem de erro. Se não houver um URL de recurso especificado no elemento <ResourceURL>, essa será a causa do erro. Por exemplo, a seguinte política de transformação XSL tem um elemento <ResourceURL> vazio:

<?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>

Como o elemento <ResourceURL> está vazio, a implantação do proxy de API falha.

Resolução

Verifique se o elemento <ResourceURL> na política de transformação XSL tem um URL válido que aponta para um arquivo XSLT.

Por exemplo:

<?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

Mensagem de erro

A implantação do proxy de API por meio da IU da Apigee ou da API falha com esta mensagem de erro:

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.

Exemplo de mensagem de erro

Na seguinte mensagem de erro de exemplo, o nome da política de transformação XSL que causa o erro é xslt:

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

Exemplo de captura de tela

Na IU da Apigee, você verá um erro semelhante a este:

O tipo de recurso precisa ser xsl.

Causa

Se o tipo de recurso especificado no elemento <ResourceURL> da política de transformação XSL não for do tipo xsl, a implantação do proxy de API falhará.

Veja a seguir o formato correto para especificar isso:

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

Por exemplo, se o tipo de recurso for especificado como jsc no elemento <ResourceURL> da política de transformação XSL como mostrado abaixo, a implantação do proxy de API falhará:

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

Diagnóstico

  1. Identifique o nome da política de transformação XSL em que ocorreu o erro. Você encontra essas informações na mensagem de erro. Por exemplo, no erro a seguir, o nome da política é xslt.

    XSL xslt: Resource type must be xsl. Context Revision:1;APIProxy:XSLTransform;
    Organization:jdoe-test;Environment:test.
    
  2. No XML da política de transformação XSL, verifique se o tipo do recurso especificado no elemento <ResourceURL> não é do tipo xsl. Se não for do tipo xsl, essa será a causa do erro.

    Por exemplo, a política a seguir especifica um tipo não xsl no 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 o URL do recurso é especificado como jsc://my_transform.xsl, que não é do tipo xsl, a implantação do proxy de API falha com o erro:

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

Resolução

Verifique se o tipo de recurso especificado no elemento <ResourceURL> da política de transformação XSL é sempre do tipo xsl. Por exemplo:

<?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>