xx系統第一期工程完成,今天老大要我去部署系統,從來就沒有在tomcat下部署過,一直都是在myeclipse下部署、啟動、運行即可,所以這次遇到了幾個問題,記錄下來。
tomcat啟動
在安裝tomcat后,配置好環境變量,雙擊tomcat\bin路徑下的startup.bat,並沒有出現我預期的命令框,而是一閃而過。這里肯定有錯,至於是什么錯誤我還不知道,所以cmd命令啟動報如下錯誤:
The CATALINA_HOME enviernment variable is not defined correctly
This environment variable is needed to run this program
大致的意思就是說運行這個程序需要的環境變量CATALINA_HOME沒有定義。對於這個CATALINA_HOME是什么東東我還真的木有遇到過,百度一把:原來在Tomcat 4.0以后采用了新的Servlet容器Catalina,所以很顯然CATALINA_HOME是tomcat運行時的環境變量,類似於JAVA_HOME。所以在環境變量中配置CATALINA_HOME=” D:\tomcat-6.0.29\tomcat-6.0.29”,該值為tomcat的解壓(安裝)路勁。
重新啟動tomcat即可。
總結:在啟動tomcat時我們配置的環境變量應該包括如下幾個:JAVA_HOME、classpath、Path、CATALINA_HOME。
在tomcat下部署項目
在tomcat下部署項目主要有如下三種方式:
第一種:直接拷貝。將項目下的WebRoot文件夾復制到$CATALINA_HOME\webapps路勁下,命名為qyzygl,啟動服務即可,這種方式非常簡單,也是想我這樣的初學者經常用到的方式。訪問地址如下:
http://localhost:8080/qyzygl
第二種:這種方式並不需要將項目拷貝到webapps路徑下,可以直接F:/路徑下部署。方法如下:更改$CATALINA_HOME\conf\server.xml文件,在<host>標簽內添加<Context>標簽,內容如下:<Context docBase="D:/creator/workspace/qyzygl/WebRoot" reloadable="false" path="/ qyzygl "/>。其中reloadable="false"表示當應用程序中的內容發生更改之后服務器不會自動加載,這個屬性在開發階段通常都設為true,方便開發,在發布階段應該設置為false,提高應用程序的訪問速度。docBase為路徑,可以使用絕對路徑,也可以使用相對路徑,相對路徑相對於webapps。 path屬性的值是訪問時的根地址。訪問地址如下:http://localhost:8080/qyzygl
第三種:CATALINA_HOME\conf\Catalina\localhost中添加一個xml文件,如qyzygl.xml,內容如下:<Context docBase="F:/qyzygl" reloadable="false" />大家可能發現和第二種方式差不多,但是缺少了path屬性,這種方式服務器會使用.xml的名字作為path屬性的值。訪問地址如下:http://localhost:8080/qyzygl/
第四種:使用.war文件包
其實前面三種我們一直都是將qyzygl文件部署在服務器中,其實我們可以將應用程序打包成.war包,然后再部署在服務器上。打包步驟如下:
打開cmd命令提示符。
在命令提示框中進入D:/creator/workspace/qyzygl文件中,然后輸入如下命令:jar cvf qyzygl.war */.然后提示框會出現非常多的類似於xxx寫入之類的,這個過程就是在將qyzygl文件中的內容打包成.war文件,完成之后會在該目錄下生成qyzygl.war文件。
部署.war文件非常簡單,將.war文件拷貝到webapps文件路徑下或者將docBase=” D:/creator/workspace/qyzygl/WebRoot”更改為docBase="F:\qyzygl.war"即可。重寫啟動服務就可以完成部署了。
