8

Estoy migrando mi aplicación de GlassFish 3.0.1 a GlassFish 3.1.1. La implementación falla, con los siguientes mensajes de error:"Excepción al cargar la aplicación" sin un seguimiento de pila

SEVERE: Exception while loading the app 
SEVERE: Exception while shutting down application container 
SEVERE: Exception while shutting down application container : java.lang.NullPointerException 
SEVERE: java.lang.RuntimeException: Error occurred during deployment: Exception while shutting down application container : java.lang.NullPointerException. Please see server.log for more details. 

No hay ningún rastro de pila. Encendí el nivel de registro de la raíz a la máxima expresión, y el primer mensaje grave se presenta después de un mensaje de soldadura:

//... 
FINE: WELD-000105 Enabled interceptor types for Manager 
Enabled alternatives: [] [] 
Registered contexts: [interface javax.enterprise.context.SessionScoped, interface javax.enterprise.context.RequestScoped, interface javax.inject.Singleton, interface javax.enterprise.context.Dependent, interface javax.enterprise.context.ApplicationScoped, interface javax.enterprise.context.ConversationScoped] 
Registered beans: 0 
Specialized beans: 0 
: [] 

Y antes varios mensajes como estos (por varias clases diferentes):

FINE: PWC4451: File cannot be read /opt/sun/glassfish-3.1.1/glassfish/domains/domain1/applications/QmsWeb/WEB-INF/classes/org/jboss/seam/transaction/SeamTransaction.class 
FINE: PWC4451: File cannot be read /opt/sun/glassfish-3.1.1/glassfish/domains/domain1/applications/QmsWeb/WEB-INF/classes/org/jboss/seam/transaction/SeamTransaction.class 
FINE: PWC4451: File cannot be read /opt/sun/glassfish-3.1.1/glassfish/domains/domain1/applications/QmsWeb/WEB-INF/classes/net/sf/ehcache/config/TerracottaConfiguration$ValueMode.class 
//... 

¿Qué podría estar causando este error? ¿Podrían estos mensajes PWC4451 estar indicando que algunas bibliotecas no se están cargando?

+0

Parece que no va a ninguna parte. Si algún programador de herramientas de desarrollo ve esto, recuerde: ¡los buenos mensajes de error son una característica! – Nick

+2

Esto en realidad se marca como un problema de Glassfish y se debe corregir en Glassfish 4.0, de acuerdo con el problema. Ver http://java.net/jira/browse/GLASSFISH-18599, desafortunadamente esto no ayuda ni a ti ni a mí ahora. –

Respuesta

6

Esto se debió a un bean @ViewScoped que no implementó Serializable. Aparentemente, una versión anterior de Weld que estábamos usando no consideraba objetable que un bean de pasivamiento no fuera serializable, pero este falló silenciosamente debido a eso. Oh, bueno, espero que esto le ahorre a alguien algo de tiempo.

+1

¡Lo has conseguido! – Matyas

3

Después de tres horas de depuración que fija un problema como éste tratando de implementar la aplicación en JBoss 6.

Parece que varios mensajes de error de Weld no quedar registrado correctamente en Glassfish. En mi caso anoté un EJB con @Stateless @RequestScoped (que es ilegal, debe ser @Statefull). Con Glassfish solo pude ver ese "error al cargar la aplicación", mientras que en JBoss 6 recibo el mensaje de error correcto que indica el código ofensivo.

Sugiero que intente implementar en JBoss 6 eliminando todas las partes (@Resource con ruta JNDI específica, por ejemplo) que evitan que el implementador de Weld escanee la aplicación y valide las cosas del CDI.

+0

Gracias por la sugerencia, investigaré la ejecución de mis aplicaciones en JBoss. ¿Sabía que este error ha sido informado a la gente de Seam/GlassFish? – Nick

2

En mi caso, el problema era que mi beans.xml consistía en el elemento "beans" vacío, que solía funcionar pero aparentemente ya no funciona. Funcionó cuando lo reemplacé con un beans.xml de 0 bytes completamente vacío.

+0

¡Esto resolvió mi problema! Gracias ... me hubiera tomado un * largo * tiempo antes de intentarlo :) –

2

Tuve el mismo problema al agregar un interceptor que no se pudo serializar en Glassfish 3.1.2.2. Acabo de obtener un NullPointerException sin más explicaciones.

Funciona bien cuando hice el implemento interceptor Serializable.

1

Razón y soluciones que he encontrado en relación con este problema:
- objetivo no actualiza (asegúrese de hacer un experto limpio, carpeta de destino podría ser bloqueado, trato de eliminarlo manualmente y reconstruir la oreja (tenido este problema algunos veces)
- problema con las agrupaciones JDBC: enjuagarlas
- problema del constructor con EJB (tenga en cuenta que es el contenedor que crea sus beans): el contenedor debe ser capaz de iniciarlos. Por lo tanto, un constructor predeterminado sin argumentos debe ser presente

si eso no funciona: equipo-> comparar a -> últimos versiones en funcionamiento y considerar cada bean EJB o DTO para los servicios web como una posible causa de error. Comenta tus cambios y vuelve a intentarlo para ubicar tu problema.

En cualquier caso es un desagradable error :(¡Buena suerte!

0

En mi caso y en el espíritu de los Interceptores, el mío era algo fácil de encontrar porque estaba jugando por ahí.

Agregando el inocente @Interceptor en mi interceptor aunque lo estoy usando con anotaciones.

Mi versión de glassfish es 3.1.2.2.

Esta página dice que es opcional Inteceptor Javadoc.

Cuestiones relacionadas