JSF - управляемый EJB-компонент Session-scoped не имеет зависимостей, повторно вводимых при десериализации сеанса

Я не уверен, что то, что я делаю, неправильно, или я просто пропустил где-то аннотацию или элемент конфигурации. Вот ситуация:

У меня есть приложение JSF с сессионным компонентом с именемSessionData, Этот бин имеет ссылку на бин в области приложения (типаApplicationData) вводится в него во время создания. Это работает нормально, когда сессия создается впервые. Внедрение зависимостей выполняется с<managed-bean> элементы вfaces-config.xml файл, как показано здесь:

<managed-bean>
    <managed-bean-name>sessionData</managed-bean-name>
    <managed-bean-class>my.package.SessionData</managed-bean-class>
    <managed-bean-scope>session</managed-bean-scope>
    <managed-property>
        <property-name>applicationData</property-name>
        <property-class>my.package.ApplicationData</property-class>
        <value>#{applicationData}</value>
    </managed-property>
</managed-bean>
<managed-bean>
    <managed-bean-name>applicationData</managed-bean-name>
    <managed-bean-class>my.package.ApplicationData</managed-bean-class>
    <managed-bean-scope>application</managed-bean-scope>
</managed-bean>

Потому что не имеет смысла иметь мойSessionData объект включает в себяApplicationData объект, когда он сериализован, я пометилApplicationData ссылка как переходный процесс в моемSessionData объект:

transient private ApplicationData applicationData;

Все хорошо, пока веб-приложение не остановлено (в моем контейнере Tomcat 6.x) и сеансы не сериализуются. Когда я перезапускаю приложение и сеансы десериализуются, моя ссылка наApplicationData не повторно вводится JSF. Я знаю, что десериализация должна оставить переходные поля без значения.Есть ли способ сообщить JSF, что этот объект в области сеанса требует, чтобы его зависимости были снова установлены после десериализации?

Я использую MyFaces JSF 1.2 и Tomcat 6.0.26 в качестве контейнера веб-приложения.

Ответы на вопрос(2)

Ваш ответ на вопрос