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
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...