我正在尝试部署一个war打包的springboot应用程序- Java 11。
创建了一个全新的springboot web应用程序(打包war),并遵循了https://cloud.google.com/appengine/docs/standard/java-gen2/war-packaging来自step1的文章。即克隆和安装(https://github.com/GoogleCloudPlatform/java-docs-samples)
弹簧引导父母
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<!-- <version>2.7.2</version>-->
<version>2.5.4</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<packaging>war</packaging>
<properties>
<java.version>11</java.version>
<maven.compiler.target>11</maven.compiler.target>
<maven.compiler.source>11</maven.compiler.source>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.google.cloud</groupId>
<artifactId>spring-cloud-gcp-dependencies</artifactId>
<!-- <version>2.0.3</version>-->
<version>2.0.4</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>将猫排除在网页之外
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>已添加
<dependency>
<groupId>com.example.appengine.demo</groupId>
<artifactId>simple-jetty-main</artifactId>
<version>1</version>
<scope>provided</scope>
</dependency>和插件
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.6.6</version>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.3.2</version>
</plugin>
<plugin>
<groupId>com.google.cloud.tools</groupId>
<artifactId>appengine-maven-plugin</artifactId>
<version>2.4.2</version>
<configuration>
<version>1</version>
<projectId>GCLOUD_CONFIG</projectId>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>3.1.1</version>
<executions>
<execution>
<id>copy</id>
<phase>prepare-package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>
${project.build.directory}/appengine-staging
</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
</plugins>src/main/appengine/app.yaml
runtime: java11
entrypoint: 'java -cp "*" com.example.appengine.demo.jettymain.Main myapp-0.0.1-SNAPSHOT.war'
instance_class: B2
handlers:
- url: /.*
script: this field is required, but ignored
manual_scaling:
instances: 1
resources:
cpu: 2
memory_gb: 2.3
disk_size_gb: 20
volumes:
- name: ramdisk1
volume_type: tmpfs
size_gb: 0.5产出:

遗憾的是,这不是我所期望的。
另一个变体:我记得的没有添加servlet初始化器,所以纠正它
@SpringBootApplication
public class DashApplication extends SpringBootServletInitializer {
public static void main(String[] args) {
SpringApplication.runDashApplication.class, args);
}
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(DashApplication.class);
}
}误差
应用程序在日志中出现错误。
org.springframework.boot.env.EnvironmentPostProcessor org.springframework.boot.test.web.SpringBootTestRandomPortEnvironmentPostProcessor "java.lang.IllegalArgumentException:无法实例化org.springframework.boot.util.Instantiator.instantiate(Instantiator.java:131) at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195)
我犯了什么错?
请帮助-如何创建一个简单的Java 11,springboot引导,war包,并部署到应用程序引擎
发布于 2022-08-14 16:31:12
正如注释部分所提到的,在spring-boot-starter-test中添加pom.xml作为测试依赖解决了这个问题。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
</dependency>为了将来可能遇到这个用例的社区的利益,将答案作为社区wiki发布。
https://stackoverflow.com/questions/73242099
复制相似问题