Подтвердить что ты не робот

Поддержка JSF bean должна быть сериализована?

Я получаю эти сообщения:

[# | 2010-07-30T11: 28: 32,723 + 0000 | ПРЕДУПРЕЖДЕНИЕ | glassfish3.0.1 | javax.faces | _ThreadID = 37; _ThreadName = Thread-1; | Настройка несериализуемое значение атрибута в ViewMap: (ключ: MyBackingBean, значение класс: foo.bar.org.jsf.MyBackingBean) | #]

Означают ли это, что моя поддержка JSF beans должна реализовывать Serializable? Или они ссылаются на какую-то другую проблему?

4b9b3361

Ответ 1

Да, вы поняли это правильно. Вид в основном хранится в области сеанса. Область сеанса находится в JSF, поддерживаемой Servlet HttpSession. Предполагается, что все атрибуты сеанса реализуют Serializable, так как средний сервлетконтейнер может сохранять данные сеанса на жестком диске среди других, чтобы иметь возможность делиться с другими серверов в кластере или для выживания большой нагрузки или для возобновления сеансов во время перезапуска сервера.

Сохранение необработанных объектов Java на жестком диске возможно только в том случае, если соответствующий класс реализует Serializable. Затем ObjectOutputStream можно использовать для записи их на жесткий диск и ObjectInputStream, чтобы прочитать их с жесткого диска. Servletcontainer управляет этим все прозрачно, на самом деле вам не нужно беспокоиться об этом. JSF просто дает предупреждение, чтобы вы понимали риски.

Ответ 2

Beans, которые используют область сеанса, приложения или разговора, должны быть сериализованы, но beans, которые используют область запроса, не обязательно должны быть сериализуемыми. Источник: https://docs.oracle.com/javaee/6/tutorial/doc/gjbbk.html

Ответ 3

Да, Резервное копирование Beans/управляемое Beans в основном предназначено для сохранения состояния представления, поэтому оно должно быть реализовано с помощью сериализации, но компоненты пользовательского интерфейса могут не разрешать сериализацию, а JSF Runitime покажет вам сообщение об ошибке/предупреждении. одна вещь, которую вы можете сделать, - отметить такой переходный период в ваших MBeans.

Спасибо.