1

MyEclipse 10.0 内で、WAS 8.0、EJB 3.1、CDI、および EJB 組み込み可能コンテナーを使用しています。また、beans.xml がクラスパスに定義され、埋め込み可能なコンテナー jar が含まれています。テスト クラスの EJB 参照 (コース) でランタイム null を取得します。

public class CourseTest は TestCase を拡張します {

@EJB    
private Course course;

@Before
public void setUp() throws Exception {
    EJBContainer.createEJBContainer().getContext().bind("inject", this);
}

@Test
public void test() {

    // Was the EJB injected?
    assertTrue(course != null);
4

1 に答える 1

0

テストケース クラスはコンテナーによって構築されないため、インジェクションは実行されません。から EJB を手動で検索する必要がありますEJBContainer.createEJBContainer().getContext()

(余談ですが、EJBContainer API では、プロセスごとに 1 つのアクティブな EJB コンテナーしか許可されません。結果をEJBContainer.createEJBContainer()フィールドに格納し、@Afterメソッドから閉じることをお勧めします。)

于 2012-07-14T14:18:48.603 に答える