tomcat相關

来源:https://www.cnblogs.com/cainiaoputeng/archive/2019/07/08/11148512.html
-Advertisement-
Play Games

前言: 驗證tomcat安裝成功 安裝之後: 1.到安裝目錄下找startup.bat不閃退,並出現以下圖2為成功安裝: 再打開谷歌瀏覽器輸入: localhost:8080驗證. 1、解決Tomcat8啟動時控制臺中文亂碼問題(不止是版本8,其他版本依舊適用) 從Tomcat官網上下載下來的Tom ...


前言:

 

驗證tomcat安裝成功

 

安裝之後:

1.到安裝目錄下找startup.bat不閃退,並出現以下圖2為成功安裝:

 

再打開谷歌瀏覽器輸入: localhost:8080驗證.

 

 

 

 

1、解決Tomcat8啟動時控制臺中文亂碼問題(不止是版本8,其他版本依舊適用)

從Tomcat官網上下載下來的Tomcat,在初次運行【 bin\startup.bat】  時,控制台窗體會出現下圖所示的中文亂碼。

 

 

Tomcat控制臺中文亂碼界面

經過查看分析,應該是Tomcat的log日誌模塊在記錄時出現了中文字元不識別的問題。

在Tomcat的啟動文件“catalina.bat”中約215行可以看到如下:

 

 

如果沒有設置"%LOGGING_CONFIG%"值,則.......。

到Tomcat根目錄下“conf”子目錄下的“logging.properties”文件中查看日誌記錄的配置,找到該文件,可發現很多的“encoding = UTF-8”配置項,因此判斷是該配置項影響了Tomcat控制台的中文亂碼輸出:

 

方法(1):將所有的“encoding = UTF-8”都修改為“encoding = GBK”,使其識別支持中文,保存文件修改後,再次啟動Tomcat,則看到如下的正常控制台界面,中文亂碼不見了。

方法(2):加入 java.util.logging.ConsoleHandler.encoding = GBK ,保存文件修改後,再次啟動Tomcat,則看到如下的正常控制台界面,中文亂碼不見了。

 

 

 

2、Tomcat啟動一閃而過就消失的原因和解決方法

原因一:

(1)首先要搞明白啟動不起來的原因。方法是在命令行下,運行startup.bat文件,這樣程式就不會一閃而過,而會將啟動不起來的原因列印到視窗上。

(2)在命令行下啟動tomcat的方法讀者應該都很清楚,大體就是:cmd啟動命令行視窗→通過cd命令到tomcat的bin目錄下→運行startup.bat。

 (3)通過命令行的提示看到,這是因為電腦上沒有配置JAVA_HOME或者JRE_HOME導致的。那麼下麵添加上JAVA_HOME和JRE_HOME。具體步驟為電腦→屬性→環境變數,然後添加系統變數;

(4)添加完JAVA_HOME和JRE_HOME兩個系統變數之後,在將這兩個變數放到path系統變數中,方法是,在path變數值的後面直接追加 【;%JAVA_HOME%;%JRE_HOME%】註意!分號是環境變數的分割符號,不可少。

但是通過親自測試,發現只配置環境變數 JAVA_HOME 即可以啟動 tomcat 的 startup.bat 不發生閃退。

如果不配置  path變數中的: %JAVA_HOME%\bin;  ,則無法在命令行中正常運行java、javac和java -version 命令。

 

原因二:

 

雙擊tomcat的bin目錄下的startup.bat時一閃而過時,可以右鍵startup.bat找一個文本編輯器打開,然後在文本的最後敲上pause,保存後重新運行startup.bat,這時候視窗會留在桌面上(調試成功,把pause去掉即可)。我們可以看到DOS視窗里有錯誤信息。

 

1. The JRE_HOME environment variable is not defined correctly This environment variableis needed to run this program

原因:以前版本的tomcat需要JDK,現在的tomcat(本人的是7.0)只要有JRE就可以。 如果你裝的tomcat的是解壓版的(免安裝的)那麼則需要自己手動配置JRE_HOME 這個環境變數,否則,就會出現上面的錯誤。 解決辦法:右擊 我的電腦 - 高級 - 環境變數, 在系統變數中 新建 變數名:JRE_HOME 變數值:C:\Program Files\Java\jre7(根據你自己的JDK安裝目錄尋找JRE)

 

2.Neither the JAVA_HOME nor the JRE_HOME environment variable is defined Tomcat的startup.bat,

調用了catalina.bat,而catalina.bat則調用了setclasspath.bat,只要在setclasspath.bat的開頭聲明環境變數(紅色兩行)就可以了,原因是後來較新版本安裝完不會自動登記環境變數JAVA_HOME,JRE_HOME。 給setclasspath.bat的開頭添加紅色標記部分,如下: rem ___________________________ rem Set CLASSPATH and Java options rem rem rem ____________________________ set JAVA_HOME=C:\Program Files\Java\jdk1.6.0_20 set JRE_HOME=C:\Program Files\Java\jre6 rem Make sure prerequisite environment variables are set if not “%JAVA_HOME%” == “” goto gotJdkHome if not “%JRE_HOME%” == “” goto gotJreHome echo Neither the JAVA_HOME nor the JRE_HOME environment variable is defined echo At least one of these environment variable is needed to run this program goto exit

這樣在每次運行startup.bat時就自動註冊了JAVA_HOME,JRE_HOME。 運行startup.bat,提示“信息:Server startup in xxxxx ms” OK 大功告成。

 

3. Cannot find “”d:\apache-tomcat-6.0.32”\bin\setclasspath.bat”

 

這個時候,可能是CATALINA_HOME的值在某個地方被寫死了,像我的綠色版tomcat在bin文件下多了一個setenv.bat的文件,打開一看果然是在這裡面被寫死了CATALINA_HOME的路徑,這應該是為了某種原因被人後加上的設置文件,把這個文件刪除之後,tomcat可以正常運行了。

 

 

 

 

 

原因三:

 

如果你的環境配置沒有錯,也沒有上述兩種錯誤那麼可能你已經啟動了一個Tomcat,這樣兩個Tomcat會產生衝突。你可以在com中查看8080是否被占用:

(1)我們可以使用如下命令來找出哪個進程占用5037這個埠

        netstat -ano | findstr "5037"

 

 

 

(2)最後一列為占用5037埠的進程號,PID為9060,那麼我們可以在任務管理器里查看改進程號所對應的進程,直接右擊結束該進程即可。或者使用上面提到的taskkill命令,它主要是用來批量刪除某些進程,當然,也可以用來刪除一個進程,使用方法如下:

taskkill /PID 9060 /F        其中,/F主要是用來強制刪除。

 

你也可以查看Tomcat自帶的列印日誌在你的Tomcat的logs文件夾下如果出現了

七月 04, 2018 10:40:20 上午 org.apache.catalina.core.StandardService initInternal

嚴重: Failed to initialize connector [Connector[HTTP/1.1-8080]]

org.apache.catalina.LifecycleException: Failed to initialize component [Connector[HTTP/1.1-8080]]

 

類似的錯誤可能已經運行了一個Tomcat你可以在服務中把它終止掉,然後再運行自己的Tomcat就可以了。

 

3、啟動 tomcat 後提示警告:Can't load AMD 64-bit .dll on a IA 32-bit platform

 

將tomcat\bin下的 tcnative-1.dll 文件刪除掉,則報如下警告,並未解決問題。

問題所在:
主要是在64位的系統下安裝的虛擬機是32位的,不能在64位的平臺下載入32位的虛擬機,只能載入64位的。由於tomcat在安裝的時候載入的32虛擬機的地址,它找到的是32位的虛擬機,所以它提示不能載入64位的虛擬機(在目錄下沒有64的虛擬機)。

解決之道:

下載一個64的JDK安裝,修改JAVA_HOME。

 

 

如果設置上面之後還有問題,那麼下載32/64位集合體的Tomcat

地址:http://tomcat.apache.org/download-70.cgi

32-bit/64-bit Windows Service Installer (pgpmd5)

 直接下載地址:http://mirrors.hust.edu.cn/apache/tomcat/tomcat-7/v7.0.56/bin/apache-tomcat-7.0.56.exe

安裝這個Tomcat之後,再運行就不會出錯了。

 

如何查看jdk的版本是32位還是64位

 

在cmd下輸入java  -version來查看,如果沒有標明是多少位的,預設一般是32位的。

 

下圖為64位:

這裡寫圖片描述

 

(箭頭指示jdk版本)

還有一種比較粗曠的方式 這個從CPU說起: IA-32架構與IA-64架構 IA是Intel Architecture(英特爾體繫結構)的英語縮寫 IA-32架構有32位CPU也有64位CPU。(我們經常使用的CPU)

 

IA-64架構下有Intel64位的CPU(只有伺服器使用的CPU)

IA-32架構: 本架構的CPU都採用X86指令 Intel,AMD,Cyrix等廠家都生產X86指令集的CPU 其中32位(x86-32)的CPU有i80386,i80486,i80586,i80686,統稱i80X86,簡稱x86 其中64位(x86-64)的CPU有:2006年以後生產的PC機CPU都是64位的,簡稱x64 最大的優點在於可以全面相容以前32位x86指令的應用程式,他們都是IA-32架構。

 

由此可以簡單判斷一些軟體(svn,jdk等)的版本位數,要看軟體預設安裝的位置來進行判斷,如下圖:

這裡寫圖片描述

Program  Files預設安裝路徑在此文件下是64位數的版本;
Program  Files(x86)預設安裝路徑在此文件下是32位數的版本;

 

如何查看tomcat的位數

 

 

 

1】一般通過解壓的文件名稱可以加以判斷位數: x86即32位,64 即64 位。

 

2】在cmd命令行界面,運行tomcat/bin下的 version.bat 文件

其中  Architechture參數值就是位數。  server number 參數值就是tomcat版本號。

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 課程設計(論文)任務書 軟體 學院 軟體工程 專業 2016 -07 班 一、課程設計(論文)題目 綜合課程設計2 二、課程設計(論文)工作自 2018 年 1月 1 日起至 2018 年 1月 12 日止。 三、課程設計(論文) 地點:軟體工程實訓中心一部 四、課程設計(論文)內容要求: 1.本課 ...
  • Analysis of requirement specification of parking management system PURPOSE OF THE SYSTEM The parking management system refers to the automatic identif ...
  • 慄子回顧 簡單工廠模式: "https://www.cnblogs.com/call me devil/p/10926633.html" 運算類使用工廠方法模式實現 UML圖 代碼實現 工廠介面 運算基礎類 為節省篇章,詳見 "簡單工廠模式" ,此處省略。 以下加減乘除運算類(OperationAd ...
  • 狀態模式重構條件語句 直接上代碼: 客戶端調用: 狀態模式:當一個對象的內部狀態改變時允許改變它的行為。狀態模式主要解決的是當控制一個對象狀態轉換的條件表達式過於複雜時的情況。把狀態的判斷邏輯轉移到表示不同狀態的一系列類當中,可以把複雜的判斷邏輯簡化。 客戶端通過SetAddress(對應狀態模式中 ...
  • SpringCloud系列教程 | 第七篇:Spring Cloud Config 配置中心高可用和refresh Springboot: 2.1.6.RELEASE SpringCloud: Greenwich.SR1 如無特殊說明,本系列教程全採用以上版本 1. 引言 上一篇我們聊了Spring ...
  • 一、Dubbo框架簡介 1、框架依賴 圖例說明: 1)圖中小方塊 Protocol, Cluster, Proxy, Service, Container, Registry, Monitor 代表層或模塊,藍色的表示與業務有交互,綠色的表示只對 Dubbo 內部交互。 2)圖中背景方塊 Consu ...
  • 一面 由於知乎是用python作為主要技術棧的,在提問我階段我就問了一下主要實現等內容,面試官講解很詳細; 一面過程中,問的還是比較深的,上面的問題,答上來之後,還會繼續往深里問,不過面試官人很好,都給解答了,收穫很多; 二面 二面之前有個小插曲,hr告訴我二面面試官不在,我聽到這裡覺得一面掛了,準 ...
  • aspectBean.java applicationContext.xml Maintest文件: 執行: ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...