oracle JDBC jar导致错误问题!

原来项目中用的数据库连接池是 hibernate自带的dbcp,项目run的还行。

过了一段时间之后想优化一下项目,想使用 spring的数据源部分,把数据库链接放到容器当中建立数据源 

<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
       <property name="jndiName">
           <value>java:comp/env/DS</value>
       </property>
    </bean>

配上之后,系统总是抛出异常:

java.lang.AbstractMethodError: oracle.jdbc.driver.OracleResultSetImpl.getBlob(Ljava/lang/String;)Ljava/sql/Blob;
 at org.apache.commons.dbcp.DelegatingResultSet.getBlob(DelegatingResultSet.java:526)
 at net.sf.hibernate.type.BlobType.get(BlobType.java:32)
 at net.sf.hibernate.type.NullableType.nullSafeGet(NullableType.java:62)
 at net.sf.hibernate.type.NullableType.nullSafeGet(NullableType.java:53)
 at net.sf.hibernate.type.AbstractType.hydrate(AbstractType.java:66)
 at net.sf.hibernate.loader.Loader.hydrate(Loader.java:686)
 at net.sf.hibernate.loader.Loader.loadFromResultSet(Loader.java:627)
 at net.sf.hibernate.loader.Loader.instanceNotYetLoaded(Loader.java:586)
 at net.sf.hibernate.loader.Loader.getRow(Loader.java:501)
 at net.sf.hibernate.loader.Loader.getRowFromResultSet(Loader.java:213)
 at net.sf.hibernate.loader.Loader.doQuery(Loader.java:281)
 at net.sf.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:133)
 at net.sf.hibernate.loader.Loader.doList(Loader.java:1033)
 at net.sf.hibernate.loader.Loader.list(Loader.java:1024)
 at net.sf.hibernate.hql.QueryTranslator.list(QueryTranslator.java:854)
 at net.sf.hibernate.impl.SessionImpl.find(SessionImpl.java:1544)
 at net.sf.hibernate.impl.QueryImpl.list(QueryImpl.java:39)
 at org.springframework.orm.hibernate.HibernateTemplate$19.doInHibernate(HibernateTemplate.java:645)
 at org.springframework.orm.hibernate.HibernateTemplate.execute(HibernateTemplate.java:312)
 at org.springframework.orm.hibernate.HibernateTemplate.find(HibernateTemplate.java:631)
 at org.springframework.orm.hibernate.HibernateTemplate.find(HibernateTemplate.java:610)
。。。。
 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:585)
 at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:310)
 at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:155)
 at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:122)
 at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:57)
 at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:144)
 at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:174)
 at $Proxy4.userLogin(Unknown Source)
 。。。。。
 at org.springframework.web.struts.DelegatingActionProxy.execute(DelegatingActionProxy.java:105)
 at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:421)
 at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:226)
 at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1164)
 at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:415)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
 at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
 at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
 at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
 at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
 at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
 at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
 at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
 at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
 at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
 at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
 at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
 at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
 at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
 at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
 at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
 at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
 at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
 at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
 at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
 at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
 at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
 at java.lang.Thread.run(Thread.java:595)

2009-06-16 10:24:06 StandardWrapperValve[action]: Servlet.service() for servlet action threw exception
java.lang.AbstractMethodError: oracle.jdbc.driver.OracleResultSetImpl.getBlob(Ljava/lang/String;)Ljava/sql/Blob;
 at org.apache.commons.dbcp.DelegatingResultSet.getBlob(DelegatingResultSet.java:526)
 at net.sf.hibernate.type.BlobType.get(BlobType.java:32)
 at net.sf.hibernate.type.NullableType.nullSafeGet(NullableType.java:62)
 at net.sf.hibernate.type.NullableType.nullSafeGet(NullableType.java:53)
 at net.sf.hibernate.type.AbstractType.hydrate(AbstractType.java:66)
 at net.sf.hibernate.loader.Loader.hydrate(Loader.java:686)
 at net.sf.hibernate.loader.Loader.loadFromResultSet(Loader.java:627)
 at net.sf.hibernate.loader.Loader.instanceNotYetLoaded(Loader.java:586)
 at net.sf.hibernate.loader.Loader.getRow(Loader.java:501)
 at net.sf.hibernate.loader.Loader.getRowFromResultSet(Loader.java:213)
 at net.sf.hibernate.loader.Loader.doQuery(Loader.java:281)
 at net.sf.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:133)
 at net.sf.hibernate.loader.Loader.doList(Loader.java:1033)
 at net.sf.hibernate.loader.Loader.list(Loader.java:1024)
 at net.sf.hibernate.hql.QueryTranslator.list(QueryTranslator.java:854)
 at net.sf.hibernate.impl.SessionImpl.find(SessionImpl.java:1544)
 at net.sf.hibernate.impl.QueryImpl.list(QueryImpl.java:39)
 at org.springframework.orm.hibernate.HibernateTemplate$19.doInHibernate(HibernateTemplate.java:645)
 at org.springframework.orm.hibernate.HibernateTemplate.execute(HibernateTemplate.java:312)
 at org.springframework.orm.hibernate.HibernateTemplate.find(HibernateTemplate.java:631)
 at org.springframework.orm.hibernate.HibernateTemplate.find(HibernateTemplate.java:610)
。。。。。
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

 

后来终于在网上找到了答案,至于是那位高手,俺忘了,不好意思啊,见谅!:-)

网友高手指出,是由于oracle的jar所导致的问题。经本人比较oracle 9i 的jar如下:

 ————————————————————————————————                            

oracle自带的jar:  classes111.jar      952KB

                          classes12.jar        1.07MB

—————————————————————————————————

从官方下载的jar:  classes12.jar         1.35MB

—————————————————————————————————

 

换完oracle的jar 问题解决。那位高手或网友对这个问题做具体分析了或有啥好的文章、看法,希望留个评论。俺想再深入看看。:-)

                 

 最后,感谢那位不知名的网友!特别是你帮俺把问题解决了,没把你的网址记住,抱歉!

                                                       (浪费了好长时间啊,%>_<%)

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值