我能够通过以下方式解决这个问题:
1.) 从头开始创建一个新项目并测试我的堆栈是否真的有效。正如 Arjan Tijms 所说,即使您向最新版本的 mojarra 添加依赖项,它也会被忽略。尝试在 Glassfish 中部署新应用程序,您会注意到以下行:
[#|2012-12-31T11:19:15.958+0800|INFO|glassfish3.1.2|javax.enterprise.resource.webcontainer.jsf.config|_ThreadID=39;_ThreadName=Thread-2;|Initializing Mojarra 2.1.6 (SNAPSHOT 20111206) for context '/web-demo-0.0.1-SNAPSHOT'|#]
2.) 我的 bean 是 SessionScoped,所以它是可序列化的,但我忘记将注入的 ResourceBundle 和 FacesContext 标记为瞬态。(我的主要问题)。
3.) 对于带有弹出对话框示例的 primefaces 选择,请确保操作按钮以对话框元素 id 为目标进行更新。
4.) 确保在 Eclipse 项目以及您拥有的项目依赖项上运行 maven clean。例如,我有一个 web-commons,我在其中定义了对 mojarra 的依赖项,尽管我一直在清理主项目,但我没有注意到 commons 依赖项将 mojarra jar 添加到最后一个耳朵。
仅此而已,我的项目现在可以正常运行:-) 谢谢。