Remote-Debugging von Java-Anwendungen in Azure Web Apps

tl;dr

https://github.com/Azure/azure-websites-java-remote-debugging

Mach einfach die Arbeit hier.

Verfahren

Aktivieren Sie WebSocket in den WebApps-Einstellungen

Öffnen Sie die WebApp-Anwendungseinstellungen im Azure-Portal und lassen Sie "Web Sockets" aktiviert.

2018-04-05-21-05-49.png

Diese Einstellung ist erforderlich, da sie beim Debuggen über WebSocket mit der Fernbedienung kommuniziert.

Erstellen Sie im App Service "site \ wwwroot \ web.config".

Es ist einfach, auf Kudu zuzugreifen und es zu erstellen, das hinter der WebApp stirbt.

kudu ist ungefähr die Software, die AppService hinter den Kulissen unterstützt, sich um die Bereitstellungssteuerung, den WebJobs-Betrieb usw. kümmert und sie über einen praktischen Browser für die Entwicklung verwendet. Wir bieten auch eine Konsole, mit der Sie dies tun können.

web.config


<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <handlers>
            <add name="httppPlatformHandler" path="*" verb="*" modules="httpPlatformHandler" resourceType="Unspecified" />
        </handlers>
        
        <httpPlatform processPath="%programfiles(x86)%\apache-tomcat-8.0.46\bin\startup.bat">
            <environmentVariables>
                <environmentVariable name="CATALINA_HOME" value="%programfiles(x86)%\apache-tomcat-8.0.46"/>
                <environmentVariable name="JAVA_OPTS" value="-Djava.net.preferIPv4Stack=true -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=127.0.0.1:%HTTP_PLATFORM_DEBUG_PORT%"/>
                <environmentVariable name="CATALINA_OPTS" value="-Dport.http=%HTTP_PLATFORM_PORT%"/>
            </environmentVariables>
        </httpPlatform>
    </system.webServer>
</configuration>

Applikation neustarten

Starten Sie vom Portal aus neu.

Greifen Sie nach dem Neustart einmal zu und lassen Sie den Java-Prozess laufen. Kann mit Process Explorer auf kudu bestätigt werden

Dies ist das Ende der Arbeit auf der WebApp-Seite.

Starten Sie den DebugSession-Client

Von hier aus arbeiten Sie am lokalen Computer.

Laden Sie den DebugSession-Client von https://github.com/Azure/azure-websites-java-remote-debugging/releases herunter.

Beginnen Sie, indem Sie DebugSessin.bat in bin das folgende Argument geben. Setzen Sie die Umgebungsvariable JAVA_HOME.

DebugSession.bat ^
  --auto ^
  -p 8000 ^
  -s YOURAPP.scm.azurewebsites.net ^
  -u $YOURAPP ^
  -w ****

Info: Warten auf die Verbindung des Debuggers auf 8000 ...

Wenn es heißt ..., sind Sie bereit zu gehen.

Wenn Sie Azure CLI verwenden, können Sie für Verbindungsinformationen (Veröffentlichungs-URL / Benutzer / Pass) den Wert "MS Deploy" verwenden, der für "az webapp-Bereitstellungslisten-Veröffentlichungsprofile ..." erhalten wurde.

Starten Sie den Debugger

Danach kann das Remote-Debugging durchgeführt werden, indem über einen Debugger unter Eclipse eine Verbindung zum Debug-Sitzungsclient (localhost: 8080) hergestellt wird.

Da es sich jedoch um eine Fernbedienung handelt, ist der Vorgang schleppend. (Vielleicht, weil es ein kostenloser Plan war.)

Recommended Posts

Remote-Debugging von Java-Anwendungen in Azure Web Apps
Erstellen von Java-Webanwendungen für Azure-Webanwendungen
Rolle von JSP in Webanwendungen [Java]
Versuchen Sie das Remote-Debuggen von Java mit Remote-Containern in Visual Studio Code Insiders
Azure funktioniert in Java
Sicherheit in Webanwendungen
Der Teil, dem ich in "Einführung in Ajax in Java-Webanwendungen" von NetBeans verfallen war
Erstellen Sie Azure-Funktionen in Java
Java-Implementierung von Tri-Tree
Führen Sie Java-Anwendungen in Azure Batch aus
Automatische Bereitstellung von in Java entwickelten Webanwendungen mit Jenkins [Tomcat App Edition]
Liste der in Java 9 hinzugefügten Mitglieder
Liste der in Java 9 hinzugefügten Typen
Implementierung einer ähnlichen Funktion in Java
Remote-Debugging von Cognos SDK
Implementierung von DBlayer in Java (RDB, MySQL)
Kriegsbereitstellung für Azure Web Apps (Maven)
Erstellen von Java-Webanwendungen unter Windows Server 2016
Die Geschichte des Schreibens von Java in Emacs
Diskriminierung von Enum in Java 7 und höher
Die Geschichte des einfachen String-Vergleichs in Java
Die Geschichte eines gewöhnlichen Othello in Java
Über die Idee anonymer Klassen in Java
Stellen Sie Java-Webanwendungen mit maven in Azure bereit
So zeigen Sie eine Webseite in Java an
Implementierung der Zifferngruppierung in der Furima App
Die Geschichte des Lernens von Java in der ersten Programmierung
Messen Sie die Größe eines Ordners mit Java
[Java] Verwendung von final in der lokalen Variablendeklaration
Spüren Sie den Lauf der Zeit auch in Java
Lassen Sie uns mit Java ein supereinfaches Webframework erstellen
Ein kurzer Überblick über Java, das im Unterricht gelernt wurde
Methodenname der Methodenkette in Java Builder + α
Importieren Sie Dateien derselben Hierarchie in Java