Bạn đang xem tài liệu về Apigee Edge.
Chuyển đến tài liệu về
Apigee X. thông tin
NothingToExtract
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] 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].
Ví dụ về thông báo lỗi
Error Saving Revision 2
ExtractVariables EV-XML-Age: at least one of URIPath, QueryParam, Header, FormParam, XMLPayload, JSONPayload is mandatory.
Ảnh chụp màn hình mẫu
Nguyên nhân
Nếu Chính sách trích xuất biến không có bất kỳ phần tử nào URIPath
, QueryParam
, Header
, FormParam
, XMLPayload
hoặc JSONPayload
, thì quá trình triển khai Proxy API sẽ không thành công vì không có gì để trích xuất.
Như đã nêu trong thông báo lỗi, chính sách Trích xuất biến phải có ít nhất một trong các phần tử sau đây được đưa vào chính sách: URIPath
, QueryParam
, Header
, FormParam
, XMLPayload
hoặc JSONPayload
.
Chẩn đoán
Kiểm tra chính sách Trích xuất các biến có tên trong thông báo lỗi. Nếu chính sách không có một trong các phần tử sau đây: URIPath
, QueryParam
, Header
, FormParam
, XMLPayload
hoặc JSONPayload
, thì đó chính là nguyên nhân gây ra lỗi. Ví dụ: chính sách Trích xuất biến không có bất kỳ yếu tố nào được đề cập ở trên:
<ExtractVariables async="false" continueOnError="false" enabled="true" name="EV-XML-Age">
<DisplayName>EV-XML-Age</DisplayName>
<Properties/>
</ExtractVariables>
Vì không có phần tử bắt buộc nào trong chính sách Trích xuất biến, nên không triển khai được proxy API.
Độ phân giải
Đảm bảo rằng chính sách Trích xuất biến có ít nhất một trong các phần tử bắt buộc sau: URIPath
, QueryParam
, Header
, FormParam
, XMLPayload
, JSONPayload
. Ví dụ:
<?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
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] ExtractVariables [policy_name]: Non-empty prefix [prefix_name] cannot be mapped to empty uri.
Ví dụ về thông báo lỗi
Error Saving Revision 3
ExtractVariables EV-XML-Age: Non-empty prefix apigee cannot be mapped to empty uri.
Ảnh chụp màn hình mẫu
Nguyên nhân
Lỗi này xảy ra nếu Chính sách trích xuất biến có một tiền tố được xác định trong phần tử <Namespace>
của phần tử <XMLPayload>
nhưng không có URI nào được xác định.
Chẩn đoán
Xác định chính sách Trích xuất biến xảy ra lỗi và tên tiền tố. Bạn có thể tìm thấy cả hai mục này trong thông báo lỗi. Ví dụ: trong lỗi sau, tên chính sách là
EV-XML-Age
và tiền tố làapigee
:ExtractVariables EV-XML-Age: Non-empty prefix apigee cannot be mapped to empty uri.
Trong XML của chính sách Trích xuất biến không thành công, hãy xác minh rằng tên của tiền tố đã đặt trong phần tử
<Namespace>
của phần tử<XMLPayload>
khớp với tên tiền tố được xác định trong thông báo lỗi (bước #1 ở trên). Ví dụ: Chính sách sau đây chỉ định một tiền tố có tênapigee
trong phần tử<Namespace>
khớp với nội dung trong thông báo lỗi:<?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>
Xác thực xem phần tử
<Namespace>
có tiền tố cụ thể được xác định ở bước 2 có URI hợp lệ hay không. Nếu thiếu URI, thì đó là nguyên nhân gây ra lỗi.Trong ví dụ về chính sách Extract Variables (Trích xuất biến) ở trên, hãy lưu ý rằng không có URI nào tương ứng với phần tử
<Namespace>
có tiền tốapigee
; do đó, bạn sẽ gặp lỗi:ExtractVariables EV-XML-Age: Non-empty prefix apigee cannot be mapped to empty uri.
Độ phân giải
Đảm bảo rằng tất cả phần tử <Namespace>
được xác định bằng một tiền tố đều có URI tương ứng trong chính sách Trích xuất biến. Ví dụ:
<?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
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] ExtractVariables [policy_name]: Duplicate prefix [prefix_name].
Ví dụ về thông báo lỗi
Error Saving Revision 2
ExtractVariables EV-XML-Age: Duplicate prefix apigee.
Ảnh chụp màn hình mẫu
Nguyên nhân
Lỗi này xảy ra nếu Chính sách trích xuất biến có cùng một tiền tố được xác định nhiều lần trong phần tử <Namespace>
của phần tử <XMLPayload>
.
Ví dụ: lỗi này xảy ra vì tiền tố apigee
được xác định hai lần như dưới đây:
<Namespace prefix="apigee">http://www.apigee.com</Namespace>
<Namespace prefix="apigee">http://www.apigee.com</Namespace>
Chẩn đoán
Xác định chính sách Trích xuất biến xảy ra lỗi và tên tiền tố. Bạn có thể tìm thấy cả hai mục này trong thông báo lỗi. Ví dụ: trong lỗi sau, tên chính sách là
EV-XML-Age
và tiền tố làapigee
:ExtractVariables EV-XML-Age: Duplicate prefix apigee.
Trong XML của chính sách Trích xuất biến không thành công, hãy xác minh rằng tên của tiền tố đã đặt trong phần tử
<Namespace>
của phần tử<XMLPayload>
khớp với tên tiền tố được xác định trong thông báo lỗi (bước #1 ở trên). Ví dụ: Chính sách sau đây chỉ định một tiền tố có tênapigee
trong phần tử<Namespace>
khớp với nội dung trong thông báo lỗi:<?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>
Xác định xem phần tử
<Namespace>
có tiền tố cụ thể (xác định ở bước 2) có được xác định nhiều lần hay không. Nếu thông số được xác định nhiều lần thì đó là nguyên nhân gây ra lỗi.Trong ví dụ về chính sách Trích xuất biến ở trên, hãy lưu ý rằng phần tử
<Namespace>
có tiền tốapigee
đã được xác định hai lần; do đó, bạn sẽ gặp lỗi:ExtractVariables EV-XML-Age: Duplicate prefix apigee.
Độ phân giải
Đảm bảo rằng chỉ có một định nghĩa cho mỗi tiền tố trong các phần tử <Namespace>
trong chính sách Trích xuất biến. Ví dụ:
<?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
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] ExtractVariables [policy_name]:no xpaths to evaluate in variable name.
Ví dụ về thông báo lỗi
Error Saving Revision 4
ExtractVariables Extract-Variables-1: no xpaths to evaluate in variable name.
Ảnh chụp màn hình mẫu
Nguyên nhân
Nếu Chính sách trích xuất biến không có phần tử <XPath>
trong phần tử <XMLPayload>
, thì nghĩa là không triển khai được proxy API với lỗi nêu trên.
Chẩn đoán
Xác định chính sách Trích xuất biến không thành công từ thông báo lỗi. Ví dụ: trong lỗi sau, chính sách có tên là
Extract-Variables-1
:ExtractVariables Extract-Variables-1: no xpaths to evaluate in variable name.
Trong XML của chính sách Trích xuất biến không thành công, hãy kiểm tra xem có phần tử
<XMLPayload>
nào không có phần tử con<XPath>
hay không. Nếu có thì đó chính là nguyên nhân gây ra lỗi.Ví dụ: sau đây là một chính sách Trích xuất biến có phần tử
<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>
Vì không có phần tử
<XPath>
nên không thể triển khai Proxy API.
Độ phân giải
Đảm bảo rằng chính sách Trích xuất biến có phần tử <XPath>
được xác định trong phần tử <XMLPayload>
. Ví dụ:
<?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
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] ExtractVariables [policy_name]: XPath expression is empty in variable name.
Ví dụ về thông báo lỗi
Error Saving Revision 6
ExtractVariables Extract-Variables-1: XPath expression is empty in variable name.
Ảnh chụp màn hình mẫu
Nguyên nhân
Nếu Chính sách Trích xuất biến có một biểu thức <XPath>
trống trong phần tử <XMLPayload>
, thì tức là không triển khai được proxy API.
Chẩn đoán
Xác định chính sách Trích xuất biến không thành công từ thông báo lỗi. Ví dụ: trong lỗi sau, chính sách có tên là
Extract-Variables-1
:ExtractVariables Extract-Variables-1: no xpaths to evaluate in variable name.
Trong tệp XML của chính sách Trích xuất biến không thành công, hãy xác định xem có phần tử
<XMLPayload>
nào có phần tử con<XPath>
trống hay không. Nếu có thì đó chính là nguyên nhân gây ra lỗi.Ví dụ: sau đây là một chính sách Trích xuất biến có phần tử
<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>
Do có một phần tử
<XPath>
trống trong phần tử<XMLPayload>
, nên không thể triển khai Proxy API.
Độ phân giải
Đảm bảo rằng chính sách Trích xuất biến có phần tử <XPath>
không trống và hợp lệ được xác định trong phần tử <XMLPayload>
. Ví dụ:
<?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
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] ExtractVariables [policy_name]:no jsonpaths to evaluate in variable name.
Ví dụ về thông báo lỗi
Error Saving Revision 6
ExtractVariables Extract-Variables-1: no jsonpaths to evaluate in variable name.
Ảnh chụp màn hình mẫu
Nguyên nhân
Nếu Chính sách trích xuất biến không có phần tử <JSONPath>
trong phần tử <JSONPayload>
, thì nghĩa là không triển khai được proxy API với lỗi nêu trên.
Chẩn đoán
Xác định chính sách Trích xuất biến không thành công từ thông báo lỗi. Ví dụ: trong lỗi sau, chính sách có tên là
Extract-Variables-1
:ExtractVariables Extract-Variables-1: no jsonpaths to evaluate in variable name.
Trong tệp XML của chính sách Trích xuất biến, hãy xác định xem có phần tử
<JSONPayload>
nào không có phần tử con<JSONPath>
bắt buộc hay không. Nếu có thì đó chính là nguyên nhân gây ra lỗi.Ví dụ: sau đây là một chính sách Trích xuất biến có phần tử
<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>
Vì không có phần tử con
<JSONPath>
nào được xác định trong phần tử<JSONPayload>
nên không triển khai được Proxy API.
Độ phân giải
Đảm bảo rằng chính sách Trích xuất biến có phần tử <JSONPath>
được xác định trong phần tử <JSONPayload>
. Ví dụ:
<?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
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] ExtractVariables [policy_name]: JSONPath expression is empty in variable name.
Ví dụ về thông báo lỗi
Error Saving Revision 6
ExtractVariables Extract-Variables-1: JSONPath expression is empty in variable name.
Ảnh chụp màn hình mẫu
Nguyên nhân
Nếu Chính sách Trích xuất biến có một biểu thức <JSONPath>
trống trong phần tử <JSONPayload>
, thì tức là không triển khai được proxy API.
Chẩn đoán
Xác định chính sách Trích xuất biến không thành công từ thông báo lỗi. Ví dụ: trong lỗi sau, chính sách có tên là
Extract-Variables-1
:ExtractVariables Extract-Variables-1: JSONPath expression is empty in variable name.
Trong XML của chính sách Trích xuất biến không thành công, hãy xác minh xem có phần tử
<JSONPayload>
nào có phần tử con<JSONPath>
trống hay không. Nếu có thì đó chính là nguyên nhân gây ra lỗi.Ví dụ: sau đây là một chính sách Trích xuất biến có phần tử
<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>
Do có một phần tử
<JSONPath>
trống trong phần tử<JSONPayload>
, nên không thể triển khai Proxy API.
Độ phân giải
Đảm bảo rằng chính sách Trích xuất biến có phần tử <JSONPath>
không trống và hợp lệ được xác định trong phần tử <JSONPayload>
. Ví dụ:
<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
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: - Required attribute name is missing in [element_name]
Ví dụ về thông báo lỗi
Error Saving Revision 6
Error occurred while validation of bean Extract-Variables-1.xml. Reason: - Required attribute name is missing in Variable
Ảnh chụp màn hình mẫu
Nguyên nhân
Nếu Chính sách trích xuất biến không có thuộc tính name
trong bất kỳ phần tử nào của chính sách như QueryParam
, Header
, FormParam
hoặc Variable
(nếu bắt buộc), thì sẽ không triển khai được proxy API.
Ví dụ: lỗi này xảy ra nếu thuộc tính name
bị thiếu trong phần tử Variable
.
Chẩn đoán
Xác định tên của chính sách Trích xuất biến xảy ra lỗi và phần tử thiếu thuộc tính
name
. Bạn có thể thấy những mục này trong thông báo lỗi. Ví dụ: trong lỗi sau, tên chính sách làExtract-Variables-1
và tên phần tử làVariable
:Error occurred while validation of bean Extract-Variables-1.xml. Reason: - Required attribute name is missing in Variable
Trong XML của chính sách Trích xuất biến không thành công, hãy kiểm tra để đảm bảo rằng tất cả các phần tử có tên được xác định ở bước 1 ở trên đều có thuộc tính
name
. Nếu có bất kỳ phần tử nào bị thiếu thuộc tính tên, thì đó chính là nguyên nhân gây ra lỗi.Ví dụ: chính sách Trích xuất biến sau đây có phần tử
<Variable>
được xác định:<?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>
Lưu ý rằng thuộc tính
name
bị thiếu trong phần tửVariable
, vì vậy, không thể triển khai Proxy API.
Độ phân giải
Đảm bảo rằng Chính sách Trích xuất biến chứa thuộc tính name
bắt buộc cho các phần tử QueryParam
, Header
, FormParam
hoặc Variable
. Ví dụ:
<?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
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] Pattern [pattern] should have at least one variable in ExtractVariables stepDefinition [policy_name]
Ví dụ về thông báo lỗi
Error Saving Revision 7
Pattern /a/b/ should have at least one variable in ExtractVariables stepDefinition ExtractVariables-1.
Ảnh chụp màn hình mẫu
Nguyên nhân
Nếu Chính sách Trích xuất biến không có biến được chỉ định trong phần tử <Pattern>
, thì sẽ không triển khai được proxy API. Phần tử <Pattern>
cần có tên của biến sẽ lưu trữ dữ liệu được trích xuất.
Chẩn đoán
Xác định tên của chính sách Trích xuất biến xảy ra lỗi và mẫu mà Biến bị thiếu. Bạn có thể tìm thấy những mục này trong thông báo lỗi. Ví dụ: trong lỗi sau, tên chính sách là
Extract-Variables-1
và tên phần tử là/a/b
:Pattern /a/b/ should have at least one variable in ExtractVariables stepDefinition ExtractVariables-1.
Trong XML của chính sách Trích xuất biến, hãy xác minh rằng mẫu được đặt trong phần tử
<Pattern>
khớp với mẫu được xác định trong thông báo lỗi (bước #1 ở trên). Ví dụ: chính sách sau đây chỉ định mẫu/a/b
khớp với nội dung trong thông báo lỗi:Ví dụ: dưới đây là một chính sách về Trích xuất biến có ba phần tử
<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/</Pattern> <Pattern ignoreCase="true">/a/b/c/{pathSeg}</Pattern> </URIPath> <VariablePrefix>urirequest</VariablePrefix> </ExtractVariables>
Kiểm tra xem phần tử
<Pattern>
đã xác định ở bước 2 có không có biến hay không. Các biến phải được đặt trong dấu ngoặc nhọn. Nếu mẫu không có biến, thì đó là nguyên nhân gây ra lỗi.Phần tử
<Pattern>
có mẫu /a/b không bao gồm biến; do đó, không thể triển khai Proxy API<Pattern ignoreCase="true">/a/b/</Pattern>
Độ phân giải
Đảm bảo mọi phần tử <Pattern>
đều có một biến (tên nằm trong dấu ngoặc nhọn). Ví dụ:
<?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
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] 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].
Ví dụ về thông báo lỗi
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.
Ảnh chụp màn hình mẫu
Nguyên nhân
Nếu Chính sách Trích xuất biến có một biểu thức <XPath>
, trong đó loại <Variable>
được định nghĩa là tập hợp nút, nhưng không thể chuyển đổi biểu thức này thành tập hợp nút, thì sẽ không triển khai được proxy API.
Chẩn đoán
Xác định chính sách Trích xuất biến xảy ra lỗi và XPath không thể chuyển đổi thành nhóm nút. Bạn có thể tìm thấy cả hai mục này trong thông báo lỗi. Ví dụ: trong lỗi sau, tên chính sách là
Extract-Variables-1
và XPath là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.
Trong XML chính sách Trích xuất biến không thành công, hãy xác minh rằng XPath được đặt trong phần tử
<XPath>
khớp với XPath được xác định trong thông báo lỗi (bước #1 ở trên). Ví dụ: chính sách sau chỉ địnhlà 123
, khớp với nội dung trong thông báo lỗi:<?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>
Kiểm tra loại phần tử
<Variable>
tương ứng với<XPath>
đã xác định trong bước #2 ở trên. Nếu loại<Variable>
lànodeset
, thì đó chính là nguyên nhân gây ra lỗi.Xin lưu ý rằng biểu thức
<XPath>
là123
trong chính sách Extract Variables của ví dụ.<XPath>123</XPath>
Không thể chuyển đổi biểu thức
123
thành tập hợp nút. Do đó, không thể triển khai Proxy API.
Độ phân giải
Đảm bảo rằng bạn có thể chuyển đổi biểu thức <XPath>
dùng trong chính sách Trích xuất biến thành tập hợp nút nếu loại <Variable>
được xác định là tập hợp nút. Ví dụ:
<?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
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]
Pattern [pattern] is invalid in ExtractVariables stepDefinition [policy_name]
Ví dụ về thông báo lỗi
Error Deploying Revision 18 to test
Pattern {*} is invalid in ExtractVariables stepDefinition ExtractVariables-2.
Ảnh chụp màn hình mẫu
Nguyên nhân
Nếu định nghĩa phần tử <Pattern>
không hợp lệ trong bất kỳ phần tử nào như URIPath
, QueryParam
, Header
, FormParam
, XMLPayload
hoặc JSONPayload
trong Chính sách trích xuất biến, thì quá trình triển khai proxy API sẽ không thành công.
Chẩn đoán
Xác định chính sách Trích xuất biến không thành công từ thông báo lỗi. Ví dụ: trong lỗi sau, chính sách có tên là
Extract-Variables-2
:Pattern {*} is invalid in ExtractVariables stepDefinition ExtractVariables-2.
Trong XML của chính sách Trích xuất biến không thành công, hãy kiểm tra xem có phần tử nào trong số này không và có chứa phần tử
<Pattern>
hay không.:URIPath
,QueryParam
,Header
,FormParam
,XMLPayload
hoặcJSONPayload
.Ví dụ: sau đây là một ví dụ về chính sách Trích xuất biến có phần tử
<Pattern>
trong phần tử<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>
Hãy kiểm tra định nghĩa của từng phần tử
<Pattern>
. Nếu có bất kỳ phần tử<Pattern>
nào có định nghĩa không hợp lệ, thì đó chính là nguyên nhân gây ra lỗi.Trong ví dụ về chính sách Extract Variables (Trích xuất biến) ở trên, hãy lưu ý rằng định nghĩa
<Pattern>
trong phần tử<QueryParam>
không hợp lệ; do đó, không thể triển khai Proxy API. Xem thêm bài viết Giới thiệu về cách so khớp và tạo biến<Pattern ignoreCase="true">{*}</Pattern>
Độ phân giải
Đảm bảo rằng định nghĩa phần tử <Pattern>
trong các phần tử URIPath
, QueryParam
, Header
, FormParam
, XMLPayload
hoặc JSONPayload
trong chính sách Trích xuất biến là hợp lệ. Ví dụ:
<?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>
Xem thêm bài viết Giới thiệu về cách so khớp và tạo biến
XPathCompilationFailed
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] ExtractVariables [policy_name]: Failed to compile xpath [xpath] Context Revision:[revision_number]; APIProxy:[proxy_name]; Organization:[org_name]; Environment:[env_name].
Ví dụ về thông báo lỗi
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.
Ảnh chụp màn hình mẫu
Nguyên nhân
Nếu tiền tố hoặc giá trị dùng trong phần tử <XPath>
không thuộc bất kỳ không gian tên nào đã khai báo trong Chính sách trích xuất biến, thì quá trình triển khai proxy API sẽ không thành công.
Bạn có thể tìm thêm thông tin về không gian tên, XPath và tiền tố trong phần Không gian tên XML và Cách chúng ảnh hưởng đến XPath và GCC.
Chẩn đoán
Xác định chính sách Trích xuất biến xảy ra lỗi và XPath không thể biên dịch được. Bạn có thể tìm thấy cả hai mục này trong thông báo lỗi. Ví dụ: trong lỗi sau đây, tên chính sách là
EV-XML-Age
và xpath là/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.
Trong XML chính sách Trích xuất biến không thành công, hãy xác minh rằng XPath được đặt trong phần tử
<XPath>
khớp với XPath được xác định trong thông báo lỗi (bước #1 ở trên). Ví dụ: chính sách sau chỉ địnhlà /apigee:Directions/apigee:route/apigee:leg/apigee:name
, khớp với nội dung trong thông báo lỗi:<?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>
Kiểm tra các phần tử
<Namespaces>
và<XPath>
trong chính sách Trích xuất biến. Nếu<XPath>
cụ thể được nêu trong thông báo lỗi sử dụng một tiền tố hoặc giá trị không thuộc vùng chứa tên đã khai báo trong chính sách Trích xuất biến, thì đó chính là nguyên nhân gây ra lỗi.Hãy lưu ý rằng
<XPath>
cụ thể sử dụng tiền tốapigee
trong ví dụ về chính sách Trích xuất biến.<XPath>/apigee:Directions/apigee:route/apigee:leg/apigee:name</XPath>
Tuy nhiên, tiền tố
apigee
không được định nghĩa trong bất kỳ phần tử<Namespace>
nào; do đó, việc biên dịch<XPath>
không thành công dẫn đến lỗi triển khai.
Độ phân giải
Đảm bảo tất cả không gian tên đang được sử dụng trong các phần tử <XPath>
đều được khai báo trong Chính sách về biến trích xuất. Ví dụ:
<?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>