การแก้ปัญหาข้อผิดพลาดในการติดตั้งใช้งานนโยบายการดึงข้อมูลตัวแปร

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

NothingToExtract

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

การทำให้พร็อกซี API ใช้งานได้ผ่าน Edge UI หรือ Edge Management API จะล้มเหลวโดยมีข้อความแสดงข้อผิดพลาดต่อไปนี้

Error Saving Revision [revision_number]
ExtractVariables [policy_name]: at least one of URIPath, QueryParam, Header, FormParam, XMLPayload, JSONPayload is mandatory. Revision:[revision_number]; APIProxy:[proxy_name]; Organization:[org_name]; Environment:[env_name].

ตัวอย่างข้อความแสดงข้อผิดพลาด

Error Saving Revision 2
ExtractVariables EV-XML-Age: at least one of URIPath, QueryParam, Header, FormParam, XMLPayload, JSONPayload is mandatory.

ภาพหน้าจอตัวอย่าง

สาเหตุ

หากนโยบายการดึงข้อมูลตัวแปรไม่มีองค์ประกอบ URIPath, QueryParam, Header, FormParam, XMLPayload หรือ JSONPayload การทำให้พร็อกซี API ใช้งานได้จะล้มเหลวเนื่องจากไม่มีอะไรให้ดึงข้อมูล

นโยบายการดึงข้อมูลตัวแปรต้องมีองค์ประกอบอย่างน้อย 1 รายการรวมอยู่ในนโยบาย URIPath, QueryParam, Header, FormParam, XMLPayload หรือ JSONPayload ตามที่ระบุไว้ในข้อความแสดงข้อผิดพลาด

การวินิจฉัย

ตรวจสอบนโยบายการดึงข้อมูลตัวแปรที่มีชื่ออยู่ในข้อความแสดงข้อผิดพลาด หากนโยบายไม่มีองค์ประกอบต่อไปนี้เลย: URIPath, QueryParam, Header, FormParam, XMLPayload หรือ JSONPayload นั่นก็คือสาเหตุของข้อผิดพลาด ตัวอย่างเช่น นโยบายการดึงข้อมูลตัวแปรต่อไปนี้ไม่มีองค์ประกอบที่กล่าวไว้ข้างต้น

<ExtractVariables async="false" continueOnError="false" enabled="true" name="EV-XML-Age">
    <DisplayName>EV-XML-Age</DisplayName>
    <Properties/>
</ExtractVariables>

เนื่องจากไม่มีองค์ประกอบที่จำเป็นใดๆ ในนโยบายการดึงข้อมูลตัวแปร การทำให้พร็อกซี API ใช้งานได้จึงล้มเหลว

ความละเอียด

ตรวจสอบว่านโยบายการแยกตัวแปรมีองค์ประกอบที่จำเป็นอย่างน้อย 1 รายการ ได้แก่ URIPath, QueryParam, Header, FormParam, XMLPayload, JSONPayload เช่น

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ExtractVariables async="false" continueOnError="false" enabled="true" name="EV-XML-Age">
  <DisplayName>EV-XML-Age</DisplayName>
  <Properties/>
  <Source>request</Source>
  <XMLPayload>
    <Namespaces/>
      <Variable name="age" type="integer">
          <XPath>/age</XPath>
      </Variable>
  </XMLPayload>
</ExtractVariables>

NONEmptyPrefixMappedToEmptyURI

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

การทำให้พร็อกซี API ใช้งานได้ผ่าน Edge UI หรือ Edge Management API จะล้มเหลวโดยมีข้อความแสดงข้อผิดพลาดต่อไปนี้

Error Saving Revision [revision_number]
ExtractVariables [policy_name]: Non-empty prefix [prefix_name] cannot be mapped to empty uri.

ตัวอย่างข้อความแสดงข้อผิดพลาด

Error Saving Revision 3
ExtractVariables EV-XML-Age: Non-empty prefix apigee cannot be mapped to empty uri.

ภาพหน้าจอตัวอย่าง

สาเหตุ

ข้อผิดพลาดนี้เกิดขึ้นหากนโยบายการดึงข้อมูลตัวแปรมีคำนำหน้าที่กำหนดไว้ในองค์ประกอบ <Namespace> ใต้องค์ประกอบ <XMLPayload> แต่ไม่ได้กำหนด URI ไว้

การวินิจฉัย

  1. ระบุนโยบายการดึงข้อมูลตัวแปรที่เกิดข้อผิดพลาดและชื่อของคำนำหน้า ซึ่งคุณจะเห็นทั้ง 2 รายการนี้ในข้อความแสดงข้อผิดพลาด ตัวอย่างเช่น ในข้อผิดพลาดต่อไปนี้ ชื่อนโยบายคือ EV-XML-Age และคำนำหน้าคือ apigee

    ExtractVariables EV-XML-Age: Non-empty prefix apigee cannot be mapped to empty uri.
    
  2. ใน XML ของนโยบายการแยกตัวแปรที่ล้มเหลว ให้ตรวจสอบว่าชื่อของคำนำหน้าที่ตั้งไว้ในองค์ประกอบ <Namespace> ภายในองค์ประกอบ <XMLPayload> ตรงกับชื่อคำนำหน้าที่ระบุในข้อความแสดงข้อผิดพลาด (ขั้นตอนที่ 1 ด้านบน) ตัวอย่างเช่น นโยบายต่อไปนี้ระบุคำนำหน้าชื่อ apigee ในองค์ประกอบ <Namespace> ซึ่งตรงกับข้อความแสดงข้อผิดพลาด

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <ExtractVariables async="false" continueOnError="false" enabled="true" name="EV-XML-Age">
        <DisplayName>EV-XML-Age</DisplayName>
        <Source clearPayload="false">request</Source>
        <XMLPayload stopPayloadProcessing="false">
          <Namespaces>
            <Namespace prefix="apigee"></Namespace>
            <Namespace prefix="gmail">http://mail.google.com</Namespace>
          </Namespaces>
        <Variable name="legName" type="string">
        <XPath>/apigee:Directions/apigee:route/apigee:leg/apigee:name</Xpath>
            </Variable>
        </XMLPayload>
    </ExtractVariables>
    
  3. ตรวจสอบว่าองค์ประกอบ <Namespace> ที่มีคำนำหน้าที่เจาะจงซึ่งระบุไว้ในขั้นตอนที่ 2 มี URI ที่ถูกต้องหรือไม่ หากไม่มี URI นั่นแสดงว่าเป็นสาเหตุของข้อผิดพลาด

    ในตัวอย่างนโยบายการดึงข้อมูลตัวแปรที่แสดงด้านบน ให้สังเกตว่าไม่มี URI ที่ตรงกับองค์ประกอบ <Namespace> ที่มีคำนำหน้า apigee ดังนั้น คุณจะได้รับข้อผิดพลาด

    ExtractVariables EV-XML-Age: Non-empty prefix apigee cannot be mapped to empty uri.
    
    

ความละเอียด

ตรวจสอบว่าองค์ประกอบ <Namespace> ทั้งหมดที่กำหนดไว้ด้วยคำนำหน้ามี URI ที่สอดคล้องกันในนโยบายการดึงข้อมูลตัวแปร เช่น

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ExtractVariables async="false" continueOnError="false" enabled="true" name="EV-XML-Age">
    <DisplayName>EV-XML-Age</DisplayName>
    <Source clearPayload="false">request</Source>
    <XMLPayload stopPayloadProcessing="false">
    <Namespaces>
        <Namespace prefix="apigee">http://www.apigee.com</Namespace>
        <Namespace prefix="gmail">http://mail.google.com</Namespace>
     </Namespaces>
    <Variable name="legName" type="string">
        <XPath>/apigee:Directions/apigee:route/apigee:leg/apigee:name</Xpath>
    </Variable>
    </XMLPayload>
</ExtractVariables>

DuplicatePrefix

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

การทำให้พร็อกซี API ใช้งานได้ผ่าน Edge UI หรือ Edge Management API จะล้มเหลวโดยมีข้อความแสดงข้อผิดพลาดต่อไปนี้

Error Saving Revision [revision_number]
ExtractVariables [policy_name]: Duplicate prefix [prefix_name].

ตัวอย่างข้อความแสดงข้อผิดพลาด

Error Saving Revision 2
ExtractVariables EV-XML-Age: Duplicate prefix apigee.

ภาพหน้าจอตัวอย่าง

สาเหตุ

ข้อผิดพลาดนี้เกิดขึ้นหากนโยบายการดึงข้อมูลตัวแปรมีคำนำหน้าเดียวกันที่กำหนดไว้มากกว่า 1 ครั้งในองค์ประกอบ <Namespace> ภายในองค์ประกอบ <XMLPayload>

ตัวอย่างเช่น ข้อผิดพลาดนี้เกิดขึ้นเนื่องจากมีการกำหนดคำนำหน้า apigee 2 ครั้งดังที่แสดงด้านล่าง

<Namespace prefix="apigee">http://www.apigee.com</Namespace>
<Namespace prefix="apigee">http://www.apigee.com</Namespace>

การวินิจฉัย

  1. ระบุนโยบายการดึงข้อมูลตัวแปรที่เกิดข้อผิดพลาดและชื่อของคำนำหน้า ซึ่งคุณจะเห็นทั้ง 2 รายการนี้ในข้อความแสดงข้อผิดพลาด ตัวอย่างเช่น ในข้อผิดพลาดต่อไปนี้ ชื่อนโยบายคือ EV-XML-Age และคำนำหน้าคือ apigee

    ExtractVariables EV-XML-Age: Duplicate prefix apigee.
    
  2. ใน XML ของนโยบายการแยกตัวแปรที่ล้มเหลว ให้ตรวจสอบว่าชื่อของคำนำหน้าที่ตั้งไว้ในองค์ประกอบ <Namespace> ภายในองค์ประกอบ <XMLPayload> ตรงกับชื่อคำนำหน้าที่ระบุในข้อความแสดงข้อผิดพลาด (ขั้นตอนที่ 1 ด้านบน) ตัวอย่างเช่น นโยบายต่อไปนี้ระบุคำนำหน้าชื่อ apigee ในองค์ประกอบ <Namespace> ซึ่งตรงกับข้อความแสดงข้อผิดพลาด

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <ExtractVariables async="false" continueOnError="false" enabled="true" name="EV-XML-Age">
        <DisplayName>EV-XML-Age</DisplayName>
        <Source clearPayload="false">request</Source>
        <XMLPayload stopPayloadProcessing="false">
          <Namespaces>
              <Namespace prefix="gmail">http://mail.google.com</Namespace>
              <Namespace prefix="apigee">http://www.apigee.com</Namespace>
              <Namespace prefix="apigee">http://www.apigee.com</Namespace>
          </Namespaces>
          <Variable name="legName" type="string
              <XPath>/apigee:Directions/apigee:route/apigee:leg/apigee:name</XPath>
          </Variable>
        </XMLPayload>
      </ExtractVariables>
    
  3. ตรวจสอบว่าองค์ประกอบ <Namespace> ที่มีคำนำหน้าเฉพาะที่ระบุในขั้นตอนที่ 2 ได้รับการกำหนดมากกว่า 1 ครั้งหรือไม่ หากมีการกำหนดไว้มากกว่า 1 ครั้ง ก็แสดงว่านี่คือสาเหตุของข้อผิดพลาด

    ในตัวอย่างนโยบายการดึงข้อมูลตัวแปรที่แสดงด้านบน สังเกตว่าองค์ประกอบ <Namespace> ที่มีคำนำหน้า apigee ได้รับการกำหนด 2 ครั้ง ดังนั้น คุณจะได้รับข้อผิดพลาด

    ExtractVariables EV-XML-Age: Duplicate prefix apigee.
    
    

ความละเอียด

ตรวจสอบว่ามีคำจำกัดความเพียง 1 รายการสำหรับคำนำหน้าแต่ละรายการในองค์ประกอบ <Namespace> ในนโยบายการแยกตัวแปร เช่น

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ExtractVariables async="false" continueOnError="false" enabled="true" name="EV-XML-Age">
    <DisplayName>EV-XML-Age</DisplayName>
    <Source clearPayload="false">request</Source>
    <XMLPayload stopPayloadProcessing="false">
      <Namespaces>
          <Namespace prefix="apigee">http://www.apigee.com</Namespace>
          <Namespace prefix="gmail">http://mail.google.com</Namespace>
      </Namespaces>
      <Variable name="legName" type="string">
          <XPath>/apigee:Directions/apigee:route/apigee:leg/apigee:name</Xpath>
      </Variable>
    </XMLPayload>
</ExtractVariables>

NoXPathsToEvaluate

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

การทำให้พร็อกซี API ใช้งานได้ผ่าน Edge UI หรือ Edge Management API จะล้มเหลวโดยมีข้อความแสดงข้อผิดพลาดต่อไปนี้

Error Saving Revision [revision_number]
ExtractVariables [policy_name]:no xpaths to evaluate in variable name.

ตัวอย่างข้อความแสดงข้อผิดพลาด

Error Saving Revision 4
ExtractVariables Extract-Variables-1: no xpaths to evaluate in variable name.

ภาพหน้าจอตัวอย่าง

สาเหตุ

หากนโยบายการดึงข้อมูลตัวแปรไม่มีองค์ประกอบ <XPath> ภายในองค์ประกอบ <XMLPayload> การทำให้พร็อกซี API ใช้งานได้จะล้มเหลวโดยมีข้อผิดพลาดดังที่แสดงไว้ด้านบน

การวินิจฉัย

  1. ระบุนโยบายการดึงข้อมูลตัวแปรที่ล้มเหลวจากข้อความแสดงข้อผิดพลาด ตัวอย่างเช่น ในข้อผิดพลาดต่อไปนี้ ชื่อนโยบายคือ Extract-Variables-1

    ExtractVariables Extract-Variables-1: no xpaths to evaluate in variable name.
    
  2. ใน XML ของนโยบายการแยกตัวแปรที่ล้มเหลว ให้ตรวจสอบว่ามีองค์ประกอบ <XMLPayload> ที่ไม่มีองค์ประกอบย่อย <XPath> หรือไม่ ถ้าเป็นเช่นนั้น นี่คือสาเหตุของข้อผิดพลาด

    ลองดูตัวอย่างนโยบายการดึงข้อมูลตัวแปรที่มีเอลิเมนต์ <XMLPayload> ดังนี้

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <ExtractVariables async="false" continueOnError="false" enabled="true" name="Extract-Variables-1">
        <DisplayName>Extract Variables-1</DisplayName>
        <Properties/>
        <Source clearPayload="false">request</Source>
        <VariablePrefix>apigee</VariablePrefix>
        <XMLPayload stopPayloadProcessing="false">
            <Namespaces/>
            <Variable name="HostReachable" type="boolean">
            </Variable>
        </XMLPayload>
    </ExtractVariables>
    

    เนื่องจากไม่มีอีลิเมนต์ <XPath> อยู่ การทำให้พร็อกซี API ใช้งานได้จึงล้มเหลว

ความละเอียด

ตรวจสอบว่านโยบายการดึงข้อมูลตัวแปรมีองค์ประกอบ <XPath> ที่กำหนดไว้ภายใต้องค์ประกอบ <XMLPayload> เช่น

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ExtractVariables async="false" continueOnError="false" enabled="true" name="Extract-Variables-1">
    <DisplayName>Extract Variables-1</DisplayName>
    <Properties/>
    <Source clearPayload="false">request</Source>
    <VariablePrefix>apigee</VariablePrefix>
    <XMLPayload stopPayloadProcessing="false">
        <Namespaces/>
        <Variable name="HostReachable" type="boolean">
            <XPath>/isReachable</XPath>
        </Variable>
    </XMLPayload>
</ExtractVariables>

EmptyXPathExpression

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

การทำให้พร็อกซี API ใช้งานได้ผ่าน Edge UI หรือ Edge Management API จะล้มเหลวโดยมีข้อความแสดงข้อผิดพลาดต่อไปนี้

Error Saving Revision [revision_number]
ExtractVariables [policy_name]: XPath expression is empty in variable name.

ตัวอย่างข้อความแสดงข้อผิดพลาด

Error Saving Revision 6
ExtractVariables Extract-Variables-1: XPath expression is empty in variable name.

ภาพหน้าจอตัวอย่าง

สาเหตุ

หากนโยบายการดึงข้อมูลตัวแปรมีนิพจน์ <XPath> ที่ว่างเปล่าภายในองค์ประกอบ <XMLPayload> การทำให้พร็อกซี API ใช้งานได้จะล้มเหลว

การวินิจฉัย

  1. ระบุนโยบายการดึงข้อมูลตัวแปรที่ล้มเหลวจากข้อความแสดงข้อผิดพลาด ตัวอย่างเช่น ในข้อผิดพลาดต่อไปนี้ ชื่อนโยบายคือ Extract-Variables-1

    ExtractVariables Extract-Variables-1: no xpaths to evaluate in variable name.
    
  2. ใน XML ของนโยบายการแยกตัวแปรที่ล้มเหลว ให้ตรวจสอบว่ามีเอลิเมนต์ <XMLPayload> ที่มีองค์ประกอบย่อย <XPath> ที่ว่างเปล่าหรือไม่ ถ้าเป็นเช่นนั้น นี่คือสาเหตุของข้อผิดพลาด

    ลองดูตัวอย่างนโยบายการดึงข้อมูลตัวแปรที่มีเอลิเมนต์ <XMLPayload> ดังนี้

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <ExtractVariables async="false" continueOnError="false" enabled="true" name="Extract-Variables-1">
        <DisplayName>Extract Variables-1</DisplayName>
        <Properties/>
        <Source clearPayload="false">request</Source>
        <VariablePrefix>apigee</VariablePrefix>
        <XMLPayload stopPayloadProcessing="false">
            <Namespaces/>
            <Variable name="address" type="string">
                <XPath></XPath>
            </Variable>
        </XMLPayload>
    </ExtractVariables>
    

    เนื่องจากมีองค์ประกอบ <XPath> ที่ว่างเปล่าภายในองค์ประกอบ <XMLPayload> การทำให้พร็อกซี API ใช้งานได้จึงล้มเหลว

ความละเอียด

ตรวจสอบว่านโยบายการแยกตัวแปรมีองค์ประกอบ <XPath> ที่ไม่ว่างเปล่าและถูกต้องซึ่งกำหนดไว้ภายใต้องค์ประกอบ <XMLPayload> เช่น

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ExtractVariables async="false" continueOnError="false" enabled="true" name="Extract-Variables-1">
    <DisplayName>Extract Variables-1</DisplayName>
    <Properties/>
    <Source clearPayload="false">request</Source>
    <VariablePrefix>apigee</VariablePrefix>
    <XMLPayload stopPayloadProcessing="false">
        <Namespaces/>
        <Variable name="address" type="string">
            <XPath>/address</XPath>
        </Variable>
    </XMLPayload>
</ExtractVariables>

NoJSONPathsToEvaluate

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

การทำให้พร็อกซี API ใช้งานได้ผ่าน Edge UI หรือ Edge Management API จะล้มเหลวโดยมีข้อความแสดงข้อผิดพลาดต่อไปนี้

Error Saving Revision [revision_number]
ExtractVariables [policy_name]:no jsonpaths to evaluate in variable name.

ตัวอย่างข้อความแสดงข้อผิดพลาด

Error Saving Revision 6
ExtractVariables Extract-Variables-1: no jsonpaths to evaluate in variable name.

ภาพหน้าจอตัวอย่าง

สาเหตุ

หากนโยบายการดึงข้อมูลตัวแปรไม่มีองค์ประกอบ <JSONPath> ภายในองค์ประกอบ <JSONPayload> การทำให้พร็อกซี API ใช้งานได้จะล้มเหลวโดยมีข้อผิดพลาดดังที่แสดงไว้ด้านบน

การวินิจฉัย

  1. ระบุนโยบายการดึงข้อมูลตัวแปรที่ล้มเหลวจากข้อความแสดงข้อผิดพลาด ตัวอย่างเช่น ในข้อผิดพลาดต่อไปนี้ ชื่อนโยบายคือ Extract-Variables-1

    ExtractVariables Extract-Variables-1: no jsonpaths to evaluate in variable name.
    
  2. ใน XML ของนโยบายการแยกตัวแปรที่ล้มเหลว ให้ตรวจสอบว่ามีองค์ประกอบ <JSONPayload> ที่ไม่มีองค์ประกอบย่อย <JSONPath> ที่จำเป็นหรือไม่ ถ้าเป็นเช่นนั้น นี่คือสาเหตุของข้อผิดพลาด

    ลองดูตัวอย่างนโยบายการดึงข้อมูลตัวแปรที่มีเอลิเมนต์ <JSONPayload> ดังนี้

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <ExtractVariables async="false" continueOnError="false" enabled="true" name="Extract-Variables-1">
        <DisplayName>Extract Variables-1</DisplayName>
        <Properties/>
        <JSONPayload>
            <Variable name="title">
            </Variable>
        </JSONPayload>
        <Source clearPayload="false">request</Source>
        <VariablePrefix>apigee</VariablePrefix>
    </ExtractVariables>
    

    เนื่องจากไม่ได้ระบุองค์ประกอบย่อย <JSONPath> ภายใต้องค์ประกอบ <JSONPayload> การทำให้พร็อกซี API ใช้งานได้จึงล้มเหลว

ความละเอียด

ตรวจสอบว่านโยบายการดึงข้อมูลตัวแปรมีองค์ประกอบ <JSONPath> ที่กำหนดไว้ภายใต้องค์ประกอบ <JSONPayload> เช่น

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ExtractVariables async="false" continueOnError="false" enabled="true" name="Extract-Variables-1">
    <DisplayName>Extract Variables-1</DisplayName>
    <Properties/>
    <JSONPayload>
        <Variable name="title">
            <JSONPath>$.book.title</JSONPath>
        </Variable>
    </JSONPayload>
    <Source clearPayload="false">request</Source>
    <VariablePrefix>apigee</VariablePrefix>
</ExtractVariables>

EmptyJSONPathExpression

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

การทำให้พร็อกซี API ใช้งานได้ผ่าน Edge UI หรือ Edge Management API จะล้มเหลวโดยมีข้อความแสดงข้อผิดพลาดต่อไปนี้

Error Saving Revision [revision_number]
ExtractVariables [policy_name]: JSONPath expression is empty in variable name.

ตัวอย่างข้อความแสดงข้อผิดพลาด

Error Saving Revision 6
ExtractVariables Extract-Variables-1: JSONPath expression is empty in variable name.

ภาพหน้าจอตัวอย่าง

สาเหตุ

หากนโยบายการดึงข้อมูลตัวแปรมีนิพจน์ <JSONPath> ที่ว่างเปล่าภายในองค์ประกอบ <JSONPayload> การทำให้พร็อกซี API ใช้งานได้จะล้มเหลว

การวินิจฉัย

  1. ระบุนโยบายการดึงข้อมูลตัวแปรที่ล้มเหลวจากข้อความแสดงข้อผิดพลาด ตัวอย่างเช่น ในข้อผิดพลาดต่อไปนี้ ชื่อนโยบายคือ Extract-Variables-1

    ExtractVariables Extract-Variables-1: JSONPath expression is empty in variable name.
    
  2. ใน XML ของนโยบายการแยกตัวแปรที่ล้มเหลว ให้ตรวจสอบว่ามีองค์ประกอบ <JSONPayload> ที่มีองค์ประกอบย่อย <JSONPath> ที่ว่างเปล่าหรือไม่ ถ้าเป็นเช่นนั้น นี่คือสาเหตุของข้อผิดพลาด

    ลองดูตัวอย่างนโยบายการดึงข้อมูลตัวแปรที่มีเอลิเมนต์ <JSONPayload> ดังนี้

        <ExtractVariables async="false" continueOnError="false" enabled="true" name="Extract-Variables-1">
            <DisplayName>Extract Variables-1</DisplayName>
            <Properties/>
            <JSONPayload>
                <Variable name="account_number" type="integer">
                    <JSONPath></JSONPath>
                </Variable>
            </JSONPayload>
            <Source clearPayload="false">request</Source>
            <VariablePrefix>apigee</VariablePrefix>
        </ExtractVariables>
    

    เนื่องจากมีองค์ประกอบ <JSONPath> ที่ว่างเปล่าภายในองค์ประกอบ <JSONPayload> การทำให้พร็อกซี API ใช้งานได้จึงล้มเหลว

ความละเอียด

ตรวจสอบว่านโยบายการแยกตัวแปรมีองค์ประกอบ <JSONPath> ที่ไม่ว่างเปล่าและถูกต้องซึ่งกำหนดไว้ภายใต้องค์ประกอบ <JSONPayload> เช่น

<ExtractVariables async="false" continueOnError="false" enabled="true" name="Extract-Variables-1">
    <DisplayName>Extract Variables-1</DisplayName>
    <Properties/>
    <JSONPayload>
        <Variable name="account_number" type="integer">
           <JSONPath>$.account.number</JSONPath>
        </Variable>
    </JSONPayload>
    <Source clearPayload="false">request</Source>
    <VariablePrefix>apigee</VariablePrefix>
</ExtractVariables>

MissingName

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

การทำให้พร็อกซี API ใช้งานได้ผ่าน Edge UI หรือ Edge Management API จะล้มเหลวโดยมีข้อความแสดงข้อผิดพลาดต่อไปนี้

Error Saving Revision [revision_number]
Error occurred while validation of bean [policy_name].xml Reason: - Required attribute name is missing in [element_name]

ตัวอย่างข้อความแสดงข้อผิดพลาด

Error Saving Revision 6
Error occurred while validation of bean Extract-Variables-1.xml. Reason: - Required attribute name is missing in Variable

ภาพหน้าจอตัวอย่าง

สาเหตุ

หากนโยบายการดึงข้อมูลตัวแปรไม่มีแอตทริบิวต์ name ในองค์ประกอบนโยบายใดๆ เช่น QueryParam, Header, FormParam หรือ Variable ซึ่งจําเป็น การติดตั้งใช้งานพร็อกซี API จะล้มเหลว

ตัวอย่างเช่น ข้อผิดพลาดนี้จะเกิดขึ้นหากแอตทริบิวต์ name ขาดหายไปในองค์ประกอบ Variable

การวินิจฉัย

  1. ระบุชื่อนโยบายการแยกตัวแปรที่เกิดข้อผิดพลาดและองค์ประกอบที่ไม่มีแอตทริบิวต์ name คุณดูรายการเหล่านี้ในข้อความแสดงข้อผิดพลาดได้ ตัวอย่างเช่น ในข้อผิดพลาดต่อไปนี้ ชื่อนโยบายคือ Extract-Variables-1 และชื่อองค์ประกอบคือ Variable

    Error occurred while validation of bean Extract-Variables-1.xml. Reason: - Required attribute name is missing in Variable
    
  2. ใน XML ของนโยบายการดึงข้อมูลตัวแปรที่ล้มเหลว ให้ตรวจสอบว่าองค์ประกอบทั้งหมดที่ใช้ชื่อซึ่งกำหนดจากขั้นตอนที่ 1 ด้านบนมีแอตทริบิวต์ name หากมีองค์ประกอบที่แอตทริบิวต์ name ขาดหายไป นั่นก็คือสาเหตุของข้อผิดพลาด

    ตัวอย่างเช่น นโยบายการดึงข้อมูลตัวแปรต่อไปนี้มีการกำหนดองค์ประกอบ <Variable>

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <ExtractVariables async="false" continueOnError="false" enabled="true" name="Extract-Variables-1">
        <DisplayName>Extract Variables-1</DisplayName>
        <Properties/>
        <Variable type="boolean">
            <Pattern>{isAccountActive}</Pattern>
        </Variable>
    </ExtractVariables>
    

    โปรดสังเกตว่าแอตทริบิวต์ name ขาดหายไปในองค์ประกอบ Variable การทำให้พร็อกซี API ใช้งานได้จึงล้มเหลว

ความละเอียด

ตรวจสอบว่านโยบายการดึงข้อมูลตัวแปรมีแอตทริบิวต์ name ที่จำเป็นสำหรับองค์ประกอบ QueryParam, Header, FormParam หรือ Variable เช่น

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ExtractVariables async="false" continueOnError="false" enabled="true" name="Extract-Variables-1">
    <DisplayName>Extract Variables-1</DisplayName>
    <Properties/>
    <Variable name="account_active" type="boolean">
        <Pattern>{isAccountActive}</Pattern>
    </Variable>
</ExtractVariables>

PatternWithoutVariable

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

การทำให้พร็อกซี API ใช้งานได้ผ่าน Edge UI หรือ Edge Management API จะล้มเหลวโดยมีข้อความแสดงข้อผิดพลาดต่อไปนี้

Error Saving Revision [revision_number]
Pattern [pattern] should have at least one variable in ExtractVariables stepDefinition [policy_name]

ตัวอย่างข้อความแสดงข้อผิดพลาด

Error Saving Revision 7
Pattern /a/b/ should have at least one variable in ExtractVariables stepDefinition ExtractVariables-1.

ภาพหน้าจอตัวอย่าง

สาเหตุ

หากนโยบายการดึงข้อมูลตัวแปรไม่ได้ระบุตัวแปรภายในองค์ประกอบ <Pattern> การติดตั้งใช้งานพร็อกซี API จะล้มเหลว องค์ประกอบ <Pattern> ต้องการชื่อตัวแปรที่ระบบจะจัดเก็บข้อมูลที่แยกออกมา

การวินิจฉัย

  1. ระบุชื่อนโยบายการดึงข้อมูลตัวแปรที่เกิดข้อผิดพลาดและรูปแบบที่ไม่มีตัวแปร คุณดูรายการเหล่านี้ได้จากข้อความแสดงข้อผิดพลาด ตัวอย่างเช่น ในข้อผิดพลาดต่อไปนี้ ชื่อนโยบายคือ Extract-Variables-1 และชื่อองค์ประกอบคือ /a/b

    Pattern /a/b/ should have at least one variable in ExtractVariables stepDefinition ExtractVariables-1.
    
  2. ใน XML ของนโยบายการแยกตัวแปรที่ล้มเหลว ให้ยืนยันว่ารูปแบบที่ตั้งไว้ในองค์ประกอบ <Pattern> ตรงกับรูปแบบที่ระบุในข้อความแสดงข้อผิดพลาด (ขั้นตอนที่ 1 ด้านบน) ตัวอย่างเช่น นโยบายต่อไปนี้ระบุรูปแบบ /a/b ซึ่งตรงกับข้อความแสดงข้อผิดพลาด

    ลองดูตัวอย่างนโยบายการดึงข้อมูลตัวแปรที่มีองค์ประกอบ <Pattern> 3 รายการต่อไปนี้

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <ExtractVariables name="ExtractVariables-1">
       <Source>request</Source>
       <URIPath>
          <Pattern ignoreCase="true">/a/{pathSeg}</Pattern>
          <Pattern ignoreCase="true">/a/b/</Pattern>
          <Pattern ignoreCase="true">/a/b/c/{pathSeg}</Pattern>
       </URIPath>
       <VariablePrefix>urirequest</VariablePrefix>
    </ExtractVariables>
    
  3. ตรวจสอบว่าองค์ประกอบ <Pattern> ที่ระบุในขั้นตอนที่ 2 ไม่มีตัวแปรหรือไม่ ตัวแปร ต้องอยู่ในวงเล็บปีกกา หากรูปแบบไม่มีตัวแปร นั่นเป็นสาเหตุของข้อผิดพลาด

    องค์ประกอบ <Pattern> ที่มีรูปแบบ /a/b ไม่มีตัวแปร ดังนั้นการทำให้พร็อกซี API ใช้งานได้จึงล้มเหลว

    <Pattern ignoreCase="true">/a/b/</Pattern>
    
    

ความละเอียด

ตรวจสอบว่าองค์ประกอบ <Pattern> มีตัวแปร (ชื่อที่เข้ารหัสแบบหยิก วงเล็บปีกกา) เช่น

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ExtractVariables name="ExtractVariables-1">
   <Source>request</Source>
   <URIPath>
      <Pattern ignoreCase="true">/a/{pathSeg}</Pattern>
      <Pattern ignoreCase="true">/a/b/{pathSeg}</Pattern>
      <Pattern ignoreCase="true">/a/b/c/{pathSeg}</Pattern>
   </URIPath>
   <VariablePrefix>urirequest</VariablePrefix>
</ExtractVariables>

CannotBeConvertedToNodeset

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

การทำให้พร็อกซี API ใช้งานได้ผ่าน Edge UI หรือ Edge Management API จะล้มเหลวโดยมีข้อความแสดงข้อผิดพลาดต่อไปนี้

Error Deploying Revision [revision_number]
ExtractVariables [policy_name]: Result of xpath [policy_name] cannot be converted to nodeset. Context Revision:[revision_number]; APIProxy:[proxy_name]; Organization:[org_name]; Environment:[env_name].

ตัวอย่างข้อความแสดงข้อผิดพลาด

Error Deploying Revision 4 to test
ExtractVariables Extract-Variables-1: Result of xpath 123 cannot be converted to nodeset. Context Revision:4;APIProxy:EV-XML;Organization:aprabhashankar-eval;Environment:test.

ภาพหน้าจอตัวอย่าง

สาเหตุ

หากนโยบายการดึงข้อมูลตัวแปรมีนิพจน์ <XPath> ซึ่งกำหนดประเภท <Variable> เป็น nodeset แต่แปลงนิพจน์เป็น Nodeset ไม่ได้ การทำให้พร็อกซี API ใช้งานได้จะล้มเหลว

การวินิจฉัย

  1. ระบุนโยบายการดึงข้อมูลตัวแปรที่เกิดข้อผิดพลาดและ XPath ที่แปลงเป็น Nodeset ไม่ได้ ซึ่งคุณจะเห็นทั้ง 2 รายการนี้ในข้อความแสดงข้อผิดพลาด ตัวอย่างเช่น ในข้อผิดพลาดต่อไปนี้ ชื่อนโยบายคือ Extract-Variables-1 และ XPath คือ 123

    ExtractVariables Extract-Variables-1: Result of xpath 123 cannot be converted to nodeset. Context Revision:4;APIProxy:EV-XML;Organization:aprabhashankar-eval;Environment:test.
    
  2. ใน XML ของนโยบายการแยกตัวแปรที่ล้มเหลว ให้ตรวจสอบว่าชุด XPath ในองค์ประกอบ <XPath> ตรงกับ XPath ที่ระบุในข้อความแสดงข้อผิดพลาด (ขั้นตอนที่ 1 ด้านบน) ตัวอย่างเช่น นโยบายต่อไปนี้ระบุ เป็น 123 ซึ่งจะตรงกับสิ่งที่อยู่ในข้อความแสดงข้อผิดพลาด

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <ExtractVariables async="false" continueOnError="false" enabled="true" name="Extract-Variables-1">
        <DisplayName>Extract Variables-1</DisplayName>
        <Properties/>
        <Source clearPayload="false">request</Source>
        <VariablePrefix>visitor</VariablePrefix>
        <XMLPayload stopPayloadProcessing="false">
            <Namespaces/>
            <Variable name="age" type="nodeset">
                <XPath>123</XPath>
            </Variable>
        </XMLPayload>
    </ExtractVariables>
    
  3. ตรวจสอบประเภทขององค์ประกอบ <Variable> ที่สอดคล้องกับ <XPath> ที่ระบุไว้ในขั้นตอนที่ 2 ด้านบน หากประเภท <Variable> คือ nodeset นั่นเป็นสาเหตุของข้อผิดพลาด

    โปรดสังเกตว่านิพจน์ <XPath> คือ 123 ในตัวอย่างนโยบายการดึงข้อมูลตัวแปร

    <XPath>123</XPath>
    

    แปลงนิพจน์ 123 เป็น Nodeset ไม่ได้ ดังนั้นการทำให้พร็อกซี API ใช้งานได้จึงล้มเหลว

ความละเอียด

ตรวจสอบว่านิพจน์ <XPath> ที่ใช้ในนโยบายการแยกตัวแปรสามารถแปลงเป็น Nodeset ได้ หากกำหนดประเภท <Variable> เป็น Nodeset เช่น

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ExtractVariables async="false" continueOnError="false" enabled="true" name="Extract-Variables-1">
    <DisplayName>Extract Variables-1</DisplayName>
    <Properties/>
    <Source clearPayload="false">request</Source>
    <VariablePrefix>visitor</VariablePrefix>
    <XMLPayload stopPayloadProcessing="false">
        <Namespaces/>
        <Variable name="age" type="nodeset">
            <XPath>/visitor/age</XPath>
        </Variable>
    </XMLPayload>
</ExtractVariables>

InvalidPattern

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

การทำให้พร็อกซี API ใช้งานได้ผ่าน Edge UI หรือ Edge Management API จะล้มเหลวโดยมีข้อความแสดงข้อผิดพลาดต่อไปนี้

Error Deploying Revision [revision_number]
Pattern [pattern] is invalid in ExtractVariables stepDefinition [policy_name]

ตัวอย่างข้อความแสดงข้อผิดพลาด

Error Deploying Revision 18 to test
Pattern {*} is invalid in ExtractVariables stepDefinition ExtractVariables-2.

ภาพหน้าจอตัวอย่าง

สาเหตุ

หากคําจํากัดความองค์ประกอบ <Pattern> ไม่ถูกต้องในองค์ประกอบใดก็ตาม เช่น URIPath, QueryParam, Header, FormParam, XMLPayload หรือ JSONPayload ภายในนโยบายการดึงข้อมูลตัวแปร การติดตั้งใช้งานพร็อกซี API จะล้มเหลว

การวินิจฉัย

  1. ระบุนโยบายการดึงข้อมูลตัวแปรที่ล้มเหลวจากข้อความแสดงข้อผิดพลาด ตัวอย่างเช่น ในข้อผิดพลาดต่อไปนี้ ชื่อนโยบายคือ Extract-Variables-2

    Pattern {*} is invalid in ExtractVariables stepDefinition ExtractVariables-2.
    
  2. ใน XML ของนโยบายการแยกตัวแปรที่ล้มเหลว ให้ตรวจสอบว่ามีองค์ประกอบเหล่านี้อยู่หรือไม่และรวมองค์ประกอบ <Pattern> URIPath, QueryParam, Header, FormParam, XMLPayload หรือ JSONPayload

    ตัวอย่างเช่น นโยบายการดึงข้อมูลตัวแปรที่มีองค์ประกอบ <Pattern> ภายในองค์ประกอบ <QueryParam> มีดังนี้

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <ExtractVariables name="ExtractVariables-2">
        <DisplayName>ExtractVariables-2</DisplayName>
        <Source>request</Source>
        <QueryParam name="code">
            <Pattern ignoreCase="true">{*}</Pattern>
        </QueryParam>
        <VariablePrefix>queryinfo</VariablePrefix>
    </ExtractVariables>
    
  3. ตรวจสอบคำจำกัดความขององค์ประกอบ <Pattern> แต่ละรายการ หากมีองค์ประกอบ <Pattern> ที่มีคําจํากัดความไม่ถูกต้อง นั่นก็คือสาเหตุของข้อผิดพลาด

    ในตัวอย่างนโยบายการดึงข้อมูลตัวแปรที่แสดงด้านบน สังเกตว่าคําจํากัดความ <Pattern> ภายในองค์ประกอบ <QueryParam> ไม่ถูกต้อง ดังนั้นการทำให้พร็อกซี API ใช้งานได้จึงล้มเหลว ดูเพิ่มเติม เกี่ยวกับการจับคู่และการสร้างตัวแปร

    <Pattern ignoreCase="true">{*}</Pattern>
    
    

ความละเอียด

ตรวจสอบว่าคำจำกัดความขององค์ประกอบ <Pattern> ภายในองค์ประกอบ URIPath, QueryParam, Header, FormParam, XMLPayload หรือ JSONPayload ในนโยบายการดึงข้อมูลตัวแปรนั้นถูกต้อง เช่น

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ExtractVariables name="ExtractVariables-2">
    <DisplayName>Extract a value from a query parameter</DisplayName>
    <Source>request</Source>
    <QueryParam name="code">
        <Pattern ignoreCase="true">{code}</Pattern>
    </QueryParam>
    <VariablePrefix>queryinfo</VariablePrefix>
</ExtractVariables>

ดูข้อมูลเพิ่มเติมที่เกี่ยวกับการจับคู่และการสร้างตัวแปร

XPathCompilationFailed

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

การทำให้พร็อกซี API ใช้งานได้ผ่าน Edge UI หรือ Edge Management API ล้มเหลว ด้วยข้อความแสดงข้อผิดพลาดนี้

Error Deploying Revision [revision_number]
ExtractVariables [policy_name]: Failed to compile xpath [xpath] Context Revision:[revision_number]; APIProxy:[proxy_name]; Organization:[org_name]; Environment:[env_name].

ตัวอย่างข้อความแสดงข้อผิดพลาด

Error Deploying Revision 1 to test
ExtractVariables EV-XML-Age: Failed to compile xpath /apigee:Directions/apigee:route/apigee:leg/apigee:name. Context Revision:1;APIProxy:EV-XML;Organization:aprabhashankar-eval;Environment:test.

ภาพหน้าจอตัวอย่าง

สาเหตุ

หากคำนำหน้าหรือค่าที่ใช้ในองค์ประกอบ <XPath> ไม่ได้เป็นส่วนหนึ่งของเนมสเปซที่ประกาศในนโยบายการดึงข้อมูลตัวแปร การทำให้พร็อกซี API ใช้งานได้จะล้มเหลว

คุณสามารถดูข้อมูลเพิ่มเติมเกี่ยวกับเนมสเปซ, XPath และคำนำหน้าในเนมสเปซ XML และผลกระทบที่ส่งผลต่อ XPath และ MRSS

การวินิจฉัย

  1. ระบุนโยบายการดึงข้อมูลตัวแปรที่เกิดข้อผิดพลาดและ XPath ที่ไม่สามารถคอมไพล์ได้ ซึ่งคุณจะเห็นทั้ง 2 รายการนี้ในข้อความแสดงข้อผิดพลาด ตัวอย่างเช่น ในข้อผิดพลาดต่อไปนี้ ชื่อนโยบายคือ EV-XML-Age และ xpath คือ /apigee:Directions/apigee:route/apigee:leg/apigee:name

    ExtractVariables EV-XML-Age: Failed to compile xpath /apigee:Directions/apigee:route/apigee:leg/apigee:name. Context Revision:1;APIProxy:EV-XML;Organization:aprabhashankar-eval;Environment:test.
    
  2. ใน XML ของนโยบายการแยกตัวแปรที่ล้มเหลว ให้ตรวจสอบว่าชุด XPath ในองค์ประกอบ <XPath> ตรงกับ XPath ที่ระบุในข้อความแสดงข้อผิดพลาด (ขั้นตอนที่ 1 ด้านบน) ตัวอย่างเช่น นโยบายต่อไปนี้ระบุ เป็น /apigee:Directions/apigee:route/apigee:leg/apigee:name ซึ่งจะตรงกับสิ่งที่อยู่ในข้อความแสดงข้อผิดพลาด

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <ExtractVariables async="false" continueOnError="false" enabled="true" name="EV-XML-Age">
      <DisplayName>EV-XML-Age</DisplayName>
      <Source clearPayload="false">request</Source>
      <XMLPayload stopPayloadProcessing="false">
        <Namespaces>
            <Namespace prefix="gmail">http://mail.google.com</Namespace>
        </Namespaces>
        <Variable name="legName" type="string">
        <XPath>/apigee:Directions/apigee:route/apigee:leg/apigee:name</XPath>
            </Variable>
      </XMLPayload>
    </ExtractVariables>
    
  3. ตรวจสอบองค์ประกอบ <Namespaces> และ <XPath> ในนโยบายการดึงข้อมูลตัวแปร หาก <XPath> ที่เจาะจงซึ่งระบุไว้ในข้อความแสดงข้อผิดพลาดใช้คำนำหน้าหรือค่าที่ไม่ได้เป็นส่วนหนึ่งของเนมสเปซที่ประกาศในนโยบายการดึงข้อมูลตัวแปร นั่นก็คือสาเหตุของข้อผิดพลาด

    โปรดสังเกตว่า <XPath> ที่เจาะจงจะใช้คำนำหน้า apigee ในตัวอย่างนโยบายตัวแปรการดึงข้อมูล

    <XPath>/apigee:Directions/apigee:route/apigee:leg/apigee:name</XPath>
    

    แต่ไม่ได้กำหนดคำนำหน้า apigee ในองค์ประกอบ <Namespace> ใดๆ ดังนั้น การคอมไพล์ <XPath> ล้มเหลวจนทำให้การทำให้ใช้งานได้ล้มเหลว

ความละเอียด

ตรวจสอบว่าได้ประกาศเนมสเปซทั้งหมดที่ใช้ในองค์ประกอบ <XPath> ในนโยบายการดึงข้อมูลตัวแปร เช่น

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ExtractVariables async="false" continueOnError="false" enabled="true" name="EV-XML-Age">
  <DisplayName>EV-XML-Age</DisplayName>
  <Source clearPayload="false">request</Source>
  <XMLPayload stopPayloadProcessing="false">
    <Namespaces>
        <Namespace prefix="apigee">http://www.apigee.com</Namespace>
        <Namespace prefix="gmail">http://mail.google.com</Namespace>
    </Namespaces>
    <Variable name="legName" type="string">
        <XPath>/apigee:Directions/apigee:route/apigee:leg/apigee:name</XPath>
    </Variable>
  </XMLPayload>
</ExtractVariables>