使用 IntelliJ IDEA 配合 Docker 对 Weblogic 中间件进行远程调试

使用idea对jar包远程调试:

打开一个springboot的项目进行远程调试设置:

运行:

其实我不太明白远程调试的意义,本地直接debug不好嘛。。。

点击debug的按钮,打断点测试:

跑到断点处:

远程debug即对远程部署的内容进行debug,例如我们部署的项目在线上出现问题了,而我们又不知道具体是哪里出现问题,我们就可以使用远程debug进行排查问题。

这里在idea中使用的是localhost,如果我使用的是其他的ip地址,再用其他ip地址下的jar包启动,那么当我访问远程ip下的程序时,此时本地用jar包进行的断点就会生效。就实现了远程debug。

总结

好像感觉远程调试的用处也不是那么大,不能作为长期使用的调试工具。只能作为临时调试的手段。

难点 有几个:

1、难保证本地代码和远程一致,而且你也很难判断是否一致

2、通过远程调试发现了bug,但是又不能立即修复后继续调试,只能修复后部署后继续远程调试

对 Weblogic 进行远程调试

进入/weblogic/CVE-2017-10271 文件夹,修改其中的 docker-compose.yml 文件,将 8453 端口打开

使用 docker-compose 命令 docker-compose up -d 编译镜像并启动容器

使用 docker exec -it 3d /bin/bash 命令进入容器,使用 vi 修改文件/root/Oracle/Middleware/user_projects/domains/base_domain/bin/setDomainEnv.sh。在图 2-41 所示代码段处添加如下两行代码。

bash 复制代码
ebugFlag="true" 
export debugFlag

使用 docker restart 命令重启容器,再进入容器,将/root/Oracle/Middleware 文件

夹下的 modules 文件夹和 wlserver_10.3 文件夹使用 zip 命令压缩成 zip 压缩包。容器

中是一个简易的 Linux 系统,需要执行 apt-get install zip 来安装 zip 压缩功能。

将该文件移动至一个项目文件中,并使用 IDEA 打开,如图 2-43 所示,选中

w1server_10.3/server/lib 文件和 modules 文件并右键单击,选择"Add as Library..."添加依赖文件。

如图 2-44 所示,单击 IDEA 右上角的"Add Configurations"按钮,在弹出的选项框中单击左上角的"+"进行"Add New Configurations"操作。然后在下拉框中找到 Remote 选项并单击,进入图 2-45 所示的配置页面,填写端口号为 8453,注意,需要与第一步在 docker-compose.yml 文件中的填写内容保持一致。填写完毕,单击"Apply"按钮应用配置,再单击"OK"按钮关闭配置页面即可。

如图 2-46 所示,在 wlserver_10.3/server/lib/weblogic.jar!/weblogic/wsee/jaxws/

WLSServletAdapter.class 的 hadle 方法处设置断点,接着单击右上角的 Debug 按钮(绿

色小虫子图标)运行 Debug 模式。然后使用浏览器访问 http://127.0.0.1:7001/

wls-wsat/CoordinatorPortType,同时查看 IDEA 是否如图 2-47 所示,程序在断点处停。

相关推荐
YYYing.9 小时前
【K8s系列 (一) 】Docker与容器(上篇)
docker·云原生·容器·kubernetes
csdn_aspnet9 小时前
使用 Docker 和 RedisInsight 设置 Redis 以进行本地开发
redis·docker·容器·redisinsight
余槐i14 小时前
MySQL 8.0 联合索引走错:为什么加了索引查询反而从 200ms 变成 8s
java·spring boot·mysql·docker·性能优化
csdn_aspnet15 小时前
如何在本地 Docker 容器中运行 Redis,并使用 Redis Insight 和 Redis CLI 进行管理
redis·docker·容器
且从容.15 小时前
Ubuntu 安装 Docker
linux·ubuntu·docker
todoitbo16 小时前
我在 Mac 上用 Docker 部署 Nexent:从拉取镜像到接入模型
macos·docker·大模型·ai智能体·nexent·快速入门与环境准备
Goboy17 小时前
夯爆了,我被一个一句话接入的免费可观测平台策反了,那一刻我决定放弃用了3年的Prometheus
后端·docker·kubernetes
奶油话梅糖18 小时前
打开项目 0.9 秒、内存只有 IDEA 的 1/12:OpenIDEA 用 Rust 把 IntelliJ IDEA 重造了一遍
java·rust·github·intellij-idea
golang学习记18 小时前
IDEA 2026.3 远程开发迎来重磅升级
java·ide·intellij-idea·远程开发
java_logo1 天前
Docker 部署 Liquibase:轻松搭建数据库变更管理
数据库·docker·容器·数据库管理·liquibase·轩辕镜像·数据库变更