`

Positioned Update not supported异常解决方法

    博客分类:
  • JSON
阅读更多
今天在SSH项目中遇到运用JSON插件,产生如下异常:
2008-11-15 12:58:21 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet default threw exception
java.sql.SQLException: Positioned Update not supported.
	at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1055)
	at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956)
	at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:926)
	at com.mysql.jdbc.ResultSetImpl.getCursorName(ResultSetImpl.java:2050)
	at com.mchange.v2.c3p0.impl.NewProxyResultSet.getCursorName(NewProxyResultSet.java:545)
	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 com.googlecode.jsonplugin.JSONWriter.bean(JSONWriter.java:224)
	at com.googlecode.jsonplugin.JSONWriter.process(JSONWriter.java:157)
	at com.googlecode.jsonplugin.JSONWriter.value(JSONWriter.java:123)
	at com.googlecode.jsonplugin.JSONWriter.add(JSONWriter.java:321)
	at com.googlecode.jsonplugin.JSONWriter.bean(JSONWriter.java:225)
	at com.googlecode.jsonplugin.JSONWriter.process(JSONWriter.java:157)
	at com.googlecode.jsonplugin.JSONWriter.value(JSONWriter.java:123)
	at com.googlecode.jsonplugin.JSONWriter.add(JSONWriter.java:321)
	at com.googlecode.jsonplugin.JSONWriter.bean(JSONWriter.java:225)
	at com.googlecode.jsonplugin.JSONWriter.process(JSONWriter.java:157)
	at com.googlecode.jsonplugin.JSONWriter.value(JSONWriter.java:123)
	at com.googlecode.jsonplugin.JSONWriter.add(JSONWriter.java:321)
	at com.googlecode.jsonplugin.JSONWriter.bean(JSONWriter.java:225)
	at com.googlecode.jsonplugin.JSONWriter.process(JSONWriter.java:157)
	at com.googlecode.jsonplugin.JSONWriter.value(JSONWriter.java:123)
	at com.googlecode.jsonplugin.JSONWriter.add(JSONWriter.java:321)
	at com.googlecode.jsonplugin.JSONWriter.bean(JSONWriter.java:225)
	at com.googlecode.jsonplugin.JSONWriter.process(JSONWriter.java:157)
	at com.googlecode.jsonplugin.JSONWriter.value(JSONWriter.java:123)
	at com.googlecode.jsonplugin.JSONWriter.add(JSONWriter.java:321)
	at com.googlecode.jsonplugin.JSONWriter.bean(JSONWriter.java:225)
	at com.googlecode.jsonplugin.JSONWriter.process(JSONWriter.java:157)
	at com.googlecode.jsonplugin.JSONWriter.value(JSONWriter.java:123)
	at com.googlecode.jsonplugin.JSONWriter.add(JSONWriter.java:321)
	at com.googlecode.jsonplugin.JSONWriter.bean(JSONWriter.java:225)
	at com.googlecode.jsonplugin.JSONWriter.process(JSONWriter.java:157)
	at com.googlecode.jsonplugin.JSONWriter.value(JSONWriter.java:123)
	at com.googlecode.jsonplugin.JSONWriter.add(JSONWriter.java:321)
	at com.googlecode.jsonplugin.JSONWriter.bean(JSONWriter.java:225)
	at com.googlecode.jsonplugin.JSONWriter.process(JSONWriter.java:157)
	at com.googlecode.jsonplugin.JSONWriter.value(JSONWriter.java:123)
	at com.googlecode.jsonplugin.JSONWriter.add(JSONWriter.java:321)
	at com.googlecode.jsonplugin.JSONWriter.bean(JSONWriter.java:225)
	at com.googlecode.jsonplugin.JSONWriter.process(JSONWriter.java:157)
	at com.googlecode.jsonplugin.JSONWriter.value(JSONWriter.java:123)
	at com.googlecode.jsonplugin.JSONWriter.write(JSONWriter.java:91)
	at com.googlecode.jsonplugin.JSONUtil.serialize(JSONUtil.java:90)
	at com.googlecode.jsonplugin.JSONResult.execute(JSONResult.java:173)
	at com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:348)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:253)
	at zz.WebNews.util.AuthorizationInterceptor.intercept(AuthorizationInterceptor.java:62)
	at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
	at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
	at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
	at org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:50)
	at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:504)
	at org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:419)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at zz.WebNews.util.AuthFilter.doFilter(AuthFilter.java:62)
	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:175)
	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:286)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
	at java.lang.Thread.run(Unknown Source)


该异常有两种解决方法:
第一:在struts.xml文件的配置中排除不要被JSON序列化的属性,例如:
<action name="functions" class="getFunctionsAction" method="functions_getList">
    		<result type="json">
    		 <param name="excludeProperties">functionsService</param>
    		</result>
    	</action>

其中functionsService就是不要被JSON序列化的属性。
第二:在Action文件中去除不要被JSON序列化的属性的get()方法,例如:
public IFunctionsService getFunctionsService() {
		return functionsService;
	}

这样做functionsService同样不会被JSON序列化。

说明:
带有transient修饰符与没有Getter方法的字段(field)都不会被串行化为JSON。
5
2
分享到:
评论
3 楼 天枢贪狼 2011-11-02  
感谢楼主 算是帮了大忙 初学json 发现好多不懂
2 楼 bingxue2332 2009-12-17  
ynstudio 写道

		conf.setJsonPropertyFilter(new PropertyFilter(){
		    public boolean apply(Object source, String name, Object value) {
		    	if(source.getClass().getName().indexOf("$$EnhancerByCGLIB$$")>0){
		    		try {
						if(source.getClass().getSuperclass().getField(name) != null)return false;
					} catch (SecurityException e) {
						e.printStackTrace();
					} catch (NoSuchFieldException e) {
						e.printStackTrace();
					}
					return true;
		    	}
		    	return false;
		    }
		});
....
JSONArray jsonArr = JSONArray.fromObject(xxxxx,conf);


我加入了上面的代码但是好像不能生效 ?
1 楼 ynstudio 2009-09-28  

		conf.setJsonPropertyFilter(new PropertyFilter(){
		    public boolean apply(Object source, String name, Object value) {
		    	if(source.getClass().getName().indexOf("$$EnhancerByCGLIB$$")>0){
		    		try {
						if(source.getClass().getSuperclass().getField(name) != null)return false;
					} catch (SecurityException e) {
						e.printStackTrace();
					} catch (NoSuchFieldException e) {
						e.printStackTrace();
					}
					return true;
		    	}
		    	return false;
		    }
		});
....
JSONArray jsonArr = JSONArray.fromObject(xxxxx,conf);

相关推荐

    My sql 驱动程序

    解决这些问题通常需要检查配置参数、数据库权限设置以及驱动程序版本是否合适。 总之,MySQL驱动程序是Java应用程序与MySQL数据库之间的桥梁,理解和正确使用它是进行数据库操作的基础。了解如何添加、注册和使用...

    IBM MQ错误码大全

    2034: Browse cursor not positioned on message.** - **含义**:浏览光标未定位在消息上。 - **解决方案**:确保浏览光标正确地定位在所需消息上。 **33. 2035: Not authorized for access.** - **含义**:访问未...

    Stack与Align、Stack与Positioned、Flutter AspectRatio、Card卡片、Wrap

    此资源介绍的相关内容有:页面布局 Stack层叠组件、Stack与Align、Stack与Positioned实现定位布局、Flutter AspectRatio、Card卡片组件、卡片图文列表、Wrap组件。 适合新手学习移动端开发,也适合老司机参考。

    东芝电梯故障代码合集.pdf

    "东芝电梯故障代码合集.pdf" ...本资源摘要信息涵盖了东芝电梯故障代码合集的方方面面,包括故障代码列表、故障码出错检查主题、故障码处理方法等,旨在帮助用户快速查找和解决东芝电梯的故障问题。

    flutter全局悬浮按钮方法及代码.docx

    Flutter 全局悬浮按钮方法及代码 Flutter 是一个流行的移动应用程序开发框架,具有跨平台的特点。悬浮按钮是 Flutter 应用程序中常见的交互元素,通常用于提供快速访问某些功能的入口。今天,我们将探讨如何在 ...

    Flutter布局组件之层叠组件Stack和Positioned

    本文将深入探讨Flutter的层叠布局组件——Stack和Positioned,以及它们如何实现类似Web中的绝对定位和Android中的Frame布局。 Stack组件是Flutter中用于创建堆叠布局的一个关键工具,它允许子组件按照声明的顺序堆...

    positioned-relative-to-crx插件

    开发者经常需要了解一个元素在其父容器中的确切位置,以便调整样式,解决布局问题,或者实现复杂的交互效果。 此插件的工作原理是,当你在Chrome的开发者工具中选择一个元素时,它会立即显示该元素相对于其最近的...

    wifi_positioned:wifi本地化演示

    KNN算法是机器学习中的基础分类与回归方法,在Wi-Fi定位中用于找出与当前RSSI指纹最相似的已知位置。它的工作原理是,计算当前指纹与数据库中所有指纹的距离,选取K个最接近的指纹,然后根据这K个指纹所在的位置...

    positioned-io-preview-读取和写入偏移-Rust开发

    positioned-io这个板条箱允许您指定读写偏移量,而无需更改文件中的当前位置。 这类似于preposition-io。此板条箱可让您指定读写偏移量,而无需更改文件中的当前位置。 这类似于C中的pread()和pwrite()。这种...

    css设置z-index 失效的解决方法

    在CSS中,`z-index`仅适用于定位元素(positioned elements),这意味着元素的`position`属性不能是默认的`static`。当一个元素的`position`属性被设置为`relative`、`absolute`或`fixed`时,它将获得一个堆叠上下文...

    英语语音发音部位及方法.doc

    〔The tongue is positioned lower in the mouth than for /u:. The lips are rounded, but not as much.〕 第三章 辅音〔Consonant〕发音方法一、爆破音〔Plosive〕1. 清辅音:/p/, /t/, /k/——发音时,气流在...

    futureinternet-10-00020-v2.pdf

    In 2017, Gartner positioned blockchain close to the peak of inflated expectations, acknowledging the enthusiasm for this technology that is now largely discussed by media. In this scenario, the risk ...

    stbc.rar_The Signal_stbc_ui_start

    The cursor needs to be positioned on these for detailed explanation. The main file is "runsim.m". In these simulations the SISO option is not explicitly given. This is because the SISO result for a ...

    兼容IE678前端hack.zip

    描述中提到的“阅读详细的使用方法文档”强调了在使用这些兼容性解决方案之前,理解其工作原理和应用方式的重要性。这通常包括如何在HTML或CSS代码中正确引入Hack,以及何时和如何使用它们。同时,它暗示了这个...

    Sublime Text Build 3124 x64 Setup.exe

    Fixed Replace not working as expected in conjunction with regex look behinds Fixed build systems being unable to use "file_patterns" with the exec command Corrected tab overlap on HiDPI Windows and ...

    纯CSS实现“文本溢出截断省略”的几种方法

    另一种多行文本的解决方案是利用伪元素和绝对定位: ```css .positioned-ellipsis { position: relative; overflow: hidden; line-height: 18px; height: 36px; } .positioned-ellipsis::after { content: '....

    IE兼容性插件

    PIE,全称为“ Positioned Absolutely, Everything Else”, 是一种专门针对IE浏览器的CSS3兼容性解决方案。PIE插件由Microsoft的开发人员Harry Roberts创建,它的核心功能是通过JavaScript和VML(Vector Markup ...

    c#primer plus附录

    more than one operator can operate on an operand (because the operators are positioned next to the operand, one on either side), this operand is first processed by the operator of the higher ...

    JQuery 获得绝对,相对位置的坐标方法

    与 `offset()` 不同,`position()` 方法获取的是元素相对于其最近的定位(positioned)祖先元素的相对位置,而不是相对于文档。如果元素没有定位的父元素,那么它相对于 `body` 元素。 在示例代码中: ```...

Global site tag (gtag.js) - Google Analytics