2015-02-11 2 views
8

Я пытаюсь выяснить, как Singleton связать сервлет для моего кода:Guice Singleton Servlet Binding обходным для сторонних servelets

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); 
    } 
} 

Проблема здесь состоит в том, что как servelets приложение должно serve - это сторонняя библиотека (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. 

Как я могу справиться с этим, когда сервлеты библиотека третьей стороной, которая не может быть изменена по крайней мере на данный момент. Есть ли работа, чтобы сделать эту работу?

ответ

12

Решение добавить:

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

Спасибо работал большой для меня. – Daniel

Смежные вопросы