1,问题现象
net.sf.json.JSONException: java.lang.reflect.InvocationTargetException
net.sf.json.JSONObject._fromBean(JSONObject.java:738)
net.sf.json.JSONObject.fromObject(JSONObject.java:182)
net.sf.json.JSONObject._processValue(JSONObject.java:2426)
net.sf.json.JSONObject._setInternal(JSONObject.java:2447)
net.sf.json.JSONObject.setValue(JSONObject.java:1189)
net.sf.json.JSONObject._fromBean(JSONObject.java:725)
net.sf.json.JSONObject.fromObject(JSONObject.java:182)
net.sf.json.JSONArray._processValue(JSONArray.java:2294)
net.sf.json.JSONArray.processValue(JSONArray.java:2325)
net.sf.json.JSONArray.addValue(JSONArray.java:2312)
net.sf.json.JSONArray._fromCollection(JSONArray.java:841)
net.sf.json.JSONArray.fromObject(JSONArray.java:137)
net.sf.json.JSONArray.fromObject(JSONArray.java:120)
com.knowledge.data.action.DirectoryAction.queryDirectory(DirectoryAction.java:29)
2,问题分析
这是因为bean里有Date字段,且从数据库里读出来的是java.sql.Date赋值给了java.util.Date,转化成JSONArray时出错;
3,问题解决方法
可以在从数据库读出Date 时直接写成:new java.util.Date(rs.getDate("date").getTime),这样就不会出错了;