流范围导航到起始页不起作用

2024-05-03

这与其说是一个问题,不如说是一个注释。 对于 Glassfish4,在 JEE7 应用程序中,我尝试使用编程流定义(用 @Produces @FlowDefinition 注释的 java 类)来使用流范围。

我使用 h:commandButton 导航到流程的起始页面(就像在 JEE7 教程示例中所做的那样)https://svn.java.net/svn/javaeetutorial~svn/trunk/examples/web/jsf/checkout-module 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 http://www.oracle.com/webfolder/technetwork/jsc/xml/ns/javaee/beans_1_1.xsd)。 当我将其更改为

bean-discovery-mode="all"

它开始起作用了。

不知何故,CDI 无法将流定义识别为带注释的类。我尝试将其设为 @Named 类或 @ApplicationScoped 类,但这些都没有帮助。 我不知道这是预期的行为还是错误。

希望它能为某人节省几个小时。


这与CDI如何检测bean档案有关。什么时候bean-discovery-mode="annotated",仅用注释的类bean定义注解 http://docs.jboss.org/cdi/spec/1.2/cdi-spec.html#bean_defining_annotations由 CDI 拾取;注意@Named and @FlowScoped不在那个名单上。

因此,正如您在此处记录的那样,使用 Flow 注释需要bean-discovery-mode="all"要设置。

有一个规格问题 https://java.net/jira/browse/JAVASERVERFACES_SPEC_PUBLIC-1375开放讨论这是否是理想的行为。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

流范围导航到起始页不起作用 的相关文章

随机推荐