web-dev-qa-db-fra.com

Déboguer l'application Web dans IntelliJ, application Web créée par Maven, exécutée par Jetty

J'utilise du code s/o, c'est une Java webapp construite par maven. La webapp est exécutée par le script maven, comme ci-dessous, et l'application est exécutée sur 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>

Je veux attacher le débogueur d'IntelliJ pour pouvoir parcourir le code. J'ai essayé de mettre en place une configuration de débogueur comme: Jetty Server, puis "Remote" mais il a dit Application Server non spécifié. J'ai également essayé avec "Local", il disait "fichier de configuration principal non inclus".

Alors, que dois-je faire pour attacher le débogueur? Merci d'avance.

31
Taxi Noi Bai Ha Noi

Le moyen le plus simple consiste à:

  1. Développez votre projet dans le Maven Projects tab.
  2. Développez les éléments Plugins> jetty.
  3. Clic-droit jetty:run.
  4. Choisissez Debug dans le menu contextuel.

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

75
Kkkev

Je sais qu'il est trop tard pour répondre à cette question, mais cela vaut la peine de partager la dernière mise à jour sur ce problème en tant que solution moderne: vous pouvez également exécuter jetty en utilisant "mvnDebug jetty:run ”Qui a le même effet. Qui affichent les journaux suivants dans le terminal

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

N'oubliez pas de choisir la bonne adresse de socket (par exemple 8000), puis:

  1. Ouvrez Intellij
  2. Exécuter -> Modifier la configuration
  3. Dans la fenêtre Run/Debug Configuration, vous devez cliquer sur le bouton (+) pour ajouter une nouvelle configuration
  4. Sélectionnez à distance
  5. Conservez la configuration par défaut telle quelle, changez simplement le port d'écoute en celui correspondant (8000).

Prendre plaisir.

7
Ahmad AlMughrabi

Lorsque j'obtenais "fichier de configuration principal non inclus", c'était parce que le chemin d'accès à Jetty dans ma configuration Application Server (dans la boîte de dialogue Exécuter/Configurations de débogage) avait été supprimé lors de ma mise à niveau OS X (je l'avais mis dans/usr/share/Java ).

J'ai réinstallé jetty-hightide-8.1.5.v20120716 sous/usr/local, mis à jour la configuration et tout va bien.

1
pbatey