2013-04-10 7 views
0

Java Web에서 JSON을 사용하려고합니다. JSONArray.fromObject()를 호출하여 JSONArray에 목록을 변환하지만, 다음과 같은 예외를 던져 : 온라인에 따라,JSON java.sql.SQLException : 위치 지정된 업데이트가 지원되지 않습니다.

java.sql.SQLException: Positioned Update not supported. 
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1075) 
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:989) 
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:984) 
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:929) 
    at com.mysql.jdbc.ResultSetImpl.getCursorName(ResultSetImpl.java:2130) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
    at java.lang.reflect.Method.invoke(Method.java:597) 
    at org.apache.commons.beanutils.PropertyUtilsBean.invokeMethod(PropertyUtilsBean.java:2170) 
    at org.apache.commons.beanutils.PropertyUtilsBean.getSimpleProperty(PropertyUtilsBean.java:1332) 
    at org.apache.commons.beanutils.PropertyUtilsBean.getNestedProperty(PropertyUtilsBean.java:770) 
    at org.apache.commons.beanutils.PropertyUtilsBean.getProperty(PropertyUtilsBean.java:846) 
    at org.apache.commons.beanutils.PropertyUtils.getProperty(PropertyUtils.java:426) 
    at net.sf.json.JSONObject._fromBean(JSONObject.java:918) 
    at net.sf.json.JSONObject.fromObject(JSONObject.java:168) 
    at net.sf.json.AbstractJSON._processValue(AbstractJSON.java:265) 
    at net.sf.json.JSONObject._processValue(JSONObject.java:2808) 
    at net.sf.json.JSONObject.processValue(JSONObject.java:2874) 
    at net.sf.json.JSONObject.setInternal(JSONObject.java:2889) 
    at net.sf.json.JSONObject.setValue(JSONObject.java:1577) 
    at net.sf.json.JSONObject._fromBean(JSONObject.java:934) 
    at net.sf.json.JSONObject.fromObject(JSONObject.java:168) 
    at net.sf.json.AbstractJSON._processValue(AbstractJSON.java:265) 
    at net.sf.json.JSONObject._processValue(JSONObject.java:2808) 
    at net.sf.json.JSONObject.processValue(JSONObject.java:2874) 
    at net.sf.json.JSONObject.setInternal(JSONObject.java:2889) 
    at net.sf.json.JSONObject.setValue(JSONObject.java:1577) 
    at net.sf.json.JSONObject._fromBean(JSONObject.java:934) 
    at net.sf.json.JSONObject.fromObject(JSONObject.java:168) 
    at net.sf.json.AbstractJSON._processValue(AbstractJSON.java:265) 
    at net.sf.json.JSONObject._processValue(JSONObject.java:2808) 
    at net.sf.json.JSONObject.processValue(JSONObject.java:2874) 
    at net.sf.json.JSONObject.setInternal(JSONObject.java:2889) 
    at net.sf.json.JSONObject.setValue(JSONObject.java:1577) 
    at net.sf.json.JSONObject._fromBean(JSONObject.java:934) 
    at net.sf.json.JSONObject.fromObject(JSONObject.java:168) 
    at net.sf.json.AbstractJSON._processValue(AbstractJSON.java:265) 
    at net.sf.json.JSONObject._processValue(JSONObject.java:2808) 
    at net.sf.json.JSONObject.processValue(JSONObject.java:2874) 
    at net.sf.json.JSONObject.setInternal(JSONObject.java:2889) 
    at net.sf.json.JSONObject.setValue(JSONObject.java:1577) 
    at net.sf.json.JSONObject._fromBean(JSONObject.java:934) 
    at net.sf.json.JSONObject.fromObject(JSONObject.java:168) 
    at net.sf.json.AbstractJSON._processValue(AbstractJSON.java:265) 
    at net.sf.json.JSONObject._processValue(JSONObject.java:2808) 
    at net.sf.json.JSONObject.processValue(JSONObject.java:2874) 
    at net.sf.json.JSONObject.setInternal(JSONObject.java:2889) 
    at net.sf.json.JSONObject.setValue(JSONObject.java:1577) 
    at net.sf.json.JSONObject._fromBean(JSONObject.java:934) 
    at net.sf.json.JSONObject.fromObject(JSONObject.java:168) 
    at net.sf.json.AbstractJSON._processValue(AbstractJSON.java:265) 
    at net.sf.json.JSONObject._processValue(JSONObject.java:2808) 
    at net.sf.json.JSONObject.processValue(JSONObject.java:2874) 
    at net.sf.json.JSONObject.setInternal(JSONObject.java:2889) 
    at net.sf.json.JSONObject.setValue(JSONObject.java:1577) 
    at net.sf.json.JSONObject._fromBean(JSONObject.java:934) 
    at net.sf.json.JSONObject.fromObject(JSONObject.java:168) 
    at net.sf.json.AbstractJSON._processValue(AbstractJSON.java:265) 
    at net.sf.json.JSONObject._processValue(JSONObject.java:2808) 
    at net.sf.json.JSONObject.processValue(JSONObject.java:2874) 
    at net.sf.json.JSONObject.setInternal(JSONObject.java:2889) 
    at net.sf.json.JSONObject.setValue(JSONObject.java:1577) 
    at net.sf.json.JSONObject._fromBean(JSONObject.java:934) 
    at net.sf.json.JSONObject.fromObject(JSONObject.java:168) 
    at net.sf.json.AbstractJSON._processValue(AbstractJSON.java:265) 
    at net.sf.json.JSONObject._processValue(JSONObject.java:2808) 
    at net.sf.json.JSONObject.processValue(JSONObject.java:2874) 
    at net.sf.json.JSONObject.setInternal(JSONObject.java:2889) 
    at net.sf.json.JSONObject.setValue(JSONObject.java:1577) 
    at net.sf.json.JSONObject._fromBean(JSONObject.java:934) 
    at net.sf.json.JSONObject.fromObject(JSONObject.java:168) 
    at net.sf.json.AbstractJSON._processValue(AbstractJSON.java:265) 
    at net.sf.json.JSONArray._processValue(JSONArray.java:2514) 
    at net.sf.json.JSONArray.processValue(JSONArray.java:2539) 
    at net.sf.json.JSONArray.addValue(JSONArray.java:2526) 
    at net.sf.json.JSONArray._fromCollection(JSONArray.java:1057) 
    at net.sf.json.JSONArray.fromObject(JSONArray.java:123) 
    at org.vclub.model.json.Page2Json.getJsonFromList(Page2Json.java:11) 
    at org.vclub.controller.TopicController.loadMoreTopic(TopicController.java:91) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
    at java.lang.reflect.Method.invoke(Method.java:597) 
    at org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:185) 
    at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:126) 
    at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:100) 
    at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:502) 
    at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:465) 
    at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:80) 
    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:863) 
    at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:792) 
    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:851) 
    at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:767) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:637) 
    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.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88) 
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) 
    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:127) 
    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:298) 
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:857) 
    at org.apache 
.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588) 
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489) 
    at java.lang.Thread.run(Thread.java:619) 

을 사실은 두 가지 솔루션의 struts.xml을 수정하거나 DAO의 getter 메소드를 삭제가 말했다 전지. 나는 스트럿을 사용하지 않았기 때문에 서비스중인 DAO 필드의 getter 메소드를 삭제하기로했습니다. 그러나 여전히 작동하지 않습니다. 나는 여기에서 도움을 찾고있다. 미리 감사드립니다

답변

0

그것은 최대 절전 모드 지연로드 문제처럼 보입니다.

포맷하려는 객체가 일종의 최대 절전 모드 클래스이고 해당 클래스를 지연로드로 구성하면이 문제가 발생합니다. 동적 (클래스를 생성하는 서브 클래스의 방법을 사용하여)이 모델 클래스, 그 하위 클래스 "hibernateLazyInitializer"같은 새로운 속성을 포함을 생성에

이유는 최대 절전 모드 사용 CGLIB입니다. 그런 다음 JSONObject는 이러한 새로운 속성을 직렬화하려고 시도합니다. 그런 다음 예외가 발생합니다.

당신은이 문제를 해결하려면 다음 코드를 추가 할 수 있습니다

JsonConfig cfg = new JsonConfig(); 
cfg.setExcludes(new String[]{"handler","hibernateLazyInitializer"}); 
JSONObject json = JSONObject.fromObject(obj,cfg); 
관련 문제