פתרון בעיות שקשורות לשגיאות בפריסת מדיניות XSL Transform

מוצג המסמך של Apigee Edge.
עוברים אל מסמכי תיעוד של Apigee X.
מידע

XSLEmptyResourceUrl

הודעת שגיאה

פריסה של שרת ה-proxy ל-API דרך ממשק המשתמש של Edge או Edge management API נכשל עם הודעת השגיאה הזו:

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

הודעת שגיאה לדוגמה

בהודעת השגיאה הבאה בדוגמה, השם של מדיניות טרנספורמציה של XSL גורם השגיאה היא xslt:

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

צילום מסך לדוגמה

בממשק המשתמש של Edge תופיע שגיאה קופצת, שדומה לזו:

סיבה

אם הרכיב <ResourceURL> במדיניות טרנספורמציה של XSL ריק, אז המאפיין הפריסה של שרת ה-proxy ל-API נכשלה.

אבחון

לבדוק את הרכיב <ResourceURL> במדיניות טרנספורמציה של XSL ששמו מופיע בשגיאה הודעה. אם לא צוינה כתובת URL של משאב ברכיב <ResourceURL>, זאת הסיבה לשגיאה. לדוגמה, הטרנספורמציה הבאה של XSL במדיניות יש רכיב <ResourceURL> ריק:

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

הרכיב <ResourceURL> ריק, ולכן הפריסה של שרת ה-proxy ל-API נכשלת.

רזולוציה

יש לוודא שלרכיב <ResourceURL> במדיניות טרנספורמציה של XSL יש כתובת URL שמצביעה על קובץ XLSX.

לדוגמה:

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

הודעת שגיאה

פריסה של שרת ה-proxy ל-API דרך ממשק המשתמש של Edge או Edge management API נכשל עם הודעת השגיאה הזו:

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.

הודעת שגיאה לדוגמה

בהודעת השגיאה הבאה לדוגמה, שם מדיניות טרנספורמציה של XSL השגיאה גורמת לשגיאה xslt:

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

צילום מסך לדוגמה

בממשק המשתמש של Edge תופיע שגיאה קופצת, שדומה לזו:

סיבה

אם סוג המשאב צוין ברכיב <ResourceURL> של טרנספורמציית XSL היא לא מסוג xsl, הפריסה של שרת ה-proxy ל-API נכשלת.

הפורמט הנכון שבו צריך לציין את זה הוא:

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

לדוגמה, אם סוג המשאב מצוין כ-jsc בשדה <ResourceURL> של מדיניות טרנספורמציה של XSL כמו שמוצג בהמשך, ואז הפריסה שרת ה-proxy ל-API נכשל:

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

אבחון

  1. מזהים את השם של מדיניות טרנספורמציה של XSL שבה התרחשה השגיאה. אפשר למצוא את המידע הזה בהודעת השגיאה. לדוגמה, בשגיאה הבאה, שם המדיניות הוא xslt.

    XSL xslt: Resource type must be xsl. Context Revision:1;APIProxy:XSLTransform;
    Organization:jdoe-test;Environment:test.
    
  2. ב-XML של מדיניות XSL שנכשלה, צריך לוודא שסוג המשאב שצוין ברכיב <ResourceURL> הוא לא מסוג xsl. אם הוא לא מסוג xsl, זו הסיבה לשגיאה.

    לדוגמה, המדיניות הבאה מציינת סוג שאינו xsl ברכיב <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>
    

    מכיוון שכתובת ה-URL של המשאב מוגדרת בתור jsc://my_transform.xsl, שאינה מסוג xsl, הפריסה של שרת ה-proxy ל-API נכשלת עם השגיאה:

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

רזולוציה

חשוב לוודא שסוג המשאב שצוין ברכיב <ResourceURL> של ה-XSL מדיניות הטרנספורמציה היא תמיד מסוג xsl. לדוגמה:

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