คุณกําลังดูเอกสารประกอบของ Apigee Edge
ไปที่
เอกสารประกอบเกี่ยวกับ Apigee X. ข้อมูล
XSLSourceMessageNotAvailable
รหัสข้อผิดพลาด
steps.xsl.XSLSourceMessageNotAvailable
เนื้อหาการตอบกลับข้อผิดพลาด
{
"fault": {
"faultstring": "response message is not available for XSL: policy_name",
"detail": {
"errorcode": "steps.xsl.XSLSourceMessageNotAvailable"
}
}
}ตัวอย่างข้อความแสดงข้อผิดพลาด
{
"fault": {
"faultstring": "response message is not available for XSL: xslt",
"detail": {
"errorcode": "steps.xsl.XSLSourceMessageNotAvailable"
}
}
}
สาเหตุ
ข้อผิดพลาดนี้จะเกิดขึ้นหาก
ข้อความ
หรือตัวแปรสตริงที่ระบุในองค์ประกอบ <Source> ของนโยบายการแปลง XSL เป็นอย่างใดอย่างหนึ่งต่อไปนี้
- อยู่นอกขอบเขต (ใช้ไม่ได้ในขั้นตอนที่เจาะจงที่กำลังบังคับใช้นโยบาย)
- แก้ไขไม่ได้ (ไม่ได้กำหนด)
ตัวอย่างเช่น ข้อผิดพลาดนี้จะเกิดขึ้นหากระบบควรจะเรียกใช้นโยบายการเปลี่ยนรูปแบบ XSL ในขั้นตอนการส่งคำขอ แต่มีการตั้งค่าองค์ประกอบ <Source> เป็นตัวแปรการตอบกลับ ซึ่งไม่มีอยู่ในขั้นตอนการส่งคำขอ
การวินิจฉัย
ระบุนโยบายการเปลี่ยนรูปแบบ XSL ที่ทำให้เกิดข้อผิดพลาดและชื่อตัวแปรที่ไม่พร้อมใช้งาน คุณจะเห็นทั้ง 2 รายการนี้ในองค์ประกอบ
faultstringของคำตอบข้อผิดพลาด ตัวอย่างเช่น ในกรณีต่อไปนี้faultstringชื่อนโยบายคือxsltและตัวแปรคือresponsefaultstring": "response message is not available for XSL: xsltใน XML นโยบายการเปลี่ยนรูปแบบ XSL ที่ดำเนินการไม่สำเร็จ ให้ตรวจสอบว่าชื่อตัวแปรที่ตั้งค่าไว้ในองค์ประกอบ
<Source>ตรงกับชื่อตัวแปรที่ระบุไว้ในสตริงข้อผิดพลาด (ขั้นตอนที่ 1 ด้านบน) ตัวอย่างเช่น นโยบายการเปลี่ยนรูปแบบ XSL ต่อไปนี้ระบุตัวแปรชื่อresponseในองค์ประกอบ<Source>ซึ่งตรงกับสิ่งที่อยู่ในสตริงข้อบกพร่อง<?xml version="1.0" encoding="UTF-8&quo>t; <standalone="yes"? XSL async="false" continueOn>Err<or="fa>lse&<quot; enable>d="<;true"> name=&<quot;xslt&q>uot; DisplayNamexslt/<DisplayName > P<ropert>ies/ < Reso>urceURL<xsl://XSL-Transform.xsl/ResourceURL Sou>rceres<ponse/Source > < P>arameters ignoreUnresolvedVariables="false"/ OutputVariable/ /XSLตรวจสอบว่ามีการกําหนดตัวแปรที่ใช้ในองค์ประกอบ
<Source>และพร้อมใช้งานหรือไม่ในขั้นตอนที่นโยบายการเปลี่ยนรูปแบบ XSL กำลังทํางานหากตัวแปรมีลักษณะอย่างใดอย่างหนึ่งต่อไปนี้
- อยู่นอกขอบเขต (ใช้ไม่ได้ในขั้นตอนที่เจาะจงซึ่งมีนโยบายอยู่ ดำเนินการแล้ว) หรือ
- ไม่สามารถแก้ไขได้ (ไม่ได้กําหนด)
นั่นคือสาเหตุของข้อผิดพลาด
ตัวอย่างเช่น สมมติว่านโยบายการเปลี่ยนรูปแบบ XSL ที่แสดงด้านบนควรทำงานในขั้นตอนการส่งคำขอ โปรดทราบว่ามีการใช้ตัวแปร
responseในองค์ประกอบ<Source>ของนโยบายตัวอย่าง ตัวแปรresponseคือ จะใช้ได้ในขั้นตอนการตอบกลับเท่านั้นเนื่องจากตัวแปร
responseไม่มีอยู่ในขั้นตอนการส่งคำขอ คุณจึงได้รับรหัสข้อผิดพลาดต่อไปนี้steps.xsl.XSLSourceMessageNotAvailable
ความละเอียด
ตรวจสอบว่าตัวแปรที่ตั้งค่าไว้ในองค์ประกอบ <Source> ของนโยบายการเปลี่ยนรูปแบบ XSL ที่ไม่สําเร็จนั้นได้รับการกําหนดและอยู่ในขั้นตอนที่นโยบายทํางาน
หากต้องการแก้ไขนโยบายการเปลี่ยนรูปแบบ XSL ตัวอย่างที่แสดงด้านบน คุณสามารถแก้ไของค์ประกอบ <Source> ให้ใช้ตัวแปร request ได้ เนื่องจากมีอยู่ในโฟลว์คำขอ
<?xml version="1.0" encoding="UTF-8&quo>t; <standalone="yes"?
XSL async="false" continueOn>Err<or="fa>lse&<quot; enable>d=&qu<ot;true&quo>t; na<me="xs>lt"
DisplayNamex<slt/DisplayN>ame
< Pro>perties</
R>esour<ceURLxsl://XSL-Transform.xsl/ResourceURL
>Sour<cerequest/Sourc>e<
> Parameters ignoreUnresolvedVariables="false"/
OutputVariable/
/XSL
XSLEvaluationFailed
รหัสข้อผิดพลาด
steps.xsl.XSLEvaluationFailed
เนื้อหาการตอบกลับข้อผิดพลาด
{
"fault": {
"faultstring":< &q>uot;Evaluatio<n of> XSL varXSL_file_name/v<ar >failed with reason<: \&>quot;varreason_for_failure/var",
"detail": {
"errorcode": "steps.xsl.XSLEvaluationFailed"
}
}
}
ตัวอย่างข้อความแสดงข้อผิดพลาด
{
"fault": {
"faultstring": "Evaluation of XSL XSL-Transform.xsl failed with reason: \"Premature end of document while parsing at line 1(possibly around char 0)\"",
"detail": {
"errorcode": "steps.xsl.XSLEvaluationFailed"
}
}
}
สาเหตุที่เป็นไปได้
ข้อผิดพลาดนี้จะเกิดขึ้นในกรณีต่อไปนี้
- เพย์โหลด XML ของอินพุตไม่พร้อมใช้งาน/ผิดรูปแบบ
- นโยบาย XSLTransform ไม่สําเร็จ/แปลงไฟล์ XML อินพุตไม่ได้ตามกฎการเปลี่ยนรูปแบบที่ระบุไว้ในไฟล์ XSL นโยบาย XSLTransform อาจไม่ผ่านการตรวจสอบได้จากหลายสาเหตุ สาเหตุของความล้มเหลวในข้อความแสดงข้อผิดพลาดจะให้ข้อมูลเพิ่มเติมเกี่ยวกับสาเหตุ ตารางต่อไปนี้แสดงสาเหตุหนึ่งของการไม่ผ่านการตรวจสอบนี้ ซึ่งก็คือ "คำนำหน้าไม่ถูกต้อง" พร้อมคำอธิบายและตัวอย่าง
| สาเหตุ | คำอธิบาย |
|---|---|
| ไม่มีเพย์โหลด XML ของอินพุต | เพย์โหลด XML ที่ป้อนไม่ได้ส่งผ่านหรือว่างเปล่า |
| Input XML มีรูปแบบไม่ถูกต้อง | เพย์โหลด XML อินพุตผิดรูปแบบหรือไม่ถูกต้อง |
| คำนำหน้าไม่ถูกต้อง | เพย์โหลด XML อินพุตมีคำนำหน้าที่ไม่ได้กำหนดไว้ในไฟล์ XSL |
สาเหตุ: ข้อมูลโค้ด XML ของอินพุตไม่พร้อมใช้งาน
ข้อผิดพลาดนี้เกิดขึ้นหากไม่ส่งเพย์โหลด XML ของอินพุตหรือส่งเพย์โหลด XML เป็นส่วนหนึ่งของคำขอ API ไปยังพร็อกซี API ที่มีนโยบาย XSLT ว่างเปล่า
ตัวอย่างข้อความแสดงข้อผิดพลาด
{
"fault": {
"faultstring": "Evaluation of XSL XSL-Transform.xsl failed with reason: \"Premature end of document while parsing at line 1(possibly around char 0)\"",
"detail": {
"errorcode": "steps.xsl.XSLEvaluationFailed"
}
}
}
การวินิจฉัย
ระบุไฟล์ XSL ที่นโยบายการเปลี่ยนรูปแบบ XML ประเมินไม่ได้และสาเหตุที่ดำเนินการไม่สำเร็จ หากไม่มีการส่งเปย์โหลด XML ที่อินพุตหรือ ว่างเปล่า เหตุผลของความล้มเหลวจะบ่งชี้ว่ามีการสิ้นสุดก่อนกำหนด ของเอกสารขณะแยกวิเคราะห์ คุณดูข้อมูลทั้งหมดนี้ได้ในองค์ประกอบ
faultstringของการตอบกลับข้อผิดพลาด ตัวอย่างเช่น ในfaultstringต่อไปนี้ พารามิเตอร์ ไฟล์ XSL คือXSL-Transform.xslและเหตุผลที่ล้มเหลวคือPremature end of document while parsing at line 1 (possibly around char 0)ข้อผิดพลาดนี้หมายความว่าระบบไม่ได้ส่งหรือส่งเพย์โหลด XML ว่างเปล่า"faultstring": "Evaluation of XSL XSL-Transform.xsl failed with reason: \"Premature end of document while parsing at line 1(possiblyaround char 0)\""ตรวจสอบว่าเพย์โหลด XML อินพุตที่ส่งผ่านเป็นส่วนหนึ่งของคำขอนั้นว่างเปล่าหรือไม่ หากเพย์โหลดอินพุตไม่ผ่านหรือว่างเปล่า นั่นเป็นสาเหตุ เพื่อดูข้อผิดพลาด
ในตัวอย่างคำขอด้านล่างนี้ คือเพย์โหลดคำขอ (เนื้อหาของคำขอ) ที่ผู้ใช้ส่งมาว่างเปล่า
เช่น
curl -v "ht<tp:>/</or>g-env.apigee.net/v1/xsltransform" -H "Content-Type: application/xml"คุณได้รับข้อผิดพลาดเนื่องจากเพย์โหลดอินพุต XML ว่างเปล่า
"faultstring": "Evaluation of XSL XSL-Transform.xsl failed with reason: \"Premature end of document while parsing at line 1(possiblyaround char 0)\""
ความละเอียด
ตรวจสอบว่าอินพุตที่ส่งไปยังนโยบาย Picasaransform เป็นเพย์โหลด XML ที่ถูกต้องและ ไม่ว่างเปล่า
ในการแก้ไขปัญหาเกี่ยวกับตัวอย่างนโยบาย DKIMransform ให้ส่งเพย์โหลด XML ที่ถูกต้อง เช่น
สร้างไฟล์ชื่อ
city.xmlด้วยเนื้อหาต่อไปนี้<?xml version="1.0" encodin>g<=&qu>ot;U<TF-8>"? r<oot > Ci<tyBe>ngalur<u/Cit>y < NameAp>igee/N<ame P>i<ncode>560016/Pincode /rootเรียก API โดยใช้คำสั่ง cURL ดังนี้
curl -v "ht<tp:>/</or>g-env.apigee.net/v1/xsltransform" -H "Content-Type: application/xml" -X POST -d @city.xml
สาเหตุ: XML อินพุตมีรูปแบบไม่ถูกต้อง
เพย์โหลด XML อินพุตที่ส่งเป็นส่วนหนึ่งของคําขอ API ไปยังนโยบาย XSLTransform มีรูปแบบไม่ถูกต้องหรือไม่ถูกต้อง
ตัวอย่างข้อความแสดงข้อผิดพลาด
{
"fault": {
"faultstring": "Evaluation of XSL XSL-Transform.xsl failed with reason: \"Unexpected char& while looking for open tag ('lt;') character\"",
"detail": {
"errorcode": "steps.xsl.XSLEvaluationFailed"
}
}
}
การวินิจฉัย
ระบุไฟล์ XSL ที่นโยบายการเปลี่ยนรูปแบบ XML ประเมินไม่ได้ และเหตุผลที่ไม่สำเร็จ หากเพย์โหลด XML อินพุตมีรูปแบบไม่ถูกต้อง สาเหตุของการไม่สําเร็จจะระบุว่ามีอักขระที่ไม่คาดคิด คุณดูข้อมูลทั้งหมดนี้ได้ ในองค์ประกอบ
faultstringของการตอบกลับข้อผิดพลาด เช่น ในfaultstringต่อไปนี้ ไฟล์ XSL คือXSL-Transform.xslและสาเหตุของการไม่ผ่านคือUnexpected char while looking for open tag ('<') characterกล่าวคือ "<" หายไปในเพย์โหลด XML"faultstring": "Evaluation of XSL XSL-Transform.xsl failed with reason: \"Unexpected char while loo&king for open tag ('lt;') character\""ตรวจสอบเพย์โหลด XML อินพุตที่ส่งไปยังนโยบาย XSLTransform และดูว่าเนื้อหา XML ถูกต้องหรือไม่ หากเพย์โหลดอินพุตไม่ใช่ XML ที่ถูกต้อง แสดงว่านี่คือสาเหตุของข้อผิดพลาด
ในตัวอย่างคำขอด้านล่าง พัลย์โหลดอินพุต (นั่นคือเนื้อหาคำขอ) ที่ผู้ใช้ส่งมาไม่ถูกต้อง
เช่น
curl -v "ht<tp:>/</or>g-env.apigee.net/v1/xsltransform" -H "Content-Type: application/xml" -X POST -d @city.xmlโดยที่
city.xmlคือ{ "City": "Bengaluru", "Name": "Apigee", "Pincode": "560016" }คุณได้รับข้อผิดพลาดต่อไปนี้เนื่องจากเพย์โหลดอินพุตคือ JSON ไม่ใช่ XML ที่ถูกต้อง
"faultstring": "Evaluation of XSL XSL-Transform.xsl failed with reason: \"Unexpected char while loo&king for open tag ('lt;') character\""
ความละเอียด
ตรวจสอบว่าอินพุตที่ส่งไปยังนโยบาย XSLTransform เป็นเพย์โหลด XML ที่ถูกต้องและไม่ว่างเปล่า
ในการแก้ไขปัญหาเกี่ยวกับตัวอย่างนโยบาย DKIMransform ให้ส่งเพย์โหลด XML ที่ถูกต้อง เช่น
แก้ไขไฟล์
city.xmlให้เนื้อหาเป็น XML ดังที่แสดงด้านล่าง<?xml version="1.0" encodin>g<=&qu>ot;U<TF-8>"? r<oot > Ci<tyBe>ngalur<u/Cit>y < NameAp>igee/N<ame P>i<ncode>560016/Pincode /rootเรียกใช้ API โดยใช้คำสั่ง cURL ดังนี้
curl -v "ht<tp:>/</or>g-env.apigee.net/v1/xsltransform" -H "Content-Type: application/xml" -X POST -d @city.xml
สาเหตุ: คำนำหน้าไม่ถูกต้อง
เพย์โหลด XML อินพุตที่ส่งไปยังนโยบาย XSLTransform มีองค์ประกอบที่ไม่ได้กำหนดเป็นคำนำหน้าในไฟล์ XSL ที่ระบุไว้ในนโยบาย
ตัวอย่างข้อความแสดงข้อผิดพลาด
{
"fault": {
"faultstring": "Evaluation of XSL XSL-Transform.xsl failed with reason: \"Unresolved Prefix at line 1(possibly around char 270)\"",
"detail": {
"errorcode": "steps.xsl.XSLEvaluationFailed"
}
}
}
การวินิจฉัย
ระบุไฟล์ XSL ที่นโยบายการเปลี่ยนรูปแบบ XML ประเมินไม่ได้และสาเหตุที่ดำเนินการไม่สำเร็จ ในกรณีนี้ สาเหตุของความล้มเหลวจะระบุว่า ว่ามีคำนำหน้าที่ยังไม่ได้แก้ไขที่หมายเลขบรรทัดที่ระบุใน XML อินพุต เพย์โหลด คุณสามารถดูข้อมูลทั้งหมดนี้ได้ในองค์ประกอบ
faultstringของ การตอบกลับข้อผิดพลาด เช่น ในfaultstringต่อไปนี้ ไฟล์ XSL คือXSL-Transform.xslและสาเหตุของการไม่ผ่านคือUnresolved Prefixและหมายเลขบรรทัดคือ1"faultstring":"Evaluation of XSL XSL-Transform.xsl failed with reason: \"Unresolved Prefix at line 1(possiblyaround char 270)\""ตรวจสอบเนื้อหาของไฟล์ XSL (ระบุไว้ในขั้นตอนที่ 1 ด้านบน) และข้อมูลเพย์โหลด XML ของอินพุต หากคำนำหน้าที่ใช้ในหมายเลขบรรทัด (ระบุในขั้นตอนที่ 1 ด้านบน) ของ ไม่มีเพย์โหลด XML อินพุตอยู่ในไฟล์ XSL นี่จึงเป็นสาเหตุของข้อผิดพลาด
ต่อไปนี้คือตัวอย่าง XSL และเพย์โหลด XML ที่เกี่ยวข้องที่ทำให้เกิดข้อผิดพลาด
XSL-Transform.xsl <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" ver>sio<n="1.0" xsl:o>utp<ut method="text"/> x<sl:varia>ble <name=&quo>t;n<ewline"<>/span> <xsl:text /xsl:text > /<xsl:vari>&able &xsl<:template> matc<h="/" xsl:textlt;Li>fegt;</xsl:tex>t xsl:value-of select="$newline"</ xsl>:text<Here are the odd-numbered items> from< the list:/xsl:text xsl:value-o>f selec<t="$newline"/ xsl:for->each sele<ct="list/listitem&q>uot; < xsl:if test="(pos>ition() m<od 2) = 1" xsl:num>ber for<mat=&qu>ot;1.< "/ > < xsl:val>&ue-of se&lec<t=".>&<quot;/ > < xsl:value-of s>elect="$newline"/ /xsl:if /xsl:for-each xsl:textlt;/Lifegt;/xsl:text /xsl:template /xsl:stylesheetเพย์โหลด XML อินพุต
<?xml version=">1<.0"? >Lif<e:Boo>ks titleA few of my favor<ite al>bum<s/title > listitem<Beat Craz>y/l<istitem > listitemHere Come the< Warm Jet>s/l<istitem > listitemKi<nd of Blu>e/l<istitem > listitemLond<on Callin>g</listitem />Life:Booksเพย์โหลด XML ตัวอย่างที่แสดงด้านบนมีองค์ประกอบ
<Life:Books>โปรดทราบว่า XSL ไม่มีคำนำหน้านี้ แต่จะมีคำนำหน้าเป็น<xsl:text><Life></xsl:text>คุณจึงได้รับข้อผิดพลาดนี้"faultstring":"Evaluation of XSL XSL-Transform.xsl failed with reason: \"Unresolved Prefix at line 1(possiblyaround char 270)\""
ความละเอียด
ตรวจสอบว่าเพย์โหลด XML ของอินพุตที่ส่งไปยังนโยบาย ePubransform มี รูปแบบองค์ประกอบที่กำหนดไว้เป็นคำนำหน้าในไฟล์ XSL ที่ใช้ในนโยบาย
หากต้องการแก้ไขไฟล์ XML ตัวอย่างที่แสดงด้านบน ให้แก้ไขไฟล์ดังที่แสดงด้านล่าง
ข้อมูลโค้ด XML ของอินพุตที่อัปเดตแล้ว
<?xml version=">1<.0&q>uot<;?
Li>fe
titleA few of my favor<ite al>bum<s/title
> listitem<Beat Craz>y/l<istitem
> listitemHere Come the< Warm Jet>s/l<istitem
> listitemKi<nd of Blu>e/l<istitem
> listitemLond<on Callin>g</list>item
/Life