3

解決しようとしているJSFの難しい問題があります。注:私はJSFとJavaにかなり慣れていません。ユーザーがログインし、いくつかのチェックボックスを選択し、[送信]をクリックして、別のページに情報を追加し、DBに保存してログアウトする簡単なアプリケーションがあります。

私の本番環境では、ユーザーセッションデータがクロスまたはキャッシュされ、後続のユーザーセッションによって取得されるインスタンスが表示されます。たとえば、ユーザーAがデータを入力してから、ユーザーBがデータを入力すると、データを確認すると、ユーザーAが入力したものが表示されます。もちろん、これをテストで再現することはできません。

私はjsf1.2._12、richfaces 3.3.2、およびspring2.5.6を使用しています。アプリサーバーはJBoss5です。

私のJSFマネージドBeanはすべてセッションスコープです。この特定のマネージドBeanは、セッションスコープのビジネスオブジェクトとしてSpring Beanを呼び出し、最終的にはシングルトンのDAOを呼び出します。

ここに関連するfaces-configinfo

<managed-bean>
    <description>ContactBean</description>
    <managed-bean-name>ContactBean</managed-bean-name>
    <managed-bean-class>com.package.ContactBean</managed-bean-class>
    <managed-bean-scope>session</managed-bean-scope>

    <managed-property>
        <property-name>dataElementBO</property-name>
        <value>#{dataElementBO}</value>
    </managed-property>

    <managed-property>
        <property-name>attributeBO</property-name>
        <value>#{attributeBO}</value>
    </managed-property>

    <managed-property>
        <property-name>dataElement2BO</property-name>
        <value>#{dataElement2BO}</value>
    </managed-property>

    <managed-property>
        <property-name>submissionBO</property-name>
        <value>#{submissionBO}</value>
    </managed-property>

    <managed-property>
        <property-name>selectedList</property-name>
        <property-class>java.util.ArrayList</property-class>
        <list-entries />
    </managed-property>

    <managed-property>
        <property-name>enteredContact</property-name>
        <property-class>java.util.ArrayList</property-class>
        <list-entries />
    </managed-property>
</managed-bean>

そして私のアプリ-春の豆が呼ばれるためのコンテキスト

<bean id="submissionBO" class="com.package.submissionBOImpl" scope="session">
    <property name="submissionDAO">
        <ref bean="submissionDAO" />
    </property>
</bean>

Webサーバーのログを表示するときに、この問題は、ユーザーAとBが同時にログインしていなかった場合に発生しました。ユーザーAがログアウトし、約20分後にユーザーBがログインしました。

セッションスコープのBeanの使用が他のユーザーのデータとどのように交差する可能性があるのか​​わかりません...これらがどのようにスコープされているのか理解できないことがありますか?必要に応じて、モックアップしたコードを添付できます。前もって感謝します!

4

1 に答える 1

0

同じマネージドBeanを使用してページを送信およびレビューしていますか?そうでない場合は、他のページにデータを渡す方法を教えてください。

于 2011-02-10T09:10:27.677 に答える