Projetos em WAR ou EAR?

Pessoal quais as as vantagens e desenvantagens desses doi tipos de projetos?
Qual deles é melhor para ser utilizado e diferenças entres eles.

Imagem de um projeto EAR

Tambem estou com a mesma duvida e ela é dificil ser explicada por ae =I

Entre essa diferença , eu nunca sei se eu faço apenas um Dynamic Web Project com tudo acoplado ou se eu faço as divisões de modulos : EJB + WAR + EAR

User WAR

Tem alguma vantagem em usar apenas o WAR ?

Eu to fazendo um projeto aqui para empresa, e estar tudo acoplado dentro de um WAR mesmo … rsrs’

Obrigado amigo pela ajuda =]

[quote=MarcolaLipe10]Tem alguma vantagem em usar apenas o WAR ?

Eu to fazendo um projeto aqui para empresa, e estar tudo acoplado dentro de um WAR mesmo … rsrs’

Obrigado amigo pela ajuda =][/quote]

Se sua aplicação for distribuiída (EJB), você irá criar um projeto EAR que conterá dentro WAR e JARS. Sendo assim você poderá manter o WAR em um servidor e o JAR em ou vários servidores.
No caso de uma aplicação WEB não distribuída utilize suas configurações para um WAR, neste caso ele irá conter paginas e classes no WAR e ficará em um único servidor.

A empacotamento WAR não suporta toda a especificação JEE não. Por exemplo se você for usar EJB’s remotos, acredito que eles só funcionem em arquivos .EAR (confirmar isso pro JEE 7, não sei se mudou). Até o JEE 5 essa limitação era até um pouco maior, você não podia era usar nenhum EJB dentro de arquivos WAR.

O arquivo .EAR também pode ser visto como um “agrupador” de .WAR’s, uma vez que vários .WAR’s podem estar contidos dentro do mesmo .EAR. Mas na maioria dos casos você vai querer usar é um .WAR mesmo.

Obrigado a todos , mas …

Se eu fizer um dynamic e colocar as ejbs lá dentro, o remote não funciona mesmo utilizando ejb 3.1 ?

Então o padrão do java ee é criar um EAR ?

[/ OFF , em caso de remoto , fazer um webservice não seria mais viável ? ]

[quote]Obrigado a todos , mas …

Se eu fizer um dynamic e colocar as ejbs lá dentro, o remote não funciona mesmo utilizando ejb 3.1 ?

Então o padrão do java ee é criar um EAR ?

[/ OFF , em caso de remoto , fazer um webservice não seria mais viável ? ] [/quote]

Os arquivos .WAR suportam o que a especificação chama de “EJB Lite”. Você pode ver a diferença entre o “lite” e o “full” nessa figura:
http://www.devx.com/supportitems/showSupportItem.php?co=42351&supportitem=figure4

Pra usar o “full”, só em arquivos EAR.

Com relação a usar web services no lugar de ejb’s, é uma discussão mais ampla. WS tem a vantagem de ser compatível com qualquer cliente, enquanto EJB’s você ficaria restrito a clientes java somente. Por outro lado, EJB é mais rápido que WS, e se você tiver em um ambiente somente java a complexidade pode ser menor. Depende muito de caso a caso.

Rodrigo obrigado pela sua explicações tudo ficou mais claro agora.

Obrigado por dividir seus conhecimentos e esclarecer minhas duvidas =]

Até a próxima !