私がやっていることは、最初のページに到達しようとしているだけです。そして、私は次の例外を受け取ります:
org.springframework.webflow.execution.repository.snapshot.SnapshotNotFoundException:
No flow execution snapshot could be found with id '1'; perhaps the snapshot has been removed?
私は以下を使用しています:
- Spring Webflow 2.3 (persistence-context フラグ付き)
- 春のセキュリティ
- 春のMVC
- 春のデータ
- JPA 2.0、カスタム JpaFlowExecutionListener を使用/経由
私の JpaFlowExecutionListener の唯一のカスタム部分は、フローをシリアル化できるようにスコープから EntityManager を切り離す部分です。フローはデータベースに保存/読み取りされます。しかし、最初のビューをレンダリングすることはできません。
ここからわかることは、以下にクラッシュする前に通過する手順です。
- FlowExecutorImpl コードは launchExecution() を呼び出します。
- PersistentConversation が作成されます。
- PersistentConversation スレッドがロックされました
- PersistentConversation は executionRepository と、会話の PersistentConversationHolder の ThreadLocal マップに配置されます。(アクティブなスレッドの会話のリストを保持します)
- ロックを解除 - ThreadLocal マップの PersistentConversation を削除します
- 次に FlowExecutorImpl createPausedResult(flowExecution) を呼び出します
- 最終的に FlowExecutorImpl resumeExecution() を呼び出します。
- FlowID を使用して PersistenceConversationHolder マップで PersistentConversation を検索しますが、ここでは PersistentConversation が見つかりません。
- データベースから取得し、db オブジェクトを新しい PersistentConversation に詰め込みます。
- スナップショット リストから会話を再開しようとしましたが、手順 5 で削除されました。
PersistenceConversationHolder については、この本のこちらの例を参照してください。
どんな助けでも大歓迎です!