前段时间在作项目的时候,用eclipse构建的maven工程部署到tomcat下面去时,发现tomcat的web-inf下面的lib目录是空的, 当时弄了好长时间,最后实在没辙了,就手动把全部的依赖拷到web-inf的lib下面去,可是每次从新部署时,eclipse自动部署又将lib目录清 空,当时那叫一个郁闷,后来我看了下别人的classpath文件,发现个人classpath跟别人的不一样点
图1:
图2:
发如今加了上述attributes;标签后,能正常的部署项目,而且tomcat lib下面也有所需的jar了。
最近,有人问为何个人jdbc驱动能在main方法里正常访问数据库,当我部署到tomcat下面时候,总是报 ClassNotFoundException,提示找不到驱动类,远程连了一下,发现他的tomcat web-inf下面的没有mysql驱动包,可是他在工程里倒是以exteneral jar的形式添加到了classpath下面,当部署时候tomcat下面却没有jar,当时第一感受是classpath出问题了,倒腾了好长时间,最 后终于解决了,先把解决方案详述以下(注:本人用的eclipse版本是eclipse jee 3.7(indigo),tomcat 6.0.29):
eclipse配置的tomcat默认发布项目不会部署到tomcat的安装目录去,而是在你的workspace目录下面的\.metadata \.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps这个文件夹下,这也就是为何有人会问为 什么我明明项目部署成功了,但是我去tomcat下的webapp下面却没有我刚刚发布的项目,其实休该一下配置,固然,在改以前,你的先将tomcat 下面本身部署的项目删除,(tomcat自带的几个doc,root之类的不用删),双击server下的tomcat,会弹出tomcat的配置,如上 图,在此,咱们选择第二项
将wtpwebapps改成tomcat默认的webapps,保存,这样当你在部署项目的时候项目就会自动部署到tomcat安装目录下的 webapps下面去了,如今回到发布项目时候tomcat web-inf lib目录为空的状况,右键点击工程,属性(properties),选择deployment assembly选项,单击add按钮,以下图:
在弹出的对话框选择java build path entries
next后会出现你加的external jar包
finish完成之后在启动tomcat,去webapp下面验证看看jar包是否随工程一块儿部署。java