2016-07-23 94 views
0

剛開始做我的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的,我已經做

任何想法?

+0

你有一個示例應用程序,可以重現此? –

回答

-1

隨着Glassfish 4.1至少需要添加cdi-api.jar目錄庫。

Glassfish的包括焊接OSGi的bundle.jar但也需要CDI-api.jar中工作,因爲CDI Bean的作用不在weld-osgi...所以請確保您有它如果不它在這裏:

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

這會給你訪問與CDI Beans即使用的封裝,javax.enterprise.context.*

如果沒有,那麼可能

  1. this could help
  2. and this

GL!

相關問題