Spring Boot请求端点返回404

Spring Boot请求端点返回404,第1张

Spring Boot请求端点返回404

让我首先说一下,不能提供静态内容的原因是因为Jersey
servlet的默认servlet映射为

/*
,并且它占用了所有请求。因此,无法访问提供静态内容的默认servlet。除了以下解决方案之外,另一个解决方案是仅更改servlet映射。您可以通过用注释
ResourceConfig
子类
@ApplicationPath("/another-mapping")
或设置
application.properties
属性来实现
spring.jersey.applicationPath


关于第一种方法,请看一下Jersey

ServletProperties
。您尝试配置的属性是
FILTER_STATIC_CONTENT_REGEX
。它指出:

该属性仅在Jersey Servlet容器配置为作为过滤器运行时适用,否则将忽略此属性

spring开机默认配置了泽西servlet容器为一个Servlet(如提到这里):

默认情况下,Jersey将以名为

@Bean
的类型设置为Servlet 。您可以通过创建自己的同名豆之一来禁用或覆盖该bean。
您还可以通过设置使用过滤器而不是Servlet
(在这种情况下,替换或覆盖的是)。
ServletRegistrationBean``jerseyServletRegistration

spring.jersey.type=filter
@Bean``jerseyFilterRegistration

因此,只要设置属性

spring.jersey.type=filter
在你的
application.properties
,它应该工作。我已经测试过了

对于FYI,无论是配置为Servlet过滤器还是Servlet,就Jersey而言,功能都是相同的。

As an aside, rather then using the

FILTER_STATIC_CONTENT_REGEX
, where you
need to set up some complex regex to handle all static files, you can use the
FILTER_FORWARD_ON_404
.
This is actually what I used to test. I just set it up in my
ResourceConfig

@Componentpublic class JerseyConfig extends ResourceConfig {    public JerseyConfig() {        packages("...");        property(ServletProperties.FILTER_FORWARD_ON_404, true);    }}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5441840.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-11
下一篇 2022-12-11

发表评论

登录后才能评论

评论列表(0条)

保存