Anda sedang melihat dokumentasi Apigee Edge.
Buka dokumentasi
Apigee X. info
XSLSourceMessageNotAvailable
Kode error
steps.xsl.XSLSourceMessageNotAvailable
Isi respons error
{ "fault": { "faultstring": "response message is not available for XSL: policy_name", "detail": { "errorcode": "steps.xsl.XSLSourceMessageNotAvailable" } } }
Contoh Pesan Error
{
"fault": {
"faultstring": "response message is not available for XSL: xslt",
"detail": {
"errorcode": "steps.xsl.XSLSourceMessageNotAvailable"
}
}
}
Penyebab
Error ini terjadi jika
pesan
atau variabel string yang ditentukan dalam elemen <Source>
kebijakan XSL Transform adalah:
- Di luar cakupan (tidak tersedia dalam alur tertentu tempat kebijakan dijalankan)
- Tidak dapat diselesaikan (tidak ditentukan)
Misalnya, error ini terjadi jika kebijakan XSL Transform seharusnya dijalankan
dalam alur permintaan, tetapi elemen <Source>
ditetapkan ke variabel respons,
yang tidak ada dalam alur permintaan.
Diagnosis
Identifikasi kebijakan Transformasi XSL tempat error terjadi dan nama variabel yang tidak tersedia. Anda dapat menemukan kedua item ini di elemen
faultstring
pada respons error. Misalnya, dalamfaultstring
berikut, nama kebijakan adalahxslt
dan variabelnya adalahresponse
:faultstring": "response message is not available for XSL: xslt
Dalam XML kebijakan Transformasi XSL yang gagal, pastikan nama variabel yang ditetapkan dalam elemen
<Source>
cocok dengan nama variabel yang diidentifikasi dalam string error (langkah #1 di atas). Misalnya, kebijakan Transformasi XSL berikut menentukan variabel bernamaresponse
dalam elemen<Source>
, yang cocok dengan yang ada di string fault:<?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>
Tentukan apakah variabel yang digunakan dalam elemen
<Source>
telah ditetapkan dan tersedia dalam alur tempat kebijakan Transform XSL dijalankan.Jika variabel adalah:
- Di luar cakupan (tidak tersedia dalam alur tertentu tempat kebijakan dijalankan) atau
- Tidak dapat diselesaikan (tidak ditentukan)
maka itulah penyebab error.
Sebagai contoh, misalkan kebijakan XSL Transform yang ditampilkan di atas seharusnya dijalankan dalam alur permintaan. Ingat kembali bahwa variabel
response
digunakan dalam elemen<Source>
dari contoh kebijakan. Variabelresponse
hanya tersedia dalam alur respons.Karena variabel
response
tidak ada dalam alur permintaan, Anda akan menerima kode error:steps.xsl.XSLSourceMessageNotAvailable
Resolusi
Pastikan variabel yang ditetapkan di elemen <Source>
kebijakan Transformasi XSL yang gagal, ditentukan dan ada dalam alur tempat kebijakan dieksekusi.
Untuk memperbaiki contoh kebijakan Transformasi XSL yang ditampilkan di atas, Anda dapat mengubah elemen <Source>
untuk menggunakan variabel request
, karena elemen tersebut ada dalam alur permintaan:
<?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
Kode error
steps.xsl.XSLEvaluationFailed
Isi respons error
{
"fault": {
"faultstring": "Evaluation of XSL <var>XSL_file_name</var> failed with reason: \"<var>reason_for_failure</var>",
"detail": {
"errorcode": "steps.xsl.XSLEvaluationFailed"
}
}
}
Contoh Pesan Error
{
"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"
}
}
}
Kemungkinan penyebab
Error ini terjadi jika:
- Payload XML input tidak tersedia/rusak.
- Kebijakan XSLTransform gagal/tidak dapat mengubah file XML input berdasarkan aturan transformasi yang diberikan dalam file XSL. Kebijakan XSLTransform dapat gagal karena banyak penyebab yang berbeda. Alasan kegagalan dalam pesan error akan memberikan informasi selengkapnya tentang penyebabnya. Tabel berikut mencantumkan salah satu penyebab kegagalan ini - Awalan Tidak Valid - dan dijelaskan dengan contoh.
Penyebab | Deskripsi |
---|---|
Payload XML Input tidak tersedia | Payload XML input tidak diteruskan atau kosong. |
XML Input Berbentuk Tidak Benar | Payload XML input salah format atau tidak valid. |
Imbuhan tidak valid | Payload XML input memiliki awalan yang tidak ditentukan dalam file XSL. |
Penyebab: Payload XML input tidak tersedia
Error ini terjadi jika payload XML input tidak diteruskan atau payload XML yang diteruskan sebagai bagian dari permintaan API ke Proxy API yang memiliki kebijakan XSLTransform kosong.
Contoh Pesan Error
{
"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"
}
}
}
Diagnosis
Identifikasi file XSL yang tidak dapat dievaluasi oleh kebijakan XML Transform dan alasan kegagalannya. Jika payload XML input tidak diteruskan atau kosong, alasan kegagalan akan menunjukkan adanya dokumen yang berakhir secara prematur saat mengurai. Anda dapat menemukan semua informasi ini di elemen
faultstring
respons error. Misalnya, dalamfaultstring
berikut, file XSL adalahXSL-Transform.xsl
, dan alasan kegagalannya adalahPremature end of document while parsing at line 1 (possibly around char 0)
. Error tersebut berarti payload XML tidak diteruskan atau kosong."faultstring": "Evaluation of XSL XSL-Transform.xsl failed with reason: \"Premature end of document while parsing at line 1(possibly around char 0)\""
Tentukan apakah payload XML input yang telah diteruskan sebagai bagian dari permintaan kosong. Jika payload input tidak diteruskan atau kosong, hal itu adalah penyebab error.
Dalam contoh permintaan di bawah, payload permintaan (yaitu, isi permintaan) yang dikirim oleh pengguna kosong.
Contoh:
curl -v "http://<org>-<env>.apigee.net/v1/xsltransform" -H "Content-Type: application/xml"
Karena payload input XML kosong, Anda menerima error:
"faultstring": "Evaluation of XSL XSL-Transform.xsl failed with reason: \"Premature end of document while parsing at line 1(possibly around char 0)\""
Resolusi
Pastikan input yang diteruskan ke kebijakan XSLTransform adalah payload XML yang valid dan tidak kosong.
Untuk memperbaiki masalah pada contoh kebijakan XSLTransform, teruskan payload XML yang valid. Contoh:
Buat file bernama
city.xml
dengan konten berikut:<?xml version="1.0" encoding="UTF-8"?> <root> <City>Bengaluru</City> <Name>Apigee</Name> <Pincode>560016</Pincode> </root>
Lakukan panggilan API menggunakan perintah cURL sebagai berikut:
curl -v "http://<org>-<env>.apigee.net/v1/xsltransform" -H "Content-Type: application/xml" -X POST -d @city.xml
Penyebab: XML Input Tidak Berbentuk Benar
Payload XML input yang diteruskan sebagai bagian dari permintaan API ke kebijakan XSLTransform berformat salah atau tidak valid.
Contoh Pesan Error
{
"fault": {
"faultstring": "Evaluation of XSL XSL-Transform.xsl failed with reason: \"Unexpected char while looking for open tag ('<') character\"",
"detail": {
"errorcode": "steps.xsl.XSLEvaluationFailed"
}
}
}
Diagnosis
Identifikasi file XSL yang tidak dapat dievaluasi oleh kebijakan Transformasi XML dan alasan kegagalannya. Jika payload XML input salah format, alasan kegagalan akan menunjukkan bahwa ada karakter yang tidak terduga. Anda dapat menemukan semua informasi ini di elemen
faultstring
respons error. Misalnya, dalamfaultstring
berikut, file XSL adalahXSL-Transform.xsl
, dan alasan kegagalannya adalahUnexpected char while looking for open tag ('<') character
. Artinya, "<
" tidak ada dalam payload XML."faultstring": "Evaluation of XSL XSL-Transform.xsl failed with reason: \"Unexpected char while looking for open tag ('<') character\""
Periksa payload XML input yang diteruskan ke kebijakan XSLTransform dan lihat apakah payload tersebut memiliki konten XML yang valid atau tidak. Jika payload input bukan XML yang valid, itulah penyebab error.
Dalam contoh permintaan di bawah, payload input (yaitu, isi permintaan) yang dikirim oleh pengguna tidak valid.
Contoh:
curl -v "http://<org>-<env>.apigee.net/v1/xsltransform" -H "Content-Type: application/xml" -X POST -d @city.xml
Dengan lokasi
city.xml
:{ "City": "Bengaluru", "Name": "Apigee", "Pincode": "560016" }
Karena payload input adalah JSON dan bukan XML yang valid, Anda akan menerima error:
"faultstring": "Evaluation of XSL XSL-Transform.xsl failed with reason: \"Unexpected char while looking for open tag ('<') character\""
Resolusi
Pastikan input yang diteruskan ke kebijakan XSLTransform adalah payload XML yang valid dan tidak kosong.
Untuk memperbaiki masalah pada contoh kebijakan XSLTransform, teruskan payload XML yang valid. Contoh:
Ubah file
city.xml
agar memiliki konten dalam XML seperti yang ditunjukkan di bawah:<?xml version="1.0" encoding="UTF-8"?> <root> <City>Bengaluru</City> <Name>Apigee</Name> <Pincode>560016</Pincode> </root>
Lakukan panggilan API menggunakan perintah cURL sebagai berikut:
curl -v "http://<org>-<env>.apigee.net/v1/xsltransform" -H "Content-Type: application/xml" -X POST -d @city.xml
Penyebab: Awalan tidak valid
Payload XML input yang diteruskan ke kebijakan XSLTransform memiliki elemen yang tidak ditentukan sebagai awalan dalam file XSL yang ditentukan dalam kebijakan.
Contoh Pesan Error
{
"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"
}
}
}
Diagnosis
Identifikasi file XSL yang tidak dapat dievaluasi oleh kebijakan XML Transform dan alasan kegagalannya. Dalam hal ini, alasan kegagalan akan menunjukkan adanya awalan yang belum terselesaikan pada nomor baris tertentu dalam payload XML input. Anda dapat menemukan semua informasi ini di elemen
faultstring
dari respons error. Misalnya, dalamfaultstring
berikut, file XSL adalahXSL-Transform.xsl
, dan alasan kegagalannya adalahUnresolved Prefix
dan nomor baris adalah1
."faultstring":"Evaluation of XSL XSL-Transform.xsl failed with reason: \"Unresolved Prefix at line 1(possibly around char 270)\""
Periksa konten file XSL (diidentifikasi pada langkah #1 di atas) dan payload XML input. Jika awalan yang digunakan di nomor baris (yang diidentifikasi pada langkah #1 di atas) payload XML input tidak ada di file XSL, itulah penyebab error.
Berikut adalah contoh XSL dan payload XML yang sesuai yang menyebabkan error:
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>
Payload XML Input
<?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>
Contoh payload XML yang ditampilkan di atas berisi elemen
<Life:Books>
. Perhatikan bahwa XSL tidak memiliki awalan ini. Sebagai gantinya, awalan ini akan ditulis sebagai<xsl:text><Life></xsl:text>
. Oleh karena itu, Anda mendapatkan error:"faultstring":"Evaluation of XSL XSL-Transform.xsl failed with reason: \"Unresolved Prefix at line 1(possibly around char 270)\""
Resolusi
Pastikan payload XML input yang diteruskan ke kebijakan XSLTransform memiliki semua format elemen yang ditentukan sebagai awalan dalam file XSL yang digunakan dalam kebijakan.
Untuk memperbaiki contoh file XML yang ditampilkan di atas, Anda dapat mengubah file seperti yang ditunjukkan di bawah:
Payload XML Input yang Diperbarui
<?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>