我正在为个人项目构建REST API,使用Spring Boot执行此操作,并部署到Google App Engine上。该项目在本地编译和运行没有任何问题,我可以部署到GAE,没有构建错误。 但是,当我在部署到GAE后导航到我的URI时,会抛出404,并显示以下消息:
No context on this server matched or handled this request.
Contexts known to this server are:
/ ---> o.e.j.w.WebAppContext@56ef9176{/,file:///var/lib/jetty/webapps/root/,UNAVAILABLE}{/root.war} [failed]
我有一个build.gradle和pom.xml文件,并且必须在两者中声明依赖项,我认为这是问题。
我的pom.xml包含:
<dependencyManagement>
<dependencies>
<dependency>
<!-- Import dependency management from Spring Boot -->
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>2.0.1.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
我的build.gradle包含:
plugins {
id 'org.springframework.boot' version '2.0.1.RELEASE'
}
apply plugin: 'io.spring.dependency-management'
dependencies {
compile 'org.springframework.boot:spring-boot-starter-web'
}
当我从两者中删除两个spring boot依赖项时,错误消失。
有什么想法吗?
答案 0 :(得分:1)
最终把它弄清楚了,但是对于遇到同样错误的其他人来说,这样做会有所不同。
正如我在文档中发现的那样:如果您使用 WAR 作为可部署(而不是.jar文件),那么您还必须导入spring-boot-starter-tomcat
作为提供的依赖项。< / p>
我的pom.xml现在看起来像:
<dependencyManagement>
<dependencies>
<dependency>
<!-- Import dependency management from Spring Boot -->
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>2.0.1.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
</dependencies>
我的build.gradle现在看起来像:
plugins {
id 'org.springframework.boot' version '2.0.1.RELEASE'
}
apply plugin: 'io.spring.dependency-management'
dependencies {
compile 'org.springframework.boot:spring-boot-starter-web'
providedRuntime 'org.springframework.boot:spring-boot-starter-tomcat'
}