我在数据库保存的一个字段“c_time”是“datetime”类型的。
然后在java类里定义:private java.util.Date cTime;
从数据库读数据:cTime = rs.getDate("c_time");
把数据放入一个JSONObject:jresult.add("CTIME",cTime);
然后编译的时候报异常:net.sf.json.JSONException: java.lang.reflect.InvocationTargetException
at net.sf.json.JSONObject._fromBean(JSONObject.java:953)
at net.sf.json.JSONObject.fromObject(JSONObject.java:192)
at net.sf.json.JSONObject._processValue(JSONObject.java:2774)
at net.sf.json.JSONObject.processValue(JSONObject.java:2833)
at net.sf.json.JSONObject.element(JSONObject.java:1871)
at net.sf.json.JSONObject.element(JSONObject.java:1849)
at net.sf.json.JSONObject.put(JSONObject.java:2466)
at com.cn.mzba.family.Consum.getConsumList(Consum.java:62)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at flex.messaging.services.remoting.adapters.JavaAdapter.invoke(JavaAdapter.java:421)
at flex.messaging.services.RemotingService.serviceMessage(RemotingService.java:183)
at flex.messaging.MessageBroker.routeMessageToService(MessageBroker.java:1503)
at flex.messaging.endpoints.AbstractEndpoint.serviceMessage(AbstractEndpoint.java:884)
at flex.messaging.endpoints.amf.MessageBrokerFilter.invoke(MessageBrokerFilter.java:121)
at flex.messaging.endpoints.amf.LegacyFilter.invoke(LegacyFilter.java:158)
at flex.messaging.endpoints.amf.SessionFilter.invoke(SessionFilter.java:44)
at flex.messaging.endpoints.amf.BatchProcessFilter.invoke(BatchProcessFilter.java:67)
at flex.messaging.endpoints.amf.SerializationFilter.invoke(SerializationFilter.java:146)
at flex.messaging.endpoints.BaseHTTPEndpoint.service(BaseHTTPEndpoint.java:278)
at flex.messaging.MessageBrokerServlet.service(MessageBrokerServlet.java:322)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.commons.beanutils.PropertyUtilsBean.invokeMethod(PropertyUtilsBean.java:1773)
at org.apache.commons.beanutils.PropertyUtilsBean.getSimpleProperty(PropertyUtilsBean.java:1132)
at org.apache.commons.beanutils.PropertyUtilsBean.getNestedProperty(PropertyUtilsBean.java:686)
at org.apache.commons.beanutils.PropertyUtilsBean.getProperty(PropertyUtilsBean.java:715)
at org.apache.commons.beanutils.PropertyUtils.getProperty(PropertyUtils.java:290)
at net.sf.json.JSONObject._fromBean(JSONObject.java:928)
... 35 more
Caused by: java.lang.IllegalArgumentException
at java.sql.Date.getHours(Unknown Source)
... 45 more起先定义的时候是private Date cTime,报异常,在网上找答案的时候,提示要private java.util.Date cTime定义,结果还是不行,希望大家帮忙,非常感谢。

解决方案 »

  1.   

    JSONObject没有ADD方法啊。从数据库里取出的时候能不能正常打印出来。还有JSON的7个驱动包是不是全部导入进去项目里去了。
      

  2.   


    写错了。是put方法。全部都加进去了,不然会报错。
      

  3.   

    把你查出的数据封装成一个实体类
      在把list放着类里转一下就可以了
           package com.dmp.cms.util;import java.util.ArrayList;
    import java.util.List;public class ListRange<T> {
    boolean success;
    String message;
    long totalSize;
    List<T> list; public ListRange() {
    this.totalSize = 0;
    this.list = new ArrayList<T>();
    } public long getTotalSize() {
    return totalSize;
    } public void setTotalSize(long totalSize) {
    this.totalSize = totalSize;
    } public List<T> getList() {
    return list;
    } public void setList(List<T> list) {
    this.list = list;
    } public boolean isSuccess() {
    return success;
    } public void setSuccess(boolean success) {
    this.success = success;
    } public String getMessage() {
    return message;
    } public void setMessage(String message) {
    this.message = message;
    }}
      

  4.   

    在我这里是由于java.util.Date 和 java.sql.Date的转换问题造成的.
    好像是由于在json里要输出的实体类中的一个属性类型为java.sql.Date.我将其改变成了java.util.Date.就好了.
    另附上:java.util.Date 转换为 java.sql.Datehttp://blog.csdn.net/repoem/article/details/7073824
      

  5.   


    如何把java.sql.Date.改变成了java.util.Date?,json中如何体现?初学json,问的有点傻,还请见谅