NetBeans E コマースのチュートリアル - 開発環境の設定
以下の手順では、開発環境の設定方法について説明します。このプロセスでは、IDE のいくつかの主ウィンドウについて学習し、IDE が Ant 構築スクリプトを使用してプロジェクトの一般的なアクションをどのように実行するかを理解します。このチュートリアルユニットを終了するまでには、Web アプリケーションプロジェクトの作成を完了し、プロジェクトを構築して開発サーバーに配備し、IDE から実行できることを確認していることでしょう。
また、IDE を MySQL データベースサーバーに接続し、データベースインスタンスを作成し、IDE の「サービス」ウィンドウからデータベースインスタンスに接続する方法を学習します。このユニットでは、チュートリアル全体で使用する affablebean という名前の新しいデータベースを作成します。
このチュートリアルで構築するアプリケーションのライブデモを、「NetBeans E コマースのチュートリアルのデモアプリケーション 」で確認できます。
注:
NetBeans IDE が正常に動作するには、JDK (Java Development Kit) が必要です。上記に一覧表示されているいずれのリソースもインストールされていない場合は、最初に JDK をダウンロードしてインストールするようにしてください。
NetBeans IDE の Java バンドル版には、このチュートリアルで構築するアプリケーションに必要な Java Web および EE テクノロジが含まれています。
NetBeans IDE の Java バンドル版には、このチュートリアルに必要な GlassFish サーバーも含まれています。GlassFish サーバーを別個にダウンロードする こともできますが、NetBeans ダウンロードに付属するバージョンを使用すると、IDE に自動的に登録されるので便利です。
Web プロジェクトの作成
NetBeans IDE を起動します。はじめて IDE を実行している場合は、IDE のスタートページが表示されます。
「新規プロジェクト」( ) ボタンをクリックして (Ctrl-Shift-N、Mac の場合は ⌘-Shift-N)、新しい Java Web プロジェクトを作成します。手順をガイドする「新規プロジェクト」ウィザードが開きます。「カテゴリ」から「Java Web」を選択し、次に「プロジェクト」から「Web アプリケーション」を選択します。
「次へ」をクリックします。
ステップ 2 の「名前と場所」で、プロジェクトに「AffableBean」という名前を付けます。このステップでは、プロジェクトが存在するコンピュータ上の場所を指定することもできます。デフォルトでは、IDE はホームディレクトリ内に NetBeansProjects フォルダを作成します。場所を変更する場合は、「プロジェクトの場所」テキストフィールドにパスを入力します。
「次へ」をクリックします。
ステップ 3 の「サーバーと設定」で、開発中にプロジェクトを配備するサーバーとして GlassFish v3 を指定します。NetBeans インストールには GlassFish v3 が含まれているので、「サーバー」ドロップダウンフィールドには「GlassFish v3」が表示されています。
IDE にまだ登録していないサーバーを配備する場合は、「追加」ボタンをクリックして「サーバーインスタンスを追加」ウィザードを実行します。IDE に登録されているすべてのサーバーは、「サーバー」ウィンドウ (メインメニューから「ツール」>「サーバー」を選択) から見ることができます。
「Java EE バージョン」で、「Java EE 6 Web」を選択します。
作成するアプリケーションでは、Java EE 6 のさまざまな機能、つまり、サーブレット注釈 (サーブレット 3.0 仕様 の新機能) とサーブレットコンテナ内で直接使用される EJB (EJB 3.1 仕様の新機能 ) を使用します。サーブレット 3.0 と EJB 3.1 はどちらも Java EE 6 プラットフォームの一部であるため、このチュートリアルに沿って作業するには、GlassFish v3 などの EE 6 準拠サーバーが必要です。詳細は、「仕様および実装について 」を参照してください。
「コンテキストと依存関係の注入を有効にする」オプションが選択されていないことを確認します。このオプションは、JSR-299 で規定されている CDI (Contexts and Dependency Injection) テクノロジに固有のもので、このチュートリアルでは使用しません。詳細は、「Contexts and Dependency Injection および JSF 2.0 入門 」を参照してください。
デフォルトでは、アプリケーションのコンテキストパスはプロジェクトの名前です。これは、アプリケーションがサーバーに配備されたあとでアクセスできるパスです。たとえば、GlassFish はデフォルトのポート番号として 8080 を使用するため、開発中はブラウザウィンドウで以下からプロジェクトにアクセスできます。
http://localhost:8080/AffableBean/
「完了」をクリックします。IDE は、J2EE Blueprints の Web アプリケーション構造の規約 に準拠した AffableBean という名前のスケルトンプロジェクトを生成します。IDE に、デフォルトレイアウトでさまざまなウィンドウが表示されます。
IDE のデフォルトレイアウトを確認します。ここでは、表示されるウィンドウとタブについて簡単に説明します。
エディタ: エディタ (Ctrl-0、Mac の場合は ⌘-0) は、IDE の中心的なコンポーネントであり、作業時間のほとんどを費やす可能性がある場所です。エディタは、使用している言語に自動的に適応し、コーディングで使用するテクノロジに固有のドキュメントサポート、コード補完、ヒント、およびエラーメッセージを提供します。
「プロジェクト」ウィンドウ: 「プロジェクト」ウィンドウ (Ctrl-1、Mac の場合は ⌘-1) は、プロジェクトソースへのエントリポイントです。重要なプロジェクト内容の論理ビュー が表示され、ファイルがその機能 (たとえば、設定ファイル) に基づいてグループ分けされています。「プロジェクト」ウィンドウ内でファイルノードを右クリックすると、開発タスクに共通するアクション (つまり、「構築」、「生成物を削除」、「配備」、「実行」) を呼び出すことができます。
「ファイル」ウィンドウ: 「ファイル」ウィンドウ (Ctrl-2、Mac の場合は ⌘-2) には、プロジェクトがディレクトリベースで表示されます。つまり、コンピュータのファイルシステムに存在するプロジェクトの構造を表示できます。このウィンドウから、Ant 構築スクリプト (build.xml) や IDE でプロジェクトを処理するのに必要な (nbproject フォルダに格納された) ファイルを含む、プロジェクトに関係するすべてのファイルを表示できます。プロジェクトを実行した場合は、コンパイルされた Java ファイルの場所 (build フォルダ) を表示できます。(「プロジェクト」ウィンドウのプロジェクトノードの右クリックメニューから「構築」または「生成物を削除して構築」を選択して) プロジェクトを明示的に構築した場合は、(dist フォルダに格納された) プロジェクトの配布可能 WAR ファイルを表示できます。
ナビゲータ: ナビゲータ (Ctrl-7、Mac の場合は ⌘-7) には、エディタで開いたファイルの構造の概要が表示されます。たとえば、HTML Web ページが表示されている場合は、ナビゲータに、そのページの文書オブジェクトモデル (DOM) に対応する方法でタグノードが一覧表示されます。エディタで Java クラスを開いている場合は、ナビゲータに、そのクラスに関係するプロパティーとメソッドが表示されます。ナビゲータを使用して、エディタ内の項目に移動できます。たとえば、ナビゲータ内のノードをダブルクリックすると、カーソルがエディタ内のその要素に直接移動します。
「タスク」ウィンドウ: 「タスク」ウィンドウ (Ctrl-6、Mac の場合は ⌘-6) では、コードが自動的にスキャンされ、コンパイルエラー、簡易修正、およびスタイルの警告を含む行が一覧表示されます。Java クラスの場合は、「TODO」や「FIXME」などの語句を含むコメント行が一覧表示されます。
「サービス」ウィンドウ: 「サービス」ウィンドウ (Ctrl-5、Mac の場合は ⌘-5) は、サーバー、Web サービス、データベースとデータベース接続、およびチーム開発に関連するその他のサービスを管理するためのインタフェースを提供します。
「出力」ウィンドウ: (表示されていません) 「出力」ウィンドウ (Ctrl-4、Mac の場合は ⌘-4) は、一般にサーバーなどの外部リソースからのサービスを起動するアクションを呼び出したときに自動的に表示され、サーバーのログファイルをミラー化できます。また、Web プロジェクトでは、Ant タスクに関連する情報 (たとえば、Build (構築)、Clean and Build (生成物を削除して構築)、Clean (生成物を削除) など) も表示できます。
パレット: (表示されていません) パレット (Ctrl-Shift-8、Mac の場合は ⌘-Shift-8) は、エディタにドラッグアンドドロップできる各種の便利なコードスニペットを提供します。パレットに含まれるスニペットの多くは、あとで説明するように、エディタ内でコード補完を呼び出すことによってアクセスできます。
注: IDE のウィンドウは、すべて「ウィンドウ」メニュー項目からアクセスできます。
Web プロジェクトの実行
新しい AffableBean プロジェクトを実行します。「プロジェクト」ウィンドウで、プロジェクトノードを右クリックして「実行」を選択するか、または IDE のメインツールバーで「プロジェクトを実行」( ) ボタンをクリック (F6、Mac の場合は fn-F6) することで、これを実行できます。
ブラウザウィンドウが開き、プロジェクトの開始画面が表示されます。
では、何か起きたのでしょうか。Web プロジェクトを実行すると、IDE はプロジェクトの構築スクリプト内の run Ant ターゲットを呼び出します。プロジェクトの build.xml ファイルをエディタで開いて調べることができます。
「ファイル」ウィンドウに切り替えて (Ctrl-2、Mac の場合は ⌘-2)、プロジェクトノードを展開し、プロジェクトに含まれる build.xml ファイルをダブルクリックします。build.xml ファイルがエディタで開くと、スクリプトで使用できるすべての Ant ターゲットがナビゲータに一覧表示されます。
通常の Ant ターゲットは汎用のターゲット ( ) アイコンを使用して表示されます。強調された Ant ターゲット ( ) アイコンは、単にそのターゲットに (上の画像に示すように) ツールチップとして表示される説明が含まれることを示しています。詳細は、「Java プロジェクトの作成、インポート、および構成 」を参照してください。
run ターゲットをダブルクリックします。build-impl.xml ファイルがエディタで開き、ターゲットの定義が表示されます。
<target depends="run-deploy,run-display-browser" description="Deploy to server and show in browser." name="run"/>
build.xml のターゲットをクリックしたときに、なぜ build-impl.xml ファイルが開いたのでしょうか。(Ctrl-Tab を押して) 再度 build.xml に切り替えてファイルの内容を調べると、以下の行が表示されます。
<import file="nbproject/build-impl.xml"/>
プロジェクトの構築スクリプトは、nbproject/build-impl.xml から NetBeans で定義されたターゲットがインポートされる、基本的に空のファイルです。
プロジェクトの標準の build.xml スクリプトは、新しいターゲットを追加するか、NetBeans で定義された既存のターゲットを上書きすることによって、自由に編集できます。しかし、build-impl.xml ファイルは編集しないでください。
run ターゲットの定義を見ると、以下のターゲットに依存していることがわかります。
run-deploy
run-display-browser
build-impl.xml ファイルのほかの部分を調べると、これらのターゲットが互いにもう一方のターゲットに依存していることがわかります。しかし、基本的には run ターゲットが呼び出されたときに以下のアクションが行われます。
プロジェクトがコンパイルされます。
WAR ファイルが作成されます。
サーバーが起動します (まだ実行されていない場合)。
WAR ファイルが指定されたサーバーに配備されます。
ブラウザが開き、サーバーの URL とアプリケーションのコンテキストパスが表示されます。
Ant の使用方法については、Ant 公式マニュアル を参照してください。
プロジェクトの配布可能 WAR ファイルを生成するには、IDE の「実行」メニューから「プロジェクトの生成物を削除して構築」(または「主プロジェクトの生成物を削除して構築」) を選択します。
「ファイル」ウィンドウ (Ctrl-2、Mac の場合は ⌘-2) でプロジェクトノードを展開します。dist フォルダにプロジェクトの WAR ファイルが格納されています。build フォルダにコンパイルされたプロジェクトが格納されています。
注: (「プロジェクト」ウィンドウでプロジェクトノードの右クリックメニューから「生成物を削除」を選択して) プロジェクトの生成物を削除 すると、これらのフォルダが両方とも削除されます。
「サービス」ウィンドウに切り替えて (Ctrl-5、Mac の場合は ⌘-5)、「サーバー」>「GlassFish v3」>「アプリケーション」ノードを展開します。
注: 「GlassFish v3」は NetBeans 6.8 ユーザー用のデフォルトのサーバー名です。
GlassFish サーバーノード ( ) 上の緑色の矢印アイコンは、サーバーが実行されていることを示します。「アプリケーション」フォルダには、配備されたすべてのアプリケーションが一覧表示されます。AffableBean アプリケーションが正常に配備されていることがわかります。
この段階で、IDE での Java Web プロジェクトの作成を完了し、それを問題なく構築して開発サーバーに配備し、実行時にブラウザで開くことができることを確認しました。
データベースサーバーとのやり取り
MySQL データベースサーバーをダウンロードしてインストールすると、IDE から接続できるようになります。デフォルトのインストールでは、ユーザーアカウントとして「root」、パスワードとして「」(空文字列) を使用してデータベースサーバーに接続します。ただし、GlassFish では接続の問題があるため、パスワードが空でないアカウントを使用することをお勧めします。[1] 以下の手順では、MySQL のコマンド行からデータベースサーバーを実行し、root アカウントのパスワードを「nbuser」に変更する方法を示します。この「root」と「nbuser」の組み合わせは、NetBeans E コマースチュートリアル全体で使用します。データベースサーバーを実行して適切に設定したら、IDE にそれを登録し、データベースインスタンスを作成します。
注: 以下のコマンド行の手順は、PATH 環境変数に mysql コマンドを追加したことが前提になっています。(していない場合は、コマンド行に mysql コマンドを入力したときに「mysql: command not found」というエラーが表示されます。)
PATH に mysql を追加していない場合は、代わりに MySQL インストールの bin ディレクトリへのフルパスを入力してコマンドを呼び出すことができます。たとえば、mysql コマンドがコンピュータの /usr/local/mysql/bin にある場合は、以下を入力します。
shell> /usr/local/mysql/bin/ mysql -u root
詳細は、MySQL 公式リファレンスマニュアルの以下を参照してください。
次の手順を実行します。
MySQL が実行中かどうかの確認
IDE から MySQL サーバーに接続する前に、サーバーが実行されていることを確認する必要があります。これを行う 1 つの方法は、mysqladmin クライアントの ping コマンドを使用することです。
コマンド行プロンプトを開き、以下を入力します。
shell> mysqladmin ping
サーバーが実行されている場合は、以下のような出力が表示されます。
mysqld is alive
サーバーが実行されていない場合は、以下のような出力が表示されます。
mysqladmin: connect to server at 'localhost' failed
error: 'Can't connect to local MySQL server through socket '/tmp/mysql.sock'
Check that mysqld is running and that the socket: '/tmp/mysql.sock' exists!
データベースサーバーの起動
MySQL サーバーが実行されていない場合は、コマンド行から起動できます。プラットフォーム間共通の簡単な概要については、「2.13.1.2. MySQL の自動的な開始と停止 」を参照してください。以下の手順は、オペレーティングシステムに応じた一般的なガイダンスを示しています。
UNIX 系システム:
UNIX 系システムでは、mysqld_safe を呼び出して MySQL サーバーを起動することをお勧めします。
コマンド行プロンプトを開き、mysqld_safe コマンドを実行します。
shell> sudo ./mysqld_safe
次のような出力が表示されます。
090906 02:14:37 mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/data
Windows:
MySQL の Windows インストーラを使用すると、データベースサーバーを Windows サービスとしてインストールすることで、MySQL をオペレーティングシステムと一緒に自動的に起動および停止できます。データベースを手動で起動する必要がある場合は、インストールディレクトリの bin フォルダにある mysqld コマンドを実行します。
Windows のコンソールウィンドウを開きます (「スタート」メニューから「ファイルを指定して実行」を選択し、テキストフィールドに「cmd」と入力します)。コマンド行ウィンドウが表示されます。
このコマンドを入力します (示されているパスは、version 5.1 をデフォルトのインストール場所にインストールした場合のものです)。
C:\> "C:\Program Files\MySQL\MySQL Server 5.1\bin\mysqld"
詳細は、MySQL 公式リファレンスマニュアルの「2.4.5.5. Windows コマンド行からの MySQL の開始 」を参照してください。
パスワードの変更
root アカウントのパスワードを「nbuser」に設定するには、以下の手順を実行します。
コマンド行プロンプトを開き、以下を入力します。
shell> mysql -u root
mysql> UPDATE mysql.user SET Password = PASSWORD('nbuser') WHERE User = 'root';
mysql> FLUSH PRIVILEGES;
詳細は、MySQL 公式リファレンスマニュアルの「2.13.2. 初期 MySQL アカウントの保護 」を参照してください。
IDE でのサーバーの登録
IDE の「サービス」ウィンドウでは、サーバーへの接続、サーバーの起動と停止、データベースインスタンスとそれらに含まれるデータの表示、およびサーバーに対する外部管理ツールの実行ができます。
「サービス」ウィンドウで、「データベース」ノードを右クリックして「MySQL サーバーを登録」を選択します。
「MySQL サーバープロパティー」ダイアログの「基本プロパティー」タブに、MySQL サーバーインストールのデフォルト設定を表示できます。これらを次に示します。
サーバーホスト名: localhost
サーバーポート番号: 3306
管理ユーザー名: root
管理パスワード: nbuser
「パスワードを保存」オプションを選択します。
「了解」をクリックします。IDE が MySQL データベースサーバーに接続し、サーバーによって管理されているデータベースインスタンスが一覧表示されます。また、「ドライバ」ノードを展開すると、IDE に MySQL 用の Connector/J JDBC ドライバ が含まれていることがわかります。
アプリケーションサーバー (つまり、GlassFish) には、Java コードと MySQL データベース間の通信を可能にするドライバが必要です。IDE にはすでに Connector/J ドライバが含まれているので、ダウンロードする必要はありません。また、あとで説明するように、サーバー設定で JDBC ドライバを配備するように指定できるので、ドライバがサーバー上にない場合は自動的に GlassFish に配備されます。
以下の手順 4 - 7 は省略可能です。MySQL サーバーを起動および停止したり、サーバーに対して外部管理ツールを実行したりするように IDE を設定できます。
「MySQL サーバー」ノードを右クリックして「プロパティー」を選択します。「MySQL サーバープロパティー」ダイアログで「管理プロパティー」を選択します。
「管理ツールのパスまたは URL」フィールドに、コンピュータ上にあるデータベース管理ツール (MySQL Administrator など) の実行可能ファイルへのパスを入力します。MySQL Administrator は、MySQL GUI Tools バンドルに含まれています。
「起動コマンドへのパス」フィールドに、オペレーティングシステムに応じた MySQL の起動コマンド (つまり、mysqld または mysqld_safe) へのパスを入力します。(上記の「データベースサーバーの起動 」を参照してください。)
注: Unix 系システムでは、起動コマンドを呼び出すことができるのは root または管理者権限を持つユーザーだけである場合があります。これを解決するため、(Linux および Solaris の場合は GKSu 、Mac の場合は osascript を使用して) この作業を行うスクリプトを作成できます。詳細は、このブログ投稿 を参照してください。
「停止コマンドへのパス」フィールドに、MySQL の停止コマンド (つまり、mysqladmin shutdown) へのパスを入力します。このコマンドはシャットダウン権限を持つユーザーアカウントを必要とするので、「引数」フィールドにユーザー名/パスワード資格情報を入力する必要があります。例:
引数: -u root -pnbuser shutdown
「詳細プロパティー」タブの下に一覧表示されたフィールドを設定すると、以下ができるようになります。
MySQL サーバーの起動: MySQL サーバーノードを右クリックして「起動」を選択します。
MySQL サーバーの停止: MySQL サーバーノードを右クリックして「停止」を選択します。
外部管理ツールの実行: MySQL サーバーノードを右クリックして「管理ツールを実行」を選択します。
データベースインスタンスの作成
このチュートリアルで使用するデータベースインスタンスを作成します。これを行うには、MySQL サーバーノードを右クリックして「データベースを作成」を選択します。
表示されるダイアログで、「affablebean」と入力します。「フルアクセスを許可」オプションを選択し、ドロップダウンフィールドから「
root
@
localhost
」を選択します。これにより、localhost ホスト上の root アカウントがデータベースにアクセスできるようになります。あとでサーバー上に接続プールを作成するときは、サーバーにデータベースへのアクセスを許可するため、ユーザー名/パスワード資格情報として root アカウントと nbuser パスワードを設定する必要があります。
「了解」をクリックします。これを行うと、affablebean という名前のデータベースが作成され、データベースへの接続が自動的に確立されます。接続は、「サービス」ウィンドウで接続ノード ( ) を使用して表示されます。
注: 接続ノードは「サービス」ウィンドウ内で維持されます。IDE を再起動すると、接続ノードに、接続が切れたことを示すギザギザの線 ( ) が表示されます。データベースに再接続するには、データベースサーバーが実行されていることを確認してから、そのノードを右クリックして「接続」を選択します。
affablebean データベースの接続ノードを展開します。接続にはデータベースのデフォルトスキーマ (affablebean) が含まれており、その中に表、ビュー、およびプロシージャのノードが含まれています。まだ何も作成していないので、現時点ではこれらは空です。
この段階で、IDE から MySQL サーバーへの接続が完了し、チュートリアル全体で使用する affablebean という名前の新しいデータベースが作成されました。また、IDE での Java Web プロジェクトの作成を完了し、それを問題なく構築して開発サーバーに配備し、実行時にブラウザで開くことができることを確認しました。これで、開発環境の準備が完了し、アプリケーションのデータモデルの設計を始めることができます。
関連項目
参考資料