无法部署应用目录 [D:\Tomcat\apache-tomcat-9.0.44\webapps\ROOT]java.lang.IllegalStateException: 启动子级时出错
? ? ? ? ? ? 起因是剛開始導(dǎo)入一個(gè)web項(xiàng)目,沒(méi)有導(dǎo)入Tomcat的jar包,導(dǎo)致找不到j(luò)avax.servlet.http 和 javax.servlet.jsp,看了下網(wǎng)上的建議,將Tomcat7.0\lib下的el-api.jar、jsp-api.jar這兩個(gè)jar包放到Java\jdk1.8.0_131\jre\lib\ext目錄下,導(dǎo)入jar后沒(méi)有報(bào)錯(cuò)了。還有一個(gè)報(bào)錯(cuò),是因?yàn)閺腡omcat8轉(zhuǎn)到Tomcat7,需要修改一個(gè)配置文件,在項(xiàng)目下.settings\org.eclipse.wst.common.project.facet.core.xml文件下Tomcat的那行配置刪除。
? ? ? ? ? 項(xiàng)目是沒(méi)有錯(cuò)誤之后,在Tomcat上啟動(dòng),就開始報(bào)下面的錯(cuò)誤:
java.lang.NoClassDefFoundError: Could not initialize class org.apache.jasper.el.ELContextImpl? ? ? ? ?看了很多,都說(shuō)是使用Activiti時(shí),關(guān)于Could not initialize class org.apache.jasper.el.ELContextImpl問(wèn)題,是由于jar包沖突導(dǎo)致的,但是我沒(méi)有導(dǎo)入Activiti的jar包,
我開始尋找問(wèn)題,看見有的說(shuō)是Tomcat版本和jdk版本不一致導(dǎo)致的,我又下載了Tomcat的8.5和9.0版本。但是發(fā)現(xiàn)問(wèn)題沒(méi)有絲毫解決,甚至更多了,出現(xiàn)了下面的問(wèn)題:
13-Mar-2021 19:17:23.253 信息 [main] org.apache.catalina.startup.HostConfig.deployDirectory Web應(yīng)用程序目錄[D:\Tomcat\apache-tomcat-9.0.44\webapps\manager]的部署已在[47]毫秒內(nèi)完成 13-Mar-2021 19:17:23.269 信息 [main] org.apache.catalina.startup.HostConfig.deployDirectory 把web 應(yīng)用程序部署到目錄 [D:\Tomcat\apache-tomcat-9.0.44\webapps\ROOT] 13-Mar-2021 19:17:23.284 嚴(yán)重 [main] org.apache.catalina.startup.HostConfig.deployDirectory 無(wú)法部署應(yīng)用目錄 [D:\Tomcat\apache-tomcat-9.0.44\webapps\ROOT]java.lang.IllegalStateException: 啟動(dòng)子級(jí)時(shí)出錯(cuò)? ? ? ? 發(fā)現(xiàn)雖然本地啟動(dòng)會(huì)報(bào)錯(cuò),但是Tomcat服務(wù)器可以啟動(dòng),不過(guò)http://localhost:8080/訪問(wèn)會(huì)出現(xiàn)404的報(bào)錯(cuò),搜遍網(wǎng)上也沒(méi)找到原因,最后還是切回Tomcat7.0,
發(fā)現(xiàn)沒(méi)有報(bào)上面的錯(cuò)誤,但是在http://localhost:8080/訪問(wèn)會(huì)出現(xiàn)500的報(bào)錯(cuò),報(bào)的是這個(gè)錯(cuò)誤:
javax.servlet.ServletException: java.lang.NoClassDefFoundError然后參考了這個(gè)文章:https://blog.csdn.net/qq_39188306/article/details/89672188
解決辦法:?
1、進(jìn)入你tomcat安裝目錄:我的是D:\Tomcat7.0\lib,找到el-api.jar包;
2、找到你安裝使用的JDK版本目錄,我的是在C:\Program Files\Java\jdk1.8.0_131\jre\lib\ext目錄下;
3、將tomcat中的el-api.jar包拷貝到JDK安裝目錄下的jre/lib/ext目錄下(如果已經(jīng)存在,請(qǐng)覆蓋);
? ? ? ? ?按這樣的方法解決了,但是總覺得不對(duì)勁,這不是我剛開始導(dǎo)入的Tomcat7.0\lib下的el-api.jar、jsp-api.jar這兩個(gè)包流程嗎?
? ? ? ? ?然后我將Java\jdk1.8.0_131\jre\lib\ext目錄下el-api.jar、jsp-api.jar和servlet-api.jar三個(gè)jar包刪除,然后運(yùn)行發(fā)現(xiàn)問(wèn)題完美解決,然后又使用Tomcat的8.5和9.0版本
發(fā)現(xiàn)都可以正常訪問(wèn)http://localhost:8080/
?
總結(jié):不要隨便向Java\jdk1.8.0_131\jre\lib\ext目錄下放 jar包,容易導(dǎo)致Tomcat服務(wù)器啟動(dòng)時(shí)出現(xiàn)jar沖突,出現(xiàn)java.lang.NoClassDefFoundError:?Could not initialize class org.apache.jasper.el.ELContextImpl的異常
總結(jié)
以上是生活随笔為你收集整理的无法部署应用目录 [D:\Tomcat\apache-tomcat-9.0.44\webapps\ROOT]java.lang.IllegalStateException: 启动子级时出错的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 双核心Opteron处理器
- 下一篇: 球差透射电镜测试样品的优势有哪些?