- Запустите новое веб-приложение, используя NetBeans 7 на GlassFish 3.1
- В теле index.xhtml добавьте тег
h:outputText
с value="#{myBean.message}"
- Создать
SessionScoped
ManagedBean
MyBean
со свойством String с именем message
; создать геттер и сеттер; заставить его реализовать Serializable
- Создайте
Stateless
SessionBean
и вставьте его в MyBean
, используя @EJB
аннотацию
- С этого момента, всякий раз, когда вы меняете код Java и сохраняете проект, вы будете получать множество ошибок (ошибки NPE, IOError, EJB) во время отмены развертывания. Развертывание в порядке, и приложение работает хорошо. Но я бы хотел избежать исключений во время безработицы.
Это нормально? Или я что-то не так делаю?
Вот мой код:
Index.xhtml (часть тела)
<h:body>
<h:outputText value="#{myBean.message}"></h:outputText>
</h:body>
MyBean.Java
@ManagedBean
@SessionScoped
public class MyBean implements Serializable {
@EJB NewSessionBean nsb;
public String getMessage() {
return " " + nsb.toString();
}
public MyBean() {
}
}
NewSessionBean.java
@Stateless
@LocalBean
public class NewSessionBean {
}
Чтобы получить ошибки, просто загрузите веб-страницу, добавьте пробел в строку сообщения, сохраните файл java (с включенным автоматическим развертыванием, в противном случае повторно разверните вручную).
Некоторые исключения
EJB5014: Exception resolving object
java.lang.NullPointerException at
com.sun.ejb.containers.EJBLocalObjectInvocationHandlerDelegate$SerializableLocalObjectDelegate.createObject(EJBLocalObjectInvocationHandlerDelegate.java:158)
IOException while loading persisted sessions: java.io.IOException
java.io.IOException
at com.sun.ejb.base.io.EJBObjectInputStream.resolveObject(EJBObjectInputStream.java:114)
UPDATE
Если я заменю аннотации ManagedBean
на Named
, следовательно, используя CDI
, и, следовательно, заменю javax.faces.bean.SessionScoped
на javax.enterprise.context.SessionScoped
, у меня возникнет точно такая же проблема при развертывании, и после слов приложение будет работать гладко.
Брошенное исключение точно такое же, как и раньше.