A C3P0Registry mbean is already registered.This probably means that an application using c3p0的警告信息处理

系统在启动的时候c3p0报警告信息“A C3P0Registry mbean is already registered. This probably means that an application using c3p0 was undeployed, but not all PooledDataSources were closed prior to undeployment. This may lead to resource leaks over time. Please take care to close all PooledDataSources.” 

警告原因已找到。当一个tomcat下启动两个或两个以上使用了C3P0的系统时,就会出现以上警告信息。 
有源代码可以看出问题(attemptManageC3P0Registry方法),也就是c3p0的托管bean已经注册l,再次注册的时候就会警告。 

解决方案:将c3p0包放入Tomcat即可



以下为我自己的补充部分:

今天突然发现项目又出现了这个情况,欲再次用上面的方法解决,离奇的发现,不行了……

虽说这只是一个“warning”,但是莫名其妙的发生一个警告居然还没发办它,着实让我不爽。于是找啊找,找啊找,就是找不到原因,回家的路上,一肚子恼火加苦闷。

百度不下十遍,出来的有价值线索仅有三条,而第一条也是最靠谱的就是上面的那个方法了。

根据上面的这个线索,我做了以下猜测并采取措施:

1.删除其他所有发布到服务器的项目,不过早在上次问题出现这步已经做了,服务器目录下除了我的oa项目没有任何多余的东西;

2.好像百度上说到了server.xml文件,于是进去tomcat目录下找了一番,还想没有什么可以的东西;

3.幸好我的项目我都做了版本备份,于是干脆把项目从IDE中删了,再次导入备份的,依旧,我有点崩溃;

4.想起上回老师帮我解决问题时在我的tomcat上做了手脚,搞的我IDE中的所有项目都成了关闭状态(当时还不知道怎么回事,只是发现双击项目才能恢复正常,后来才知道这个是项目关闭状态,通过手动右键、关闭可以做到),于是找到..\apache-tomcat-6.0.32\work\Catalina\localhost目录下,把和项目名相同的那个文件删了(其实不知道这个文件是什么,有哪位知道的朋友回复告诉我,再次先谢过了),试试重新发布重启,悲催,还是不行,倒是自动在这个目录又生成那个文件和一个名字好像的文件,分别是JBA_OA和JBA_OA.myeclipse.bak。

5.无奈,随便看看,找到了..\apache-tomcat-6.0.32\webapps目录下,又发现了JBA_OA和JBA_OA.myeclipse.bak两个文件,这个目录我知道,是项目发布后的路径所在,第一感觉就觉得这个JBA_OA.myeclipse.bak多余,果断删了,试试重新发布,嘿!行了。后来我干脆把..\apache-tomcat-6.0.32\work\Catalina\localhost目录下的项目文件和那个多余的bak文件都删了,没有影响项目的发布和重启,问题到此彻底解决了。

总结 ,归根结底原因上面的思路是对的,只是解决方案太笼统了,下次记得,凡是涉及某某配置重复加载冲突的问题时,记得在发布路径和那个好像叫工作路径的目录下找找原因。

你可能感兴趣的:(tomcat,c3p0,服务器,百度,application,ide)