2016-12-27 5 views
0

私はrevison-EJBと呼ばれるサーバー側のMavenプロジェクトを作成し、Mavenのクライアントプロジェクトrevison-のejb-クライアントに挿入しようとしたときにNullPointerExceptionを取得。Mavenの:データベース

データベーステーブルは既に作成されていますが、t_playerテーブルに挿入しようとするとNullPointerExceptionが発生します。 ご協力いただければ幸いです!

revison-EJB

Player.java

package edu.foot.entities; 

import java.io.Serializable; 

import javax.persistence.Entity; 
import javax.persistence.GeneratedValue; 
import javax.persistence.GenerationType; 
import javax.persistence.Id; 
import javax.persistence.Table; 

/** 
* Entity implementation class for Entity: Player 
* 
*/ 
@Entity 
@Table(name = "t_player") 

public class Player implements Serializable { 

    private int id; 
    private int age; 
    private String nom; 
    private static final long serialVersionUID = 1L; 

    public Player() { 
     super(); 
    } 

    public Player(int age, String nom) { 
     super(); 
     this.age = age; 
     this.nom = nom; 
    } 

    @Id 
    @GeneratedValue(strategy = GenerationType.IDENTITY) 
    public int getId() { 
     return id; 
    } 

    public void setId(int id) { 
     this.id = id; 
    } 

    public int getAge() { 
     return this.age; 
    } 

    public void setAge(int age) { 
     this.age = age; 
    } 

    public String getNom() { 
     return this.nom; 
    } 

    public void setNom(String nom) { 
     this.nom = nom; 
    } 

    @Override 
    public String toString() { 
     return "Player [id=" + id + ", age=" + age + ", nom=" + nom + "]"; 
    } 

} 

PlayerServiceRemote.java

package edu.foot.interfaces; 

import edu.foot.entities.Player; 

public interface PlayerServiceRemote { 

    void add(Player player); 

    void update(Player player); 

} 

PlayerService

package edu.foot.interfaces.impl; 

import javax.ejb.Stateless; 
import javax.persistence.EntityManager; 
import javax.persistence.PersistenceContext; 

import edu.foot.entities.Player; 
import edu.foot.interfaces.PlayerServiceRemote; 

@Stateless 
public class PlayerService implements PlayerServiceRemote { 

    @PersistenceContext 
    EntityManager em; 

    public void add(Player player) { 
     em.persist(player); 

    } 

    public void update(Player player) { 
     em.merge(player); 

    } 

} 

revison-のejb-クライアント

package edu.esprit.irt.Player; 

import javax.naming.InitialContext; 

import edu.foot.entities.Player; 
import edu.foot.interfaces.PlayerServiceRemote; 

public class AddPlayer { 
    public static void main(String[] args) { 
     InitialContext ctx = null; 
     PlayerServiceRemote proxy = null; 
     String jndi = "revison-ejb/PlayerService!edu.foot.interfaces.PlayerServiceRemote"; 

     try { 
      ctx = new InitialContext(); 
      proxy = (PlayerServiceRemote) ctx.lookup(jndi); 
     } catch (Exception e) { 

     } 
     Player p1 = new Player(10, "Dirar"); 

     proxy.add(p1); 

    } 

} 

エラー

Exception in thread "main" java.lang.NullPointerException 
at edu.esprit.irt.Player.AddPlayer.main(AddPlayer.java:25) 

答えて

1

あなたは、コンテナの外部からEJBを呼び出しているとして、あなたは

@Remote 
public interface PlayerServiceRemote { 
としてあなたインタフェースに注釈を付ける必要があります

の情報を確認できますwhen to use @Remote

+0

ありがとう、30分前に検索して30分前に、私はすでにそれを理解しました。 –