2017-08-01 17 views
0

を解決しませんCDI注入が、私はこのクラスまし

public class ClientAuthzEndpoint implements IClientAuthzEndpoint { 
    @Inject private ClientAuthzService clientAuthzService; 
    //... 
} 

IClientAuthzEndpoint:エンドポイントは、私のJAXRSインターフェイスに到達した

@Path(value = "/client") 
@Produces(MediaType.APPLICATION_JSON) 
public interface IClientAuthzEndpoint { 

しかし、ConfigurationResourcesClientAuthService内部に注入されていない:私は取得しています

public ClientAuthzService() 
    { 
     this.mongoUserRepository = new UserMongoRepository(
      new MongoContextSource(
       this.configurationResources.getMongodbServer(), 
       this.configurationResources.getMongodbPort(), 
       this.configurationResources.getMongodbDatabase(), 
       this.configurationResources.getMongodbUsername(), 
       this.configurationResources.getMongodbPassword(), 
       this.configurationResources.getMongodbAuthenticationDatabase() 
      ) 
     ); 

NullReferenceExceptionconfigurationResourcesのためにはnullです!

アイデア?

答えて

0

ClientAuthzEndpoint が有効なBean(CDIコンテキスト内にある)であることを確認してください。 は、あなたのクラスの上に追加しよう:言い換えれば

@Named 
@RequestScoped 

@Injectを使用しているすべてのクラスが有効なBeanであることを確認し、適切な注釈を付けてください。

2

コンストラクタから挿入されたオブジェクトにアクセスすることはできません。 CDIは、オブジェクトを注入する前にオブジェクトを構築する必要があります。

あなたは@PostConstructアノテーション付きメソッドに必要な任意の初期化を実行することができます

public class ClientAuthzService { 

    @Inject 
    private ConfigurationResources configurationResources; 

    private UserMongoRepository mongoUserRepository; 

    public ClientAuthzService() { 
    } 

    @PostConstruct 
    void initialise() { 
     this.mongoUserRepository = new UserMongoRepository(
      new MongoContextSource(
       this.configurationResources.getMongodbServer(), 
       this.configurationResources.getMongodbPort(), 
       this.configurationResources.getMongodbDatabase(), 
       this.configurationResources.getMongodbUsername(), 
       this.configurationResources.getMongodbPassword(), 
       this.configurationResources.getMongodbAuthenticationDatabase() 
      ) 
     ); 
    } 

    ... 
} 
+2

...または代わりにコンストラクタ・インジェクションを使用し... – mtj

関連する問題