Erfassen Sie Ihre Fortschritte
Trailhead-Startseite
Trailhead-Startseite

Ändern und Hinzufügen von Services in einer Java-Anwendung in Heroku

Lokale Ausführung Ihrer Anwendung

Bei jeder Anwendung, die Sie in Heroku ausführen, sind früher oder später neue Funktionen und Verbesserungen erforderlich. Wenn Sie solche Änderungen vornehmen, sollten Sie die Möglichkeit haben, Ihren Java-Prozess lokal auszuführen, um ohne großen Aufwand Probleme beheben, Tests ausführen und das korrekte Funktionieren der Anwendung prüfen zu können. In dieser Einheit erfahren Sie, wie Sie die Java-Beispielanwendung genauso ausführen wie auf der Heroku-Plattform. Dann nehmen Sie Änderungen an der Anwendung in Ihrer lokalen Umgebung vor und stellen sie in Heroku bereit.

Heroku erkennt eine Java-Anwendung daran, dass das Stammverzeichnis eine pom.xml-Datei enthält. Für Ihre eigenen Anwendungen können Sie eine solche Datei mit dem Befehl mvn archetype:create erstellen. Die Demo-Anwendung, die Sie bereitgestellt haben, verfügt bereits über eine pom.xml-Datei (sehen Sie sie sich in GitHub an). Hier ist ein Auszug daraus:

<dependencies>    
   <dependency>      
    <groupId>org.springframework.boot</groupId>      
    <artifactId>spring-boot-starter-actuator</artifactId>    
   </dependency>    
   <dependency>      
    <groupId>org.springframework.boot</groupId>      
    <artifactId>spring-boot-starter-web</artifactId>    
   </dependency>    
   ...
</dependencies>

Die pom.xml-Datei gibt die Abhängigkeiten an, die mit ihrer Anwendung installiert werden sollten. Beim Bereitstellen einer Anwendung liest Heroku diese Datei und installiert die Abhängigkeiten mithilfe des Befehls mvnw clean install.

Eine andere Datei, system.properties, gibt die zu verwendende Version von Java an (Heroku unterstützt viele unterschiedliche Versionen). Der Inhalt dieser optionalen Datei ist ziemlich einfach:

java.runtime.version=1.8

Führen Sie den Befehl ./mvnw clean install in Ihrem lokalen Verzeichnis aus, um Maven zu installieren und auszuführen (wenn Sie Windows verwenden, müssen Sie den Befehl mvnw.cmd anstelle von ./mvnw ausführen).

./mvnw clean install

Der Befehl installiert die Abhängigkeiten und bereitet Ihr System für die lokale Ausführung der Anwendung vor. Bitte beachten Sie, dass diese Anwendung Java 8 erfordert; Sie können jedoch eigene Anwendungen mit einer anderen Version von Java entwickeln.

Jetzt starten Sie Ihre Anwendung lokal mit dem Befehl heroku local, der mit der Heroku CLI installiert wurde.

heroku local

Beispiel für die Ausgabe des Befehls 'heroku local'

Genau wie in der Heroku-Cloud, untersucht heroku local die Procfile-Datei, um festzustellen, welcher Befehl ausgeführt werden soll.

Setzen Sie die Ausführung dieses Befehls fort und öffnen Sie http://localhost:5000 mit Ihrem Webbrowser. Sie sehen, dass Ihre Anwendung lokal ausgeführt wird.

Wenn Sie die lokale Ausführung der Anwendung stoppen möchten, wechseln Sie zurück zu Ihrem Terminalfenster und drücken STRG+C zum Beenden.

Übermitteln lokaler Änderungen mit Push

Bei diesem Schritt lernen Sie, wie Sie eine lokale Änderung an der Anwendung an Heroku übertragen. Als Beispiel ändern wir die Anwendung so ab, dass sie eine neue HTML-Seite anzeigt.

Ändern Sie die Datei src/main/java/com/example/Main.java, indem Sie die folgende Methode zur Main-Klasse hinzufügen.

@RequestMapping("/hello")
String hello(Map<String, Object> model) {
  model.put("message", "Welcome to my app!");
  return "hello";
}

Erstellen Sie dann eine Datei namens src/main/resources/templates/hello.html mit diesem Inhalt.

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org" 
th:replace="~{fragments/layout :: layout (~{::body},'hello')}">
<body>  
  <div class="container">    
   <p th:text="${message}"/>  
  </div>
</body>
</html>

Testen Sie Ihre Änderung jetzt lokal, indem Sie die folgenden Befehle ausführen (nicht vergessen: bei Verwendung von Windows lautet der Befehl mvnw.cmd).

./mvnw clean install
heroku local web

Weisen Sie Ihrem Browser den Weg zu Ihrer Anwendung auf dem Pfad /hello zu http://localhost:5000/hello. Sie sehen Ihre Begrüßungsnachricht.

Stellen Sie diese Änderungen nun in Heroku bereit. Beinahe jede Bereitstellung in Heroku folgt demselben Muster.

Zuerst fügen Sie die geänderten Dateien zum lokalen Git-Repository hinzu.

git add .

Dann schreiben Sie die Änderungen mit Commit im Repository fest.

git commit -m "Demo"

Übertragen Sie nun die Änderungen mit Push an das Heroku Remote-Repository Ihrer Anwendung.

git push heroku master

Abschließend überprüfen Sie, dass alles funktioniert, indem Sie die Anwendung im Pfad /hello öffnen.

heroku open hello

Sie sehen in Ihrem Webbrowser denselben Text wie bei der lokalen Ausführung der Anwendung.

Bereitstellen eines Add-Ons

Add-Ons sind Cloud-Services von Drittanbietern, die sofort einsatzbereite Zusatzservices für Ihre Anwendung bieten, von Persistenz über Protokollierung bis hin zur Überwachung usw. Ihre Java-Anwendung wird automatisch mit einem Add-On installiert: einer Postgres-Datenbank. Im Heroku Dev Center-Artikel zu Postgres erfahren Sie mehr über die Verwaltung Ihrer Postgres-Datenbank. 

Hier zeigen wir Ihnen, wie Sie ein weiteres Add-On für die Protokollierung hinzufügen.

Standardmäßig speichert Heroku 1500 Protokollzeilen aus Ihrer Anwendung. Es stellt jedoch den gesamten Protokoll-Stream als Service zur Verfügung, und verschiedene Add-On-Anbieter haben Protokollierungsservices geschrieben, die Aufgaben wie Protokollpersistenz, Suchen, E-Mail und SMS-Benachrichtigungen bereitstellen.

In diesem Schritt stellen Sie eines dieser Protokollierungs-Add-Ons bereit, und zwar das Add-On "Papertrail".

Stellen Sie das Protokollierungs-Add-On Papertrail bereit.

heroku addons:create papertrail

Ausgabe von 'Papertrail'

Zur Vorbeugung von Missbrauch ist bei der Bereitstellung eines Add-Ons eine Account-Überprüfung erforderlich. Wenn Ihr Account nicht überprüft wurde, werden Sie aufgefordert, die Überprüfungs-Website zu besuchen.

Wenn Sie dieses spezielle Add-On in Aktion sehen möchten, besuchen Sie den Heroku-URL Ihrer Anwendung ein paar Mal. Jeder Besuch erzeugt weitere Protokollmeldungen, die jetzt zum Add-On "Papertrail" weitergeleitet werden sollten. Besuchen Sie die Papertrail-Konsole, um sich die Protokollmeldungen anzusehen.

heroku addons:open papertrail

Ihr Browser öffnet eine Papertrail-Webkonsole, die die neuesten Protokollereignisse zeigt. Die Oberfläche ermöglicht Ihnen, Suchen durchzuführen und Benachrichtigungen einzurichten.

Liste protokollierter Ereignisse

Herzlichen Glückwunsch! Ihre Java-Anwendung ist jetzt bereit für den Produktionseinsatz. 

Klicken Sie auf Verify Step (Schritt überprüfen), um das Projekt abzuschließen.

Ressourcen