데이터베이스 컬럼이 DATE 타입인 경우 jsonView 관련 오류
- 작성자 :
- 이*민
- 작성일 :
- 2014-08-12 10:32:54
- 조회수 :
- 1,903
- 구분 :
- 개발환경
- 진행상태 :
- 완료
Q
데이터베이스 컬럼이 DATE 타입인 경우 jsonView 변환 시 오류가 발생합니다.
해당 컬럼을 TO_CHAR(DATE) 로 SQL을 변경하면 문제가 없으나, 근본적 해결은 아닌듯 하여,
문의를 드립니다.
mybatis 에서는 조회 결과를 저장하는 VO 대신, Map<String, Object> 로 받아서 처리 하고 있습니다.
사용중인 jsonView 관련 라이브러리 :
<dependency>
<groupId>net.sf.json-lib</groupId>
<artifactId>json-lib-ext-spring</artifactId>
<version>1.0.2</version>
</dependency>
<dependency>
<groupId>commons-beanutils</groupId>
<artifactId>commons-beanutils</artifactId>
<version>1.7.0</version>
</dependency>
------------- 오류내용
심각: Servlet.service() for servlet [action] in context with path [] threw exception [Request processing failed; nested exception is net.sf.json.JSONException: java.lang.reflect.InvocationTargetException] with root cause
java.lang.IllegalArgumentException
at java.sql.Date.getHours(Date.java:182)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
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)
at net.sf.json.JSONObject.fromObject(JSONObject.java:192)
at net.sf.json.JSONObject._processValue(JSONObject.java:2774)
at net.sf.json.JSONObject._setInternal(JSONObject.java:2798)
at net.sf.json.JSONObject.setValue(JSONObject.java:1507)
해당 컬럼을 TO_CHAR(DATE) 로 SQL을 변경하면 문제가 없으나, 근본적 해결은 아닌듯 하여,
문의를 드립니다.
mybatis 에서는 조회 결과를 저장하는 VO 대신, Map<String, Object> 로 받아서 처리 하고 있습니다.
사용중인 jsonView 관련 라이브러리 :
<dependency>
<groupId>net.sf.json-lib</groupId>
<artifactId>json-lib-ext-spring</artifactId>
<version>1.0.2</version>
</dependency>
<dependency>
<groupId>commons-beanutils</groupId>
<artifactId>commons-beanutils</artifactId>
<version>1.7.0</version>
</dependency>
------------- 오류내용
심각: Servlet.service() for servlet [action] in context with path [] threw exception [Request processing failed; nested exception is net.sf.json.JSONException: java.lang.reflect.InvocationTargetException] with root cause
java.lang.IllegalArgumentException
at java.sql.Date.getHours(Date.java:182)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
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)
at net.sf.json.JSONObject.fromObject(JSONObject.java:192)
at net.sf.json.JSONObject._processValue(JSONObject.java:2774)
at net.sf.json.JSONObject._setInternal(JSONObject.java:2798)
at net.sf.json.JSONObject.setValue(JSONObject.java:1507)
A
안녕하세요. 표준프레임워크센터입니다.
net.sf.json-lib의 jsonView대신 MappingJacksonJsonView를 이용하여 jsonView를 설정해보시기 바랍니다.
감사합니다.
net.sf.json-lib의 jsonView대신 MappingJacksonJsonView를 이용하여 jsonView를 설정해보시기 바랍니다.
감사합니다.