今天在公司培训,做一个简单的servlet程序,需要使用tomcat的web工程。
我先创建maven工程,右键添加web项目属性,于是愉快的开始写servlet,其中有做数据库于是要使用到第三方的jdbc驱动,于是我就用pom.xml引入,引入部分如下:
<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.25</version> </dependency>
之后reimport一下,的确是把jdbc包给引入了,写单个带有main函数的java代码也能成功连接。将这部分代码放进web工程中,打开tomcat服务器在浏览器中运行时愣是不能进行增删改查,之后排查发现是无法加载jdbc类。
那么问题来了,我已经引入了包,为什么就是不行呢?
经过度娘谷歌的搜索结合自己的理解,之后终于找到了原因:
tomcat项目对于引入包优先查找(个人觉得是只查找)web-inf/lib下的引入包,也就是说,tomcat服务器发现这包要是不在默认的lib中,会查找的是lib文件夹下面的jar文件,而不是去查找pom引入的包,其实自己看文件的时候可以发现这俩放引入包的地方不同啊。(具体每个文件夹有啥用处我后续补充。
解决办法:在web-inf下建lib文件夹,将jar包丢进去。
经测试,这个方法可行~和同事讨论,说是我创建项目方法有问题导致无法找到pom引入包,我再研究研究。
时间: 2024-11-20 18:20:49