Résolution des erreurs de déploiement de la règle de transformation XSL

Vous consultez la documentation d'Apigee Edge.
Accédez à la documentation sur Apigee X.
info

XSLEmptyResourceUrl

Message d'erreur

Le déploiement du proxy d'API via l'interface utilisateur Edge ou l'API de gestion Edge échoue avec le message d'erreur suivant:

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

Exemple de message d'erreur

Dans l'exemple de message d'erreur suivant, le nom de la stratégie de Transformation XSL à l'origine de l'erreur est xslt :

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

Exemple de capture d'écran

Dans l'interface utilisateur Edge, vous verrez une erreur contextuelle similaire à celle-ci:

Cause

Si l'élément <ResourceURL> de la règle de Transformation XSL est vide, le déploiement du proxy d'API échoue.

Diagnostic

Examinez l'élément <ResourceURL> dans la règle de Transformation XSL citée dans le message d'erreur. Si aucune URL de ressource n'est spécifiée dans l'élément <ResourceURL>, l'erreur vient de là. Par exemple, la règle de Transformation XSL suivante contient un élément <ResourceURL> vide :

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

Puisque l'élément <ResourceURL> est vide, le déploiement du proxy d'API échoue.

Solution

Assurez-vous que l'élément <ResourceURL> de la règle de Transformation XSL dispose d'une URL valide pointant vers un fichier XSLT.

Exemple :

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

Message d'erreur

Le déploiement du proxy d'API via l'interface utilisateur Edge ou l'API de gestion Edge échoue avec le message d'erreur suivant:

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.

Exemple de message d'erreur

Dans l'exemple de message d'erreur suivant, le nom de la règle de Transformation XSL à l'origine de l'erreur est xslt :

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

Exemple de capture d'écran

Dans l'interface utilisateur Edge, vous verrez une erreur contextuelle similaire à celle-ci:

Cause

Si le type de ressource spécifié dans l'élément <ResourceURL> de la règle de Transformation XSL n'est pas du type xsl, le déploiement du proxy d'API échoue.

Le format correct pour le spécifier est le suivant :

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

Par exemple, si le type de ressource est spécifié en tant que jsc dans l'élément <ResourceURL> de la règle de Transformation XSL comme illustré ci-dessous, le déploiement du proxy d'API échoue :

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

Diagnostic

  1. Identifiez le nom de la règle de Transformation XSL dans laquelle l'erreur s'est produite. Vous trouverez cette information dans le message d'erreur. Par exemple, dans l'erreur suivante, le nom de la règle est xslt.

    XSL xslt: Resource type must be xsl. Context Revision:1;APIProxy:XSLTransform;
    Organization:jdoe-test;Environment:test.
    
  2. Dans le code XML de la règle de Transformation XSL ayant échoué, vérifiez si le type de la ressource spécifiée dans l'élément <ResourceURL> n'est pas de type xsl. S'il n'est pas de type xsl, l'erreur vient de là.

    Par exemple, la règle suivante spécifie un type non-xsl dans l'élément <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>
    

    Comme l'URL de ressource est spécifiée en tant que jsc://my_transform.xsl, qui n'est pas de type xsl, le déploiement du proxy d'API échoue avec l'erreur suivante :

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

Solution

Assurez-vous que le type de ressource spécifié dans l'élément <ResourceURL> de la règle de Transformation XSL est toujours de type xsl. Exemple :

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