【发布时间】:2014-03-04 17:07:48
【问题描述】:
这与其说是一个问题,不如说是一个笔记。 使用 Glassfish4,在 JEE7 应用程序中,我尝试使用程序流定义(使用 @Produces @FlowDefinition 注释的 java 类)来使用流范围。
我使用 h:commandButton 导航到流程的起始页(就像在 JEE7 教程示例 https://svn.java.net/svn/javaeetutorial~svn/trunk/examples/web/jsf/checkout-module 中所做的那样。 当我按下按钮时,它停留在按钮所在的同一页面上,而不是转到流程的起始页面。
经过几个小时的磨难,我意识到问题出在 beans.xml 中,在我的 beans.xml 中我有这个:
bean-discovery-mode="annotated"
这是根据文档 (http://www.oracle.com/webfolder/technetwork/jsc/xml/ns/javaee/beans_1_1.xsd) 推荐的设置。 当我将其更改为
bean-discovery-mode="all"
它开始起作用了。
不知何故,CDI 无法将流定义识别为带注释的类。我试图将其设为 @Named 类或 @ApplicationScoped 类,但这些都没有帮助。 我不知道这是预期的行为还是错误。
希望它可以为某人节省一些我们的。
【问题讨论】:
标签: jsf cdi jsf-2.2 flow-scope