昨天成功在WebSphere上建立jndi,也透過WAS上的連線測試確認能夠成功連線到DB了
今天我想要更新我的war檔,在程式裡讀取DB資料
以驗證我的程式是真的可以透過WebSphere的jndi來連線到DB
修改好程式之後,
我通常會透過以下兩種做法來更新程式,
一、完整換版(重新匯出一包新的war檔,完整更新)
只需要透過WAS CONSOLE頁面來更新應用程式
作法:
左側選單[Applications] > [Application Types] >
[WebSphere enterprise applications]
勾選要更新的程式,並按下update
進入頁面後,選擇 Replace the entire application
上傳war檔並按下Next,接下來與D03/在WebSphere 部屬應用程式安裝應用程式的步驟大同小異,最後存檔就更新完畢了。
優:簡單,只要按按鈕就換好了。
缺:隨著需求日積月累的異動,war檔也會愈加肥大,當war檔大到一個程度後,整包更新上去WAS也會愈來愈花時間
二、部分換版(只把有異動的部分挑出來進行更新)
就是只把有改動或新增的部分更新上去,通常我習慣直接用FileZilla覆蓋檔案,
覆蓋檔案的目的地是在WebSphere的安裝目錄下
以我們container中的BASE版為例
是在/opt/IBM/WebSphere/AppServer/profiles/AppSrv01/installedApps/DefaultCell01
這裡可以看到我們安裝的程式被包在一個.ear的目錄底下,只要將自己想替換的class檔放到裡面相對應的目錄即可。
此外也可以用console來做更新,就是剛剛更新程式頁面裡Replace the entire application之外的其他選項
我在Servlet中加了一段利用jndi連DB取資料,並回傳字串的功能,編譯好之後,利用docker cp 的指令copy進container,並替換掉舊的class,預期可以在頁面看到db帶出的 Hello World 字串,但事情沒想像中順利,
明天來試著debug吧