Intellij IDEA Tomcat啟動(dòng)項(xiàng)目報(bào)錯(cuò):java.lang.ClassNotFoundException:org.springframework.web.context.xxx

背景

目前Java web工程通常都是通過(guò)IDEA module模塊化,分成xxx-admin、xxx-core、xxx-dao、xxx-web等模塊,多個(gè)module通過(guò)maven管理。這幾個(gè)模塊打包一起運(yùn)行,通常只有xxx-web是個(gè)web工程,提供springMVC方式對(duì)外提供訪問(wèn)。
自己使用IDEA也創(chuàng)建了個(gè) 多module的工程,出現(xiàn)了一些問(wèn)題。

Intellij IDEA Tomcat啟動(dòng)項(xiàng)目報(bào)錯(cuò):java.lang.ClassNotFoundException:org.springframework.web.context.xxxxx

我是報(bào)出ClassNotFoundException: org.springframework.web.filter.CharacterEncodingFilter

出現(xiàn)這個(gè)問(wèn)題,是因?yàn)楣こ痰膉ar包未被部署。但檢查pom.xml里面的dependency感覺(jué)都正常。
注意:在多module的工程,通常在部署到Tomcat上時(shí),都是部署xxx-web這個(gè)module模塊。

IDEA菜單依次操作 File >Project Structure >Artifacts >Output Layout >Available Elements

我們先ctrl+shift+alt+s打開(kāi)Project Structure窗口,選擇Artifacts,選擇要打包部署的項(xiàng)目,在Output Layout –> Web-INF查看是否有l(wèi)ib目錄,如果右邊Available Elements窗口還顯示有jar包,說(shuō)明這些jar包未添加,則應(yīng)右擊選擇Put into Output Root(put into WEB_INF/lib),這樣就OK了

接著遇到了另一個(gè)問(wèn)題

Web_exploded not found for the web module.
JmxAdminException: com.intellij.execution.ExecutionException
xxxx_Web_explored not found for the web module.

沒(méi)有檢測(cè)到要部署的web模塊,是因?yàn)門(mén)omcat執(zhí)行deployed時(shí),找不到web模塊的Artifact,依次再次進(jìn)入File >Project Structure >Artifacts

將Output directory 指定到web module的target目錄



web.xml的位置

多module工程,還需要注意 WEB-INF/web.xml的位置配置,進(jìn)入File >Project Structure >Modules

可以看到你工程的所有module,可以點(diǎn)擊+號(hào)給其中一個(gè)module新建一個(gè)Web 而使其成為web模塊,點(diǎn)擊中間的鉛筆圖標(biāo),編輯指定WEB-INF/web.xml的位置。我的配置地址為:磁盤(pán)路徑/工程名/web模塊名/src/main/webapp/WEB-INF/web.xml。

右側(cè)窗口 中下方的Web Resource Directories,雙擊修改指定路徑到:工程名/web模塊名/src/main/webapp/WEB-INF/web.xml。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容