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"
}
}
}
वजह
यह गड़बड़ी तब होती है, जब XSL ट्रांसफ़ॉर्म नीति के <Source>
एलिमेंट में बताया गया मैसेज या स्ट्रिंग वैरिएबल, इनमें से कोई एक हो:
- दायरे से बाहर है (यह सुविधा उस फ़्लो में उपलब्ध नहीं होती जहां नीति लागू की जा रही है)
- रिज़ॉल्व नहीं किया जा सकता (तय नहीं किया गया है)
उदाहरण के लिए, यह गड़बड़ी तब होती है, जब XSL बदलाव की नीति को अनुरोध के फ़्लो में लागू किया जाना चाहिए, लेकिन <Source>
एलिमेंट को रिस्पॉन्स वैरिएबल पर सेट किया गया हो, जो अनुरोध के फ़्लो में मौजूद नहीं है.
संक्रमण की जांच
उस XSL बदलाव की नीति की पहचान करें जहां गड़बड़ी हुई है. साथ ही, उस वैरिएबल के नाम की भी पहचान करें जो उपलब्ध नहीं है. ये दोनों आइटम, गड़बड़ी के रिस्पॉन्स के
faultstring
एलिमेंट में देखे जा सकते हैं. उदाहरण के लिए, यहां दिए गएfaultstring
में, नीति का नामxslt
और वैरिएबलresponse
है:faultstring": "response message is not available for XSL: xslt
ऐसे XSL Transform नीति एक्सएमएल में, पुष्टि करें कि
<Source>
एलिमेंट में सेट वैरिएबल का नाम, गड़बड़ी वाली स्ट्रिंग में बताए गए वैरिएबल नाम (ऊपर दिया गया चरण #1) से मेल खाता है. उदाहरण के लिए, नीचे दी गई XSL रूपांतरण नीति<Source>
एलिमेंट मेंresponse
नाम के एक वैरिएबल के बारे में बताती है, जो गड़बड़ी वाली स्ट्रिंग से मेल खाता है:<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <XSL async="false" continueOnError="false" enabled="true" name="xslt"> <DisplayName>xslt</DisplayName> <Properties/> <ResourceURL>xsl://XSL-Transform.xsl</ResourceURL> <Source>response</Source> <Parameters ignoreUnresolvedVariables="false"/> <OutputVariable/> </XSL>
तय करें कि क्या
<Source>
एलिमेंट में इस्तेमाल किया गया वैरिएबल तय किया गया है और उस फ़्लो में उपलब्ध है जिसमें XSL Transform नीति को लागू किया जा रहा है.अगर वैरिएबल इनमें से कोई एक है:
- दायरे से बाहर है (यह सुविधा उस फ़्लो में उपलब्ध नहीं होती जिसमें नीति लागू की जा रही हो) या
- रिज़ॉल्व नहीं किया जा सकता (तय नहीं किया गया है)
तो यही गड़बड़ी की वजह है.
उदाहरण के तौर पर, मान लें कि ऊपर दिखाई गई XSL रूपांतरण नीति को अनुरोध फ़्लो में लागू किया जाना चाहिए. याद रखें कि
response
वैरिएबल का इस्तेमाल, उदाहरण की नीति के<Source>
एलिमेंट में किया गया है.response
वैरिएबल, सिर्फ़ रिस्पॉन्स फ़्लो में उपलब्ध होता है.response
वैरिएबल, अनुरोध के फ़्लो में मौजूद नहीं है. इसलिए, आपको यह गड़बड़ी कोड मिलता है:steps.xsl.XSLSourceMessageNotAvailable
रिज़ॉल्यूशन
पक्का करें कि फ़ेल हो चुके XSL बदलाव की नीति के <Source>
एलिमेंट में, वैरिएबल सेट तय किया गया है और उस फ़्लो में मौजूद है जहां नीति लागू होती है.
ऊपर दी गई XSL Transform नीति के उदाहरण को ठीक करने के लिए, आपके पास <Source>
एलिमेंट में बदलाव करने का विकल्प है, ताकि request
वैरिएबल का इस्तेमाल किया जा सके. ऐसा इसलिए, क्योंकि यह अनुरोध के फ़्लो में मौजूद होता है:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<XSL async="false" continueOnError="false" enabled="true" name="xslt">
<DisplayName>xslt</DisplayName>
<Properties/>
<ResourceURL>xsl://XSL-Transform.xsl</ResourceURL>
<Source>request</Source>
<Parameters ignoreUnresolvedVariables="false"/>
<OutputVariable/>
</XSL>
XSLEvaluationFailed
गड़बड़ी का कोड
steps.xsl.XSLEvaluationFailed
गड़बड़ी के जवाब का मुख्य हिस्सा
{
"fault": {
"faultstring": "Evaluation of XSL <var>XSL_file_name</var> failed with reason: \"<var>reason_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"
}
}
}
संभावित कारण
यह गड़बड़ी तब होती है, जब:
- इनपुट एक्सएमएल पेलोड उपलब्ध नहीं है या गलत फ़ॉर्मैट में डाला गया है.
- XSLTransform नीति, इनपुट एक्सएमएल फ़ाइल को नहीं बदल सकती. XSL फ़ाइल में दिए गए ट्रांसफ़ॉर्मेशन के नियमों के आधार पर. XSLTransform नीति के सफल न होने की कई वजहें हो सकती हैं. गड़बड़ी के मैसेज में असफल होने की वजह की वजह के बारे में ज़्यादा जानकारी मिलेगी. नीचे दी गई टेबल में इस गड़बड़ी की एक वजह - गलत प्रीफ़िक्स - दी गई है. साथ ही, इसकी जानकारी उदाहरण के साथ दी गई है.
वजह | ब्यौरा |
---|---|
इनपुट एक्सएमएल पेलोड उपलब्ध नहीं है | इनपुट एक्सएमएल पेलोड पास नहीं किया गया है या उसे खाली नहीं छोड़ा गया है. |
गलत इनपुट एक्सएमएल | इनपुट एक्सएमएल पेलोड गलत है या अमान्य है. |
अमान्य प्रीफ़िक्स | इनपुट एक्सएमएल पेलोड में ऐसा प्रीफ़िक्स शामिल है जिसकी जानकारी XSL फ़ाइल में नहीं है. |
वजह: इनपुट एक्सएमएल पेलोड उपलब्ध नहीं है
यह गड़बड़ी तब होती है, जब इनपुट एक्सएमएल पेलोड पास नहीं किया जाता है या XSLTransform नीति के खाली होने पर, एपीआई प्रॉक्सी को एपीआई अनुरोध के हिस्से के रूप में पास किया गया एक्सएमएल पेलोड खाली होता है.
गड़बड़ी के मैसेज का उदाहरण
{
"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 फ़ाइल की पहचान करें जिसका आकलन एक्सएमएल ट्रांसफ़ॉर्म की नीति से नहीं किया जा सका. साथ ही, गड़बड़ी की वजह की भी पहचान करें. अगर इनपुट एक्सएमएल पेलोड पास नहीं किया गया है या खाली है, तो विफल होने की वजह से यह पता चलेगा कि पार्स करते समय दस्तावेज़ की समयसीमा तय समय से पहले खत्म हो गई है. यह पूरी जानकारी, गड़बड़ी के रिस्पॉन्स के
faultstring
एलिमेंट में देखी जा सकती है. उदाहरण के लिए, नीचे दिए गएfaultstring
में, XSL फ़ाइलXSL-Transform.xsl
है और ऐसा न होने की वजहPremature end of document while parsing at line 1 (possibly around char 0)
है. इस गड़बड़ी का मतलब है कि एक्सएमएल पेलोड पास नहीं हुआ है या वह खाली है."faultstring": "Evaluation of XSL XSL-Transform.xsl failed with reason: \"Premature end of document while parsing at line 1(possibly around char 0)\""
यह देखें कि अनुरोध के हिस्से के रूप में भेजा गया इनपुट एक्सएमएल पेलोड खाली है या नहीं. अगर इनपुट पेलोड पास नहीं किया गया है या वह खाली है, तो इस गड़बड़ी की वजह यह है.
नीचे दिए गए अनुरोध के उदाहरण में, उपयोगकर्ता की ओर से भेजा गया अनुरोध पेलोड (यानी, अनुरोध का मुख्य हिस्सा) खाली था.
उदाहरण के लिए:
curl -v "http://<org>-<env>.apigee.net/v1/xsltransform" -H "Content-Type: application/xml"
एक्सएमएल इनपुट पेलोड खाली है, इसलिए आपको गड़बड़ी का यह मैसेज मिल रहा है:
"faultstring": "Evaluation of XSL XSL-Transform.xsl failed with reason: \"Premature end of document while parsing at line 1(possibly around char 0)\""
रिज़ॉल्यूशन
पक्का करें कि XSLTransform नीति को भेजा गया इनपुट, एक मान्य एक्सएमएल पेलोड है और यह खाली नहीं है.
नमूना XSLTransform नीति से जुड़ी समस्या ठीक करने के लिए, एक मान्य एक्सएमएल पेलोड पास करें. उदाहरण के लिए:
यहां दिए गए कॉन्टेंट के साथ
city.xml
नाम की फ़ाइल बनाएं:<?xml version="1.0" encoding="UTF-8"?> <root> <City>Bengaluru</City> <Name>Apigee</Name> <Pincode>560016</Pincode> </root>
cURL निर्देश का इस्तेमाल करके, एपीआई कॉल करें:
curl -v "http://<org>-<env>.apigee.net/v1/xsltransform" -H "Content-Type: application/xml" -X POST -d @city.xml
वजह: गलत इनपुट एक्सएमएल
एपीआई अनुरोध के हिस्से के तौर पर, XSLTransform के लिए भेजा गया इनपुट एक्सएमएल पेलोड गलत या अमान्य है.
गड़बड़ी के मैसेज का उदाहरण
{
"fault": {
"faultstring": "Evaluation of XSL XSL-Transform.xsl failed with reason: \"Unexpected char while looking for open tag ('<') character\"",
"detail": {
"errorcode": "steps.xsl.XSLEvaluationFailed"
}
}
}
संक्रमण की जांच
उस XSL फ़ाइल की पहचान करें जिसका आकलन एक्सएमएल ट्रांसफ़ॉर्म की नीति से नहीं किया जा सका. साथ ही, गड़बड़ी की वजह की भी पहचान करें. अगर इनपुट एक्सएमएल पेलोड गलत है, तो गड़बड़ी होने की वजह से यह पता चलेगा कि कोई गलत वर्ण मौजूद है. आपको यह पूरी जानकारी, गड़बड़ी के रिस्पॉन्स के
faultstring
एलिमेंट में मिल सकती है. उदाहरण के लिए, नीचे दिए गएfaultstring
में, XSL फ़ाइलXSL-Transform.xsl
है और ऐसा न होने की वजहUnexpected char while looking for open tag ('<') character
है. इसका मतलब है कि एक्सएमएल पेलोड में "<
" मौजूद नहीं है."faultstring": "Evaluation of XSL XSL-Transform.xsl failed with reason: \"Unexpected char while looking for open tag ('<') character\""
XSLTransform नीति को दिए गए इनपुट एक्सएमएल पेलोड की जांच करें और देखें कि इसमें मान्य एक्सएमएल कॉन्टेंट है या नहीं. अगर इनपुट पेलोड मान्य एक्सएमएल नहीं है, तो इस गड़बड़ी की वजह यही है.
नीचे दिए गए अनुरोध के उदाहरण में, उपयोगकर्ता की ओर से भेजा गया इनपुट पेलोड (यानी कि अनुरोध का मुख्य हिस्सा) अमान्य था.
उदाहरण के लिए:
curl -v "http://<org>-<env>.apigee.net/v1/xsltransform" -H "Content-Type: application/xml" -X POST -d @city.xml
जहां
city.xml
है:{ "City": "Bengaluru", "Name": "Apigee", "Pincode": "560016" }
इनपुट पेलोड JSON है और मान्य एक्सएमएल नहीं है, इसलिए आपको गड़बड़ी का यह मैसेज मिल रहा है:
"faultstring": "Evaluation of XSL XSL-Transform.xsl failed with reason: \"Unexpected char while looking for open tag ('<') character\""
रिज़ॉल्यूशन
पक्का करें कि XSLTransform नीति को भेजा गया इनपुट, एक मान्य एक्सएमएल पेलोड है और यह खाली नहीं है.
नमूना XSLTransform नीति से जुड़ी समस्या ठीक करने के लिए, एक मान्य एक्सएमएल पेलोड पास करें. उदाहरण के लिए:
city.xml
फ़ाइल में बदलाव करें, ताकि वह एक्सएमएल में इस तरह का कॉन्टेंट शामिल कर सके:<?xml version="1.0" encoding="UTF-8"?> <root> <City>Bengaluru</City> <Name>Apigee</Name> <Pincode>560016</Pincode> </root>
cURL निर्देश का इस्तेमाल करके, एपीआई कॉल करें:
curl -v "http://<org>-<env>.apigee.net/v1/xsltransform" -H "Content-Type: application/xml" -X POST -d @city.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 फ़ाइल की पहचान करें जिसका आकलन एक्सएमएल ट्रांसफ़ॉर्म की नीति से नहीं किया जा सका. साथ ही, गड़बड़ी की वजह की भी पहचान करें. इस मामले में, सफल न होने की वजह से यह पता चलेगा कि इनपुट एक्सएमएल पेलोड में किसी खास लाइन नंबर पर एक ऐसा प्रीफ़िक्स है जिसे हल नहीं किया गया है. यह पूरी जानकारी, गड़बड़ी के रिस्पॉन्स के
faultstring
एलिमेंट में देखी जा सकती है. उदाहरण के लिए, नीचे दिए गएfaultstring
में, XSL फ़ाइलXSL-Transform.xsl
है, जिसकी वजहUnresolved Prefix
है और लाइन का नंबर1
है."faultstring":"Evaluation of XSL XSL-Transform.xsl failed with reason: \"Unresolved Prefix at line 1(possibly around char 270)\""
XSL फ़ाइल (ऊपर चरण #1 में पहचानी गई) और इनपुट एक्सएमएल पेलोड के कॉन्टेंट की जांच करें. अगर इनपुट एक्सएमएल पेलोड के लाइन नंबर (ऊपर #1 में पहचाना गया) में इस्तेमाल किया गया प्रीफ़िक्स XSL फ़ाइल में मौजूद नहीं है, तो यही गड़बड़ी की वजह है.
यहां XSL और उससे जुड़े एक्सएमएल पेलोड के सैंपल दिए गए हैं, जिनकी वजह से गड़बड़ी होती है:
XSL-Transform.xsl <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:output method="text"/> <xsl:variable name="newline"> <xsl:text> </xsl:text> </xsl:variable> <xsl:template match="/"> <xsl:text><Life></xsl:text> <xsl:value-of select="$newline"/> <xsl:text>Here are the odd-numbered items from the list:</xsl:text> <xsl:value-of select="$newline"/> <xsl:for-each select="list/listitem"> <xsl:if test="(position() mod 2) = 1"> <xsl:number format="1. "/> <xsl:value-of select="."/> <xsl:value-of select="$newline"/> </xsl:if> </xsl:for-each> <xsl:text></Life></xsl:text> </xsl:template> </xsl:stylesheet>
एक्सएमएल पेलोड इनपुट करें
<?xml version="1.0"?> <Life:Books> <title>A few of my favorite albums</title> <listitem>Beat Crazy</listitem> <listitem>Here Come the Warm Jets</listitem> <listitem>Kind of Blue</listitem> <listitem>London Calling</listitem> </Life:Books>
ऊपर दिखाए गए एक्सएमएल पेलोड के उदाहरण में एक एलिमेंट
<Life:Books>
शामिल है. ध्यान दें कि XSL में यह प्रीफ़िक्स नहीं है. इसके बजाय, इसका प्रीफ़िक्स<xsl:text><Life></xsl:text>
है. इस वजह से, आपको गड़बड़ी का यह मैसेज मिल रहा है:"faultstring":"Evaluation of XSL XSL-Transform.xsl failed with reason: \"Unresolved Prefix at line 1(possibly around char 270)\""
रिज़ॉल्यूशन
पक्का करें कि XSLTransform नीति को भेजे गए इनपुट एक्सएमएल पेलोड में, वे सभी एलिमेंट फ़ॉर्मैट शामिल हों जिन्हें नीति में इस्तेमाल की गई XSL फ़ाइल में प्रीफ़िक्स के तौर पर बताया गया है.
ऊपर दिखाई गई उदाहरण एक्सएमएल फ़ाइल को ठीक करने के लिए, फ़ाइल में बदलाव किया जा सकता है. इसका तरीका नीचे बताया गया है:
इनपुट एक्सएमएल पेलोड अपडेट किया गया
<?xml version="1.0"?>
<Life>
<title>A few of my favorite albums</title>
<listitem>Beat Crazy</listitem>
<listitem>Here Come the Warm Jets</listitem>
<listitem>Kind of Blue</listitem>
<listitem>London Calling</listitem>
</Life>