我正在
Caused by: org.springframework.webflow.execution.repository.snapshot.SnapshotCreationException: Could not serialize flow execution; make sure all objects stored in flow or flash scope are serializable
at org.springframework.webflow.execution.repository.snapshot.SerializedFlowExecutionSnapshot.<init>(SerializedFlowExecutionSnapshot.java:75)
at org.springframework.webflow.execution.repository.snapshot.SerializedFlowExecutionSnapshotFactory.createSnapshot(SerializedFlowExecutionSnapshotFactory.java:70)
at org.springframework.webflow.execution.repository.snapshot.AbstractSnapshottingFlowExecutionRepository.snapshot(AbstractSnapshottingFlowExecutionRepository.java:75)
at org.springframework.webflow.execution.repository.impl.DefaultFlowExecutionRepository.putFlowExecution(DefaultFlowExecutionRepository.java:126)
at org.springframework.webflow.executor.FlowExecutorImpl.resumeExecution(FlowExecutorImpl.java:171)
at org.springframework.webflow.mvc.servlet.FlowHandlerAdapter.handle(FlowHandlerAdapter.java:228)
at org.springframework.faces.webflow.JsfFlowHandlerAdapter.handle(JsfFlowHandlerAdapter.java:57)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:959)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:893)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:969)
... 46 more
Caused by: java.io.NotSerializableException: org.springframework.binding.mapping.impl.DefaultMappingResults
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1184)
at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1548)
at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1509)
因此NotSerializableException完全占据了根本原因,因此无法弄清楚发生了什么。不可序列化的DefaultMappingResults来自
"lastError" -> "org.springframework.webflow.engine.FlowInputMappingException: Errors occurred during input mapping in state 'openAgreement' of flow 'menu'; errors = [[SourceAccessError@226a8851 mapping = flowScope.securityCards.selectedRow.agreementId -> agreementId, code = 'evaluationException', error = true, errorCause = org.springframework.binding.expression.EvaluationException: An ELException occurred getting the value for expression 'flowScope.securityCards.selectedRow.agreementId' on context [class org.springframework.webflow.engine.impl.RequestControlContextImpl], originalValue = [null], mappedValue = [null]]]"
不确定它是否相关但是在将JSF从2.1更新到2.2之后问题加剧但很可能在2.1下没有根错误
问题somehwat重新调整此one但不确定。
openAgreement状态:
<subflow-state id="openAgreement" subflow="menu">
<on-entry>
<evaluate expression="agreementService.init()" result="flowScope.agreementReadCriteria" />
</on-entry>
<input name="agreementReadCriteria" value="flowScope.agreementReadCriteria"/>
<input name="agreementId" value="flowScope.securityCards.selectedRow.agreementId"/>
<input name="currentBankId" value="flowScope.currentBankId"/>
<input name="goToAgreement" value="true"/>
<transition on="closeAgreement" to="securityCardsViewBasic">
</transition>
</subflow-state>