2013-11-01 4 views
3

В JavaEE 7 tutorialУпаковка Предприятие Фасоль в WAR Модули

упоминается

Enterprise beans often provide the business logic of a web application. In these cases, 
packaging the enterprise bean within the web application's WAR module simplifies 
deployment and application organization. Enterprise beans may be packaged within a 
WAR module as Java programming language class files or within a JAR file that is 
bundled within the WAR module. 

следующий Затем через некоторое время

JAR files that contain enterprise bean classes packaged within a WAR module are not 
considered EJB JAR files, even if the bundled JAR file conforms to the format of an EJB 
JAR file. The enterprise beans contained within the JAR file are semantically 
equivalent to enterprise beans located in the WAR module's WEB-INF/classes directory, 
and the environment namespace of all the enterprise beans are scoped to the WAR module. 

я не могу сделать это мимо этой части, к понять пример.

Как это возможно, что

Enterprise бобы могут быть упакованы внутри модуля WAR как файлы классов языка программирования Java или в пределах JAR-файла, который поставляется в составе модуля WAR

еще

Файлы JAR, содержащие классы бизнес-компонентов, упакованные в WAR-модуль, не считаются файлами JJB JAR, даже если связанный JAR-файл соответствует формату файла JAR JJB.

ответ

3

спецификация пытается сказать, что EJB аннотации будут распознаны по классам WEB-INF/classes/ или в JAR-файлы в WEB-INF/lib/, но если вы решили переместить предварительно существующий модуль EJB JAR в WEB-INF/lib/, оно будет интерпретировано как регулярная JAR, а не как независимый модуль EJB, что означает, что дескрипторы развертывания модуля в этом JAR будут игнорироваться (например, META-INF/ejb-jar.xml, META-INF/validation.xml, META-INF/beans.xml и т. Д.). Вместо этого эти дескрипторы должны быть объединены вместе и помещены в содержащийся WAR WEB-INF/ (например, WEB-INF/ejb-jar.xml и т. Д.).

+0

Позвольте перефразировать, вы имеете в виду, что классы 'EJB' должны управляться как классы« EJB »сервером, их дескриптор развертывания должен быть расположен в каталоге WAR« META-INF »и дескриптор развертывания' EJB' в Каталог JAR 'META-INF' будет рассмотрен, если этот JAR помещен в папку lib WAR WAR? И аннотации, которые освобождают вас от дескрипторов развертывания, заставят сервер управлять службами EJB независимо от того, находятся ли они в каталоге 'WEB-INF/classes /' или упакованы в JAR в каталоге 'META-INF'? –

+0

Да (предполагается, что вы имели в виду «должно быть расположено в каталоге WAR * WEB-INF *»). –

+0

Ах да. Ты прав. Большое спасибо за ваше время :) –

Смежные вопросы