我在我的应用程序中一直使用这种方法(Persist and pass FacesMessages over multiple page redirects)并且一直运行良好。
最近,应用程序发生了很大变化,现在消息不再出现了。我试图比较源代码,但是存在太多差异。
查看日志,似乎只在MultiPageMessagesSupport
完成处理后添加消息,并且重定向丢失了消息:
[#|2017-01-23T09:23:18.321+0000|SEVERE|glassfish 4.1||_TimeMillis=1485163398321;|
SAVING MESSAGES RESTORE_VIEW 1|#]
[#|2017-01-23T09:23:18.331+0000|SEVERE|glassfish 4.1||_TimeMillis=1485163398331;|
SAVING MESSAGES RESTORE_VIEW 1|#]
[#|2017-01-23T09:23:18.333+0000|SEVERE|glassfish 4.1||_TimeMillis=1485163398333;|
SAVING MESSAGES RENDER_RESPONSE 6|#]
[#|2017-01-23T09:23:18.333+0000|SEVERE|glassfish 4.1||_TimeMillis=1485163398333;|
RESTORING MESSAGES RENDER_RESPONSE 6|#]
[#|2017-01-23T09:23:23.571+0000|INFO|glassfish 4.1||_TimeMillis=1485163403571;|
[ERROR] ecc_src - Failed to access the WSDL at: http://epms:10130/endpoint?wsdl. It failed with:
Connection refused: connect.|#]
[#|2017-01-23T09:23:23.571+0000|SEVERE|glassfish 4.1||_TimeMillis=1485163403571;|
MESSAGES ADDED AT PHASE RENDER_RESPONSE 6|#]
我尝试过比较常见的嫌疑人(faces-config.xml, web.xml, filters
),但却无法找到任何可以证明这种行为改变的理由。
有人可以给我一些关于我应该寻找什么的提示吗?
编辑#1
根据@Kukeltje的建议,我已经仔细检查了所有外部组件并注意到Omnifaces'版本不同(目前为2.5.1,之前为2.0)。切换回2.0版就足以让问题消失。 我将进一步调查并检查Omnifaces的哪个版本的行为已发生变化(我将尝试版本2.1,2.2,2.3和2.4)。
编辑#2
它适用于Omnifaces'版本2.1和2.2并停止从版本2.3及更高版本开始工作。