0

刚开始使用 Glassfish 4.1(即使用 Mojarra)使用 FacesFlow 进行我的第一步,当调用我的流程时,我收到一个名为

[SEVERE] [] [javax.enterprise.resource.webcontainer.jsf.application] ...  Error Rendering View[/register/register.xhtml]
org.jboss.weld.context.ContextNotActiveException: WELD-001303: No active contexts for scope type javax.faces.flow.FlowScoped
    at org.jboss.weld.manager.BeanManagerImpl.getContext(BeanManagerImpl.java:708)

正如我在网上看到的那样,其他几个人也有这个错误,但对其他人有效的解决方案对我不起作用(见下文)。

我也试过@SessionScoped哪个有效。所以它与@FlowScoped.

对于我在用来加快速度的书中所读到的内容,我应该可以从编码和配置结束,因为根据 API@FlowScoped是基于 CDI 的,并且我在我的支持 bean/控制器中使用以下代码。

@Named
@FlowScoped(value="register")
public class RegisterController implements Serializable {

我有一个名为 register 的流程,其页面位于目录 /register 中,流程的第一页名为 register.xhtml

以下片段我尝试了作为register/register-flow.xml配置文件以及WEB-INF/faces-config.xml没有成功。

<?xml version="1.0" encoding="UTF-8"?>
<faces-config
    xmlns="http://xmlns.jcp.org/xml/ns/javaee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-facesconfig_2_2.xsd"
    version="2.2">
    <flow-definition id="register">
        <flow-return id="overview">
            <from-outcome>/index</from-outcome>
        </flow-return>
    </flow-definition>
</faces-config>

到目前为止我尝试了什么:我发现一个帖子建议<Context antiJARLocking="true" path="/PROJEST_NAME"/>可以解决问题,但在谷歌搜索标签后发现它是一个过时的 Tomcat 标签。

正如一页所建议的那样,更改@Named为并没有真正帮助。@ManagedBean我可以打开页面,但在调用流程的下一页时,控制器类中的数据将不可用。但@ManagedBean我猜不应该真的有效,因为@FlowScoped它是基于 CDI 的。

另一个帖子建议确保javax.faces.CLIENT_WINDOW_MODE已启用。我尝试通过将以下内容添加到我的 web.xml 但没有成功

<context-param>
<param-name>javax.faces.CLIENT_WINDOW_MODE</param-name>
<param-value>url</param-value>
</context-param>

另一个建议使用我已经使用的 Glassfish 4.x

有任何想法吗?

4

1 回答 1

-2

Glassfish 4.1 至少需要添加cdi-api.jar目录库。

Glassfish 包含weld-osgi-bundle.jar,但它还需要cdi -api.jar才能工作,因为CDI bean 范围不在其中,weld-osgi...因此如果此处没有,请确保您拥有它:

[gf_installation_path]/glassfish/modules/cdi-api.jar

这将使您可以访问与CDI Beansie 一起使用的软件包,javax.enterprise.context.*

如果没有,那么可能

  1. 这可能会有所帮助
  2. 和这个

GL!

于 2016-07-24T00:35:14.177 回答