2016-07-23 9 views
0

그냥 글래스 피시 4.1 (즉, 인 Mojarra를 사용하여)와 함께 FacesFlow 내 첫 단계를 일을 시작 javax.faces.flow.FlowScoped 내 흐름을 호출 할 때 나는라는 오류가WELD-001303 : 범위 유형에 대한 활성 컨텍스트는

[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를 기반으로하고 내 백킹 빈/컨트롤러에서 다음 코드를 사용한다.

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

나는 그 페이지 dirctory에있는 흐름라는 이름의 등록/등록하고 흐름의 첫 페이지 나뿐만 아니라 register/register-flow.xml 설정 파일로 모두 시도 조각을 이어 register.xhtml

이름이 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"/>이 문제를 해결할 것을 제안 게시물을 찾았지만 태그를 인터넷 검색 후에는 오래된 톰캣 태그를 밝혀졌습니다.

@Named에서 @ManagedBean으로 변경하면 한 페이지에 제안 된 내용과 같이 도움이되지 않습니다. 페이지를 열 수도 있지만 컨트롤러 클래스의 데이터는 더 이상 흐름의 다음 페이지를 호출 할 때 사용할 수 없습니다. 하지만 @FlowScoped은 CDI 기반이므로 @ManagedBean은 실제로 작동하지 않아야합니다.

또 다른 게시물은 javax.faces.CLIENT_WINDOW_MODE을 사용하도록 설정되어 있습니다. 나는 추가를 통해이 또 다른 내가 이미

모든 아이디어를 어떻게 글래스 피쉬 4.x의를 사용하도록 제안

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

성공

내 web.xml 파일에 있지만없이 다음과 같은 것을 시도?

+0

이것을 재현 할 수있는 샘플 앱이 있습니까? –

답변

-1

Glassfish 4.1 이상에서는 cdi-api.jar 디렉토리 라이브러리를 추가해야합니다.

글래스 피시는 용접 OSGI-bundle.jar을 포함하지만 그것은 또한 CDI 빈 범위 그래서 당신이없는 경우가 있는지 만드는 weld-osgi...에되지 않기 때문에 는 CDI-api.jar을이 작동 할 필요가 는 여기 :

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

이것은 당신이 CDI Beans 예에 사용되는 패키지에 액세스 할 수 있습니다, javax.enterprise.context.*

그렇지 않은 경우 다음 아마도

  1. this could help
  2. and this

GL!