Webdienst schreiben

Dieser Leitfaden zeigt, wie ein Java-Webdienst geschrieben wird, der in der App Engine-Standardumgebung ausgeführt wird. Weitere Informationen zur Java-Laufzeit und ihrer Funktionsweise finden Sie unter Java-Laufzeitumgebung.

Hinweise

Vorbereitende Schritte (sofern noch nicht ausgeführt):

  1. Installieren Sie die neueste Version des Java Development Kits (JDK) für die App Engine-Laufzeitversion, die Sie verwenden möchten.
  2. Apache Maven herunterladen und installieren, um die Beispielanwendung zu erstellen, auszuführen und bereitzustellen

Wichtige Fakten

  • App Engine startet Ihre Anwendung durch das Hochladen einer ausführbaren JAR-Anwendung.
  • Ihre Anwendung muss eine Hauptklasse haben, die einen Webserver startet. Dieser antwortet auf HTTP-Anfragen von dem Port, der mit der PORT-Umgebungsvariablen festgelegt wurde, in der Regel 8080.
  • Sie benötigen eine Datei app.yaml, um Ihren Dienst in App Engine bereitzustellen.
  • Sie können Abhängigkeiten verwenden, indem Sie diese in die Datei pom.xml aufnehmen. Weitere Informationen finden Sie unter Java-Bibliotheken verwenden.

Hauptklasse erstellen

Der HTTP-Server bildet den Kern Ihres Webdienstes. Der Beispielcode in diesem Leitfaden verwendet zur Verarbeitung von HTTP-Anfragen das Spring Boot-Framework. Sie können aber auch ein Web-Framework Ihrer Wahl einsetzen.

  1. Erstellen Sie ein Spring Boot-Projekt für Java, das das Maven-Build-System verwendet und die Spring Web-Abhängigkeit enthält. Klicken Sie zuerst auf den folgenden Link:

    Öffnen Sie „Spring Initializr“

  2. Klicken Sie in Spring Initializer auf die Schaltfläche Generate, um Ihr Projekt zu erstellen und herunterzuladen.

  3. Ändern Sie im heruntergeladenen Projekt die Anwendungsklasse so, dass die folgenden Importe und der folgende Code enthalten sind:

    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.RestController;
    
    @SpringBootApplication
    @RestController
    public class SpringbootApplication {
    
      public static void main(String[] args) {
        SpringApplication.run(SpringbootApplication.class, args);
      }
    
      @GetMapping("/")
      public String hello() {
        return "Hello world!";
      }
    
    }

    Die geänderte Klasse ist ein Controller, der den eingebetteten Tomcat-Server von Spring Boot startet und auf GET-Anfragen im Stammpfad ('/') mit dem Text „Hello world!“ antwortet.

Server lokal ausführen

So führen Sie den Server lokal aus:

  1. Starten Sie einen lokalen Webserver mithilfe des Spring Boot-Maven-Plug-ins.

    mvn spring-boot:run
    
  2. Geben Sie in Ihrem Webbrowser die folgende Adresse ein:
    http://localhost:8080

Auf der Seite wird die Nachricht Hello World aus der Beispielanwendung angezeigt. Drücken Sie im Terminalfenster Strg + C, um den Webserver zu beenden.

app.yaml-Datei erstellen

So legen Sie Einstellungen für Ihre Anwendung in der App Engine-Laufzeitumgebung fest:

  1. Erstellen Sie eine Datei mit dem Namen app.yaml im folgenden Verzeichnis:
    my-java-service/src/main/appengine/

  2. Fügen Sie der Datei den folgenden Inhalt hinzu:

    Java 17

    runtime: java17
    

    Java 11

    runtime: java11

    In der Datei app.yaml können unter anderem auch Netzwerk- und Skalierungseinstellungen festgelegt werden. Weitere Informationen finden Sie in der Referenz zu app.yaml.

Wenn Sie den obigen Spring Initializr-Link verwendet haben, sollten Sie nun eine Dateistruktur wie die folgende haben:

  • my-java-service/
    • pom.xml
    • src/main/
      • appengine/
        • app.yaml
      • java/com/example/appengine/springboot/
        • SpringbootApplication.java

Nächste Schritte

Sie haben jetzt einen einfachen Java-Webserver erstellt, der den richtigen Port überwacht, und Sie haben die Laufzeit in der Datei app.yaml angegeben. Als Nächstes können Sie den Dienst in App Engine bereitstellen.