【问题标题】:Guice + Jersey: Add all resources and providers without bind to Jersey ServletGuice + Jersey:添加所有资源和提供者而不绑定到 Jersey Servlet
【发布时间】:2011-08-11 12:58:22
【问题描述】:

我目前正在使用 Jersey 1.8 和 Guice 3.0 for DI 为我的 JPA 开发球衣应用程序。这对我无法克服的一个主要问题非常有效:

我必须使用 bind 手动将所有 Jersey 资源类添加到 JerseyServletModule:

@Override
protected Injector getInjector() {
    return Guice.createInjector(new JerseyServletModule() {

        @Override
        protected void configureServlets() {

            install(new JpaPersistModule("DBName"));
            filter("/*").through(PersistFilter.class);

            /* bind the REST resources and serve*/
            bind(Hello.class);
            serve("/*").with(GuiceContainer.class);

        }
    });
}

我希望能够为每个资源和提供者省略绑定的使用,并在 jersey-guice doc 中找到了一个注释:http://jersey.java.net/nonav/apidocs/1.8/contribs/jersey-guice/com/sun/jersey/guice/spi/container/servlet/package-summary.html

它基本上表明可以将球衣资源的注册传递给球衣servlet。但是我无法使用上述方法来管理这个:

@Override
     protected Injector getInjector() {
         return Guice.createInjector(new JerseyServletModule() {

             @Override
             protected void configureServlets() {
                 bind(GuiceResource.class);

                 Map<String, String> params = new HashMap<String, String>();
                 params.put(PackagesResourceConfig.PROPERTY_PACKAGES, "unbound");
                 serve("/*").with(GuiceContainer.class, params);
             }
         }
     });

遗憾的是我无法获得更多关于球衣资源注册过程的信息。

任何帮助将不胜感激。当然,如果需要,我可以提供更多信息! 谢谢。

【问题讨论】:

    标签: java jersey guice


    【解决方案1】:

    我回答自己的问题变得相当标准,但我从 Guice 2 Thread 中找到了答案,但幸运的是它适用于 Guice 3 和 Jersey 1.8

    /*
    * The following line will scan ausbdsoccer.server.resources package for Jersey Resources
    */
    params.put("com.sun.jersey.config.property.packages","ausbdsoccer.server.resources");
    

    你去。

    不要忘记将 params Map 传递给您的 GuiceContainer.class!

    【讨论】:

    • 谢谢,真的很有帮助!我遇到了同样的问题。
    猜你喜欢
    • 2013-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-20
    • 2019-03-14
    相关资源
    最近更新 更多