2012-01-13 54 views
2

CDIを使用しようとしていますが、注入がうまくいかず、オブジェクトインスタンスが作成されず、この上にNULLポインタが表示されています: greetObj.greet( "Champion"); 私のEJB:CDI @inject null pointer

私はEJB内のBeanを注入しようとしている

public @Stateless class CDIEjbBean implements CDIEjb { 

    @Inject Greeting greetObj; 
    public String getGreeting() { 
     return greetObj.greet("Champion"); 
    } 
} 

をし、挨拶は&修飾子

@Default 
public class Greeting { 

    public String greet(String name) { 
     return "Hello, " + name + "."; 
    } 
} 

@Qualifier 
@Retention(RUNTIME) 
@Target({TYPE, METHOD, FIELD, PARAMETER}) 
public @interface Informal {} 

@Informal 
public class InformalGreeting extends Greeting{ 
    public String greet(String name) { 
     return "Hi, " + name + "."; 
    } 
} 

任意のアイデア

オブジェクト? > CDIは、ファイルという名前の豆を持っている必要があります使用するアプリケーションCDIのアプリケーションの設定:私はJDK6_21に私はJEE6チュートリアルの最初の行を見逃している

+4

モジュールにempty beans.xmlがありますか? – Perception

+8

よく、私はJEE6チュートリアルの最初の行を逃しました: > CDIアプリケーションの設定CDIを使用するアプリケーションには、beans.xmlという名前のファイル が必要です。ファイルは完全に空でもかまいません(特定の限られた状況でのみ内容が )が存在する必要があります。 Web >アプリケーションの場合、beans.xmlファイルはWEB-INFディレクトリになければなりません。 > EJBモジュールまたはJARファイルの場合、beans.xmlファイルはMETA-INF >ディレクトリになければなりません。 修飾子を使用する場合でも。 ありがとうございました – bodtx

+0

問題は解決してうれしく思います。 – Perception

答えて

2

3.1

はあなたに

アレクシスありがとうGlassFishのよ.xml。

関連する問題