Можете ли вы упаковать ejb-перехватчик в библиотеке? - PullRequest
1 голос
/ 09 февраля 2011

И если да, то как ты это делаешь?

У меня есть перехватчик ejb @javax.interceptor.AroundInvoke, который мне нравится перемещать в библиотеку для повторного использования.Я переместил код в библиотеку, исправил зависимости в maven и теперь все хорошо компилируется.Только при развертывании я получаю следующее сообщение об ошибке:

09.02.2011 14:19:48 com.sun.logging.LogDomains$1 log
SCHWERWIEGEND: Exception while invoking class org.glassfish.ejb.startup.EjbApplication start method
java.lang.RuntimeException: java.lang.ClassNotFoundException: 

1 Ответ

2 голосов
/ 09 февраля 2011

С JSR 318: Enterprise JavaBeans, версия 3.1 - Базовый контракт EJB и требования :

20.3 Требования к упаковке

Файл ejb-jar или .war-файл должен содержать, либо путем включения, либо по ссылке , файлы классов каждого корпоративного компонента следующим образом:

  • Класс корпоративного компонента.
  • Бизнес-интерфейсы корпоративных компонентов, интерфейсы конечных точек веб-служб, а также домашние и компонентные интерфейсы.
  • Классы перехватчиков.
  • Класс первичного ключа, еслиbean-компонент является компонентом управления данными.

Мы говорим, что файл .jar содержит второй файл «по ссылке», если второй файл назван в атрибуте Class-Path в файле Manifestссылающийся файл .jar или содержится (либо путем включения, либо посредством ссылки) в другом файле .jar, который назван в атрибуте Class-Path в файле манифеста ссылающегося файла .jar.

Так что я бы сказал, уes, вы можете упаковать класс перехватчика в файл библиотеки .jar.

Убедитесь, что: 1) библиотека фактически упакована и развернута с файлом ejb-jar;и 2) библиотека .jar указана в файле манифеста, как описано выше.

...