2010-10-11 24 views
45

Una respuesta a una pregunta que leí hoy sugirió la implementación de una aplicación como un WAR explosionado. Me hizo pensar.Ventajas/desventajas de guerras explosivas

Cada implementación que he hecho a un JBoss/Tomcat ha sido con un archivo WAR/EAR. Al menos hasta donde puedo recordar.

¿He estado cometiendo un error todos estos años?

¿Existen ventajas al implementar una aplicación en su forma expandida en lugar de empaquetarla?

Respuesta

49

Creo que esa fue mi respuesta al mencionar la explosión de WAR en la otra pregunta. Los WAR explotados son más fáciles de navegar y puede implementar 'partes' de su aplicación mucho más rápido (dependiendo de cómo nuestro servidor web/de aplicaciones se encargue de esto), p. Reemplace un solo recurso como una página JSP. Sin embargo, puede tener algunos inconvenientes:

1.) ¿Qué versión está ejecutando realmente? "Hmmm, no estoy muy seguro ahora"

2.) Seguridad - ¿Tiene el permiso adecuado para el formato explotado?

3.) Desordenado: los archivos están distribuidos por toda la aplicación/servidor web (algunas personas realmente odian esto).

Tiendo a explotar para el prototipo de trabajo de revelado y luego pasar a un embalaje adecuado cuanto más cerca esté del PRD.

+0

Posiblemente fue, sin duda, en relación con el despliegue en caliente ... problemas de permgen tal vez. No tengo problemas para encontrar y reemplazar archivos cuando han sido explotados por el servidor, pero ciertamente me encontré con el escenario 1 muchas veces :) –

+2

¿Podría explicar por qué prefiere WARs explotadas para desarrollo y WARs empaquetados para producción? Solo soy curioso, porque otra respuesta recomienda lo contrario. –

+3

Para seguridad/confiabilidad, sé que con un WAR empaquetado y firmado que la aplicación no ha sido alterada/alterada. –

2

AFAIK, el despliegue en caliente solo es posible con guerras explosivas. Y también durante el desarrollo es más fácil navegar por el árbol del proyecto en el servidor. Por supuesto, puede haber otras ventajas y desventajas, que estaré encantado de escuchar.

7

En la etapa de desarrollo es más cómodo desplegarlo explotado. De esta manera puede actualizar algunos recursos implementados (como pueden ser las páginas JSP).

Para entornos de prueba y producción, prefiero la implementación empaquetada: más ligera y más fácil de manejar para los implementadores.

12

El único beneficio real que recibe al implementar una explosión de ear/war es la capacidad de intercambiar archivos en caliente en el servidor, así como el tiempo guardado en el paquete (que en mi humilde opinión es insignificante).

Básicamente: esta es una característica útil para las fases de desarrollo. No elegiría este método de implementación para un entorno de producción.

También hay algunos servidores de aplicaciones web que requieren guerras explosivas para algunas características esotéricas, pero esto no es nada que haya encontrado en el uso regular.

+0

¿El intercambio en caliente funcionará para oyentes y servlets o solo para archivos jsp? –

+0

@KorayTugay que realmente depende de las capacidades de sus servidores –

4

No explotar un WAR/EAR cuando se implementa no hace ninguna diferencia en el servidor de aplicaciones. Esto se debe a que debajo de ellos están todos explotados.

Por ejemplo, si coloca un archivo WAR bajo la aplicación web de tomcat, verá que debajo de su directorio de trabajo, su archivo WAR se explotará allí.

Básicamente, WAR/EAR se acaba de archivar sus archivos, de manera que será más fácil de mover y desplegar

+0

Eso es más o menos lo que pensaba Mezzie. Siempre estoy abierto a la posibilidad de que me he equivocado. –

3

contra: si se encuentra en las ventanas, que a menudo se encuentra que el sistema operativo se bloquea al azar algún archivo en el explotó .war, y será difícil para ti eliminar toda la guerra y volver a desplegarla.

Cuestiones relacionadas