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

绝代金刚 2014-08-11 05:35:03


import java.sql.Connection;
import java.sql.SQLException;
import org.apache.log4j.Logger;
import com.mchange.v2.c3p0.ComboPooledDataSource;
import com.mchange.v2.c3p0.DataSources;
import com.mchange.v2.c3p0.PooledDataSource;
import com.ufmsoft.factory.ResourceUtil;

/**
* @ClassName: DataSourceFactory
* @Description: 数据源工厂类
*/
public class DataSourceFactory {

private static final Logger logger = Logger.getLogger(DataSourceFactory.class);

/**
* 全局数据源
*/
private static ComboPooledDataSource ds = null;

static{
try {
ds = new ComboPooledDataSource(“orcl”);
} catch (Exception e) {
logger.error("初始实例化数据源出现错误,请确认配置文件存在和正确!");
e.printStackTrace();
}
}

/**
* @Title: getInstance
* @Description: 实例化数据源
*/
public static final void getInstance() {
try {
DataSources.destroy(ds); // 关闭datasource
ds=null;
ds = new ComboPooledDataSource(ResourceUtil.getDatasourceName());
} catch (Exception e) {
logger.error("实例化数据源出现错误,请确认配置文件存在和正确!");
e.printStackTrace();
}
}

/**
* @Title: closeDataSource
* @Description: 关闭数据源
* @throws Exception
*/
public static void closeDataSource() throws Exception{
ds.getClass().getMethod("close").invoke(ds);

}
/**
* @Title: getConnection
* @Description: 获取数据链接
* @return Connection
* @throws Exception
*/
public static Connection getConnection(){
System.out.println(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>!!!!!!!!");
try {
return ds.getConnection();
} catch (SQLException e) {
logger.error("获取数据链接失败>>>>>>>>>>>>>>>>>!");
e.printStackTrace();
return null;
}
}
/**
* @Title: closeConn
* @Description: 关闭数据链接
* @param con Connection
* @throws SQLException
*/
public static void closeConn(Connection con) throws SQLException{
con.close();
}
}



c3p0-config.xml

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

<property name="acquireIncrement">50</property>
<property name="initialPoolSize">100</property>
<property name="minPoolSize">50</property>
<property name="maxPoolSize">1000</property>
<!-- intergalactoApp adopts a different approach to configuring statement caching -->
<property name="maxStatements">0</property>
<property name="maxStatementsPerConnection">5</property>
<!-- he's important, but there's only one of him -->
<user-overrides user="master-of-the-universe">
<property name="acquireIncrement">1</property>
<property name="initialPoolSize">1</property>
<property name="minPoolSize">1</property>
<property name="maxPoolSize">5</property>
<property name="maxStatementsPerConnection">50</property>
</user-overrides>
</named-config>

</c3p0-config>


Servlet 启动的时候加载

@Override
public void init() throws ServletException {
super.init();
DataSourceFactory.getConnection();
}



错误日志:

严重: StandardWrapper.Throwable
java.lang.ExceptionInInitializerError
at com.mchange.v2.c3p0.impl.PoolBackedDataSourceBase.<init>(PoolBackedDataSourceBase.java:54)
at com.mchange.v2.c3p0.impl.AbstractPoolBackedDataSource.<init>(AbstractPoolBackedDataSource.java:74)
at com.mchange.v2.c3p0.AbstractComboPooledDataSource.<init>(AbstractComboPooledDataSource.java:142)
at com.mchange.v2.c3p0.AbstractComboPooledDataSource.<init>(AbstractComboPooledDataSource.java:138)
at com.mchange.v2.c3p0.AbstractComboPooledDataSource.<init>(AbstractComboPooledDataSource.java:215)
at com.mchange.v2.c3p0.ComboPooledDataSource.<init>(ComboPooledDataSource.java:53)
at com.ufmsoft.factory.db.pool.DataSourceFactory.<clinit>(DataSourceFactory.java:34)
at com.ufmsoft.servlet.LoginServlet.init(LoginServlet.java:317)
at javax.servlet.GenericServlet.init(GenericServlet.java:212)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1173)
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:993)
at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4350)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4659)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:546)
at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1041)
at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:964)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:502)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1277)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:321)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:785)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:445)
at org.apache.catalina.core.StandardService.start(StandardService.java:519)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
at org.apache.catalina.startup.Catalina.start(Catalina.java:581)
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.catalina.startup.Bootstrap.start(Bootstrap.java:289)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
Caused by: java.lang.reflect.UndeclaredThrowableException
at $Proxy6.find(Unknown Source)
at com.mchange.v2.cfg.MConfig.readVmConfig(MConfig.java:75)
at com.mchange.v2.c3p0.cfg.C3P0Config.findLibraryMultiPropertiesConfig(C3P0Config.java:157)
at com.mchange.v2.c3p0.cfg.C3P0Config.<clinit>(C3P0Config.java:143)
... 35 more
Caused by: java.lang.reflect.InvocationTargetException
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 com.mchange.v1.lang.Synchronizer$1.invoke(Synchronizer.java:58)
... 39 more
Caused by: java.lang.NoSuchMethodError: com.mchange.v2.cfg.BasicMultiPropertiesConfig.<init>([Ljava/lang/String;Ljava/util/List;)V
at com.mchange.v2.cfg.ConfigUtils.read(ConfigUtils.java:63)
at com.mchange.v2.cfg.MConfig$CSManager.recreateFromKey(MConfig.java:153)
at com.mchange.v1.cachedstore.NoCleanupCachedStore.find(NoCleanupCachedStore.java:63)
... 44 more
...全文
4226 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
justwannafuckyou 2016-12-07
  • 打赏
  • 举报
回复
引用 16 楼 FarAwayWL 的回复:
很常见的问题: c3p0的jar包和mchange-commons的jar包冲突了 换不同的版本试试吧
多谢 正是这个原因 我以为随便下个 c3p0.far 和 mchange-commons 都可以 但是不行的 有的版本不能一起用
awaken233 2016-09-13
  • 打赏
  • 举报
回复
很常见的问题: c3p0的jar包和mchange-commons的jar包冲突了 换不同的版本试试吧
coolbamboo2008 2015-03-05
  • 打赏
  • 举报
回复
缺jar包吧
wangliguang517 2015-03-05
  • 打赏
  • 举报
回复
看错误是com.mchange.v2.cfg.BasicMultiPropertiesConfig的init方法和调用它的类不匹配 也就是说BasicMultiPropertiesConfig所在的包 和 调用它的类所在的包不匹配 你可以按照13楼的说法看看0.9.5版本里BasicMultiPropertiesConfig这个类的init方法是不是正确匹配的(反编译看源码就可以) 也可以多下载几个版本然后同样的方法,把各个版本反编译以后看看BasicMultiPropertiesConfig的init方法是否正确匹配
someyan 2015-03-05
  • 打赏
  • 举报
回复
c3p0-0.9.1 版本有 com.mchange.v2.cfg.BasicMultiPropertiesConfig.<init> 这个方法,换一下版本试试,0.9.5是否缺少该方法
绝代金刚 2014-08-12
  • 打赏
  • 举报
回复
引用 9 楼 djy18178 的回复:
是不是少了jar包 报的错是找不到方法·· Caused by: java.lang.NoSuchMethodError: com.mchange.v2.cfg.BasicMultiPropertiesConfig.<init>([Ljava/lang/String;Ljava/util/List;)V at com.mchange.v2.cfg.ConfigUtils.read(ConfigUtils.java:63) at com.mchange.v2.cfg.MConfig$CSManager.recreateFromKey(MConfig.java:153) at com.mchange.v1.cachedstore.NoCleanupCachedStore.find(NoCleanupCachedStore.java:63) ... 44 more
缺什么jar包呢?
放纵的青春 2014-08-12
  • 打赏
  • 举报
回复
是不是少了jar包 报的错是找不到方法·· Caused by: java.lang.NoSuchMethodError: com.mchange.v2.cfg.BasicMultiPropertiesConfig.<init>([Ljava/lang/String;Ljava/util/List;)V at com.mchange.v2.cfg.ConfigUtils.read(ConfigUtils.java:63) at com.mchange.v2.cfg.MConfig$CSManager.recreateFromKey(MConfig.java:153) at com.mchange.v1.cachedstore.NoCleanupCachedStore.find(NoCleanupCachedStore.java:63) ... 44 more
绝代金刚 2014-08-12
  • 打赏
  • 举报
回复
引用 7 楼 ygycomon 的回复:
at com.ufmsoft.factory.db.pool.DataSourceFactory.<clinit>(DataSourceFactory.java:34) 跟进去看源码吧,不要纠结了,最简单的方法
跟进去跟着跟着就跟丢了...
tony4geek 2014-08-12
  • 打赏
  • 举报
回复
看错误的信息好像是缺少jar
放纵的青春 2014-08-12
  • 打赏
  • 举报
回复
引用 10 楼 juedaijinggang 的回复:
[quote=引用 9 楼 djy18178 的回复:] 是不是少了jar包 报的错是找不到方法·· Caused by: java.lang.NoSuchMethodError: com.mchange.v2.cfg.BasicMultiPropertiesConfig.<init>([Ljava/lang/String;Ljava/util/List;)V at com.mchange.v2.cfg.ConfigUtils.read(ConfigUtils.java:63) at com.mchange.v2.cfg.MConfig$CSManager.recreateFromKey(MConfig.java:153) at com.mchange.v1.cachedstore.NoCleanupCachedStore.find(NoCleanupCachedStore.java:63) ... 44 more
缺什么jar包呢?[/quote] 具体不知道啊 看看你的包是哪里来的 以前项目中还是官方下的 找找有没有没导入的
致知Fighting 2014-08-11
  • 打赏
  • 举报
回复
at com.ufmsoft.factory.db.pool.DataSourceFactory.<clinit>(DataSourceFactory.java:34) 跟进去看源码吧,不要纠结了,最简单的方法
绝代金刚 2014-08-11
  • 打赏
  • 举报
回复
引用 4 楼 ygycomon 的回复:
我觉得应该是配置那里没有匹配上,你可以尝试先把那些乱七八糟的配置都干掉,只留下驱动,用户名密码什么的核心配置,然后启动试下

<c3p0-config>
<named-config name="orcl">
<property name="user">888</property> 
<property name="password">888</property> 
<property name="driverClass">oracle.jdbc.driver.OracleDriver</property> 
<property name="jdbcUrl">jdbc:oracle:thin:@192.168.1.10:1521:orcl</property> 
</named-config>
</c3p0-config> 
删成这样,启动还是一样报错
绝代金刚 2014-08-11
  • 打赏
  • 举报
回复
引用 2 楼 magi1201 的回复:
是否缺jar包呢? 看看 com.mchange.v2.cfg.BasicMultiPropertiesConfig.<init> 有没有,再就是同日志打印文件等的兼容问题
mchange-commons-java-0.2.7.jar 也放进去了呀
致知Fighting 2014-08-11
  • 打赏
  • 举报
回复
我觉得应该是配置那里没有匹配上,你可以尝试先把那些乱七八糟的配置都干掉,只留下驱动,用户名密码什么的核心配置,然后启动试下
绝代金刚 2014-08-11
  • 打赏
  • 举报
回复
引用 1 楼 ygycomon 的回复:
包的版本不对吧,初始化参数匹配不上
我在main方法中直接运行没有问题,加上项目中启动的时候就会出错 我用的包是 c3p0-0.9.5-pre8.jar c3p0-oracle-thin-extras-0.9.5-pre8.jar
姜小白- 2014-08-11
  • 打赏
  • 举报
回复
是否缺jar包呢? 看看 com.mchange.v2.cfg.BasicMultiPropertiesConfig.<init> 有没有,再就是同日志打印文件等的兼容问题
致知Fighting 2014-08-11
  • 打赏
  • 举报
回复
包的版本不对吧,初始化参数匹配不上
内容概要:本文围绕“非线性流量的数据驱动Koopman模型预测控制研究”展开,提出一种基于数据驱动的Koopman算子理论方法,用于构建非线性系统的线性化状态空间模型,并结合模型预测控制(MPC)实现对复杂非线性系统的高效控制。研究通过引入扩展动态模态分解(EDMD)等观测函数,将非线性动力学映射至高维特征空间,在该空间中实现近似线性化表征,进而融合线性MPC框架进行优化解。全文系统阐述了Koopman算子的数学基础、隐式线性化机制及在非线性流量控制中的建模流程,并通过Matlab代码完成了算法实现与仿真实验,验证了该方法在处理无精确物理模型、强非线性、变动态系统中的有效性与鲁棒性,尤其适用于工业流程控制、能源系统调度等实际工程场景。; 适合人群:具备自动控制理论、非线性系统分析基础,熟悉Matlab编程,从事控制工程、系统辨识、智能优化、能源系统建模等方向的研究生、科研人员及工程技术人员。; 使用场景及目标:①应用于难以建立精确数学模型的复杂非线性系统(如流体动力系统、电力电子系统、机器人动力学等)的建模与实控制;②实现数据驱动下的模型预测控制,提升系统响应速度与控制精度;③为先进控制策略(如MPC)提供一种可行的线性化建模范式,推动现代控制理论与数据科学、机器学习的深度融合。; 阅读建议:建议读者结合提供的Matlab代码深入理解Koopman方法的具体实现过程,重点关注观测函数构造、核函数选择、矩阵逼近、降维处理及MPC控制器设计等关键技术环节,并尝试将其迁移至其他非线性系统中进行复现实验与性能对比,以全面掌握其适用范围与局限性。
内容概要:本文详细介绍了一种基于Simulink的光伏储能单相逆变器并网仿真模型,系统涵盖了光伏阵列、储能单元、DC-AC单相逆变器及并网接口的完整结构,重点实现了储能环节的能量管理与逆变器并网控制策略的建模仿真。通过Simulink平台构建系统模型,验证了逆变器输出电能质量、并网稳定性以及控制系统的动态响应性能,采用SPWM调制、PI闭环控制等关键技术,确保并网电流与电网电压同频同相,满足并网电能质量要。该模型不仅可用于分布式能源系统的仿真研究,还可作为新能源并网技术的教学与工程实践工具。; 适合人群:电气工程、自动化、新能源科学与工程等相关专业的高校本科生、研究生、科研人员,以及从事光伏发电系统设计、储能控制与并网技术研发的工程技术人员。; 使用场景及目标:①深入理解光伏储能系统中能量转换、存储与并网控制的整体工作原理;②支持课程设计、毕业设计或科研项目中对单相逆变器控制策略(如SPWM、PI调节、锁相技术等)的仿真验证与参数优化;③为后续研究更复杂的控制算法(如MPPT、低电压穿越、谐波抑制等)提供可扩展的仿真基础平台。; 阅读建议:建议结合MATLAB/Simulink环境动手搭建与调试模型,逐步理解各模块(如光伏建模、储能充放电控制、逆变器驱动、锁相环、PI调节器等)的功能与交互关系,重点关注控制系统的设计逻辑与参数整定过程,并可通过修改负载条件或电网参数测试系统鲁棒性,为进一步拓展至三相系统或多机并网场景奠定基础。

67,536

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧