IntelliJ IDEA 部署项目到本地tomcat调试时断点无效

今天对项目进行断点调试的时候一直没有成功进入到调试模式,打的断点是这样的

底部debugger窗口也没有显示断点信息

 

IntelliJ IDEA 部署项目到本地tomcat调试时断点无效_第1张图片

出现比较多的几个原因:

  • 1,点到了箭头指向的Mute Breakpoints,断点被禁用(这种情况下打出来的断点是灰色的,排除)

  • 2,pom文件引用了热部署jar包(),需要将属性设置为false或去掉jar包(查看项目pom文件并没有引用热部署jar包,排除)

  • 3,本地tomcat的Catlina.bat配置问题

针对第三种情况找到的有几种修改方案:

  1. 注释掉Set "CATALINA_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n"
  2. 注释掉set JAVA_OPTS=-XX:PermSize=128M -XX:MaxNewSize=256m -XX:MaxPermSize=256m -Djava.awt.headless=true
  3. 在IDEA的Run/Debug Configurations里补充配置

IntelliJ IDEA 部署项目到本地tomcat调试时断点无效_第2张图片

点“+”号添加一项

name:JAVA_OPTS

value:-Dfile.encoding=UTF-8 -Djava.awt.headless=true -Xms2048m -Xmx2048m

 

在这过程中我又遇到了新的问题,重新debug模式运行的时候,出现了

Unable to open debugger port (localhost:5005): java.net.ConnectException "Connection refused: connect"

点击rerun的时候报Error running 'test' Invalid arguments : Already listening  [timeout, name]

 

可能是tomcat没有正确关闭或端口占用问题,经确认不是这两种情况,尝试很多种方式都没有解决,最后回到断点不起作用这个问题上,对比tomcat的catalina.bat里配置的JAVA_OPTS和IDEA里的配置,这两个的配置不同造成冲突

所以上文提到的注释tomcat里的JAVA_OPTS是可行的(实测可行)

还有一种方法,让catalina.bat继承idea中配置(让两者配置一致)

catalina.bat中修改为set JAVA_OPTS=%JAVA_OPTS% -Xmx1024M -Xms512M -XX:MaxPermSize=256m

正确配置后debug运行,断点终于打上了√

进入断点后可以正常调试了

IntelliJ IDEA 部署项目到本地tomcat调试时断点无效_第3张图片

你可能感兴趣的:(IntelliJ IDEA 部署项目到本地tomcat调试时断点无效)