WebSphere - ClassNotFoundException для интерфейса в общей банке

здесь небольшая проблема с WAS 8.

У меня такая структура:

ear file
    META-INF/
    ejb.jar
    web.war
    (common.jar)

Common.jar содержит интерфейсы для ejb, war и других приложений (RMI). Внутри ejb.jar есть UserServiceImpl, использующий интерфейс из common.jar. Во время развертывания WebSphere жалуется, что не может найти общий интерфейсный класс.

Я попытался зашнуровать common.jar прямо в ухо, внутри уха, используя папку lib, внутри файла ejb. ничего не работает (в WebSphere)

Странно, если я использую RAD для развертывания, все в порядке. Когда я экспортирую или строю (через maven), я получаю эту ошибку. Развернутое ухо, которое работает напрямую от RAD, не содержит больше, что-то может быть изменено RAD, но я не знаю что.

Может кто-нибудь помочь мне?


person Jukkales    schedule 01.04.2014    source источник


Ответы (1)


Из упомянутых вами вариантов:

  1. Если common.jar помещается непосредственно в файл EAR, тогда другие модули должны ссылаться на common.jar в пути к классам соответствующих файлов META-INF / MANIFEST.MF. Я подозреваю, что RAD делает это за вас.

  2. Если common.jar помещается в EAR с использованием папки lib, то либо application.xml не должен существовать (что подразумевает EE 5 или новее), либо, если он существует, он должен содержать version = "5" или новее.

  3. Библиотеки нельзя размещать буквально внутри EJB JAR. Этот подход может работать только в том случае, если содержимое common.jar объединено с EJB JAR.

person Brett Kail    schedule 01.04.2014
comment
Просто объединить вместе сработало, но я очистил банку ejb и поместил ее в войну. Это работает так. - person Jukkales; 03.04.2014
comment
Если ответ решил вашу проблему, вы должны нажать на галочку слева от ответа, чтобы принять его. - person Brett Kail; 03.04.2014