遠端除錯docker構建的weblogic
環境資訊
OSType:
CentOS Linux 7 (Core) x86_64 3.10.0-957.21.3.el7.x86_64
DockerVersion:
19.03.8
Mirrors:
http://ovfftd6p.mirror.aliyuncs.com/
http://registry.docker-cn.com/
http://docker.mirrors.ustc.edu.cn/
http://hub-mirror.c.163.com/
WeblogicVersion:
12.2.1.3 - developer
部署Weblogic
法1:使用官方映象
映象地址:dockerhub
構建之後要執行weblogic
,需要使用官方提供的示例,參考上篇文章中間部分:利用Docker手動構建WebLogic映象。
法2:利用Dockfile手動構建
Oracle
的Dockerfile
倉庫地址:Github。
使用方法參考上篇文章即可。
獲取Weblogic相關原始檔
在遠端除錯之前,需要先拿到weblogic
原始碼或原始檔(JAR包)。從映象中就可以取出來,方法如下:
確定weblogic容器執行
找到伺服器主目錄
使用命令docker exec -it weblogic /bin/bash
進入到容器當中,一般情況下Oracle
主目錄儲存在環境變數ORACLE_HOME
我這裡是在/u01/oracle/wlserver
,退出容器,使用命令docker cp weblogic:/u01/oracle/wlserver ./
將其從容器中複製出來。
除了需要weblogic
的東西之外,後面為了防止出錯,建議直接使用容器裡的jdk
,jdk
主目錄在環境變數JAVA_HOME
中:
使用命令docker cp weblogic:/usr/java/jdk-8 ./wlserver/
將其拷貝到wlserver
目錄中,待會直接打包。
然後為了之後IDEA
除錯不缺依賴,我們在wlserver
下建立一個test
目錄,使用命令find ./wlserver -name *.jar -exec cp {} ./wlserver/test/ \;
jar
檔案複製到一起。
然後使用zip
命令將目錄打包:zip -r wlserver.zip ./wlserver
,然後sz wlserver.zip
將其從虛擬機器中搞出來。
IDEA除錯配置
使用IDEA
開啟wlserver
資料夾,結構如下:
然後在專案設定裡,把test
目錄載入到庫裡:
最後,根據圖的指示新增執行配置(Remote),IP和埠填正確,如下圖:
都弄好之後,點選除錯按鈕,出現以下日誌資訊說明成功:
下斷點方法
成功之後,test
目錄下的所有jar
包都可以展開,找到自己要除錯的類,比如com.weblogic.iiop.jar!\weblogic\iiop\ConnectionManager.class
。
在左邊行號旁邊下斷點即可,程式執行到這裡會自動中斷。
參考連結
- IDEA+docker,進行遠端漏洞除錯(weblogic)
- Another blog