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 Webdiensts. 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. Bearbeiten Sie im heruntergeladenen Projekt die Datei springboot/src/main/java/com/example/appengine/springboot/DemoApplication.java, um einige Java-Importe und einen REST-Hello-Handler hinzuzufügen:

    package com.example.appengine.springboot;
    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 DemoApplication {
    public static void main(String[] args) {
    SpringApplication.run(DemoApplication.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.

Erstellen der app.yaml-Datei

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:
    springboot/src/main/appengine/

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

    Java 21

    runtime: java21
    

    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:

  • springboot/
    • pom.xml
    • src/main/
      • appengine/
        • app.yaml
      • java/com/example/appengine/springboot/
        • DemoApplication.java

Sie können auch das Maven-Plug-in, das die Bereitstellung der Anwendung ermöglicht, in der pom.xml des Projekts hinzufügen:

            <plugin>
                <groupId>com.google.cloud.tools</groupId>
                <artifactId>appengine-maven-plugin</artifactId>
                <version>2.8.1</version>
                <configuration>
                    <projectId>YOUR_PROJECT_NAME</projectId>
                    <version>YOUR_VERSION</version>
                    <promote>false</promote>
                </configuration>
            </plugin>

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.