环境搭建
开发环境
工具 | 说明 | 官网 |
---|---|---|
Windows 10 | 操作系统 | 官网 |
CentOS7 | 操作系统 | 官网 |
开发工具
工具 | 说明 | 官网 |
---|---|---|
IDEA | 开发IDE | 官网 |
Git | 分布式版本控制系统 | 官网 |
MobaXterm_Personal | 远程计算的终极工具箱 | 官网 |
开发环境
工具 | 版本号 | 下载 |
---|---|---|
JDK | 1.8 | 下载 |
Maven | 3.6 | 官网 |
Mysql | 5.7 | 下载 |
Nginx | 1.17.6 | 下载 |
部署环境
工具 | 版本号 | 下载 |
---|---|---|
Windows Server 数据中心(中文版) | 2019 | 无 |
Tomcat | 8.0 | 下载 |
遇到问题
由于没有使用容器技术,导致线上部署环境与线下开发环境不一致。因此遇到了本地运行、调试一切正常,线上项目却无法访问的情况,所以需要通过远程调试的方法直接运行线上代码,在本地打断点调试。
实际操作
大体工作分为两步,一是配置Tomcat开启远程调试功能。二是配置IDEA以远程调试方式运行。
配置Tomcat(Windows版)
在Windows 系统把 Tomcat 作为系统服务来运行。直接打开 Apache Tomcat 的属性对话框,在Java栏添加启动参数:
-agentlib:jdwp=transport=dt_socket,address=1043,server=y,suspend=n
image
这些参数要做的事情就是启用远程调试和配置有效的选项:
- 指定运行的被调试应用和调试者之间的通信协议,(ie: transport=dt_socket)
- 远程被调试应用开通的端口,(ie: address=1043), 可定义其他端口,比如9999
- server=y 表示这个 JVM 即将被调试
- suspend=n 用来告知 JVM 立即执行,不要等待未来将要附着上/连上(attached)的调试者。如果设成 y, 则应用将暂停不运行,直到有调试者连接上
suspend=y的一个比较适用的场景是,当debug一个会阻止应用成功启动的问题时, 通过suspend=y可以确保调试者连上来之后再启动应用,否则应用已经启动报错了再调试也没意义了。
注:必须单独占一行
配置Tomcat(CentOS版)
进入到tomcat->bin->catalina.sh
文件
在顶部加上如下配置:
CATALINA_OPTS="-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=1099
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false
-Djava.rmi.server.hostname=>>>>>这里写你的服务器公网IP<<<<<
-agentlib:jdwp=transport=dt_socket,address=>>>>>>这里写你的远程调试端口号<<<<<<,suspend=n,server=y"
export CATALINA_OPTS
image
修改IP地址为自己的服务器公网IP,修改远程调试端口号如9090;
image imagePS:需要特别注意的是,端口号需要在云平台添加安全组才能使用;
如果有使用宝塔的小伙伴,可能还需要在宝塔的安全里开放对应端口
启动方式:(*必须以这种方式启动,否则无法远程调试)
./catalina.sh jpda start
配置IDEA
方法一
Run ➝ Edit Configurations ➝ +按钮 ➝ Tomcat Server ➝ Remote
image方法二
Run ➝ Edit Configurations ➝ +按钮 ➝ Remote
image如图只需填上自己服务器的IP和上一步配置的端口号(1043)即可
目的达成
稍后录制一个视频放到Bilibili我的主站上
参考文档
以上,对乐于分享的程序猿们表示感谢!
网友评论