"Исключение при загрузке приложения" без трассировки стека

я переношу свое приложение с GlassFish 3.0.1 на GlassFish 3.1.1. Сбой развертывания со следующими сообщениями об ошибках:

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. 

нет трассировки стека. Я включил корневой уровень ведения журнала в FINEST, и первое серьезное сообщение происходит после сообщения сварки:

//...
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
: []

и перед несколькими такими сообщениями (для нескольких разных классов):

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
//...

что может быть причиной этой ошибки? Могут ли эти сообщения PWC4451 указывать на то, что некоторые библиотеки не загружаются?

6 ответов


Это было связано с Бобом @ViewScoped, который не реализовал сериализуемый. По-видимому, более старая версия Weld, которую мы использовали, не считала неприемлемым, что пассивирующий Боб не был Сериализуемым, но этот из-за этого молча потерпел неудачу. Надеюсь, это сэкономит кому-то время.


после трех часов отладки я исправил такую проблему, пытаясь развернуть приложение в JBoss 6.

похоже, что несколько сообщений об ошибках от Weld не регистрируются должным образом под Glassfish. В моем случае я аннотировал EJB с @Stateless @RequestScoped (это незаконно, должно быть @Statefull). С Glassfish я мог видеть только эту "ошибку при загрузке приложения", в то время как в JBoss 6 я получаю правильное сообщение об ошибке, указывающее оскорбительный код.

Я предлагаю что вы пытаетесь развернуть на JBoss 6, удаляя все части (@Resource с определенным путем JNDI, например), которые мешают развертывателю сварки сканировать приложение и проверять материал CDI.


в моем случае, проблема была в том, что мои бобы.xml состоял из пустого элемента "бобов", который раньше работал, но, по-видимому, больше не работает. Он работал, когда я заменил его на совершенно пустой, 0 байт фасоль.XML.


у меня была такая же проблема при добавлении перехватчика, который не был сериализуемым в Glassfish 3.1.2.2. Только что получил NullPointerException без каких-либо дополнительных пояснений.

он отлично работает, когда я сделал реализацию перехватчика Serializable.


причина и решения, с которыми я столкнулся в отношении этой проблемы:
- цель не обновляется (убедитесь, что сделать maven чистой, целевая папка может быть заблокирована, попробуйте вручную удалить его и восстановить ухо (была эта проблема несколько раз)
- проблема с пулами JDBC: промойте их
- проблема конструктора с EJB (обратите внимание, что это контейнер, который создает ваши бобы): контейнер должен иметь возможность инициировать их. Таким образом, конструктор по умолчанию без аргументов должен быть настоящее

Если это не сработает: команда - > сравнить с - > последняя рабочая версия и рассмотреть каждый EJB bean или DTO для веб-сервисов в качестве возможной причины ошибки. Прокомментируйте изменения и повторите попытку развертывания, чтобы найти проблему.

в любом случае это неприятная ошибка :( удачи!


в моем случае и в духе перехватчиков, мой был вроде легко найти, потому что я играл там.

Я добавляю невинный @Interceptor на моем перехватчике, хотя я использую его с аннотациями.

мои версии GlassFish является 3.1.2.2.

на этой странице говорится, что это необязательно Inteceptor Javadoc.