আপনি Apigee Edge-এর ডকুমেন্টেশন দেখছেন।
Apigee X ডকুমেন্টেশন .info- তে যান।
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 Transform পলিসিটি রিকোয়েস্ট ফ্লোতে কার্যকর হওয়ার কথা থাকে, কিন্তু <Source> এলিমেন্টটিকে রেসপন্স ভেরিয়েবলে সেট করা হয়, যা রিকোয়েস্ট ফ্লোতে বিদ্যমান নেই।
রোগ নির্ণয়
যে XSL Transformation পলিসিতে ত্রুটি ঘটেছে সেটি এবং যে ভেরিয়েবলটি পাওয়া যাচ্ছে না তার নাম শনাক্ত করুন। আপনি এই দুটি বিষয়ই এরর রেসপন্স-এর
faultstringএলিমেন্টে খুঁজে পাবেন। উদাহরণস্বরূপ, নিম্নলিখিতfaultstringএ, পলিসির নাম হলোxsltএবং ভেরিয়েবলটি হলোresponse:faultstring": "response message is not available for XSL: xsltব্যর্থ হওয়া XSL Transform পলিসি XML-এ,
<Source>এলিমেন্টে সেট করা ভেরিয়েবলের নামটি ফল্ট স্ট্রিং-এ (উপরের ধাপ #১) চিহ্নিত ভেরিয়েবলের নামের সাথে মেলে কিনা তা যাচাই করুন। উদাহরণস্বরূপ, নিম্নলিখিত XSL Transform পলিসিটি<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 Transform পলিসিটি রিকোয়েস্ট ফ্লো-তে এক্সিকিউট হওয়ার কথা। মনে রাখবেন যে, উদাহরণ পলিসিটির
<Source>এলিমেন্টেresponseভ্যারিয়েবলটি ব্যবহৃত হয়েছে।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"
}
}
}
সম্ভাব্য কারণসমূহ
এই ত্রুটিটি ঘটে যদি:
- ইনপুট XML পেলোডটি অনুপলব্ধ/ত্রুটিপূর্ণ।
- XSLTransform পলিসিটি XSL ফাইলে প্রদত্ত রূপান্তর নিয়ম অনুসারে ইনপুট XML ফাইলটিকে রূপান্তর করতে ব্যর্থ হয়/অক্ষম হয়। XSLTransform পলিসি ব্যর্থ হওয়ার বিভিন্ন কারণ থাকতে পারে। ত্রুটির বার্তায় ব্যর্থতার কারণটি এই বিষয়ে আরও তথ্য প্রদান করবে। নিম্নলিখিত সারণিতে এই ব্যর্থতার একটি কারণ - অবৈধ প্রিফিক্স - তালিকাভুক্ত করা হয়েছে এবং একটি উদাহরণের মাধ্যমে তা ব্যাখ্যা করা হয়েছে।
| কারণ | বর্ণনা |
|---|---|
| ইনপুট এক্সএমএল পেলোড অনুপলব্ধ | ইনপুট XML পেলোডটি পাস করা হয়নি অথবা এটি খালি। |
| ত্রুটিপূর্ণ ইনপুট এক্সএমএল | ইনপুট এক্সএমএল পেলোডটি ত্রুটিপূর্ণ বা অবৈধ। |
| অবৈধ উপসর্গ | ইনপুট XML পেলোডে একটি প্রিফিক্স আছে যা XSL ফাইলে সংজ্ঞায়িত করা নেই। |
কারণ: ইনপুট এক্সএমএল পেলোডটি অনুপলব্ধ।
এই ত্রুটিটি ঘটে যদি ইনপুট XML পেলোড পাস করা না হয় অথবা XSLTransform পলিসিযুক্ত API প্রক্সিতে API অনুরোধের অংশ হিসেবে পাস করা XML পেলোডটি খালি থাকে।
ত্রুটির বার্তার উদাহরণ
{
"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)\""অনুরোধের অংশ হিসেবে পাঠানো ইনপুট XML পেলোডটি খালি কিনা তা নির্ণয় করুন। যদি ইনপুট পেলোডটি পাঠানো না হয় বা খালি থাকে, তাহলে সেটাই ত্রুটির কারণ।
নীচের উদাহরণ অনুরোধটিতে, ব্যবহারকারীর পাঠানো অনুরোধ পেলোড (অর্থাৎ, অনুরোধের মূল অংশ) খালি ছিল।
উদাহরণস্বরূপ:
curl -v "http://<org>-<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(possibly around char 0)\""
সমাধান
নিশ্চিত করুন যে XSLTransform পলিসিতে প্রদত্ত ইনপুটটি একটি বৈধ এবং অ-খালি XML পেলোড।
নমুনা XSLTransform পলিসির সমস্যাটি সমাধান করতে, একটি বৈধ XML পেলোড পাস করুন। উদাহরণস্বরূপ:
city.xmlনামে একটি ফাইল তৈরি করুন এবং তাতে নিম্নলিখিত বিষয়বস্তু অন্তর্ভুক্ত করুন:<?xml version="1.0" encoding="UTF-8"?> <root> <City>Bengaluru</City> <Name>Apigee</Name> <Pincode>560016</Pincode> </root>নিম্নলিখিতভাবে একটি cURL কমান্ড ব্যবহার করে API কলটি করুন:
curl -v "http://<org>-<env>.apigee.net/v1/xsltransform" -H "Content-Type: application/xml" -X POST -d @city.xml
কারণ: ত্রুটিপূর্ণ ইনপুট XML
XSLTransform পলিসিতে API অনুরোধের অংশ হিসেবে পাঠানো ইনপুট XML পেলোডটি ত্রুটিপূর্ণ বা অবৈধ।
ত্রুটির বার্তার উদাহরণ
{
"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 ফাইলটি মূল্যায়ন করা যায়নি, সেটি এবং ব্যর্থতার কারণ শনাক্ত করুন। যদি ইনপুট এক্সএমএল পেলোডটি ত্রুটিপূর্ণ হয়, তাহলে ব্যর্থতার কারণ হিসেবে উল্লেখ করা হবে যে সেখানে একটি অপ্রত্যাশিত অক্ষর (char) রয়েছে। আপনি এই সমস্ত তথ্য এরর রেসপন্সের
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 পলিসিতে পাঠানো ইনপুট XML পেলোডটি পরীক্ষা করে দেখুন যে এতে বৈধ XML কন্টেন্ট আছে কি না। যদি ইনপুট পেলোডটি বৈধ XML না হয়, তাহলে সেটাই ত্রুটির কারণ।
নীচের উদাহরণ অনুরোধটিতে, ব্যবহারকারীর পাঠানো ইনপুট পেলোড (অর্থাৎ, অনুরোধের মূল অংশ) অবৈধ ছিল।
উদাহরণস্বরূপ:
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" }ইনপুট পেলোডটি বৈধ XML না হয়ে JSON হওয়ায় আপনি এই ত্রুটিটি পাবেন:
"faultstring": "Evaluation of XSL XSL-Transform.xsl failed with reason: \"Unexpected char while looking for open tag ('<') character\""
সমাধান
নিশ্চিত করুন যে XSLTransform পলিসিতে প্রদত্ত ইনপুটটি একটি বৈধ এবং অ-খালি XML পেলোড।
নমুনা XSLTransform পলিসির সমস্যাটি সমাধান করতে, একটি বৈধ XML পেলোড পাস করুন। উদাহরণস্বরূপ:
নিচে দেখানো XML কন্টেন্ট অনুযায়ী
city.xmlফাইলটি পরিবর্তন করুন:<?xml version="1.0" encoding="UTF-8"?> <root> <City>Bengaluru</City> <Name>Apigee</Name> <Pincode>560016</Pincode> </root>নিম্নলিখিতভাবে cURL কমান্ড ব্যবহার করে API কলটি করুন:
curl -v "http://<org>-<env>.apigee.net/v1/xsltransform" -H "Content-Type: application/xml" -X POST -d @city.xml
কারণ: অবৈধ উপসর্গ
XSLTransform পলিসিতে পাঠানো ইনপুট XML পেলোডে এমন একটি এলিমেন্ট রয়েছে, যা পলিসিতে নির্দিষ্ট করা 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 Transform পলিসি দ্বারা মূল্যায়ন করা যায়নি, সেটি এবং ব্যর্থতার কারণ শনাক্ত করুন। এক্ষেত্রে, ব্যর্থতার কারণটি নির্দেশ করবে যে ইনপুট XML পেলোডের একটি নির্দিষ্ট লাইন নম্বরে একটি অমীমাংসিত প্রিফিক্স (unresolved prefix) রয়েছে। আপনি এই সমস্ত তথ্য এরর রেসপন্সের (error response) '
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 ফাইল এবং ইনপুট XML পেলোডের বিষয়বস্তু পরীক্ষা করুন। যদি ইনপুট XML পেলোডের (উপরে ধাপ #১-এ চিহ্নিত) লাইন নম্বরে ব্যবহৃত প্রিফিক্সটি XSL ফাইলে না থাকে, তাহলে সেটাই ত্রুটির কারণ।
নিচে নমুনা XSL এবং সংশ্লিষ্ট XML পেলোড দেওয়া হলো, যার কারণে ত্রুটিটি ঘটেছে:
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>উপরে দেখানো উদাহরণ XML পেলোডটিতে
<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 পলিসিতে পাঠানো ইনপুট XML পেলোডে, পলিসিতে ব্যবহৃত XSL ফাইলে প্রিফিক্স হিসেবে সংজ্ঞায়িত সমস্ত এলিমেন্ট ফরম্যাট অন্তর্ভুক্ত রয়েছে।
উপরে দেখানো উদাহরণ XML ফাইলটি ঠিক করতে, আপনি ফাইলটি নিচে দেখানো অনুযায়ী পরিবর্তন করতে পারেন:
আপডেট করা ইনপুট এক্সএমএল পেলোড
<?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>