Class org.apache.struts2.json.JSONWriter can not access a member of class

異常形式:

Class org.apache.struts2.json.JSONWriter can not access a member of
或是
Class com.googlecode.jsonplugin.JSONWriter can not access a member of class

第一種是struct2.1.8json結合時的異常,第二種是struct2.1.6json結合的異常。

 

具體異常信息 :

Class org.apache.struts2.json.JSONWriter can not access a member of class oracle.jdbc.driver.BaseResultSet with modifiers “public”

 

解釋:

不能把程序中的某種數據結構串行化成json格式。

 

原因:

struts2action裏面的數據轉換成json數據時,會將提供了get方法的屬性都串行化輸出JSON到客戶端。有的時候,很多屬性並不能串行化成json數據,比如這裏的oracle.jdbc.driver.BaseResultSet。這時還進行強行轉換就會出現這樣的異常。

 

解決方法:

在不能串行化到json的屬性相應的get方法前加一條json標記 @JSON(serialize=false)。告訴json不需要轉化這個屬性。或者根本不寫這個,但是也不能多加,多加了有時候也會報異常,一般在ssh 項目的XXXService中的get方法上需要加這個@JSON(serialize=false)get方法。

 

後記:

對於不需要在前臺輸出的json數據,也可以用同樣的方法進行處理,從而減少服務器和客戶端間交互的信息量。

可在需要在前臺輸出的屬性的get方法前加上@JSON(name=“status”)標識,從而爲該屬性起了一個別名,在前臺就可以通過status作爲屬性名來讀取其值。


點擊可以查看原文連接,文略有刪改
發佈了17 篇原創文章 · 獲贊 34 · 訪問量 26萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章