IDEA構建Web專案,生成war包,以及部署到雲伺服器需要注意的問題


  我們的目標是執行web程式生成war包進而釋出在ECS(雲主機)上,使得可以公網進行訪問。
  有教程說可以在伺服器已經部署好的前提下直接自動釋出到伺服器的Tomcat,我嘗試了幾次沒有成功,決定還是乖乖地複製過去,手動釋出吧(有想嘗試的可以去搜一下,有點點小複雜)。
  為了講解清晰,先從建立一個新的專案講起吧。

一,首先是在IDEA上新建web工程

  
1.File->New Project選擇Web Application


圖1.1


圖1.2

2.填寫好專案的名字和路徑,點選確定,生成了最簡單的檔案目錄

3.在WEB-INF目錄下右鍵選擇NEW->Directory,建立classes和lib兩個目錄
  classes用來存放專案編譯後的java檔案,lib用來存放jar包(類庫)。


圖1.3

4.下面設定專案的資源路徑
  點選File->Project Structure->點選Modules->然後選中專案->在右側選中Paths


圖1.4

  –>選中Use module compile output path–>修改兩個路徑都為剛才建立的class目錄


圖1.5

5.選擇Dependencies選項卡
  點選右邊的綠色 號–>選擇第一項JARs or dirctories–>選擇剛才建立的lib資料夾


圖1.6

6.接下來配置Tomcat
點選右上角執行健左側的tomcat標誌進入配置Tomcat的視窗:


圖1.7

  點選左上角綠色 號 ->Tomcat Server->local,建立一個新的Tomcat容器.
  –>輸入新的服務名
  –>點選Application後的”Configure…”按鈕,會彈出一個Application Servers按鈕,在Tomcat處選擇本地Tomcat安裝目錄即可。(這裡會很智慧的直接找到你的安裝目錄,不需要自己去找,很智慧)
  如果點選綠色加號找不到Tomcat Server,就點一下下方的33 items more,應該是在裡面,要是還是找不到的話,一個是搜一下tomcat的安裝,再一個可能就是你安裝的版本不對,看看是不是社群版的,這個版本免費但是功能不全,推薦下載旗艦版再破解。


圖1.8

  這個時候你的Tomcat應該是帶著一個紅色的叉號的,是因為我們還沒有配置artifacts

7.接下來在Tomcat上部署我們的專案
  首先配置打包方式artifacts,點選Artifacts選項卡


圖1.9

  接下來,點選Run->Edit Configurations進入Run/Debug Configurations視窗
  –>選中上一步配好的Tomcat
  –>點選“Deployment”選項卡
  –>點選右上角的綠色 號->Artifact…


圖1.10

  然後變成這樣


圖1.11

  Application context就是這個web訪問路徑的後續
  當我們部署在本地且埠設定為8080時:因為我設定Application context為空,則訪問路徑為:http://localhost:8080/, 但是當有多個專案要釋出時,這樣會容易混亂,所以我們一般以專案名為Application context進行區分,則訪問路徑為 http://localhost:8080/專案名/
  到這裡配置工作就結束了,接下來開始匯出war包

二.匯出war包

  匯出war包主要區別是我們不用它預設的方式,而是選擇新的打包方式Artifacts

 選項中有web application exploded,這個是以資料夾形式(War Exploded)釋出專案,選擇這個,釋出專案時就會自動生成資料夾在指定的output directory,
 如果選web application archive,就是war包形式,每次都會重新打包全部的,將專案打成一個war包在指定位置;

  因此我們選擇web application archive


圖2.1

  完成下面的配置


圖2.2

  接下來還需要新增Directory Contents,否則會出現打包成功但是在resource下的檔案不成功,地址指向web的根目錄。


圖2.3


圖2.4

然後執行專案,就可以在制定路徑下找到war包了(路徑設定看圖2.2)。

三.將war包釋出到雲伺服器及注意事項

1.首先是需要在伺服器上將Java-jdk(java編譯環境),資料庫和Tomcat安裝並配置好


圖3.1 我的雲伺服器配置

  很多雲伺服器在購買的時候已經預設安裝了jdk和Tomcat,可以先找一下安裝路徑。但是需要注意的是大多數的雲伺服器是沒有配置環境變數的,也就是新建CLASSPATH等系統變數需要我們手動操作。
  我買的是阿里雲的ECS,基礎版的,配置很低,(學生的話可以買學生版的,會便宜很多)。我預裝的系統就包含了JDK和Tomcat,我有安裝了輕量版的資料庫MySQL。
  有人需要一些上傳軟體,不知道是不是Linux系統的限制,我都是直接在我這邊本地複製然後粘到遠端伺服器上就好了(小檔案沒問題,大檔案的話一個是慢,再一個可能會丟包)
  將war包複製到tomcat安裝路徑下的webapps下,重啟一下tomcat服務就會自動將war包解壓併發布,在webapps下會出現一個同名資料夾。釋出成功。
  
  訪問地址是:http://伺服器IP:埠號/war包名/

  舉例;http://30.29.30.216:8080/server/
  
            這裡有幾個地方主要注意:

1.檢視埠是否被佔用

  首先你需要在阿里雲的控制檯多開幾個常用的埠(比如80,8080,3306,8888之類的)對於如何開埠百度一下很簡單的,這裡就不贅述了。
  像我就有一個埠(3306)被MySQL佔了,用來和server進行互聯,80被IIS佔用了。8080被我搭建的本地Git庫佔用了(為了程式碼的私有性以及協作開發,放置在GitHub的雲上就變成純粹的開源了,一定的保密性是實驗室需要)。故而我將8888分配給Tomcat並變成預設埠。

  WIN R 出現執行框,輸入cmd敲回車,輸入“netstat -a -n”,檢視埠是否被佔用


圖3.2 檢視埠占用情況

2.修改Tomcat預設埠

  找到tomcat安裝路徑下的conf路徑,找到 server.xml檔案,可以用記事本開啟(強烈建議下一個Notepad ,有很多檔案是沒法正常開啟的)


圖3.3

  修改預設埠


圖3.4 將出現了被佔用的埠修改成你新開放的埠號

3.tomcat的開始服務是一次性的

  在你使用tomcat bin路徑下的startup.bat開啟服務時,會出現一個黑色的命令視窗,一定要等他執行完,等出現startup時才是開啟成功了,不成功的話可以回去再看一下埠是不是被佔用了,同時還要注意一下前面自己的專案有沒有部署成功。在日誌裡有寫。但是這視窗不能關,一關就把tomcat給關了,很麻煩。
  
  我們需要新建一個tomcat的服務,並使之一直自動開啟。在Dos介面下進入Tomcat的解壓bin目錄下,輸入“service.bat install tomcat1”,tomcat1是服務的名字,可以任意修改。


圖3.5 路徑請換成自己的安裝路徑

  出現上圖的結果則安裝成功。下面執行bin下的shotdown.bat將服務關掉,然後cmd 輸入services.msc,找到這個服務開啟並將之設定成自動開啟。這樣就設定成功了。
  這樣的話伺服器端的配置就差不多完成了。