剛開始做我的FacesFlow第一步驟,Glassfish的4.1(即使用鑽嘴魚科),並調用我的流程,當我得到一個名爲錯誤WELD-001303:對於範圍類型沒有有效上下文javax.faces.flow.FlowScoped
[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 {
我有一個流命名寄存器的頁數是位於dirctory /註冊和流量的第一頁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"/>
可以解決這個問題,但是google搜索標籤之後事實證明其過時的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的,我已經做
任何想法?
你有一個示例應用程序,可以重現此? –