2010-11-18 21 views
2

Guice設定で@Providesという注釈が付けられたメソッドがありますが、機能しません。私は自分のアプリケーションを実行すると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

私は間違っている可能性がありますが、それは私にスコープ関連の問題のように見えます。スコープが正しいと確信していますか? Webappが起動すると、RequestScopeには入りません。 – gpampara

答えて

4

主な問題は、あなたが間違って@Providesを使用していることです。 @Providesメソッドは、Guiceを初期化するときに使用するModuleのいずれかになければなりません。GuiceServletContextListenerに入れることはできません。

関連する問題