Tomcat部署Web應用方面的一些問題(多Tomcat、指定Java、位元組碼替換)

來源:互聯網
上載者:User

Tomcat部署Web應用方面的一些問題(多Tomcat、指定Java、位元組碼替換)

這篇博文操作的系統內容為CentOS系統,目標是在該系統中部署一個Tomcat以及跑在該Tomcat上的一個Java Web應用。部署的系統內容有限制,主要表現在:該主機上已部署Tomcat,新部署的Tomcat應不影響原Tomcat及相應應用的訪問;此外,系統上已安裝某一版本的Java,已設定JAVA_HOME等環境變數,而當前應用依賴另一版本的Java,

因此需要在不影響原應用、環境變數配置的基礎上解決依賴問題。

Tomcat安裝

  安裝前需準備好Java環境,配置好JAVA_HOME環境變數(jdk-7u67-linux-x64.rpm)。然後下載Tomcat程式,這裡以apache-tomcat-7.0.42.tar.gz為例介紹,可以通過http://pan.baidu.com/s/1i39wjfZ下載。將Tomcat安裝檔案下載至/usr/local目錄下,並解壓,將目錄名重新命名為tomcat,因此Tomcat檔案被安裝至/usr/local/tomcat下。
  進入/usr/local/tomcat/conf目錄,編寫設定檔server.xml,修改Tomcat相關配置資訊,比如連接埠號碼等。
  然後進入/usr/local/tomcat/bin目錄下執行,開啟和停止的命令分別是:

./startup.sh./shutdown.sh

為了便於管理該tomcat,可以將其做成系統服務,並隨開機自啟動,這樣處理以後,可以通過service命令開啟和關閉。具體做法是:

在/etc/init.d/目錄下建立一個系統服務,假如服務名為my_tomcat,則在/etc/init.d/下建立檔案my_tomcat,檔案內容如下;
通過“chmod 777 my_tomcat”變更檔許可權,使其具有可執行許可權; 然後通過“chkconfig –add my_tomcat”添加系統服務,添加完成後可以通過“chkconfig –list | grep my_tomcat”查看; 通過“chkconfig my_tomcat on”設定開機自啟動
#!/bin/bash# chkconfig: - 99 35#description: manage tomcatRETVAL=0start(){ echo 'Try to start My Tomcat' cd /usr/local/tomcat/bin ./startup.sh}stop(){ echo 'Try to stop My Tomcat' cd /usr/local/tomcat/bin ./shutdown.sh}# See how we were called.case "$1" in start) start ;; stop) stop ;; restart) stop start ;;esacexit $RETVAL
部署多個Tomcat

  首先是在一台主機上,在不影響原有Tomcat和應用的基礎上部署新的Tomcat Web伺服器,即部署多個Tomcat的問題。
  只要解決各Tomcat連接埠衝突的問題,就能實現多個Tomcat在同一台主機上運行,解決辦法是配置Tomcat的連接埠資訊,使各Tomcat運行過程中不發生連接埠衝突。需要關注的連接埠主要時以下幾個預設連接埠:
8005 SHUTDOWN連接埠:
為避免衝突,看情況改成8006連接埠

8080 訪問連接埠
可改成其他連接埠

8009 AJP連接埠
看情況可改成8010連接埠

  將上面三類連接埠修改後,就可以避免多個Tomcat之間的衝突

Tomcat指定Java

  前面介紹了怎麼在一台主機上同時運行多個Tomcat,而一台主機上也可以部署多個Java,只是環境變數裡只能指定一個。同時,也可以為Tomcat專門指定一個Java,而不必是JAVA_HOME中指定的那個。具體做法是修改Tomcat bin目錄下的setclasspath.sh指令碼,在使用JAVA_HOME和JRE_HOME之前,定義這兩個變數。

export JAVA_HOME=/usr/java/jdk1.7.0_67export JRE_HOME=/usr/java/jdk1.7.0_67/jre
Java Web應用修改後位元組碼替換

  Java Web應用部署到Tomcat之後,有時會對應用某部分代碼進行了修改,為了使修改生效,有時需要重新部署應用。但是這時不必將所有內容重新部署(刪除、替換),對於普通的JSP檔案很簡單,直接替換JSP檔案即可。對於Sevlet、Java等需要編譯成位元組碼的來源程式的修改,則只需將修改後編譯得到的位元組碼替換即可。編譯後的位元組碼位置位於WEB-INF目錄下的classes目錄。因此,修改代碼後在本地重新部署,然後找到本地應用的WEB-INF/classes目錄下的相應.class檔案,替換伺服器上相應檔案即可。需要注意的是:修改後需重啟tomcat才會生效。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.