Bạn đang xem tài liệu về Apigee Edge.
Chuyển đến tài liệu về
Apigee X. thông tin
SourceMessageNotAvailable
Mã lỗi
steps.extractvariables.SourceMessageNotAvailable
Nội dung phản hồi về lỗi
{ "fault": { "faultstring": "[variable_name] message is not available for ExtractVariable: [policy_name]", "detail": { "errorcode": "steps.extractvariables.SourceMessageNotAvailable" } } }
Nguyên nhân
Lỗi này xảy ra nếu biến message được chỉ định trong phần tử <Source>
của Chính sách trích xuất biến là:
- ngoài phạm vi (không áp dụng trong quy trình cụ thể nơi chính sách đang được thực thi) hoặc
- không thể giải quyết (không xác định)
Ví dụ: lỗi này xảy ra nếu chính sách Trích xuất biến thực thi trong luồng yêu cầu, nhưng phần tử <Source>
được đặt thành biến response
hoặc error
không tồn tại trong luồng yêu cầu.
Chẩn đoán
Xác định chính sách Trích xuất biến nơi xảy ra lỗi và tên của biến không có sẵn. Bạn có thể tìm thấy cả hai mục này trong phần tử
faultstring
của phản hồi lỗi. Ví dụ: trong chuỗi lỗi sau, tên chính sách làExtractVariables-1
và biến làresponse
:"faultstring": "response message is not available for ExtractVariable: ExtractVariables-1"
Trong tệp XML của chính sách Trích xuất các biến không thành công, hãy xác minh rằng tên của biến được đặt trong phần tử khớp với tên biến được xác định trong chuỗi lỗi (bước #1 ở trên). Ví dụ: chính sách Biến trích xuất sau đây chỉ định một biến có tên là
response
trong phần tử, khớp với nội dung trong chuỗi lỗi:<ExtractVariables name="ExtractVariables-1"> <Source>response</Source> <URIPath> <Pattern ignoreCase="true">/a/{pathSeg}</Pattern> </URIPath> <VariablePrefix>urirequest</VariablePrefix> </ExtractVariables>
Xác định xem biến dùng trong phần tử
<Source>
đã được xác định và có sẵn trong quy trình mà chính sách Trích xuất biến đang được thực thi hay chưa.Nếu biến là:
- ngoài phạm vi (không áp dụng trong quy trình cụ thể nơi chính sách đang được thực thi) hoặc
- không thể giải quyết (không xác định)
thì đó là nguyên nhân gây ra lỗi.
Ví dụ: giả sử chính sách Trích xuất biến hiển thị ở trên thực thi trong luồng yêu cầu. Hãy nhớ rằng biến
response
được dùng trong phần tử<Source>
của chính sách Trích xuất biến. Biếnresponse
chỉ dùng được trong quy trình phản hồi.Vì biến
response
không tồn tại trong luồng yêu cầu nên bạn sẽ nhận được mã lỗi:steps.extractvariables.SourceMessageNotAvailable
.
Độ phân giải
Đảm bảo rằng biến được đặt trong phần tử <Source>
của chính sách Biến trích xuất không thành công được xác định và tồn tại trong quy trình thực thi chính sách.
Để sửa chính sách Trích xuất biến mẫu ở trên, bạn có thể sửa đổi phần tử <Source>
để sử dụng biến request
hiện có trong luồng yêu cầu:
<ExtractVariables name="ExtractVariables-1">
<Source>request</Source>
<URIPath>
<Pattern ignoreCase="true">/a/{pathSeg}</Pattern>
</URIPath>
<VariablePrefix>urirequest</VariablePrefix>
</ExtractVariables>
SetVariableFailed
Mã lỗi
steps.extractvariables.SetVariableFailed
Nội dung phản hồi về lỗi
{ "fault": { "faultstring": "Failed to set variable [variable_name] value [variable_value] from ExtractVariables: [policy_name]", "detail": { "errorcode": "steps.extractvariables.SetVariableFailed" } } }
Nguyên nhân
Lỗi này xảy ra nếu chính sách Trích xuất biến không thể đặt giá trị thành một biến. Điều này thường xảy ra nếu bạn cố gắng gán giá trị cho nhiều biến có tên bắt đầu bằng các từ giống nhau ở định dạng lồng nhau, phân tách bằng dấu chấm.
Ví dụ: giả sử bạn tạo/gán giá trị cho biến var.color
. Trong trường hợp này, color
được phân bổ làm nút đối tượng. Sau đó, nếu bạn cố gắng chỉ định một giá trị cho biến khác var.color.next
, thì thao tác này sẽ không thành công vì color
đã được phân bổ và không được phép phân bổ biến khác cho biến này.
Chẩn đoán
Xác định chính sách Trích xuất biến nơi xảy ra lỗi và tên của biến không thể đặt giá trị. Bạn có thể tìm thấy cả hai mục này trong phần tử
faultstring
của phản hồi lỗi. Ví dụ: trong chuỗi lỗi sau, tên chính sách làExtractColors
và biến làvar.color.next
:"faultstring": "Failed to set variable var.color.next value red from ExtractVariables: ExtractColors"
Trong tệp XML của chính sách Trích xuất các biến không thành công, hãy xác minh rằng tên của biến khớp với tên biến được xác định trong chuỗi lỗi (bước #1 ở trên). Để ví dụ: chính sách sau đây cố gắng gán giá trị từ một truy vấn yêu cầu tham số cho một biến có tên
var.color.next
(giá trị xuất hiện chuỗi lỗi):<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ExtractVariables name="ExtractColors"> <DisplayName>ExtractColors</DisplayName> <Source>request</Source> <QueryParam name="color"> <Pattern ignoreCase="true">{color}</Pattern> </QueryParam> <QueryParam name="nextcolor"> <Pattern ignoreCase="true">{color.next}</Pattern> </QueryParam> <VariablePrefix>var</VariablePrefix> </ExtractVariables>
Kiểm tra tất cả các tên biến được dùng trong chính sách Trích xuất biến không thành công. Nếu bạn đã chỉ định giá trị cho một biến khác có tên bắt đầu bằng tên với tên biến được xác định trong chuỗi lỗi (bước #1 ở trên), thì đó là nguyên nhân gây ra lỗi.
Trong ví dụ về chính sách Biến trích xuất trình bày ở trên, hãy lưu ý rằng:
- Trước tiên, giá trị của tham số truy vấn có tên
color
được gán cho một biếnvar.color
(Lưu ý:var
là tiền tố cho tất cả biến như được đặt trong phần tử<VariablePrefix>
) - Trong nhiệm vụ tiếp theo, giá trị của tham số truy vấn
nextcolor
sẽ được gán cho một biếnvar.color.next
khác. - Vì
var.color
đã được phân bổ, nên chính sách Trích xuất các biến không thể phân bổ một biến lồng khácvar.color.next
. Vì vậy, bạn sẽ nhận được mã lỗi:steps.extractvariables.SetVariableFailed
- Trước tiên, giá trị của tham số truy vấn có tên
Độ phân giải
Đảm bảo rằng bạn không có nhiều tên biến có tên bắt đầu bằng chính là những từ được lồng ở định dạng được phân tách bằng dấu chấm.
Để chỉnh sửa chính sách Biến trích xuất trình bày ở trên, bạn có thể sửa đổi tên biến
var.color.next
để sử dụng tên biếnvar.nextcolor.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ExtractVariables name="ExtractColors"> <DisplayName>ExtractColors</DisplayName> <Source>request</Source> <QueryParam name="color"> <Pattern ignoreCase="true">{color}</Pattern> </QueryParam> <QueryParam name="nextcolor"> <Pattern ignoreCase="true">{nextcolor}</Pattern> </QueryParam> <VariablePrefix>var</VariablePrefix> </ExtractVariables>
Thông tin khác
Để biết thêm thông tin, hãy tham khảo bài đăng này trên thẻ Cộng đồng.
InvalidJSONPath
Mã lỗi
steps.extractvariables.InvalidJSONPath
Nội dung phản hồi về lỗi
{ "fault": { "faultstring": "Invalid JSON path [path_name] in policy [policy_name].", "detail": { "errorcode": "steps.extractvariables.InvalidJSONPath" } } }
Nguyên nhân
Lỗi này xảy ra nếu bạn sử dụng một đường dẫn JSON không hợp lệ trong phần tử <JSONPath>
của chính sách Biến trích xuất. Ví dụ: nếu tải trọng JSON không có đối tượng Name
, nhưng bạn chỉ định Name
làm đường dẫn trong chính sách Trích xuất biến, thì lỗi này sẽ xảy ra.
Chẩn đoán
Xác định chính sách Trích xuất biến nơi xảy ra lỗi và biến không hợp lệ Đường dẫn JSON. Bạn có thể tìm thấy cả hai mục này trong phần tử
faultstring
của phần tử của bạn. Ví dụ: trong chuỗi lỗi sau đây, tên chính sách làExtractJSONVariables
và đường dẫn JSON không hợp lệ là$.Name
:"faultstring": "Invalid JSON path $.Name in policy ExtractJSONVariables."
Trong tệp XML của chính sách Trích xuất các biến không thành công, hãy xác minh rằng đường dẫn JSON được đặt trong phần tử
<JSONPath>
khớp với đường dẫn đã xác định trong chuỗi lỗi (bước #1 ở trên). Ví dụ: chính sách Biến trích xuất sau đây chỉ định đường dẫn JSON$.Name
, khớp với nội dung trong chuỗi lỗi:<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ExtractVariables name="ExtractJSONVariables"> <Source>response</Source> <JSONPayload> <Variable name="name" type="string"> <JSONPath>$.Name</JSONPath> </Variable> </JSONPayload> <VariablePrefix>employee</VariablePrefix> </ExtractVariables>
Kiểm tra phần tử
<Source>
và xác định xem bạn đang cố gắng trích xuất biến từ Tải trọng JSON nào. Ví dụ: nếu bạn đặt phần tử<Source>
thànhrequest
, thì chính sách sẽ trích xuất tải trọng JSON từ đối tượng yêu cầu. Nếu bạn đặt chính sách này thànhresponse
thì đó sẽ là đối tượng phản hồi.Trong ví dụ về chính sách Trích xuất biến hiển thị ở trên, phần tử
<Source>
được đặt thànhresponse
, vì vậy, các biến đang được trích xuất từ tải trọng JSON của phản hồi.<Source>response</Source>
Kiểm tra tải trọng JSON thích hợp (được xác định từ bước 3) và xác thực xem tải trọng đó có đối tượng được chỉ định trong phần tử
<JSONPath>
hay không. Nếu tải trọng JSON không có đối tượng đó, thì đó là nguyên nhân gây ra lỗi.Ví dụ: giả sử bạn đang cố gắng trích xuất các biến từ tải trọng phản hồi JSON sau:
{ "firstName":"John", "lastName":"Doe", "city":"San Jose", "state":"CA" }
Vì tải trọng phản hồi JSON không có đối tượng
Name
, nên chính sách Trích xuất các biến sẽ không thành công kèm theo lỗi mà bạn nhận được mã lỗi:steps.extractvariables.InvalidJSONPath
.
Độ phân giải
Đảm bảo rằng chỉ các đối tượng thuộc Tải trọng JSON chứa các biến đang được trích xuất mới được chỉ định trong phần tử
<JSONPath>
của chính sách Biến trích xuất.Để sửa ví dụ về chính sách Biến Trích xuất hiển thị ở trên, bạn có thể sửa đổi phần tử
<JSONPath>
để chỉ định một trong các đối tượng có sẵn trong Tải trọng của phản hồi JSON mẫu (ví dụ: các đối tượngfirstName
vàlastName
là hợp lệ):<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ExtractVariables name="ExtractJSONVariables"> <Source>response</Source> <JSONPayload> <Variable name="name" type="string"> <JSONPath>$.firstName</JSONPath> </Variable> </JSONPayload> <VariablePrefix>employee</VariablePrefix> </ExtractVariables>
ExecutionFailed
Mã lỗi
steps.extractvariables.ExecutionFailed
Nội dung phản hồi về lỗi
{ "fault": { "faultstring": "Failed to execute the ExtractVariables: [policy_name]", "detail": { "errorcode": "steps.extractvariables.ExecutionFailed" } } }
Các nguyên nhân có thể
Nguyên nhân có thể gây ra lỗi này là:
Nguyên nhân | Nội dung mô tả |
Thiếu trọng tải đầu vào | Tải trọng đầu vào (JSON, XML) trống. |
Dữ liệu đầu vào không hợp lệ hoặc có định dạng không chính xác | Dữ liệu đầu vào (JSON, XML, v.v.) được truyền đến chính sách không hợp lệ hoặc không đúng định dạng. |
Nguyên nhân: Thiếu tải trọng đầu vào
Nếu chính sách Trích xuất các biến được cho là trích xuất các biến từ tải trọng JSON hoặc XML, nhưng nội dung (tải trọng) của biến được chỉ định trong phần tử <Source>
lại trống, thì lỗi này sẽ xảy ra.
Ví dụ: Nếu phần tử <Source>
trong chính sách Trích xuất biến được đặt thành request
hoặc response
và các phần tử này phải chứa tải trọng JSON hoặc XML, nhưng tải trọng lại trống, thì lỗi sẽ xảy ra.
Chẩn đoán
Xác định chính sách Trích xuất biến mà lỗi đã xảy ra. Bạn có thể tìm thấy thông tin này trong phần tử chuỗi lỗi của phản hồi lỗi. Ví dụ: trong chuỗi lỗi sau, tên chính sách là
ExtractJSONVariables
:"faultstring": "Failed to execute the ExtractVariables: ExtractXMLVariables"
Kiểm tra phần tử
<Source>
trong tệp XML chứa Extract Variables (Trích xuất các biến) không thành công và xác định loại dữ liệu đầu vào mà các biến đang được trích xuất. Ví dụ: chính sách Biến trích xuất sau đây có phần tử<Source>
được đặt thànhresponse
và đang trích xuất các biến từ tải trọng XML:<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ExtractVariables name="ExtractXMLVariables" async="false" continueOnError="false" enabled="true"> <XMLPayload> <Namespaces/> <Variable name="City" type="string"> <XPath>/city</XPath> </Variable> </XMLPayload> <Source clearPayload="false">response</Source> </ExtractVariables>
Kiểm tra xem dữ liệu đầu vào đang được chính sách Trích xuất biến phân tích cú pháp có trống hay không. Nếu thông tin đầu vào bị trống, 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, tải trọng phản hồi (tức là nội dung phản hồi) do máy chủ phụ trợ gửi là trống.
Vì tải trọng phản hồi XML trống nên bạn sẽ nhận được mã lỗi:
steps.extractvariables.ExecutionFailed
Lỗi này cũng có thể xảy ra nếu bạn đặt phần tử
<Source>
thànhrequest
, nhưng không có tải trọng nào được chuyển vào yêu cầu proxy API. Ví dụ:curl -v "http://<org>-<env>.apigee.net/v1/testevexecutionfailed" -H "Content-Type: application/xml"
Chính sách Trích xuất biến chỉ thực hiện trích xuất XML khi thông báo Tiêu đề
Content-Type
làapplication/xml
,text/xml
hoặcapplication/*+xml
. Bạn phải chuyển tiêu đề Loại nội dung dưới dạngapplication/xml
,text/xml
hoặcapplication/*+xml
nếu bạn muốn chính sách Trích xuất biến phân tích cú pháp tệp XML tải trọng yêu cầu.
Độ phân giải
Đảm bảo rằng dữ liệu đầu vào được chuyển đến chính sách Trích xuất biến là hợp lệ và không trống.
Để khắc phục vấn đề với chính sách Trích xuất biến mẫu ở trên, hãy truyền tải trọng XML hợp lệ. Ví dụ:
Tạo một tệp có tên
city.xml
với nội dung sau:<city>Bengaluru</city> <area>Sanjaynagar</area>
Thực hiện lệnh gọi API bằng lệnh cURL như sau:
curl -v "http://<org>-<env>.apigee.net/v1/testevexecutionfailed" -H "Content-Type: application/xml" -X POST -d @city.xml
Nguyên nhân: Thông tin đầu vào không hợp lệ hoặc không đúng định dạng
Nếu chính sách Trích xuất biến phân tích cú pháp dữ liệu đầu vào không hợp lệ hoặc không đúng định dạng, thì bạn sẽ gặp lỗi này.
Ví dụ: nếu bạn cung cấp JSON không hợp lệ sau đây làm dữ liệu đầu vào cho chính sách Trích xuất biến, bạn sẽ gặp lỗi này.
[
"args": ["name" : "amar" ]
]
Chẩn đoán
Xác định chính sách Trích xuất biến mà lỗi đã xảy ra. Bạn có thể tìm thấy thông tin này trong phần tử
faultstring
của phản hồi lỗi. Ví dụ: trongfaultstring
sau đây, tên chính sách sẽ làExtractJSONVariables
:"faultstring": "Failed to execute the ExtractVariables: ExtractJSONVariables"
Kiểm tra phần tử
<Source>
trong tệp XML chứa Extract Variables (Trích xuất các biến) không thành công và xác định loại dữ liệu đầu vào mà các biến đang được trích xuất. Ví dụ: chính sách Biến trích xuất sau đây có phần tử<Source>
được đặt thànhrequest
và đang trích xuất các biến từ tải trọng JSON:<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ExtractVariables name="ExtractJSONVariables" async="false" continueOnError="false" enabled="true"> <JSONPayload> <Variable name="Name" type="string"> <JSONPath>$.args.name</JSONPath> </Variable> </JSONPayload> <Source clearPayload="false">request</Source> </ExtractVariables>
Kiểm tra xem dữ liệu đầu vào đang được phân tích cú pháp bằng chính sách Biến Trích xuất có hợp lệ hay không. Nếu thông tin nhập vào không hợp lệ hoặc sai định dạng, thì đó là nguyên nhân gây ra lỗi.
Trong ví dụ về chính sách Biến trích xuất trình bày ở trên, JSON không hợp lệ sau đây đã được chuyển đến chính sách Trích xuất các biến
[ "args": ["name" : "amar" ] ]
Dưới đây là lệnh gọi API mẫu cho thấy cách yêu cầu được truyền:
curl -v "http://<org>-<env>.apigee.net/v1/testevexecutionfailed" -H "Content-Type: application/json" -X POST -d '[ "args" : ["name" : "amar" ]]'
Tải trọng JSON được chuyển đến API là không hợp lệ vì tải trọng này chứa một mảng có dấu ngoặc vuông (
[ ]
) , nên bạn sẽ nhận được mã lỗi như sau:steps.extractvariables.ExecutionFailed
Lỗi này cũng có thể xảy ra nếu phần tử
<Source>
được đặt thànhresponse
nhưng tải trọng phản hồi JSON không hợp lệ hoặc không đúng định dạng.
Độ phân giải
Đảm bảo rằng dữ liệu đầu vào được chuyển đến chính sách Trích xuất biến là hợp lệ và không sai định dạng.
Để khắc phục vấn đề liên quan đến chính sách Trích xuất biến được thảo luận ở trên, hãy chuyển một yêu cầu tải trọng JSON hợp lệ như sau:
{
"args":{
"name":"amar"
}
}
UnableToCast
Mã lỗi
steps.extractvariables.UnableToCast
Nội dung phản hồi về lỗi
{ "fault": { "faultstring": "Unable to cast value [value] as [type].", "detail": { "errorcode": "steps.extractvariables.UnableToCast" } } }
Nguyên nhân
Lỗi này xảy ra nếu chính sách Trích xuất biến không thể truyền giá trị được trích xuất vào một biến. Thông thường, điều này xảy ra nếu bạn cố gắng đặt giá trị của một kiểu dữ liệu với một biến thuộc kiểu dữ liệu khác.
Ví dụ: nếu chính sách Trích xuất biến cố gắng đặt một giá trị được trích xuất từ biến Chuỗi sang biến Số nguyên, thì bạn sẽ thấy lỗi này.
Chẩn đoán
Xác định loại dữ liệu của biến được áp dụng chính sách Biến trích xuất đang cố gắng truyền nhưng không thành công. Bạn có thể tìm thấy thông tin này trong phần tử
faultstring
của phản hồi lỗi. Ví dụ: trongfaultstring
sau đây, loại đối tượng làBOOLEAN
:"faultstring":"Unable to cast value 36.231 as BOOLEAN."
Xác định chính sách Trích xuất biến mà bạn đang cố đặt giá trị thành biến thuộc loại được xác định ở bước 1.
Ví dụ: Chính sách Trích xuất biến sau đây sẽ trích xuất giá trị từ
$.latitude
JSONPath sang một biến thuộc loạiboolean
, khớp với nội dung trong chuỗi lỗi:<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ExtractVariables name="EV-XML-Name" async="false" continueOnError="false" enabled="true"> <JSONPayload> <Variable name="latitude" type="boolean"> <JSONPath>$.latitude</JSONPath> </Variable> </JSONPayload> <Source clearPayload="false">response</Source> </ExtractVariables>
Kiểm tra loại dữ liệu của giá trị đang được trích xuất. Dữ liệu có thể ở dạng tiêu đề, đường dẫn URI, tải trọng JSON/XML, tham số biểu mẫu và tham số truy vấn.
Xác minh xem loại dữ liệu được xác định ở bước 3 và loại dữ liệu của biến hay chưa dữ liệu nào đang được chỉ định (được xác định trong bước #2) là giống nhau.
Nếu loại dữ liệu của biến nguồn và biến đích không giống nhau, thì đó là nguyên nhân gây ra lỗi.
Trong ví dụ về chính sách Biến trích xuất trình bày ở trên, hãy xem xét yêu cầu JSON tải trọng như sau:
{ "latitude":36.2312 }
Loại dữ liệu của giá trị được trích xuất từ
<JSONPath>
,‘$.latitude’
, là Số nguyên, được gán cho một biến thuộc boolean loại dữ liệu.Vì loại dữ liệu của giá trị được trích xuất và loại dữ liệu của biến để mà giá trị đang được gán không giống nhau, bạn sẽ nhận được mã lỗi:
steps.extractvariables.UnableToCast
.
Độ phân giải
Đảm bảo rằng loại dữ liệu của giá trị được trích xuất và biến chứa nội dung đang được chỉ định thuộc cùng loại.
Để sửa ví dụ về chính sách Biến trích xuất, bạn phải sửa đổi loại của biến thành Số nguyên:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ExtractVariables name="EV-XML-Name" async="false" continueOnError="false" enabled="true">
<JSONPayload>
<Variable name="latitude" type="integer">
<JSONPath>$.latitude</JSONPath>
</Variable>
</JSONPayload>
<Source clearPayload="false">response</Source>
</ExtractVariables>
JsonPathParsingFailure
Mã lỗi
steps.extractvariables.JsonPathParsingFailure
Nội dung phản hồi về lỗi
{ "fault": { "faultstring": "ExtractVariables [policy_name]: Json path parsing failed for flow variables [variable_name]", "detail": { "errorcode": "steps.extractvariables.JsonPathParsingFailure" } } }
Nguyên nhân
Lỗi này xảy ra khi Trích xuất các biến
chính sách không thể phân tích cú pháp đường dẫn JSON và trích xuất dữ liệu từ biến luồng
được chỉ định trong phần tử <Source>
. Thông thường, điều này xảy ra nếu biến luồng
được chỉ định trong phần tử <Source>
không tồn tại trong luồng hiện tại.
Ví dụ: lỗi này xảy ra nếu chính sách Trích xuất biến thực thi trong
luồng phản hồi và dự kiến sẽ phân tích cú pháp đường dẫn JSON, nhưng phần tử <Source>
chỉ định biến luồng request.content
. Biến này không tồn tại trong luồng phản hồi.
Chẩn đoán
Xác định chính sách Trích xuất biến nơi xảy ra lỗi và tên của biến luồng mà dữ liệu không thể trích xuất. Bạn có thể tìm thấy cả hai mục này trong phần tử chuỗi lỗi của phản hồi lỗi. Ví dụ: trong chuỗi lỗi sau, tên chính sách là
ExtractVariables-1
và biến làrequest.content
:"faultstring": "ExtractVariables ExtractJSONVariabes: Json path parsing failed for flow variables request.content"
Trong tệp XML của chính sách Trích xuất các biến bị lỗi, hãy xác minh rằng tên của biến được đặt trong phần tử
<Source>
khớp với tên biến đã xác định trong phần tử chuỗi lỗi (bước #1 ở trên). Ví dụ: các biến Trích xuất sau đây chính sách chỉ định một biến có tênrequest.content
, khớp với nội dung trong chuỗi lỗi:<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ExtractVariables name="ExtractJSONVariables" async="false" continueOnError="false" enabled="true"> <JSONPayload> <Variable name="Name" type="string"> <JSONPath>$.args.name</JSONPath> </Variable> </JSONPayload> <Source clearPayload="false">request.content</Source> </ExtractVariables>
Xác thực xem biến luồng dùng trong phần tử
<Source>
đã được xác định và có trong quy trình mà chính sách Trích xuất biến đang được thực thi hay không.Nếu biến là:
- ngoài phạm vi (không áp dụng trong quy trình cụ thể nơi chính sách đang được thực thi) hoặc
- không thể giải quyết (không xác định)
thì đó là nguyên nhân gây ra lỗi.
Ví dụ: giả sử chính sách ExtractVariables nêu trên cần được thực thi trong luồng phản hồi. Hãy nhớ rằng biến luồng
request.content
được dùng trong phần tử<Source>
của chính sách Biến trích xuất. Biến luồngrequest.content
chỉ dùng được trong luồng yêu cầu.Do biến
response
không tồn tại trong luồng yêu cầu, nên bạn sẽ nhận được mã lỗi:steps.extractvariables.JsonPathParsingFailure
.
Độ phân giải
Đảm bảo rằng biến luồng được sử dụng trong phần tử <Source>
của Trích xuất
Chính sách về biến được cung cấp trong quy trình mà chính sách Trích xuất biến
thực thi.
Ví dụ: giả sử một biến có tên là response.content
tồn tại trong phản hồi
và trên thực tế có chứa JSON mà bạn muốn trích xuất. Để sửa câu lệnh Trích xuất
Chính sách biến nêu trên, bạn có thể sửa đổi phần tử <Source>
như sau:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ExtractVariables name="ExtractJSONVariables" async="false" continueOnError="false" enabled="true">
<JSONPayload>
<Variable name="Name" type="string">
<JSONPath>$.args.name</JSONPath>
</Variable>
</JSONPayload>
<Source clearPayload="false">response.content</Source>
</ExtractVariables>