Debug web app in IntelliJ, webapp built by maven, run by jetty
Asked Answered
J

3

38

I'm using s/o code, it's a java webapp built by maven. The webapp is run by maven script, like below, and the app is run on localhost:8080, :

<build>
        <plugins>
            <plugin>
                <groupId>org.mortbay.jetty</groupId>
                <artifactId>jetty-maven-plugin</artifactId>
                <version>8.1.8.v20121106</version>
                <configuration>
                    <contextPath>/</contextPath>
                    <connectors>
                        <connector implementation="org.eclipse.jetty.server.nio.SelectChannelConnector">
                            <!--<port>8085</port>-->
                            <port>8080</port>
                            <maxIdleTime>60000</maxIdleTime>
                        </connector>
                    </connectors>
                    <stopKey>stop</stopKey>
                    <stopPort>8089</stopPort>
                </configuration>
            </plugin>            
        </plugins>
</build>

I want to attach the debugger of IntelliJ so that I can step through the code. I tried to set up a debugger configuration like: Jetty Server, then 'Remote' but it said Application Server not specified. I also tried with 'Local', it said 'main config file not included'.

So what must I do to attach the debugger? Thanks in advance.

Jesusitajet answered 27/2, 2013 at 11:49 Comment(1)
Check this answer: https://mcmap.net/q/410453/-deploy-amp-debug-remote-jetty-with-intellij-12.Ichang
M
83

The easiest way is to:

  1. Expand your project in the Maven Projects tab.
  2. Expand Plugins > jetty items.
  3. Right-click jetty:run.
  4. Choose Debug from the context menu.

screen shot of "Maven Projects" panel, context-menu to run Jetty in debug mode

Melbourne answered 28/2, 2013 at 17:30 Comment(2)
How do you make this a run configuration?Lili
I can vouch for this approach with IntelliJ 2018.2 on macOS.Tormentil
C
11

I know it's too late to reply this question, but It's worth sharing the latest update on this issue as a modern solution: You can also run jetty using “mvnDebug jetty:run” which has the same effect. Which display the following logs in the terminal

Preparing to Execute Maven in Debug Mode
Listening for transport dt_socket at address: 8000
[INFO] Scanning for projects...

Just remember to choose the correct socket address(e.g. 8000), then:

  1. Open Intellij
  2. Run -> Edit Configuration
  3. In Run/Debug Configuration window, you need to click on (+) button to add a new configuration
  4. Select Remote
  5. Keep the default configuration as is, just change the listening port to corresponding one (8000).

Enjoy.

Castiron answered 20/7, 2016 at 21:43 Comment(4)
It's never too late to reply to a question (well, to an on-topic question), as long as the answer is good.Wool
Definitely this should be the best answerCarlton
This is definitely the best answer for the case when the one needs remote debugging!Abernon
@sergpank, I'm happy to see this answer is helpful. Thank you :)Castiron
F
1

When I was getting "main config file not included" it was because the path to Jetty in my Application Server configuration (on Run/Debug Configurations dialog) was deleted during my OS X upgrade (I had put it in /usr/share/java).

I reinstalled jetty-hightide-8.1.5.v20120716 under /usr/local, updated the configuration and all is well.

Fiske answered 24/10, 2013 at 22:52 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.