คุณกำลังดูเอกสาร Apigee Edge
ไปที่เอกสารประกอบของ Apigee X ข้อมูล
![](https://docs.apigee.com/static/api-platform/images/icon_policy_mediation.jpg?hl=th)
นโยบาย SOAPMessageValidation จะดำเนินการต่อไปนี้
- ตรวจสอบข้อความ XML กับสคีมา XSD
- ตรวจสอบข้อความ SOAP กับคำจำกัดความ WSDL
- ระบุรูปแบบที่ถูกต้องของข้อความ JSON และ XML
แม้ว่าชื่อของนโยบายนี้ใน UI คือ "การตรวจสอบข้อความ SOAP" แต่นโยบายนี้จะตรวจสอบความถูกต้องมากกว่าข้อความ SOAP ส่วนนี้จะกล่าวถึงนโยบายว่า "นโยบายการตรวจสอบข้อความ"
องค์ประกอบ <MessageValidation>
กำหนดนโยบายการตรวจสอบข้อความ
ค่าเริ่มต้น | ดูแท็บนโยบายเริ่มต้นด้านล่าง |
ต้องระบุหรือไม่ | ไม่บังคับ |
ประเภท | ออบเจ็กต์ที่ซับซ้อน |
องค์ประกอบระดับบน | ไม่มี |
องค์ประกอบย่อย |
<DisplayName> <Element> <ResourceURL> <SOAPMessage> <Source> |
ไวยากรณ์
องค์ประกอบ <MessageValidation>
ใช้ไวยากรณ์ต่อไปนี้
<MessageValidation continueOnError="[false|true]" enabled="[true|false]" name="policy_name" > <!-- All MessageValidation child elements are optional --> <DisplayName>policy_display_name</DisplayName> <Element namespace="element_namespace">element_to_validate</Element> <SOAPMessage version="[ 1.1 | 1.2 | 1.1/1.2 ]"/> <Source>message_to_validate</Source> <ResourceURL>validation_WSDL_or_XSD</ResourceURL> </MessageValidation>
นโยบายเริ่มต้น
ตัวอย่างต่อไปนี้แสดงการตั้งค่าเริ่มต้นเมื่อคุณเพิ่มนโยบายการตรวจสอบข้อความลงในโฟลว์ใน Edge UI
<MessageValidation continueOnError="false" enabled="true" name="SOAP-Message-Validation-1"> <DisplayName>SOAP Message Validation-1</DisplayName> <Properties/> <Element namespace="http://sample.com">sampleObject</Element> <SOAPMessage/> <Source>request</Source> <ResourceURL>wsdl://SOAP-Message-Validation-1.wsdl</ResourceURL> </MessageValidation>
องค์ประกอบนี้มีแอตทริบิวต์ต่อไปนี้ซึ่งมักใช้กับนโยบายทั้งหมด
แอตทริบิวต์ | ค่าเริ่มต้น | จําเป็นไหม | คำอธิบาย |
---|---|---|---|
name |
ไม่มีข้อมูล | จำเป็น |
ชื่อภายในของนโยบาย ค่าของแอตทริบิวต์ ใช้องค์ประกอบ |
continueOnError |
เท็จ | ไม่บังคับ | ตั้งค่าเป็น "false" เพื่อแสดงข้อผิดพลาดเมื่อนโยบายล้มเหลว ซึ่งเป็นลักษณะการทํางานที่คาดหวังตามนโยบายส่วนใหญ่ ตั้งค่าเป็น "จริง" เพื่อดําเนินการโฟลว์ข้อมูลต่อไป แม้ว่านโยบายจะล้มเหลวก็ตาม |
enabled |
จริง | ไม่บังคับ | ตั้งค่าเป็น "true" เพื่อบังคับใช้นโยบาย ตั้งค่าเป็น "false" เพื่อ "ปิด" นโยบาย ระบบจะไม่บังคับใช้นโยบายแม้ว่าจะยังคงแนบไปกับโฟลว์ |
async |
เท็จ | เลิกใช้ | แอตทริบิวต์นี้เลิกใช้งานแล้ว |
ตัวอย่าง
ตัวอย่างต่อไปนี้แสดงวิธีที่คุณสามารถใช้นโยบายการตรวจสอบข้อความได้
1: การตรวจสอบ XSD
คุณใช้นโยบายการตรวจสอบข้อความเพื่อตรวจสอบเพย์โหลดของคำขอข้อความ XML กับสคีมา XSD ได้
- สร้างไฟล์ทรัพยากร XSD ใหม่ เช่น "note-schema.xsd":
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="note"> <xs:complexType> <xs:sequence> <xs:element name="to" type="xs:string"/> <xs:element name="from" type="xs:string"/> <xs:element name="heading" type="xs:string"/> <xs:element name="body" type="xs:string"/> </xs:sequence> </xs:complexType> </xs:element> </xs:schema>
- เพิ่มนโยบายการตรวจสอบข้อความ SOAP ในขั้นตอนก่อนการส่งของปลายทางของพร็อกซี:
- ระบุตำแหน่งของไฟล์ทรัพยากร XSD ด้วยองค์ประกอบ
<ResourceURL>
เช่น... <ResourceURL>xsd://note-schema.xsd</ResourceURL> ...
- นําองค์ประกอบ
<SOAPMessage>
และ<Element>
ออกจากคําจํากัดความของนโยบาย
คำจำกัดความของนโยบายควรมีลักษณะดังนี้
<MessageValidation continueOnError="false" enabled="true" name="validateXMLRequest"> <DisplayName>My XML Validator</DisplayName> <Properties/> <Source>request</Source> <ResourceURL>xsd://note-schema.xsd</ResourceURL> </MessageValidation>
- ระบุตำแหน่งของไฟล์ทรัพยากร XSD ด้วยองค์ประกอบ
- ส่งคำขอ
POST
ไปยังพร็อกซี API ด้วย XML เป็นเพย์โหลดข้อความ ตามตัวอย่างต่อไปนี้curl -v -X POST -H 'Content-Type: application/xml' http://my-test.apigee.net/v1/xsd-mock -d '<note> <to>Fred Rogers</to> <from>Nick Danger</from> <heading>Greetings from my neighborhood</heading> <body>Just writing to say hello.</body> </note>'
โปรดสังเกตว่ามีการตั้งค่าส่วนหัว
Content-type
เป็น "application/xml"นอกจากนี้ คุณยังสร้างไฟล์ข้อมูลสำหรับเพย์โหลดและอ้างอิงด้วยคำสั่งที่คล้ายกับตัวอย่างต่อไปนี้ได้ด้วย
curl -v -X POST -H 'Content-type: application/xml' http://my-test.apigee.net/v1/xsd-mock --data '@../examples/note-payload.xml'
คุณควรได้รับการตอบกลับ HTTP 200
คุณอาจได้รับรายละเอียดเพิ่มเติมเกี่ยวกับคำขอ ทั้งนี้ขึ้นอยู่กับปลายทางเป้าหมาย เช่น หากคุณใช้ http://httpbin.org/post
เป็นปลายทางเป้าหมายและระบุเอาต์พุต -v
(แบบละเอียด) การตอบกลับควรคล้ายกับตัวอย่างต่อไปนี้
< HTTP/1.1 200 OK < Date: Wed, 16 May 2018 21:24:54 GMT < Content-Type: application/xml < Content-Length: 431 < Connection: keep-alive < Server: gunicorn/19.8.1 < Access-Control-Allow-Origin: * < Access-Control-Allow-Credentials: true < Via: 1.1 vegur { "args":{}, "data":"<note><to>fred</to><from>nick</from><heading>hello</heading> <body>Just writing to say hello.</body></note>", "files":{}, "form":{}, "headers": { "Accept":"*/*", "Connection":"close", "Content-Length":"106", "Content-Type":"application/xml", "Host":"httpbin.org", "User-Agent":"curl/7.58.0" }, "json":null, "origin":"10.1.1.1, 104.154.179.1", "url":"http://httpbin.org/post" }
หากต้องการยืนยันว่าการตรวจสอบ XSD ใช้งานได้ ให้ลองแทรกแท็กอื่นในเนื้อหาของคำขอ เช่น
curl -v -X POST -H 'Content-Type: application/xml' http://my-test.apigee.net/v1/xsd-mock -d '<note> <to>Fred Rogers</to> <from>Nick Danger</from> <heading>Greetings from my neighborhood</heading> <body>Just writing to say hello.</body> <badTag>Not good</badTag> </note>'
คุณควรได้รับข้อผิดพลาดในการตรวจสอบความถูกต้อง
2: การตรวจสอบ SOAP
คุณใช้นโยบายการตรวจสอบข้อความเพื่อตรวจสอบเพย์โหลดของคำขอข้อความ SOAP กับ WSDL ได้
- สร้างไฟล์ทรัพยากร WSDL ใหม่ เช่น "example-wsdl.wsdl"
- เพิ่มนโยบายการตรวจสอบข้อความ SOAP ลงในโฟลว์ล่วงหน้าของปลายทางพร็อกซี
- ตั้งค่าแอตทริบิวต์
version
ขององค์ประกอบ<SOAPMessage>
เป็นเวอร์ชันของโปรโตคอล SOAP ที่คุณต้องการตรวจสอบ เช่น "1.1":... <SOAPMessage version="1.1"/> ...
- ตั้งค่าขององค์ประกอบ
<Element>
เป็นองค์ประกอบที่คุณต้องการตรวจสอบ... <Element namespace="https://example.com/gateway">getID</Element> ...
<Element>
ระบุรายการย่อยแรกภายใต้องค์ประกอบ<Body>
ในเอนเวโลปของคำขอ SOAPตั้งค่าแอตทริบิวต์
namespace
เป็นเนมสเปซสำหรับรายการย่อยนั้น - ระบุตำแหน่งของไฟล์ทรัพยากร WSDL ด้วยองค์ประกอบ
<ResourceURL>
เช่น... <ResourceURL>wsdl://example-wsdl.wsdl</ResourceURL> ...
คำจำกัดความของนโยบายควรมีลักษณะดังนี้
<MessageValidation continueOnError="false" enabled="true" name="validateSOAPRequest"> <DisplayName>My SOAP Validator</DisplayName> <Properties/> <Source>request</Source> <SOAPMessage version="1.1"/> <Element namespace="https://example.com/gateway">getID</Element> <ResourceURL>wsdl://example-wsdl.wsdl</ResourceURL> </MessageValidation>
- ตั้งค่าแอตทริบิวต์
- ส่งคำขอ
POST
ไปยังพร็อกซี API โดยมีเอนเวโลป SOAP เป็นเพย์โหลดข้อความ ตามตัวอย่างต่อไปนี้curl -v -X POST -H 'Content-Type: application/xml' http://my-test.apigee.net/v1/xsd-mock -d '<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:prox="https://example.com/gateway" xmlns:typ="https://example.com/gateway/types"> <soapenv:Header/> <soapenv:Body> <prox:getID> <typ:MyType> <typ:ID>42</typ:ID> </typ:MyType> </prox:getID> </soapenv:Body> </soapenv:Envelope>'
โปรดสังเกตว่ามีการตั้งค่าส่วนหัว
Content-type
เป็น "application/xml"นอกจากนี้ คุณยังสร้างไฟล์ข้อมูลสำหรับเพย์โหลดและอ้างอิงด้วยคำสั่งที่คล้ายกับตัวอย่างต่อไปนี้ได้ด้วย
curl -v -X POST -H 'Content-type: application/xml' http://my-test.apigee.net/v1/xsd-mock --data '@../examples/soap-payload.xml'
คุณควรได้รับการตอบกลับ HTTP 200
คุณอาจได้รับรายละเอียดเพิ่มเติมเกี่ยวกับคำขอ ทั้งนี้ขึ้นอยู่กับปลายทางเป้าหมาย เช่น หากคุณใช้ http://httpbin.org/post
เป็นปลายทางเป้าหมาย การตอบสนองควรคล้ายกับตัวอย่างต่อไปนี้
< HTTP/1.1 200 OK < Date: Wed, 16 May 2018 21:24:54 GMT < Content-Type: application/xml < Content-Length: 431 < Connection: keep-alive < Server: gunicorn/19.8.1 < Access-Control-Allow-Origin: * < Access-Control-Allow-Credentials: true < Via: 1.1 vegur { "args":{}, "data":"<note><to>fred</to><from>nick</from><heading>hello</heading> <body>Just writing to say hello.</body></note>", "files":{}, "form":{}, "headers": { "Accept":"*/*", "Connection":"close", "Content-Length":"106", "Content-Type":"application/xml", "Host":"httpbin.org", "User-Agent":"curl/7.58.0" }, "json":null, "origin":"10.1.1.1, 104.154.179.1", "url":"http://httpbin.org/post" }
3: XML/JSON มีรูปแบบที่ดี
คุณใช้นโยบายการตรวจสอบข้อความเพื่อยืนยันว่าเพย์โหลดข้อความ JSON หรือ XML มีรูปแบบที่ถูกต้องได้ (ต่างจากการตรวจสอบความถูกต้อง) นโยบายนี้ดูแลให้โครงสร้างและเนื้อหาเป็นไปตามมาตรฐานที่ยอมรับ ได้แก่
- มีองค์ประกอบรูทเดียว
- ไม่มีอักขระที่ไม่ถูกต้องในเนื้อหา
- ออบเจ็กต์และแท็กซ้อนกันอย่างถูกต้อง
- แท็กเริ่มต้นและสิ้นสุดตรงกัน
หากต้องการตรวจสอบเพย์โหลด XML หรือ JSON ที่มีรูปแบบถูกต้อง ให้ทำดังนี้
- เพิ่มนโยบายการตรวจสอบข้อความ SOAP ในขั้นตอนล่วงหน้าของปลายทางพร็อกซี
- นำองค์ประกอบ
<ResourceURL>
,<SOAPMessage>
และ<Element>
ออกจากคำจำกัดความของนโยบายคำจำกัดความของนโยบายควรมีลักษณะดังนี้
<MessageValidation async="false" continueOnError="false" enabled="true" name="validateXMLRequest"> <DisplayName>My JSON Checker</DisplayName> <Properties/> <Source>request</Source> </MessageValidation>
- ส่งคำขอ
POST
ไปยังพร็อกซี API ตามตัวอย่างต่อไปนี้curl -v -X POST -H 'Content-Type: application/json' http://my-test.apigee.net/v1/xsd-mock -d '{ "note": { "to": "Fred Rogers", "from": "Nick Danger", "header": "Greetings from my neighborhood", "body": "Just writing to say hello." } }'
โปรดทราบว่ามีการตั้งค่าส่วนหัว
Content-type
เป็น "application/json"หากต้องการตรวจสอบความสมบูรณ์ของไฟล์ XML ให้ใช้ XML เป็นเพย์โหลดข้อความและตั้งค่า
Content-type
เป็น "application/xml"
คุณควรได้รับการตอบกลับ HTTP 200
เมื่อส่งเพย์โหลดข้อความที่ไม่มี XML หรือ JSON ที่มีรูปแบบถูกต้อง คุณควรได้รับข้อผิดพลาด steps.messagevalidation.Failed
การอ้างอิงองค์ประกอบย่อย
ส่วนนี้จะอธิบายองค์ประกอบย่อยของ <MessageValidation>
<DisplayName>
ใช้เพิ่มเติมจากแอตทริบิวต์ name
เพื่อติดป้ายกำกับนโยบายในเครื่องมือแก้ไขพร็อกซี UI การจัดการด้วยชื่ออื่นที่ฟังดูเป็นธรรมชาติมากขึ้น
องค์ประกอบ <DisplayName>
เหมือนกันในนโยบายทั้งหมด
ค่าเริ่มต้น | ไม่มี |
ต้องระบุหรือไม่ | ไม่บังคับ หากไม่ระบุ <DisplayName> ระบบจะใช้ค่าของแอตทริบิวต์ name ของนโยบาย |
ประเภท | สตริง |
องค์ประกอบระดับบน | <PolicyElement> |
องค์ประกอบย่อย | ไม่มี |
องค์ประกอบ <DisplayName>
ใช้ไวยากรณ์ต่อไปนี้
ไวยากรณ์
<PolicyElement> <DisplayName>policy_display_name</DisplayName> ... </PolicyElement>
ตัวอย่าง
<PolicyElement> <DisplayName>My Validation Policy</DisplayName> </PolicyElement>
องค์ประกอบ <DisplayName>
ไม่มีแอตทริบิวต์หรือองค์ประกอบย่อย
<Element>
ระบุองค์ประกอบในข้อความเพื่อตรวจสอบ นี่คือรายการย่อยแรกภายใต้องค์ประกอบ <Body>
ในเอนเวโลปของคำขอ SOAP
ค่าเริ่มต้น | sampleObject |
ต้องระบุหรือไม่ | ไม่บังคับ |
ประเภท | สตริง |
องค์ประกอบระดับบน |
<MessageValidation>
|
องค์ประกอบย่อย | ไม่มี |
องค์ประกอบ <Element>
ใช้ไวยากรณ์ต่อไปนี้
ไวยากรณ์
... <Element namespace="element_namespace">element_to_validate</Element> ...
ตัวอย่างที่ 1
ตัวอย่างต่อไปนี้ระบุองค์ประกอบเดียวที่จะต้องตรวจสอบ
... <Element namespace="https://example.com/gateway">getID</Element> ...
ตัวอย่างที่ 2
คุณระบุองค์ประกอบที่จะตรวจสอบได้มากกว่า 1 รายการโดยการเพิ่มองค์ประกอบ <Element>
หลายรายการดังนี้
... <Element namespace="https://example.com/gateway">getID</Element> <Element namespace="https://example.com/gateway">getDetails</Element> ...
องค์ประกอบ <Element>
มีแอตทริบิวต์ต่อไปนี้
แอตทริบิวต์ | ค่าเริ่มต้น | จำเป็นหรือไม่ | คำอธิบาย |
---|---|---|---|
namespace |
"http://sample.com" | ไม่บังคับ | กำหนดเนมสเปซขององค์ประกอบที่จะตรวจสอบ |
<ResourceURL>
ระบุสคีมา XSD หรือคำจำกัดความ WSDL ที่จะใช้ตรวจสอบข้อความต้นฉบับ
ค่าเริ่มต้น | wsdl://display_name.wsdl |
ต้องระบุหรือไม่ | ไม่บังคับ |
ประเภท | สตริง |
องค์ประกอบระดับบน |
<MessageValidation>
|
องค์ประกอบย่อย | ไม่มี |
องค์ประกอบ <ResourceURL>
ใช้ไวยากรณ์ต่อไปนี้
ไวยากรณ์
... <ResourceURL>[wsdl|xsd]://validation_WSDL_or_XSD</ResourceURL> ...
ตัวอย่าง
สำหรับไฟล์ XML ให้ทำดังนี้
... <ResourceURL>xsd://note-schema.xsd</ResourceURL> ...
สำหรับ WSDL:
... <ResourceURL>wsdl://example-wsdl.wsdl</ResourceURL> ...
ค่าของ <ResourceURL>
ต้องชี้ไปที่ไฟล์ทรัพยากรในพร็อกซี API ไม่สามารถอ้างอิงถึงทรัพยากรภายนอกผ่าน HTTP หรือ HTTPS ได้
หากคุณไม่ได้ระบุค่าสำหรับ <ResourceURL>
ระบบจะตรวจหา JSON หรือ XML ที่มีรูปแบบถูกต้องหากส่วนหัว Content-type
เป็น "application/json" หรือ "application/xml" ตามลำดับ
องค์ประกอบ <ResourceURL>
ไม่มีองค์ประกอบย่อยหรือแอตทริบิวต์
การใช้ XSD สำหรับการตรวจสอบความถูกต้อง
หากเพย์โหลด XML ที่คุณตรวจสอบด้วยนโยบายการตรวจสอบข้อความอ้างอิงสคีมาอื่น คุณต้องนำหน้าไฟล์ XSD ที่รวมอยู่ด้วย xsd
ในแอตทริบิวต์ schemaLocation
สคีมาตัวอย่างต่อไปนี้ประกอบด้วย XSD หลายรายการ
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified"> <xs:include schemaLocation="xsd://note-schema.xsd"/> <xs:include schemaLocation="xsd://letter-schema.xsd"/> <xs:include schemaLocation="xsd://user-schema.xsd"/> </xs:schema>
การใช้ WSDL สำหรับการตรวจสอบความถูกต้อง
WSDL ต้องกำหนดสคีมาอย่างน้อย 1 รายการ หากไม่ได้อ้างอิงสคีมาอย่างน้อย 1 รายการ คุณจะใช้นโยบายการตรวจสอบข้อความไม่สำเร็จ
ความลึกในการนำเข้าสูงสุดสำหรับสคีมาคือ 10 หากมีการนำเข้าที่ซ้อนกันเกินจำนวนดังกล่าว นโยบายการตรวจสอบข้อความจะดำเนินการไม่สำเร็จ
<SOAPMessage>
กำหนดเวอร์ชันของ SOAP ที่นโยบายการตรวจสอบข้อความใช้ตรวจสอบ
ค่าเริ่มต้น | ไม่มี |
ต้องระบุหรือไม่ | ไม่บังคับ |
ประเภท | ไม่มี |
องค์ประกอบระดับบน |
<MessageValidation>
|
องค์ประกอบย่อย | ไม่มี |
องค์ประกอบ <SOAPMessage>
ใช้ไวยากรณ์ต่อไปนี้
ไวยากรณ์
... <SOAPMessage version="[ 1.1 | 1.2 | 1.1/1.2 ]"/> ...
ตัวอย่าง
... <SOAPMessage version="1.1"/> ...
องค์ประกอบ <SOAPMessage>
มีแอตทริบิวต์ต่อไปนี้
แอตทริบิวต์ | ค่าเริ่มต้น | จำเป็นหรือไม่ | คำอธิบาย |
---|---|---|---|
version |
ไม่มี | ไม่บังคับ | เวอร์ชันของ SOAP ที่นโยบายนี้ใช้ตรวจสอบข้อความ SOAP
ค่าที่ใช้ได้มีดังนี้
|
ดูข้อมูลเพิ่มเติมได้ที่จาก SOAP/1.1 ไปยัง SOAP เวอร์ชัน 1.2 ใน 9 พอยต์
<Source>
ระบุข้อความต้นฉบับที่จะตรวจสอบ ค่าขององค์ประกอบนี้คือชื่อของข้อความที่ต้องการตรวจสอบ
หากคุณไม่ตั้งค่า <Source>
นโยบายนี้จะมีค่าเริ่มต้นเป็น "ข้อความ" ซึ่งหมายถึงข้อความคำขอที่สมบูรณ์ (ในขั้นตอนการส่งคำขอ) หรือข้อความตอบกลับ (ในขั้นตอนการตอบกลับ) รวมถึงเพย์โหลดทั้งหมด นอกจากนี้ คุณยังตั้งค่าเป็น "คําขอ" หรือ "การตอบกลับ" อย่างชัดเจนเพื่ออ้างถึงคําขอหรือคําตอบได้ด้วย
ค่าเริ่มต้น | ส่งคำขอ |
ต้องระบุหรือไม่ | ไม่บังคับ |
ประเภท | สตริง |
องค์ประกอบระดับบน |
<MessageValidation>
|
องค์ประกอบย่อย | ไม่มี |
องค์ประกอบ <Source>
ใช้ไวยากรณ์ต่อไปนี้
ไวยากรณ์
... <Source>message_to_validate</Source> ...
ตัวอย่าง
... <Source>request</Source> ...
นอกจาก "message", "request" และ "response" แล้ว คุณยังตั้งค่า <Source>
เป็นชื่อข้อความใดก็ได้ในขั้นตอน หากทําเช่นนี้ คุณต้องสร้างข้อความที่กําหนดเองโดยใช้ชื่อดังกล่าวในขั้นตอนก่อนที่นโยบายนี้จะใช้งานได้ ไม่เช่นนั้น คุณจะได้รับข้อผิดพลาด
หากแก้ไขค่าของ <Source>
ในเส้นทางของข้อความไม่ได้ หรือแปลงเป็นประเภทที่ไม่ใช่ข้อความ จะเกิดอย่างใดอย่างหนึ่งต่อไปนี้
- หากค่า Null: Edge จะแสดงข้อผิดพลาด
steps.messagevalidation.SourceMessageNotAvailable
- หากไม่ใช่ประเภทข้อความ: Edge จะแสดงข้อผิดพลาด
steps.messagevalidation.NonMessageVariable
องค์ประกอบ <Source>
ไม่มีแอตทริบิวต์หรือองค์ประกอบย่อย
รหัสข้อผิดพลาด
ข้อผิดพลาดที่แสดงผลจากนโยบาย Edge จะมีรูปแบบที่สอดคล้องกันตามที่อธิบายไว้ในข้อมูลอ้างอิงรหัสข้อผิดพลาด
ส่วนนี้จะอธิบายโค้ดข้อผิดพลาดและข้อความแสดงข้อผิดพลาดที่แสดงผลและตัวแปรข้อผิดพลาดที่ Edge กําหนดเมื่อนโยบายนี้ทําให้เกิดข้อผิดพลาด ข้อมูลนี้เป็นสิ่งสำคัญที่ต้องทราบหากคุณกำลังกำหนดกฎข้อผิดพลาดเพื่อจัดการกับข้อผิดพลาด ดูข้อมูลเพิ่มเติมได้ที่สิ่งที่คุณต้องทราบเกี่ยวกับข้อผิดพลาดของนโยบายและการจัดการข้อผิดพลาด
ข้อผิดพลาดเกี่ยวกับรันไทม์
ข้อผิดพลาดเหล่านี้อาจเกิดขึ้นเมื่อนโยบายทำงาน
รหัสข้อผิดพลาด | สถานะ HTTP | สาเหตุ | แก้ไข |
---|---|---|---|
steps.messagevalidation.SourceMessageNotAvailable |
500 |
ข้อผิดพลาดนี้เกิดขึ้นหากตัวแปรที่ระบุในองค์ประกอบ
|
build |
steps.messagevalidation.NonMessageVariable |
500 |
ข้อผิดพลาดนี้เกิดขึ้นหากมีการตั้งค่าองค์ประกอบ ตัวแปรประเภทข้อความจะเป็นตัวแทนของคำขอและการตอบกลับ HTTP ทั้งหมด ตัวแปรโฟลว์ Edge ในตัว |
build |
steps.messagevalidation.Failed |
500 | ข้อผิดพลาดนี้เกิดขึ้นหากนโยบาย SOAPMessageValidation ตรวจสอบเพย์โหลดของข้อความอินพุตกับสคีมา XSD หรือคำจำกัดความ WSDL ไม่สำเร็จ และจะเกิดขึ้นหากมี JSON หรือ XML ที่มีรูปแบบไม่ถูกต้องในข้อความเพย์โหลด | build |
ข้อผิดพลาดในการทำให้ใช้งานได้
ข้อผิดพลาดเหล่านี้อาจเกิดขึ้นเมื่อคุณใช้พร็อกซีที่มีนโยบายนี้
ชื่อข้อผิดพลาด | สาเหตุ | แก้ไข |
---|---|---|
InvalidResourceType |
องค์ประกอบ <ResourceURL> ในนโยบาย SOAPMessageValidation มีการตั้งค่าเป็นประเภททรัพยากรที่นโยบายไม่รองรับ
|
build |
ResourceCompileFailed |
สคริปต์ทรัพยากรที่อ้างอิงในองค์ประกอบ <ResourceURL> ของนโยบาย SOAPMessageValidation มีข้อผิดพลาดที่ทำให้คอมไพล์ไม่ได้
|
build |
RootElementNameUnspecified |
องค์ประกอบ <Element> ในนโยบาย SOAPMessageValidation ไม่มีชื่อขององค์ประกอบราก |
build |
InvalidRootElementName |
องค์ประกอบ <Element> ในนโยบาย SOAPMessageValidation มีชื่อองค์ประกอบรูทที่ไม่สอดคล้องกับกฎ XML สำหรับการตั้งชื่อองค์ประกอบที่ถูกต้อง |
build |
สคีมา
นโยบายแต่ละประเภทจะกำหนดโดยสคีมา XML (.xsd
) สคีมานโยบายมีอยู่ใน GitHub