论坛首页 Java版 Spring

spring配置文件中引用不同的DataSource类引起的问题

浏览 1671 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
最后更新时间:2007-12-25
项目旧版用struts2+spring+hibernate做的,现在新改造是在原基础上加上extjs2,其中ext的数据源使用json格式,通过json-plugins实现,不过在改造的过程中关于DataSource发现一些问题,请大家指导一下。

原配置:
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
  <property name="driverClassName" value="com.mysql.jdbc.Driver" />
  <property name="url" value="jdbc:mysql://localhost:3306/test" />
  <property name="username" value="root" />
  <property name="password" value="" />
</bean>


在结合json-plugins使用后,抛出异常:
java.lang.IllegalAccessException: Class com.googlecode.jsonplugin.JSONWriter can not access a member of class org.apache.commons.dbcp.PoolingDataSource$PoolGuardConnectionWrapper with modifiers "public"


于是我改用DataSource,用spring本身自带的,如下:
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
  <property name="driverClassName" value="com.mysql.jdbc.Driver" />
  <property name="url" value="jdbc:mysql://localhost:3306/test" />
  <property name="username" value="root" />
  <property name="password" value="" />
</bean>


还是抛出一个异常:
java.sql.SQLException: Positioned Update not supported.
	at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1056)
	at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:957)
	at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:927)
	at com.mysql.jdbc.ResultSetImpl.getCursorName(ResultSetImpl.java:2043)
	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:213)


貌似问题跟驱动有关,不知道大家有无遇到过,谢谢解答。
   
最后更新时间:2007-12-25
参考了http://www.javaeye.com/post/369234的说明,我现在用的json-plugin版本已经是0.19,按理说已经解决了这个问题,不过现在还是发生了。
   
0 请登录后投票
最后更新时间:2007-12-27
我也遇到同样的问题,不知楼主有没有得到解决?
   
0 请登录后投票
最后更新时间:2007-12-27
esprit 写道
我也遇到同样的问题,不知楼主有没有得到解决?


还是不能解决问题,不过我已经用extjs2+dwr2+spring+hibernate改造了一部分了。。。
   
0 请登录后投票
最后更新时间:2007-12-27
那是由于spring采用了cglib动态代理的对象修改了原有datasource的类,注意:class org.apache.commons.dbcp.PoolingDataSource$PoolGuardConnectionWrapper 而不是
class org.apache.commons.dbcp.PoolingDataSource

这个类就是cglib自己生成的
   
0 请登录后投票
最后更新时间:2008-01-02
楼主有没解决,我也想知道答案。
   
0 请登录后投票
最后更新时间:2008-04-04
我也遇到这个问题,,用别人的东西真是不爽.....不用它了.用DWR.我晕
   
0 请登录后投票
最后更新时间:2008-04-07
用JNDI
再试试呢??

感觉,好象是这个AJAX,每次保存东西,分段了??
有没有大字段的哟???
   
0 请登录后投票
最后更新时间:2008-04-09
最近也碰到类似问题, 是否已经有了解决方案?
   
0 请登录后投票
最后更新时间:2008-04-09
我没碰到过.真是幸运呀
   
0 请登录后投票
论坛首页 Java版 Spring

跳转论坛:
JavaEye推荐