การแก้ปัญหาข้อผิดพลาดในการทำให้นโยบายการเปลี่ยนรูปแบบ XSL ใช้งานได้

คุณกำลังดูเอกสารประกอบของ Apigee Edge
ไปที่เอกสารประกอบของ Apigee X
ข้อมูล

XSLEmptyResourceUrl

ข้อความแสดงข้อผิดพลาด

การทำให้พร็อกซี API ใช้งานได้ผ่าน Edge UI หรือ 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 UI คุณจะเห็นข้อผิดพลาดแบบป๊อปอัปที่คล้ายกับตัวอย่างต่อไปนี้

สาเหตุ

ถ้าองค์ประกอบ <ResourceURL> ในนโยบายการแปลง XSL ว่างเปล่า จะทำให้ใช้งานพร็อกซี 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> ว่างเปล่า ทำให้ใช้งานพร็อกซี API ไม่สำเร็จ

ความละเอียด

ตรวจสอบว่าองค์ประกอบ <ResourceURL> ในนโยบายการแปลง XSL มี URL ที่ถูกต้องที่ชี้ไปยังไฟล์ XSLT

เช่น

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

ข้อความแสดงข้อผิดพลาด

การทำให้พร็อกซี API ใช้งานได้ผ่าน Edge UI หรือ 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 UI คุณจะเห็นข้อผิดพลาดแบบป๊อปอัปที่คล้ายกับตัวอย่างต่อไปนี้

สาเหตุ

หากประเภททรัพยากรที่ระบุในองค์ประกอบ <ResourceURL> ของนโยบายการแปลง XSL ไม่ใช่ประเภท xsl การทำให้พร็อกซี API ใช้งานได้จะไม่สำเร็จ

รูปแบบที่ถูกต้องเพื่อระบุสิ่งนี้ได้ ดังตัวอย่างต่อไปนี้

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

ตัวอย่างเช่น หากระบุประเภททรัพยากรเป็น jsc ในองค์ประกอบ <ResourceURL> ของนโยบายการแปลง XSL ดังที่แสดงด้านล่าง การทำให้พร็อกซี 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 การใช้งานพร็อกซี 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>