omcat是常見的免費的web服務器,非常好用,但是經常會出現各種錯誤。
(Tomcat資源:https://download.csdn.net/download/june_anlanruoshui/10826865)
運行Tomcat/bin/startup.bat時閃退,可以在startup.bat最后加入一句pause,使運行窗口不關閉,便于排錯(調試完成記得刪除)
一、 沒有正確定義JRE_HOME環境變量。
Error:the JRE_HOME environment variable is not defined correctly
如圖:
解決辦法:
重新檢查JDK配置。
配置方法:
找到“我的電腦”,右鍵打開屬性->高級系統設置->環境變量:
配置JAVA_HOME:
修改變量 Path ,在最前面加上 %JAVA_HOME%\bin;
(這是win10如果是其他版本的加在Path前面即可)
(在命令行中運行java -version 檢查當前JDK是否配置成功)
二、無法創建Java虛擬機
出現如下錯誤:
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
錯誤:無法創建Java虛擬機。
錯誤:發生致命異常。程序將會退出。
解決辦法:
這個可能是 jdk 與 tomcat 版本不一致 導致的,可以嘗試升級tomcat版本,或者降低 /升級jdk版本。查找對應的版本再安裝嘗試一下。
(在命令行中運行java -version 可以檢查當前JDK的版本)
三、CATALINA_HOME,CATALINA_BASE的配置錯誤
出現如下錯誤:
解決辦法:
在環境變量中刪除CATALINA_HOME,CATALINA_BASE的配置(如果沒有在環境變量里配置過,那么會自動采用bin目錄的父目錄)。
或者把CATALINA_HOME、CATALINA_BASE設置為正確的TOMCAT目錄。
環境參數正確會顯示如下圖:
(“D:\tomcat”是我的tomcat文件路徑)
四:端口已被占用
端口已被占用(我簡單以80端口為例,請根據實際情況判斷)
Error:Address already in use: JVM_Bind :80
比如:如果你先單獨打開了tomcat,又試圖在eclipse或IDEA里啟動它,相當于是啟動兩次,當然端口會被占用了。
解決辦法:
在運行中輸入cmd:
輸入:netstat -ano|findstr “80” 查看 端口號包含"80"的占用情況(如圖有三個端口同時開啟)
輸入:tasklist|findstr “1828” 查找端口使用者(為java.exe)
輸入taskkill /f /t /im java.exe 終止對應進程
五、缺少APR
出現如下:
The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path:
出現這種情況是這表示沒有找到APR。
解決辦法:
去 http://tomcat.heanet.ie/native/ 下載編譯好的tcnative-1.dll文件拷貝至jdk\bin下,再啟動就可以成功加載APR了。
(在我給的Tomcat資源里面有:https://download.csdn.net/download/june_anlanruoshui/10826865)
六:JDK不兼容
出現如下:
NOTE: Picked up JDK_JAVA_OPTIONS: --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED
JDK不兼容:解決辦法同第二點,檢查tomcat和JDK版本
七、持久化異常
出現Exception loading sessions from persistent storage
該問題的原因是tomcat的session持久化機制引起的,在%TOMCAT%/work/Catalina/localhost/session.ser 這個文件里,因為tomcat非正常關閉,所以這個文件沒有正確地結束(無EOF標記)
解決辦法:
1、只需要刪除 session.ser文件即可。
2、關閉tomcat的持久化功能,就能一勞永逸的解決這個問題。具體為修改conf下的server.xml文件。在項目的context間加入一句代碼
八、給tomcat指定特定的JDK
修改bin文件夾下面的setclasspath.bat文件
set “JRE_HOME=%JAVA_HOME%”
修改為:
set “JRE_HOME=E:\Java\jdk1.8.0.65”
(根據自己的JDK路徑修改)
九、修改端口:
打開…\conf\server.xml
修改“8080”處端口號(tomcat默認端口為8080)
十、利用tomcat部署:
將項目文件放入tomcat\webapps\ROOT
(此處簡單以test.html為例)
如出現404錯誤:請檢查文件是否存在/端口是否正確/環境變量是否無誤/Tomcat是否啟動/訪問資源和文件名是否正確……等
Jenkins部署方式有多種,今天要講的是在Windows環境上使用tomcat來部署。因為本次部署的是tomcat9,首先要確保JAVA環境的JDK是不低于1.8的。
進入到tomcat的官網,下載對應的系統版本,如下圖:
下載后解壓重命名tomcat9,進入E:\tomcat9\bin目錄,雙擊startup.bat來啟動,發現啟動命令行有亂碼,如下圖:
打開E:\tomcat9\conf\logging.properties文件,注釋掉下圖中圈中的:
java.util.logging.ConsoleHandler.encoding = UTF-8
重新啟動E:\tomcat9\bin\startup.bat,亂碼已解決,如下圖:
瀏覽器輸入http://localhost:8080/,界面如下:
進入到Jenkins中文官網,下載war包
把war包放到E:\tomcat9\webapps下,如下圖:
重新啟動E:\tomcat9\bin\startup.bat,瀏覽器輸入http://localhost:8080/jenkins,打開界面如下:
根據上面的提示,打開C:\Users\lgp\.jenkins\secrets\initialAdminPassword文件,輸入里面的一串字符,點繼續后,稍等一會,頁面展現如下:
咱們來選擇安裝推薦的插件,點擊后,頁面展現如下:
等插件安裝完成后,頁面展現如下:
上面5個字段輸入內容后,點擊保存并完成,頁面展現如下:
URL默認即可,點擊保存并完成,頁面展示如下:
點擊開始使用Jenkins按鈕,頁面展示如下:
頁面是空白的,重新啟動E:\tomcat9\bin\startup.bat即可:
登錄后,就看到熟悉的界面了:
發現tomcat日志里面顯示好多警告,看著是不是有點不爽
打開E:\tomcat9\conf\context.xml文件,加入以下內容即可:
<Resources cachingAllowed="true" cacheMaxSize="1024000" />
重新啟動E:\tomcat9\bin\startup.bat,又看到下面的警告:
進入http://localhost:8080/jenkins/configureSecurity/頁面,去掉防止跨站點請求偽造的勾選并保存,但是保存后頁面還會有個相關的小警告,點擊不在顯示按鈕即可
重新啟動E:\tomcat9\bin\startup.bat,tomcat命令行就不會有相應的警告了
然后進入到http://localhost:8080/jenkins/manage頁面,看到下面的錯誤信息,暫時沒有找到解決方案,據說這個報錯不影響使用的,可以先忽略,點擊不在顯示按鈕就行了