在Tomcat上通过IntelliJ部署SpringBoot(休息服务)战争给出了404的



通过运行应用程序(直接(启动一个小型的 SpringBoot 应用程序,REST 服务 localhost:8080/xyz/a 会给出正确的 JSON 结果。

通过IntelliJ,我配置了一个Tomcat服务器。我添加了这个带有"/contextroot"的上下文根的 WAR。所以我期望URL是localhost:8080/contextroot/xyz/a。这不断收到 404 错误。

  1. 你能帮我获得正确的配置或 URL 吗?

  2. 有没有办法查看哪些 URL 从控制器映射到 URL?或者:如何更轻松地解决这些映射问题(来自 Tomcat(?

在Maven Pom中.xml我有:

<groupId>nl.xyz</groupId>
<artifactId>contextroot</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>contextroot</name>
<packaging>war</packaging>

内部也是上下文根。

@Jonhib - 感谢您的帮助。

问题在于我将 SpringBoot (jar( 应用程序部署为 WAR 的方式。

采取这 3 个步骤将 SpringBoot 标准应用程序更改为可部署的(老式的(WAR。这是必需的,因为我将其与 Angular4 应用程序一起部署。

第 1 步 - 更改标准的 SpringBoot 应用程序:

@SpringBootApplication
public class Application extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(Application .class);
}
public static void main(String[] args) {
SpringApplication.run(Application .class, args);
}
}
  1. 将构建过程的目标从"jar"更改为"战争"。

    <包装>战争

  2. 新的依赖项添加到 pom.xml maven 文件中:

    <依赖关系>...<依赖性>org.springframework.bootspring-boot-starter-tomcat<范围>提供...

最新更新