1. サンプルDBを作成
2. DBをWAS v7のデータソースに登録
3. JPAプロジェクトを作成
4. EJBを作成(findメソッドのみ)
5. JSFを作成
(前回)
6. EJBに挿入メソッドを作成する
(今回はここまで)
7. JSFを作成(挿入)
8. EJBに更新メソッドを作成する
9. JSFを作成(更新)
6. EJB Session Beanに挿入メソッドを作成する
findメソッドの次にinsertMySampleメソッドを作成します。
最初に例外を追加します。想定していないデータが入力されたときにスローするためです。
MySampleEJBClientフォルダ(注意!EJBClientフォルダです) < ejbModule < test パッケージを右クリック < 新規作成 < クラス として「新規Javaクラス」ウィンドウを起動します。名前に「MySampleException」スーパークラスに「java.lang.Exception」を指定します。以上です。
MySampleEJBプロジェクト < MySampleEJB < セッションBean < MySampleSession.java を開きます。
以下のメソッドを追加します。
public void addMySample(int myid, String value) throws MySampleException {
if (value.length() < 1) {
throw new MySampleException();
}
try {
MySample ms = new MySample();
ms.setMyid(myid);
ms.setMyFlag(value);
em.persist(ms);
em.flush(); // これがないと例外がキャッチできません。重要!
} catch(EntityExistsException e3) {
throw new MySampleException();
}
}
em.flush()が重要です。これをしないとアプリケーションから到達できないクラスで例外が発生するため、ハンドリングができなくなります。
次にメソッドのプロモートを忘れずに実行します。(アウトライン ビューでaddMySampleメソッドを右クリック、Java EE < メソッドのプロモート)
WAS v7テスト環境を起動します。
サーバーを右クリックしてUniversal Test Clientを起動、ログインします。
1.JNDI エクスプローラーリンクをクリック
2.右ペインに表示される[ローカル EJB Bean]フォルダを展開
3.test.MySampleSessionLocalリンクをクリック
4.左ペインに表示されるMySampleSessionLocalの'+'を展開
5.void addMySample(int, String) をクリック
6.int と String(1文字のみ) に適宜値を入れて起動
「メソッドが正常終了しました。」と表示されれば成功です。テーブルの中を見るとデータが追加されていることが確認できます。
6のステップで二文字以上を入力し、例外のロジックを確認します。MySampleExceptionが発生すれば成功です。
.
0 件のコメント:
コメントを投稿