gpt4 book ai didi

java - Jersey + Guice 不能将非 Jersey 资源与 Jersey 资源混合

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:54:19 27 4
gpt4 key购买 nike

如何通过 guice 使用非 Jersey 资源和 Jersey 资源?

我希望“/”由普通 servlet 处理。但我希望 Jersey 处理“/users”。

假设我有一个带@Path("/users") 的 Jersey 资源。使用以下绑定(bind)将不起作用,它尝试使用 jersey 映射“/”请求,这当然不是 jersey 资源,我得到 404。

protected void configureServlets() {
serve("/").with(LoginServlet.class);
serve("/*").with(GuiceContainer.class, params);
}

我能找到的所有 jersey/guice 示例都执行类似 serve("/rest/*".with(GuiceContainer.class, params);这对我有用(“/rest/users”),但我想要没有像“rest”或“ws”这样的任意前缀的漂亮 URI。

最佳答案

“/”和“/*”的匹配不明确。

要处理此问题,您可以使用允许使用正则表达式而不是简单模式的 serve 方法版本。

例如,这样的事情可能有效:

serve("/").with(LoginServlet.class);
serveRegex("/.+").with(GuiceContainer.class, params);

GuiceContainer 映射现在要求斜杠后至少有一个字符。

关于java - Jersey + Guice 不能将非 Jersey 资源与 Jersey 资源混合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9556495/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com