< 前へ | 次へ >

演習 1.4: アプリケーションをテストするための Web プロジェクトの作成

演習 1.4 では、アプリケーションのテスト用 Web プロジェクトの作成について取り上げます。

始める前に、演習 1.3 を完了しなければなりません。
この演習では、以下を行います。
  1. EJBCounterDB を解凍します。
    1. EJB 3.1 カウンター・プロジェクトのパーシスタンスを提供する、必要なデータベースをダウンロードします。
    2. EJBCounterDB > EJBCounterDB.zip を展開し、EJBCounterDB.zip をダブルクリックします。
      • Windows アイコン: データベースを WebSphere® Application Server のインストール・フォルダーにある /derby/databases フォルダーに解凍します。
      • Linux アイコン: データベースを WebSphere Application Server のインストール・フォルダーにある /derby/databases フォルダーに解凍します。
        • 非ルート・ユーザーに、データベース・ディレクトリーへのアクセス権限を与えます。(最も簡単な方法は、 chmod ugo+x databases で全員にアクセス権限を与えることです。)
        • 非ルート・ユーザーに解凍されたデータベースへの書き込みアクセス権限を与えます。(例えば、該当のデータベース・ディレクトリーに対するアクセス権限がある場合には、非 root ユーザーとして解凍できます)。
      重要: WebSphere Application Server のタイプによっては、/derby/databases のデフォルトの場所が異なることがあります。デフォルトのインストール・ディレクトリーについて詳しくは、WebSphere Application Server の作成を参照してください。
  2. Java™ EE パースペクティブで、エンタープライズ・アプリケーション・プロジェクトを右クリックし、「新規」 > 「Web プロジェクト」を選択し、「Web プロジェクト」ウィザードを開きます。
  3. 「Web プロジェクト」ページの「プロジェクト名」フィールドに、EJBCounterWeb と入力します。
  4. 「プロジェクト・テンプレート」フィールドで、「シンプル」を選択します。
  5. 「プログラミング・モデル」フィールドで、「Java EE」を選択します。「次へ」をクリックします。
  6. 「デプロイメント」ページで、選択可能構成オプションのリストから、「デプロイメント」をクリックして、「デプロイメント構成」ページを開きます。
    • 「ターゲット・ランタイム」で、ドロップダウン・ボックス から、サポートされているバージョンの WebSphere Application Developer を選択します。
    • 「WebSphere バインディングおよび拡張機能のサポートの追加」が選択されている場合はクリアします。
    • 「Web モジュール・バージョン」フィールドで、「3.0」を選択します。
    • 「EAR メンバーシップ」フィールドで、「EAR にプロジェクトを追加」をクリックします。
    • 「EAR プロジェクト名」フィールドに「EJBCounterWebEAR」が表示されることを確認します。
  7. その他はデフォルトを受け入れて、「終了」をクリックします。 「関連付けられたパースペクティブを開きますか?」と表示される場合には、「いいえ」をクリックします。
  8. EJBCounterWeb プロジェクトを右クリックして、「新規」 > 「Web ページ」を選択します。
  9. 「新規 Web ページ」「ファイル名」フィールドに、EJBCount.jsp と入力します。選択されているテンプレートが JSP であることを確認し、「終了」をクリックします。
  10. Web ページ・エディターの「ソース」ビューで、既存のコードすべてを次のコードで置き換え、CTRL+S を押して保存します。
    <%@page session="false"%>
    <HTML>
    <HEAD>
    <TITLE>IBM WebSphere EJB3 and JPA1 Counter Sample</TITLE>
    <BODY bgcolor="cornsilk">
    <H1>EJB 3.0 and JPA 1.0 Counter Sample</H1>
    <P>
    <B>
    This application communicates with the WebSphere Application Server using http requests to increment a stateless EJB 3.0 counter bean which is using a JPA 1.0 entity (ie. keeps a persistent counter in a Derby database table).
    </B>
    <FORM METHOD=POST ACTION="counter">
    <BR/>
    <%
        response.setHeader("Pragma", "No-cache");
        response.setHeader("Cache-Control", "no-cache");
        response.setDateHeader("Expires",0);
        String msg = (String) request.getAttribute("msg");
        if (msg == null) msg = "";
    %>
    <B>Click on the Increment button to increment the count</B>
    <BR/><BR/>
    <INPUT TYPE=SUBMIT VALUE="Increment">
    </FORM>
    <H3><%=msg%></H3>
    </BODY>
    </HTML>
  11. EJBCounterWeb プロジェクトを右クリックし、 「新規」 > 「サーブレット」を選択します。
  12. 「新規サーブレット」ページの「Java パッケージ」フィールドに「com.ibm.example.websphere.ejb3sample.counter」と入力します。
  13. 「クラス名」フィールドに EJBCount と入力してから、「次へ」をクリックします。
  14. 「名前」フィールドに、EJB Count Servlet と入力します。「URL マッピング」フィールドで、既存のマッピングを編集するために、 /EJB Count Servlet を強調表示してから「編集」をクリックします。 パターンを /counter に置換して、「終了」をクリックします。
    サーブレットのデプロイメント記述子の特定情報の入力。
  15. EJBCounterWeb プロジェクトを右クリックして、 「プロパティー」を選択します。
  16. 「デプロイメント・アセンブリー」「マニフェスト項目」の順に選択してから、「追加」をクリックします。
  17. EJBCounterSample.jar を選択して、「終了」「OK」の順にクリックします。 EJBCounterSample.jar が表示されない場合、 「使用可能なマニフェスト項目の構成」 リンクを クリックし、「EAR モジュール・アセンブリー」ウィンドウの「ソース」列から EJBCounterSample を選択 して「適用」をクリックし、「OK」をクリックします。最後に、「マニフェスト項目の 追加」ウィンドウで「終了」をクリックし、 「プロパティー」ウィンドウで「OK」をクリックします。
    モジュールの依存関係の追加
  18. 「EJBCounterWeb」 > 「Java リソース」 > 「src」 > 「com.ibm.example.websphere.ejb3sample.counter」を展開し、EBJCount.java ファイルをダブルクリックします。 Java エディターで開きます。
  19. 既存のコードを次のコードで置き換え、CTRL+S を押して保存します。
    package com.ibm.example.websphere.ejb3sample.counter;
    
    // This program may be used, executed, copied, modified and distributed
    // without royalty for the purpose of developing, using, marketing, or distributing.
    
    import java.io.IOException;
    
    import javax.ejb.EJB;
    import javax.servlet.RequestDispatcher;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    /**
     * This servlet demonstrates an EJB3 counter bean with JPA.
     */
    
    public class EJBCount extends HttpServlet {
    
        private static final long serialVersionUID = -5983708570653958619L;
        
        // Use injection to get the ejb
        @EJB private LocalCounter statelessCounter;
        
        public void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {
    		String msg = null;
    		int ejbCount = 0;
    		
    		try {
    			ejbCount = statelessCounter.getTheValue();
    		} 
    		catch (RuntimeException e) {
    			msg = "Error - getTheValue() method on EJB failed!";
            	e.printStackTrace();
    		}
    		msg = "EJB Count value for Stateless Bean with JPA: " + ejbCount;
    		
    		// 属性を設定し、JSP をディスパッチします。
            req.setAttribute("msg", msg);
            RequestDispatcher rd = getServletContext().getRequestDispatcher("/EJBCount.jsp");
            rd.forward(req, res);
    	}
        
        public void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {
    		String msg = null;
    		int ejbCount = 0;
    		
    		try {
    			ejbCount = statelessCounter.increment();
    		} 
    		catch (RuntimeException e) {
    			msg = "Error - increment() method on EJB failed!";
            	e.printStackTrace();
    		}
    		msg = "EJB Count value for Stateless Bean with JPA: " + ejbCount;
    		
    		// 属性を設定し、JSP をディスパッチします。
            req.setAttribute("msg", msg);
            RequestDispatcher rd = getServletContext().getRequestDispatcher("/EJBCount.jsp");
            rd.forward(req, res);
    	}
        
    
    }
  20. 「エンタープライズ・エクスプローラー」ビューで、「EJBCounterWeb」 > 「Java リソース」 > 「src」 > 「com.ibm.example.websphere.ejb3sample.counter」と展開し、EJBCount.java ファイルを右クリックして「実行」 > 「サーバーで実行」を選択し、「終了」をクリックします。
  21. Web ブラウザーにカウンター・アプリケーションが開きます。
    EBJ
3.0 Web ページ
これで、EJB 3.0 カウンター・チュートリアルは完了です。
< 前へ | 次へ >
トピックのタイプを示すアイコン チュートリアルの演習のトピック
インフォメーション・センターのご利用条件 | フィードバック

タイム・スタンプ・アイコン 最終更新: May 29, 2014 10:20

ファイル名: exer14ejb3.html