常見異常



sax錯誤:org.xml.sax.SAXParseException: Content is not allowed in
prolog
解決 html



緣由及其解決辦法: spring



1.xml編碼錯誤 windows



xmlUTF-8編碼的,若是該文件經過UltraEdit編輯後,會在無BOM頭的UTF-8文件中加入BOM,可是DOM4j不認這個BOM(dom4j1.3),解決的辦法能夠經過升級dom4j1.6解決www.dom4j.org dom



什麼是BOMhttp://www.unicode.org/faq/utf_bom.html#22Unicode規範中有一個BOM的概念。BOM——Byte Order Mark,就是字節序標記。在這裏找到一段關於BOM的說明: 函數



UCS 編碼中有一個叫作"ZERO WIDTH NO-BREAK
SPACE"
的字符,它的編碼是FEFF。而FFFEUCS中是不存在的字符,因此不該該出如今實際傳輸中。UCS規範建議咱們在傳輸字節流前,先傳輸 字符"ZERO WIDTH NO-BREAK
SPACE"
。這樣若是接收者收到FEFF,就代表這個字節流是Big-Endian的;若是收到FFFE,就代表這個字節流是Little- Endian的。所以字符"ZERO WIDTH NO-BREAK
SPACE"
又被稱做BOM 編碼



UTF-8不須要BOM來代表字節順序,但能夠用BOM來代表編碼方式。字符"ZERO WIDTH NO-BREAK
SPACE"
UTF-8編碼是EF BB BF。因此若是接收者收到以EF BB BF開頭的字節流,就知道這是UTF-8編碼了。 spa



Windows就是使用BOM來標記文本文件的編碼方式的。 code



 



2.xml文件存在非法字符 orm



xml 動手敲一遍,刪除不應有的間隔符:好比空格,製表符(TAB)等。 xml



異常提示是Content is not allowed in prolog.意思就是說文件開頭的時候有問題。



怎麼去掉BOM



首先windows自帶的記事本會在保存UTF-8編碼的文件時無論是否含有BOM一概加上BOM,因此千萬別用記 事本。比較新版本的UltraEdit(如下簡稱UE,你們都是這麼叫的)都對BOM支持比較好,因此推薦使用新版本的UE來解決這個問題。我用的版本是 UltraEdit-32 11.00a+中文版。首先打開UE,選擇菜單欄高級配置,出現一個選項卡窗口,在常規選項卡中找到保存時對全部UTF-8文件頭標記 BOM對在UltraEdit裏建立的新文件寫入UTF-8文件頭標記(如上面),把它們的複選框都取消不選,而後肯定。這個時候UE默認情 況下就不會對沒有BOM的文件加入BOM,注意若是不執行上述操做UE默認也是會加的!那已經含有BOM的文件如何清除BOM呢?下面演示給你們。首先打 開文件,選擇菜單欄文件格式轉換「UTF-8 ASCII」,這樣文件會被轉爲ASCII編碼,BOM就不會存在了,由於上面說過BOM是在UCS編碼的頭部的,而後再選擇菜單欄文件格式轉 「ASCII
UTF-8Unicode編輯),這個時候文件會被轉回爲UTF-8編碼,由於咱們上面選了不自動加BOM,因此這個時候的文件是不帶BOM的,而後 保存文件。整個操做過程就完畢了。



         response.getWriter().println(resourceJson);







result=eval('('+result+')');











List<BaseAddress>
listBaseAddress =
interTicketsReservationService



          .findBaseAddressByCityName(cityName);



     JSONArray strJson = JSONArray.fromObject(listBaseAddress);



     response.getWriter().println(strJson);





org.springframework.jdbc.UncategorizedSQLException:
SqlMapClient operation; uncategorized SQLException for SQL []; SQL state
[null]; error code [17002];



解決辦法:com.domain.base.BaseParent 的構造函數中有一個protected的方法,即 

public BaseParent(){ 

    init(); 

} 

protected void init(){} 

把這個方法去掉就能夠了 

原來須要cglibpo的構造函數中不能加任何別的方法 

若是加了 protected
的方法,會出現異常 

若是加了 public 的方法,不會出異常,但延遲加載會無效。 











org.dom4j.DocumentException:
Error on line 1 of document  : The markup
in the document following the root element must be well-formed. Nested
exception: The markup in the document following the root element must be
well-formed.



解決辦法:拼接的XML中沒有根節點。

相關文章
相關標籤/搜索