כתיבת שירות האינטרנט

במדריך הזה מוסבר איך לכתוב שירות אינטרנט ב-Java כדי להפעיל אותו בסביבה הרגילה של App Engine. מידע נוסף על זמן הריצה של Java ועל אופן הפעולה שלו מופיע במאמר סביבת זמן ריצה של Java.

לפני שמתחילים

אם עדיין לא עשיתם זאת:

  1. מתקינים את הגרסה האחרונה של Java Development Kit‏ (JDK) לגרסת זמן הריצה של App Engine שבה אתם מתכננים להשתמש.
  2. מורידים ומתקינים את Apache Maven כדי ליצור, להפעיל ולפרוס את האפליקציה לדוגמה.

נקודות עיקריות

  • ‫App Engine מפעיל את האפליקציה על ידי העלאה של קובץ JAR שניתן להפעלה.
  • באפליקציה שלכם צריך להיות מחלקה ראשית שמפעילה שרת אינטרנט שמגיב לבקשות HTTP ביציאה שצוינה על ידי משתנה הסביבה PORT, בדרך כלל 8080.
  • כדי לפרוס את השירות ב-App Engine, צריך קובץ app.yaml.
  • כדי להשתמש בתלות, צריך לפרט אותן בקובץ pom.xml. מידע נוסף זמין במאמר שימוש בספריות Java.

יצירת כיתה ראשית

הליבה של שירות האינטרנט היא שרת ה-HTTP. קוד הדוגמה במדריך הזה משתמש ב-framework‏ Spring Boot כדי לטפל בבקשות HTTP, אבל אתם יכולים להשתמש ב-framework אינטרנטי לפי בחירתכם.

  1. תצור פרויקט Spring Boot ל-Java שמשתמש במערכת build Maven ומכיל את התלות Spring Web. כדי להתחיל, לוחצים על הקישור הבא:

    מעבר אל Spring Initializr

  2. ב-Spring Initializer, לוחצים על הלחצן Generate כדי ליצור ולהוריד את הפרויקט.

  3. בפרויקט שהורדתם, עורכים את הקובץ springboot/src/main/java/com/example/appengine/springboot/DemoApplication.java כדי להוסיף כמה ייבוא של Java ומטפל REST hello:

    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!";
    }
    }
    

    המחלקות ששונו הן בקר שמתחיל את שרת Tomcat המוטמע של Spring Boot ומגיב לבקשות GET בנתיב הבסיס ('/') עם הטקסט Hello world!‎.

הפעלת השרת באופן מקומי

כדי להריץ את השרת באופן מקומי:

  1. מפעילים שרת אינטרנט מקומי באמצעות התוסף Spring Boot Maven.

    mvn spring-boot:run
    
  2. בדפדפן האינטרנט, מזינים את הכתובת הבאה:
    http://localhost:8080

ההודעה Hello World מאפליקציית הדוגמה מוצגת בדף. בחלון הטרמינל, מקישים על Ctrl+C כדי לצאת משרת האינטרנט.

יצירת קובץ app.yaml

כדי לציין הגדרות לאפליקציה בסביבת זמן הריצה של App Engine:

  1. יוצרים קובץ בשם app.yaml בספרייה הבאה:
    springboot/src/main/appengine/

  2. מוסיפים את התוכן הבא לקובץ:

    Java 21

    runtime: java21
    

    בקובץ app.yaml אפשר גם לציין הגדרות רשת, הגדרות שינוי גודל ועוד. מידע נוסף זמין במקור המידע app.yaml.

אם השתמשתם בקישור Spring Initializr שלמעלה, אמורה להיות לכם עכשיו מבנה קבצים כמו זה:

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

אפשר גם להוסיף לקובץ pom.xml של הפרויקט את פלאגין Maven שמאפשר פריסה של האפליקציה:

            <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>

השלבים הבאים

אחרי שיצרתם שרת אינטרנט פשוט ב-Java שמקשיב ליציאה הנכונה וציינתם את סביבת זמן הריצה בקובץ app.yaml, אתם מוכנים לפרוס את השירות ב-App Engine.