C3P0连接池系统启动时初始化报错!!!求大神指点一二

问题描述

importjava.sql.Connection;importjava.sql.SQLException;importorg.apache.log4j.Logger;importcom.mchange.v2.c3p0.ComboPooledDataSource;importcom.mchange.v2.c3p0.DataSources;importcom.mchange.v2.c3p0.PooledDataSource;importcom.ufmsoft.factory.ResourceUtil;/***@ClassName:DataSourceFactory*@Description:数据源工厂类*/publicclassDataSourceFactory{privatestaticfinalLoggerlogger=Logger.getLogger(DataSourceFactory.class);/***全局数据源*/privatestaticComboPooledDataSourceds=null;static{try{ds=newComboPooledDataSource(“orcl”);}catch(Exceptione){logger.error("初始实例化数据源出现错误,请确认配置文件存在和正确!");e.printStackTrace();}}/***@Title:getInstance*@Description:实例化数据源*/publicstaticfinalvoidgetInstance(){try{DataSources.destroy(ds);//关闭datasourceds=null;ds=newComboPooledDataSource(ResourceUtil.getDatasourceName());}catch(Exceptione){logger.error("实例化数据源出现错误,请确认配置文件存在和正确!");e.printStackTrace();}}/***@Title:closeDataSource*@Description:关闭数据源*@throwsException*/publicstaticvoidcloseDataSource()throwsException{ds.getClass().getMethod("close").invoke(ds);}/***@Title:getConnection*@Description:获取数据链接*@returnConnection*@throwsException*/publicstaticConnectiongetConnection(){System.out.println(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>!!!!!!!!");try{returnds.getConnection();}catch(SQLExceptione){logger.error("获取数据链接失败>>>>>>>>>>>>>>>>>!");e.printStackTrace();returnnull;}}/***@Title:closeConn*@Description:关闭数据链接*@paramconConnection*@throwsSQLException*/publicstaticvoidcloseConn(Connectioncon)throwsSQLException{con.close();}}

c3p0-config.xml<c3p0-config><named-configname="orcl"><propertyname="user">xxx</property><propertyname="password">xxx</property><propertyname="driverClass">oracle.jdbc.driver.OracleDriver</property><propertyname="jdbcUrl">jdbc:oracle:thin:@192.168.1.10:1521:orcl</property><propertyname="acquireIncrement">50</property><propertyname="initialPoolSize">100</property><propertyname="minPoolSize">50</property><propertyname="maxPoolSize">1000</property><!--intergalactoAppadoptsadifferentapproachtoconfiguringstatementcaching--><propertyname="maxStatements">0</property><propertyname="maxStatementsPerConnection">5</property><!--he'simportant,butthere'sonlyoneofhim--><user-overridesuser="master-of-the-universe"><propertyname="acquireIncrement">1</property><propertyname="initialPoolSize">1</property><propertyname="minPoolSize">1</property><propertyname="maxPoolSize">5</property><propertyname="maxStatementsPerConnection">50</property></user-overrides></named-config></c3p0-config>

Servlet启动的时候加载@Overridepublicvoidinit()throwsServletException{super.init();DataSourceFactory.getConnection();}

错误日志:严重:StandardWrapper.Throwablejava.lang.ExceptionInInitializerErroratcom.mchange.v2.c3p0.impl.PoolBackedDataSourceBase.<init>(PoolBackedDataSourceBase.java:54)atcom.mchange.v2.c3p0.impl.AbstractPoolBackedDataSource.<init>(AbstractPoolBackedDataSource.java:74)atcom.mchange.v2.c3p0.AbstractComboPooledDataSource.<init>(AbstractComboPooledDataSource.java:142)atcom.mchange.v2.c3p0.AbstractComboPooledDataSource.<init>(AbstractComboPooledDataSource.java:138)atcom.mchange.v2.c3p0.AbstractComboPooledDataSource.<init>(AbstractComboPooledDataSource.java:215)atcom.mchange.v2.c3p0.ComboPooledDataSource.<init>(ComboPooledDataSource.java:53)atcom.ufmsoft.factory.db.pool.DataSourceFactory.<clinit>(DataSourceFactory.java:34)atcom.ufmsoft.servlet.LoginServlet.init(LoginServlet.java:317)atjavax.servlet.GenericServlet.init(GenericServlet.java:212)atorg.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1173)atorg.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:993)atorg.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4350)atorg.apache.catalina.core.StandardContext.start(StandardContext.java:4659)atorg.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)atorg.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)atorg.apache.catalina.core.StandardHost.addChild(StandardHost.java:546)atorg.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1041)atorg.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:964)atorg.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:502)atorg.apache.catalina.startup.HostConfig.start(HostConfig.java:1277)atorg.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:321)atorg.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)atorg.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)atorg.apache.catalina.core.StandardHost.start(StandardHost.java:785)atorg.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)atorg.apache.catalina.core.StandardEngine.start(StandardEngine.java:445)atorg.apache.catalina.core.StandardService.start(StandardService.java:519)atorg.apache.catalina.core.StandardServer.start(StandardServer.java:710)atorg.apache.catalina.startup.Catalina.start(Catalina.java:581)atsun.reflect.NativeMethodAccessorImpl.invoke0(NativeMethod)atsun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)atsun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)atjava.lang.reflect.Method.invoke(Method.java:597)atorg.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)atorg.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)Causedby:java.lang.reflect.UndeclaredThrowableExceptionat$Proxy6.find(UnknownSource)atcom.mchange.v2.cfg.MConfig.readVmConfig(MConfig.java:75)atcom.mchange.v2.c3p0.cfg.C3P0Config.findLibraryMultiPropertiesConfig(C3P0Config.java:157)atcom.mchange.v2.c3p0.cfg.C3P0Config.<clinit>(C3P0Config.java:143)...35moreCausedby:java.lang.reflect.InvocationTargetExceptionatsun.reflect.NativeMethodAccessorImpl.invoke0(NativeMethod)atsun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)atsun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)atjava.lang.reflect.Method.invoke(Method.java:597)atcom.mchange.v1.lang.Synchronizer$1.invoke(Synchronizer.java:58)...39moreCausedby:java.lang.NoSuchMethodError:com.mchange.v2.cfg.BasicMultiPropertiesConfig.<init>([Ljava/lang/String;Ljava/util/List;)Vatcom.mchange.v2.cfg.ConfigUtils.read(ConfigUtils.java:63)atcom.mchange.v2.cfg.MConfig$CSManager.recreateFromKey(MConfig.java:153)atcom.mchange.v1.cachedstore.NoCleanupCachedStore.find(NoCleanupCachedStore.java:63)...44more

解决方案

解决方案二:
包的版本不对吧,初始化参数匹配不上
解决方案三:
是否缺jar包呢?看看com.mchange.v2.cfg.BasicMultiPropertiesConfig.<init>有没有,再就是同日志打印文件等的兼容问题
解决方案四:
引用1楼ygycomon的回复:

包的版本不对吧,初始化参数匹配不上

我在main方法中直接运行没有问题,加上项目中启动的时候就会出错我用的包是c3p0-0.9.5-pre8.jarc3p0-oracle-thin-extras-0.9.5-pre8.jar
解决方案五:
我觉得应该是配置那里没有匹配上,你可以尝试先把那些乱七八糟的配置都干掉,只留下驱动,用户名密码什么的核心配置,然后启动试下
解决方案六:
引用2楼magi1201的回复:

是否缺jar包呢?看看com.mchange.v2.cfg.BasicMultiPropertiesConfig.<init>有没有,再就是同日志打印文件等的兼容问题

mchange-commons-java-0.2.7.jar也放进去了呀
解决方案七:
引用4楼ygycomon的回复:

我觉得应该是配置那里没有匹配上,你可以尝试先把那些乱七八糟的配置都干掉,只留下驱动,用户名密码什么的核心配置,然后启动试下

<c3p0-config><named-configname="orcl"><propertyname="user">888</property><propertyname="password">888</property><propertyname="driverClass">oracle.jdbc.driver.OracleDriver</property><propertyname="jdbcUrl">jdbc:oracle:thin:@192.168.1.10:1521:orcl</property></named-config></c3p0-config>

删成这样,启动还是一样报错
解决方案八:
atcom.ufmsoft.factory.db.pool.DataSourceFactory.<clinit>(DataSourceFactory.java:34)跟进去看源码吧,不要纠结了,最简单的方法
解决方案九:
引用7楼ygycomon的回复:

atcom.ufmsoft.factory.db.pool.DataSourceFactory.<clinit>(DataSourceFactory.java:34)跟进去看源码吧,不要纠结了,最简单的方法

跟进去跟着跟着就跟丢了...
解决方案十:
是不是少了jar包报的错是找不到方法··Causedby:java.lang.NoSuchMethodError:com.mchange.v2.cfg.BasicMultiPropertiesConfig.<init>([Ljava/lang/String;Ljava/util/List;)Vatcom.mchange.v2.cfg.ConfigUtils.read(ConfigUtils.java:63)atcom.mchange.v2.cfg.MConfig$CSManager.recreateFromKey(MConfig.java:153)atcom.mchange.v1.cachedstore.NoCleanupCachedStore.find(NoCleanupCachedStore.java:63)...44more
解决方案十一:
引用9楼djy18178的回复:

是不是少了jar包报的错是找不到方法··Causedby:java.lang.NoSuchMethodError:com.mchange.v2.cfg.BasicMultiPropertiesConfig.<init>([Ljava/lang/String;Ljava/util/List;)Vatcom.mchange.v2.cfg.ConfigUtils.read(ConfigUtils.java:63)atcom.mchange.v2.cfg.MConfig$CSManager.recreateFromKey(MConfig.java:153)atcom.mchange.v1.cachedstore.NoCleanupCachedStore.find(NoCleanupCachedStore.java:63)...44more

缺什么jar包呢?
解决方案十二:
引用10楼juedaijinggang的回复:

Quote: 引用9楼djy18178的回复:
是不是少了jar包报的错是找不到方法··Causedby:java.lang.NoSuchMethodError:com.mchange.v2.cfg.BasicMultiPropertiesConfig.<init>([Ljava/lang/String;Ljava/util/List;)Vatcom.mchange.v2.cfg.ConfigUtils.read(ConfigUtils.java:63)atcom.mchange.v2.cfg.MConfig$CSManager.recreateFromKey(MConfig.java:153)atcom.mchange.v1.cachedstore.NoCleanupCachedStore.find(NoCleanupCachedStore.java:63)...44more

缺什么jar包呢?

具体不知道啊看看你的包是哪里来的以前项目中还是官方下的找找有没有没导入的
解决方案十三:
看错误的信息好像是缺少jar
解决方案十四:
c3p0-0.9.1版本有com.mchange.v2.cfg.BasicMultiPropertiesConfig.<init>这个方法,换一下版本试试,0.9.5是否缺少该方法
解决方案十五:
看错误是com.mchange.v2.cfg.BasicMultiPropertiesConfig的init方法和调用它的类不匹配也就是说BasicMultiPropertiesConfig所在的包和调用它的类所在的包不匹配你可以按照13楼的说法看看0.9.5版本里BasicMultiPropertiesConfig这个类的init方法是不是正确匹配的(反编译看源码就可以)也可以多下载几个版本然后同样的方法,把各个版本反编译以后看看BasicMultiPropertiesConfig的init方法是否正确匹配
解决方案:
缺jar包吧

时间: 2024-08-31 01:16:33

C3P0连接池系统启动时初始化报错!!!求大神指点一二的相关文章

Genymoation安装之后打开虚拟机报错求大神指点

问题描述 Genymoation安装之后打开虚拟机报错求大神指点 错误是这样的 求大神指点,谢谢 解决方案 多启动几次,如果还不行,就启动virtualbox,在里面看看对应的虚拟机是否正常可以启动,或者先关掉它

大数据-orcale大量数据分组查询报错求大神指点

问题描述 orcale大量数据分组查询报错求大神指点 对一个表数据进行分组查询,但是数据量太大了,当时是3000w条,跑着就报错了,数据库内部错误,也不是很懂.想请教下group by的时候是否数据量太多会报错,如果是它可以承受多大的数据量分组查询. 解决方案 肯定会报错,数据量大就会请求超时 解决方案二: 建议使用索引,给需要分组的字段加索引 解决方案三: 你可以试试根据你当前数据库的配置情况,进行分组查询的时候,使用多线程的方式进行查询 例如: select /*+ parallel(t,1

ssh-项目启动时c3p0报错 求大神

问题描述 项目启动时c3p0报错 求大神 com.mchange.v2.async.ThreadPoolAsynchronousRunner]com.mchange.v2.async.ThreadPoolAsynchronousRunner$DeadlockDetector@179d578 -- APPARENT DEADLOCK!!! Creating emergency threads for unassigned pending tasks! [com.mchange.v2.async.T

javase-Java连接derby报错,求大神帮解决下~

问题描述 Java连接derby报错,求大神帮解决下~ 解决方案 http://tieba.baidu.com/p/1415330675 用SYS登录时不可以进行建表操作,看样子derby的确有权限控制存在.哼哼哼哼--- 另,用户名中不能存在字符,刚才在用户名中包含了一个;号,结果出现了 错误 58009:网络协议异常:在 DSS 链中的下一个 DSS 段与当前段具有相同的标识号.连接已终止.错误 08004:发生连接认证失败.原因:用户无权访问数据库. 这样的错误 解决方案二: http:/

虚拟机下构架hadoop测试跑wordcount报错,求大神帮帮忙.

问题描述 虚拟机下构架hadoop测试跑wordcount报错,求大神帮帮忙. 用虚拟机虚拟一台namenode,三台datanode,配置完成可以运行起来,也可以在网页中查看状态,但是跑wordcount时出现了task id:attempt_1441184180788_0001 status:failed的错误,也没有抛出,实在没有办法,具体问题截屏如下,望大神们给予帮助 解决方案 http://www.cnblogs.com/madyina/p/3708153.html 解决方案二: 几台

node js-linux下安装node.js报错,求大神解决

问题描述 linux下安装node.js报错,求大神解决 目前正要部署应用到linux服务器上 在安装node.js时各种报错,首先是python版本问题,后来装了python2.7.5, 在执行./configure时,出现这个错误 ERROR:root:code for hash md5 was not found. Traceback (most recent call last): File "/usr/local/lib/python2.7/hashlib.py", line

代码-db2报错求大神解决,在线等到明天

问题描述 db2报错求大神解决,在线等到明天 严重: StandardWrapper.Throwable org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'systemInfoCache' defined in class path resource [config/core.xml]: Invocation of init method failed; nested e

树形 递归-java 递归报错 求大神帮忙

问题描述 java 递归报错 求大神帮忙 private List<Post> getPostLower(List<Post> PostTops){ List<Post> postAll=new ArrayList<Post>(); // 上级 for(Post post:PostTops){ //查询到下级 List<Post> posts=basService.queryPostByParentId(post.getPostId()); //

mac 下编译 ffmpeg的 libaacplus-2.0.2 总是报错求大神解决办法,谁能教我再mac下编译ffmpeg也行

问题描述 mac 下编译 ffmpeg的 libaacplus-2.0.2 总是报错求大神解决办法,谁能教我再mac下编译ffmpeg也行 make[2]: Nothing to be done for `all'. Making all in frontend gcc -DHAVE_CONFIG_H -I. -I.. -I../include -I../src -g -O2 -c -o main.o main.c main.c:89:46: warning: data argument not