1

我正在逐步将我们的应用程序 servlet 从 web.xml 迁移到 Guice servlet 模块,并遇到了 UrlRewrite 过滤器的问题 (tukey.org/urlrewrite/‎)。它不处理在 Guice 模块中注册的 servlet。如果我在 web.xml 中注册了 servlet 和过滤器,一切正常,但如果我尝试在 Guice 模块中注册它们 - 不会。有人遇到过类似的问题吗?

以下是代码的一些摘录:

1)Guice配置模块。

public class ServletConfigurationModule extends ServletModule {

@Override
protected void configureServlets() {

    bind(UrlRewriteFilter.class).in(Singleton.class);

    Map<String, String> urlRewriteParams = new HashMap<>();
    urlRewriteParams.put("confReloadCheckInterval", "60");
    urlRewriteParams.put("statusEnabled", "false");

    filter("/*").through(UrlRewriteFilter.class, urlRewriteParams);

    serve("/account").with(Account.class);

2) urlrewrite.xml 内容

    <rule>
       <from>/affiliate-activation</from>
       <to>/account?do=affiliate&amp;trg=5</to>
    </rule>

当我尝试打开 url myhost/affiliate-activation 时,我收到 404 HTTP 错误。

4

1 回答 1

0

我希望我已经解决了这个问题。在这里你可以找到一个带有示例的 repo。克隆 repo 并执行gradle jettyRun. 您可以使用浏览器测试应用程序。随时提出任何问题并分享想法。基本上urlrewrite.xml改变了。

于 2014-04-09T06:34:25.010 回答