java - ClassNotFoundException:BasicDataSourceFactory

标签 java linux tomcat classpath classnotfoundexception

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

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

这个类是 tomcat-dbcp.jar 的一部分。它位于我的 $CATALINA_HOME/lib 文件夹中。为什么这仍然没有被拾起?请帮忙!

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

最佳答案

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

ps aux | grep catalina

在出现的输出中查找 catalina.base 和 catalina.home。这些变量前面给出的路径是从中获取 Tomcat 库的路径。我已经完成了默认安装并在/usr/share/tomcat7 下找到了库。事实证明,使用 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 本身中挑选出来的。

管理所有这些的最佳方法是创建您自己的 simlink,这样您就无需在第一次之后费心去不同的位置。

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

关于java - ClassNotFoundException:BasicDataSourceFactory,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14426810/

相关文章:

java - hamcrest:使用 hamcrest 逻辑比较两个集合 ob 自定义类

tomcat - Spring Security 3.1 xsd 和 jars 不匹配问题

tomcat - 在同一个 jboss-4.0.3 中部署两个具有不同域名但相同上下文路径的 war

java - 如何将 HttpServletRequest 对象传递给测试用例?

java - 在 JEditorPane 中禁用滚动到文本末尾

java - 我只能通过三种方法得到这些编译答案。 java

java - 从堆栈跟踪行号中获取实际的 jsp 行号?

linux - 使用 Chef 如何在从另一个文件读取输入后更新文件?

linux - 在 debian 7 上安装 libssl0.9.8

linux - 在 Linux 中设置默认的 ping 截止时间