Spring boot Spring boot在包含Jersey REST时不提供静态内容

Spring boot Spring boot在包含Jersey REST时不提供静态内容,spring-boot,jersey,jersey-2.0,Spring Boot,Jersey,Jersey 2.0,我在尝试从spring启动应用程序提供index.html(位于main/resources/static下)时遇到HTTP 404错误。但是,如果我从项目中删除基于Jersey的JAX-RS类,那么就可以了 以下是主要课程 @SpringBootApplication public class BootWebApplication { public static void main(String[] args) { SpringApplication.run(Boot

我在尝试从spring启动应用程序提供index.html(位于main/resources/static下)时遇到HTTP 404错误。但是,如果我从项目中删除基于Jersey的JAX-RS类,那么就可以了

以下是主要课程

@SpringBootApplication
public class BootWebApplication {

    public static void main(String[] args) {
        SpringApplication.run(BootWebApplication.class, args);
    }
}
我不确定我是否遗漏了什么


谢谢

问题在于Jersey servlet路径的默认设置,默认为
/*
。这会占用所有请求,包括对静态内容的默认servlet的请求。因此,请求将前往Jersey查找静态内容,当它在Jersey应用程序中找不到资源时,它将发送404

围绕这一点,您有两个选择:

  • 将Jerse运行时配置为过滤器(默认情况下不是servlet)。看看你是怎么做到的。同样使用此选项,您需要配置一个
    ServletProperties
    ,以将404转发到servlet容器。您可以使用配置Jersey的属性转发导致找不到Jersey资源的所有请求,也可以使用允许您配置用于转发请求的正则表达式模式的属性

  • 您可以简单地将Jersey servlet模式更改为默认模式以外的其他模式。最简单的方法是使用
    @ApplicationPath(“/root path”)
    注释
    ResourceConfig
    子类。或者您可以在
    应用程序.properties
    -
    spring.jersey.applicationPath
    中配置它


  • @Emoleumasi能否请您详细说明兼容性问题?“我们(春靴队)还不知道有什么。@Andy Wilkinson我在春靴和球衣方面已经有过不好的经验。查看我的帖子了解更多解释:和