编写网络服务

本指南介绍如何编写要在 App Engine 标准环境中运行的 Java Web 服务。如需详细了解 Java 运行时及其工作原理,请参阅 Java 运行时环境

准备工作

如果您尚未准备:

  1. 为计划使用的 App Engine 运行时版本安装最新版本的 Java 开发工具包 (JDK)
  2. 下载安装 Apache Maven 以构建、运行和部署示例应用。

要点

  • App Engine 通过上传可执行的 JAR 应用来启动您的应用。
  • 您的应用必须具有一个主类,该类会启动一个 Web 服务器以响应由 PORT 环境变量指定的端口(通常为 8080)上的 HTTP 请求。
  • 您需要使用 app.yaml 文件以将服务部署到 App Engine。
  • 您可以在 pom.xml 文件中列出要使用的依赖项。如需了解详情,请参阅使用 Java 库

创建主类

Web 服务的核心是 HTTP 服务器。本指南中的示例代码使用 Spring Boot 框架来处理 HTTP 请求,您也可以自由使用自己偏好的 Web 框架。

  1. 生成使用 Maven 构建系统且包含 Spring Web 依赖项的 Java 版 Spring Boot 项目。如需开始使用,请点击以下链接:

    转到 Spring Initializr

  2. 在 Spring Initializer 中,点击生成按钮以生成并下载您的项目。

  3. 在下载的项目中,修改应用类以包含以下导入和代码:

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

    修改后的类是一个控制器,用于启动 Spring Boot 的嵌入式 Tomcat 服务器,并以文本“Hello world!”响应根路径 ('/') 的 GET 请求。

在本地运行服务器

如需在本地运行服务器,请执行以下操作:

  1. 使用 Spring Boot Maven 插件启动本地 Web 服务器。

    mvn spring-boot:run
    
  2. 在网络浏览器中,输入以下地址:
    http://localhost:8080

页面中随即显示示例应用发出的 Hello World 消息。在终端窗口中,按 Ctrl+C 退出 Web 服务器。

创建 app.yaml 文件

如需在 App Engine 运行时环境中为应用指定设置,请执行以下操作:

  1. 在以下目录中创建一个名为 app.yaml 的文件:
    my-java-service/src/main/appengine/

  2. 将以下内容添加到文件中:

    Java 17

    runtime: java17
    

    Java 11

    runtime: java11

    app.yaml 文件还可以指定网络设置、扩缩设置等。如需了解详情,请参阅 app.yaml 参考文档

如果您使用了上面的 Spring Initializer 链接,则现在应该具有如下所示的文件结构:

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

后续步骤

现在您已创建了一个简单的 Java Web 服务器来监听正确的端口,并且已在 app.yaml 文件中指定了运行时,接下来便可以在 App Engine 上部署您的服务