несколько EAR, JPA и интерфейсов - PullRequest
1 голос
/ 15 ноября 2010

у меня работает app1.ear , содержащий:

  • сущность JPA, MyObjectImpl , реализующий интерфейс MyObject из api.jar
  • api.jar с интерфейсом MyObject и интерфейсом EJB Remote
  • ejb.jar с EJB-компонентами, предоставляющими методы для доступа и изменения объектов JPA

Второй app2.ear должен связываться с app1.ear , используя ТОЛЬКО интерфейсы в api.jar . Все отлично работает при передаче Java базовых типов между ушами. Но когда app2.ear пытается извлечь из app1.ear экземпляр MyObject - возникает исключение CORBA MARSHAL, говорящее, что класс MyObjectImpl не может быть найден:

"IOP00810257: (MARSHAL) Could not load class com.zzz.MyObjectImpl"

Размещение MyObjectImpl в app2.ear решает проблему, но я не хочу показывать реализацию JPA другим ушным приложениям. Я что-то упустил или мой подход не так? Посоветуйте пожалуйста что делать или куда копать. Большое спасибо заранее!

PS: Сервер GF 3.0.1, нет специфичных для GF дескрипторов развертывания, оба ушка работают на одной и той же JVM

1 Ответ

1 голос
/ 15 ноября 2010

Классы impl требуются при десериализации.Другой подход заключается в использовании XML, JSON или protobuff, если вы не хотите предоставлять классы impl.

...