java - 用于第三方 servelet 的 Guice Singleton Servlet Binding 解决方法

标签 java google-app-engine servlets guice

我正在尝试弄清楚如何为我的代码单例绑定(bind)一个 servlet:

public class GuiceServletModule extends ServletModule {
    @Override
    protected void configureServlets() {
        Map<String, String> params = new HashMap<String, String>();
        params.put("org.restlet.application", "com.mycomp.server.RestletApplication");
        serve("/rest/*").with(org.restlet.ext.servlet.ServerServlet.class, params);
        serve("/remote_api").with(com.google.apphosting.utils.remoteapi.RemoteApiServlet.class);
    }
}

这里的问题是应用程序需要服务的两个 servelet 都是第三方库(ReSTLet 和 GAE)。

抛出的异常是:

[INFO] javax.servlet.ServletException: Servlets must be bound as singletons. Key[type=org.restlet.ext.servlet.ServerServlet, annotation=[none]] was not bound in singleton scope.

当 servlet 是第三方库,至少目前无法修改时,我该如何处理。是否有解决方法来完成这项工作?

最佳答案

解决方法是添加:

    bind(RemoteApiServlet.class).in(Scopes.SINGLETON);
    bind(ServerServlet.class).in(Scopes.SINGLETON);

关于java - 用于第三方 servelet 的 Guice Singleton Servlet Binding 解决方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28449254/

相关文章:

java - 在 Java 中使用 Google 翻译服务 api

Java - 反转字符串空错误

python - python + Google 应用引擎中的自动完成文本框示例

java - JSP和Servlet生命周期方法

java - 服务程序 : Force Browser (Google Chrome) to Open 'Save As' Dialog Immediately

java - 如何在线程安全执行中编写util.logger?

java - 为什么xsi :schemaLocation declaration?中有冗余

eclipse - App-Engine JDO 一致性读取不起作用,可能是缓存?

java - 从 Google Java API 数据存储迁移到 Mysql

java - 如何根据请求有效负载将请求与 Java EE 应用程序中的 HttpSession 相关联?