2016-06-20 12 views
0

まず最初に、私はejbとjsfを使用したプログラミングでかなり新しいと言いたいと思います。開始したプロジェクトを完了しようとしています。私の友人によって。 Neo4jMBeanというマネージドBean内で宣言されたutenteSessionBeanというセッションBeanオブジェクトのメソッドutenteSessionBean.CheckUtentebyId(username)の呼び出しによってNullPointerExceptionが発生しました。 マネージドBeanで(通常のJavaオブジェクトと同じように)セッションBeanを作成して初期化する必要はありませんが、宣言するだけで十分です。 はここDBマネージドBeanでセッションejbを使用できない原因Null Pointer例外が発生する

@Stateless 
@LocalBean 
public class UtenteSessionBean { 

EntityManagerFactory emf = Persistence.createEntityManagerFactory("EnterpriseApplication2-ejbPU"); 

public boolean CheckUtentebyId(String username){ 
    EntityManager em = emf.createEntityManager(); 
    Query query = em.createNamedQuery("Utente.findByUsername"); 
    query.setParameter("username", username); 
    List<Utente> Res=query.getResultList(); 
    //completare funzione ctrl+spazio 
    System.out.println("pre"); 
    System.out.println("pre"+Res.isEmpty()); 
    em.close(); 
    System.out.println("post"); 
    System.out.println("post"+Res.isEmpty()); 
    if(Res.size()>=1) 
    { 
     return true; 
    } 
    else 
    { 
     return false; 
    } 

} 
} 

から件のデータを取得し、セッションBeanのコードは、ここで私が何倍StackOverflowの上でこれを固定するためのソリューションを検索した管理対象Bean

@ManagedBean 
@ViewScoped 
public class Neo4jMBean { 

@EJB 
private UtenteSessionBean utenteSessionBean; 

static String SERVER_ROOT_URI = "http://localhost:7474/db/data/"; 

public Neo4jMBean() { 
} 

public boolean getUser(String username) { 

    return utenteSessionBean.CheckUtentebyId(username); 
} 
} 

のコードですさ問題は、私はまだ私のために働く何かを発見していない。

+0

によってsurrondedする必要がありますTomcatを使用しています? –

+0

Netbeans 8.1とGlassFishサーバー4を使用しています –

答えて

-1

私はそれがJNDIを使用してEJBコンポーネントにアクセスする固定CDI

+0

空ではどういう意味ですか?空のbeans.xmlファイルを作成しましたが、何もしませんでしたが、動作しませんでした –

+0

web-infディレクトリにbeans.xmlファイルがあります。それは隠されたファイルです。とにかくそれは働いていない –

1

を有効にするために、あなたのWEB-INFフォルダに空のbeans.xmlファイルを作成します。いくつかの単語で 、私はマネージドBeanメソッドでEJBを使用する場合、私はコードの次の行を追加する必要があります。

 InitialContext ic = new InitialContext(); 
     SessionBeanName = (SessionBeanClass) ic.lookup("java:global/NameOfTheApplication/NameOfTheEJBpackage/NameOfTheSessionBean"); 

それはのtry-catchステートメント

関連する問題