0

我有一个 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 文件。

4

1 回答 1

2

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

ps aux | grep catalina

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

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

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

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

于 2013-01-21T06:54:01.163 回答