2010-11-18 3 views
2

У меня есть метод, аннотированный @Provides в моей конфигурации Guice, но он не работает.Метод Guice @Provides не работает

public class GuiceConfig extends GuiceServletContextListener { 

    ... 

    @Provides @RequestScoped 
    EntityManager provideEntityManger() { 
    return entityManagerFactory.createEntityManager(); 
    } 

} 

Когда я запускаю мое приложение, я получаю следующее сообщение об ошибке:

com.google.inject.CreationException: Guice creation errors:<|<|1) No implementation for javax.persistence.EntityManager was bound.<| while locating javax.persistence.EntityManager<|
for parameter 0 at com.someclass.of.myproject

+2

Я мог ошибаться, но это похоже на проблему, связанную со мной. Вы уверены, что область обзора верна? Когда ваш веб-пуск начнется, он не будет в RequestScope. – gpampara

ответ

4

Основная проблема здесь состоит в том, что вы используете @Provides неправильно. Метод @Provides должен быть в одном из Module s, который вы используете при инициализации Guice ... вы не можете просто поместить его в GuiceServletContextListener.

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