ClassNotFoundException:BasicDataSourceFactory

时间:2013-01-20 16:53:42

标签: java linux tomcat classpath classnotfoundexception

我有一个JAVA应用程序在Tomcat7上的本地Windows7环境中运行良好。我试图在Linux环境中将其投入生产。 一切都已完成,并且工作正常,除非我的应用程序尝试访问数据库。不涉及DB的操作,它工作正常。 我得到的错误是

java.lang.ClassNotFoundException: org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory

此类是tomcat-dbcp.jar的一部分。这放在我的$ CATALINA_HOME / lib文件夹中。为什么这还没有被拿起来?请帮忙!

更新:我还打开了.jar文件并进行了检查。存在org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory.class文件。

1 个答案:

答案 0 :(得分:2)

终于能够破解它了。我的错误 - 我只依靠echo $ CATALINA_HOME来检查它的位置。事实证明这可能会产生误导。 最好使用

ps aux | grep catalina

在输出中查找catalina.base和catalina.home。在这些变量前面给出的路径是从中获取Tomcat库的路径。我做了一个默认安装,在/ usr / share / tomcat7下找到了libs。事实证明,使用yum完成的默认安装没有提供tomcat-dbcp.jar文件。相反,它提供了commons-dbcp.jar。阅读tomcat-dbcp vs commons-dbcp

更改usr / share / tomcat7文件夹下的lib文件要求我使用sudo bash。您也可能注意到/ usr / share / tomcat7下的lib文件夹是一个simlink。只需执行ls / usr / share / tomcat7 -l即可获取父位置。您只能在父位置进行更改。 可以检查server.xml的类似内容,最终也是从/ usr / share / tomcat7本身中选择的。

管理所有这些的最佳方法是创建自己的simlinks,这样您就不必在第一次之后去各个地方了。

感谢所有试图提供帮助的人。