1. 程式人生 > >遠端除錯docker構建的weblogic

遠端除錯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手動構建

OracleDockerfile倉庫地址:Github。

使用方法參考上篇文章即可。

獲取Weblogic相關原始檔

在遠端除錯之前,需要先拿到weblogic原始碼或原始檔(JAR包)。從映象中就可以取出來,方法如下:

確定weblogic容器執行

找到伺服器主目錄

使用命令docker exec -it weblogic /bin/bash進入到容器當中,一般情況下Oracle主目錄儲存在環境變數ORACLE_HOME

當中,在這個目錄下找到最大的那個資料夾一般就是我們要的東西。

我這裡是在/u01/oracle/wlserver,退出容器,使用命令docker cp weblogic:/u01/oracle/wlserver ./將其從容器中複製出來。

除了需要weblogic的東西之外,後面為了防止出錯,建議直接使用容器裡的jdkjdk主目錄在環境變數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