¿Cuál es la diferencia en la implementación de la aplicación como EAR (con 1 EJB y 1 módulo WAR) frente a módulos separados? Quiero usar el perfil web GlassFish 3 pero no es compatible con el archivo EAR. ¿Puedo simplemente usar EJB y WAR como módulos separados? ¿Alguna otra opción?EAR vs EJB + WAR separado
Respuesta
parece que hay cierta confusión entre 3 variantes de despliegue:
- una oreja que incluye un módulo EJB y WEB
- Implementación de un módulo EJB independiente y un módulo WEB independiente
- Implementación de un módulo WEB que incluye clases EJB o un jar EJB.
En la primera situación, tiene lógicamente una aplicación, pero una que está dividida en dos niveles. El módulo WEB está aislado del módulo EJB en el sentido de que puede consumir clases del módulo EJB, pero el módulo EJB no puede consumir clases desde el módulo WEB. Como se trata de una única aplicación, se puede utilizar el acceso local a los beans EJB y la inyección de beans EJB funciona como se esperaba.
En la segunda situación (a la que parece referirse en su pregunta), no hay una única aplicación lógica, sino dos módulos separados. Funcionan en la misma JVM, pero oficialmente Java EE no permite el uso de acceso local y debe usarse el acceso remoto (aunque el acceso prácticamente local a menudo funciona de todos modos). Además, la inyección de beans EJB en beans en el módulo web no funciona directamente con una simple anotación @EJB
, sino que se debe usar el atributo lookup
que especifica el nombre JNDI global.
Finalmente, la tercera situación (que no parece mencionar, pero 'casa' menciona) es un poco similar a la primera, pero no hay niveles y aislamiento en este caso. Los beans EJB pueden acceder directamente a todas las clases desde el resto del módulo web.
El perfil web solo es compatible con esta última situación de implementación. Tanto el EAR como las implementaciones de EJB independientes no son compatibles.
¿Cuál es la diferencia en la implementación de la aplicación como ear (con 1 ejb y 1 war module) frente a módulos separados?
No es una lista completa: en un EAR también puede definir JAR de utilidades, se encuentran en, por ejemplo, EAR/lib y puede ser reutilizado por WAR y EJB JARs. A menudo, los archivos EAR proporcionan características de implementación prorietary, p. en WebSphere puede especificar detalles de DataSource, para que no tenga que definir un DataSource (y un controlador JDBC) utilizando utilidades de gestión.
Como quiero usar el perfil web Glassfish 3, pero no es compatible con el archivo ear. ¿Puedo simplemente usar ejb y war como módulos separados? ¿Alguna otra opción?
Sí, el perfil SPEC web permite explícitamente que le permite desplegar una ligera versión EJB como parte de la GUERRA . Simplemente coloque EJB JAR dentro de WARWEB-INF/lib
. Este enlace proporciona una comparación de características (perfil Web vs completo soplado-): http://glassfish.java.net/downloads/v3-final.html
- 1. Embalaje EJB en JavaEE 6 WAR vs EAR
- 2. WAR vs EAR para aplicaciones web sin EJB?
- 3. .war vs .ear archivo
- 4. Empaquetado JBoss SAR vs EAR/WAR
- 5. Aplicación EJB 3.1 implementada como WAR-only: ¿qué pasa con ejb-jar.xml?
- 6. Logback en aplicaciones EAR java
- 7. Opciones para comunicarse entre WAR en el mismo EAR
- 8. ¿Qué es el uso de MANIFEST.MF en WAR/JAR/EAR?
- 9. ¿Puede reemplazar texto en archivos dentro de jar/ear/war?
- 10. JBoss 7.1 cómo implementar ear/war en un directorio externo
- 11. Cómo agregar WAR dentro de EAR con Maven
- 12. Buscar archivos Java jar (ear, war, ...) para la clase/método
- 13. ¿Deben repetirse los JAR comunes en WAR en un EAR?
- 14. Módulo Maven EAR y pruebas de dependencias EJB
- 15. Spring vs EJB. ¿Puede Spring reemplazar a EJB?
- 16. configuración log4j en EAR
- 17. OSGi vs Spring vs Struts vs EJB vs. Hibernate - una pregunta totalmente para novatos
- 18. JBoss: el archivo WAR en EAR no puede encontrar la biblioteca JAR en classpath
- 19. sessionscoped managed bean vs stateful ejb
- 20. Servicios web vs EJB vs RMI, ventajas y desventajas?
- 21. Implementación del archivo .ear en tomcat
- 22. una aplicación EAR (Java EE) que escucha una solicitud de socket
- 23. GlassFish 3.1, ¿cómo implementar un EAR con WAR en la raíz del servidor?
- 24. ¿Cómo puedo almacenar los parámetros de configuración de Java EE fuera de un EAR o WAR?
- 25. ¿Cómo despliega un WAR que está dentro de un EAR como el contexto raíz (/) en Glassfish?
- 26. Cualquier buena herramienta para buscar archivos (Ear, War, Jar) en OSX
- 27. ¿Cómo puedo llamar a un EJB remoto en un EAR de otro?
- 28. Cómo configurar class-path correctamente en maven-war-plugin
- 29. ¿Cómo empacar los archivos JAR de terceros en un contenedor EJB?
- 30. maven-ear-plugin no incluye jarModule en application.xml
Gracias, esto me aclara mucho.Así que debería buscar el perfil completo, ya que habrá 3 módulos de guerra que se comunicarán con 1 ejb en mi proyecto. – mm1
En la primera situación, ¿podría el módulo EJB acceder al módulo WEB utilizando el atributo de búsqueda, como en el segundo? – lpd
¿Podría echar un vistazo a esta pregunta? Https://stackoverflow.com/questions/49125538/is-it-possible-to-have-ejbs-in-domain1-lib-using-glassfish –