Проблема с развертыванием websphere ejb: ошибка classnotfound для других ссылок ejb

У меня есть две банки ejb, упакованные в ухо. скажем, EJb1.jar и Ejb2.jar. Я развертываю его в Webphere 7.0. Ejb1 ссылается на классы в Ejb2.jar. Если я не укажу файл Ejb2.jar в файле Manifest.Mf файла Ejb1.jar, развертывание файла EAR завершится ошибкой.

Выдает ошибку, что путь сборки неполный и указанный класс не найден.

Есть ли способ преодолеть это? Через какие-то настройки в консоли WebSphere?

У меня слишком много ejb в этом ухе, ссылающихся друг на друга. Это очень усложняет обновление файла манифеста каждый раз, когда мы вносим изменения в код.

Любые идеи ?


person ravi shankar    schedule 19.12.2012    source источник


Ответы (1)


Если вы хотите избежать этого, вам нужно создать EJB Client Jar, который содержит интерфейсы, и поместить его в каталог EAR/lib.

Например, если EJB1.jar получил MyBean.java и MyBeanLocal.java, теперь вы разделите его на 2 файла jar:

EJB1.jar (модуль EJB), удерживающий MyBean.java и EJB1-Client.jar (служебный Jar), ​​удерживающий MyBeanLocal.java

Затем вы помещаете EJB1-Client.jar в каталог lib файла EAR, и EJB2.jar сможет найти интерфейсы в своем пути к классам.

person Aviram Segal    schedule 19.12.2012
comment
Спасибо за отзыв. Но я вижу, что текущая установка EAR отлично работает с другими членами моей команды и другими средами разработки. Есть ли какие-либо настраиваемые изменения, которые я могу сделать? в консоли Websphere? Чтобы он игнорировал справочные вопросы? - person ravi shankar; 19.12.2012
comment
Не то, чтобы я знал, манифест - это то, что вам обычно нужно делать, когда вам нужен один модуль, чтобы увидеть другой модуль (банки в lib автоматически добавляются в путь к классам) - person Aviram Segal; 19.12.2012