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.
Spring Boot Application as a Service18 Apr, 2018
Custom Endpoint in Spring Boot Actuator24 Apr, 2018
Guide to the Spring @Lazy Annotation11 Apr, 2018
Data Conversion for Spring REST API06 Apr, 2018
Guide to Spring Bean @Autowired28 Mar, 2018
Http Message Converters with the Spring