1

我正在经历一种奇怪/奇怪的行为。我正在开发一个使用 Java EE 的 Web 应用程序项目。它使用 Eclipselink 2.3 持久性服务部署在 GlassFish 3.1.1 上。一切都在 Eclipse、Windows 7 Professional 64 位、JDK + JVM 64 位上。

我得到了一个可以使用的业务对象。首先我设置了相应的实体。一切都很好,直到调用方法。如果我在其中调试,实体突然变为空。

在此调用之前,实体被实例化。

代码是这样的:

// get my entity  
tramiteProxy = ejbTramiteFactory.getEntity(tramite);  

// get corresponding business thru factory  
IRegistrableInLiquidador registrableInLiquidadorBusiness = (IRegistrableInLiquidador)     ejbTramiteFactory.getCBusiness(tramiteProxy);  


// invoke business  
// up to here everything is fine, you can inspect business variable and it shows correct, entity is instantiated as expected   

registrableInLiquidadorBusiness.registrarNovedadInIntegrador();  

现在我们在业务对象 ( ) 中进行调试registrableInLiquidadorBusiness

// Here if one checks the entity it became null !!!  

public void registrarNovedadInIntegrador() throws CException {  
    try {  
        CIntegradorBusiness ejbIntegradorBusiness = CCTX  
            .getEJB(CIntegradorBusiness.class);  

        // Here's the problem: getEntity() returns null, the entity of this business object became *magically* null  

        ejbIntegradorBusiness.registrarNovedad(getEntity(),null);  

    } catch (Exception e) {  
        throw new CException(1, e);  
    }  
}  

我必须补充一点,对象实体是在该业务的父项中声明的变量,它从该变量扩展。

所以我不知道还能尝试什么。我查看了与此相关的每一行代码,以发现任何错误都无济于事。

下一步可能是下载 Eclipselink 源并对其进行调试以查看幕后发生的情况,尽管我什至不知道它是否与此有关。

任何建议将不胜感激。

4

0 回答 0