Fehlerbehebung bei der Bereitstellung von XSL-Transformationsrichtlinien

Sie lesen gerade die Dokumentation zu Apigee und Apigee Hybrid.
Apigee Edge-Dokumentation aufrufen.

XSLEmptyResourceUrl

Fehlermeldung

Die Bereitstellung des API-Proxys über die Apigee-Benutzeroberfläche oder die API schlägt mit der folgenden Fehlermeldung fehl:

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

Beispiel für Fehlermeldung

In folgender Beispielfehlermeldung ist der Name der XSL-Transformationsrichtlinien, die den Fehler verursacht, xslt:

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

Beispiel-Screenshot

In der Apigee-UI sehen Sie einen Fehler, der in etwa so aussieht:

Nicht-Nullwert für Element ResourceURL in XSL erwartet.

Ursache

Wenn das Element <ResourceURL> in der XSL-Transformationsrichtlinie leer ist, schlägt die Bereitstellung des API-Proxys fehl.

Diagnose

Untersuchen Sie das Element <ResourceURL> in der XSL-Transformationsrichtlinie, die in der Fehlermeldung genannt wird. Wenn im Element <ResourceURL> keine Ressourcen-URL angegeben ist, ist dies die Ursache des Fehlers. Die folgende XSL-Transformationsrichtlinie enthält beispielsweise ein leeres <ResourceURL>-Element:

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

Da das Element <ResourceURL> leer ist, schlägt die Bereitstellung des API-Proxys fehl.

Lösung

Prüfen Sie, ob das <ResourceURL>-Element in der XSL-Transformationsrichtlinie eine gültige URL enthält, die auf eine XSLT-Datei verweist.

Beispiel:

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

Fehlermeldung

Die Bereitstellung des API-Proxys über die Apigee-Benutzeroberfläche oder die API schlägt mit der folgenden Fehlermeldung fehl:

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.

Beispiel für Fehlermeldung

In folgender Beispielfehlermeldung ist der Name der XSL-Transformationsrichtlinien, die den Fehler verursacht, xslt:

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

Beispiel-Screenshot

In der Apigee-UI sehen Sie einen Fehler, der in etwa so aussieht:

Der Ressourcentyp muss XSL sein.

Ursache

Entspricht der im <ResourceURL>-Element der XSL-Transformationsrichtlinie angegebene Ressourcentyp nicht dem Typ xsl, schlägt die Bereitstellung des API-Proxys fehl.

Verwenden Sie dazu folgendes Format:

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

Wenn der Ressourcentyp beispielsweise als jsc im <ResourceURL>-Element der XSL-Transformationsrichtlinie, wie unten gezeigt, angegeben ist, schlägt die Bereitstellung des API-Proxys fehl:

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

Diagnose

  1. Ermitteln Sie den Namen der XSL-Transformationsrichtlinie, in der der Fehler aufgetreten ist. Diese Information finden Sie in der Fehlermeldung. Im folgenden Fehler lautet der Richtlinienname beispielsweise xslt:

    XSL xslt: Resource type must be xsl. Context Revision:1;APIProxy:XSLTransform;
    Organization:jdoe-test;Environment:test.
    
  2. Prüfen Sie in der fehlgeschlagenen XSL-Transformationsrichtlinien-XML, ob der im <ResourceURL>-Element angegebene Ressourcentyp vom Typ xsl ist. Ist er nicht vom Typ xsl, ist dies die Fehlerursache.

    Beispiel: Folgende Richtlinie gibt einen anderen Typ als xsl im Element <ResourceURL> an:

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

    Da die Ressourcen-URL als jsc://my_transform.xsl angegeben, also nicht vom Typ xsl ist, schlägt die Bereitstellung des API-Proxys mit folgendem Fehler fehl:

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

Lösung

Der im <ResourceURL>-Element der XSL-Transformationsrichtlinie angegebene Ressourcentyp muss immer der Typ xsl sein. Beispiel:

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