gpt4 book ai didi

java - EJB 空点异常

转载 作者:行者123 更新时间:2023-12-01 09:03:42 25 4
gpt4 key购买 nike

我有一个带有接口(interface)的类和一个新类,我将其称为 new ojbClass(params) - 其中包含一个 ejb 调用(代码如下)。当从该类调用 ejb 时,我得到空点异常。

类内部调用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();
}
}

您能给我一些提示或解决方案吗?

谢谢!

最佳答案

您尝试的操作不应该起作用:您无法在 DTO 中注入(inject) EJB,因为它不是托管类。

重构您的依赖项注入(inject)或通过构造函数将 ProfileRemoteBean 传递给 ProfileDTO

关于java - EJB 空点异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41461688/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com