ssh使用tomcat中配置好的c3p0数据源

来源:互联网 发布:大数据市场分析 编辑:程序博客网 时间:2024/05/01 19:58

在tomcat的conf\Catalina\localhost\路径下建立项目对应的xml文件

具体内容如下:

<?xml version="1.0" encoding="UTF-8"?><Context path="/Village" docBase="D:\Workspaces\MyEclipse 10\webproject\Village\WebRoot"  reloadable= "true" privileged="true"><Resource name="jdbc/village" auth="Container" type="com.mchange.v2.c3p0.ComboPooledDataSource"  factory="org.apache.naming.factory.BeanFactory"  driverClass="com.mysql.jdbc.Driver"                  jdbcUrl="jdbc:mysql://localhost:3306/village"                  user="root"                  password="0510"                  minPoolSize="10"                  maxPoolSize="200"                  maxIdleTime="1000" idleConnectionTestPeriod="10"initialPoolSize="5" /></Context>

Spring配置文件中加入引入数据源的配置:

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

在代码配置上只需做如上配置即可。

需要注意的是使用c3p0数据源需要引入相应的jar包:c3p0-0.9.2.1.jar 和 mchange-commons-java-0.2.3.4.jar。


在实际项目中,我按照如上配置好后,程序开始可以正常运行,但是过一段时间后便会不停的报如下错误:


 Illegal access: this web application instance has been stopped already.  Could not load com.mchange.v2.resourcepool.BasicResourcePool$1DestroyResourceTask.  The eventual following stack trace is caused by an error thrown for debugging purposes as well as to attempt to terminate the thread which caused the illegal access, and has no functional impact.java.lang.IllegalStateException    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1612)    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1571)    at com.mchange.v2.resourcepool.BasicResourcePool.destroyResource(BasicResourcePool.java:980)    at com.mchange.v2.resourcepool.BasicResourcePool.removeResource(BasicResourcePool.java:1406)    at com.mchange.v2.resourcepool.BasicResourcePool.removeResource(BasicResourcePool.java:1378)    at com.mchange.v2.resourcepool.BasicResourcePool.cullExpired(BasicResourcePool.java:1462)    at com.mchange.v2.resourcepool.BasicResourcePool.access$1900(BasicResourcePool.java:32)    at com.mchange.v2.resourcepool.BasicResourcePool$CullTask.run(BasicResourcePool.java:1937)    at java.util.TimerThread.mainLoop(Unknown Source)    at java.util.TimerThread.run(Unknown Source)Exception in thread "Timer-1" java.lang.NoClassDefFoundError: com/mchange/v2/resourcepool/BasicResourcePool$1DestroyResourceTask    at com.mchange.v2.resourcepool.BasicResourcePool.destroyResource(BasicResourcePool.java:980)    at com.mchange.v2.resourcepool.BasicResourcePool.removeResource(BasicResourcePool.java:1406)    at com.mchange.v2.resourcepool.BasicResourcePool.removeResource(BasicResourcePool.java:1378)    at com.mchange.v2.resourcepool.BasicResourcePool.cullExpired(BasicResourcePool.java:1462)    at com.mchange.v2.resourcepool.BasicResourcePool.access$1900(BasicResourcePool.java:32)     at com.mchange.v2.resourcepool.BasicResourcePool$CullTask.run(BasicResourcePool.java:1937)    at java.util.TimerThread.mainLoop(Unknown Source)    at java.util.TimerThread.run(Unknown Source)Caused by: java.lang.ClassNotFoundException: com.mchange.v2.resourcepool.BasicResourcePool$1DestroyResourceTask    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1720)    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1571)    ... 8 more

原因是项目使用了我之前打包好的SSH集合jar包,其中包含了一个com.springsource.com.mchange.v2.c3p0-0.9.1.2.jar 包,jar包产生了冲突,删掉之后程序目前为止都还正常。


PS:后来发现还是会经常报类似的错误。某一天,我灵光一闪突然意识到这好像是因为我在开发过程中为了方便开发,将项目的自动重新装载设置为了true,如下:

<Context path="/Village" docBase="D:\Workspaces\MyEclipse 10\webproject\Village\WebRoot" reloadable= "true" privileged="true">
经过测试发现确实如此,一个正常开启的项目并不会报这个错误。





<pre name="code" class="html">
</pre>

<Context path="/Village" docBase="D:\Workspaces\MyEclipse 10\webproject\Village\WebRoot" reloadable= "true" privileged="true">
<Context path="/Village" docBase="D:\Workspaces\MyEclipse 10\webproject\Village\WebRoot" reloadable= "true" privileged="true">
0 0
原创粉丝点击