2013-02-15 5 views
1

Я пытаюсь использовать свое приложение Java в кластерной среде с Weblogic 10 g, и у нас возникают проблемы с репликации сеанса, потому что много классов, которые обычно находятся в сеансе, не реализовать интерфейс Serializable.Проблемы с сериализацией в кластерной среде

В одном из этих классов проблема - это атрибут ServletContext, который не является сериализуемым. Правильно ли я предполагаю, что этот атрибут должен быть отмечен ключевым словом переходного процесса?

Спасибо!

ответ

2

Если вам это не нужно, вы можете пометить его transient, и сериализация проигнорирует его. Имейте в виду, что тогда он будет нулевым, когда он будет десериализован ...

+0

Но зачем мне это нужно? Я не знаю последствий этого, когда сеанс реплицируется. Пользователь потеряет сессию и снова войдет в систему? То, что я на самом деле пытаюсь сделать, - это реплицировать сеанс на новый узел в кластере, не освобождая пользователя от сеанса, а затем снова войдет в систему. – qxlab

+1

Вы почти наверняка не похожи на то, что ServletContext, очевидно, будет отличаться от сервера к серверу. Я даже зашел так далеко, чтобы сказать, что наличие указателя на него показывает плохой дизайн. Однако, если вам нужен указатель на него, вам нужно будет сбросить его, когда объект будет десериализован путем реализации 'private void readObject (ObjectInputStream ois)' для выполнения пользовательских действий. –

Смежные вопросы