instalar desplegar como java-ee websphere

desplegar - Impida que la aplicación Java EE se inicie en WebSphere en la excepción



como instalar java ee (1)

¿Hay alguna manera con WebSphere 6.1.0.25 para evitar que una aplicación empresarial se inicie debido a una excepción? Tengo un ServletContextListener que preparé para lanzar una RuntimeException durante contextInitialized (). Esto produce un seguimiento de pila en el registro del servidor; sin embargo, la consola de WebSphere todavía muestra que la aplicación se inició correctamente y aún se puede acceder a los recursos de WAR. ¿Hay algún mecanismo que impida que WebSphere marque correctamente la aplicación que se puede generar mediante artefactos en WAR?

También intenté configurar un servlet para cargar al inicio y lancé una excepción desde init (), y esto no produjo el efecto que estaba buscando.


Sí, hay una manera de hacerlo, pero creo que todavía es específico de WebSphere. Tuvimos este mismo problema hace unos años, una aplicación que requería mucha configuración todavía se mostraría como iniciada, incluso cuando se produjo un error importante. La única manera de saberlo era mirar el archivo de registro y ver si se había producido alguna excepción (y la interfaz de usuario web no funcionaba muy bien).

La forma estándar de manejar el ciclo de vida, que parece funcionar en la mayoría de los contenedores, es el ServletContextListener pero, como han descubierto, no existe una forma elegante de manejar los errores de arranque.

En WebSphere (para algunas versiones de todos modos) existe el concepto de un bean de inicio. En lugar de tratar de explicarlo en detalle, ya que fue hace un par de años que lo hice, puedes echar un vistazo a este enlace http: //publib.boulder.ibm.com/inforcenter ...

Esto esencialmente le permite crear un bean EJB que implementa dos métodos:

public boolean start() { return new Delegate().start(); } public void stop() { new Delegate().stop(); }

Si devuelve true desde el método de inicio, devuelve un inicio exitoso; de lo contrario, devolver false detiene la aplicación, por lo que en la consola la aplicación indicará que no se pudo iniciar. Implementamos un delegado para que hiciera el trabajo para poder conectarlo al bean de inicio o a ServletContextListener si el contenedor no implementaba beans de inicio.

Lo único adicional con los beans de inicio es que en WebSphere necesita habilitar el servicio de beans de inicio en la consola administrativa o de lo contrario no se ejecutarán y su aplicación no realizará ninguna inicialización, pero se mostrará como iniciada cuando intente y comience. arriba. Hay información sobre cómo hacerlo desde la página anterior.

También estoy seguro de que hay información más detallada en un IBM Redbook sobre esto, pero por el momento parece que no puedo encontrarlo.