@EJB が機能する WAR モジュールに JSF Bean があります。JSF Bean を Java ライブラリ (JAR) に移動すると、@EJB が機能しません (EJB にアクセスしようとすると NullPointerException が発生します)。シナリオ I からシナリオ II に移行する必要があります。
シナリオ I:
エンタープライズ アプリケーション
戦争モジュール:
JSF ページ:
<p>#{testController.test}</p>
JSF Bean:
@Named
public class TestController {
    @EJB
    private TestEjb testEjb;
    public String getTest() {
        return testEjb.test();
    }
}
EJB モジュール:
@Stateless
public class TestEjbImpl implements TestEjb {
    @Override
    public String test() {
        return (new Date()).toString();
    }
}
シナリオ II:
エンタープライズ アプリケーション
戦争モジュール:
JSF ページ:
<p>#{testController.test}</p>
JSF Bean:
[空 - JSF Bean は Java ライブラリ (JAR) に移動されました]
EJB モジュール:
@Stateless
public class TestEjbImpl implements TestEjb {
    @Override
    public String test() {
        return (new Date()).toString();
    }
}
Java ライブラリ (JAR):
@Named
public class TestController {
    @EJB
    private TestEjb testEjb;
    public String getTest() {
        return testEjb.test(); // Here I get a NullPointerException
    }
}
この問題を再現する Java ライブラリを使用してエンタープライズ アプリケーション プロジェクトを作成しました。これは Netbeans プロジェクトです: https://dl.dropboxusercontent.com/u/64616807/stackoverflow/jee6.rar