Я работаю app1.ear, содержащий:несколько Уши, JPA и интерфейсы
- JPA сущность, MyObjectImpl, в реализации интерфейса MyObject от api.jar
- апи. jar с Интерфейс MyObject и EJB Удаленный интерфейс
- ejb.jar с EJBs предоставления методов доступа и изменения JPA сущностей
Second app2.ear должен общаться с app1.ear используя только интерфейсы в api.jar. Все отлично работает при передаче базовых типов Java между ушами. Но когда app2.ear пытается извлечь из app1.ear экземпляр MyObject - CORBA МАРШАЛ возбуждается исключение, говоря, что MyObjectImpl класс не может быть найдено:
"IOP00810257: (MARSHAL) Could not load class com.zzz.MyObjectImpl"
Размещение MyObjectImpl в app2.ear решает проблему, но я не хочу раскрывать реализацию JPA другим приложениям уха. Я что-то упустил или мой подход не так? Пожалуйста, сообщите, что делать или где копать. Большое спасибо заранее!
PS: GF Сервера 3.0.1, не GF конкретных дескрипторов развертывания, оба уха, работающее на одной и тот же виртуальную машину Java
моей главной задачей является скрыть аннотации JPA. возможно ли так: MyObjectImpl реализует MyObject, MyObjectJPA расширяет (просто комментирует) MyObjectImpl, имея MyObject и MyObjectImpl для других ушей? Будет ли десериализация контейнера MyObjectJPA в MyObjectImpl? Не могу поверить, что нельзя скрывать аннотацию JPA от клиентов. – Osw