"Ausnahme beim Laden der App" ohne Stack-Trace

8

Ich migriere meine App von GlassFish 3.0.1 nach GlassFish 3.1.1. Die Bereitstellung schlägt mit den folgenden Fehlermeldungen fehl:

%Vor%

Es gibt keinen Stack-Trace. Ich habe die Root-Protokollierungsstufe auf FINEST gesetzt und die erste SEVERE-Nachricht nach einer Weld-Nachricht:

%Vor%

Und vor mehreren Nachrichten wie diesen (für mehrere verschiedene Klassen):

%Vor%

Was könnte diesen Fehler verursachen? Könnten diese PWC4451-Nachrichten anzeigen, dass einige Bibliotheken nicht geladen werden?

    
Nick 25.08.2011, 18:16
quelle

6 Antworten

6

Dies lag an einer @ViewScoped-Bean, die Serializable nicht implementiert hat. Offensichtlich fand eine ältere Version von Weld, die wir verwendeten, es nicht beanstandlich, dass eine passivierende Bohne nicht serialisierbar war, aber diese hier scheiterte still. Naja, hoffe das spart jemand etwas Zeit.

    
Nick 31.08.2011, 22:56
quelle
3

Nach drei Stunden Debugging habe ich ein Problem wie diese behoben, indem ich versuche, die Anwendung in JBoss 6 zu implementieren.

Es scheint so, als ob mehrere Fehlermeldungen von Weld unter Glassfish nicht korrekt geloggt werden. In meinem Fall habe ich eine EJB mit @Stateless @RequestScoped kommentiert (das ist illegal, muss @Statefull sein). Mit Glassfish konnte ich nur den "Fehler beim Laden der App" sehen, während ich in JBoss 6 die korrekte Fehlermeldung mit dem fehlerhaften Code bekomme.

Ich schlage vor, dass Sie versuchen, alle Teile auf JBoss 6 zu verteilen (z. B. @Resource mit spezifischem JNDI-Pfad), die verhindern, dass der Weld-Deployer die Anwendung scannt und den CDI-Inhalt validiert.

    
Stefano Travelli 31.08.2011 22:27
quelle
2

In meinem Fall bestand das Problem darin, dass meine beans.xml aus dem leeren "bohnen" -Element bestand, das früher funktionierte, aber anscheinend nicht mehr. Es funktionierte, als ich es durch eine völlig leere, 0-Byte beans.xml ersetzte.

    
Haakon 16.12.2011 13:02
quelle
2

Ich hatte das gleiche Problem beim Hinzufügen eines Interceptors, der in Glassfish 3.1.2.2 nicht serialisierbar war. Habe einfach eine NullPointerException ohne weitere Erklärung bekommen.

Es funktioniert gut, wenn ich den Interceptor Serializable implementiert habe.

    
runeks 11.09.2012 08:56
quelle
1

Grund und Lösungen, die ich in Bezug auf dieses Problem gefunden habe:
- Ziel nicht aktualisiert (stellen Sie sicher, eine Maven sauber zu machen, Zielordner möglicherweise gesperrt sein, versuchen Sie es manuell zu entfernen und erstellen Sie Ihr Ohr (hatte dieses Problem ein paar Mal)
- Problem mit JDBC-Pools: spülen Sie sie - Konstruktorproblem mit EJBs (Beachten Sie, dass es der Container ist, der Ihre Beans erstellt): Der Container muss sie initiieren können. Daher muss ein Standardkonstruktor ohne Argumente vorhanden sein.

falls das nicht funktioniert: Team- & gt; vergleichen mit - & gt; neueste funktionierende Version und betrachte jede EJB-Bean oder DTO für Webservices als mögliche Fehlerursache. Kommentieren Sie Ihre Änderungen und versuchen Sie erneut, das Problem zu lokalisieren.

In jedem Fall ist es ein ekliger Fehler :( Viel Glück!

    
Fico 22.05.2013 10:04
quelle
0
In meinem Fall und im Sinne von Interzeptoren war meins leicht zu finden, weil ich dort herumspielte.

Ich füge den unschuldigen @Interzeptor meinem Interzeptor hinzu, obwohl ich ihn mit Anmerkungen verwende.

Meine Version von Glassfish ist 3.1.2.2.

Diese Seite sagt, dass es Intector Javadoc optional ist.

    
Eyad Ebrahim 04.04.2014 15:04
quelle