【问题标题】:EJB Null point exceptionEJB 空点异常
【发布时间】:2017-01-04 10:34:23
【问题描述】:

我有一个带有接口的类和一个我称之为 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 接口

@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();
    }
}

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

谢谢!

【问题讨论】:

    标签: java web-services jakarta-ee ejb glassfish-4


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      您的代码似乎没问题,NPE 不是来自您的方法ProfileRemoteBean.addProfile(Profile profile) 而是?

      可以粘贴吗?

      【讨论】:

      • 来自该行,但因为 profileBean 在调试器上为空
      猜你喜欢
      • 2023-03-08
      • 1970-01-01
      • 2015-12-06
      • 1970-01-01
      • 2013-04-10
      • 1970-01-01
      • 1970-01-01
      • 2013-01-02
      • 2021-05-08
      相关资源
      最近更新 更多