当前位置: 首页 > news >正文

使用 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 所示代码段处添加如下两行代码。

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 所示,程序在断点处停。
在这里插入图片描述

相关文章:

  • Docker Dockerfile
  • 【日常聊聊】开源软件影响力
  • Visual Studio 和Clion配置Cocos2d-x环境
  • 【实战】阿里智能编码助手通义灵码
  • Django的web框架Django Rest_Framework精讲(二)
  • Spring Boot RestTemplate请求证书问题
  • 2023年上-未来几年我要做什么
  • ACPF UI 框架设计与基础实现
  • 【Springboot】单元测试Junit5应用
  • 算法笔记刷题日记——3.简单入门模拟 3.1简单模拟
  • 合并分支rebase和merge的区别
  • 新手指南:Postman 旧版本(历史版本)下载
  • Unity类银河恶魔城学习记录1-12 PlayerComboAttack源代码 P39
  • js中原始类型和对象引用
  • 深入解析Elasticsearch的内部数据结构和机制:行存储、列存储与倒排索引之行存(一)
  • 【Under-the-hood-ReactJS-Part0】React源码解读
  • Babel配置的不完全指南
  • CentOS从零开始部署Nodejs项目
  • eclipse的离线汉化
  • Git同步原始仓库到Fork仓库中
  • MySQL QA
  • mysql外键的使用
  • Netty源码解析1-Buffer
  • springMvc学习笔记(2)
  • vue自定义指令实现v-tap插件
  • 阿里云应用高可用服务公测发布
  • 从零开始学习部署
  • 判断客户端类型,Android,iOS,PC
  • 区块链将重新定义世界
  • 它承受着该等级不该有的简单, leetcode 564 寻找最近的回文数
  • 硬币翻转问题,区间操作
  • # 日期待t_最值得等的SUV奥迪Q9:空间比MPV还大,或搭4.0T,香
  • #1014 : Trie树
  • #Java第九次作业--输入输出流和文件操作
  • (04)Hive的相关概念——order by 、sort by、distribute by 、cluster by
  • (AtCoder Beginner Contest 340) -- F - S = 1 -- 题解
  • (BFS)hdoj2377-Bus Pass
  • (C语言)字符分类函数
  • (Python) SOAP Web Service (HTTP POST)
  • (动态规划)5. 最长回文子串 java解决
  • (论文阅读31/100)Stacked hourglass networks for human pose estimation
  • (十一)c52学习之旅-动态数码管
  • (原)记一次CentOS7 磁盘空间大小异常的解决过程
  • .NET 2.0中新增的一些TryGet,TryParse等方法
  • .Net mvc总结
  • .NET 设计模式—简单工厂(Simple Factory Pattern)
  • .net生成的类,跨工程调用显示注释
  • :not(:first-child)和:not(:last-child)的用法
  • [ web基础篇 ] Burp Suite 爆破 Basic 认证密码
  • [AHOI2009]中国象棋 DP,递推,组合数
  • [BZOJ4016][FJOI2014]最短路径树问题
  • [C# WPF] DataGrid选中行或选中单元格的背景和字体颜色修改
  • [C++] 统计程序耗时
  • [ChromeApp]指南!让你的谷歌浏览器好用十倍!
  • [ERROR]-Error: failure: repodata/filelists.xml.gz from addons: [Errno 256] No more mirrors to try.