Tomcat服務(wù)器啟動(dòng)失敗的一些原因及解決辦法總結(jié)
一、Tomcat服務(wù)器啟動(dòng)失敗。
...................省略大量上面的內(nèi)容
Caused by: java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: 子容器啟動(dòng)失敗
at java.base/java.util.concurrent.FutureTask.report(FutureTask.java:122)
at java.base/java.util.concurrent.FutureTask.get(FutureTask.java:191)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:926)
... 13 more
Caused by: org.apache.catalina.LifecycleException: 子容器啟動(dòng)失敗
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:938)
at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:886)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1396)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1386)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:140)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:919)
... 13 more
Caused by: java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: 無法啟動(dòng)組件[org.apache.catalina.webresources.StandardRoot@12a94400]
at java.base/java.util.concurrent.FutureTask.report(FutureTask.java:122)
at java.base/java.util.concurrent.FutureTask.get(FutureTask.java:191)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:926)
... 21 more
Caused by: org.apache.catalina.LifecycleException: 無法啟動(dòng)組件[org.apache.catalina.webresources.StandardRoot@12a94400]
at org.apache.catalina.util.LifecycleBase.handleSubClassException(LifecycleBase.java:440)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:198)
at org.apache.catalina.core.StandardContext.resourcesStart(StandardContext.java:4834)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:4972)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1396)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1386)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:140)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:919)
... 21 more
Caused by: java.lang.IllegalArgumentException: 指定的主資源集 [G:\apache-tomcat-10.0.21-windows-x64\apache-tomcat-10.0.21\webapps\java.html] 無效
at org.apache.catalina.webresources.StandardRoot.createMainResourceSet(StandardRoot.java:762)
at org.apache.catalina.webresources.StandardRoot.startInternal(StandardRoot.java:719)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
... 30 more
06-Apr-2023 22:27:27.968 信息 [main] org.apache.coyote.AbstractProtocol.pause 暫停ProtocolHandler["http-nio-8080"]
06-Apr-2023 22:27:27.968 信息 [main] org.apache.catalina.core.StandardService.stopInternal 正在停止服務(wù)[Catalina]
06-Apr-2023 22:27:27.968 信息 [main] org.apache.coyote.AbstractProtocol.destroy 正在摧毀協(xié)議處理器 ["http-nio-8080"]
已與服務(wù)器斷開連接
(1)找原因:看最后一個(gè)Caused by:后面的內(nèi)容。
Caused by: java.lang.IllegalArgumentException: 指定的主資源集 [G:\apache-tomcat-10.0.21-windows-x64\apache-tomcat-10.0.21\webapps\java.html] 無效
這是最后一個(gè)Caused by的內(nèi)容:java.html無效。
去tomcat下的conf目錄下的server.xml文件:直接翻到最下面-看到 "/java.xml".
(2)解決:我是直接刪除"java.html",然后可運(yùn)行。
二、Tomcat工件部署出錯(cuò)。
(1)錯(cuò)誤原因1:javax.servlet.ServletContextListener。
Caused by: java.lang.ClassNotFoundException: javax.servlet.ServletContextListener。
1、jar文件沒有同步發(fā)布到自己項(xiàng)目的lib目錄中,也即是你編譯之后生成的文件內(nèi),沒有l(wèi)ib目錄(沒有jar包)
(1)解決方法一:換一個(gè)版本的Tomcat。
本來是10.0.21版本的tomcat服務(wù)器,但是一直工件錯(cuò)誤,然后找了很久都沒找到解決方法,但是 javax.servlet.ServletContextListener類是可以找到的。然后我換了個(gè)版本的服務(wù)器,出奇的竟然可以正常部署了。
(2) 解決方法二:在pom.xml文件中添加<packaging>標(biāo)簽
<packaging>war</packaging>
(3) 解決方法三:Put into Output Root
這是由于pom.xml中下載的jar包未被部署。我們先ctrl+shift+alt+s打開Project Structure窗口,選擇Artifacts,選擇要打包部署的項(xiàng)目,在Output Layout –> Web-INF查看是否有l(wèi)ib目錄,如果右邊Available Elements窗口還顯示有jar包,說明這些jar包未添加,則應(yīng)右擊選擇Put into Output Root就可以了。
注意:這些方法,說的是我的經(jīng)驗(yàn),不一定就可以解決或正確,因?yàn)橛袝r(shí)候做了某個(gè)操作莫名奇妙就可以運(yùn)行了,然后改回來之后,還是可以運(yùn)行,這個(gè)操作就存在疑問????了,因?yàn)楹茈y驗(yàn)證或者驗(yàn)證不了。
(2)出錯(cuò)原因2:NotWritablePropertyException: Invalid property 'jdbcTemplate' of bean class [dao.impl.UserDaoImpl]。
Caused by: org.springframework.beans.NotWritablePropertyException: Invalid property 'jdbcTemplate' of bean class [dao.impl.UserDaoImpl]: Bean property 'jdbcTemplate' is not writable or has an invalid setter method. Does the parameter type of the setter match the return type of the getter?
at org.springframework.beans.BeanWrapperImpl.createNotWritablePropertyException(BeanWrapperImpl.java:243)
at org.springframework.beans.AbstractNestablePropertyAccessor.processLocalProperty(AbstractNestablePropertyAccessor.java:426)
at org.springframework.beans.AbstractNestablePropertyAccessor.setPropertyValue(AbstractNestablePropertyAccessor.java:278)
at org.springframework.beans.AbstractNestablePropertyAccessor.setPropertyValue(AbstractNestablePropertyAccessor.java:266)
at org.springframework.beans.AbstractPropertyAccessor.setPropertyValues(AbstractPropertyAccessor.java:97)
at org.springframework.beans.AbstractPropertyAccessor.setPropertyValues(AbstractPropertyAccessor.java:77)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1638)
... 69 more
13-Apr-2023 12:37:32.663 信息 [RMI TCP Connection(3)-127.0.0.1] org.apache.catalina.core.ApplicationContext.log Closing Spring root WebApplicationContext
13-Apr-2023 12:37:37.082 信息 [Catalina-utility-1] org.apache.catalina.core.ApplicationContext.log ContextListener: contextInitialized()
13-Apr-2023 12:37:37.082 信息 [Catalina-utility-1] org.apache.catalina.core.ApplicationContext.log SessionListener: contextInitialized()
13-Apr-2023 12:37:37.085 信息 [Catalina-utility-1] org.apache.catalina.core.ApplicationContext.log ContextListener: attributeAdded('StockTicker', 'async.Stockticker@74aed74b')
(1)錯(cuò)誤:類沒有設(shè)置setter方法。
Invalid property 'jdbcTemplate' of bean class [dao.impl.UserDaoImpl]: Bean property 'jdbcTemplate' is not writable or has an invalid setter method.
(2)解決方法:在pom.xml文件中<packaging>war</packaging>。
我的問題是我在該類中已經(jīng)加了setter方法,但是它一直出現(xiàn)這個(gè)問題。
然后我就在pom.xml文件中添加了以下代碼。
<packaging>war</packaging>
三、Tomcat服務(wù)器啟動(dòng)時(shí)的日志是亂碼。
(1)解決方法1-環(huán)境變量。
在系統(tǒng)的環(huán)境變量中添加一個(gè)變量,名為: JAVA_TOOL_OPTIONS, 值為:-Dfile.encoding=UTF-8\n這樣就能讓server下的中文也變成UTF-8編碼。
(2)解決方法2-tomcat配置VM-options。
在tomcat配置VM- options: 填入:-Dfile.encoding=UTF-8。(這個(gè)設(shè)置后還是亂碼的,所以可以不設(shè)置這里,直接在IDEA中設(shè)置)。
(3)解決方法3-IEDA配置VM-options。
DEA help->edit custom VM options中保留-Dfile.encoding=UTF-8。
(4)解決亂碼后的顯示。
總結(jié)
到此這篇關(guān)于Tomcat服務(wù)器啟動(dòng)失敗的一些原因及解決辦法的文章就介紹到這了,更多相關(guān)Tomcat服務(wù)器啟動(dòng)失敗內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
解決Tomcat?Caused?by:?java.lang.ClassNotFoundException:?ja
這篇文章主要給大家介紹了如何解決Tomcat?Caused?by:?java.lang.ClassNotFoundException:?java.util.logging.Logger的問題,文中有詳細(xì)的原因分析及解決方法,需要的朋友可以參考下2023-10-10tomcat啟動(dòng)報(bào)錯(cuò):java.util.zip.ZipException的解決方法
這篇文章主要給大家介紹了關(guān)于tomcat啟動(dòng)報(bào):java.util.zip.ZipException錯(cuò)誤的解決方法,文中通過示例代碼介紹的非常詳細(xì),同樣遇到這個(gè)問題的朋友可以參考借鑒,下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2018-08-08利用systemctl管理Tomcat啟動(dòng)、停止、重啟及開機(jī)啟動(dòng)詳解
這篇文章主要給大家介紹了關(guān)于利用systemctl管理Tomcat啟動(dòng)、停止、重啟及開機(jī)啟動(dòng)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)學(xué)習(xí)價(jià)值,需要的朋友們下面來一起看看吧。2017-10-10nginx和tomcat訪問圖片和靜態(tài)頁面的配置方法
這篇文章主要介紹了nginx和tomcat訪問圖片和靜態(tài)頁面的配置方法,需要的朋友可以參考下2018-04-04tomcat 通過占位符設(shè)置端口的方法(即參數(shù)指定方式)
這篇文章主要介紹了tomcat 通過占位符設(shè)置端口的方法(即參數(shù)指定方式),本文通過三種方法給大家講解的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-08-08