작동하지 않습니다제이보스 11 : CDI 내가 매우 간단한 응용 프로그램을 작성했지만, 예상대로 CDI가 작동하지 않습니다
정의
@EJB private CustomerProviderSessionBeanLocal customerProvider;
는 빈의 인스턴스에 연결되지 않습니다.
@SessionScoped @ManagedBean
public class BackingBean {
@EJB private CustomerProviderSessionBeanLocal customerProvider;
보스 수율 : 내 무 상태 세션 빈 (JSF에 대한)
@Local
public interface CustomerProviderSessionBeanLocal { ... }
@Stateless
@EJB(name="ejb/CustomerProvider", beanInterface = CustomerProviderSessionBeanLocal.class, beanName = "CustomerProviderSessionBean")
public class CustomerProviderSessionBean implements
CustomerProviderSessionBeanLocal ...
컨트롤러 콩의
정의 아직
java:global/2017_JEE_App_1_war_exploded/CustomerProviderSessionBean!beans.CustomerProviderSessionBeanLocal
java:app/2017_JEE_App_1_war_exploded/CustomerProviderSessionBean!beans.CustomerProviderSessionBeanLocal
java:module/CustomerProviderSessionBean!beans.CustomerProviderSessionBeanLocal
java:global/2017_JEE_App_1_war_exploded/CustomerProviderSessionBean
java:app/2017_JEE_App_1_war_exploded/CustomerProviderSessionBean
java:module/CustomerProviderSessionBean
, customerProvider 속성이 초기화되지 않았습니다. 생성자가 호출되었습니다 (로그 파일에서 볼 수 있음). 몇 가지 변종 (이름/로컬 인터페이스 등)/함께 시도했다.
initialContext = new InitialContext();
Object o = initialContext.lookup("java:app/2017_JEE_App_1_war_exploded/CustomerProviderSessionBean");
내가 제이보스 구성을 변경하지 않은 작동하지 않습니다 @의 EJB-주석에 동일한 JNDI 이름을 사용 : 사용하여 JNDI-조회 작업을 수행합니다!
아무도 도와 줄 수 있습니까?
"new BackingBean()"으로 BinkingBean 인스턴스를 만든 경우 CDI가 작동하지 않습니다. 너? –
backing bean 인스턴스는 JSF 액세스를 통해 자동으로 작성됩니다. h : outputText> –
EJB와 CDI를 아주 격렬하게 혼합합니다. 첫째, CDI 빈 (@SessionScoped BackingBean)은 @ ManagedBean 일 필요는 없다. 둘째로, CDI가 ('@ SessionScoped' 빈에서) 작업을 수행하게하려면'@ EJB' 대신'@Inject'를 시도하십시오. – Siliarus