博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
IntelliJ IDEA 远程调试 Tomcat 或 Jetty
阅读量:3739 次
发布时间:2019-05-22

本文共 1613 字,大约阅读时间需要 5 分钟。

准备工作

  • 明确远程服务器的 IP 地址,比如我是:192.168.92.128
  • 关掉服务器防火墙或者如下配置:service iptables stop
  • 服务器防火墙策略
  • # 这里面需要将访问的服务端口以及调试端口在防火墙放行,如下命令操作## 打开编辑防火墙命令    [root@localhost bin]#vi  /etc/sysconfig/iptables## 添加内容如下,其中8080是服务访问端口号,5005是调试端口号    -A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT    -A INPUT -m state --state NEW -m tcp -p tcp --dport 5005 -j ACCEPT## 重启防火墙命令    [root@localhost bin]#/etc/init.d/iptables restart

本地 Remote Server 配置

  • 添加 Remote Server,如下图
  • 复制 Remote Server 自动生成的 JVM 参数,等下有用,如下图,比如我的是:-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005
  • 如下图,在 Host 添加服务器的 IP 地址:192.168.92.128。
  • 把刚刚复制参数加个前缀,变成:
    • Linux(有单引号):export JAVA_OPTS='-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005'
    • Windows(没有单引号):set JAVA_OPTS=-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005

服务器 Tomcat 配置

  • 以 Linux 环境为例
  • Tomcat 安装在 /usr/program/tomcat7
  • Tomcat 的执行程序:/usr/program/tomcat7/bin/catalina.sh
  • 编辑 Tomcat 执行程序:vim /usr/program/tomcat7/bin/catalina.sh(Windows 是编辑:catalina.bat)
    • 在该文件的最上面,添加我们刚刚复制的那句话:export JAVA_OPTS='-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005'
    • 如果你的项目有特殊 JVM 参数,那你就把你的那部分参数和这部分参数合并在一起。
    • 如下图所示:

服务器 Jetty 配置

  • 同样是 Linux 环境
  • jetty 不像Tomcat那样需要安装,只要有jetty的jar包就可以启动我们想要启动的应用。
  • 在启动应用的时候加入之前上边我们copy的-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005就可以了。
    • 就像这样:java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 -jar {your jetty path} {your port} --path {your war} 1>/dev/null 2>&1 &

开始调试

  • 启动服务器 Tomcat
  • 启动本地 Remote Server
  • 如果可以看到如下图效果,表示已经连接成功了,接下里就是跟往常一样,在本地代码上设置断点,然后你访问远程的地址,触发到该代码自动就会在本地停住。
  • 如下图,可以看到调试效果

转载地址:http://vtpin.baihongyu.com/

你可能感兴趣的文章
消息队列积压问题处理
查看>>
并行流使用注意事项
查看>>
泛型擦除机制及相关问题
查看>>
Jackson日期反序列化时区问题
查看>>
《设计模式》
查看>>
单例设计模式
查看>>
面试题集锦(一)
查看>>
Calendar类方法——编写万年历的两种方式
查看>>
File类的使用——遍历所有文件及子文件以及遍历删除
查看>>
内存流的使用——基本使用
查看>>
RandomAccessFile 类的使用——基本使用
查看>>
Properties实现类——基本使用
查看>>
结构型模式——装饰者设计模式
查看>>
线程的同步——Synchronized和ReentrantLock
查看>>
网络编程基础
查看>>
python实现快速排序
查看>>
python实现归并排序
查看>>
二叉树的镜像实现(python版)
查看>>
ptqt5控件了解(三)
查看>>
自学C++(一)
查看>>