Resolução de problemas de erros de implementação da política de transformação XSL

Está a ver a documentação do Apigee e do Apigee Hybrid.
Ver documentação do Apigee Edge.

XSLEmptyResourceUrl

Mensagem de erro

A implementação do proxy de API através da IU ou da API do Apigee 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 está a causar 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

Captura de ecrã de exemplo

Na IU do Apigee, é apresentado um erro semelhante ao seguinte:

É esperado um valor não nulo para o elemento ResourceURL no XSL.

Causa

Se o elemento <ResourceURL> na política de transformação XSL estiver vazio, a implementação do proxy de API falha.

Diagnóstico

Examine o elemento <ResourceURL> na política de transformação XSL com o nome indicado na mensagem de erro. Se não for especificado nenhum URL do recurso no elemento <ResourceURL>, é essa 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>

Uma vez que o elemento <ResourceURL> está vazio, a implementação do proxy de API falha.

Resolução

Certifique-se de que o elemento <ResourceURL> na política de transformação XSL tem um URL válido que aponta para um ficheiro 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 implementação do proxy de API através da IU ou da API do Apigee 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 está a causar 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.

Captura de ecrã de exemplo

Na IU do Apigee, é apresentado um erro semelhante ao seguinte:

O tipo de recurso tem de 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 implementação do proxy de API falha.

O formato correto para especificar isto é o seguinte:

<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, conforme mostrado abaixo, a implementação do proxy de API falha:

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

Diagnóstico

  1. Identifique o nome da política de transformação XSL onde ocorreu o erro. Pode encontrar estas informações na mensagem de erro. Por exemplo, no seguinte erro, 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 com falha, verifique se o tipo de recurso especificado no elemento <ResourceURL> não é do tipo xsl. Se não for do tipo xsl, essa é a causa do erro.

    Por exemplo, a seguinte política 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>
    

    Uma vez que o URL do recurso é especificado como jsc://my_transform.xsl, que não é do tipo xsl, a implementaçã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

Certifique-se de que 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>