Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jpa EclipseLink在远程EJB调用时反序列化空实体对象_Jpa_Glassfish_Eclipselink_Jpa 2.1_Glassfish 4.1 - Fatal编程技术网

Jpa EclipseLink在远程EJB调用时反序列化空实体对象

Jpa EclipseLink在远程EJB调用时反序列化空实体对象,jpa,glassfish,eclipselink,jpa-2.1,glassfish-4.1,Jpa,Glassfish,Eclipselink,Jpa 2.1,Glassfish 4.1,我使用的是当前版本的GlassFish 4.1,包括EclipseLink版本2.5.2。 在GlassFish上,我部署了一个企业应用程序和一个web应用程序。 如果从GlassFish外部调用返回加载实体的EJB(如外部JavaFX应用程序),则该实体将正确返回 但是,如果从web应用程序调用相同的EJB,则由于此错误,实体不会正确返回 我在这里已经找到的解决方法并不能真正解决这个问题,因为如果我在EclipseLink中禁用编织,以下操作将无法正常工作: @ManyToOne(fetch=

我使用的是当前版本的GlassFish 4.1,包括EclipseLink版本2.5.2。 在GlassFish上,我部署了一个企业应用程序和一个web应用程序。 如果从GlassFish外部调用返回加载实体的EJB(如外部JavaFX应用程序),则该实体将正确返回

但是,如果从web应用程序调用相同的EJB,则由于此错误,实体不会正确返回

我在这里已经找到的解决方法并不能真正解决这个问题,因为如果我在EclipseLink中禁用编织,以下操作将无法正常工作:

@ManyToOne(fetch=FetchType.LAZY)
公共Foo getFoo(){
返回foo;
}
@manytone(fetch=FetchType.EAGER)
公共酒吧{
返回杆;
}
您可以尝试另一种解决方法

字节码编织是一种改变数据字节码的技术 编译的Java类。您可以配置字节码编织以启用 EclipseLink JPA性能优化的数量,包括支持 对于一对一和多对一关系的延迟加载, 属性级别更改跟踪和获取组

可以在创建实体类时动态执行编织 加载,或作为构建过程的一部分静态加载

()

如中所建议的,您可以尝试。关于静态编织和插件使用的详细说明(您也可以使用ant)可以在中找到

然后必须在
persistence.xml中设置此属性:

<property name="eclipselink.weaving" value="static"/>

另请参见:


感谢您的快速回答。我使用ant任务尝试了静态编织。但是返回的实体仍然是空的。我认为使用ant或maven进行静态编织应该没有区别,因为它们都使用相同的eclipselink二进制文件。问题是否存在于glassfish序列化/反序列化和eclipselink字节码增强实体的组合中?