2012-09-10 3 views
3

JSF 및 CDI를 사용하여 간단한 "hello world"테스트를 만들려고하지만 JSF 페이지에서 CDI bean의 변수를 표시하지 않습니다. bean이 관리 Bean으로 변경되면 변수가 표시됩니다.JSF 페이지에서 CDI bean의 변수를 검색하지 않습니다.

테스트는 Apache MyFaces 2.1.5를 사용하며 WebSphere Application Server 8.5에서 실행 중입니다.

의심 할만한 간단한 이유가 있지만 관리 빈과 작동하지만 CDI 빈이 아닌 이유를 확인할 수 없었습니다. 누군가 내가 잘못 가고 있다고 제안 할 수 있습니까?

이 test.xhtml

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

<html xmlns="http://www.w3.org/1999/xhtml" 
    xmlns:ui="http://java.sun.com/jsf/facelets" 
    xmlns:h="http://java.sun.com/jsf/html" 
    xmlns:f="http://java.sun.com/jsf/core"> 

<h:body> 
    <h:outputText>#{testBean.myval}</h:outputText> 
</h:body> 
</html> 

TestBean.java

import javax.inject.Named; 
import javax.enterprise.context.RequestScoped; 

@Named 
@RequestScoped 
public class TestBean { 
    private String myVal = "Hello World"; 

    public String getMyVal() { 
     return myVal; 
    } 

    public void setMyVal(String myVal) { 
     this.myVal = myVal; 
    } 
} 

나는 또한 빈 콩을 만든 다음

시험에있는 파일의 내용은 .xml 파일은 WEB-INF에 있습니다.

답변

2

WebSphere 포럼에서도 유사한 질문을 게시하고 MyFaces 기반의 기본 JSF 구현 만 CDI와 함께 사용할 수 있음을 알게되었습니다.

자세한 내용은 CDI integration with JavaServer Faces을 참조하십시오.

+0

나는 오래 동안 수색을 해왔다. 그리고 마침내 내 응용 프로그램이 컨테이너에 의해 제공되는 myfaces 대신 mojarra를 사용한다는 것을 알게되었습니다. 고맙습니다 –

0

WAS8이 MyFaces 2.0.x를 지원하며 2.1.x를 사용하면 CDI에 문제가있는 것 같습니다. 따라서 2.1.x가 지원 될 때까지 2.0.x로 다운 그레이드하는 것이 가장 좋습니다.

당신은 당신이 XHTML 페이지에서 잘못된 경우를 예전처럼 here

+0

MyFaces 2.0.2를 사용하여 새 프로젝트를 만들었지 만 여전히 문제가 발생합니다. 흥미롭게도 이번에는 빈 beans.xml 파일로 시작하지 않았으므로 다음 내용을 추가했습니다. ' –

+0

포함 된 예제 중 하나를 실행할 수 있습니까? 자세한 정보 [여기] (http://pic.dhe.ibm.com/infocenter/wasinfo/v8r0/index.jsp?topic=%2Fcom.ibm.websphere.samples.doc%2Finfo%2Fae%2Fae%2Fsample_cdi.html) – Ravi

0

이 보이는 ICEFACES JIRA에서이 문제에 대해 읽을 수 있습니다. myval 대신 myVal이어야합니다.

관련 문제