金魚本(Beginning Java EE 6 GlassFish 3で始めるエンタープライズJava)の6章のサンプルコード。
IntelliJを使ったことが原因なのかよくわからないけど、書籍通りではEJBの自動テストが全く動かせなかったので、本のコードと変えた部分をまとめてみました。
※面倒だったので、EJBのメソッドやEntityの属性は一部省略しています。また、JPAプロバイダは、Hibernateを使っているので書籍の内容とはちょと差があります。
書籍の内容
テストコードで、EJBContainerを生成するときに引数なしのcreateEJBContainerを使用している。
これだと、テストの実行が遅すぎて終わるの待てないレベルだった。エラー解析と修正するのが嫌になるレベルの遅さだったので、頑張ってエラー修正したら動いたのかもしれないが・・・
@BeforeClass public static void initContainer() { ec = EJBContainer.createEJBContainer(); ctx = ec.getContext(); }
変更後のコード
コンパイルされたクラスファイルが出力されるディレクトリと、テスト用のMETA-INF/persistence.xmlが配置されているディレクトリをEJBContainer.MODULESプロパティに設定して、そのプロパティを引数にEJBContainerを生成しています。
この設定をしてあげると、EJBの検索範囲が限定されるからテスト実行が早くなると思ってる。(ちょっと理解不足な気はしてる)
@BeforeClass public static void initContainer() { Map<String, Object> props = new HashMap<String, Object>(); props.put(EJBContainer.MODULES, new File[]{ new File("out/production/chapter6/"), new File("src/test/resources/"), }); ec = EJBContainer.createEJBContainer(props); ctx = ec.getContext(); }
サンプルプロジェクトは、こちらから参照できます→siosio/chapter6 · GitHub
Beginning Java EE 6 GlassFish 3で始めるエンタープライズJava (Programmer’s SELECTION)
- 作者: Antonio Goncalves,日本オラクル株式会社,株式会社プロシステムエルオーシー
- 出版社/メーカー: 翔泳社
- 発売日: 2012/03/09
- メディア: 大型本
- 購入: 4人 クリック: 134回
- この商品を含むブログ (16件) を見る