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

时间:2017-07-21 19:17:42

标签: maven tomcat spring-boot intellij-idea war

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

通过IntelliJ我配置了Tomcat服务器。我添加了这个WAR,其上下文根为' / contextroot'。所以我希望URL REST是localhost:8080 / contextroot / xyz / a。这会导致404错误。

  1. 您能帮助我获得正确的配置或网址吗?

  2. 有没有办法查看哪些网址从控制器映射到网址?或者:我如何更容易地解决这些映射问题(来自Tomcat)?

  3. 在Maven Pom.xml中,我有:

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

    内部也是背景。

1 个答案:

答案 0 :(得分:1)

@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. 从&#39; jar&#39;更改建筑流程的目标进入战争&#39;

    &LT;包装和GT;战争&LT; /包装&GT;

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

    &LT;依赖性&GT;     ...     &LT;依赖性&GT;         &LT;&的groupId GT; org.springframework.boot&LT; /&的groupId GT;         &LT; artifactId的&GT;弹簧引导起动的Tomcat&LT; / artifactId的&GT;         &LT;范围&GT;条件&LT; /范围&GT;     &LT; /依赖性&GT;     ... &LT; /依赖性&GT;