tomcat部署是404

50pmv0ei  于 2021-07-23  发布在  Java
关注(0)|答案(1)|浏览(321)

我正试图在tomcat8上部署一个spring boot rest控制器。当我直接从eclipse运行它时,它工作得很好。但是当部署到Tomcat8时,我得到一个404错误。
我遵守了这些指示(https://www.baeldung.com/spring-boot-war-tomcat-deploy)到处搜索,但似乎什么都没用。
这是我的控制器:

import java.util.Collection;
import java.util.stream.Collectors;
import java.util.stream.IntStream;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class TomcatController {

    @GetMapping("/hello")
    public Collection<String> sayHello() {
        return IntStream.range(0, 10)
          .mapToObj(i -> "Hello number " + i)
          .collect(Collectors.toList());
    }

}

这是我的申请表:

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;

@SpringBootApplication
public class SsoApplication extends SpringBootServletInitializer {

    public static void main(String[] args) {
        SpringApplication.run(SsoApplication.class, args);
    }

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
        return builder.sources(SsoApplication.class);
    }
}

下面是我的pom.xml:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.test</groupId>
  <artifactId>sso</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <name>SSOServices</name>
  <description>SSO Services</description>
  <packaging>war</packaging>

    <parent>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-parent</artifactId> 
      <version>2.4.0</version> 
      <relativePath/> 
    </parent> 
    <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>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
        <finalName>${artifactId}</finalName>
    </build>

</project>

任何帮助都将不胜感激。总而言之,当我用localhost:8080/hello“,它起作用了。当我部署到tomcat 8并使用localhost:8080/sso/hello“,我得到一个404。

8yoxcaq7

8yoxcaq71#

从m。deinum(上图)
要使SpringBoot2.4正常工作,您至少需要使用Tomcat8.5(不仅仅是8)或者更好的Tomcat9。

相关问题