"Исключение при загрузке приложения" без трассировки стека
я переношу свое приложение с 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.