Cosminexus V9 アプリケーションサーバ アプリケーション開発ガイド
ここでは,Developerが提供するサンプルプロジェクト(Bank)の概要を説明します。
Developerが提供しているサンプルプロジェクト(Bank)は,Webブラウザから入力されたユーザID(User ID)を持つユーザの資金を当座預金口座(Checking Account)から普通預金口座(Savings Account)へ移動させるプログラムです。表示された画面上でユーザIDと取引額(Transaction amount)を入力し,[Transfer]ボタンをクリックすると,指定したユーザの当座預金口座から指定した金額が普通預金口座に送金されます。資金はデータベースで管理され,資金移動時に当座預金口座テーブルと普通預金口座テーブルが更新されます。
このサンプルプロジェクト(Bank)の構成を次に示します。
図A-1 サンプルプロジェクト(Bank)の概要
このサンプルプロジェクト(Bank)では,アノテーションを使用してデータベースに接続します。
指定したユーザID,金額に対して処理を実行します。「Bank」で指定できるユーザIDとユーザごとの初期残高は次の表に示すとおりです。
表A-1 サンプルプロジェクト(Bank)の初期設定
| User ID | Checking Account※ | Savings Account※ |
|---|---|---|
| 001 | 10,000 | 500 |
| 002 | 20,000 | 1,000 |
| 003 | 30,000 | 1,500 |
サンプルプロジェクトのEJBでは,@Resourceアノテーションでリソースアダプタを取得して,データベースにアクセスします。@Resourceアノテーションの指定内容を次に示します。
@Resource(mappedName="DB_Connector_for_Cosminexus_Driver") private DataSource dataSource; |
また,サーブレット(Webコンテナ)では,@EJBアノテーションでEJBを取得して,EJBにアクセスします。@EJBアノテーションの指定内容を次に示します。
@EJB(name="BankEJB") private BankIF bank ; |
なお,@EJBアノテーションに指定している参照名「BankEJB」は,BankEJBのコードで次のように定義しています。
@Stateful(name = "BankEJB") |
このアノテーションは,EJBがStateful Session Beanであることを表します。
付録Aでは,次の環境を前提として,サンプルプロジェクト(Bank)の使用手順を説明します。
サンプルプロジェクト(Bank)では,次のプロジェクトを提供しています。
表A-2 サンプルプロジェクト(Bank)が提供するプロジェクト
| プロジェクト名 | 概要 |
|---|---|
| Bank | エンタープライズアプリケーションプロジェクトです。 |
| Bank_EJB | EJBプロジェクトです。サンプルプロジェクト(Bank)のモジュールプロジェクトに指定します。 |
| Bank_Web | 動的Webプロジェクトです。サンプルプロジェクト(Bank)のモジュールプロジェクトに指定します。 |
| BankDBBatch | シンプルプロジェクトです。サンプルプロジェクト(Bank)で使用するテーブルを作成するためのファイルが格納されています。 |
サンプルプロジェクト(Bank)が提供するプロジェクトの構成は,次のとおりです。
Developerは,サンプルプロジェクト(Bank)をzipフォーマットのアーカイブファイル「Bank.zip」として提供しています。Bank.zipは,次のディレクトリに格納されます。
<Developerのインストールディレクトリ>\ADP\samples |
Bank.zipを任意の場所に解凍すると,次のディレクトリ構成になります。
表A-3 サンプルプロジェクト(Bank)のディレクトリ構成
| ディレクトリー/ファイル | 説明 |
|---|---|
| Bank | エンタープライズアプリケーションプロジェクトのルート |
| ┣EarContent | コンテンツ・フォルダ |
| ┃┣META-INF | 管理情報を格納するディレクトリ |
| ┃┗application.xml ┃ |
DDファイル (J2EEアプリケーション(EAR)の配備記述子) |
| ┗.project | プロジェクト記述ファイル (Eclipseのプロジェクトの情報を保存) |
| Bank_EJB | EJBプロジェクトのルート |
| ┣ejbModule | ソースファイル格納用ディレクトリ |
| ┃┣bank | パッケージ・フォルダ |
| ┃┃┗ejb | パッケージ・フォルダ |
| ┃┃ ┣BankEJB.java ┃┃ ┃ |
Javaソースファイル (EJBプロジェクト用のソースコード) |
| ┃┃ ┣BankIF.java ┃┃ ┃ |
Javaソースファイル (EJBプロジェクト用のソースコード) |
| ┃┃ ┗BankItem.java ┃┃ |
Javaソースファイル (EJBプロジェクト用のソースコード) |
| ┃┗META-INF | 管理情報を格納するディレクトリ |
| ┃ ┗MANIFEST.MF | マニフェストファイル |
| ┣.classpath ┃ |
クラスパスファイル (プロジェクトのクラスパスを保存) |
| ┗.project | プロジェクト記述ファイル (Eclipseのプロジェクトの情報を保存) |
| Bank_Web | Webプロジェクトのルート |
| ┣src | ソースファイル格納用のディレクトリ |
| ┃┗bank | パッケージ・フォルダ |
| ┃ ┗servlet | パッケージ・フォルダ |
| ┃ ┣BankServlet.java | Javaソースファイル |
| ┃ ┗BankServletException.java | Javaソースファイル |
| ┣WebContent | Webルートフォルダ |
| ┃┣META-INF | 管理情報を格納するディレクトリ |
| ┃┃┗MANIFEST.MF | マニフェストファイル |
| ┃┣WEB-INF ┃┃┃ |
Webクライアントから直接アクセスできないファイルを格納するディレクトリ |
| ┃┃┣lib | ライブラリ格納用ディレクトリ |
| ┃┃┗web.xml ┃┃ |
DDファイル (Webアプリケーションの配備記述子) |
| ┃┣bank.jsp ┃┃ |
JSPファイル(IDと数値を入力して,Servletに送信する) |
| ┃┣error_500.jsp | JSPファイル(エラーを表示する) |
| ┃┗index.jsp ┃ |
JSPファイル(サンプルプロジェクトの入り口となり,Servletを呼び出す) |
| ┣.classpath ┃ |
クラスパスファイル (プロジェクトのクラスパスを保存) |
| ┗.project | プロジェクト記述ファイル (Eclipseのプロジェクトの情報を保存) |
| BankDBBatch ┃ |
サンプルプロジェクトのルート |
| ┣bank_tblcreate.bat ┃ |
バッチファイル (テーブル作成バッチファイル) |
| ┣Insert_BankTable_ ┃ Control_checking |
コントロールファイル (checkingテーブルのコントロールファイル) |
| ┣Insert_BankTable_ ┃ Control_saving |
コントロールファイル (savingテーブルのコントロールファイル) |
| ┣Insert_BankTable_ ┃ Input_checking |
データファイル (checkingテーブルのデータファイル) |
| ┣Insert_BankTable_ ┃ Input_saving |
データファイル (savingテーブルのデータファイル) |
| ┣tablecreate ┃ |
SQLファイル (テーブルのスキーマ定義SQLファイル) |
| ┗.project | プロジェクト記述ファイル (Eclipseのプロジェクトの情報を保存) |
All Rights Reserved. Copyright (C) 2012, 2015, Hitachi, Ltd.