- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章详述IntelliJ IDEA远程调试Tomcat的方法(图文)由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
在调试代码的过程中,为了更好的定位及解决问题,有时候需要我们使用远程调试的方法。在本文中,就让我们一起来看看,如何利用 intellij idea 进行远程 tomcat 的调试.
首先,配置remote:
如上图所示,点击edit configurations,进入如下界面:
如上图所示,我们进入了run/debug configurations界面,然后点击左上角的+,选择remote:
标注 1:运行远程 jvm 的命令行参数; 。
标注 2:传输方式,默认为socket; 。
标注 3:调试模式,默认为attach; 。
标注 4:服务器 ip 地址,默认为localhost,需要修改为目标服务器的真实 ip 地址; 。
标注 5:服务器端口号,默认为5005,需要修改为目标服务器的真实端口号; 。
标注 6:搜索资源是使用的环境变量,默认为<whole project>,即整个项目.
如上图所示,其中 标注 2 和 标注 3 又分别有两种分类,对于 标注 2, 。
标注 2:传输方式,默认为socket; 。
socket:macos 及 linux 系统使用此种传输方式; 。
shared memory: windows 系统使用此种传输方式.
对于 标注 3, 。
标注 3:调试模式,默认为attach; 。
attach:此种模式下,调试服务端(被调试远程运行的机器)启动一个端口等待我们(调试客户端)去连接; 。
listen: 此种模式下,是我们(调试客户端)去监听一个端口,当调试服务端准备好了,就会进行连接.
然后,复制 标注 1,即 intellij idea 自动生产的命令行参数,然后导入到 tomcat 的配置文件中。以 linux 系统为例,导入语句为:
。
。
。
如果是 windows 系统,则导入语句为:
。
。
。
两者的区别在于导入语句的关键字不同以及有无引号,linux 系统的导入关键字为export,windows 为set;linux 的导入值需要用单引号''括起来,而 windows 则不用.
接下来,修改 tomcat 的 bin 目录下的catalina.sh文件(如果是 windows 系统则修改catalina.bat文件),将上述的导入语句添加到此文件中即可:
至此,intellij idea 远程调试 tomcat 的配置已经完成了,调试的后续步骤按正常的调试技巧进行就可以啦! 。
+++++ 题外话:我是一个大彩蛋 +++++ 。
在这里,我们假设服务器的 ip 地址为10.11.12.39,端口号为16203,设置完成后,进入debug模式,如果连接成功,则会出现如下提示:
此外,如果我们是跨多个系统进行调试,则只需要在想要调试的系统中配置remote,打上断点,启动debug模式,然后在服务开始的地方执行程序即可进入到我们设置的断点。而且,如果我们在本地配置remote并关联到某个 tomcat,在debug模式下,所有涉及到断点所在代码的功能,都会进入我们设置的断点.
例如,对于服务器上的 tomcat a,多个系统都用到了这个 tomcat,如订单子系统、账户子系统、路由子系统等,并且多个系统间互相调用,如订单子系统调了账户子系统,账户子系统又调了路由子系统,则当我们在这三个子系统中配置remote并在对应的代码(如在订单子系统中查询商户的账户信息,则调到账户子系统;在账户子系统中又通过路由子系统调到其他底层服务查询商户的账户余额等)上打上断点,启动debug模式之后,通过单元测试或者页面操作触发订单子系统中的查询商户的账户信息功能,则会依次进入到在上述三个子系统中设置的断点.
此外,在我们配置完远程调试之后,就算别人启动相关服务,也会进入到我们的断点,而且会受到我们设置的断点的影响,只有在我们执行完测试之后,服务才会继续执行下去。最后,远程调试的功能真的很强大,善用远程调试,远离 bug! 。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我.
原文链接:http://blog.csdn.net/qq_35246620/article/details/78507324 。
最后此篇关于详述IntelliJ IDEA远程调试Tomcat的方法(图文)的文章就讲到这里了,如果你想了解更多关于详述IntelliJ IDEA远程调试Tomcat的方法(图文)的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我一直在尝试运行 junit 测试,但不断面临这个问题。我试图在互联网上寻找答案,但没有任何帮助。 ] 1 最佳答案 我遇到了同样的问题,但已通过更新 Intellij 最新版本 2020.3 解决。
我知道这个问题以前曾以各种形式提出过,但我已经检查了所有答案,我认为我们已经排除了所有答案。 错误: java.lang.NoClassDefFoundError: com/lgc/infra/geo
TL; 博士 我如何导入 com.intellij.psi.JavaPsiFacade我的 IntelliJ 插件中的类? 背景资料 我正在尝试开发一个 IntelliJ 插件。我一直在遵循入门指南
我目前正在为 IntelliJ 开发一个插件,并尝试使用另一个内置的 IntelliJ 插件作为依赖项 (git4idea)。如 IntelliJ 插件开发文档中所述,我将所需的 JAR 添加到项目结
我尝试在 MacOS 上安装与 IntelliJ 10 集成的 JProfiler。安装程序试图找到我没有的“IntelliJ 配置文件夹”,我也不知道如何创建。 任何帮助或提示都会很棒。 最佳答案
我记得有一个选项可以在失去对idea windows 的关注时自动构建当前项目(例如,您从intellij 切换到浏览器以测试您的webapp),但是我找不到(idea 12.1.6)。 你知道我在哪
我有两个 Java 项目作为 Bukkit/Spigot 插件。两个项目都使用 gradle、私有(private)存储库,一个项目应该从另一个项目继承。 项目: SpigotCore - 包含数据库
标题说明了一切……只是想让 Glassfish 继续前进。这是我得到的错误 Detected server admin port: 4848 [2015-04-06 07:37:56,138] Art
关闭。这个问题需要details or clarity .它目前不接受答案。 想改进这个问题吗? 通过 editing this post 添加细节并澄清问题. 关闭 7 年前。 Improve t
每次我重新启动系统或安装新插件时,我的 intellij 键盘映射都会重置。如果重要的话,我正在开发容量非常有限的 win XP - 只有 1 个 25 GB 容量的驱动器。但是,仍有 7 GB 的可
这是一段简单代码的输出: /Library/Java/JavaVirtualMachines/jdk-9.jdk/Contents/Home/bin/java "- javaagent:/Applic
Intellij Idea的状态栏中是否显示选中的行数? (如果选择包括单词,则显示“字符数”选择计数) 最佳答案 评论中提到的功能现已可用。 右击状态栏,选择“行列数”,见图: 然后您在状态栏中看到
我想将大量代码重构到新类中。我需要一个工具来让我将部分旧代码标记为“已完成”,这样我就可以看到还剩下什么要做。 我把它想象成背景或边缘的一些颜色。如果我可以使用不同的颜色或向代码块添加注释,那将是最好
如何查找和排序 TODO项目按字母顺序排列,就像在 Eclipse 中一样? 我不能使用文件搜索功能,因为我只需要查找注释而不是字符串和文字。对于当前混合的源文件/模板/脚本,TODO 至少已经以下列
我正在使用 IntelliJ Idea 开发一个 Spring 项目。我想知道是否有办法从 IntelliJ 日志或其他一些黑暗的方式知道我在这个项目上花了多少时间? 我是在看到 Idea 的 Pro
当您有 todo:在您的评论中,intellij 可以检测到它并将其显示在待办事项列表中。我怎样才能让一些自定义标记被识别?例如,config: . 最佳答案 在“设置”中查看“编辑器”/“待办事项”
我已启用所有 soft wrap可以在 Intellij (2017.3) 中找到的设置: Appearance|General同意该 list : 我点击了“应用”——这通常实际上可以立即查看效果—
我需要调查微服务中的内存泄漏。我看到一些 Profile... Intellij 中的菜单项 单击它后,应用程序将运行。你能告诉我在哪里可以看到分析的结果吗? 最佳答案 此操作用于分析 Android
我将 IntellIJ 安装更新到最新版本 (11.1.4),现在没有出现编辑器窗口。双击文件,跳转到源代码,没有任何 react 。没有错误消息,只是没有出现。如果我双击一个 xml 布局文件,预览
有没有办法在项目中自动构建工件,就像它如何自动构建输出一样?如果存在快捷键也可以使用 -- 现在我需要单击 Build -> Build Artifacts -> Build这很麻烦。 编辑:在这种情
我是一名优秀的程序员,十分优秀!