阿里雲CentOs7部署Tomcat運行shutdown.sh報錯

大概提示SEVERE: Could not contact localhost:8005. Tomcat may not be running.這個錯誤消息。搗鼓一番,發現是tomcat根本就沒有啓動成功導致的。

1.驗證tomcat是否啓動成功:

遠程連接你的服務器,使用xrdp或FTP工具(WinSCP)都可以,我這裏直接使用了WinSCP。

打開控制檯,輸入 ps -ef|grep tomcat,觀察如下的截圖,如果僅僅出現截圖中類似的一條記錄,則證明tomcat沒有啓動成功。

如果你看到的如下的截圖,證明tomcat啓動是ok的,本文後面的部分將對你沒有什麼幫助,直接右上角點x即可。

2.讓tomcat正常跑起來

2.1修改java.security文件

找到jdk的路徑,使用如下的三條指令即可看到jdk真實目錄: 

which java 

ls -lrt /usr/bin/java 

ls -lrt /etc/alternatives/java
跳轉到jdk目錄,找到java.securty文件,如圖:

將securerandom.source那一行修改爲 securerandom.source=file:/dev/./urandom 即可,重新嘗試啓動tomcat,驗證是否成功,如果還不成功,則就要看日誌了。

2.2根據日誌分析問題

找到tomcat安裝路徑,例如我的路徑/usr/local/apache-tomcat-8.5.32/logs,找到最近的catalina日誌。

日誌提示信息如下:

03-Aug-2018 16:22:50.522 SEVERE [Catalina-startStop-1] org.apache.catalina.core.ContainerBase.startInternal A child container failed during start
 java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[]]
    at java.util.concurrent.FutureTask.report(FutureTask.java:122)
    at java.util.concurrent.FutureTask.get(FutureTask.java:192)
    at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:941)
    at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:872)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1421)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1411)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[]]
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:167)
    ... 6 more
Caused by: org.apache.catalina.LifecycleException: Failed to start component [org.apache.catalina.webresources.StandardRoot@13af2a8b]
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:167)
    at org.apache.catalina.core.StandardContext.resourcesStart(StandardContext.java:4907)
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5042)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    ... 6 more
Caused by: java.lang.IllegalArgumentException: The main resource set specified [/demo-0.0.1-SNAPSHOT] is not valid
    at org.apache.catalina.webresources.StandardRoot.createMainResourceSet(StandardRoot.java:748)
    at org.apache.catalina.webresources.StandardRoot.startInternal(StandardRoot.java:706)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    ... 9 more

 

顯然日誌提示我的項目路徑不正確。

找到conf下server.xml文件,發現目前的docBase路徑是帶了 ‘/’ 的,去掉 ‘/’ 改成如下即可。

原來的:<Context path="" docBase="/demo-0.0.1-SNAPSHOT" debug="0" reloadable="true"></Context>

新的:   <Context path="" docBase="demo-0.0.1-SNAPSHOT" debug="0" reloadable="true"></Context>

然後重新啓動tomcat,一切ok!

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章