세션 범위 bean을 뷰 범위 bean에 삽입 할 때마다, bean을 호출 할 때 NullPointerException이 발생합니다. 이 문제는 직접 auto -instantiate a session bean? 다음뷰 범위 콩에서 세션 범위 콩을 자동으로 인스턴스화하기
와 관련된 것은 내가 지금까지 뭘하려 :
얼굴-config.xml에
<managed-bean>
<managed-bean-name>sessionBean</managed-bean-name>
<managed-bean-class>com.example.SessionBean</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>
<managed-bean>
<managed-bean-name>viewBean</managed-bean-name>
<managed-bean-class>com.example.ViewBean</managed-bean-class>
<managed-bean-scope>view</managed-bean-scope>
<managed-property>
<property-name>sessionBean</property-name>
<property-class>com.example.SessionBean</property-class>
<value>#{sessionMBean}</value>
</managed-property>
</managed-bean>
SessionBean.java :
package com.example;
public class SessionBean {
public SessionBean() {
System.out.println("Session is instantiated.");
}
public void sayHello() {
System.out.println("Hello from session");
}
}
ViewBean.java :
package com.example;
public class ViewBean {
private SessionBean sessionBean;
private String text = "Look at me!";
public ViewBean() {
System.out.println("View bean is instantiated.");
sessionBean.sayHello();
}
public SessionBean getSessionBean() {
return sessionBean;
}
public void setSessionBean(SessionBean sessionBean) {
this.sessionBean = sessionBean;
}
public String getText() {
return text;
}
}
및 index.xhtml 관련 내용 :
<f:view>
<h:outputText value="#{viewBean.text}"/>
</f:view>
을 그리고 이것은 내가 무엇을 얻을 다음에 웹 로직 - 10.3.6에
이com.sun.faces.mgbean.ManagedBeanCreationException: Cant instantiate class: com.example.ViewBean.
...
Caused by: java.lang.NullPointerException
at com.example.ViewBean.(ViewBean.java:12)
이 실행 (또는 오히려 실행되지 않습니다) jsf-2-0.war이 라이브러리로 배포되었습니다.
내가 뭘 잘못하고 있니? 이 컨테이너 버그가 아니길 바래요 ...
시도는 일반 자바의 관점에서 생각하기 : 어떻게'viewBean.setSessionBean (세션빈을) 할 이제까지 수'전'viewBean = 새로운 ViewBean() '? – BalusC