iT邦幫忙

2022 iThome 鐵人賽

DAY 8
0
DevOps

30天WebSphere入門及經驗分享系列 第 8

D08/在WebSphere 更新應用程式

  • 分享至 

  • xImage
  •  

昨天成功在WebSphere上建立jndi,也透過WAS上的連線測試確認能夠成功連線到DB了

今天我想要更新我的war檔,在程式裡讀取DB資料
以驗證我的程式是真的可以透過WebSphere的jndi來連線到DB

修改好程式之後,
我通常會透過以下兩種做法來更新程式,

一、完整換版(重新匯出一包新的war檔,完整更新)
只需要透過WAS CONSOLE頁面來更新應用程式
作法:
左側選單[Applications] > [Application Types] >
[WebSphere enterprise applications]
https://ithelp.ithome.com.tw/upload/images/20220923/20128973G5hcwTVfTu.png
勾選要更新的程式,並按下update
進入頁面後,選擇 Replace the entire application
https://ithelp.ithome.com.tw/upload/images/20220923/20128973ZJbpp52Ll9.png
上傳war檔並按下Next,接下來與D03/在WebSphere 部屬應用程式安裝應用程式的步驟大同小異,最後存檔就更新完畢了。

優:簡單,只要按按鈕就換好了。
缺:隨著需求日積月累的異動,war檔也會愈加肥大,當war檔大到一個程度後,整包更新上去WAS也會愈來愈花時間

二、部分換版(只把有異動的部分挑出來進行更新)
就是只把有改動或新增的部分更新上去,通常我習慣直接用FileZilla覆蓋檔案,
覆蓋檔案的目的地是在WebSphere的安裝目錄下
以我們container中的BASE版為例
是在/opt/IBM/WebSphere/AppServer/profiles/AppSrv01/installedApps/DefaultCell01
https://ithelp.ithome.com.tw/upload/images/20220924/20128973u4ADkXldf1.png
這裡可以看到我們安裝的程式被包在一個.ear的目錄底下,只要將自己想替換的class檔放到裡面相對應的目錄即可。

此外也可以用console來做更新,就是剛剛更新程式頁面裡Replace the entire application之外的其他選項
https://ithelp.ithome.com.tw/upload/images/20220923/201289734S5tAoPUe0.png

我在Servlet中加了一段利用jndi連DB取資料,並回傳字串的功能,編譯好之後,利用docker cp 的指令copy進container,並替換掉舊的class,預期可以在頁面看到db帶出的 Hello World 字串,但事情沒想像中順利,
https://ithelp.ithome.com.tw/upload/images/20220924/20128973tqAZBAoXYV.png

明天來試著debug吧


上一篇
D07/在WebSphere 建立資料庫連線池(三)
下一篇
D09/WebSphere Log & Debug(一)
系列文
30天WebSphere入門及經驗分享36
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言