(2条消息) IDEA 远程调试_kefeng.wang 的博客-CSDN博客_idea 远程调试
在项目开发过程中遇到与第三方外部系统的联调,由于我部署的测试环境是在内网,回调接口的话,是访问不到内网的接口。
解决办法:
- 将服务部署在有外网ip的测试环境,我这里是将一个web服务部署在虚拟机上模拟,虚拟机开启默认端口例如5005。(这里开放一个服务器端口,注意要考虑安全问题哦)
- 在idea中配置remote插件,设置 Host 和 Port 即可。复制生成的运行命令
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8080
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005
- 执行刚复制的命令,启动web服务
java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 -jar remote-demo.jar
- 启动idea,输出日志
Connected to the target VM, address: '192.168.133.101:5005', transport: 'socket'
提示已经成功连接上远程服务器。
- 访问接口,发现本地已经在远程服务的断点上
服务也输出了日志,说明调用的是该接口
额外篇
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包了。