2010-11-18 20 views
2

Guice yapılandırmamda @Provides ile açıklamalı bir yöntem var, ancak çalışmıyor. yanlış @Provides kullanmakta olduğunuzGuice @Provides yöntemi çalışmaz

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

Yanılıyor olabilirim, ancak kapsam belirleme ile ilgili bir sorun gibi görünüyor. Kapsam belirleme doğru olduğundan emin misin? Web sunucunuz başladığında RequestScope'ta olmayacak. – gpampara

cevap

4

burada asıl sorun: Başvurumu çalıştırdığınızda

public class GuiceConfig extends GuiceServletContextListener { 

    ... 

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

} 

aşağıdaki hatayı alıyorum. Bir @Provides yönteminin, Guice'i başlatırken kullandığınız Module s'lardan birinde olması gerekir ... GuiceServletContextListener'a ekleyemezsiniz.