1. Всегда ли приложения, использующие ejb, должны развертываться как EAR?
Нет.
Модуль EJB собран в JAR, назовем его myapp-ejb.jar в качестве соглашения об именах.
Содержит код EJB, а также файл дескриптора развертывания с именем ejb-jar.xml в EJB 2.x. В EJB 3.0 сам код содержит аннотации, необходимые для понимания сервером для развертывания, поэтому дескрипторы развертывания являются необязательными. Дескриптор / аннотации развертывания охватывают основные вещи, необходимые для развертывания EJB, такие как поиск JNDI, DataSource и т. Д.
Совокупность нескольких модулей EJB и других веб-модулей (war) вместе составляет EAR . Как отметил @Isaac, EAR не должен включать в себя какой-либо WAR-файл. Единственное условие для файла EAR - это наличие хотя бы одного модуля J2EE любого типа.
EAR требуется META-INF/application.xml
, в котором перечислены все банки EJB и войны, присутствующие в EAR. Таким образом, вы выбираете EAR, когда у вас есть несколько EJB-модулей, что обычно имеет место, следовательно, обычное развертывание EAR.
Ниже приведен пример этого файла, взятый из http://download.oracle.com/docs/cd/B32110_01/web.1013/b28221/undejdev003.htm. Это хорошая статья для чтения.
<application>
<display-name>master-application</display-name>
<module>
<ejb>ejb1.jar</ejb>
</module>
<module>
<ejb>ejb2.jar</ejb>
</module>
<module>
<java>appclient.jar</java>
</module>
<module>
<web>
<web-uri>clientweb.war</web-uri>
<context-root>webapp</context-root>
</web>
</module>
<module>
<ejb>ejb3.jar</ejb>
</module>
2.Можно ли развертывать приложения, содержащие EJB, как и другие java
веб-проекты с использованием ECLIPSE и без
используя ANT
Да, после сборки EAR / JAR его можно развернуть на сервере (по желанию, через Eclipse).
Ant - это инструмент сборки, который не имеет ничего общего с фактическим развертыванием кода EJB. Он используется для компиляции и сборки JAR-файла, что также можно сделать из Eclipse.
Здесь - учебник, который делает именно это .
Дополнительная литература
Упаковочные приложения
Упаковка EJB3 Применения