Я пытаюсь реализовать ViewScoped CDI bean используя Omnifaces. Метод Bean, который заполняет список с результатами поиска для directfaces datatable, вызывается с использованием ajax с страницы jsf. Если для параметра «Бонус» установлено значение «Сессия», все работает правильно. Когда я пытаюсь установить область действия в Omnifaces ViewScope, контейнер начинает создавать и уничтожать bean-компоненты много раз без каких-либо причин. Вот код боб:Omnifaces viewcoped bean воссоздается снова и снова
...
import javax.inject.Named;
import org.omnifaces.cdi.ViewScoped;
@Named
@ViewScoped
public class FindClientBean implements Serializable {
@Inject
private ClientDAO clientDAO;
@NotNull(message="Search string cannot be empty")
private String searchString;
private List<Client> resultList;
@PostConstruct
public void init() {
System.out.println("init");
}
@PreDestroy
public void end() {
System.out.println("end");
}
public void findClient() {
System.out.println("method");
resultList = clientDAO.findClientByNameOrLastnamePart(searchString);
}
//Getters and setters..
}
Пример вывода (есть еще много inits и заканчивается за один вызов метода, я пропустил их):
01:51:50,044 INFO [stdout] (http-localhost-127.0.0.1-9090-5) init
01:51:50,044 INFO [stdout] (http-localhost-127.0.0.1-9090-4) init
01:51:50,044 INFO [stdout] (http-localhost-127.0.0.1-9090-5) end
01:51:50,045 INFO [stdout] (http-localhost-127.0.0.1-9090-4) end
01:51:50,045 INFO [stdout] (http-localhost-127.0.0.1-9090-5) init
01:51:50,045 INFO [stdout] (http-localhost-127.0.0.1-9090-4) init
01:51:50,046 INFO [stdout] (http-localhost-127.0.0.1-9090-5) end
01:51:50,046 INFO [stdout] (http-localhost-127.0.0.1-9090-4) method
01:51:50,047 INFO [stdout] (http-localhost-127.0.0.1-9090-5) init
01:51:50,047 INFO [stdout] (http-localhost-127.0.0.1-9090-5) end
01:51:50,048 INFO [stdout] (http-localhost-127.0.0.1-9090-5) init
01:51:50,048 INFO [stdout] (http-localhost-127.0.0.1-9090-5) end
01:51:50,049 INFO [stdout] (http-localhost-127.0.0.1-9090-5) init
01:51:50,049 INFO [stdout] (http-localhost-127.0.0.1-9090-5) end
Что это может быть? Не нашли соответствующего вопроса. Моя конфигурация: JBoss AS 7.1, Omnifaces 1.6.3, Primefaces 4.0
Какое действие вы делаете на стороне клиента? –
Какая AS subversion точно? 7.1.0? Таким образом, с Mojarra 2.1.5? И исчезает ли проблема, когда вы используете '@ManagedBean @ ViewScoped' из пакета' javax.faces.bean'? – BalusC
Alexandre: Я пытаюсь заполнить перформансы datatable, используя строку поиска через запрос ajax из базы данных. – Cass