我正在经历一种奇怪/奇怪的行为。我正在开发一个使用 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 源并对其进行调试以查看幕后发生的情况,尽管我什至不知道它是否与此有关。
任何建议将不胜感激。