前段時間在作項目的時候,用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