Java Web專案部署至Linux伺服器的步驟及問題詳解
部門接手公司內部需求的一個小專案,從設計到研發自主完成,期間遇到了不少困難。部署過程也是坎坷,特此寫篇文章記錄一下,也為新手們填個坑~高手請跳過~~
一、部署環境搭建(此步驟參考)
本人使用的公司內建的伺服器,如有需求,可使用阿里雲等雲服務商的雲主機,購買過程什麼的就不說了,各位可以自行百度。下面主要介紹Java Web執行環境的搭建。
1、安裝JDK
step1:下載JDK,由於部署的伺服器是linux,所以選擇x86的tar.gz包;下載完成後傳到linux的目錄下(本人放置的目錄為/usr/java)
step2:解壓jdk的tar檔案到指定的目錄
step3:配置環境變數
vi /etc/profile
新增如下程式碼
#set java environment
export JAVA_HOME=/usr/java/jdk/jdk1.8.0_161
export JRE_HOME=/usr/java/jdk/jdk1.8.0_161/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$JAVA_HOME:$PATH
儲存後執行
source /etc/profile
step4:驗證安裝是否成功
輸入
java -version
出現如下介面即說明安裝成功
2、安裝Tomcat
step1:下載Tomcat,上傳至伺服器的相關目錄下(本人的是/usr/java/tomcat)
step2:解壓tomcat的tar檔案到指定的目錄
tar zxvf apache-tomcat-7.0.85
step3:配置Tomcat環境
進入Tomcat資料夾的bin目錄下,開啟setclasspath.sh
vi setclasspath.sh
新增路徑
export JAVA_HOME=/usr/java/jdk/jdk1.8.0_161 export JRE_HOME=/usr/java/jdk/jdk1.8.0_161/jre
儲存後返回bin目錄下執行
./startup.sh
step4:驗證安裝是否成功
出現如下介面說明安裝成功
或輸入IP:8080訪問
至此部署環境就搭建好了,下面介紹將java web部署至伺服器
二、上傳Java Web專案
1、有幾種部署方式,本文介紹是最簡單的靜態部署方式:直接將W eb專案檔案拷貝到webapps目錄中,其他部署方式請參見:Tomcat部署方式
2、上傳方式
Step1:使用eclipse打包war包,右鍵專案-Export-WAR file
選擇路徑,一般而言不選擇Export source file
Step2:上傳至tomcat的webapps下,會自動解壓
step3:訪問http://IP:8080/TEST(專案名)即可
三、部署問題詳解
部署會出現各種各樣的問題,解決的話要看tomcat的log資訊,根據報錯解決;其中有個log檔案比較重要
檢視catalina.out
cat catalina.out
以下是我本次部署遇到的問題
1、靜態頁面可正常顯示,凡是涉及資料庫互動的頁面均報錯(本地程式無錯誤)
報錯:java.net.BindException
解決方法:該問題是8005埠被佔用,去Tomcat的tomcat/conf/server.xml中修改埠至未被使用的8006,然後重啟Tomcat即可
2、資料庫連線超時(此解決方法參考)
報錯:
解決方法:該錯誤是由於MySql連線超時所致,在JDBC連線程式碼加入即可
?autoReconnect=true&autoReconnectForPools=true
四、部署更新(此步驟參考)
Step1: 停止tomcat
Step2: 清理tomcat下,webapps的war包解壓目錄、war包
Step3:上傳新的war包
Step4:啟動tomcat
五、修改配置檔案使得通過訪問域名可以直接訪問主頁
Step1:修改web.xml使得輸入IP和埠號和專案名可直接訪問專案主頁
Step2:修改server.xml使得tomcat的8080埠變為域名預設埠80
Step3:修改server.xml使得tomcat預設為當前專案
在<Host></Host>內新增
<Context docBase="test" path="/" reloadable="true" source="org.eclipse.jst.jee.server:LeanFileUpload"/>
這樣就大功告成啦~~~