วันจันทร์ที่ 5 พฤษภาคม พ.ศ. 2551

การแก้ปัญหา XML Parsing Error: xml declaration not at start of external entity

ถ้าหากใช้ไฟล์ JSP เพื่อสร้างไฟล์ XML แล้วพบข้อความดังกล่าวเมื่อใช้เบราว์เซอร์ Firefox

XML Parsing Error: xml declaration not at start of external entity
Line Number 3, Column 1:
^

สาเหตุของปัญหา

XML declaration ไม่ใช่เป็นบรรทัดแรกของไฟล์ XML

แนวทางในการแก้ปัญหา

ลบบรรทัดว่างในไฟล์ XML ก่อนที่จะถึงบรรทัดที่มีส่วนของ XML declaration

วิธีการแก้ปัญหา

1. ในที่นี้สมมุติว่าใช้ Tomcat5 เป็นซอฟต์แวร์ที่รันเซิรฟ์เวอร์ ให้ไปที่ี่ไดเรกทอรี %TOMCAT_HOME%/conf/

2. เข้าไปดูที่ไฟล์ web.xml แล้วหาอิลิเมนต์ servlet ของ jsp เช่น

<servlet>

<servlet-name>jsp</servlet-name>

<servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>

<init-param>

<param-name>fork</param-name>

<param-value>false</param-value>

</init-param>

<init-param>

<param-name>xpoweredBy</param-name>

<param-value>false</param-value>

</init-param>

<load-on-startup>3</load-on-startup>

</servlet>






3. เพิ่ม อิลิมเนต์ เพื่อลบช่องว่างหรือบรรทัดว่างออกไปก่อนในตำแหน่งหลังจากตัวแท็กปิด อันสุดท้าย

<servlet>

<servlet-name>jsp</servlet-name>

<servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>

<init-param>

<param-name>fork</param-name>

<param-value>false</param-value>

</init-param>

<init-param>

<param-name>xpoweredBy</param-name>

<param-value>false</param-value>

</init-param>

<init-param>

<param-name>trimSpaces</param-name>

<param-value>true</param-value>

</init-param>

<load-on-startup>3</load-on-startup>

</servlet>



       


4. ปิดและเปิด Tomcat เซิร์ฟเวอร์ใหม่

อ้างอิง
http://forum.java.sun.com/thread.jspa?threadID=556549&messageID=2728991

ไม่มีความคิดเห็น: