java - EJB 空点异常

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

我有一个带有接口(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/

相关文章:

java - 从服务器读取时出现文件未找到异常

Java TLS 客户端在访问 soap 服务时找不到证书

java - 我应该如何命名 EJB 才能正确查找它?

java - 为什么使用 .war 文件部署时 getRealPath() 返回 null?

java - 无法运行monkeyrunner脚本

java - Android 2.2 应用程序的 OnPreferenceChangeListener.onPreferenceChange 方法中 @Override 的不同行为取决于源代码级别

android - android和Server之间的两种通信方式

java - Spring Boot中slf4j的正确配置是什么

java - Collections.synchronizedCollection 的 forEach 和 removeIf 中可能存在错误?

spring - Spring 会支持 CDI 吗?