Heim  >  Artikel  >  Java  >  So verwenden Sie IDEA Remote Connection Debug in Springboot

So verwenden Sie IDEA Remote Connection Debug in Springboot

王林
王林nach vorne
2023-05-10 23:55:041078Durchsuche

1. Erstellen Sie zunächst eine Demo, die für das Remote-Debugging bereit ist, achten Sie auf die Konfiguration des Build-Projekts

<?xml  version="1.0" encoding="UTF-8"?>
<project 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.1.4.RELEASE</version>
		<relativepath></relativepath> <!-- lookup parent from repository -->
	</parent>
	<groupid>com.remote.test</groupid>
	<artifactid>remote_test</artifactid>
	<version>0.0.1-SNAPSHOT</version>
	<name>remote_test</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</artifactid>
		</dependency>
 
		<dependency>
			<groupid>org.springframework.boot</groupid>
			<artifactid>spring-boot-starter-test</artifactid>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupid>org.springframework.boot</groupid>
			<artifactid>spring-boot-starter-web</artifactid>
		</dependency>
		<dependency>
			<groupid>org.junit.jupiter</groupid>
			<artifactid>junit-jupiter-api</artifactid>
			<version>RELEASE</version>
			<scope>test</scope>
		</dependency>
	</dependencies>
 
	<build>
		<plugins>
			<plugin>
				<groupid>org.apache.maven.plugins</groupid>
				<artifactid>maven-shade-plugin</artifactid>
				<version>2.2</version>
				<dependencies>
					<dependency>
						<groupid>org.springframework.boot</groupid>
						<artifactid>spring-boot-maven-plugin</artifactid>
						<version>2.1.4.RELEASE</version>
					</dependency>
				</dependencies>
				<configuration>
					<keepdependencieswithprovidedscope>true</keepdependencieswithprovidedscope>
					<createdependencyreducedpom>false</createdependencyreducedpom>
					<filters>
						<filter>
							<artifact>*:*</artifact>
							<excludes>
								<exclude>META-INF/*.SF</exclude>
								<exclude>META-INF/*.DSA</exclude>
								<exclude>META-INF/*.RSA</exclude>
							</excludes>
						</filter>
					</filters>
				</configuration>
				<executions>
					<execution>
						<phase>package</phase>
						<goals>
							<goal>shade</goal>
						</goals>
						<configuration>
							<finalname>${project.artifactId}-${project.version}-all</finalname>
							<transformers>
								<transformer>
									<resource>META-INF/spring.handlers</resource>
								</transformer>
								<transformer>
									<resource>META-INF/spring.factories</resource>
								</transformer>
								<transformer>
									<resource>META-INF/spring.schemas</resource>
								</transformer>
								<transformer></transformer>
								<transformer>
									<!--根据项目的全名指定启动类-->
                                    <mainclass>com.remote.test.remote_test.RemoteTestApplication</mainclass>
								</transformer>
							</transformers>
						</configuration>
					</execution>
				</executions>
			</plugin>
		</plugins>
	</build>
</project>
package com.remote.test.remote_test;
 
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
 
import java.util.HashMap;
import java.util.Map;
 
 
@RestController
@RequestMapping("remote/test")
public class UserController {
 
    private static final Logger logger = LoggerFactory.getLogger(UserController.class);
 
 
    @PostMapping("selectByUserId")
    public String selectUserInfo(@RequestParam("userId") String userId) {
        try {
            Map<string> userInfo = new HashMap();
            userInfo.put("userId",userId);
            userInfo.put("age",23);
            userInfo.put("name","yanshao");
            userInfo.put("address","shanghai");
            logger.info("Query user information by user ID. userInfo: {}",userInfo.toString());
            return this.success(userInfo);
        } catch (Exception e) {
            logger.error("Query user information by user ID. userId:{} ", userId, e);
            return this.fail();
        }
    }
 
    private String success(Object data){
        Map<string> res = new HashMap();
        res.put("code",0);
        res.put("desc","success");
        res.put("data",data);
        return res.toString();
    }
 
    private String fail(){
        Map<string> res = new HashMap();
        res.put("code",1);
        res.put("desc","fail");
        return res.toString();
    }
 
}</string></string></string>

2. Paketierung

Geben Sie ein: mvn clean package, (es kann einige Minuten dauern), am besten geben Sie das lokale Repository an vor dem Erstellen, sodass kein erneutes Herunterladen des JAR-Pakets erforderlich ist.

So verwenden Sie IDEA Remote Connection Debug in Springboot

So verwenden Sie IDEA Remote Connection Debug in Springboot

3. Konfigurieren Sie das Remote-Debugging in IDEA. Geben Sie den Socket-Port = 8081 an und geben Sie das zu debuggende Modul an. 4. Starten Sie das gerade erstellte JAR-Paket im Terminal

a . Starten Sie zuerst das Debuggen in IDEA

So verwenden Sie IDEA Remote Connection Debug in Springboot

b Geben Sie dann den Befehl im Terminal ein: java -agentlib:jdwp=transport=dt_socket,server=n,address=localhost:8081 -jar remote_test-0.0. 1-SNAPSHOT- all.jar

5. Testen Sie

So verwenden Sie IDEA Remote Connection Debug in SpringbootMarkieren Sie Haltepunkte auf der Schnittstelle, um die Anfrage vorzubereiten. Hinweis: Sie müssen zuerst Debug in IDEA starten und dann starten das Projekt

➜ Desktop Java -agentlib:jdwp=transport=dt_socket,server=n,address=localhost:8081 -jar remote_test-0.0.1-SNAPSHOT-all.jar

FEHLER: Transportfehler 202: Verbindung fehlgeschlagen: Verbindung abgelehnt

FEHLER: JDWP-Transport dt_socket konnte nicht initialisiert werden, TRANSPORT_INIT(510)So verwenden Sie IDEA Remote Connection Debug in SpringbootJDWP-Exit-Fehler AGENT_ERROR_TRANSPORT_INIT(197): Keine Transporte initialisiert [debugInit.c:750]

Das obige ist der detaillierte Inhalt vonSo verwenden Sie IDEA Remote Connection Debug in Springboot. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen