多个EAR、JPA和接口

多个EAR、JPA和接口,jpa,ejb,marshalling,corba,ear,Jpa,Ejb,Marshalling,Corba,Ear,我有一个工作app1.ear,包含: JPA实体,MyObjectImpl,从api.jar实现接口MyObject api.jar带有MyObject接口和EJB远程接口 ejb.jar,ejb提供了访问和修改JPA实体的方法 第二个app2.ear应该只使用api.jar中的接口与app1.ear进行通信。当在两个耳朵之间传递Java基本类型时,一切正常。 但是当app2.ear尝试从app1.ear检索MyObject的实例时,会引发CORBA封送异常,表示找不到MyObjectImp

我有一个工作app1.ear,包含:

  • JPA实体,MyObjectImpl,从api.jar实现接口MyObject
  • api.jar带有MyObject接口和EJB远程接口
  • ejb.jar,ejb提供了访问和修改JPA实体的方法
第二个app2.ear应该只使用api.jar中的接口与app1.ear进行通信。当在两个耳朵之间传递Java基本类型时,一切正常。 但是当app2.ear尝试从app1.ear检索MyObject的实例时,会引发CORBA封送异常,表示找不到MyObjectImpl类:

"IOP00810257: (MARSHAL) Could not load class com.zzz.MyObjectImpl"
将MyObjectImpl放在app2.ear中解决了这个问题,但我不想将JPA实现公开给其他ear应用程序。 我遗漏了什么或者我的方法错了吗?请建议做什么或在哪里挖掘。 非常感谢


PS:ServerGF 3.0.1,没有特定于GF的部署描述符,两个EAR运行在同一个JVM上

反序列化期间需要impl类。如果不想公开impl类,另一种方法是使用XML、JSON或protobuff。

反序列化期间需要使用impl类。如果不想公开impl类,另一种方法是使用XML、JSON或protobuff。

我主要关心的是隐藏JPA注释。有没有可能:MyObjectImpl实现MyObject,MyObjectJPA扩展(只是注释)MyObjectImpl,使MyObject和MyObjectImpl可供其他人使用?容器是否将MyObjectJPA反序列化为MyObjectImpl?真不敢相信没有办法对客户端隐藏JPA注释。我主要关心的是隐藏JPA注释。有没有可能:MyObjectImpl实现MyObject,MyObjectJPA扩展(只是注释)MyObjectImpl,使MyObject和MyObjectImpl可供其他人使用?容器是否将MyObjectJPA反序列化为MyObjectImpl?真不敢相信没有办法对客户端隐藏JPA注释。