框架: hibernate3
轉換json類庫:net.sf.json
在使用以下方法轉換json時,報錯java.lang.reflect.InvocationTargetException
JSONArray.fromObject(list);
debug後發現只有list中有的對象是hibernate懶加載對象的時候,就會出該問題。hibernate的懶加載對象,在轉換json時,會訪問到其字段,此時又會去數據庫查詢獲取相關字段。在debug中也看得到涉及到了jdbc等對象,導致出了該問題。
上網參考到有如下處理方式:
JsonConfig jc = new JsonConfig();
jc.registerJsonValueProcessor(Date.class, SysCommon.DATE_JSON_PROCESSOR_YMD);
//防止轉換hibernate懶加載對象出問題
jc.setExcludes(new String[]{"handler","hibernateLazyInitializer"});
JSONArray.fromObject(tss, jc);
後面會再找下有沒有其他解決方法。