远程调试方法

24 篇文章 1 订阅
15 篇文章 1 订阅
本文详细介绍了如何创建一个SpringBoot工程,从配置pom.xml、编写启动类到实现简单RESTful接口。接着,展示了如何打包应用并编写start.sh脚本以支持远程调试,并说明了调试端口的配置方法。最后,通过远程调试和访问验证,确保了整个流程的正确性。
摘要由CSDN通过智能技术生成

1.编写Spring工程案例

1.1.准备SpringBoot工程

pom.xml定义:

<?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.5.RELEASE</version>
      <relativePath/> <!-- lookup parent from repository -->
   </parent>
   <groupId>com.example</groupId>
   <artifactId>demo</artifactId>
   <version>0.0.1-SNAPSHOT</version>
   <name>demo</name>
   <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>
         <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <configuration>
               <excludes>
                  <exclude>
                     <groupId>org.projectlombok</groupId>
                     <artifactId>lombok</artifactId>
                  </exclude>
               </excludes>
            </configuration>
         </plugin>
      </plugins>
   </build>
   <repositories>
      <repository>
         <id>spring-milestones</id>
         <name>Spring Milestones</name>
         <url>https://repo.spring.io/milestone</url>
         <snapshots>
            <enabled>false</enabled>
         </snapshots>
      </repository>
      <repository>
         <id>spring-snapshots</id>
         <name>Spring Snapshots</name>
         <url>https://repo.spring.io/snapshot</url>
         <releases>
            <enabled>false</enabled>
         </releases>
      </repository>
   </repositories>
   <pluginRepositories>
      <pluginRepository>
         <id>spring-milestones</id>
         <name>Spring Milestones</name>
         <url>https://repo.spring.io/milestone</url>
         <snapshots>
            <enabled>false</enabled>
         </snapshots>
      </pluginRepository>
      <pluginRepository>
         <id>spring-snapshots</id>
         <name>Spring Snapshots</name>
         <url>https://repo.spring.io/snapshot</url>
         <releases>
            <enabled>false</enabled>
         </releases>
      </pluginRepository>
   </pluginRepositories>

</project>

1.2.springBoot启动类代码

package com.example.demo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class DemoApplication {

   public static void main(String[] args) {
      SpringApplication.run(DemoApplication.class, args);
   }

}

1.3.案例demo

package com.example.demo;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RequestMapping("/")
@RestController
public class HelloController {
    private static final Logger logger = LoggerFactory.getLogger(HelloController.class);

    @RequestMapping("/hello")
    public String hello() {
        logger.info("111");
        logger.info("222");
        logger.info("333");
        logger.info("444");

        return "Hello Spring Boot!";
    }

}

1.4.application.properties的内容如下

server.port=8060
server.tomcat.uri-encoding=utf-8

注意:
1、容器内部使用http://localhost:8060/hello即可访问到接口。
2、由于笔者使用的是docker容器部署的,宿主机上的18060和容器内部的8060端口映射,所以在浏览器上可以使用:http://localhost:18060/hello进行访问。

启动之后的效果如下:
在这里插入图片描述

2.打包部署

最终打的包是:demo-0.0.1-SNAPSHOT.jar,假设放在docker容器里面的/root/workspace位置。如下图:
在这里插入图片描述

2.1.编写start.sh

内容如下:

cd /root/workspace

source /etc/profile
nohup java -jar -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5000 demo-0.0.1-SNAPSHOT.jar  > demo.log 2>&1 &

注意,主要添加:

-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5000

其中5000就是实际用于调试用的端口(docker宿主机上的15000和容器内部的5000映射,具体命令略)。

2.2.访问验证

启动之后,在本地的浏览器中访问:http://localhost:18060/hello,效果图如下:
在这里插入图片描述

3.在idea中配置远程调试端口

3.1.远程配置

在这里插入图片描述
远程端口配置方式:
在这里插入图片描述
在这里插入图片描述

3.2.打断点

在这里插入图片描述

3.3.访问页面

在这里插入图片描述

3.4.看idea

在这里插入图片描述

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

涂作权的博客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值