«Исключение при загрузке приложения» без трассировки стека - PullRequest
8 голосов
/ 25 августа 2011

Я перевожу свое приложение из 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, и первое сообщение SEVERE появляется после сообщения Weld:

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

6 голосов
/ 01 сентября 2011

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

3 голосов
/ 01 сентября 2011

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

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

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

2 голосов
/ 11 сентября 2012

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

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

2 голосов
/ 16 декабря 2011

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

1 голос
/ 22 мая 2013

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

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

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

0 голосов
/ 04 апреля 2014

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

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

Моя версия Glassfish - 3.1.2.2.

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

...