I run in to an issue some time back where I was required to debug a remote spring boot web application using IntelliJ and was not sure what is the best way to do it.
IntelliJ has still some issue to run Spring-boot powered web applications with Tiles and I faced same one while working on Shopizer.
We used command line to run Spring boot application using maven plugin. In this post I will try to outline how I configured IntelliJ to debug remote application.
To debug remote spring boot application make sure you have “Spring Boot Maven Plugin” plugin configured in your pom.xml file
<plugins> ... <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <version>2.0.1.RELEASE</version> </plugin> ... </plugins>
You have 2 way to configure debug option using spring boot maven plugin
<plugins> ... <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <version>2.0.1.RELEASE</version> <configuration> <jvmArguments>-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005</jvmArguments> </configuration> ... </plugin> ... </plugins>
Alternatively we will can pass these parameters using command line and we will go with this option in this post.
mvn spring-boot:run -Drun.jvmArguments="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005"
By default, the run goal runs in the same process unless jvm arguments or an agent have been specified, above configuration will ensure that you are forking the process and able to debug it.
Next step is to configure IntelliJ to enable debug points, use below steps to configure it
Make sure that you have same port number as used while starting spring boot application using Maven.
Hello!! Welcome to the Java Development Journal. We love to share our knowledge with our readers and love to build a thriving community.