|
|
|
Разделение EJB компонентов как обычная библиотека (JAR файл)
|
|||
|---|---|---|---|
|
#18+
Доброго времени суток господа знатоки JEE. Прошу поделиться мыслями есть ли вообще такая возможность. Суть проблемы вот в чем: 1) Есть common-ejb.jar , который содержит некие общие EJB компоненты, которые могут быть использованы в разных приложениях. Причем в этом JAR'е содержатся не только интерфейсы EJB компонентов, а еще их реализации. Сами компоненты определены как @Local. 2) Создаю EAR проект, он содержит свои модули: EJB модуль и WAR модуль. 3) В EJB модуль добавляю common-ejb.jar как библиотеку. 4) Пытаюсь развернуть (deploy) все это в Glassfish 4. 5) При развертывании получаю следующую ошибку: Severe: Exception while deploying the app [TestApp] : Cannot resolve reference [Local ejb-ref name=org.common.entity.EntityFacadeBean/idAgent,Local 3.x interface =org.common.entity.IDAgent,ejb-link=null,lookup=,mappedName=,jndi-name=,refType=Session] because there are [2] ejbs in the application with interface org.common.entity.IDAgent. Some of the possible causes: 1. The EJB bean class was packaged in an ear lib library (or through any other library mechanism which makes the library visible to all component modules), this makes all the component modules include this bean class indirectly. 2. The EJB bean class was packaged in a component module which references the EJB, either directly or indirectly through Manifest, WEB-INF/lib. The EJB bean class should only be packaged in the declaring ejb module and not the referencing modules. The referencing modules should only include EJB interfaces. Согласно ошибке, значит EJB компоненты должны быть только внутри EJB модуля? Нельзя их выносить в отдельный JAR и использовать как библиотеку? Всем заранее спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2014, 09:33 |
|
||
|
Разделение EJB компонентов как обычная библиотека (JAR файл)
|
|||
|---|---|---|---|
|
#18+
Пясните что вы имеет ввиду когда говорите что используете common-ejb.jar как библиотеку? Приведите структуру своего ear-архива чтобы понятнее было ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2014, 12:33 |
|
||
|
Разделение EJB компонентов как обычная библиотека (JAR файл)
|
|||
|---|---|---|---|
|
#18+
Верно, ложи свой ejb в корень ear (не lib), а в application.xml опиши jar как ejb модуль - 100% работает; тоже самое может делать spring только ему glassfish не нужен, я свои бины+ интерфейсы в jar-ах держу, в их же META-INF/spring-config.xml для данной библиотеки, когда делаю приложение то создаю config файл, главное чтоб его имя отличалось от META-INF/spring-config.xml иначе будет рекурсия, в нем указываю Код: xml 1. таким образом при загрузке все META-INF/spring-config.xml моих библиотек подключаются к данному приложению и я спокойно работаю с ejb сессиями, данный вариант хорошо подходит как для десктопных приложений, так и для контейнера ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2014, 12:43 |
|
||
|
Разделение EJB компонентов как обычная библиотека (JAR файл)
|
|||
|---|---|---|---|
|
#18+
bochkov, Большое спасибо. Все работает как надо, но, если только приложение развертываю через admin console. А вот из среды разработки (NetBeans 8.0) не хочет. Говорит: "Expected to find an expanded directory for submodule Server.jar but found a JAR. If this is a directory deployment be sure to expand all submodules." Похоже NetBeans'у нужно впихнуть папку, а не JAR. А как ее обмануть пока не нашел. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2014, 14:16 |
|
||
|
Разделение EJB компонентов как обычная библиотека (JAR файл)
|
|||
|---|---|---|---|
|
#18+
netbeans хочет не jar, а именно проект этого jar, ну и соответствующими настройками, не знаю как в 8-м, а в 6-м, можно было через зависимости прoекта (именно ear) настроить упаковку в корень, а модули war ссылались на библиотеку без копирования при сборке(иначе в либ засунет), не знаю поймете ли, выглядит как полный бред) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2014, 14:43 |
|
||
|
|

start [/forum/topic.php?fid=59&fpage=178&tid=2127328]: |
0ms |
get settings: |
6ms |
get forum list: |
15ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
32ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
38ms |
get tp. blocked users: |
1ms |
| others: | 209ms |
| total: | 319ms |

| 0 / 0 |
