Tomcat服務器啟動失敗的一些原因及解決辦法總結(jié)
一、Tomcat服務器啟動失敗。
...................省略大量上面的內(nèi)容
Caused by: java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: 子容器啟動失敗
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: 子容器啟動失敗
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: 無法啟動組件[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: 無法啟動組件[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 正在停止服務[Catalina]
06-Apr-2023 22:27:27.968 信息 [main] org.apache.coyote.AbstractProtocol.destroy 正在摧毀協(xié)議處理器 ["http-nio-8080"]
已與服務器斷開連接
(1)找原因:看最后一個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] 無效
這是最后一個Caused by的內(nèi)容:java.html無效。
去tomcat下的conf目錄下的server.xml文件:直接翻到最下面-看到 "/java.xml".
(2)解決:我是直接刪除"java.html",然后可運行。
二、Tomcat工件部署出錯。
(1)錯誤原因1:javax.servlet.ServletContextListener。
Caused by: java.lang.ClassNotFoundException: javax.servlet.ServletContextListener。
1、jar文件沒有同步發(fā)布到自己項目的lib目錄中,也即是你編譯之后生成的文件內(nèi),沒有l(wèi)ib目錄(沒有jar包)
(1)解決方法一:換一個版本的Tomcat。
本來是10.0.21版本的tomcat服務器,但是一直工件錯誤,然后找了很久都沒找到解決方法,但是 javax.servlet.ServletContextListener類是可以找到的。然后我換了個版本的服務器,出奇的竟然可以正常部署了。
(2) 解決方法二:在pom.xml文件中添加<packaging>標簽
<packaging>war</packaging>
(3) 解決方法三:Put into Output Root
這是由于pom.xml中下載的jar包未被部署。我們先ctrl+shift+alt+s打開Project Structure窗口,選擇Artifacts,選擇要打包部署的項目,在Output Layout –> Web-INF查看是否有l(wèi)ib目錄,如果右邊Available Elements窗口還顯示有jar包,說明這些jar包未添加,則應右擊選擇Put into Output Root就可以了。
注意:這些方法,說的是我的經(jīng)驗,不一定就可以解決或正確,因為有時候做了某個操作莫名奇妙就可以運行了,然后改回來之后,還是可以運行,這個操作就存在疑問????了,因為很難驗證或者驗證不了。
(2)出錯原因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)錯誤:類沒有設置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)這個問題。
然后我就在pom.xml文件中添加了以下代碼。
<packaging>war</packaging>
三、Tomcat服務器啟動時的日志是亂碼。
(1)解決方法1-環(huán)境變量。
在系統(tǒng)的環(huán)境變量中添加一個變量,名為: JAVA_TOOL_OPTIONS, 值為:-Dfile.encoding=UTF-8\n這樣就能讓server下的中文也變成UTF-8編碼。
(2)解決方法2-tomcat配置VM-options。
在tomcat配置VM- options: 填入:-Dfile.encoding=UTF-8。(這個設置后還是亂碼的,所以可以不設置這里,直接在IDEA中設置)。
(3)解決方法3-IEDA配置VM-options。
DEA help->edit custom VM options中保留-Dfile.encoding=UTF-8。
(4)解決亂碼后的顯示。
總結(jié)
到此這篇關于Tomcat服務器啟動失敗的一些原因及解決辦法的文章就介紹到這了,更多相關Tomcat服務器啟動失敗內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
解決Tomcat?Caused?by:?java.lang.ClassNotFoundException:?ja
這篇文章主要給大家介紹了如何解決Tomcat?Caused?by:?java.lang.ClassNotFoundException:?java.util.logging.Logger的問題,文中有詳細的原因分析及解決方法,需要的朋友可以參考下2023-10-10tomcat啟動報錯:java.util.zip.ZipException的解決方法
這篇文章主要給大家介紹了關于tomcat啟動報:java.util.zip.ZipException錯誤的解決方法,文中通過示例代碼介紹的非常詳細,同樣遇到這個問題的朋友可以參考借鑒,下面隨著小編來一起學習學習吧2018-08-08利用systemctl管理Tomcat啟動、停止、重啟及開機啟動詳解
這篇文章主要給大家介紹了關于利用systemctl管理Tomcat啟動、停止、重啟及開機啟動的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習學習價值,需要的朋友們下面來一起看看吧。2017-10-10nginx和tomcat訪問圖片和靜態(tài)頁面的配置方法
這篇文章主要介紹了nginx和tomcat訪問圖片和靜態(tài)頁面的配置方法,需要的朋友可以參考下2018-04-04tomcat 通過占位符設置端口的方法(即參數(shù)指定方式)
這篇文章主要介紹了tomcat 通過占位符設置端口的方法(即參數(shù)指定方式),本文通過三種方法給大家講解的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-08-08