使用myeclipse tomcat外掛部署web專案時報錯 an internal error occurred during add deployment . java.lang.nullpointerexception
問題描述:
使用myeclipse10的tomcat外掛部署web專案時,首次部署。實際部署到了tomcat/webapps目錄下且tomcat啟動成功,但是eclipse報錯"An internal error occurred during: "Add Deployment" :
且eclipse中看不到部署的專案。重新部署按鈕也無法點選,如圖:
myeclipse中看不到部署的專案:
myeclipse中可以看到部署的專案如下(作為看不到專案的對比):
再次試圖部署專案時,提示如下對話方塊(感覺是雖然myeclipse部署報錯了,但是myeclipse又記住已經部署過該專案):
嘗試解決一(未成功):
網上查詢很多都是 jdk版本問題,於是嘗試修改系統環境變數、myeclipse中專案依賴的jdk版本、myeclipse中專案 java compiler的jdk版本、web專案屬性中 project facets中的jdk版本。因為本次出問題的專案是從svn上down下來的。我之前有一個工作空間,存放該專案且沒有出現此問題。所以把所有相關工程的jdk版本相關屬性都設定為和未出問題的專案一樣。但是還是報相同的錯誤
修改myeclipse中專案依賴的jdk版本,圖:
修改myeclipse中專案 java compiler的jdk版本,圖:
修改web專案屬性中 project facets中的jdk版本,圖:
嘗試解決二(成功):
步驟一:
新建eclipse的workspace,匯入之前可以部署成功工作空間中的專案及所有相關工程,可以部署成功。所以猜測是svn上的專案原始碼有問題。
步驟二:
在出問題的工作空間中,
1、新建web工程Test,copy問題專案的原始碼到Test工程。併為Test工程 新增問題專案的依賴工程。
2、部署Test專案,可以復現問題。可能問題原因1、專案的原始碼 2、問題專案依賴的工程出現了問題。
4、逐個排查依賴工程,確定其中的一個依賴工程 bean 工程有問題。
5、使用檔案比較工具(beyond copare)與正常的bean工程比較,並逐個排查原始碼、pom.xml、配置等資料夾。確定是有無pom.xml的問題: 出問題的工程沒有pom.xml;成功的工程有pom.xml
步驟三
感到非常奇怪,myeclipse外掛tomcat是否deploy成功竟然和 是否有pom.xml有關。猜測可能是eclipse的bug,或者eclipse的tomcat外掛的bug!!
筆記bean工程下的其他檔案,發現出問題的專案的bean工程下.classpath檔案有maven相關的配置
<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER"/>
圖:
刪除該行配置,也可以解決此問題。
總結解決方法:
解決方法一:
bean工程新增pom.xml檔案
解決方法二:
1、bean工程 刪除pom.xml檔案
2、bean工 程 開啟 .classpath檔案,刪除如下行
<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER"/> 總結: 由於對maven和myeclipse中tomcat外掛的原理了解的不深,所以最終也無法確定問題。猜測可能是maven配置問題導致的。 如果您知道問題的確切原因或可能原因,歡迎指教!!謝謝!! ----------------------------------------------------------------------------------------------------------------------------------- ^_^歡迎交流!!點贊請用力,拍磚請輕拍!!!