远程调试docker构建的weblogic

↘锁芯ラ 提交于 2020-03-27 19:43:14

环境信息

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

在左边行号旁边下断点即可,程序运行到这里会自动中断。

参考链接

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!