Предпочтительно, чтобы атрибуты сеанса (и, следовательно, сеансы) были сериализуемыми, особенно при разработке для сред, где пользовательские сеансы могут сохраняться только для последующего восстановления.Это более или менее является обязательным условием для отработки отказа / переноса сеансов в кластере.
Но кластеризация - не единственный сценарий, когда сеансы будут сериализованы.В одном контейнере сеансы могут быть сохранены, когда контейнер закрыт, и будут десериализованы при повторном возвращении контейнера.Это, конечно, зависит от поддержки контейнеров, и многие контейнеры, включая Tomcat, поддерживают эту функцию.
Рациональный ответ на вопрос, почему ошибка не проявляется в локальной среде, заключается в том, что ошибка помечается только тогда, когда существуетпопытка сериализации сеансаКонтейнер не включает проверки того, имеют ли значения атрибутов в сеансе, являются ли они сериализуемыми или нет.Контейнеры не реализуют эту проверку;в конце концов, такой тест будет включать в себя фактическую сериализацию сеанса, которая может быть требовательной к производительности, с единственным преимуществом защиты от ошибок программирования.