idea远程debug总结

本文介绍了如何在IDEA中通过JDWP远程调试服务,并结合Spring Boot项目的打包策略,包括使用spring-boot-maven-plugin将应用打包为可执行Jar。适合开发者解决内网联调问题和理解Maven构建流程。

(2条消息) IDEA 远程调试_kefeng.wang 的博客-优快云博客_idea 远程调试

(2条消息) SpringBoot spring-boot-maven-plugin 打包为可执行Jar方法。(已验证)_pengjunlee的博客-优快云博客_spring-boot-maven-plugin打包

在项目开发过程中遇到与第三方外部系统的联调,由于我部署的测试环境是在内网,回调接口的话,是访问不到内网的接口。

解决办法

  1. 将服务部署在有外网ip的测试环境,我这里是将一个web服务部署在虚拟机上模拟,虚拟机开启默认端口例如5005。(这里开放一个服务器端口,注意要考虑安全问题哦)

578

  1. 在idea中配置remote插件,设置 HostPort 即可。复制生成的运行命令
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8080

579

-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005
  1. 执行刚复制的命令,启动web服务
java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 -jar remote-demo.jar
  1. 启动idea,输出日志
Connected to the target VM, address: '192.168.133.101:5005', transport: 'socket'

提示已经成功连接上远程服务器。

  1. 访问接口,发现本地已经在远程服务的断点上

580

服务也输出了日志,说明调用的是该接口

额外篇

springboot项目打包

在pom文件中配置:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.3.2.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.developer</groupId>
    <artifactId>remote-demo</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>remote-demo</name>
    <!-- 打成jar包 -->
    <packaging>jar</packaging>
    <description>Demo project for Spring Boot</description>
    <properties>
        <java.version>1.8</java.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <!-- springboot打包插件 -->
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

</project>

在命令行执行 mvn package spring-boot:repackage , 可看到生成可运行的jar包了。

IntelliJ IDEA 中进行远程调试 Java 程序是一种非常实用的技能,尤其适用于调试部署在远程服务器上的应用。以下是详细的配置方法: ### 配置远程调试的步骤 #### 1. 启动远程 JVM 时添加调试参数 要启用远程调试,首先需要在远程服务器上启动 Java 应用时添加 JVM 调试参数。这些参数允许 JVM 在启动时开启调试模式,并等待调试器连接。 典型的启动命令如下: ```bash java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 -jar your-application.jar ``` - `transport=dt_socket`:表示使用 socket 连接。 - `server=y`:表示 JVM 将作为调试服务器。 - `suspend=n`:表示 JVM 启动时不暂停,直到调试器连接后才开始执行。 - `address=5005`:表示监听的调试端口号[^2]。 #### 2. 在 IntelliJ IDEA 中配置远程调试 1. 打开 IntelliJ IDEA,点击右上角的 **Edit Configurations**。 2. 在弹出的窗口中,点击左上角的 **+** 号,选择 **Remote JVM Debug**。 3. 配置远程调试器的连接信息: - **Name**:自定义调试配置的名称。 - **Host**:远程服务器的 IP 地址。 - **Port**:与 JVM 启动参数中 `address` 设置的端口一致。 4. 点击 **Apply**,然后点击 **OK** 保存配置。 #### 3. 启动远程调试会话 1. 在 IntelliJ IDEA 的工具栏中,选择刚刚配置的远程调试配置。 2. 点击 **Debug** 按钮(虫子图标)启动调试会话。 3. 如果一切配置正确,IDEA 将连接到远程 JVM,并进入调试模式。 #### 4. 设置断点并调试 在 IntelliJ IDEA 中打开项目源代码,设置断点。当远程应用执行到断点时,IDEA 将暂停程序执行,开发者可以查看变量值、调用堆栈等信息,进行逐步调试。 --- ### 其他注意事项 - 确保远程服务器的防火墙开放了调试端口(如 5005),否则 IntelliJ IDEA 无法连接。 - 如果使用的是 Tomcat 服务器,可以在 **Edit Configurations** 中选择 **Tomcat Server > Remote** 进行配置[^3]。 - 调试完成后,务必关闭调试会话,并在生产环境中关闭调试端口以保障安全。 --- ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值