Я видел эту ошибку, описанную во многих местах, но всегда причины разные. Сообщение вроде this утверждает, что проблема повторного создания экземпляра возникает только при включении библиотеки тэгов-обработчиков на вашу страницу. Тем не менее, у меня есть пустой проект со страницей, как следующийJSF-ViewScope bean restantiated в каждом запросе
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core">
<head>
<title></title>
</head>
<body >
<h:form>
<f:view >
<h:commandButton id="otxMainPanelTextBt" value="click"
action="#{otherController.doSome}"/>
</f:view>
</h:form>
</body>
</html>
с поддержкой фасоли, как этот
import java.io.Serializable;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
@ManagedBean(name = "otherController")
@ViewScoped
public class Other implements Serializable {
private static final long serialVersionUID = -6493758917750576706L;
public String doSome() {
System.out.println(this);
return "";
}
}
И следующие зависимости
<dependency>
<groupId>org.apache.myfaces.core</groupId>
<artifactId>myfaces-impl</artifactId>
<version>2.0.2</version>
</dependency>
<dependency>
<groupId>org.apache.myfaces.core</groupId>
<artifactId>myfaces-api</artifactId>
<version>2.0.2</version>
</dependency>
и каждый раз, когда я нажимаю на кнопка создает другой объект. По-видимому, эта страница максимально проста, и я не вызвал ни одной из возможных причин ошибок, так что это всегда происходит или я чего-то не хватает?
Я тестировал изменение зависимостей до 2.2.0, и он работает как ожидалось, но, к сожалению, из-за ограничений проекта, мне нужно сохранить версию 2.0.2 JSF.
Любая помощь будет высоко оценена. Спасибо!
Возможно, вы уже ответили на свой вопрос, и это ошибка. – zmirc
У меня эта проблема с websphere. Так что я делаю «обходной путь», чтобы остановить постконструкцию огня при каждом обновлении ... http://stackoverflow.com/a/21159145/3056912 : – xild
2.0.2 - это ранняя стадия реализации 2.x. 2.0.20 и 2.1.14 уже доступны, пойдите с одним из них. Они должны работать без внесения изменений в ваш код. –