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.
Chuyển đến tài liệu về Apigee X.
thông tin

UrlEmptyResourceUrl

Thông báo lỗi

Không triển khai được proxy API thông qua giao diện người dùng Edge hoặc API quản lý Edge 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 Chuyển đổi NDK 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 mẫu

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 NDK 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 NDK 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 NDK 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> bị trống nên không triển khai được proxy API.

Độ phân giải

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

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

Không triển khai được proxy API thông qua giao diện người dùng Edge hoặc API quản lý Edge 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 Chuyển đổi NDK 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 mẫu

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 NDK không phải là loại xsl, thì sẽ không triển khai proxy API.

Dưới đây là định dạng chính xác để chỉ định:

<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 NDK 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 NDK 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 XML của chính sách chuyển đổi NDK 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 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 là 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 thuộc loại xsl, nên không triển khai Proxy API do 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 Chuyển đổi NDK luôn là 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>