java - Jersey 过滤器发生在 Jetty url 重写处理程序之前
问题描述
我正在使用 Jetty 重写处理程序将 /recommendation/api/movies 之类的 url 重写为 /movies。
protected static JettyServerCustomizer jettyRewriteHandlerCustomizer() {
return server -> {
RewriteHandler rewrite = new RewriteHandler();
rewrite.setRewriteRequestURI(true);
rewrite.setRewritePathInfo(false);
rewrite.setOriginalPathAttribute("originalPath");
RewritePatternRule recommendationApiToNone = new RewritePatternRule();
recommendationApiToNone.setPattern("/recommendation/api/*");
recommendationApiToNone.setReplacement("/");
rewrite.addRule(recommendationApiToNone);
server.insertHandler(rewrite);
};
}
而且我还将 Jersey 配置为过滤器,以便提供招摇的静态内容,例如 index.html。
spring.jersey.type=filter
但是,这样看来,请求会在没有被重写的情况下先命中球衣过滤器,从而导致 404 资源未找到。
有没有办法让重写处理程序出现在 Jersey 过滤器之前?
解决方案
我的错。我包含了依赖项 spring-boot-starter-web ,但没有排除其中的默认 tomcat 服务器。所以码头服务器没有启动,无法重写URL。解决。
推荐阅读
- c# - C# 类可以从自己的实现中调用接口的默认接口方法吗?
- android - 如何使用 OR-Query 和实时更新查询 Firestore
- android - 如何让 android studio 将我的设备识别为 android 设备?
- java - 使用 JWT 实现身份验证端点
- android - FireStoreRecyclerAdapter 只在它之前出现的东西之后显示结果?
- sharepoint-2010 - Sharepoint IF 公式返回值 NO
- c# - Rust 中 fn 参数的协方差使用什么?
- r - 只有在 MICE 中满足某些条件时,我如何估算缺失值?
- python - QT QWidget启动中的信号和事件处理后如何运行代码?
- c# - 为什么 Kendo 的 ToDataSourceResult 会为一个查询创建两个 ADO.Net 调用