Khắc phục sự cố triển khai chính sách Chuyển đổi ký

Bạn đang xem tài liệu về Apigee Edge.
Truy cập vào tài liệu về Apigee X.
thông tin

XSLEmptyResourceUrl

Thông báo lỗi

Việc triển khai proxy API thông qua giao diện người dùng Edge hoặc API quản lý Edge không thành công với thông báo lỗi sau:

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

Thông báo lỗi mẫu

Trong thông báo lỗi ví dụ sau, tên của chính sách Biến đổi XSL gây ra lỗi là xslt:

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

Ảnh chụp màn hình ví dụ

Trong giao diện người dùng Edge, bạn sẽ thấy một lỗi bật lên tương tự như sau:

Nguyên nhân

Nếu phần tử <ResourceURL> trong chính sách Chuyển đổi XSL trống, thì quá trình triển khai proxy API sẽ không thành công.

Chẩn đoán

Kiểm tra phần tử <ResourceURL> trong chính sách Chuyển đổi BII có tên trong thông báo lỗi. Nếu không có URL tài nguyên nào được chỉ định trong phần tử <ResourceURL>, thì đó là nguyên nhân gây ra lỗi. Ví dụ: chính sách Chuyển đổi BII sau đây có phần tử <ResourceURL> trống:

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

Vì phần tử <ResourceURL> trống nên việc triển khai proxy API không thành công.

Độ phân giải

Đảm bảo rằng phần tử <ResourceURL> trong chính sách Chuyển đổi BII có URL hợp lệ trỏ đến tệp XML.

Ví dụ:

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

Thông báo lỗi

Việc triển khai proxy API thông qua giao diện người dùng Edge hoặc API quản lý Edge không thành công với thông báo lỗi sau:

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.

Thông báo lỗi mẫu

Trong thông báo lỗi ví dụ sau, tên của chính sách Biến đổi XSL gây ra lỗi là xslt:

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

Ảnh chụp màn hình ví dụ

Trong giao diện người dùng Edge, bạn sẽ thấy một lỗi bật lên tương tự như sau:

Nguyên nhân

Nếu loại tài nguyên được chỉ định trong phần tử <ResourceURL> của chính sách Chuyển đổi BII không phải là loại xsl, thì việc triển khai proxy API sẽ không thành công.

Định dạng chính xác để chỉ định việc này như sau:

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

Ví dụ: nếu loại tài nguyên được chỉ định là jsc trong phần tử <ResourceURL> của chính sách Chuyển đổi PPID như minh hoạ bên dưới, thì việc triển khai proxy API sẽ không thành công:

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

Chẩn đoán

  1. Xác định tên của chính sách Chuyển đổi XSL nơi xảy ra lỗi. Bạn có thể tìm thấy thông tin này trong thông báo lỗi. Ví dụ: trong lỗi sau, tên chính sách là xslt.

    XSL xslt: Resource type must be xsl. Context Revision:1;APIProxy:XSLTransform;
    Organization:jdoe-test;Environment:test.
    
  2. Trong tệp XML chính sách XSL Transform không thành công, hãy xác minh xem loại tài nguyên được chỉ định trong phần tử <ResourceURL> có phải là loại xsl hay không. Nếu mã này không thuộc loại xsl thì đó là nguyên nhân gây ra lỗi.

    Ví dụ: chính sách sau đây chỉ định một loại không phải xsl trong phần tử <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>
    

    Vì URL tài nguyên được chỉ định là jsc://my_transform.xsl, không phải loại xsl, nên việc triển khai Proxy API sẽ không thành công với lỗi:

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

Độ phân giải

Đảm bảo rằng loại tài nguyên được chỉ định trong phần tử <ResourceURL> của chính sách XSL Chuyển đổi luôn thuộc loại xsl. Ví dụ:

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