JSF 2.x mojarra 実装を使用する Java EE 6 プロジェクト (2.0 と 2.1 の両方でテスト済み) で、セッション Bean が @EJB アノテーションを介して JSF 管理対象 Bean に注入されると、Websphere Application Server 8.5 では失敗しますが、Glassfish 3.x (GF でテスト済み) では機能します。それぞれ 3.0 & 3.1) そのまま:
コーディング アプローチは次のようになります。
一部のEJBFacade.java
@Stateless
public class SomeEJBFacade() {
public String testMethod() {
return "testing 1 2 3";
}
}
TestBean
@ManagedBean
@ViewScoped
public class TestBean implements java.io.Serializable {
@EJB SomeEJBFacade facade;
public String getTestStr() {
return facade.testMethod();
}
}
JSF facelet フラグメント:
<h:outputText value="#{testBean.testStr}" />
上記により、TestBean のtestStr()メソッドからNull Pointer Exceptionが発生します。
同様に、JPA トランザクション メソッドは、同様のポイントでヌル ポインター例外をスローします。