2017-01-04 12 views
0

У меня есть класс с интерфейсом и новый класс, для которого я вызываю новый ojbClass (params) - который содержит ejb-вызов (код ниже). Когда он получает вызов ejb из этого класса, я получаю исключение из NULL-точки.EJB Null point exception

класса вызова метода EJB внутри

public class ProfileDTO { 

    private Profile profileEntity; 

    @EJB 
    private ProfileRemoteBean profileBean; //remote bean is interface name 

    public ProfileDTO(String firstName, String lastName, Date birthDate, String gender, String country, String district, String city, String identificationNo, String idCardNo, String phone) { 

     createProfile(); 

    } 

    public void createProfileEntity() { 

     Profile profileEntity = new Profile(); 

     //deleted code for stackoverflow 
     //................................... 
     this.profileEntity = profileEntity; 
    } 

    public Profile getProfileEntity(){ 
     return this.profileEntity; 
    } 

    private void createProfile() { 
     createProfileEntity(); 
     profileBean.addProfile(getProfileEntity()); // profile bean null point here 
    } 

} 

EJB Interface

@Remote 
public interface ProfileRemoteBean { 
    public List<Profile> getProfile(); 
} 

EJB класса

@Stateless 
public class ProfileBean implements ProfileRemoteBean,Serializable{ 

    @PersistenceContext(unitName = "com.ulbs.admission.core_AdmissionCoreDBEJB_ejb_1.0-SNAPSHOTPU", type = PersistenceContextType.TRANSACTION) 
    private EntityManager entityManager; 



    @Override 
    public List<Profile> getProfile() { 
    TypedQuery<Profile> query = entityManager.createNamedQuery("Profile.findAll", Profile.class); 
    return query.getResultList(); 
    } 
} 

Можете ли вы дать мне несколько советов или решение?

Спасибо!

ответ

1

То, что вы пытаетесь, не должно работать: Вы не можете вводить EJB в DTO, потому что это не управляемый класс.

Либо реорганизуйте свою инъекцию зависимости, либо передайте ProfileRemoteBean на ProfileDTO через конструктор.

0

Ваш код выглядит нормально, NPE не исходит из вашего метода ProfileRemoteBean.addProfile(Profile profile) вместо этого?

Можно ли вставить его?

+0

исходит из этой строки, но поскольку profileBean имеет значение null для отладчика –