Oracle® Fusion Middleware Oracle JDeveloperユーザーズ・ガイド

11g リリース2(11.1.2.4.0)

B66717-04(原本部品番号:E17455-05)

目次

タイトルおよび著作権情報

はじめに

- 対象読者

- ドキュメントのアクセシビリティについて

- 関連ドキュメント

- 表記規則

リリース11.1.2.4.0のこのガイドでの新しい情報

第I部 Oracle JDeveloperの開始

1 Oracle JDeveloperの概要

- 1.1 Oracle JDeveloperについて

- 1.2 Oracle JDeveloperの情報リソース

- 1.3 Oracle JDeveloper 11gへの移行

2 Oracle JDeveloperのアクセシビリティ情報

- 2.1 Oracle JDeveloperのアクセシビリティについて

- 2.2 Oracle JDeveloperでのスクリーン・リーダーおよびJava Access Bridgeの使用

- 2.3 アクセシビリティをサポートするOracle JDeveloperの機能

- 2.3.1 キーボード・アクセス

- 2.3.2 スクリーン・リーダーによる読上げ

- 2.3.3 フォントおよび色の選択の柔軟性

- 2.3.4 音声のみに依存しないフィードバック

- 2.3.5 カーソルの点滅やアニメーションへの非依存

- 2.3.6 スクリーンの拡大機能

- 2.3.7 ファイルのエディタ・ビューまたはタブ・ビューの変更方法

- 2.3.8 複数行の編集フィールドでテキストを読み上げる方法

- 2.3.9 ソース・エディタで行番号を読み上げる方法

- 2.3.10 「ログ」ウィンドウで例外スタックHTMLリンクおよび生成済Javadocリンクにアクセスする方法

- 2.4 Oracle JDeveloperのカスタマイズに関する推奨事項

- 2.4.1 アクセラレータ・キーのカスタマイズ方法

- 2.4.2 競合するアクセラレータ・キーをOracle JDeveloperに指定する方法

- 2.4.3 IDEのルック・アンド・フィールの変更方法

- 2.4.4 エディタでフォントをカスタマイズする方法

- 2.4.5 構文ハイライトのカスタマイズ方法

- 2.4.6 エディタで行番号を表示する方法

- 2.4.7 コード・インサイトの時間設定の変更方法

- 2.4.8 デバッガで列を指定する方法

- 2.5 Oracle JDeveloperの高度なビジュアル機能

3 Oracle JDeveloperの使用

- 3.1 Oracle JDeveloperの使用について

- 3.2 JDeveloperロールの操作

- 3.2.1 JDeveloperロールの変更方法

- 3.3 JDeveloper機能の管理方法

- 3.4 IDEでのウィンドウの操作

- 3.4.1 ウィンドウの最大化の方法

- 3.4.2 IDEのドッキング可能ウィンドウの最小化およびリストア方法

- 3.4.3 IDEでのウィンドウのドッキング方法

- 3.4.4 IDEのドッキング可能ウィンドウについて

- 3.4.5 IDEのドッキング可能ウィンドウを閉じて再び開く方法

- 3.4.6 ウィンドウ・レイアウトを出荷時設定にリストアする方法

- 3.5 IDEのナビゲーション

- 3.5.1 IDEでのショートカット・キーの使用方法

- 3.5.2 JDeveloperでのキーボード・ナビゲーション

- 3.5.2.1 一般的なナビゲーション・キー

- 3.5.2.2 標準コンポーネントでのナビゲーション

- 3.5.2.3 複雑なコントロールのナビゲート

- 3.5.2.4 特定のコンポーネントでのナビゲーション

- 3.6 IDEのカスタマイズ

- 3.6.1 IDEのルック・アンド・フィールの変更方法

- 3.6.2 IDEの一般的な環境をカスタマイズする方法

- 3.6.3 IDEでのドッキング可能ウィンドウのカスタマイズ

- 3.6.4 IDEでの比較ウィンドウをカスタマイズする方法

- 3.6.5 コンポーネント・パレットをカスタマイズする方法

- 3.6.5.1 ページのパレットへの追加方法

- 3.6.5.2 JavaBeansコンポーネントのパレットへの追加方法

- 3.6.5.3 パレットからのページの削除方法

- 3.6.5.4 パレットからのコンポーネントの削除方法

- 3.6.6 JDeveloperでのロールの変更方法

- 3.6.7 ファイル・タイプとJDeveloperを関連付ける方法

- 3.7 リソース・パレットの操作

- 3.7.1 リソース・パレットを開く方法

- 3.7.2 IDE接続の使用方法

- 3.7.2.1 リソース・パレット接続ディスクリプタ・プロパティの場所

- 3.7.2.2 接続の有効範囲の定義

- 3.7.2.3 IDE接続の作成方法

- 3.7.2.4 IDE接続の編集方法

- 3.7.2.5 IDE接続のアプリケーションへの追加方法

- 3.7.3 リソース・パレットの検索方法

- 3.7.3.1 標準検索の実行

- 3.7.3.2 拡張検索の実行

- 3.7.4 リソース・パレット検索を再利用する方法

- 3.7.5 リソース・パレット・コンテンツをフィルタする方法

- 3.7.6 カタログおよび接続をインポートおよびエクスポートする方法

- 3.7.7 リソース・パレットをリフレッシュする方法

- 3.7.8 リソース・パレット・カタログの使用方法

- 3.7.8.1 カタログの作成方法

- 3.7.8.2 カタログの名前の変更方法

- 3.7.9 カタログ・フォルダの使用方法

- 3.7.9.1 フォルダの作成方法

- 3.7.9.2 動的フォルダの作成方法

- 3.7.9.3 カタログへのリソースの追加方法

- 3.8 ソース・ファイルの処理

- 3.8.1 ソース・エディタの使用

- 3.8.1.1 ポップアップ・メニューから使用可能な機能

- 3.8.2 ソース・エディタのプリファレンスの設定方法

- 3.8.3 ソース・エディタのコード・テンプレートをカスタマイズする方法

- 3.8.4 エディタ・ウィンドウでのソース・ファイルの管理方法

- 3.8.4.1 ファイルのビューの最大化

- 3.8.4.2 エディタ・ウィンドウで開いているファイル間の移動

- 3.8.4.3 現在開いているすべてのファイルのリスト表示方法

- 3.8.4.4 最近開いたファイルへアクセスする方法

- 3.8.4.5 1つのファイルを複数のエディタで開く方法

- 3.8.4.6 複数のファイルを一度に表示

- 3.8.4.7 エディタ・ウィンドウで簡単にファイルを閉じる方法

- 3.8.5 マウスオーバー・ポップアップの使用

- 3.8.6 ナビゲータでのソース・ノードの検索方法

- 3.8.7 ソース・ファイル内のブックマークの設定方法

- 3.8.8 ソース・ファイルの編集方法

- 3.8.8.1 ソース・エディタでソース・ファイルを開く方法

- 3.8.8.2 外部エディタでのソース・コードの編集方法

- 3.8.8.3 コンポーネント・パレットからソース・ファイルへのコードSnippetの挿入方法

- 3.8.8.4 ソース・ファイル内のマクロの記録および再生方法

- 3.8.8.5 タスクの作成方法

- 3.8.9 ソース・ファイルの比較方法

- 3.8.10 最後に保存したバージョンのファイルの回復方法

- 3.8.11 ソース・ファイルの検索方法

- 3.8.12 ソース・ファイルの印刷方法

- 3.8.13 リファレンス: 正規表現

- 3.9 拡張機能の使用

- 3.9.1 「更新の確認」を使用して拡張機能をインストールする方法

- 3.9.2 プロバイダのWebサイトからの拡張機能のインストール方法

- 3.9.3 OTNからの拡張機能の直接インストール方法

- 3.9.4 JDeveloperドロップイン・ディレクトリを使用した拡張機能のインストール方法

- 3.10 オンライン・ヘルプの使用

- 3.10.1 ヘルプ・センターの使用

- 3.10.2 オンライン・ヘルプを開く方法

- 3.10.3 ドキュメントの検索方法

- 3.10.4 「お気に入り」ページへのブックマークの追加方法

- 3.10.5 オンライン・ヘルプ表示をカスタマイズする方法

- 3.10.6 複数のヘルプ・トピックを開いて閉じる方法

- 3.10.7 ヘルプ・トピックの印刷方法

- 3.11 一般的な開発ツール

- 3.11.1 アプリケーション概要

- 3.11.1.1チェックリスト

- 3.11.1.2 「ファイル・サマリー」ページ

- 3.11.2 ファイル・リスト

- 3.11.2.1 「ファイル・リスト」タブのヘッダー

- 3.11.2.2 検索基準領域

- 3.11.2.3 検索結果の表

- 3.11.3 「比較」ウィンドウ

- 3.11.3.1 ツールバー

- 3.11.3.2 ソースおよびターゲット領域

- 3.11.4 アプリケーション・ナビゲータ

- 3.11.4.1 アプリケーション・ナビゲータのツールバー

- 3.11.4.2 アプリケーションの操作

- 3.11.4.3 プロジェクト・パネルの操作

- 3.11.4.4 「アプリケーション・リソース」パネルの操作

- 3.11.4.5 「データ・コントロール」パネルの操作

- 3.11.4.6 「最近開いたファイル」パネルの操作

- 3.11.5 アプリケーション・サーバー・ナビゲータ

- 3.11.6 「構造」ウィンドウ

- 3.11.6.1 「構造」ウィンドウ・ツールバー

- 3.11.6.2 「構造」ウィンドウのビュー

- 3.11.7 アプリケーション・ナビゲータ - 「データ・コントロール」パネル

- 3.11.8 「ログ」ウィンドウ

- 3.11.9 「ステータス」ウィンドウ

- 3.11.10 「タスク」ウィンドウ

- 3.12 JDeveloperへの外部ツールの追加

第II部 Oracle JDeveloperによるアプリケーションの開発

4 Oracle JDeveloperでのアプリケーションの開発に関するスタート・ガイド

- 4.1 Oracle JDeveloperによるアプリケーションの開発について

5 アプリケーションおよびプロジェクトの使用

- 5.1 アプリケーションおよびプロジェクトの使用について

- 5.2 アプリケーションおよびプロジェクトの作成

- 5.2.1 アプリケーションの作成方法

- 5.2.2 カスタム・アプリケーションを作成する方法

- 5.2.3 新規のプロジェクトを作成する方法

- 5.2.3.1 新規のプロジェクトを作成する方法

- 5.2.3.2 新規のカスタム・プロジェクトを作成する方法

- 5.3 アプリケーションおよびプロジェクトの管理

- 5.3.1 既存のアプリケーションまたはプロジェクトを開く方法

- 5.3.2 JDeveloperに既存のソース・ファイルをインポートする方法

- 5.3.2.1 新規JDeveloperプロジェクトへの既存のファイルのインポート

- 5.3.2.2 新規JDeveloperプロジェクトにWARファイルをインポートする方法

- 5.3.2.3 新規JDeveloperアプリケーションへのEARファイルのインポート

- 5.3.3 プロジェクトにファイルをインポートする方法

- 5.3.3.1 プロジェクトにファイルをインポートする方法

- 5.3.4 プロジェクトでフォルダとJavaパッケージを管理する方法

- 5.3.5 ワーキング・セットの管理方法

- 5.3.6 JDeveloperでファイルをプロジェクトに追加せずに参照する方法

- 5.3.7 アーカイブの表示方法

- 5.3.8 JDeveloperでイメージ・ファイルを表示する方法

- 5.3.9 デフォルトのプロジェクト・プロパティを設定する方法

- 5.3.10 個々のプロジェクトのプロパティを設定する方法

- 5.3.10.1 プロジェクトにライブラリを含める方法

- 5.3.10.2 プロジェクトからライブラリを削除する方法

- 5.3.10.3 プロジェクトのターゲットJava SEを設定する方法

- 5.3.10.4 プロジェクトの依存性の管理方法

- 5.3.10.5 プロジェクトに機能を関連付ける方法

- 5.3.10.6 プロジェクトにJavadocプロパティを設定する方法

- 5.3.11 アプリケーションおよびプロジェクトのテンプレートを管理する方法

- 5.3.11.1 新規アプリケーション・テンプレートの定義方法

- 5.3.11.2 新規プロジェクト・テンプレートの定義方法

- 5.3.11.3 アプリケーションおよびプロジェクトのテンプレートを共有する方法

- 5.3.11.4 既存のアプリケーション・テンプレートまたはプロジェクト・テンプレートを編集する方法

- 5.3.11.5 既存のアプリケーション・テンプレートまたはプロジェクト・テンプレートを削除する方法

- 5.4 アプリケーション、プロジェクトまたは個々のファイルの管理

- 5.4.1 アプリケーションまたはプロジェクトの保存方法

- 5.4.2 個々のコンポーネントまたはファイルを保存する方法

- 5.4.3 アプリケーション、プロジェクトまたは個々のコンポーネントの名前を変更する方法

- 5.4.4 アプリケーション、プロジェクトまたはプロジェクト内容の場所を移動する方法

- 5.4.5 アプリケーション、プロジェクトまたはその他のファイルを閉じる方法

- 5.4.6 プロジェクトからファイルを削除する方法

- 5.4.7 アプリケーションからプロジェクトを削除する方法

- 5.4.8 アプリケーションの削除方法

- 5.5 プロジェクト・スコープの外部のライブラリおよびJava SEの管理

- 5.5.1 プロジェクト・スコープの外部のライブラリまたはJava SEをインポートする方法

- 5.5.2 プロジェクト・スコープの外部のライブラリまたはJava SEを作成する方法

- 5.5.3 プロジェクト・スコープの外部のライブラリまたはJava SEを編集する方法

- 5.5.4 プロジェクト・スコープの外部のライブラリまたはJava SEを削除する方法

6 ソース・コントロールを使用したアプリケーションのバージョニング

- 6.1 ソース・コントロールを使用したアプリケーションのバージョニングについて

- 6.2 Oracle JDeveloperでのソース・コントロール拡張機能のダウンロード

- 6.3 SubversionとOracle JDeveloperの使用

- 6.3.1 SubversionとJDeveloperの設定方法

- 6.3.1.1 プロキシ・サーバー経由のSubversionリポジトリへの接続方法

- 6.3.1.2 インストールの確認方法

- 6.3.1.3 Subversionリポジトリの作成方法

- 6.3.1.4 Subversion接続の作成および編集方法

- 6.3.1.5 Subversionリポジトリ内容の表示方法

- 6.3.1.6 Subversionリポジトリのファイルのチェックアウト方法

- 6.3.1.7 Subversionリポジトリのファイルの更新方法

- 6.3.1.8JDeveloperファイルのSubversionへのインポート方法

- 6.3.2 Subversionでのファイルの使用方法

- 6.3.2.1 ファイルのSubversionコントロールへの追加方法

- 6.3.2.2 変更セットの使用方法

- 6.3.2.3 ファイルの履歴の表示方法

- 6.3.2.4 ファイルのSubversionリポジトリへのコミット方法

- 6.3.2.5 Subversionでのテンプレートの使用方法

- 6.3.2.6 ファイルの以前の状態への回復方法

- 6.3.2.7 ファイルとSubversionのベース・リビジョンの置換方法

- 6.3.2.8 Subversionでのファイルの比較方法

- 6.3.2.9 ファイル・バージョン間の競合の解決方法

- 6.3.2.10 Subversionでの競合の解決方法

- 6.3.2.11 Subversionでのプロパティ競合の解決方法

- 6.3.2.12 マージ・ウィザードの使用方法

- 6.3.2.13 ブランチおよびタグの使用方法

- 6.3.2.14 Subversionプロパティの追加および表示方法

- 6.3.2.15 Subversionファイルのステータスの表示方法

- 6.3.2.16 Subversionコントロール下にあるファイルのステータスのリフレッシュ方法

- 6.3.2.17 Subversionコントロールからのファイルの削除方法

- 6.3.3 エクスポート機能の使用方法

- 6.3.3.1 パッチの作成および適用方法

- 6.3.3.2 JDeveloperからのSubversion管理ファイルのエクスポート方法

- 6.3.3.3 Subversionリポジトリ接続の詳細のエクスポートおよびインポート方法

- 6.4 Concurrent Version System (CVS)とOracle JDeveloperの使用

- 6.4.1 CVSとOracle JDeveloperの設定方法

- 6.4.1.1 CVSと使用するためのJDeveloperの構成方法

- 6.4.1.2 CVS接続の作成方法

- 6.4.1.3 JDeveloperプロジェクト・ファイルのCVSへのインポート方法

- 6.4.1.4 CVSモジュールのチェックアウト方法

- 6.4.2 JDeveloperと使用するためのCVSの構成方法

- 6.4.2.1 ローカルCVSリポジトリの作成方法

- 6.4.2.2 SSH (セキュア・シェル)、CVSおよびJDeveloperの構成方法

- 6.4.2.3 キャラクタ・セットの選択方法(ローカル・クライアントのみ)

- 6.4.2.4 CVSへのログイン方法

- 6.4.2.5 CVSを使用したローカル・ファイルへのアクセス方法

- 6.4.3 構成後のCVSの使用方法

- 6.4.3.1 CVS内のプロジェクト、フォルダまたはファイルの更新方法

- 6.4.3.2 CVS内のファイルの編集および監視方法

- 6.4.3.3 CVSの変更のコミット方法

- 6.4.3.4 CVSでのファイルのマージ方法

- 6.4.4 CVSでのブランチの使用方法

- 6.4.4.1 新規ブランチの作成方法

- 6.4.4.2 CVSでのブランチの使用方法

- 6.4.4.3 CVSでのタグの使用方法

- 6.4.5 CVSでのファイルの使用方法

- 6.4.5.1 CVSオブジェクトの表示のリフレッシュ方法

- 6.4.5.2 ファイルの追加および削除方法

- 6.4.5.3 CVSテンプレートの使用方法

- 6.4.5.4 CVSでのファイルの比較方法

- 6.4.5.5 ファイルとCVSリビジョンの置換方法

- 6.4.5.6 ファイルの履歴およびステータスの表示方法

- 6.4.5.7 ファイルのロックおよびロック解除方法

- 6.4.5.8 リビジョンおよびタグの使用方法

- 6.4.6 外部ツールおよびエクスポート機能の使用方法

- 6.4.6.1 CVSでの外部差分ツールの使用方法

- 6.4.6.2 CVSモジュールのエクスポート方法

- 6.4.6.3 CVSROOTパスのクリップボードへのコピー方法

- 6.4.7 パッチの作成および適用方法

- 6.5 PerforceとOracle JDeveloperの使用

- 6.5.1 PerforceとJDeveloperの設定方法

- 6.5.1.1 JDeveloperで使用するPerforceコンポーネントのインストール方法

- 6.5.1.2 Perforceと使用するためのJDeveloperの構成方法

- 6.5.1.3 Perforceへの接続方法

- 6.5.1.4 Perforceへの複数接続方法

- 6.5.1.5 ファイルをPerforceの管理下に置く方法

- 6.5.1.6 JDeveloperファイルのPerforceへのインポート方法

- 6.5.2 Perforceでのファイルの使用方法

- 6.5.2.1 ローカル・ファイルと管理バージョンの同期化方法

- 6.5.2.2 ファイルとPerforceナビゲータの同期化方法

- 6.5.2.3 Perforceワークスペースによるファイルのフィルタ方法

- 6.5.2.4 ファイルの編集方法

- 6.5.2.5 変更したファイルのPerforce保管庫への発行方法

- 6.5.2.6 ファイル・バージョン間の競合の解決方法

- 6.5.2.7 ファイル・バージョン間の競合の解決方法

- 6.5.2.8 Perforceコントロール下にあるファイルのステータスのリフレッシュ方法

- 6.5.2.9 ファイルの削除方法

- 6.5.3 変更リストの使用方法

- 6.5.3.1 Perforce変更リストの作成方法

- 6.5.3.2 Perforceリビジョンまたは変更リストへの注釈付け方法

- 6.5.3.3 ファイルのPerforce変更リストへの追加方法

- 6.5.3.4 Perforce変更リストの発行方法

- 6.5.3.5 変更リスト・ブラウザの使用方法

- 6.5.4 パッチの作成および適用方法

- 6.6 Serena DimensionsとOracle JDeveloperの使用

- 6.6.1 DimensionsとJDeveloperの設定方法

- 6.6.1.1 Dimensionsリポジトリへの接続方法

- 6.6.1.2 Dimensionsリポジトリからの切断方法

- 6.6.1.3 ファイルのDimensionsコントロールへの追加方法

- 6.6.1.4 Dimensionsコントロールからのファイルの削除方法

- 6.6.1.5 現在のプロジェクトの設定方法

- 6.6.2 Dimensionsでのファイルの使用方法

- 6.6.2.1 ファイルのDimensionsへのインポート方法

- 6.6.2.2 ナビゲータ・アイコンのオーバーレイの使用

- 6.6.2.3 Dimensionsプロジェクトのダウンロード方法

- 6.6.2.4 ファイルのチェックアウト方法

- 6.6.2.5 ファイルのチェックアウトを元に戻す方法

- 6.6.2.6 ファイルのチェックイン方法

- 6.6.2.7 保留中の変更リストについて

- 6.7 Rational ClearCaseとOracle JDeveloperの使用

- 6.7.1 Rational ClearCaseを使用するためのJDeveloperの構成方法

- 6.7.2 ファイルのClearCaseへの追加方法

- 6.7.3 ClearCaseコントロール下にあるオブジェクトのステータスのリフレッシュ方法

- 6.7.4 ファイルのClearCaseからの削除方法

- 6.7.5 ファイルのClearCaseへのチェックイン方法

- 6.7.6 ファイルのClearCaseからのチェックアウト方法

- 6.7.7 ClearCaseのチェックアウトを元に戻す方法

- 6.7.8 ClearCaseのチェックアウトのリスト方法

- 6.7.9 ClearCaseにチェックインされたファイルの比較方法

- 6.7.10 ClearCaseファイルの履歴の表示方法

- 6.7.11 ClearCaseファイルの説明の表示方法

- 6.8 Team SystemとOracle JDeveloperの使用

- 6.8.1 Team SystemとJDeveloperの設定方法

- 6.8.1.1 JDeveloperと使用するためのTeam Systemの設定方法

- 6.8.1.2 Team Systemと使用するためのJDeveloperの構成方法

- 6.8.2 Team Systemでのファイルの使用方法

- 6.8.2.1 ファイルのバージョンのTeam Systemサーバーからの取得方法

- 6.8.2.2 ファイルのTeam Systemコントロールへの追加方法

- 6.8.2.3 ファイルのチェックアウト方法

- 6.8.2.4 ファイルのステータスの表示方法

- 6.8.2.5 ファイルのステータスのリフレッシュ方法

- 6.8.2.6 ファイルのチェックイン方法

- 6.8.2.7 ファイル・バージョン間の競合の解決方法

- 6.8.2.8 ファイルの変更を元に戻す方法

- 6.8.2.9 ファイルとTeam Systemのベース・バージョンの置換方法

- 6.8.2.10 ファイルの履歴の表示方法

- 6.8.2.11 Team Systemでのファイルの比較方法

- 6.8.2.12 ファイルのシェルブおよびアンシェルブ方法

- 6.8.2.13 ファイルの削除方法

- 6.8.3 インポートおよびエクスポート機能の使用方法

- 6.8.3.1 パッチの作成方法

- 6.8.3.2 パッチの適用方法

- 6.9 WebDAVとOracle JDeveloperの使用

- 6.9.1 WebDAVサーバーの要件

- 6.9.2 WebDAV接続の作成方法

- 6.9.3 プロキシ・サーバーを介したWebDAV対応サーバーへのアクセス方法

- 6.9.4 WebDAV接続の変更方法

- 6.9.5 WebDAV接続のリフレッシュ方法

- 6.9.6 WebDAV接続の削除方法

7 アプリケーションのビルド、実行およびデバッグ

- 7.1 アプリケーションのビルド、実行およびデバッグについて

- 7.2 アプリケーションのビルド

- 7.2.1 メイクと再ビルド

- 7.2.2 Apache Ant

- 7.2.3 Apache Maven

- 7.3 アプリケーションの実行

- 7.3.1 Run Manager

- 7.4 アプリケーションのデバッグ

- 7.4.1 デバッガの使用方法

- 7.4.2 デバッグを使用するテクノロジ

8 アプリケーションの監査とプロファイリング

- 8.1 アプリケーションの監査とプロファイリングについて

- 8.2 アプリケーションの監査

- 8.3 HTTPアナライザを使用したHTTPの監視

- 8.3.1 ログ・ウィンドウの使用方法

- 8.3.2 テスト・ウィンドウの使用方法

- 8.3.3 インスタンス・ウィンドウの使用方法

- 8.3.4 HTTPアナライザの実行時に行われる処理

- 8.3.5 HTTPアナライザ設定の指定方法

- 8.3.6 複数のインスタンスを使用する方法

- 8.3.7 外部Webブラウザの構成方法

- 8.3.8 SSLの使用

- 8.3.8.1 HTTPSキーストア

- 8.3.8.2 ユーザー名トークン

- 8.3.8.3 X509証明書

- 8.3.8.4 STS構成

- 8.3.8.5 HTTPSの使用方法

- 8.3.8.6 Webサービス・ポリシーをテストするための資格証明の構成方法

- 8.3.9 HTTPアナライザの実行方法

- 8.3.10 HTTPアナライザを使用してWebページをデバッグする方法

- 8.3.11 HTTPリクエストの編集と再送信の方法

- 8.3.12 ルールを使用して動作を決定する方法

- 8.3.12.1 パス・スルー・ルールの使用

- 8.3.12.2 転送ルールの使用

- 8.3.12.3 URL置換ルールの使用

- 8.3.12.4 テープ・ルールの使用

- 8.3.13 ルールの設定方法

- 8.3.14 Webサービスに対するHTTPアナライザの使用

- 8.3.14.1 HTTPアナライザを使用したWebサービスのテスト

- 8.3.14.2 RESTful Webサービスに対するHTTPアナライザの使用

- 8.3.15 WebSocketsに対するHTTPアナライザの使用

- 8.3.16 リファレンス: HTTPアナライザのトラブルシューティング

- 8.3.16.1 他のアプリケーションの実行中にHTTPアナライザを実行

- 8.3.16.2 プロキシ設定の変更

- 8.4 アプリケーションのプロファイリング

9 アプリケーションのデプロイ

- 9.1 アプリケーションのデプロイについて

- 9.1.1 統合アプリケーション・サーバーへのアプリケーションの開発

- 9.1.2 スタンドアロン・アプリケーション・サーバーにデプロイするためのアプリケーションの開発

- 9.1.3 アーカイブ形式の理解

- 9.1.4 デプロイメント・プロファイルの理解

- 9.1.5 デプロイメント・ディスクリプタの理解

- 9.1.6 デプロイメント・プランを使用したデプロイメントの構成

- 9.1.7 Java Editionからのデプロイ

- 9.2 統合アプリケーション・サーバーでのJava EEアプリケーションの実行

- 9.2.1 統合アプリケーション・サーバーの「ログ」ウィンドウの理解

- 9.2.2 統合アプリケーション・サーバーへのデプロイを決定する規則

- 9.2.3 統合アプリケーション・サーバーの使用

- 9.2.3.1 新しい統合アプリケーション・サーバー接続の作成方法

- 9.2.3.2 統合アプリケーション・サーバーでの実行とデバッグの方法

- 9.2.3.3 デフォルト・ドメインの使用

- 9.2.3.4 統合アプリケーション・サーバーでのアプリケーションの1クリック実行

- 9.2.3.5 統合アプリケーション・サーバーの起動方法

- 9.2.3.6 実行中のデプロイメントの取消し方法

- 9.2.3.7 統合アプリケーション・サーバーの終了方法

- 9.2.3.8 統合アプリケーション・サーバーの起動とシャットダウンの動作を構成する方法

- 9.2.3.9 統合WebLogic Server管理コンソールへのログイン方法

- 9.3 アプリケーション・サーバーへのJava EEアプリケーションの接続とデプロイ

- 9.3.1 ターゲット・アプリケーション・サーバーへの接続の作成方法

- 9.3.2 デプロイメント・プロファイルの作成および編集方法

- 9.3.2.1 デプロイメント・プロファイルについて

- 9.3.2.2 デプロイメント・プロファイルの作成

- 9.3.2.3 デプロイメント・プロファイル・プロパティの表示および変更

- 9.3.2.4 デプロイメント・プロファイルの構成

- 9.3.3 デプロイメント・ディスクリプタの作成および編集方法

- 9.3.3.1 デプロイメント・ディスクリプタについて

- 9.3.3.2 ライブラリの依存性について

- 9.3.3.3 デプロイメント・ディスクリプタの作成

- 9.3.3.4 デプロイメント・ディスクリプタ・プロパティの表示または変更

- 9.3.4 グローバル・デプロイメント・プリファレンスの構成方法

- 9.3.5 デプロイ時にターゲット接続にオプションを渡す方法

- 9.3.6 デプロイ用にアプリケーションを構成する方法

- 9.3.6.1 Oracle WebLogic Serverへのデプロイ用にアプリケーションを構成する方法

- 9.3.6.2 デプロイ用にクライアント・アプリケーションを構成する方法

- 9.3.6.3 デプロイ用にアプレットを構成する方法

- 9.3.6.4 Oracle WebLogic ServerでのJDBCデータソースの設定

- 9.3.6.5 サード・パーティのサーバーにデプロイするアプリケーションの準備

- 9.3.7 デプロイメント・プランの使用方法

- 9.3.7.1 デプロイメント・プランの作成および使用方法

- 9.3.7.2 デプロイメント・プランの生成方法

- 9.4 Javaアプリケーションのデプロイ

- 9.4.1 Java JARへのデプロイ

- 9.4.2 OSGiバンドルへのデプロイ

- 9.5 Java EEアプリケーションのデプロイ

- 9.5.1 JDeveloperからアプリケーション・サーバーへのデプロイ方法

- 9.5.2 RARファイルをデプロイする方法

- 9.5.3 リソース・アダプタ・アーカイブ(RAR)をEARに追加する方法

- 9.5.4 メタデータ・アーカイブ(MAR)をデプロイする方法

- 9.5.5 アプレットをWARファイルとしてデプロイする方法

- 9.5.6 共有ライブラリ・アーカイブをデプロイする方法

- 9.5.7 停止している管理対象サーバーにデプロイする方法

- 9.6 デプロイ後の構成

- 9.7 アプリケーションのテストとデプロイの検証

- 9.8 コマンドラインからのデプロイ

- 9.8.1 コマンドラインからデプロイする方法

- 9.8.1.1 コマンドの使用方法

- 9.8.1.2 ビルド・スクリプトを編集せずに上書きする方法

- 9.8.2 コマンドラインから複数のプロファイルをデプロイする方法

- 9.8.2.1 ワイルドカード・サンプルの使用方法

- 9.8.2.2 組込みマクロの使用方法

- 9.8.2.3 バッチ・デプロイメントのログ・ファイルの作成方法

- 9.8.3 Antを使用してコマンドラインからデプロイする方法

- 9.8.3.1 Antビルド・スクリプトの生成方法

- 9.8.3.2 build.xmlファイルについて

- 9.8.3.3 build.propertiesファイルについて

- 9.9 Java Web Startを使用したデプロイ

- 9.9.1 Java Web Startテクノロジの目的

- 9.9.1.1 Java Web Start対応の作成ウィザードによって生成されるファイル

- 9.9.1.2 JDeveloperにおけるWebサーバーの役割

- 9.9.2 Java Web Startファイルの作成方法

- 9.9.3 Java Web Start用のADF Swing Webアーカイブを作成する方法

- 9.9.4 Java Web Start用のJavaクライアントWebアーカイブを作成する方法

- 9.9.5 Javaクライアント用のJava Web Start JNLP定義を作成する方法

- 9.9.6 Java Web Start用のADF Swing Webアプリケーション・アーカイブをデプロイする方法

- 9.9.7 Java Web Start用のJavaクライアントWebアプリケーション・アーカイブをデプロイする方法

- 9.10 Weblogic SCA Springを使用したデプロイ

- 9.10.1 WebLogic SCAについて

- 9.10.2 Springについて

- 9.10.3 Weblogic SCA Spring拡張機能のインストール

- 9.10.4 Oracle WebLogic SCAの使用

- 9.10.4.1 WebLogic SCAプロジェクトの作成方法

- 9.10.4.2 Oracle WebLogic SCA定義ファイルの編集方法

- 9.10.4.3 WebLogic SCAアプリケーションを統合WebLogic Serverにデプロイする方法

- 9.10.4.4 WebLogic SCAアプリケーションをOracle WebLogic Serverにデプロイする方法

- 9.10.5 Springの使用

- 9.10.5.1 Spring Beanアプリケーションの作成方法

- 9.10.5.2 Spring Bean構成ファイルの作成時に行われる処理

- 9.11 デプロイメントのトラブルシューティング

- 9.11.1 デプロイ上の共通の問題

- 9.11.1.1 [Deployer: 149164] 排他モードの別のセッションがドメインの編集ロックを所有しているため、このデプロイメント操作を続行できません。

- 9.11.2 統合アプリケーション・サーバーへのデプロイのトラブルシューティング方法

- 9.11.2.1 統合アプリケーション・サーバーの停止

- 9.11.2.2 メモリー不足

- 9.11.2.3 別の場所へのJDeveloperの再インストール

- 9.11.3 Oracle WebLogic Serverへのデプロイのトラブルシューティング方法

- 9.11.3.1 ORA-01005: Nullパスワードが入力されたため、ログオンが拒否されました

- 9.11.3.2 ORA-01017: ユーザー名/パスワードが無効です。ログオンは拒否されました。

- 9.11.3.3 [Oracle JDBC Driver] Kerberos認証がリクエストされたが、Oracleサーバーでサポートされていない

- 9.11.3.4 Oracle WebLogic Server管理コンソールからグローバル・データソースを作成した後でアプリケーションが動作しない

- 9.11.3.5 停止しているサーバーへのアプリケーションの再デプロイ

- 9.11.3.6 すでに存在しないサーバーにデプロイしようとした場合

- 9.11.3.7 リモート・サーバーへのデプロイがHTTPエラー・コード502で失敗する

- 9.11.3.8 資格証明マッパーのエントリが見つかりません

- 9.11.4 IBM WebSphereへのデプロイのトラブルシューティング方法

- 9.11.4.1 EARに空白が含まれているときデプロイに失敗する

- 9.11.4.2 アプリケーションに管理コンソールのユーザー名が表示される

第III部 Java EEアプリケーションの開発

10 Java EEアプリケーションの開発に関するスタート・ガイド

- 10.1 Java EEアプリケーションの開発について

- 10.1.1 Java EEおよびOracle Application Developer Framework

- 10.2 Webページ・ツールについて

- 10.3 Enterprise JavaBeansおよびJava永続性コンポーネントについて

- 10.4 Oracle TopLinkについて

- 10.5 セキュアなアプリケーションについて

- 10.6 XMLを使用するアプリケーションについて

- 10.7 Webサービスを使用するアプリケーションについて

11 Webページ・ツールを使用したアプリケーションの開発

- 11.1 Webページ・ツールを使用したアプリケーションの開発について

- 11.1.1 ソース・エディタの機能について

- 11.1.2 ビジュアル編集環境での作業方法

- 11.1.2.1 コンテナ要素の展開および縮小方法

- 11.1.2.2 ビジュアル・エディタ環境のカスタマイズ方法

- 11.1.2.3 非表示要素の表示方法

- 11.1.2.4 JSPビジュアル・エディタでのJSPタグの実行方法

- 11.1.2.5 JSPタグの名前のみでの表示方法

- 11.1.2.6 キーボードのプリファレンスの変更方法

- 11.1.2.7 Webページ要素の選択方法

- 11.1.2.8 設計ツールでの挿入ポイントの選択方法

- 11.1.2.9 Webページ要素の挿入方法

- 11.1.2.10 Webページ要素のプロパティの設定および変更方法

- 11.1.2.11 プロパティのデータソースの設定方法

- 11.1.2.12 複数の要素のプロパティの設定方法

- 11.1.2.13 要素を管理するための基本コマンドの使用方法

- 11.1.2.14 データ表の使用方法

- 11.1.2.15 パネル・グリッドの使用方法

- 11.1.2.16 JSPおよびHTMLページでのマークアップ・コードの貼付け方法

- 11.1.2.17 WebページのHEADのコンテンツの表示および編集方法

- 11.1.3 プロパティ・インスペクタの使用方法

- 11.1.3.1 プロパティの編集

- 11.1.3.2 カスタム・プロパティ・エディタの作成

- 11.1.3.3 カスタマイズ開発者の追加機能

- 11.1.4 コンポーネント・パレットの使用方法

- 11.1.4.1 コンポーネント・パレットの機能の使用

- 11.1.4.2 コンポーネント・パレットの機能の概要

- 11.1.5 JSF構成ファイルの概要エディタの使用方法

- 11.1.6 JSFナビゲーション・ダイアグラムを使用したページ・フローの計画方法

- 11.1.6.1 ナビゲーション・ダイアグラムの使用方法

- 11.1.6.2 ページ・フローおよびナビゲーション・フローの計画方法

- 11.1.6.3 JSFナビゲーション・ダイアグラマを使用した複数のJSFページの操作方法

- 11.1.6.4 JSFナビゲーション・ケースに対するJSFナビゲーション・ダイアグラマの使用方法

- 11.1.6.5 ダイアグラムのグラフィックとしての公開方法

- 11.1.7 コード・インサイトを使用したWebページのコーディングの高速化方法

- 11.2 JavaServer Facesを使用したアプリケーションの開発

- 11.2.1 JSFアプリケーションの構築方法

- 11.2.1.1 アプリケーション・フレームワークの構築方法

- 11.2.1.2 JSFページおよび関連ビジネス・サービスの作成方法

- 11.2.2 JSFビジネス・コンポーネント・フレームワークの構築方法

- 11.2.2.1 JSFの標準コンポーネントのタグ属性のサポート

- 11.2.2.2 マネージドBeanの使用方法

- 11.2.2.3 自動コンポーネント・バインディングの使用方法

- 11.2.2.4 JSFページへのコンポーネントのバインド方法

- 11.2.2.5 EL式を使用したコンポーネントのバインド方法

- 11.2.2.6 メソッド・バインディングが可能なコンポーネントの自動コンポーネント・バインディングの使用方法

- 11.2.2.7 JSFでのローカライズ・リソース・バンドルの使用方法

- 11.2.2.8 ファセットの使用方法

- 11.2.2.9 Faceletsを使用したJSFビューの構築方法

- 11.2.2.10 JSF入力データの変換および検証方法

- 11.2.2.11 エラー・メッセージの表示方法

- 11.2.2.12 JSFアプリケーションの構成方法

- 11.2.3 JSFアプリケーションの実行およびテスト方法

- 11.3 HTMLページを使用したアプリケーションの開発

- 11.3.1 HTMLページの構築方法

- 11.3.2 Cascading Style Sheetの使用方法

- 11.3.2.1 CSS要素の選択およびグループ化方法

- 11.3.2.2 CSSの基本ツールの使用方法

- 11.3.3 HTML表の使用方法

- 11.3.3.1 表およびセルのフォーマット方法

- 11.3.4 HTMLフォーム、テキストおよびイメージの使用方法

- 11.3.4.1 HTMLフォームの使用方法

- 11.3.4.2 HTMLテキストの使用方法

- 11.3.4.3 HTMLイメージの使用方法

- 11.4 Java Server Pagesの使用方法

- 11.4.1 JSPアプリケーションの構築方法

- 11.4.1.1 JSPコア・コンポーネント

- 11.4.1.2 JSPページの作成方法

- 11.4.1.3 JSPページでのサーブレット・フィルタの登録方法

- 11.4.1.4 JSPページのフロー制御の理解

- 11.4.2 JSPのデバッグおよびデプロイ方法

- 11.4.3 JSPの実行方法

- 11.4.4 JSPセグメントの理解

- 11.5 Javaサーブレットを使用したアプリケーションの開発

- 11.5.1 JDeveloperでのサーブレットのサポートの理解

- 11.5.1.1 サーブレット・フィルタについての注意事項

- 11.5.1.2 サーブレット・リスナーについての注意事項

- 11.5.1.3 HTTPサーブレットの生成方法

- 11.5.2 HTTPサーブレットの基本メソッドの実装

- 11.5.2.1 HTTPServletRequestオブジェクトの使用方法

- 11.5.2.2 HTTPServletResponseオブジェクトの使用方法

- 11.5.3 サーブレット・フィルタの作成方法

- 11.5.4 サーブレット・リスナーの作成方法

- 11.5.5 JSPページでのサーブレット・フィルタの登録

- 11.5.6 サーブレットの実行方法

- 11.5.7 サーブレットのデバッグ方法

- 11.5.8 サーブレットのデプロイ方法

- 11.6 スクリプト言語を使用したアプリケーションの開発

- 11.6.1 JDeveloperでのスクリプト言語のサポート

- 11.6.1.1 JavaScriptコード・インサイトの使用方法

- 11.6.1.2 ブレッドクラムのサポートの使用方法

- 11.6.1.3 構造ペインのサポートの使用方法

- 11.6.2 スクリプト言語の操作

- 11.6.2.1 スクリプトの作成方法

- 11.6.2.2 HTMLまたはJSPページへのスクリプト言語要素の追加方法

- 11.6.2.3 構文ハイライト表示の設定方法

- 11.6.2.4 JavaScriptファイル拡張子の関連付け方法

- 11.6.2.5 JSONファイルの作成方法

- 11.6.3 JavaScriptコードのリファクタ

- 11.6.3.1 コード要素の使用方法の検索

- 11.6.3.2 JavaScriptコード要素の名前の変更

- 11.6.3.3 JavaScriptコード要素の削除

- 11.6.3.4 リファクタ操作のプレビュー方法

- 11.6.3.5 JavaScriptコードの再フォーマット方法

- 11.6.3.6 コードのフォーマット・プリファレンスの変更方法

- 11.6.3.7 コード折りたたみの使用方法

- 11.6.3.8 ファイルのリファクタおよび移動方法

- 11.7 JSPおよびFaceletsタグ・ライブラリの使用

- 11.7.1 タグ・ライブラリとWebページの使用方法

- 11.7.2 カスタム・タグ・ライブラリの使用方法

12 EJBおよびJPAコンポーネントを使用した開発

- 12.1 EJBおよびJPAコンポーネントを使用した開発について

- 12.2 EJBバージョンおよび機能のサポート

- 12.3 EJB 3.0アプリケーションの構築および開発プロセス

- 12.3.1 EJB 3.0アプリケーションの開発プロセス

- 12.3.1.1 エンティティの作成

- 12.3.1.2 セッションBeanおよびセッション・ファサードの作成

- 12.3.1.3 EJBのデプロイ

- 12.3.1.4 EJBのリモート・テスト

- 12.3.1.5 Oracle ADFデータ・コントロールへのビジネス・サービスの登録

- 12.4 EJBビジネス・サービス・レイヤーの使用方法

- 12.5 Oracle JDeveloperでのJava EEデザイン・パターンの使用

- 12.6 永続層の構築

- 12.6.1 JPAエンティティおよびJava永続性APIについて

- 12.6.1.1 POJOであるJPAエンティティ

- 12.6.1.2 O-Rマッピングのメタデータ注釈

- 12.6.1.3 継承およびポリモフィズムのサポート

- 12.6.1.4 CRUD操作のためのEntityManager APIの簡素化

- 12.6.1.5 問合せの拡張機能

- 12.6.2 JPAエンティティの作成方法

- 12.6.3 EJB/JPA用のSDOについて

- 12.6.4 SOAプラットフォームへのデプロイメント用のEJB/POJOベースのADF-BCサービスの使用

- 12.6.5 JPAエンティティ用のSDOサービス・インタフェースの作成方法

- 12.6.5.1 SOAプラットフォームへのデプロイメント用のEJB/POJOベースのADF-BCサービスの構成方法

- 12.6.5.2 SDOアーキテクチャをサポートするために作成されるファイル・タイプ

- 12.6.6 JPAエンティティからのデータベース表の生成方法

- 12.6.7 EJB/JPA用のJDK 5注釈

- 12.6.7.1 EJB 3.0

- 12.6.7.2 JPA 1.0

- 12.6.8 Javaクラスの注釈方法

- 12.6.9 エンティティ間の関連の表現

- 12.6.10 Java永続性問合せ言語

- 12.6.11 JPAオブジェクト・リレーショナル・マッピング

- 12.6.12 Javaサービス・ファサードの使用方法

- 12.7 セッションBeanでのビジネス・プロセスの実装

- 12.7.1 セッション・ファサードの使用

- 12.7.2 セッションBeanの作成方法

- 12.7.3 モジュールでのセッションBeanまたはメッセージドリブンBeanの作成方法

- 12.7.4 EJBメソッドの追加、削除および編集方法

- 12.7.5 EJBへのフィールドの追加方法

- 12.7.6 EJBからのフィールドの削除方法

- 12.7.7 EJB環境エントリを使用したビジネス・ロジックのカスタマイズ

- 12.7.8 クライアントへのデータの公開

- 12.7.9 リソース参照の識別方法

- 12.7.10 エンティティの主キーの定義方法

- 12.7.11 ADFバインディングの主キーの指定方法

- 12.7.12 EJBのADFデータ・コントロールの使用方法

- 12.8 ダイアグラムでのEJB/JPAコンポーネントのモデル化

- 12.9 EJBモジュールおよびJPA永続性ユニットのデプロイ

- 12.9.1 EJBモジュールについて

- 12.9.2 JPA永続性ユニットについて

- 12.9.3 JPA永続性ユニットの作成方法

- 12.9.4 モジュール内のEJBの削除方法

- 12.9.5 JDeveloperへのEJBのインポート方法

- 12.9.6 WebSphereアプリケーション・サーバーにデプロイするためのEJB/ADFアプリケーションの変更方法

- 12.10 EJB/JPAコンポーネントの実行およびテスト

- 12.10.1 統合サーバーを使用したEJB/JPAコンポーネントのテスト方法

- 12.10.2 リモート・サーバーを使用したEJB/JPAコンポーネントのテスト方法

- 12.10.3 Unitを使用したEJBユニットのテスト方法

13 TopLinkマッピングの開発

- 13.1 TopLinkマッピングの開発について

- 13.1.1 インピーダンス・ミスマッチについて

- 13.1.2 TopLinkアプリケーションの設計

- 13.1.3 アプリケーション設計でのTopLinkの使用

- 13.1.4 TopLinkメタデータの作成

- 13.1.5 プロジェクト・メタデータの作成

- 13.1.6 セッション・メタデータの作成

- 13.1.7 TopLinkディスクリプタの使用

- 13.1.7.1 リレーショナル・ディスクリプタ

- 13.1.7.2 EISディスクリプタ

- 13.1.7.3 XMLディスクリプタ

- 13.1.8 TopLinkマッピングの使用

- 13.1.8.1 リレーショナル・マッピングのタイプ

- 13.1.8.2 EISマッピングのタイプ

- 13.1.8.3 XMLマッピングのタイプ

- 13.1.9 TopLinkエディタの理解

- 13.1.9.1 TopLinkマップの管理

- 13.1.9.2 TopLinkセッションの管理

- 13.1.9.3 永続性構成の管理

- 13.1.9.4 TopLinkの「構造」ビューのツールバー

- 13.1.9.5 アプリケーション・ナビゲータのTopLinkプロジェクト要素

- 13.1.9.6 エディタ・ウィンドウのTopLinkエディタ・タブ

- 13.1.9.7 「構造」ビューのTopLinkプロジェクト要素

- 13.1.9.8 TopLink「構造」ビューのツールバーの使用

- 13.1.9.9 TopLinkマッピングのメッセージ・ログでのステータス・レポート

- 13.1.9.10 TopLinkのプリファレンスの構成

- 13.1.9.11 TopLinkマッピング・プロジェクトの作成方法

- 13.1.9.12 コンバータ・マッピングの使用方法

- 13.1.9.13 TopLinkディスクリプタの自動マップ方法

- 13.1.9.14 データ・ソース・ログイン情報

- 13.2 TopLink JPAプロジェクトの開発

- 13.2.1 JPA永続性ディスクリプタ(persistence.xml)の作成および構成方法

- 13.2.2 永続性ユニットの作成方法

- 13.2.3 永続性ユニットの構成方法

- 13.2.4 JPAディスクリプタの作成方法

- 13.2.4.1 永続性ユニットのデフォルトの構成方法

- 13.2.4.2 ジェネレータの構成方法

- 13.2.4.3 問合せの構成方法

- 13.2.5 JPAマッピングの使用

- 13.2.6 TopLink拡張機能の使用

- 13.3 TopLinkリレーショナル・プロジェクトの開発

- 13.3.1 リレーショナル・プロジェクトおよびオブジェクト・マップの作成方法

- 13.3.2 リレーショナル・ディスクリプタの作成方法

- 13.3.3 リレーショナル・ディスクリプタの構成方法

- 13.4 TopLink XMLプロジェクトの開発

- 13.4.1 XMLプロジェクトの作成方法

- 13.4.2 XMLオブジェクト・マップの作成方法

- 13.4.3 XMLディスクリプタの作成方法

- 13.4.4 XMLスキーマの追加方法

- 13.5 TopLink EISプロジェクトの開発

- 13.5.1 EISプロジェクトの作成方法

- 13.5.2 EISオブジェクト・マップの作成方法

- 13.5.3 EISディスクリプタの作成方法

- 13.5.4 EISデータソースの使用

- 13.6 TopLinkセッションの開発

- 13.6.1 新規セッション構成ファイルの作成方法

- 13.6.2 セッションの作成方法

- 13.6.3 実行時におけるセッションの取得

- 13.6.4 セッション・ブローカの作成方法

- 13.6.5 データソース・ログインの作成方法

- 13.6.6 接続プールの作成方法

- 13.7 TopLinkアプリケーションの開発

- 13.7.1 TopLinkキャッシュの使用

- 13.7.1.1 オブジェクト・アイデンティティ

- 13.7.1.2 問合せとキャッシュ

- 13.7.1.3 失効したデータの処理

- 13.7.1.4 明示的な問合せのリフレッシュ

- 13.7.1.5 キャッシュの無効化

- 13.7.1.6 キャッシュ・コーディネーション

- 13.7.1.7 キャッシュの分離

- 13.7.1.8 キャッシュのロックとトランザクションの分離

- 13.7.2 TopLinkキャッシュの構成方法

- 13.7.3 問合せの使用

- 13.7.3.1 TopLink問合せ言語

- 13.7.3.2 TopLink問合せのタイプ

- 13.7.4 問合せの作成方法

- 13.7.5 基本問合せAPIの使用

- 13.7.6 詳細問合せAPIの使用

- 13.7.6.1 リダイレクト問合せ

- 13.7.6.2 履歴問合せ

- 13.7.6.3 フェッチ・グループ

- 13.7.6.4 読取り専用問合せ

- 13.7.6.5 インタフェース

- 13.7.6.6 継承階層

- 13.7.6.7 その他の結合式

- 13.7.6.8 EJBファインダ

- 13.7.6.9 カーソルとストリームの問合せ結果

- 13.7.7 TopLink式の作成方法

- 13.7.8 TopLinkトランザクションの概要

- 13.7.9 TopLinkトランザクションおよび作業ユニット

14 セキュアなアプリケーションの開発

- 14.1 セキュアなアプリケーションの開発について

- 14.1.1 Java EEアプリケーションおよびOracle Platform Security Services for Java (OPSS)の理解

- 14.1.2 Fusion WebアプリケーションおよびADFセキュリティの理解

- 14.1.3 コンテナ管理セキュリティの理解

- 14.1.4 追加機能

- 14.2 フェーズでのアプリケーションの保護

- 14.3 WebアプリケーションのセキュリティとJDeveloperのサポートについて

- 14.4 Webアプリケーションでのユーザー認証の処理

- 14.4.1 認証タイプの選択肢について

- 14.4.1.1 BASIC認証

- 14.4.1.2 FORM認証

- 14.4.1.3 CLIENT-CERT認証

- 14.4.2 ターゲット・ドメインのパスワードの暗号化

- 14.4.2.1 weblogic.security.Encrypt

- 14.4.3 アイデンティティ・ストアの作成方法

- 14.4.4 アイデンティティ・ストアへのテスト・ユーザーの追加方法

- 14.4.5 アイデンティティ・ストアへのエンタープライズ・ロールの追加方法

- 14.4.6 資格証明ストアの作成方法

- 14.4.7 ログイン・モジュールの追加方法

- 14.4.8 カスタム・ログイン・モジュールを介した認証方法

- 14.4.9 キーストアの追加方法

- 14.4.10 無名プロバイダの有効化方法

- 14.4.11 アイデンティティ・ストアでのユーザーへの資格証明の追加方法

- 14.4.12 Webアプリケーションの認証タイプの選択方法

- 14.5 Webアプリケーション内のアプリケーション・リソースの保護

- 14.5.1 jazn-data.xmlの概要エディタを使用したアプリケーション・リソースの保護方法

- 14.5.2 Fusion WebアプリケーションのADFセキュリティを使用したADFリソースの保護方法

- 14.6 アプリケーション・レベルのポリシー・ストアの構成

- 14.6.1 ポリシー・ストアについて

- 14.6.2 プリンシパル、権限および付与について

- 14.6.3 アプリケーション・ポリシー・ストアへのアプリケーション・ロールの追加方法

- 14.6.4 アプリケーション・ロールへのメンバー・ユーザーまたはエンタープライズ・ロールの追加方法

- 14.6.5 カスタム・リソース・タイプの作成方法

- 14.6.6 アプリケーション・ポリシー・ストアへのリソース権限の追加方法

- 14.6.7 アプリケーション・ポリシー・ストアへの資格付与の追加方法

- 14.6.8 カスタムJAAS権限クラスの作成方法

- 14.6.9 システム・ポリシー・ストアへの付与の追加方法

- 14.7 ポリシー・ストアの移行

- 14.7.1 ポリシー・ストアの移行方法

- 14.7.2 アプリケーション・ポリシーの移行

- 14.7.3 資格証明の移行

- 14.7.4 ユーザーおよびグループの移行

- 14.8 JDBCを使用した開発の保護

15 XMLを使用したアプリケーションの開発

- 15.1 XMLを使用したアプリケーションの開発について

- 15.2 XMLエディタの使用

- 15.2.1 XML編集機能の理解

- 15.2.2 XMLエディタのツールバーの理解

- 15.3 Oracle JDeveloperでのXMLファイルの作成

- 15.3.1 XMLを使用したローカライズ

- 15.3.1.1 新規XLIFFファイルの作成方法

- 15.3.1.2 XLIFFファイルについての注意事項

- 15.3.2 XMLスキーマのインポートおよび登録方法

- 15.3.3 XML要素のパレットへの追加方法

- 15.3.4 JAXBを使用したXMLスキーマからのJavaクラスの生成方法

- 15.4 Oracle JDeveloperでのXMLファイルの編集

- 15.4.1 XMLエディタの編集オプションの設定方法

- 15.4.2 XMLを使用したXQueryの使用

- 15.4.2.1 新規XQueryファイルの作成方法

- 15.4.2.2 XPath式の構文についての注意事項

- 15.5 XMLスキーマの使用

- 15.5.1 XSDビジュアル・エディタの属性の使用

- 15.5.2 XSDビジュアル・エディタでXMLスキーマを作成したときの処理内容

- 15.5.3 XSDビジュアル・エディタにおけるXSDコンポーネントの表示の理解

- 15.5.3.1 XSDコンポーネントの選択

- 15.5.3.2 XMLスキーマ・コンポーネント

- 15.5.3.3 choiceコンポーネント

- 15.5.3.4 allコンポーネント

- 15.5.3.5 sequenceコンポーネント

- 15.5.3.6 カーディナリティと順序性

- 15.5.3.7 complexTypeコンポーネント

- 15.5.3.8 属性グループ・コンポーネント

- 15.5.3.9 unionコンポーネント

- 15.5.3.10 listコンポーネント

- 15.5.4 XMLスキーマのXML文書からの生成方法

- 15.5.5 XSDファイルのDTDファイルからの生成方法

- 15.5.6 編集を目的としたXSDファイルの表示方法

- 15.5.7 XSDビジュアル・エディタの「設計」タブのイメージの作成方法

- 15.5.8 XSDビジュアル・エディタでのグラブ・スクロールによるナビゲート方法

- 15.5.9 XSDコンポーネント表示の展開および縮小方法

- 15.5.10 XSDビジュアル・エディタでのズーム・インおよびズーム・アウト方法

- 15.5.11 XSDコンポーネントの選択方法

- 15.5.11.1 XSDビジュアル・エディタでコンポーネントが選択されたときに行われる処理

- 15.5.12 XSDコンポーネントのターゲット位置の選択方法

- 15.5.13 XSDコンポーネントの挿入方法

- 15.5.14 XSDコンポーネントのプロパティの設定および変更方法

- 15.5.15 複数コンポーネントのプロパティの設定方法

- 15.5.16 XSDコンポーネントの切取り、コピーおよび貼付け方法

- 15.5.16.1 コンポーネントの切取り

- 15.5.16.2 コンポーネントのコピー

- 15.5.16.3 要素の貼付け

- 15.5.17 XSDコンポーネントの移動方法

- 15.5.18 XSDコンポーネントの削除方法

- 15.6 XSQLサーブレットを使用したデータ・バインドXMLページの開発

- 15.6.1 XSQLサーブレット・クライアントのサポート

- 15.6.1.1 XSQLサーブレットとは

- 15.6.1.2 XSQLサーブレットの使用方法

- 15.6.2 XSQLファイルの作成方法

- 15.6.3 XSQLタグを使用したXMLファイルの編集方法

- 15.6.4 XSQLタグの追加方法

- 15.6.5 XSQLファイルの構文のチェック方法

- 15.6.6 データベースにアクセスするXSQLサーブレット・クライアントの作成方法

- 15.6.7 ビジネス・コンポーネント用XSQLサーブレット・クライアントの作成

- 15.6.7.1 ビジネス・コンポーネントXSQLアクション・ハンドラについての注意事項

- 15.6.8 XSQLのカスタム・アクション・ハンドラの作成方法

- 15.6.9 XSQLサーブレット・クライアントの実行およびデプロイ方法

- 15.6.10 実行中のXSQLファイルからのRAW XMLデータとしての出力の表示方法

- 15.6.11 スタイルシートを使用したXMLデータの書式設定方法

- 15.6.12 XSQLファイル用XSLスタイルシートの作成方法

- 15.6.13 XSQL構成ファイルの変更方法

- 15.6.14 XSQLファイルでのXMLメタデータ・プロパティの使用

- 15.6.14.1 XML_ELEMENTの使用

- 15.6.14.2 XML_ROW_ELEMENTの使用

- 15.6.14.3 XML_CDATAの使用

- 15.6.14.4 XML_EXPLICIT_NULLの使用

16 Webサービスの開発および保護

- 16.1 Webサービスの開発および保護について

- 16.1.1 Webサービスの検出および使用

- 16.1.2 Webサービスの開発およびデプロイ

- 16.2 JDeveloperを使用したWebサービスの作成および使用

- 16.2.1 プロキシ設定およびJDeveloperの使用方法

- 16.2.2 Webサービスのコンテキスト・ルートの設定方法

- 16.2.3 Webサービスとともに使用する接続の構成方法

- 16.2.4 型マッピングの使用方法

- 16.2.5 PL/SQL Webサービスおよび型の使用方法

- 16.2.6 デプロイメント・プラットフォームの選択方法

- 16.2.7 Webサービスのコード・インサイトの使用方法

- 16.2.8 JAX-RPC 10.1.3 Webサービスの移行方法

- 16.3 UDDIレジストリのWebサービスの使用

- 16.3.1 UDDIレジストリ接続の定義方法

- 16.3.1.1 UDDIレジストリ接続の作成

- 16.3.1.2 UDDIレジストリ接続の名前の編集

- 16.3.1.3 UDDIレジストリ接続のビューの変更

- 16.3.1.4 UDDIレジストリ接続のリフレッシュ

- 16.3.1.5 UDDIレジストリ接続の削除

- 16.3.2 UDDIレジストリ接続のビューの構成方法

- 16.3.2.1 ビジネス・ビューの選択

- 16.3.2.2 カテゴリ・ビューの選択

- 16.3.3 UDDIレジストリのWebサービスの検索方法

- 16.3.4 UDDIレジストリのWebサービスを使用するためのプロキシの生成方法

- 16.3.5 UDDIレジストリのWebサービスのレポートの表示方法

- 16.3.6 UDDIレジストリへのWebサービスの公開方法

- 16.4 Webサービス・クライアントの作成

- 16.4.1 クライアントおよびプロキシ・クラスの作成方法

- 16.4.2 Webサービス・クライアントおよびプロキシ・クラスの使用方法

- 16.4.2.1 スタンドアロン・クライアント・アプリケーションの使用方法

- 16.4.2.2 Java Standard Edition (SE)クライアント・アプリケーションの使用方法

- 16.4.2.3 WebLogic ServerにデプロイされたJava EEコンポーネント・クライアント・アプリケーションの使用方法

- 16.4.3 Webサービス・クライアントの作成に使用されたWSDLの表示方法

- 16.4.4 実行時のWebサービスWSDLの更新方法

- 16.4.4.1 XMLカタログ・ファイルの使用方法

- 16.4.4.2 Webサービス・インジェクション(@WebServiceRef)およびデプロイメント・プランの使用方法

- 16.4.5 Webサービス・クライアントおよびプロキシ・クラスの再生成方法

- 16.4.6 Webサービス・クライアントの管理方法

- 16.4.7 @WebServiceRef注釈を使用したWebサービスの参照方法

- 16.5 SOAP Webサービスの作成(ボトム・アップ)

- 16.5.1 Java Webサービスの作成方法

- 16.5.2 JSR-181注釈の使用方法

- 16.5.3 PL/SQL Webサービスの作成方法

- 16.5.4 TopLinkデータベースWebサービス・プロバイダの作成方法

- 16.5.5 Webサービスの原子性トランザクションの使用方法

- 16.5.6 ソースからのWebサービスの再生成方法

- 16.5.7 ハンドラの使用方法

- 16.5.8 JAX-RPCのスーパークラス・メソッドの公開方法

- 16.5.9 オーバーロードのメソッドの処理方法

- 16.5.10 JAX-RPCマッピング・ファイル・エディタを使用したJavaメソッドとWSDL操作間のマッピングの設定方法

- 16.6 WSDLからのSOAP Webサービスの作成(トップ・ダウン)

- 16.7 RESTful Webサービスの作成

- 16.7.1 プロジェクトへのJersey JAX-RS参照実装の追加方法

- 16.7.2 JAX-RS Webサービスおよびクライアントの作成方法

- 16.8 WSDLの管理

- 16.8.1 WSDLドキュメントの作成方法

- 16.8.2 Webサービス・プロジェクトへのWSDLの追加方法

- 16.8.3 WebサービスのWSDLの表示方法

- 16.8.4 ローカル・ディレクトリへのWSDLの保存方法

- 16.9 ポリシーとWebサービスの使用

- 16.9.1 Oracle WSMポリシーについての注意事項

- 16.9.2 Oracle WebLogic Webサービス・ポリシーについての注意事項

- 16.9.3 Webサービスへのポリシーのアタッチ方法

- 16.9.4 Webサービス・クライアントへのOracle WSMポリシーのアタッチ方法

- 16.9.5 WebLogic Webサービス・ポリシーを使用して保護されたWebサービスの呼出し方法

- 16.9.6 Webサービスのポリシーの編集および削除方法

- 16.9.7 カスタムWebサービス・ポリシーの使用方法

- 16.9.7.1 Oracle WSMカスタム・ポリシーの使用

- 16.9.7.2 Oracle WebLogicカスタムWebサービス・ポリシーの使用

- 16.9.8 異なるOracle WSMポリシー・ストアの使用方法

- 16.10 Webサービスの編集および削除

- 16.11 Webサービスのテストおよびデバッグ

- 16.11.1 ブラウザでのWebサービスのテスト方法

- 16.11.2 Webサービスのデバッグ方法

- 16.12 Webサービスのデプロイ

- 16.12.1 統合WebLogic ServerへのWebサービスのデプロイ方法

- 16.12.2 Oracle WebLogic ServerへのWebサービスのデプロイ方法

- 16.12.3 Webサービスのアンデプロイ方法

- 16.13 Webサービスの監視と分析

- 16.13.1 ナビゲータでのWebサービスの分析方法

- 16.13.2 Webサービス・ログの作成および分析方法

- 16.13.2.1 Webサービスの実行および分析についての注意事項

- 16.13.3 統合サーバーで実行中のWebサービスの分析方法

- 16.13.3.1 エンドポイント・アドレスの変更

- 16.13.3.2 WSDLの変更なしでのエンドポイント・アドレスの変更(JAX-WSのみ)

- 16.13.4 HTTPアナライザを使用したWebサービスの調査方法

第IV部 Javaアプリケーションの開発

17 Javaアプリケーションの開発に関するスタート・ガイド

- 17.1 Javaアプリケーションの開発について

- 17.2 Javaソース・エディタについて

- 17.3 Javaソース・エディタの機能の理解

- 17.3.1 コード・インサイトの使用

- 17.3.1.1 Javaコードへの注釈の追加

- 17.3.2 コード・ピークの使用

- 17.3.3 スクロール・ヒントの使用

- 17.3.4 インクリメンタル検索

- 17.3.5 ショートカット・キーの使用

- 17.3.6 ブックマーキング

- 17.3.7 Javaソースの参照

- 17.3.8 コード・テンプレートの使用

- 17.4 Javaソース・エディタのプリファレンスの設定

- 17.4.1 Javaソース・エディタのコード・インサイト・オプションの設定方法

- 17.4.2 Javaソース・エディタのコメントおよびカッコの一致オプションの設定方法

- 17.4.3 Javaソース・エディタの自動Import Assistanceの有効化方法

- 17.4.4 Javaソース・エディタのimport文ソート・オプションの設定方法

- 17.5 ツールバー・オプションの使用

- 17.6 「クイック・アウトライン」ウィンドウの使用

- 17.7 Java UIビジュアル・エディタについて

- 17.7.1 Java SwingおよびAWTコンポーネント

18 Javaでのプログラミング

- 18.1 Javaでのプログラミングについて

- 18.2 Javaコードでのナビゲート

- 18.2.1 クラスおよびインタフェースの参照方法

- 18.2.2 変数、クラスまたはメソッドの宣言の検索方法

- 18.2.3 クラスまたはインタフェースの使用方法の検索方法

- 18.2.4 メソッドの使用方法の検索方法

- 18.2.5 フィールドの使用方法の検索方法

- 18.2.6 ローカル変数またはパラメータの使用方法の検索方法

- 18.2.7 オーバーライドされるメソッド定義の検索方法

- 18.2.8 実装されたメソッド宣言の検索方法

- 18.2.9 クラスまたはインタフェースの階層の表示方法

- 18.2.10 クラスのメンバーのステップ実行

- 18.3 Javaコードの編集

- 18.3.1 Javaビジュアル・エディタでのコードの編集

- 18.3.2 Javaビジュアル・エディタを開く

- 18.3.3 Javaビジュアル・エディタのプロキシ・クラスの理解

- 18.3.4 Javaビジュアル・エディタへのカスタム・コンポーネントのプロキシの登録

- 18.3.5 新規Javaクラスの作成方法

- 18.3.6 新規Javaインタフェースの作成方法

- 18.3.7 Javaインタフェースの実装方法

- 18.3.8 メソッドのオーバーライド方法

- 18.3.9 コード・テンプレートの使用方法

- 18.3.10 事前定義済のコード・テンプレートの使用

- 18.3.11 選択したテキストを拡張または縮小する方法

- 18.3.12 コーディング構造でコードを囲む方法

- 18.3.13 import文の追加

- 18.3.14 import文の編成方法

- 18.4 ドキュメント・コメントの追加

- 18.4.1 ドキュメント・コメントの追加方法

- 18.4.2 ドキュメント・コメントの編集方法

- 18.4.3 ドキュメント・コメントの更新方法

- 18.4.4 ドキュメント・コメントの監査方法

- 18.5 Javaソース・エディタのJavadocオプションのカスタマイズ方法

- 18.5.1 ドキュメント・コメントの追加方法

- 18.5.2 プロジェクトのJavadocプロパティの設定方法

- 18.5.3 クイックJavadocを使用してコード要素のJavadocを表示する方法

- 18.5.4 ドキュメント・コメントのプレビュー方法

- 18.6 Javaプロジェクトのビルド

- 18.6.1 「メイク」コマンドおよび「再ビルド」コマンドによるビルド

- 18.6.1.1 メイクによるコンパイル

- 18.6.1.2 再ビルドによるコンパイル

- 18.6.1.3 依存性チェックの理解

- 18.6.1.4 コンパイルするプロジェクトの設定方法

- 18.6.1.5 コンパイル用のネイティブ・エンコーディングの指定方法

- 18.6.2 アプリケーションおよびプロジェクトのコンパイル

- 18.6.2.1 コマンドラインからのコンパイル

- 18.6.3 アプリケーションおよびプロジェクトのクリーン

- 18.6.3.1 「クリーン」コマンドの実行方法

- 18.6.4 Javadocの実行方法

- 18.6.5 Apache Antによるビルド

- 18.6.5.1 プロジェクト・ビルドファイル・ターゲットに対するAntの実行

- 18.6.5.2 IDEでのAntツールの使用

- 18.6.6 Apache Mavenによるビルドと実行

- 18.6.6.1 プロジェクト・オブジェクト・モデルの理解

- 18.6.6.2 プロジェクト・オブジェクト・モデルの作成方法

- 18.6.6.3 プロジェクトからMaven POMを作成する方法

- 18.6.6.4 アプリケーションからプロジェクト・オブジェクト・モデルを作成する方法

- 18.6.6.5 Mavenテンプレートの作成

- 18.6.6.6 Mavenプロジェクトの実行方法

- 18.6.6.7 Mavenのバージョンの変更方法

- 18.6.6.8 プロジェクト・プロパティの設定方法

- 18.6.6.9 「ログ」ウィンドウのプリファレンスの設定方法

- 18.6.7 手動でのプロファイルの作成

- 18.7 JavaBeansの使用

- 18.7.1 JDeveloperでのJavaBeansの使用

- 18.7.2 JavaBeanの作成方法

- 18.7.3 BeanInfoクラスの作成方法

- 18.7.4 イベント処理メソッドの実装方法

- 18.7.5 イベント処理メソッドを作成するときに行われる処理

- 18.7.6 匿名アダプタの理解

- 18.7.7 標準イベント・アダプタの理解

- 18.7.8 標準アダプタをプロジェクトのデフォルトにする方法

- 18.7.9 イベント処理アダプタの選択方法

- 18.7.10 イベント・セットの作成方法

- 18.7.11 カスタマイザの作成方法

- 18.7.12 コンポーネントがイベントを起動できるようにする方法

- 18.8 Javaプロジェクトのリファクタ

- 18.8.1 Javaクラス図でのリファクタ

- 18.8.2 リファクタ操作の呼出し方法

- 18.8.3 コード要素の名前の変更方法

- 18.8.4 コード要素の削除方法

- 18.8.5 リファクタ操作のプレビュー方法

- 18.8.6 クラスおよびインタフェースのリファクタ

- 18.8.6.1 パッケージ、クラスまたはインタフェースの移動方法

- 18.8.6.2 クラスまたはインタフェースの複製方法

- 18.8.6.3 クラスからインタフェースを抽出する方法

- 18.8.6.4 スーパークラスの抽出方法

- 18.8.6.5 可能な場合のスーパータイプの使用方法

- 18.8.6.6 匿名クラスの内部クラスへの変換方法

- 18.8.6.7 内部クラスの移動方法

- 18.8.7 メンバーのリファクタ

- 18.8.7.1 クラス・メンバーの移動方法

- 18.8.7.2 メソッドのシグネチャを変更する方法

- 18.8.7.3 メソッドをstaticメソッドに変更する方法

- 18.8.7.4 メンバーをスーパークラスへプル・アップする方法

- 18.8.7.5 メンバーをサブクラスへプッシュ・ダウンする方法

- 18.8.8 式のリファクタ

- 18.8.8.1 メソッド・コールをインライン化する方法

- 18.8.8.2 フィールドの導入方法

- 18.8.8.3 変数の導入方法

- 18.8.8.4 パラメータの導入方法

- 18.8.8.5 定数の導入方法

- 18.8.8.6 メソッドの抽出方法

- 18.8.8.7 コンストラクタをファクトリ・メソッドと置換する方法

- 18.8.8.8 フィールドをカプセル化する方法

- 18.8.8.9 ブール式の反転方法

- 18.9 アプリケーションのパフォーマンスの最適化

- 18.9.1 コード監査規則の理解

- 18.9.2 監査のコード測定の理解

- 18.9.3 コード監査ツールの使用

- 18.9.3.1 「コード監査」ウィンドウの「レポート」パネルの使用

- 18.9.3.2 「コード監査」ウィンドウのツールバーの使用

- 18.9.3.3 フィルタの使用

- 18.9.3.4 「コード監査」ウィンドウのポップアップ・メニューの使用

- 18.9.4 JDeveloperでJavaコードを監査する方法

- 18.9.5 コマンドラインからのJavaコードの監査

- 18.9.6 コード監査レポート生成のためにコード監査を実行する方法

- 18.9.7 serialVersionUIDを持たないシリアル化可能フィールドのコード監査方法

- 18.9.8 シリアライズできないフィールドのコード監査方法

- 18.9.9 コード監査レポートの表示

- 18.9.10 コード監査レポートのリフレッシュ

- 18.9.11 コード監査レポート列の編成

- 18.9.12 コード監査レポート行の編成方法

- 18.9.13 コード監査レポート行のフィルタ方法

- 18.9.14 コード監査レポートの保存方法

- 18.9.15 コード監査レポートの違反またはコード測定結果のインスペクト方法

- 18.9.16 コード監査規則違反の修正方法

- 18.9.17 構成メンバーのコード監査規則違反を修正する方法

- 18.9.18 コード監査規則違反を非表示にする方法

- 18.9.19 コード監査レポートのコード測定結果を非表示にする方法

- 18.9.20 コード監査プロファイルの管理

- 18.9.21 コード監査プロファイルの作成方法

- 18.9.22 コード監査プロファイルの変更方法

- 18.9.23 コード監査プロファイルの削除方法

- 18.9.24 コード監査プロファイルをインポートまたはエクスポートする方法

- 18.9.25 コード監査規則、コード・アシストおよびコード測定の参照方法

- 18.9.26 コード監査プロファイルをアクティブ化および非アクティブ化する方法

- 18.9.27 コード監査テストのプロパティ値の設定方法

- 18.10 プロジェクトのプロファイリング

- 18.10.1 メモリー・プロファイラ・ビューの理解

- 18.10.2 アプリケーションのプロファイリング

- 18.10.3 プロファイラの構成

- 18.10.4 CPUプロファイリングの理解

- 18.10.5 メモリー・プロファイリングの理解

- 18.10.6 プロファイラのパフォーマンスの理解

- 18.10.7 プロファイラ・ユースケースの理解

- 18.10.8 JDeveloperでのプロジェクトのプロファイリング方法

- 18.10.9 CPUプロファイリング

- 18.10.10 CPUプロファイラ・ビューの理解

- 18.10.11 CPU時間のサンプリング結果の理解

- 18.10.12 メソッド・コール・カウントの結果の理解

- 18.10.13 CPUプロファイラのオプションの設定方法

- 18.10.14 CPUプロファイラの開始方法

- 18.10.15 メモリー・プロファイリング

- 18.10.15.1 メモリー・プロファイラ・ビューの理解

- 18.10.15.2 参照スナップショットの理解

- 18.10.15.3 メモリー・プロファイラのオプションの設定方法

- 18.10.15.4 メモリー・プロファイリング・セッションの開始方法

- 18.10.16 リモート・プロファイリング

- 18.10.17 JVMに対するプロファイラ・エージェント・サポートの理解

- 18.10.18 プロファイラ・エージェントの起動方法

- 18.10.19 プロファイラとJavaプログラムのリモートでの接続方法

- 18.10.20 実行中のプロセスに対してプロファイラを動的にアタッチおよび連結解除する方法

- 18.10.21 プロファイル・ポイントの設定方法

- 18.10.22 プロファイラ・セッションの保存および開始

- 18.10.23 HPROF形式のヒープ・ダンプを開く方法

- 18.11 Javaクラスのモデリング

- 18.11.1 依存関係のモデリング

- 18.11.2 Javaクラス、インタフェースおよび列挙の作成

- 18.11.2.1 Javaインタフェースのモデリング

- 18.11.2.2 内部Javaクラスおよび内部Javaインタフェースのモデリング

- 18.11.2.3 列挙のモデリング

- 18.11.3 Javaクラス図でのコンポジットのモデリング

- 18.11.4 Javaクラス図での継承のモデリング

- 18.11.4.1 モデリングされたJavaクラスの拡張

- 18.11.4.2 モデリングされたJavaインタフェースの実装

- 18.11.5 Javaフィールドとメソッドのモデリング

- 18.11.6 Javaクラス図でのパッケージのモデリング

- 18.11.7 関連クラスをダイアグラムに表示する方法

- 18.11.8 Javaクラス間の参照を非表示にする方法

- 18.11.9 Javaクラスのモデリング時の処理内容

- 18.11.10 Javaクラスのダイアグラムの作成方法

- 18.12 JUnitによるユニット・テス

- 18.12.1 JUnitのインストール方法

- 18.12.2 Javaプロジェクトに対するJUnitテストの作成

- 18.12.3 JUnitカスタム・テスト・フィクスチャの作成方法

- 18.12.4 JunitのJDBCテスト・フィクスチャの作成方法

- 18.12.5 JUnitテスト・ケースの作成

- 18.12.6 JUnitテスト・スイートの作成

- 18.12.7 JUnitテスト・ケースにテストを追加する方法

- 18.12.8 プロジェクトのすべてのテスト・ケースでテスト・スイートを更新する方法

- 18.12.9 JUnitテスト・スイートの実行方法

19 Javaプログラムの実行およびデバッグ

- 19.1 Javaプログラムの実行およびデバッグについて

- 19.2 Run Managerの理解

- 19.3 プロジェクトを実行用に設定する方法

- 19.4 アプレットの実行

- 19.4.1 引数の格納にHTMLファイルを使用

- 19.5 プロジェクトまたはファイルの実行方法

- 19.5.1 コマンドラインからのプロジェクトの実行方法

- 19.5.2 Java Virtual Machineの変更方法

- 19.5.3 プログラム用クラスパスの設定

- 19.5.3.1 CLASSPATH環境変数の設定(java.exeの場合)

- 19.5.3.2 JDeveloperライブラリのCLASSPATHの使用方法

- 19.5.3.3 プロジェクトを含めるようにCLASSPATHを設定する

- 19.5.3.4 CLASSPATHパラメータの設定(java.exeの場合)

- 19.5.3.5 <APPLET>タグへのCLASSPATHパラメータの埋込み

- 19.6 デバッガについて

- 19.6.1 デバッガのアイコンの理解

- 19.6.2 JDeveloperでのプロジェクトのデバッグ方法

- 19.6.3 ADFコンポーネントのデバッグ方法

- 19.6.4 プロジェクトをデバッグ用に設定する方法

- 19.6.5 デバッガ開始オプションの設定方法

- 19.6.6 デバッガの起動方法

- 19.6.7 デバッグ情報をファイルにエクスポートする方法

- 19.6.8 デバッグ時のソース・エディタの使用方法

- 19.6.9 デバッガでのJava式の使用方法

- 19.6.10 デバッグ中のコード内の移動

- 19.6.11 メソッドのトレース実行

- 19.6.12 メソッドのステップ実行

- 19.6.13 トレースするクラスの制御

- 19.6.14 トレース・リストに基づく動作のステップ実行方法

- 19.6.15 スレッドの実行ポイントの検索方法

- 19.6.16 カーソル位置までの実行方法

- 19.6.17 デバッガの一時停止および再開方法

- 19.6.18 デバッグ・セッションの終了方法

- 19.6.19 デバッガ・ログの表示方法

- 19.6.20 アプレットのデバッグ方法

- 19.6.21 JavaScriptプログラムのデバッグ方法

- 19.7 デバッガ・ウィンドウの使用方法

- 19.7.1 「ブレークポイント」ウィンドウの使用方法

- 19.7.2 「スマート・データ」ウィンドウの使用方法

- 19.7.3 「データ」ウィンドウの使用方法

- 19.7.4 「監視式」ウィンドウの使用方法

- 19.7.5 「インスペクタ」ウィンドウの使用方法

- 19.7.6 「ヒープ」ウィンドウの使用方法

- 19.7.7 「スタック」ウィンドウの使用方法

- 19.7.8 「クラス」ウィンドウの使用方法

- 19.7.9 「モニター」ウィンドウの使用方法

- 19.7.10 「スレッド」ウィンドウの使用方法

- 19.7.11 「デバッガ」ウィンドウの作業環境の設定方法

- 19.8 ブレークポイントの管理

- 19.8.1 確認済および未確認ブレークポイントについて

- 19.8.2 デッドロックの理解

- 19.8.3 デッドロック・ブレークポイントの理解

- 19.8.4 グループ化されたブレークポイントの理解

- 19.8.5 ブレークポイントの編集方法

- 19.8.6 ソース・ブレークポイントの設定方法

- 19.8.7 ブレークポイントの動作の制御方法

- 19.8.8 ブレークポイントを有効/無効にする方法

- 19.8.9 インスタンス・ブレークポイントの設定方法

- 19.8.10 例外ブレークポイントの設定方法

- 19.8.11 ブレークポイントを条件付きにする方法

- 19.8.12 パスの回数ブレークポイントの使用

- 19.8.13 「ブレークポイント」ウィンドウでブレークポイントを調べる方法

- 19.8.14 ブレークポイント・グループの管理方法

- 19.9 デバッガのウィンドウでプログラムの状態を確認する

- 19.9.1 データ要素のインスペクトおよび変更方法

- 19.9.2 監視式の設定方法

- 19.9.3 「インスペクタ」ウィンドウでの式の変更方法

- 19.9.4 「フィルタ対象クラス」リストでフィールドの表示/非表示を切り替える方法

- 19.10 Javaプログラムのリモート・デバッグ

- 19.10.1 デバッグ・モードでのJavaプロセスの開始方法

- 19.10.2 JavaScriptデバッガを使用したリモート・デバッグの方法

- 19.10.3 リモート・デバッグ用に設定されたプロジェクトの使用方法

- 19.10.4 JPDAリモート・デバッグの設定方法

20 Java Swingユーザー・インタフェースの実装

- 20.1 Java Swingユーザー・インタフェースの実装について

- 20.2 JDeveloperのユーザー・インタフェース設計ツールの理解

- 20.3 Swingアプリケーションのルック・アンド・フィールの制御

- 20.3.1 Oracleルック・アンド・フィールの変更方法

- 20.3.2 Windowsルック・アンド・フィールの変更方法

- 20.3.3 Metalルック・アンド・フィールの変更方法

- 20.4 Java SwingおよびAWTコンポーネントの使用

- 20.4.1 Swing JavaBeansコンポーネントの使用

- 20.4.2 AWT JavaBeansの使用

- 20.5 レイアウト・マネージャの使用

- 20.5.1 サイズ設定プロパティの理解

- 20.5.2 JDeveloperで提供されるレイアウトの理解

- 20.5.3 BorderLayoutの使用

- 20.5.4 BoxLayout2の使用

- 20.5.5 CardLayoutの使用

- 20.5.5.1 CardLayoutコンテナの作成方法

- 20.5.5.2 CardLayoutコンテナの周囲のギャップの指定方法

- 20.5.6 FlowLayoutの使用

- 20.5.7 FormLayoutの使用

- 20.5.8 GridLayoutの使用

- 20.5.9 GridBagLayoutの使用

- 20.5.9.1 GridBagLayout制約の理解

- 20.5.9.2 ソース・コードでのGridBagConstraintsの手動設定

- 20.5.9.3 Javaビジュアル・エディタで使用する既存のGridBagLayoutコードの変更

- 20.5.9.4 Javaビジュアル・エディタでのGridBagLayoutの視覚的な設計

- 20.5.10 GridBagLayoutへの変換

- 20.5.11 GridBagLayoutコンテナへのコンポーネントの追加

- 20.5.12 制約プロパティ・エディタでのGridBagConstraintsの設定方法

- 20.5.13 グリッドの表示

- 20.5.14 マウスによる制約の変更

- 20.5.15 GridBagLayoutのポップアップ・メニューの使用

- 20.5.16 GridBagConstraints

- 20.5.17 OverlayLayout2の使用

- 20.5.18 PaneLayoutの使用

- 20.5.19 PaneLayoutへのコンポーネントの追加方法

- 20.5.20 Javaビジュアル・エディタでのPaneLayoutコンテナの作成方法

- 20.5.21 VerticalFlowLayoutの使用

- 20.5.22 XYLayoutの使用

- 20.5.23 レイアウト・プロパティの理解

- 20.5.24 レイアウト制約の理解

- 20.5.25 実行時のUIウィンドウのサイズと位置の決定

- 20.5.26 pack()による自動的なウィンドウ・サイズ設定

- 20.5.27 コンテナのpreferredSizeの計算方法

- 20.5.28 移植性のあるレイアウト

- 20.5.29 setSize()によるウィンドウ・サイズの明示的な設定

- 20.5.30 各種プラットフォームに移植可能にするためのUIのサイズ設定

- 20.5.31 画面上のウィンドウ配置

- 20.5.32 コードへのサイズ設定メソッド・コールと配置メソッド・コールの挿入

- 20.5.33 ネストされたコンテナおよびレイアウトの使用

- 20.5.33.1 ネストしたパネルの作成方法

- 20.5.34 カスタム・レイアウト・マネージャの追加

- 20.6 レイアウト・プロパティを使用したUIのプロトタイプ作成

- 20.6.1 プロトタイプ作成におけるnullレイアウトの使用

- 20.6.2 大きいリージョンから順番に設計

- 20.6.3 テストの前に保存

- 20.6.4 最終的なレイアウト・マネージャの選択

- 20.7 コンテナおよびコンポーネントの使用

- 20.7.1 ウィンドウの使用

- 20.7.2 パネルの使用

- 20.7.3 軽量Swingコンテナの使用

- 20.7.4 プロパティ・インスペクタでのコンポーネント・プロパティの理解

- 20.7.5 プロパティ・インスペクタでのプロパティ値の設定

- 20.7.6 複数コンポーネントの共有プロパティの設定

- 20.7.7 ユーザー・インタフェースのレイアウト

- 20.7.8 フレームの作成方法

- 20.7.9 パネルの作成方法

- 20.7.10 ダイアログ・ボックスの作成方法

- 20.7.11 Beanでないダイアログ・ボックスの使用方法

- 20.7.12 タブ付きペインの作成方法

- 20.8 コンテナ内のコンポーネントの使用

- 20.8.1 ユーザー・インタフェースへのコンポーネントの追加方法

- 20.8.2 設計時のコンポーネント・プロパティの設定方法

- 20.8.3 コンテナのレイアウトの変更方法

- 20.8.4 コンポーネントのレイアウト制約の変更方法

- 20.8.5 ユーザー・インタフェースでのコンポーネントの選択方法

- 20.8.6 コンポーネントのサイズ設定および移動方法

- 20.8.7 コンポーネントのグループ化方法

- 20.8.8 コンポーネントのZ順序の変更方法

- 20.8.9 コンポーネントの切取り、コピー、貼付けおよび削除方法

- 20.8.10 コンポーネントのコピー方法

- 20.8.11 コンポーネントの切取り方法

- 20.8.12 コンポーネントの貼付け方法

- 20.8.13 UIからのコンポーネントの削除方法

- 20.9 メニューの使用

- 20.9.1 メニュー・コンポーネントの理解

- 20.9.2 メニュー・エディタの使用

- 20.9.3 コード・エディタとプロパティ・インスペクタの相互作用

- 20.9.4 フレームへのメニュー・コンポーネントの追加方法

- 20.9.5 ポップアップ・メニューの追加方法

- 20.9.6 サブメニューの作成方法

- 20.9.7 メニュー・エディタでのメニューのカスタマイズ

- 20.9.8 メニュー項目の追加方法

- 20.9.9 メニュー項目の無効化方法

- 20.9.10 アクセラレータの指定方法

- 20.9.11 セパレータ・バーの挿入方法

- 20.9.12 チェック可能なメニュー項目の作成方法

- 20.9.13 メニューとメニュー項目の挿入および削除方法

- 20.9.14 メニュー項目の移動方法

- 20.10 イベント処理の使用

- 20.10.1 メニュー・イベントへのイベント処理コードのアタッチ方法

- 20.10.2 コンポーネント・イベントへのイベント処理コードのアタッチ方法

- 20.11 アプレットの使用

- 20.11.1 アプレットの作成方法

- 20.11.2 アプレットHTMLファイルの作成方法

- 20.11.3 アプレットを含んだHTMLページの変換方法

- 20.11.4 アプレットのデプロイ

- 20.11.4.1 デプロイ用のアプレットの構成方法

- 20.11.4.2 WARファイルとしてのアプレットのデプロイ方法

- 20.12 UIデバッガの使用

- 20.12.1 「UIデバッガ」ウィンドウの使用

- 20.12.2 UIデバッガの起動方法

- 20.12.3 アプリケーション・コンポーネント階層の検査

- 20.12.4 「監視」ウィンドウでのコンポーネント情報の表示方法

- 20.12.5 「インスペクタ」ウィンドウでのUIコンポーネントのインスペクト方法

- 20.12.6 コンポーネントにより生成されるイベントのトレース方法

- 20.12.7 イベント・リスナーの表示方法

- 20.12.8 GUIアプリケーションのリモート・デバッグ方法

- 20.12.9 リスナーの自動検出

第V部 モデル化を使用するアプリケーション開発

21 ダイアグラムを使用したアプリケーションのモデル化に関するスタート・ガイド

- 21.1 ダイアグラムを使用したモデル化について

- 21.2 ダイアグラム・タイプ

- 21.2.1 UMLダイアグラム

- 21.2.2 ビジネス・サービス図

- 21.3 モデル化プロジェクトに対するパスの設定方法

22 ダイアグラムの作成、使用および管理

- 22.1 ダイアグラムの作成、使用および管理について

- 22.2 基本的なダイアグラム作成コマンドの使用方法

- 22.3 ダイアグラムのノードと要素の操作

- 22.3.1 ノードの操作方法

- 22.3.2 ダイアグラム要素の操作方法

- 22.3.2.1 ダイアグラム要素のサイズ変更と移動の方法

- 22.3.2.2 ダイアグラム要素の削除方法

- 22.3.2.3 ダイアグラム上で直前の操作を取り消す方法

- 22.3.2.4 ダイアグラムから独立したUML要素の作成方法

- 22.4 ダイアグラム注釈の操作方法

- 22.5 ダイアグラムの表示方法の変更

- 22.5.1 ダイアグラムで連結部の表示/非表示を切り替え、レイアウトする方法

- 22.5.1.1 改ページの表示/非表示を切り替える方法

- 22.5.1.2 ダイアグラムで連結部をレイアウトする方法

- 22.6 ダイアグラムのレイアウト

- 22.6.1 ダイアグラムのレイアウト・スタイルの使用方法

- 22.6.1.1 階層UMLダイアグラム・レイアウト

- 22.6.1.2 対称ダイアグラム

- 22.6.1.3 直交UMLレイアウト

- 22.6.1.4 グリッド・ダイアグラム

- 22.6.1.5 ダイアグラム・グリッドを使用したダイアグラムのレイアウト方法

- 22.6.2 ダイアグラム要素の位置合せと配置の方法

- 22.6.3 ダイアグラム要素のレイアウト方法

- 22.7 Javaクラスおよびインタフェースの変換

- 22.7.1 UMLとオフライン・データベースの変換方法

- 22.7.2 DatabaseProfileの使用

- 22.8 XMIを使用したUMLのインポートおよびエクスポート

- 22.8.1 XMIを使用してUMLモデルをインポートおよびエクスポートする方法

- 22.8.2 インポート時の一般的なエラー・メッセージ

- 22.9 UMLプロファイルの使用

- 22.10 UMLクラス図の操作

- 22.10.1 クラス図の操作方法

- 22.10.1.1 クラス図の読み方

- 22.10.1.2 UML操作の表記法の指定方法

- 22.10.2 クラス図のリファクタ

- 22.10.2.1 リファクタ操作の開始方法

- 22.11 UMLアクティビティ図の操作

- 22.11.1 アクティビティ図の操作方法

- 22.11.1.1 アクティビティ図の要素の詳細な確認

- 22.12 シーケンス図の操作

- 22.12.1 シーケンス図の操作方法

- 22.12.1.1 シーケンス図の要素の詳細な確認

- 22.12.1.2 シーケンス図の結合フラグメント・ロックの使用方法

- 22.12.1.3 結合フラグメントの使用

- 22.13 ユースケース図の操作

- 22.13.1 ユースケース図の操作方法

- 22.13.1.1 ユースケース図の要素の詳細な確認

- 22.13.1.2 ユースケース・テンプレートの使用方法

- 22.13.1.3 ユースケースのコンポーネント・パレット・テンプレートの使用方法

- 22.14 ディスクへのダイアグラムの格納

- 22.15 ディスクへのUML要素の格納方法

23 モデル化によるJava EEおよびJavaアプリケーションの開発

- 23.1 モデル化によるJava EEおよびJavaアプリケーションの開発

- 23.2 ビジネス・コンポーネント・ダイアグラム

- 23.3 ダイアグラムでのEJB/JPAコンポーネントのモデル化

- 23.3.1 EJB/JPAコンポーネントのダイアグラムの作成

- 23.3.2 EJB/JPAコンポーネント・ダイアグラムの読み方

- 23.3.3 JPA関連のモデル化の方法

- 23.3.4 ダイアグラムでのEJB/JPAコンポーネントのモデル化の方法

- 23.3.5 プロパティおよびメソッドのモデル化

- 23.3.5.1 モデル化されたBeanでのプロパティの作成

- 23.3.5.2 モデル化されたBeanでのメソッドの作成

- 23.3.6 クロス・コンポーネント参照のモデル化の方法

- 23.3.7 モデル化されたBeanの実装ソース・コードの表示方法

- 23.3.8 モデル化されたBeanのソース・コードの表示方法

- 23.3.9 プロパティまたはメソッドのアクセス・レベルの変更方法

- 23.3.10 ダイアグラムでのJPAエンティティのリバース・エンジニアリングの方法

- 23.4 Javaクラス図

- 23.5 データベース・ダイアグラム

- 23.5.1 データベースのモデル化機能の使用方法

- 23.5.1.1 データベースのモデル化のメリット

- 23.5.1.2 データベースのモデル化の開始方法

- 23.5.1.3 データベースまたはスキーマの変更方法

第VI部 データベースの使用

24 データベースの使用に関するスタート・ガイド

- 24.1 データベースの使用について

- 24.1.1 データベースの接続および使用

- 24.1.2 データベースの設計

- 24.2 Oracle Database 10g Express Editionのスタート・ガイド

- 24.3 データベースのプリファレンスおよびプロパティの管理方法

25 データベース・ツールの使用

- 25.1 データベース・ナビゲータの使用

- 25.2 「構造」ウィンドウの使用

- 25.3 データベース・レポート・ナビゲータの使用

- 25.4 「データベース・オブジェクトの検索」ウィンドウの使用

- 25.5 SQLワークシートの使用

- 25.5.1 実行計画の使用

- 25.5.2 SQLワークシート履歴から文を再実行する方法

- 25.6 「SQL履歴」ウィンドウの使用

- 25.7 「スニペット」ウィンドウの使用

- 25.8 データベース・オブジェクト・ビューアの使用

- 25.8.1 データベース・オブジェクト・ビューアのタブのツールバー

- 25.9 SQL*Plusの使用

- 25.10 「DBMS出力」ウィンドウ

- 25.11 「OWA出力」ウィンドウ

26 データベースへの接続と使用

- 26.1 データベースへの接続と使用について

- 26.2 データベース接続の設定

- 26.2.1 接続の有効範囲

- 26.2.2データベース接続の作成時に行われる処理

- 26.2.3 接続プロパティのデプロイについて

- 26.2.4 データベース接続の作成方法

- 26.2.5 OCI8によるOracle Databaseへの接続

- 26.2.6 データベース接続の編集方法

- 26.2.7 データベース接続のエクスポートとインポートの方法

- 26.2.7.1 データベース接続のエクスポート

- 26.2.7.2 データベース接続のインポート

- 26.2.8 データベース接続のオープンとクローズの方法

- 26.2.9 データベース接続の削除方法

- 26.2.10 新規のサード・パーティ製JDBCドライバの登録方法

- 26.2.11 Oracle以外のデータベースのユーザー・ライブラリを作成する方法

- 26.2.12 OracleのType 2 JDBCドライバ(OCI)に対する接続要件

- 26.3 データベースの参照および検索

- 26.3.1 データベースの参照

- 26.3.1.1 オンライン・データベースの参照

- 26.3.1.2 オフライン・データベース・オブジェクトの参照

- 26.3.1.3 オンラインおよびオフラインのデータベース・オブジェクトを表示する方法

- 26.3.2 オンライン・データベース・オブジェクトの参照方法

- 26.3.3 オフライン・データベースおよびスキーマの参照方法

- 26.3.4 データベース・フィルタの使用方法

- 26.3.5 データベース・フィルタの有効化と無効化の方法

- 26.3.6 データベース・オブジェクト・ビューアでデータベース表を開く方法

- 26.3.7 表データの編集方法

- 26.3.8 データベースでのオブジェクトの検索方法

- 26.4 データベースへの接続

- 26.4.1 データベースへの接続の作成時に行われる処理

- 26.4.2 Oracle Databaseへの接続の作成方法

- 26.4.2.1 Oracle Databaseへの接続の作成方法

- 26.4.2.2 MySQLへの接続の作成方法

- 26.4.2.3 Oracle TimesTen In-Memory Databaseへの接続の作成方法

- 26.4.2.4 Oracle Database Liteへの接続の作成方法

- 26.4.3 Oracle以外のデータベースへの接続の作成方法

- 26.4.3.1 Apache Derbyへの接続の作成方法

- 26.4.3.2 IBM DB2 Universal Databaseへの接続の作成方法

- 26.4.3.3 IBM Informix Dynamic Serverへの接続の作成方法

- 26.4.3.4 Microsoft SQL Serverへの接続の作成方法

- 26.4.3.5 SQLiteへの接続の作成方法

- 26.4.3.6 Sybase ASEへの接続の作成方法

- 26.5 データのインポートとエクスポート

- 26.5.1 SQL*Loaderを使用したデータのインポート

- 26.5.2 外部表へのデータのインポート

- 26.5.3 既存の表にデータをインポートする方法

- 26.5.4 新規の表にデータをインポートする方法

- 26.5.5 SQL*Loaderを使用してデータをインポートする方法

- 26.5.6 外部表を使用してデータをインポートする方法

- 26.5.7 データベースからのデータのエクスポート

- 26.5.8 ファイルにデータをエクスポートする方法

- 26.6 データベースのコピー、比較、エクスポート

- 26.6.1 データベースのコピー方法

- 26.6.2 データベース・スキーマの比較方法

- 26.6.3 データベースのエクスポート方法

- 26.7 OracleおよびOracle以外のデータベースの使用

- 26.8 データベース・レポートの使用

- 26.8.1 データベース・レポートの使用

- 26.8.1.1 データベース・レポートの実行方法

- 26.8.1.2 レポートのSQLを表示する方法

- 26.8.1.3 ユーザー定義データベース・レポートの作成方法

- 26.8.1.4 ユーザー定義データベース・レポートの編集方法

- 26.8.1.5 レポートのフォルダの作成方法

- 26.8.1.6 ユーザー定義レポートのエクスポート方法

- 26.8.1.7 ユーザー定義レポートのインポート方法

- 26.8.2 リファレンス: 事前定義済のデータベース・レポート

- 26.9 データベース接続のトラブルシューティング

- 26.9.1 互換性のないJDKバージョンを使用するデータベースへのデプロイ

27 Oracle JDeveloperでのデータベースの設計

- 27.1 Oracle JDeveloperでのデータベースの設計について

- 27.2 データベース・オブジェクトの作成、編集および削除

- 27.2.1 オフライン・データベース定義の使用

- 27.2.1.1 オフライン・データベース

- 27.2.1.2 オフライン・データベース・エミュレーションの構成

- 27.2.1.3 オフライン・データベースの作成方法

- 27.2.1.4 オフライン・スキーマ

- 27.2.1.5 オフライン・スキーマの作成方法

- 27.2.1.6 オフライン・データベース・オブジェクトの作成方法

- 27.2.1.7 データベース・オブジェクトに基づいたオフライン・データベース定義のインポート方法

- 27.2.1.8 オフライン表と外部キー

- 27.2.1.9 オフライン・データベース・オブジェクトのリフレッシュ方法

- 27.2.1.10 テンプレートからのオブジェクトの作成方法

- 27.2.1.11 ユーザー・プロパティ・ライブラリの使用

- 27.2.1.12 データベースに対するオフライン・データベース・オブジェクトの生成方法

- 27.2.1.13 オフライン・データベース・オブジェクトの名前変更

- 27.2.1.14 オフライン・データベース・レポートの使用

- 27.2.1.15 UMLモデルからの変換

- 27.2.1.16 ソース・コントロール・システムのオフライン・データベース・オブジェクトの使用

- 27.2.2 データベース・オブジェクトでの作業

- 27.2.3 データベース・レポートの使用

- 27.3 オフライン・オブジェクトおよびデータベース・オブジェクトからのスクリプトの作成

- 27.3.1 SQLスクリプトの作成方法

- 27.3.2 表からのOMBスクリプトの作成方法

28 データベースでのJavaの使用

- 28.1 データベースでのJavaの使用について

- 28.2 SQLJまたはJDBCの選択

- 28.2.1 SQLJの使用

- 28.2.2 Oracle JDBCドライバの使用

- 28.2.3 SQLJとJDBC

- 28.2.4 SQLJを使用したJavaプログラムでのSQLの埋込み

- 28.2.4.1 SQLファイルの作成方法

- 28.2.4.2 SQLJクラスの作成方法

- 28.2.4.3 SQLJクラスのコンパイル方法

- 28.2.4.4 名前付きSQLJ接続コンテキストの使用方法

- 28.2.4.5 SQLJ接続コンテキスト・クラスの宣言方法

- 28.2.4.6 接続コンテキスト・オブジェクトの作成方法

- 28.2.4.7 SQLJクラスのデバッグ方法

- 28.2.4.8 SQLJクラスのデバッグ方法

- 28.2.4.9 SQLJトランスレータ・オプションの設定方法

- 28.2.4.10 SQLJ接続オプションの使用方法

- 28.2.5 JDBCを使用したJavaプログラムでのSQLの埋込み

- 28.2.5.1 JDBCドライバの選択方法

- 28.2.5.2 デフォルト以外のJDBCドライバを使用するためのプロジェクトの変更方法

- 28.2.5.3 JDBC接続のコーディング方法

- 28.3 Javaを使用したOracleオブジェクトおよびPL/SQLパッケージへのアクセス

- 28.3.1 JPublisherの使用方法

- 28.3.2 JPublisherによる生成結果

- 28.3.3 プロパティ・ファイル

- 28.3.4 JPublisherで生成されるクラスの強化方法

- 28.3.5 JPublisherで生成されるクラスの拡張方法

- 28.3.6 JPublisherオプション

- 28.4 Javaストアド・プロシージャの使用

- 28.4.1 Javaストアド・プロシージャのデバッグ方法

- 28.4.2 Javaストアド・プロシージャの削除方法

29 PL/SQLおよびJavaストアド・プロシージャの実行とデバッグ

- 29.1 PL/SQLおよびJavaストアド・プロシージャの実行とデバッグについて

- 29.2 ファンクション、プロシージャおよびパッケージの実行とデバッグ

- 29.3 PL/SQLプログラムおよびJavaストアド・プロシージャのデバッグ

- 29.3.1 PL/SQLオブジェクトのデバッグ

- 29.3.1.1 JDeveloperでデバッグできるPL/SQLオブジェクト

- 29.3.1.2 注意事項

- 29.3.1.3 サポートされているOracleデータベース内のデバッグ情報の外観

- 29.3.2 データベース・デバッガ・ポートの指定方法

- 29.3.3 PL/SQLおよびJavaストアド・プロシージャのデバッグの前提条件

- 29.3.3.1 PL/SQLおよびJavaストアド・プロシージャのデバッグの前提条件

- 29.3.3.2 Javaストアド・プロシージャのデバッグの前提条件

- 29.3.4 PL/SQLプログラムのローカル・デバッグ方法

- 29.3.5 PL/SQLプログラムのリモート・デバッグ方法

- 29.3.6 デバッガで許容される有効なPL/SQL式の使用

Oracle® Fusion Middleware

Oracle JDeveloperユーザーズ・ガイド

11g リリース2(11.1.2.4.0)

B66717-04(原本部品番号:E17455-05)

2013年3月

JDeveloper IDEの使用方法を記述し、IDEで使用できる機能の詳細を説明する、Oracle JDeveloperユーザー向けのドキュメントです。

Oracle Fusion Middleware Oracle JDeveloperユーザーズ・ガイド 11g リリース2 (11.1.2.4.0)

B66717-04

Copyright © 2011, 2013 Oracle and/or its affiliates.All rights reserved.

原本著者: Catherine Pickersgill、David Mathews、Deepanjan Dey、Penny Anderson、Scott Fisher、Elizabeth Lynch、Ben Gelernter、Robin Merrin

このソフトウェアおよび関連ドキュメントの使用と開示は、ライセンス契約の制約条件に従うものとし、知的財産に関する法律により保護されています。ライセンス契約で明示的に許諾されている場合もしくは法律によって認められている場合を除き、形式、手段に関係なく、いかなる部分も使用、複写、複製、翻訳、放送、修正、ライセンス供与、送信、配布、発表、実行、公開または表示することはできません。このソフトウェアのリバース・エンジニアリング、逆アセンブル、逆コンパイルは互換性のために法律によって規定されている場合を除き、禁止されています。

ここに記載された情報は予告なしに変更される場合があります。また、誤りが無いことの保証はいたしかねます。誤りを見つけた場合は、オラクル社までご連絡ください。

このソフトウェアまたは関連ドキュメントが、米国政府機関もしくは米国政府機関に代わってこのソフトウェアまたは関連ドキュメントをライセンスされた者に提供される場合は、次のNoticeが適用されます。

U.S. GOVERNMENT RIGHTS Programs, software, databases, and related documentation and technical data delivered to U.S. Government customers are "commercial computer software" or "commercial technical data" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations.As such, the use, duplication, disclosure, modification, and adaptation shall be subject to the restrictions and license terms set forth in the applicable Government contract, and, to the extent applicable by the terms of the Government contract, the additional rights set forth in FAR 52.227-19, Commercial Computer Software License (December 2007).Oracle America, Inc., 500 Oracle Parkway, Redwood City, CA 94065.

このソフトウェアまたはハードウェアは様々な情報管理アプリケーションでの一般的な使用のために開発されたものです。このソフトウェアまたはハードウェアは、危険が伴うアプリケーション(人的傷害を発生させる可能性があるアプリケーションを含む)への用途を目的として開発されていません。このソフトウェアまたはハードウェアを危険が伴うアプリケーションで使用する際、このソフトウェアまたはハードウェアを安全に使用するために、適切な安全装置、バックアップ、冗長性(redundancy)、その他の対策を講じることは使用者の責任となります。このソフトウェアまたはハードウェアを危険が伴うアプリケーションで使用したことに起因して損害が発生しても、オラクル社およびその関連会社は一切の責任を負いかねます。

OracleおよびJavaはOracleおよびその関連企業の登録商標です。その他の名称は、それぞれの所有者の商標または登録商標です。

Intel、Intel Xeonは、Intel Corporationの商標または登録商標です。すべてのSPARCの商標はライセンスをもとに使用し、SPARC International, Inc.の商標または登録商標です。AMD、Opteron、AMDロゴ、AMD Opteronロゴは、Advanced Micro Devices, Inc.の商標または登録商標です。UNIXはThe Open Groupの登録商標です。

このソフトウェアまたはハードウェアおよびドキュメントは、第三者のコンテンツ、製品、サービスへのアクセス、あるいはそれらに関する情報を提供することがあります。オラクル社およびその関連会社は、第三者のコンテンツ、製品、サービスに関して一切の責任を負わず、いかなる保証もいたしません。オラクル社およびその関連会社は、第三者のコンテンツ、製品、サービスへのアクセスまたは使用によって損失、費用、あるいは損害が発生しても、一切の責任を負いかねます。

はじめに

『Oracle Fusion Middleware Oracle JDeveloperユーザーズ・ガイド』へようこそ。

対象読者

このドキュメントは、Oracle JDeveloperを使用する開発者を対象に、IDEで使用できる機能の詳細を説明します。

ドキュメントのアクセシビリティについて

オラクル社のアクセシビリティへの取組みの詳細は、Oracle Accessibility ProgramのWebサイトhttp://www.oracle.com/pls/topic/lookup?ctx=acc&id=docaccを参照してください。

Oracleサポートへのアクセス

Oracleカスタマは、My Oracle Supportから電子サポートにアクセスできます。詳細は、http://www.oracle.com/pls/topic/lookup?ctx=acc&id=infoまたはhttp://www.oracle.com/pls/topic/lookup?ctx=acc&id=trs (聴覚障害者向け)を参照してください。

関連ドキュメント

- Oracle Fusion Middleware Oracle JDeveloperインストレーション・ガイド

- Oracle Fusion Middleware Oracle JDeveloper Extensions開発者ガイド

- 『Oracle Fusion Middleware Oracle Application Development FrameworkのためのFusion開発者ガイド』

- 『Oracle Fusion Middleware Oracle Application Development Framework Webユーザー・インタフェース開発者ガイド』

- 『Oracle Fusion Middleware Oracle Application Development Framework Java EE開発者ガイド』

- Oracle JDeveloper 11gオンライン・ヘルプ

- Oracle JDeveloper 11gリリース・ノート(Oracle JDeveloper 11gインストール内およびOracle Technology Networkからアクセス)

表記規則

このマニュアルでは次の表記規則を使用します。

規則

意味

太字

太字は、操作に関連するGraphical User Interface要素、または本文中で定義されている用語および用語集に記載されている用語を示します。

イタリック体

イタリックは、ユーザーが特定の値を指定するプレースホルダ変数を示します。

固定幅フォント

固定幅フォントは、段落内のコマンド、URL、サンプル内のコード、画面に表示されるテキスト、または入力するテキストを示します。

リリース11.1.2.4.0のこのガイドでの新機能

リリース11.1.2.4.0の『Oracle Fusion Middleware Oracle JDeveloperユーザーズ・ガイド』は、旧バージョンのOracle JDeveloperで提供されていた文脈非依存のオンライン・ヘルプに置き換わるものです。

このガイドはOracle JDeveloperのStudio EditionおよびJava Editionの両方に適用可能ですが、次の章についてはJDeveloperのStudio Editionにのみ適用されます。

- 第9章「アプリケーションのデプロイ」

- 第11章「Webページ・ツールを使用したアプリケーションの開発」

- 第12章「EJBおよびJPAコンポーネントを使用した開発」

- 第13章「TopLinkマッピングの開発」

- 第14章「セキュアなアプリケーションの開発」

- 第V部「モデリングを使用したアプリケーションの開発」のすべての章

- 第VI部「データベースの使用」のすべての章

このリリースでOracle JDeveloperおよびOracle Application Development Framework (Oracle ADF)に加えられた変更については、Oracle Technology Networkの新しい情報に関するページ(http://www.oracle.com/technetwork/developer-tools/jdev/documentation/index.html)を参照してください。

第I部

Oracle JDeveloperの開始

ここでは、Oracle JDeveloperの操作について一般的な概念を説明し、次の章があります。

- 第1章「Oracle JDeveloperの概要」
この章では、Oracle JDeveloperについて学習しその機能を理解するために使用できるリソースを含めて、JDeveloperの概要を説明します。

- 第2章「Oracle JDeveloperのアクセシビリティ情報」
この章では、JDeveloperのアクセシビリティ機能について説明します。

- 第3章「Oracle JDeveloperの使用」
この章では、JDeveloper IDEの操作方法について説明します。

1 Oracle JDeveloperの概要

この章では、Oracle JDeveloperの概要について説明します。JDeveloperおよび今回のリリースの製品への移行を学習するために使用できるリソースに関する情報についても説明します。

この章は次の項で構成されています:

- 第1.1項「Oracle JDeveloperについて」

- 第1.2項「Oracle JDeveloperの情報リソース」

- 第1.3項「Oracle JDeveloper 11gへの移行」

1.1 Oracle JDeveloperについて

JDeveloperは、Java、XML、WebサービスおよびSQLの最新の標準を使用してアプリケーションを構築するための統合開発環境(IDE)です。これは、開発ライフサイクル全体をサポートし、アプリケーションのモデリング、コーディング、デバッグ、テスト、プロファイリング、チューニングおよびデプロイのための統合された機能を提供します。JDeveloperは、Oracle Fusion Middleware製品スイートの主要な開発プラットフォームです。これは、Windows、Linux、Mac OS Xおよびその他のUNIXベースのシステム上で動作するクロス・プラットフォームのIDEです。

Oracle JDeveloperは、視覚的で宣言的な開発手法を提供し、Oracle ADFと連携して開発を簡略化します。

JDeveloperの主要な機能は次のとおりです。

- Java、SOA、Oracle WebCenter Portal、SQLとPL/SQL、HTMLおよびJavaScriptを含む様々なテクノロジ・スタックに使用可能な一貫した開発環境。

- XMLベースのアプリケーション開発。

- データベース・オブジェクトおよびストアド・プロシージャを構築するための完全な開発およびモデル化環境。

- 本番環境にデプロイする前にアプリケーションを実行してテストするための統合ランタイム・サービスである、統合Oracle WebLogic Serverを含む様々なアプリケーション・デプロイメント・オプション。

- 開発のニーズに基づいてIDEのカスタマイズを可能にし、機能を追加する拡張機能。

JDeveloperには、Oracle JDeveloper StudioとOracle JDeveloper Javaの2つのEditionがあります。Studio Editionは、JDeveloperの完全バージョンであり、すべての機能が含まれます。Java Editionは、JavaとXMLのコア機能のみを備え、ダウンロード時間が短くなります。このガイドは、JDeveloperの両Editionに対応しています。

1.2 Oracle JDeveloperの情報リソース

この項は、Oracle JDeveloperを手早く理解し実行できるようにすることを目的としています。Oracle JDeveloperについて学習するには、このガイド以外にも、オンライン・デモ、チュートリアルおよびOracle Technology Network (OTN)フォーラムを含め、様々な方法を使用できます。詳細は、表1-1「Oracle JDeveloperリソースのサポート」を参照してください。

表1-1 Oracle JDeveloperリソースのサポート

リソース

説明

オンライン・デモ

オンライン・デモは、一般的なタスクの実行に関する視覚的な指示を提供します。デモを視聴するために必要なのは、Flashプラグインとサウンド・カードを備えたWebブラウザのみです。各デモの下部にある再生バーを使用して、デモの速度とフローを制御できます。

デモは、http://www.oracle.com/technetwork/developer-tools/jdev/overview/index-100269.htmlにあります。

Oracle JDeveloperのチュートリアル

チュートリアルは、Oracle JDeveloperの特定のタスクの実行に関する段階的な指示を提供します。

チュートリアルは、http://www.oracle.com/technetwork/developer-tools/jdev/overview/index-100269.htmlにあります。

Oracle Fusion Order Demoのサンプル・アプリケーション

Fusion Order Demo (FOD)は、Fusionテクノロジ・スタックの異なるコンポーネント(ADF、BPELおよびWebCenterポータル)間の統合を含む、Fusion Middlewareアプリケーションの一般的なユースケースをデモで示すことを目的として開発されたエンドツーエンド・アプリケーションのサンプル・アプリケーションです。デモには、機能の各部を構成する複数のアプリケーションが含まれます。

FODは、http://www.oracle.com/technetwork/developer-tools/jdev/index-095536.htmlにあります。

OTN Oracle JDeveloperフォーラム

OTNフォーラムのOracle JDeveloperページを使用すれば、質問したり、ディスカッションに投稿したり、他のユーザーと情報を交換できます。

OTNフォーラムのOracle JDeveloperページは、http://forums.oracle.com/forums/forum.jspa?forumID=83にあります。

1.3 Oracle JDeveloper 11gへの移行

サポートされている移行パス、アプリケーションとプロジェクトの移行、またはOracle JDeveloperの前のバージョンからOracle JDeveloper 11gへのプリファレンスと設定のインポートの詳細は、『Oracle Fusion Middleware Oracle JDeveloperインストレーション・ガイド』を参照してください。

2 Oracle JDeveloperのアクセシビリティ情報

この章では、Oracle JDeveloperのアクセシビリティ機能について説明します。

この章では、次の項目について説明します。

- 第2.1項「Oracle JDeveloperのアクセシビリティについて」

- 第2.2項「Oracle JDeveloperでのスクリーン・リーダーおよびJava Access Bridgeの使用」

- 第2.3項「アクセシビリティをサポートするOracle JDeveloperの機能」

- 第2.4項「Oracle JDeveloperのカスタマイズに関する推奨事項」

- 第2.5項「Oracle JDeveloperの高度なビジュアル機能」

2.1 Oracle JDeveloperのアクセシビリティについて

オラクル社は、障害のあるお客様にもオラクル社の製品、サービスおよびサポート・ドキュメントを簡単にご利用いただけることを目標としています。Oracle JDeveloperでは、アクセシビリティの各機能をサポートしています。Oracle製品のアクセシビリティに関する追加情報は、次のURLの「Oracle Accessibility Program」を参照してください。

http://www.oracle.com/accessibility/

2.2 Oracle JDeveloperでのスクリーン・リーダーおよびJava Access Bridgeの使用

スクリーン・リーダーなどの障害支援技術がJavaベースのアプリケーションやアプレットで動作するためには、Windowsベースのコンピュータに、Sun社のJava Access Bridgeをインストールしておく必要があります。スクリーン・リーダーの設定手順と、推奨される最小テクノロジ・スタックの詳細は、『Oracle Fusion Middleware Oracle JDeveloperインストレーション・ガイド』を参照してください。

2.3 アクセシビリティをサポートするOracle JDeveloperの機能

Oracle JDeveloperには、アクセシビリティをサポートするための機能が用意されています。

2.3.1 キーボード・アクセス

Oracle JDeveloperでは、JDeveloperの各機能に対するキーボード・アクセスをサポートしています。キーボード・アクセスの概要は、後述します。JDeveloper内部でのキーの割当て方法、およびコマンドに設定されているショートカット・キーの概要は、キーボード・ナビゲーションのトピックを参照してください。

キーボード・アクセスによって、メニューおよびツールバーでは次の機能を使用できます。

- すべてのメニュー項目へ移動し、メニュー項目を起動できます。

- すべてのツールバー機能はメニュー項目からアクセスできます。

- すべてのメニューおよびメニュー項目には、一意のニーモニック・キーが用意されています。

- ナビゲータおよびソース・エディタで使用するすべてのポップアップ・メニューを呼び出すことができます。

- 使用頻度の高いメニュー項目には、一意のアクセラレータ・キーが用意されています。

アプリケーション・ナビゲータ、構造ウィンドウ、ソース・エディタ、プロパティ・インスペクタ、制約ウィンドウ、プロファイラ、デバッガ・ウィンドウ、ヘルプ・ウィンドウ、ログ・ウィンドウおよびBC4J TesterなどのJDeveloper IDEでは、次の機能を使用できます。次の操作が可能です。

- 開いているウィンドウ間、ウィンドウまたはペイン内のノード間、ウィンドウのタブ間の自由な移動。

- ウィンドウまたはペインへのフォーカスの移動。

- ウィンドウまたはペイン内のすべてのコントロールの起動と、基本的な操作の実行。

- プロパティ・インスペクタでのプロパティの選択および更新。

- ソース・エディタでのコード・インサイトおよびコード・テンプレートの使用。

- 状況依存のヘルプ・トピックの呼出し、任意のヘルプ・トピックの選択と表示、ナビゲーションおよびビューア・タブ間の移動。

- 該当するJDeveloperのウィンドウを開く、閉じる、ドッキング/ドッキング解除する、最小化、リストアおよび最大化する各操作。

ヒント:

- [Esc]キーを押すと、現在のドッキング可能ウィンドウから最新のアクティブ・エディタにフォーカスを移動できます。[Shift]キーを押しながら[Esc]キーを押すとフォーカスが移動し、現行のウィンドウが閉じます。

- [Shift]キーを押しながら[F10]キーを押すと、どのウィンドウでもポップアップ・メニューが開きます。[↓]キーおよび[↑]キーを使用してコマンドを選択し、[Enter]キーを押すか、アクセラレータを使用してポップアップ・メニューのコマンドを起動します。

Oracle JDeveloperのダイアログおよびウィザードでは、次の機能を使用できます。

- すべてのウィザードおよびダイアログで、任意のコントロールへ移動し、コントロールを起動できます。

- [Tab]キーによるフォーカス移動の順序は、論理的で一貫しています。

- コントロールには、状況に応じてニーモニック・キーが用意されています。

ランタイム・アプリケーションにおいても、コントロールの移動と起動が可能です。これには、Javaアプリケーション、HTMLアプリケーション、アプレット、JSF (Faces)アプリケーション、JSPおよびサーブレットなど、Oracle JDeveloperで作成するすべての実行可能ファイルが該当します。ランタイム・アプリケーションでは、次の操作が可能です。

- すべてのランタイム・アプリケーションにおける、任意のコントロール間の移動。

- すべてのランタイム・アプリケーションにおける、任意のコントロールの起動。

2.3.2 スクリーン・リーダーによる読上げ

スクリーン・リーダーを使用した場合の、JDeveloperの読上げへの対応は次のとおりです。

メニューおよびツールバーで使用した場合:

- すべてのメニューおよびメニュー項目を読み上げます。

- ナビゲータのツールバー項目を含む、すべてのツールバー項目を読み上げます。

- すべてのツールバー項目のポップアップ・ヒントを読み上げます。

JDeveloper IDEのウィンドウで使用した場合:

- 開いているすべてのウィンドウを読み上げます。

- タブなど、各ウィンドウ内のすべてのコンポーネントを読み上げます。

- IDEの下部、およびソース・エディタ内のステータス・テキストを読み上げます。

ダイアログおよびウィンドウで使用した場合:

- すべてのウィザードおよびダイアログ内の、すべてのコントロールを読み上げます。

- ポップアップ・ヒントを読み上げます。

ランタイム・アプリケーションで使用した場合:

- すべてのランタイム・アプリケーション内の、すべてのコントロールを読み上げます。

2.3.3 フォントおよび色の選択の柔軟性

JDeveloperのユーザー・インタフェースでは、色およびフォントの選択を柔軟にすることによって、視覚障害を持つユーザーのための操作性を向上しています。フォントおよび色については、次のような機能があります。

- エディタの表示に使用されるフォントの種類およびサイズを指定できます。

- 製品のすべての機能は、白または灰色の背景色と、黒のテキスト色を使用しています。

- 色付きの文字、下線表示または画像のみに依存して情報を提示することはありません。

2.3.4 音声のみに依存しないフィードバック

JDeveloperでは、どのような状況でも、ユーザーへのフィードバックが音声のみで行われることはありません。音声によるフィードバックには、常にスクリーン上の表示が伴います。たとえば、エラーまたは不正な操作が発生した場合のプロンプトには、常に警告音が伴います。

2.3.5 カーソルの点滅やアニメーションへの非依存

JDeveloperでは、カーソルの点滅やアニメーションの使用は最小限に抑えられています。

- ソース・エディタでのカーソルの点滅を除き、すべての機能で、点滅による表示は使用していません。

- すべての機能で、アニメーション表示は使用していません。

2.3.6 スクリーンの拡大機能

JDeveloperのユーザー・インタフェースは、スクリーンの拡大機能を使用しても正常に動作します。製品のすべての機能で、スクリーンの拡大機能が使用可能です。

2.3.7 ファイルのエディタ・ビューまたはタブ・ビューの変更方法

アプリケーション・ナビゲータ内のいずれかのノード上で[Enter]を押すと、そのファイルのデフォルト・エディタが開きます。デザイン・ビューではなくソース・ビューまたは履歴ビューでJSPファイルを表示する場合など、ドキュメントに使用可能なエディタ間の切替えを行うには、[Alt]+[Page Up]や[Alt]+[Page Down]のアクセラレータ・キーを使用して、「ウィンドウ」→「移動先」→「右のエディタ」、および「ウィンドウ」→「移動先」→「左のエディタ」の各メニュー・コマンドを起動できます。

2.3.8 複数行の編集フィールドでテキストを読み上げる方法

複数行の編集フィールド内のテキストをスクリーン・リーダーで読み上げる場合は、[Shift]キーを押しながら、最初のカーソル位置に応じて矢印キーでカーソルを上または下に移動することで、テキストを選択できます。

2.3.9 ソース・エディタで行番号を読み上げる方法

ソース・エディタでファイルを編集中に、[Ctrl]キーを押しながら[G]キーを押すと、スクリーン・リーダーで行番号を読み上げることができます。

2.3.10 「ログ」ウィンドウで例外スタックHTMLリンクおよび生成済Javadocリンクにアクセスする方法

「ログ」ウィンドウで例外スタックHTMLリンクまたはJavadocリンクを生成すると、これらはリンクとして認識されなくなり、スクリーン・リーダーでプレーン・テキストとして読み上げます。リンクにアクセスするには、カーソルのフォーカスを「ログ」ウィンドウに設定します。マウスで右クリックするか、[Shift]+[F1]キーを同時に押し、ポップアップ・メニューから「名前を付けて保存」を選択します。「ログ」ウィンドウの内容がHTMLファイルとして保存されます。この保存したHTMLファイルをプロジェクトまたはアプリケーション・ワークスペースにリソースとして追加します。ファイルをアプリケーション・ナビゲータから開くとOracle JDeveloper HTML/JSPビジュアル・エディタが起動し、リンクを正しく表示できます。HTML/JSPビジュアル・エディタでファイル内を移動し、リンクにアクセスします。

2.4 Oracle JDeveloperのカスタマイズに関する推奨事項

JDeveloperでは、キーボードの操作、IDEの表示属性、時間設定などユーザーの必要に応じた様々なカスタマイズ機能が提供されています。すべてのカスタマイズ機能は、「設定」ダイアログにまとめられています。必要に応じて操作性を最適化するためには、次のデフォルト設定を、使用しやすくカスタマイズした設定に変更することをお薦めします。

2.4.1 アクセラレータ・キーのカスタマイズ方法

デフォルトのアクセラレータ・キーは、「ツール」→「設定」→「ショートカット・キー」ページで追加および変更できます。操作に慣れた初期設定キーマップをロードすることもできます。

2.4.2 競合するアクセラレータ・キーをOracle JDeveloperに指定する方法

マップ済アクセラレータ・キーの変更以外にも、[Insert]キーを押しながら[F3]キーを押して、アクセラレータ・キーの組合せを入力することによって、競合するアクセラレータ・キーをJAWSに渡すことができます。

2.4.3 IDEのルック・アンド・フィールの変更方法

Oracle JDeveloperのデフォルトのルック・アンド・フィールは、「ツール」→「設定」→「環境」ページで変更できます。ルック・アンド・フィールは、メニューやボタンなどのオブジェクトの表示色および形状を決定します。

2.4.4 エディタでフォントをカスタマイズする方法

エディタでの表示に使用されるフォントおよびフォント・サイズは、「ツール」→「設定」→「コード・エディタ」→「フォント」ページで変更できます。

2.4.5 構文ハイライトのカスタマイズ方法

ソース・エディタで構文ハイライトに使用されるフォント・スタイルおよび前景色と背景色は、「ツール」→「設定」→「コード・エディタ」→「構文の色指定」ページで変更できます。

2.4.6 エディタで行番号を表示する方法

ソース・エディタの行番号は、「ツール」→「設定」→「コード・エディタ」→「行の左余白」ページで表示/非表示を設定できます。

2.4.7 コード・インサイトの時間設定の変更方法

コード・インサイトは、「ツール」→「設定」→「コード・エディタ」→「コード・インサイト」ページで、遅延時間を秒単位で設定、または無効に設定できます。

2.4.8 デバッガで列を指定する方法

デバッガに表示される列および情報のタイプは、「ツール」→「設定」→「デバッガ」ページで選択できます。

2.5 Oracle JDeveloperの高度なビジュアル機能

Oracle JDeveloperには、視覚障害を持つユーザーのための機能と同等の、高度なビジュアル機能が用意されています。

- UIおよびビジュアル・エディタ。ソース・エディタに、同等の機能があります。ソース・エディタでは、ページやUI要素を完全に設計できます。

- コンポーネント・パレット。ソース・エディタに同等の機能があります。コンポーネント・パレットで選択可能な要素やタグを、ソース・エディタにも入力できます。

キーストロークを使用すると、コンポーネント/パレットからUIおよびビジュアル・エディタにコンポーネントを追加できます。

Oracle JDeveloperには、モデリング機能もあります。キーストロークのみを使用してダイアグラムでエレメントを作成、編集および移動できます。

3 Oracle JDeveloperの使用

この章では、Oracle JDeveloperを手早く理解し実行できるようにすることを目的としています。作業に関する情報は、一般的な開発環境、ソース・ファイル、接続、オンライン・ヘルプの使用および一般的な開発ツールであることを前提として参照してください。

この章では、次の項目について説明します。

- 第3.1項「Oracle JDeveloperの使用について」

- 第3.2項「JDeveloperロールの使用」

- 第3.3項「JDeveloper機能の管理方法」

- 第3.4項「IDEのウィンドウの使用」

- 第3.5項「IDEのナビゲーション」

- 第3.6項「IDEのカスタマイズ」

- 第3.7項「リソース・パレットの操作」

- 第3.8項「ソース・ファイルの使用」

- 第3.9項「拡張機能の使用」

- 第3.10項「オンライン・ヘルプの使用」

- 第3.11項「一般的な開発ツール」

- 第3.12項「JDeveloperへの外部ツールの追加」

3.1 Oracle JDeveloperの使用について

JDeveloperは、Oracle Fusion Middleware製品スイートの主要な開発プラットフォームです。これは、Windows、Linux、Mac OS Xおよびその他のUNIXベースのシステム上で動作するクロス・プラットフォームのIDEです。

3.2 JDeveloperロールの操作

ロールにより、JDeveloper環境を調整できます。修正した環境では、メニュー、設定、新規ギャラリおよびダイアログの個別フィールドなどの不要項目をJDeveloperから削除します。選択するロールによって、JDeveloperで作業を行う際に使用可能な機能とオプションが決定されます。

使用できるロールは、次のとおりです。

- デフォルト・ロール。JDeveloperのすべての機能にアクセスできます。他のロールは、これらの機能のサブセットを提供します。

- カスタマイズJDeveloper。Oracle Metadeta Services (MDS)フレームワークを使用して、カスタマイズ可能なアプリケーションを作成できます。

- Database Edition。コア・データベース開発ツールへのアクセスのみを提供します。

- Java EE Edition。このロールには、コアJava EE開発の機能のみが含まれます。

- Java Edition。このロールには、コアJava開発の機能のみが含まれます。

注意:

JDeveloperに対して選択したロールに関係なく、常にすべてのオンライン・ヘルプを使用できます。

3.2.1 JDeveloperロールの変更方法

JDeveloperを最初に実行する際に、ロールの選択が要求されます。また、JDeveloperの稼働中にロールを変更することもできます。

JDeveloperのロールを変更するには、次のようにします。

1. メイン・メニューから、「ツール」→「ロールの切替え」を選択します。

2. 現在のロールには箇条書き記号が付いています。「ロールの切替え」メニューで、切替え先のロールを選択します。

3.3 JDeveloper機能の管理方法

パフォーマンスとユーザー操作を最適化するため、JDeveloperでは使用中のプロジェクトに必要な機能をロードできます。機能を管理することによって、作業に最も関連するIDEのコンポーネントのみが表示されます。機能の管理は、プロジェクトのデータ自体には影響しません。

たとえば、2つのプロジェクトを使用して、アプリケーションに対する2種類のビューを作成するとします。最初のプロジェクトにJava機能がロードされ、これによってIDEに対してJavaテクノロジ・スタックが反映されるとJDeveloperに通知されます。このようなフィルタ処理により、個々のプロジェクトの画面が見やすくなります。2番目のプロジェクトにはSwing/AWTの機能がロードされ、Swing/AWT開発に必要なIDEコンポーネントが反映されるとJDeveloperに通知されます。

JDeveloperで機能を追加または削除するには、次のようにします。

1. メイン・メニューから、「ツール」→「機能」を選択します。「ロールの機能の管理」ダイアログが開きます。このダイアログには、現在のJDeveloperロールで使用可能な機能が表示されます。この機能は、デフォルトで選択されています。

2. 「検索」フィールドに追加または削除する機能を入力して検索するか、「使用可能な機能」のリストをスクロールします。機能または機能カテゴリをクリックして、右側の説明を表示します。

3. 追加する機能を選択し、削除する機能の選択を解除します。「更新の確認」アイコンをクリックして更新の確認ウィザードを開き、拡張機能をロードできます。

4. オプションで、前にロードした機能をキャッシュからクリアするには、「機能ロード・キャッシュのクリア」をクリックします。

5. 作業が終了した後、「OK」をクリックします。

3.4 IDEでのウィンドウの操作

JDeveloperでは、必要に応じてウィンドウを配置できます。JDeveloperでは、IDEの2種類のウィンドウを使用します。

- IDEの任意の場所に配置できるドッキング可能なウィンドウ。

- IDEの中央に固定されているタブ付きエディタ・ウィンドウ。

3.4.1 ウィンドウの最大化の方法

JDeveloperのどのウィンドウの場合でも、タイトル・バーをダブルクリックして、すばやく全画面表示に最大化できます。IDE内で元の位置にウィンドウを戻すには、再度タイトル・バーをダブルクリックします。

3.4.2 IDEのドッキング可能ウィンドウの最小化およびリストア方法

JDeveloperでは、あらゆるドッキング可能ウィンドウを最小化するか、または常に一定の場所に表示したままにできます。デフォルトは開いたままの状態(固定表示)に設定されています。

固定表示に設定されているウィンドウの位置は変化しません。ウィンドウは、ドッキングされた位置にかかわらず常に表示されます。

最小化に設定されているウィンドウは、状況に応じて状態が変化します。ウィンドウにフォーカスを当てると、ウィンドウは、最後にドッキングされた一般領域に上下左右いっぱいに開きます。フォーカスを別の場所に移すと、最小化されたウィンドウはマージン内に縮小されます。ウィンドウが開いているか閉じているかにかかわらず、マージン内に該当するボタンが表示されているウィンドウは最小化に設定されているウィンドウです。

ドッキング可能ウィンドウを最小化するには、次のようにします。

- 開いたままに設定されているウィンドウの右端にある「最小化」アイコンをクリックします。
現在ウィンドウにフォーカスがある場合は、ウィンドウが画面いっぱいの高さに拡大された状態で固定されます。ウィンドウにフォーカスがない場合、ウィンドウはマージン内に縮小されます。

ウィンドウを最小化すると、そのウィンドウの名前が付いたボタンがマージンに表示されます。このボタンで、最小化されたウィンドウを開いたり閉じたりできます。

注意:

他のウィンドウを含むドッキング・ゾーンのウィンドウを最小化すると、ドッキング・ゾーンのすべてのウィンドウが最小化されます。

3.4.3 IDEでのウィンドウのドッキング方法

「表示」メニューに表示されるすべてのツール(アプリケーション・ナビゲータ、構造ウィンドウ、プロパティ・インスペクタなど)は、自由に配置できます。個別にドッキングすることも、グループにまとめてドッキングすることも可能です。また、複数のウィンドウをドッキングまたはフローティングどちらかのウィンドウとして同じ場所に表示し、タブで切り替えることもできます。

次の表には、ドッキング可能ウィンドウを移動するための情報が表示されます。

要件

アクション

単独でドッキングされたウィンドウを移動する

タイトル・バーをドラッグします。

グループでドッキングされているウィンドウの中から1つを切り離す

タイトル・バーをドラッグします。

グループでドッキングされているウィンドウ、タブ化されているウィンドウ、またはドッキングかつタブ化されているウィンドウを移動する

「×」ボタンのみが表示された一番上の水平タイトル・バー(グループ用)をドラッグします。

グループからタブとして表示されているウィンドウの1つを切り離す

該当するウィンドウのタブをドラッグします。

注意:

ドッキングされたウィンドウのタイトル・バーは、ウィンドウの横に垂直に表示されることがあります。

次の表には、ドッキング・ウィンドウを再配置するための情報が表示されます。

要件

アクション

ウィンドウ(またはウィンドウ・グループ)を開発領域の別の端にドッキングする

希望する端までウィンドウ(またはウィンドウ・グループ)をドラッグします。

ウィンドウ(またはウィンドウ・グループ)を別のウィンドウに並べてドッキングする

ドッキングされたウィンドウの上、下または横にウィンドウ(またはウィンドウ・グループ)をドラッグします。

1つのウィンドウを別のウィンドウのタブとして表示する

タブとして表示するウィンドウを、目的のウィンドウ(またはウィンドウ・グループ)の中心にドラッグして放します。

3.4.4 IDEのドッキング可能ウィンドウについて

通常はドッキング表示されるウィンドウ(アプリケーション・ナビゲータ、任意のカスタム・ナビゲータ、ログ・ウィンドウ、プロパティ・インスペクタ、コンポーネント・パレット)を、フローティング表示にできます。フローティング・ウィンドウは、サイズ変更も可能で、JDeveloperの任意の場所に配置できます。

一般に、フローティング・ウィンドウは、情報ウィンドウとソース・コードの両方を表示する余地が十分にある大型画面に適しています。小さい画面上でフローティング・パレットを使用すると、作業中に他の情報ウィンドウによって隠れてしまうことがあります。

3.4.5 IDEのドッキング可能ウィンドウを閉じて再び開く方法

JDeveloper IDEの主な要素であるナビゲータ、構造ウィンドウ、プロパティ・インスペクタ、コンポーネント・パレット、リソース・パレットおよびログ・ウィンドウは、簡単に開いたり閉じたりできます。

閉じたウィンドウを開くには、次のようにします。

- 「表示」メニューで、ウィンドウの名前を選択します。

次のいずれかの方法で、ウィンドウを閉じ、開くことができます。

- タブ・ウィンドウの名前に表示される「閉じる」アイコンをクリックします。

- ウィンドウを選択した状態で、[Shift]を押しながら[Esc]を押すか、[Ctrl]を押しながらクリックします。

3.4.6 ウィンドウ・レイアウトを出荷時設定にリストアする方法

JDeveloperでドッキング可能ウィンドウのレイアウトをリストアするには、「ウィンドウ」メニューに進み、「ウィンドウを出荷時の設定にリセット」を選択します。

3.5 IDEのナビゲーション

JDeveloperでのすべての操作は、マウスのみでなくキーボードを使用しても実行できます。

3.5.1 IDEでのショートカット・キーの使用方法

JDeveloperには、複数の事前定義済のキーボード・スキームが用意されています。これらの1つを使用するか、処理に割り当てるキーボード・ショートカットを変更し、既存のセットをユーザーのコーディング・スタイルにあわせてカスタマイズすることもできます。

初期設定キーボード・スキームをロードするには、次のようにします。

1. メイン・メニューから、「ツール」→「プリファレンス」を選択します。

2. 「プリファレンス」ダイアログで、「ショートカット・キー」ノードを選択します。詳細は、[F1]を押すか、「プリファレンス」ダイアログ内で「ヘルプ」をクリックしてください。

3. ショートカット・キー・ページで、「その他のアクション」をクリックし、「キーボード・スキームのロード」を選択します。現在ロードされているキーボード・スキームが強調表示されて「キーボード・スキームのロード」ダイアログが表示されます。

4. 「キーボード・スキームのロード」ダイアログで、ロードするスキームを選択し、「OK」をクリックします。

5. 完了したら、ショートカット・キー・ページで「OK」をクリックします。

JDeveloperのコマンドおよび割当て済キーボード・ショートカット(割り当てられている場合)を表示するには、次のようにします。

1. メイン・メニューから、「ツール」→「プリファレンス」を選択します。

2. 「プリファレンス」ダイアログで、「ショートカット・キー」ノードを選択します。

3. 「ショートカット・キー」ページで「使用可能なコマンド」の下に、JDeveloperコマンドの完全集合、およびそれぞれに割り当てられているキーボード・ショートカットが(存在する場合)表示されます。特定のコマンドやショートカットを探している場合、あるいは特定カテゴリのコマンドのショートカットのみを確認する場合、「検索」フィールドにフィルタリング式を入力します。

4. 新しいショートカットの定義、または既存ショートカットの変更も可能です。

特定のキーボード・スキーム内のコマンドに対して新規キーボード・ショートカットを定義するには、次のようにします。

1. メイン・メニューから、「ツール」→「プリファレンス」を選択します。

2. 「プリファレンス」ダイアログで、「ショートカット・キー」ノードを選択します。詳細は、[F1]を押すか、「プリファレンス」ダイアログ内で「ヘルプ」をクリックしてください。

3. ショートカット・キー・ページの、「使用可能なコマンド」の下で、新しいショートカットを定義するコマンドを選択します。

4. このアクションに対して新しいショートカットを定義するには、「新しいショートカット」フィールドにフォーカスを置き、次にキーボードでキーの組合せを押します。
この指定したショートカットがすでにあるコマンドに割り当てられている場合、そのコマンドが「競合」フィールドに表示されます。新しいショートカットが割り当てられると、競合するショートカットはすべて上書きされます。

5. このショートカットを選択したアクションに割り当てるには、「割当て」をクリックします。すでに割り当てられているショートカットを削除するには、ツールバーの「削除」ボタンをクリックします。
コマンドに複数のショートカットを割り当てる場合は、コマンドを選択して「複製」ボタンをクリックします。次に、「新しいショートカット」フィールドにショートカット・キーを入力して「割当て」をクリックします。

6. 終了したら、「OK」をクリックします。

キーボード・スキームをインポートまたはエクスポートするには、次のようにします。

1. 「ツール」メニューから、「ツール」→「プリファレンス」を選択して「プリファレンス」ダイアログを開きます。

2. 「その他のアクション」→「エクスポート」または「インポート」を選択します。キーボード・スキームはXMLファイルとして保存されます。

3.5.2 JDeveloperでのキーボード・ナビゲーション

選択を含め、マウスで実行できるすべての操作は、キーボードからも実行することができます。JDeveloperでのすべての操作は、マウスのみでなくキーボードを使用しても実行できます。

JDeveloperにおけるショートカット・キーの基本セットは、Javaルック・アンド・フィールのガイドラインで定義されているショートカット・キーに基づいています。JDeveloperで使用可能な事前定義のキーボード・スキームは、この基本セットに重ね合せるように設定されています。ルック・アンド・フィールのガイドラインとJDeveloperのキーボード・スキームの両方に同じショートカット・キーが存在する場合は、JDeveloperのスキームが優先されます。ルック・アンド・フィールのガイドラインで定義されているショートカット・キーがJDeveloperのスキームにない場合は、そのスキームを使用可能にしたときに元のルック・アンド・フィール定義がそのまま使用されます。

したがって、JDeveloperで使用可能なショートカット・キーは、現在選択しているスキームと、Javaルック・アンド・フィールのガイドラインとの相互関係によって決定されます。JDeveloperを最初に起動したときは、デフォルトのスキームが有効になっています。このスキームはいつでも変更可能であり、各スキーム内では、任意のショートカット・キー割当てをカスタマイズできます。別の事前定義済キーボード・スキームが有効化されている場合(または同じスキームがリロードされる場合にも)、スキーム内で作成するカスタマイズ済ショートカットは保持されないことに注意してください。

事前定義済キーボード・スキームのロード、スキームでの現在のショートカット割当ての表示、およびショートカット割当てのカスタマイズを行うには、「プリファレンス」ダイアログを開く必要があります。このダイアログを開くには、メイン・メニューから「ツール」→「プリファレンス」を選択し(または、キーボードで、[Alt]+[T]+[P]を押す)、左側のペインで矢印キーを使用してショートカット・キー・ノードまでナビゲートします。ダイアログの操作の詳細は、そのページで「ヘルプ」をクリックしてください(または、キーボードで[H]を押します)。

3.5.2.1 一般的なナビゲーション・キー

次の表は、JDeveloperでカーソルを移動する一般的な方法を示します。

表3-1 カーソルを移動する一般的な方法

キー

カーソルの移動

[Ctrl] + カーソルの移動

左矢印

1単位分左(1文字など)

比例して大きい1単位分左(単語全体など)

右矢印

1単位分右

比例して大きい1単位分右

上矢印

1単位または1行分上

比例して大きい1単位分上

下矢印

1単位または1行分下

比例して大きい1単位分下

[Home]

行の先頭

データの先頭(最上部)

[End]

行の末尾

データの末尾(最下部)

[Tab]

カーソルがテキスト領域またはフィールドにある場合を除いて、次のフィールドまたはコントロール。この場合、コントロールからナビゲートするには、[Ctrl]キーを押しながら[Tab]キーを押す。

水平方向および垂直方向に配置されたフィールドとコントロールの場合、[Tab]キーを押すと、カーソルはまず水平方向に右へ移動し、行の末尾に移動した後、次の行の左へ移動する。

カーソルがテキスト領域またはフィールドにある場合を除いて、次のペイン(ナビゲータ、エディタまたはパレット)。この場合、コントロールからナビゲートするには、[Ctrl]キーを押しながら[Tab]キーを押す。

[Shift]+[Tab]

前のフィールド

前のタブ位置。プロパティ・シートでは、カーソルが次のページに移動する。

[Enter]

カーソルがコンボ・ボックス、シャトル・ボタンなどのコントロールにある場合を除いて、デフォルトのボタンを選択してハイライト表示する。

注意: デフォルトのボタンは、コントロールをナビゲートするごとに変わります。

該当なし

3.5.2.2 標準コンポーネントでのナビゲーション

この項では、標準JDeveloperコンポーネントでのキーボード・ナビゲーションについて説明します。

ボタン

次の表は、ボタンに関するナビゲーション・タスクを実行するためのキーボード操作を示します。

表3-2 ボタンのキーボード・ナビゲーション

ナビゲーション

キー

ボタンに、またはボタンから進む

[Tab]

ボタンに、またはボタンから戻る

[Shift]+[Tab]

デフォルト・ボタンのアクティブ化(フォーカスがボタンにない場合)

[Enter]

フォーカスがある場合に任意のボタンをアクティブ化

[Enter]、[Space]、またはキーボード・ショートカット(定義されている場合)

ダイアログの「取消」ボタンまたは「閉じる」ボタンをアクティブ化

[Esc]

チェック・ボックス

次の表は、チェック・ボックスに関するナビゲーション・タスクを実行するためのキーボード操作を示します。

表3-3 チェック・ボックスのキーボード・ナビゲーション

ナビゲーション

キー

チェック・ボックスに、またはチェック・ボックスから進む

[Tab]

チェック・ボックスに、またはチェック・ボックスから戻る

[Shift]+[Tab]

選択または選択解除(フォーカスがチェック・ボックスにある場合)

[Space]またはキーボード・ショートカット(定義されている場合)

チェック・ボックスに移動して選択または選択解除(フォーカスがチェック・ボックスにない場合)

キーボード・ショートカット(定義されている場合)

ドロップダウン・リストおよびコンボ・ボックス

次の表は、ドロップダウン・リストおよびコンボ・ボックスに関するナビゲーション・タスクを実行するためのキーボード操作を示します。

表3-4 ドロップダウン・リストおよびコンボ・ボックスのキーボード・ナビゲーション

ナビゲーション

キー

コンボ・ボックスまたはドロップダウンリストに、またはコンボ・ボックスまたはドロップダウンリストから進む

[Tab]またはキーボード・ショートカット(定義されている場合)

コンボ・ボックスまたはドロップダウンリストに、またはコンボ・ボックスまたはドロップダウンリストから戻る

[Shift]+[Tab]

リストを開くまたは閉じる

[Space](現在の選択範囲にフォーカスがある場合)

リストを開く

開く場合は[↓](リストの最初の項目にフォーカスがある場合)

リスト内を上または下に移動

[↑]および[↓](ハイライト表示された値にフォーカスがある場合)

コンボ・ボックスの最初のエントリ内を右および左に移動

[→]および[←]

リスト・アイテムの選択

[Enter]

注意: 最初に[Enter]を押した時、リスト内のアイテムが選択されます。2回目に[Enter]を押した場合、デフォルト・ボタンがアクティブ化されます。

リストを閉じる(ハイライト表示された値が選択されている場合)

[Esc]

リスト・ボックス

次の表は、リスト・ボックスに関するナビゲーション・タスクを実行するためのキーボード操作を示します。

表3-5 リスト・ボックスのキーボード・ナビゲーション

ナビゲーション

キー

前のリストにナビゲートする

[Tab]

次のリストにナビゲートする

[Shift]+[Tab]

選択する

[↑]、[↓]、[Space]または[Enter]

注意: 最初に[Enter]を押した時、リスト内の強調表示されたアイテムが選択されます。2回目に[Enter]を押した場合、デフォルト・ボタンがアクティブ化されます。

リスト内で移動する

[↑]または[↓]

リストの先頭に移動する

[Home]または[Ctrl]+[Home]

リストの末尾に移動する

[End]または[Ctrl]+[End]

全エントリを選択する

[Ctrl]+[A]

項目を切り替える(選択または選択解除する)

[Space]または[Ctrl]+[Space]

現在フォーカスされている項目の選択を解除することなく、リスト内の1つ上の項目を選択する

[Shift]+[↑]

現在フォーカスがある項目を選択解除せずにリスト内の1つ下の項目を選択

[Shift]+[↓]

現在の項目からリストの最上位までの項目をすべて選択

[Shift]+[Home]

現在の項目からリストの最下位までの項目をすべて選択

[Shift]+[End]

現在の項目およびその項目よりも上にある項目をすべて選択する

[Shift]+[Page Up]

現在の項目およびその項目よりも下にある項目をすべて選択する

[Shift]+[Page Down]

他の項目の選択を解除することなく、現在フォーカスされている項目を選択する(隣接していない項目を選択する)

[Ctrl]+[Space]

現在フォーカスされている項目の選択を解除することなく、リスト内をナビゲートする

[Ctrl]+[↑]または[Ctrl]+[↓]

ラジオ・ボタン

表3-6 ラジオ・ボタンのキーボード・ナビゲーション

ナビゲーション

キー

ラジオ・ボタンに、またはラジオ・ボタンから進む

[Tab]

ラジオ・ボタンに、またはラジオ・ボタンから戻る

[Shift]+[Tab]

ラジオ・ボタンから進む

矢印キー

ラジオ・ボタンから戻る

[Shift]+矢印キー

ラジオ・ボタンを選択する

矢印キー(矢印を使用して選択されたラジオ・ボタンに移動)またはキーボード・ショートカット(定義されている場合)

ラジオ・ボタンの選択を解除する

前述のコマンドの1つを使用してグループ内の別のラジオ・ボタンを選択

シャトル

次の表は、シャトルに関するナビゲーション・タスクを実行するためのキーボード操作を示します。

表3-7 シャトルのキーボード・ナビゲーション

ナビゲーション

キー

前のリストにナビゲートする

[Tab]

次のリストにナビゲートする

[Shift]+[Tab]

選択する

[↑]または[↓]

リスト内で移動する

[↑]または[↓]

リストの先頭に移動する

[Home]または[Ctrl]+[Home]

リストの末尾に移動する

[End]または[Ctrl]+[End]

全エントリを選択する

[Ctrl]+[A]

項目を切り替える(選択または選択解除する)

[Space]または[Ctrl]+[Space]

現在フォーカスされている項目の選択を解除することなく、リスト内の1つ上の項目を選択する

現在フォーカスされている項目の選択を解除することなく、リスト内の1つ上の項目を選択する

フォーカスがある項目を選択解除せずにリスト内の1つ下の項目を選択

[Shift]+[↓]

現在の項目からリストの最上位までの項目をすべて選択

[Shift]+[Home]

現在の項目からリストの最下位までの項目をすべて選択

[Shift]+[End]

現在の項目およびその項目よりも上にある項目をすべて選択する

[Shift]+[Page Up]

現在の項目およびその項目よりも下にある項目をすべて選択する

[Shift]+[Page Down]

他の項目の選択を解除することなく、現在フォーカスされている項目を選択する(隣接していない項目を選択する)

[Ctrl]+[Space]

現在フォーカスされている項目の選択を解除することなく、リスト内をナビゲートする

[Ctrl]+[↑]または[Ctrl]+[↓]

スライダ

次の表は、スライダに関するナビゲーション・タスクを実行するためのキーボード操作を示します。

表3-8 スライダのキーボード・ナビゲーション

ナビゲーション

キー

スライダに、またはスライダから進む

[Tab]

スライダに、またはスライダから戻る

[Shift]+[Tab]

値を増やす

[↑]または[→]

値を減らす

[←]または[↓]

最小値

[Home]

最大値

[End]

スピン・コントロール

次の表は、スピン・コントロールに関するナビゲーション・タスクを実行するためのキーボード操作を示します。

表3-9 スピン・コントロールのキーボード・ナビゲーション

ナビゲーション

キー

スピン・コントロールに、またはスピン・コントロールから進む

[Tab]

スピン・コントロールに、またはスピン・コントロールから戻る

[Shift]+[Tab]

値を増やす

[↑]、[→]または目的の値を入力

値を減らす

[←]、[↓]または目的の値を入力

最小値

[Home]

最大値

[End]

テキスト・フィールド

次の表は、テキスト・フィールドに関するナビゲーション・タスクを実行するためのキーボード操作を示します。

表3-10 テキスト・フィールドのキーボード・ナビゲーション

ナビゲーション

キー

テキスト・ボックスに、またはテキスト・ボックスから進む

[Tab]またはキーボード・ショートカット(定義されている場合)

テキスト・ボックスに、またはテキスト・ボックスから戻る

[Shift]+[Tab]

テキスト・ボックス内の前/次の文字に移動

[←]または[→]

ボックスの先頭/末尾へ移動

[Home]/[End]

すべてのテキストを選択

[Ctrl]+[A]

すべてのテキストを選択解除

[←]または[→]

現在の項目からその左/右までのすべての項目を選択

[Shift]+[←]、[Shift]+[→]

現在の項目からその先頭/末尾までのすべての項目を選択

[Shift]+[Home]、[Shift]+[End]

現在の項目からその前/次の単語までのすべての項目を選択

[Ctrl]+[Shift]+[←]、[Ctrl]+[Shift]+[→]

選択対象をコピー

[Ctrl]+[C]

選択対象を切り取り

[Ctrl]+[X]

クリップボードから貼り付ける

[Ctrl]+[V]

次の文字を削除

削除

前の文字を削除

[Back Space]

3.5.2.3 複雑なコントロールのナビゲート

この項では、複雑なUIコンポーネントのキーボード・ショートカットについて説明します。

ドッキング可能なウィンドウ

次の表は、ドッキング可能なウィンドウに関するナビゲーション・タスクを実行するためのキーボード操作を示します。

表3-11 ドッキング可能なウィンドウのキーボード・ナビゲーション

ナビゲーション

キー

ドッキング可能なウィンドウに、またはドッキング可能なウィンドウから進む

[Ctrl]+[Tab]

ドッキング可能なウィンドウに、またはドッキング可能なウィンドウから戻る

[Ctrl]+[Shift]+[Tab]

ポップアップ・メニューの表示

[Shift]+[F10]

ドッキング可能なウィンドウ内のタブ間を移動

[Alt]+[Page Down]、[Alt]+[Page Up]

ドロップダウン・リスト、検索フィールド、パネル、ツリー構造(ツリー内の個々の要素を除く)、個々のコンポーネント・ボタンなどの要素間の移動

[Tab]

ドッキング可能なウィンドウの表示を上/下へ移動(スクロールバー)

[↑]、[↓]フォーカスがキャンバスの非表示領域に移動した場合に、ウィンドウの表示をスクロールする。

左/右へ移動(スクロールバー)

[↑]、[↓]フォーカスがキャンバスの非表示領域に移動した場合に、ペインの表示をスクロールする。

データの最初または最後に移動(コンポーネント・ボタン)

[Ctrl]+[Home]、[Ctrl]+[End]

要素を選択

[Enter]または[Space]

キャンバス領域内を左/右へスクロール(ウィンドウの表示は移動しない)

[Ctrl]+[←]/[Ctrl]+[→]

キャンバス領域内を上/下へスクロール(ウィンドウの表示は移動しない)

[Ctrl]+[↑]/[Ctrl]+[↓]

メニュー

コンテキスト・メニューにアクセスするには、[Shift]キーを押しながら[F10]キーを押します。メイン・メニュー・バーからメニューにアクセスするには、メニューのキーボード・ショートカットを使用します。

次の表は、メニュー・バーに関するナビゲーション・タスクを実行するためのキーボード操作を示します。

表3-12 メニューのキーボード・ナビゲーション

ナビゲーション

キー

メニュー・バーに移動

F10

メニュー・バーから移動

[Esc]

メニュー・バーのメニュー間を移動

[→]、[←]

メニュー項目に移動

[↑]、[↓]

メニュー項目から移動

[↑]、[↓]

アイテムのアクティブ化

[Enter]、[Space]、またはキーボード・ショートカット(定義されている場合)

サブメニューを開く

右矢印

サブメニューの非表示

[←]または[Esc]

パネル

次の表は、パネルに関するナビゲーション・タスクを実行するためのキーボード操作を示します。

表3-13 パネルのキーボード・ナビゲーション

ナビゲーション

キー

内/外に進む

[Tab]

内/外に戻る

[Shift]+[Tab]

パネルの拡張(ヘッダーにフォーカスがある場合)

右矢印

パネルの縮小(ヘッダーにフォーカスがある場合)

左矢印

パネル内を移動

[↑]、[↓]

内容からパネル・ヘッダーに移動(リストの最上位の項目にフォーカスがある場合)

上矢印

ヘッダーからパネルの内容に移動(ヘッダーにフォーカスがある場合)

下矢印

表

矢印キーは、矢印の方向にフォーカスを移動しますが、Webウィジェットにフォーカスがある場合を除きます。Webウィジェットにフォーカスがある場合は、[↓]キーまたは[Enter]キーにより、選択リストを開くなどのウィジェット・コントロール処理が開始されます。[Tab]はフォーカスを右に移動し、[Shift]+[Tab]はフォーカスを左に移動します。

次の表は、表に関するナビゲーション・タスクを実行するためのキーボード操作を示します。

表3-14 表のキーボード・ナビゲーション

ナビゲーション

キー

表に、または表から進む

[Ctrl]+[Tab]

表に、または表から戻る

[Shift]+[Ctrl]+[Tab]

次のセルに移動(最後のセルの場合は次の行に折返し)

[Tab]または[→]

前のセルに移動(第1セルの場合は前の行に折返し)

[Shift]+[Tab]または[←]

開いているセル内のコントロール

[↓]または[Enter]

ブロックを左に移動

[Ctrl]+[Page Up]

ブロックを右に移動

[Ctrl]+[Page Down]

ブロックを上へ移動

[Page Up]

ブロックを下へ移動

[Page Down]

行内の最初のセルに移動

[Home]

行内の最後のセルに移動

[End]

表内の最初のセルに移動

[Ctrl]+[Home]

表内の最後のセルに移動

[Ctrl]+[End]

すべてのセルを選択

[Ctrl]+[A]

現在の選択内容を選択解除(その後、別のものを選択)

任意のナビゲーション・キー

行の選択範囲を拡張

[Shift]+[↑]

列の選択範囲を拡張

[Shift]+[↓]

選択範囲を行の先頭まで拡張

[Shift]+[Home]

選択範囲を行の末尾まで拡張

[Shift]+[End]

選択範囲を列の先頭まで拡張

[Ctrl]+[Shift]+[Home]

選択範囲を列の末尾まで拡張

[Ctrl]+[Shift]+[End]

現在の内容を上書きせずにセルを編集、またはコンボ・ボックス内のドロップダウン・リストを表示

F2

編集前にセルの内容をリセット

[Esc]

タブ

ここでは、ドッキング可能なウィンドウ、ビューまたはダイアログ内に表示されるタブについて説明します。次の表は、ドッキング可能なウィンドウ、ビューおよびダイアログ内のタブに関するナビゲーション・タスクを実行するためのキーボード操作を示します。

表3-15 タブのキーボード・ナビゲーション

ナビゲーション

キー

タブ・コントロールに、またはタブ・コントロールから進む

[Tab]

タブ・コントロールに、またはタブ・コントロールから戻る

[Ctrl]+[Tab]

(コントロール内の)左/右のタブに移動

[←]または[→]

(コントロール内の)上/下のタブに移動

[↑]または[↓]

タブからページに移動

[Ctrl]+[↓]

ページからタブに移動

[Ctrl]+[↑]

ページから前のページに移動(フォーカスがページ内にある場合)

[Ctrl]+[Page Up]

ページから次のページに移動(フォーカスがページ内にある場合)

[Ctrl]+[Page Down]

ツリー

次の表は、ツリーに関するナビゲーション・タスクを実行するためのキーボード操作を示します。

表3-16 ツリーの表ナビゲーション

ナビゲーション

キー

ツリー・コントロールに、またはツリー・コントロールから進む

[Tab]

ツリー・コントロールに、またはツリー・コントロールから戻る

[Shift]+[Tab]

開く(項目に子が含まれる場合)

右矢印

閉じる(項目に子が含まれる場合)

左矢印

子から親に移動(開いている場合)

左矢印

親から子に移動(すでに開いている場合)

右矢印

1項目上/下へ移動

[↑]、[↓]

先頭の項目へ移動

[Home]

最後のエントリへ移動

[End]

選択した親のすべての子を選択

[Ctrl]+[A]

現在フォーカスがある項目を選択解除せずに、リスト内の1つ下の項目を選択

[Shift]+[↓]

現在フォーカスがある項目を選択解除せずに、リスト内の1つ上の項目を選択

[Shift]+[↑]

現在の項目からリストの最上位までの項目をすべて選択

[Shift]+[Home]

現在の項目からリストの最下位までの項目をすべて選択

[Shift]+[End]

(隣接していない項目を選択するために)他の項目を選択解除せずに、現在フォーカスが設定されている項目を選択

[Ctrl]+[Space]

現在フォーカスが設定されている項目を選択解除せずにリスト内を移動

[Ctrl]+[↑]/[↓]

ウィザード

次の表は、ウィザードに関するナビゲーション・タスクを実行するためのキーボード操作を示します。

表3-17 ウィザードのキーボード・ナビゲーション

ナビゲーション

キー

ロードマップ上のストップ間またはページ間を移動

[↑]、[↓](折り返さない)

ウィザード・パネル上のコンポーネント、ウィザード・ナビゲーション・バー・ボタンおよびナビゲーション・パネル間を進む

[Tab]

ウィザード・パネル上のコンポーネント、ウィザード・ナビゲーション・バー・ボタンおよびナビゲーション・パネル間を戻る

[Shift]+[Tab]

ナビゲーション・バーのボタン間を移動

[→]および[←](折り返さない)

ロードマップ上のストップ間/ウィザード・ページ間を移動

[Ctrl]+[Page Up]および[Ctrl]+[Page Down]

3.5.2.4 特定のコンポーネントでのナビゲーション

この項では、JDeveloper固有のUIコンポーネントのキーボード・ショートカットについて説明します。

ダイアログ

次の表は、ダイアログに関するナビゲーション・タスクを実行するためのキーボード操作を示します。

表3-18 ダイアログのキーボード・ナビゲーション

ナビゲーション

キー

選択または変更を行わずにダイアログを閉じる

[Esc]

デフォルト・ボタン(定義されている場合)のアクティブ化

[Enter]

サマリー・エディタ(フォーム+マッピング)

次の表は、サマリー・エディタに関するナビゲーション・タスクを実行するためのキーボード操作を示します。

表3-19 概要エディタのキーボード・ナビゲーション

ナビゲーション

キー

エディタ内の他のページ(ソース、履歴など)からサマリー・エディタの内外へ移動

[Alt]+[Tab]

タブ・グループからエディタ内の次のコントロールへ移動

[Tab]または[Ctrl]+[↓]

サマリー・エディタのコントロール間を進むまたは戻る

[Tab]または[Alt]+[Tab]

サイド・タブ・コントロール内のタブ間を移動(フォーカスがタブ・グループにある場合)

[↑]、[↓]

サイド・タブ・コントロール内のタブ間を移動(フォーカスがページにある場合)

[Ctrl]+[Page Up]/[Ctrl]+[Page Down]

ページからタブ・グループに移動(エディタ内の次のコントロールから)

[Ctrl]+[Tab]

ページからタブ・グループに移動(エディタ内の任意のコントロールから)

[Ctrl]+[↑]

セクションを開いて閉じる(フォーカスがセクション・ヘッダーにある場合)

[Enter]、[Space]、[→]/[←]

コンポーネントおよびリソース・パレット

次の表は、パレットに関するナビゲーション・タスクを実行するためのキーボード操作を示します。

表3-20 コンポーネントおよびリソース・パレットのキーボード・ナビゲーション

ナビゲーション

キー

パレットに、またはパレットから進む

[Ctrl]+[Tab] ペイン内の最初の項目に移動します。

パレットに、またはパレットから戻る

[Ctrl]+[Shift]+[Tab]

ドロップダウン・リスト、検索フィールド、パネル、ツリー構造(ツリー内の個々の要素を除く)、個々のコンポーネント・ボタンなどの要素間の移動

[Tab]、[Shift]+[Tab]

リストまたはツリー内の要素を上または下に移動

[↑]または[↓]

リストまたはツリー内の要素を左または右に移動

[←]または[→]

データの最初または最後に移動(コンポーネント・ボタン)

[Ctrl]+[Home]/[Ctrl]+[End]

コンポーネント・ボタンを選択

[Enter]

ナビゲータ

次の表は、ナビゲータに関するナビゲーション・タスクを実行するためのキーボード操作を示します。

表3-21 ナビゲータのキーボード・ナビゲーション

ナビゲーション

キー

ナビゲータに、またはナビゲータから進む

[Ctrl]+[Tab] ペイン内の最初の項目に移動します。

ナビゲータに、またはナビゲータから戻る

[Ctrl]+[Shift]+[Tab]

ドロップダウン・リスト、検索フィールド、パネル、ツリー構造(ツリー内の個々の要素を除く)、個々のコンポーネント・ボタンなどの要素間の移動

[Tab]

リストまたはツリー内の要素を上または下に移動

[↑]/[↓]

リストまたはツリー内の要素を左または右に移動

[←]または[→]

データの最初または最後に移動(コンポーネント・ボタン)

[Ctrl]+[Home]/[Ctrl]+[End]

コンポーネント・ボタンを選択

[Enter]

要素を選択

[Enter]

プロパティ・インスペクタ

次の表は、プロパティ・インスペクタに関するナビゲーション・タスクを実行するためのキーボード操作を示します。

表3-22 プロパティ・インスペクタのキーボード・ナビゲーション

ナビゲーション

キー

プロパティ・インスペクタに、またはプロパティ・インスペクタから進む

[Ctrl]+[Tab]

プロパティ・インスペクタに、またはプロパティ・インスペクタから戻る

[Ctrl]+[Shift]+[Tab]

サイド・タブ・グループからページに移動

[Tab]

ページ上の要素間を進むまたは戻る

[Tab]、[Shift]+[Tab]

上/下のタブへ移動(フォーカスがサイド・タブにある場合)

[↑]、[↓]

右または左、上または下のタブへ移動(フォーカスが内部タブ・グループにある場合)

[↑]、[↓]、[→]、[←]

サイド・タブ・グループからページに移動

[Ctrl]+[↓]

ページからサイド・タブ・グループに移動

[Ctrl]+[↑]

上(前)のサイド・タブに移動(フォーカスがページにある場合)

[Ctrl]+[Page Up]

下(次)のサイド・タブに移動(フォーカスがページにある場合)

下(次)のサイド・タブに移動(フォーカスがページにある場合)

セクションを開いて閉じる(フォーカスがセクション・ヘッダーにある場合)

[Enter]

テキスト・エディタ

次の表は、テキスト・エディタのペイン要素に関するナビゲーション・タスクを実行するためのキーボード操作を示します。

表3-23 テキスト・エディタのキーボード・ナビゲーション

ナビゲーション

キー

エディタの内部または外部を手前に移動

[Ctrl]+[Tab]

エディタの内部または外部を奥に移動

[Ctrl]+[Shift]+[Tab]

前のページに移動

[Alt]+[Page Up]

次のページに移動

[Alt]+[Page Down]

次の表は、テキスト・エディタのテキスト領域またはキャンバス領域に関するナビゲーション・タスクを実行するためのキーボード操作を示します。

表3-24 テキスト・エディタのキャンバス領域のキーボード・ナビゲーション

ナビゲーション

キー

1行上/下へ移動

[↑]、[↓]

1文字右/左へ移動

[←]、[→]

行の先頭/末尾へ移動

[Home]、[End]

前/次の単語へ移動

[Ctrl]+[←]、[Ctrl]+[→]

テキスト領域の先頭/末尾へ移動

[Ctrl]+[Home]/[Ctrl]+[End]

データの先頭/末尾へ移動

[Ctrl]+[Home]/[Ctrl]+[End]

垂直ブロック1つ分上/下へ移動

[Page Up]/[Page Down]

ブロックを左に移動

[Ctrl]+[Page Up]

ブロックを右に移動

[Ctrl]+[Page Down]

ブロックを上へ拡張

[Shift]+[Page Up]

ブロックを下へ拡張

[Shift]+[Page Down]

ブロックを左へ拡張

[Ctrl]+[Shift]+[Page Up]

ブロックを右へ拡張

[Ctrl]+[Shift]+[Page Down]

すべて選択

[Ctrl]+[A]

すべて選択解除

[↑]、[↓]、[←]、[→]

選択範囲を1行上/下へ拡張

[Shift]+[↑]/[Shift]+[↓]

選択範囲をコンポーネント1つまたは1文字分左/右へ拡張

[Shift]+[←]/[Shift]+[→]

選択範囲を行の先頭/末尾まで拡張

[Shift]+[Home]/[Shift]+[End]

選択範囲をデータの先頭/末尾まで拡張

[Ctrl]+[Shift]+[Home]/[Ctrl]+[Shift]+[End]

選択範囲を垂直ブロック1つ分上/下へ拡張

[Shift]+[Page Up]/[Shift]+[Page Down]

選択範囲を前/次の単語へ拡張

[Ctrl]+[Shift]+[←]/[Ctrl]+[Shift]+[→]

選択範囲をブロック1つ分左/右へ拡張

[Ctrl]+[Shift]+[Page Up]/[Ctrl]+[Shift]+[Page Down]

選択対象をコピー

[Ctrl]+[C]

選択対象を切り取り

[Ctrl]+[X]

選択したテキストの貼付け

[Ctrl]+[V]

グラフィカル・エディタ

次の表は、グラフィカル・エディタに関するナビゲーション・タスクを実行するためのキーボード操作を示します。

表3-25 グラフィカル・エディタのキーボード・ナビゲーション

ナビゲーション

キー

エディタの内部または外部を手前に移動

[Ctrl]+[Tab]

エディタの内部または外部を奥に移動

[Ctrl]+[Shift]+[Tab]

前のページに移動

[Alt]+[Page Up]

次のページに移動

[Alt]+[Page Down]

次の表は、グラフィカル・エディタのキャンバス領域に関するナビゲーション・タスクを実行するためのキーボード操作を示します。

表3-26 グラフィカル・エディタのキャンバス領域のキーボード・ナビゲーション

ナビゲーション

キー

エディタ領域内のフォーカス設定可能な次の要素に移動

[↑]、[↓]、[←]、[→]

要素の選択

[Space]

ポップアップ・メニューのアクティブ化

[Shift]+[F10]

3.6 IDEのカスタマイズ

様々なJDeveloper機能の外観と機能を変更できます。

3.6.1 IDEのルック・アンド・フィールの変更方法

事前定義済の設定を使用してJDeveloperの外観を変更できます。

IDEのルック・アンド・フィールを変更するには、次のようにします。

1. メイン・メニューから、「ツール」→「プリファレンス」を選択します。詳細は、[F1]を押すか、「プリファレンス」ダイアログ内で「ヘルプ」をクリックしてください。

2. 「プリファレンス」ダイアログで、「環境」ノードが選択されていない場合は選択します。

3. 「環境」ページで、「ルック・アンド・フィール」ドロップダウン・リストから別のルック・アンド・フィールを選択します。

4. 「OK」をクリックします。

5. JDeveloperを再起動します。

注意:

Motifのキー・バインドは、Windowsのキー・バインドとは異なります。Motifでは、矢印キーを使用して選択を変更することはできません。矢印キーを使用すると、先頭のフォーカス・セルが変更されます。項目を選択するには、[Ctrl]+[Space]キーを押す必要があります。これは想定されている動作です。

3.6.2 IDEの一般的な環境をカスタマイズする方法

デフォルトの表示オプション(起動時にスプラッシュ画面を表示するかどうか、ドッキング可能ウィンドウを常に前面に表示するかどうかなど)はカスタマイズできます。また、外部で変更されたファイルをJDeveloperで自動的に再ロードするかどうか、ログ・ウィンドウへの出力を自動的にファイルに保存するかどうかなど、その他の一般的な動作もカスタマイズできます。

IDEの一般環境設定を変更するには、次のようにします。

1. メイン・メニューから、「ツール」→「プリファレンス」を選択します。詳細は、[F1]を押すか、「プリファレンス」ダイアログ内で「ヘルプ」をクリックしてください。

2. 「プリファレンス」ダイアログで、「環境」ノードが選択されていない場合は選択します。

3. 環境ページで、必要に応じてオプションを選択し、フィールドの内容を設定します。

4. 「OK」をクリックします。

5. JDeveloperを再起動します。

3.6.3 IDEでのドッキング可能ウィンドウのカスタマイズ

ドッキング可能ウィンドウのレイアウトをカスタマイズできます。ドッキング可能なウィンドウを移動するときに、他のGUI要素の上に表示されるように設定することもできます。

4つのドッキング可能領域の1つ以上の形を変更するには、次のようにします。

1. メイン・メニューから、「ツール」→「プリファレンス」を選択します。詳細は、[F1]を押すか、「プリファレンス」ダイアログ内で「ヘルプ」をクリックしてください。

2. 「プリファレンス」ダイアログで、環境ノードを選択し、「ドッキング可能なウィンドウ」を選択します。

3. ドッキング可能なウィンドウ・ページで、隅の矢印をクリックすると、ドッキング領域の形が拡大または縮小されます。

4. 「OK」をクリックします。

ドッキング可能なウィンドウを移動するときに、最前面に表示しておくかどうかを変更するには、次のようにします。

1. メイン・メニューから、「ツール」→「プリファレンス」を選択します。詳細は、[F1]を押すか、「プリファレンス」ダイアログ内で「ヘルプ」をクリックしてください。

2. 「プリファレンス」ダイアログで、環境ノードを選択し、「ドッキング可能なウィンドウ」を選択します。

3. ドッキング可能なウィンドウ・ページで、必要に応じて「ドッキング可能なウィンドウを常に上に表示」を選択するか選択を解除します。

4. 「OK」をクリックします。

3.6.4 IDEでの比較ウィンドウをカスタマイズする方法

「比較」ウィンドウの表示をカスタマイズできます。

ファイルを比較するオプションをカスタマイズするには、次のようにします。

1. メイン・メニューから、「ツール」→「プリファレンス」を選択します。詳細は、[F1]を押すか、「プリファレンス」ダイアログ内で「ヘルプ」をクリックしてください。

2. 「プリファレンス」ダイアログで、「比較およびマージ」を選択します。

3. 比較ページで、比較される2つのファイルの表示に使用できるオプションを選択します。

4. 「OK」をクリックします。

3.6.5 コンポーネント・パレットをカスタマイズする方法

コンポーネント・パレットを使用すると、エディタで開いているファイルにコンポーネントを簡単に挿入できます。

3.6.5.1 ページのパレットへの追加方法

コンポーネント・パレットにページを追加して、パレットで追加のコンポーネントをグループ化したり、既存のページにコンポーネントを追加することができます。

パレットにページを追加するには、次のようにします。

1. メイン・メニューから、「ツール」→「パレットの設定」を選択して「コンポーネント・パレットの設定」ダイアログを開きます。詳細は、[F1]を押すか、「コンポーネント・パレットの設定」ダイアログ内で「ヘルプ」をクリックしてください。

2. 必要に応じて、「コンポーネント・パレットの設定」ダイアログで、「ページ・タイプ」から適切なタイプを選択して、「ページ」リストの表示を制限します。

3. 「コンポーネント・パレットの設定」ダイアログで、「ページ」リスト・ボックスの下の「追加」をクリックします。

4. 「パレット・ページの作成」ダイアログで、新規ページの名前を入力し、ドロップダウン・リストからタイプを選択します。ステップ2でページ・タイプを選択した場合は、そのタイプがこのダイアログに反映されます。

5. 「OK」をクリックし、「コンポーネント・パレットの設定」ダイアログに戻ります。

6. 完了後、「OK」をクリックします。新規のページがコンポーネント・パレットのドロップダウン・リストに追加されます。このページは、「コンポーネント・パレットの設定」ダイアログの「ページ」リストにも表示されます。

または、コンポーネント・パレット内を右クリックし、「ページの追加」を選択する方法もあります。

3.6.5.2 JavaBeansコンポーネントのパレットへの追加方法

コンポーネント・パレットにページを追加して、JavaBeansコンポーネントをグループ化したり、既存のページにコンポーネントを追加することができます。JavaBeansをパレットに追加すると、パレットからこれらのBeanを選択して、Javaビジュアル・エディタで開いたファイルに挿入できるようになります。

パレットにJavaBeansコンポーネントを追加するには、次のようにします。

1. Beanがまだライブラリで参照されていない場合、Beanのユーザー・ライブラリを(プロジェクトの外部に)作成します。
「クラス・パス」フィールドで、Beanクラスの場所を設定します。Beanがアーカイブ内にある場合は、アーカイブを使用します。Beanがプロジェクトに含まれている場合は、そのプロジェクトの出力ディレクトリを使用します。

後で実行するデプロイメント用に独自のJavaBeansを作成する場合は、デプロイメントが完了するまで、アーカイブへのJavaBeansの挿入を行わないようにすると便利です。

2. メイン・メニューから、「ツール」→「パレットの設定」を選択して「コンポーネント・パレットの設定」ダイアログを開きます。詳細は、[F1]を押すか、「コンポーネント・パレットの設定」ダイアログ内で「ヘルプ」をクリックしてください。

3. 必要に応じて、「コンポーネント・パレットの設定」ダイアログで、「ページ・タイプ」から「java」を選択し、JavaBeansが含まれるページのみを表示するようにします。
新規のページを追加しない場合は、ステップ6に進みます。

4. 「ページ」リスト・ボックスの下の「追加」をクリックします。

5. 「パレット・ページの作成」ダイアログで、新規ページの名前を入力し、ドロップダウン・リストから「Java」が選択されていることを確認して「OK」をクリックします。
「コンポーネント・パレットの設定」ダイアログの「ページ」リストの最下部に、新しいページ名が追加されます。

6. 「ページ」リストで、JavaBeansコンポーネントを追加するページを選択します。

7. 「コンポーネント」リスト・ボックスの下の「追加」をクリックします。

8. 「JavaBeanの追加」ダイアログで、必要に応じて新規コンポーネントの詳細を入力します。

9. 「OK」をクリックし、「コンポーネント・パレットの設定」ダイアログに戻ります。

10. 完了後、「OK」をクリックします。

該当するページを選択すると、コンポーネント・パレットに新規のBeanコンポーネントが表示されます。これは、関連付けられているページが「ページ」リストから選択されると、「コンポーネント・パレットの設定」ダイアログの「コンポーネント」リストにも表示されます。

3.6.5.3 パレットからのページの削除方法

JDeveloperで提供されているページを削除した場合、そのページをリカバリするには、jdev_install/systemからjdev_install/system/release_and_build_number (jdev_installは、JDeveloperがインストールされているルート・ディレクトリ)にpalette.xmlファイルを移動して、コンポーネント・パレットのデフォルト設定をリストアする以外に方法がないため、注意が必要です。

パレットからページを削除するには、次のようにします。

1. メイン・メニューから、「ツール」→「パレットの設定」を選択して「コンポーネント・パレットの設定」ダイアログを開きます。詳細は、[F1]を押すか、「コンポーネント・パレットの設定」ダイアログ内で「ヘルプ」をクリックしてください。

2. 必要に応じて、「コンポーネント・パレットの設定」ダイアログで、「ページ・タイプ」から適切なタイプを選択して、「ページ」リストの表示を制限します。

3. 「ページ」リストで、削除するページを選択します。

4. 「ページ」リスト・ボックスの下の「削除」をクリックします。
ページを削除できない場合は、無効な要求であることを示すダイアログが表示されます。

5. 削除を確認するには、「ページの削除の確認」ダイアログで「はい」をクリックします。

6. 「コンポーネント・パレットの設定」ダイアログで、「OK」をクリックします。
これで、このページは「コンポーネント・パレット」ドロップダウン・リストに表示されなくなります。また、「コンポーネント・パレットの設定」ダイアログの「ページ」リストからも削除されます。

または、コンポーネント・パレットでページを選択した状態でパレット内を右クリックし、「ページの削除」を選択する方法もあります。

3.6.5.4 パレットからのコンポーネントの削除方法

JDeveloperで提供されているコンポーネントを削除した場合、そのページをリカバリするには、jdev_install/systemからjdev_install/system/release_and_build_number (jdev_installは、JDeveloperがインストールされているルート・ディレクトリ)にpalette.xmlファイルを移動して、コンポーネント・パレットのデフォルト設定をリストアする以外に方法がないため、注意が必要です。

パレットからコンポーネントを削除するには、次のようにします。

1. メイン・メニューから、「ツール」→「パレットの設定」を選択して「コンポーネント・パレットの設定」ダイアログを開きます。詳細は、[F1]を押すか、「コンポーネント・パレットの設定」ダイアログ内で「ヘルプ」をクリックしてください。

2. 必要に応じて、「コンポーネント・パレットの設定」ダイアログで、「ページ・タイプ」から適切なタイプを選択して、「ページ」リストの表示を制限します。

3. 「ページ」リストで、コンポーネントを削除するページを選択します。

4. 「コンポーネント」リスト・ボックスで、「削除」をクリックします。
コンポーネントを削除できない場合は、無効な要求であることを示すダイアログが表示されます。

5. 削除を確認するには、確認ダイアログで「はい」をクリックします。

6. 「コンポーネント・パレットの設定」ダイアログで、「OK」をクリックします。
これで、このコンポーネントは「コンポーネント・パレット」ドロップダウン・リストに表示されなくなります。また、「コンポーネント・パレットの設定」ダイアログの「コンポーネント」リストからも削除されます。

「コンポーネント・パレット」ポップアップ・メニューを使用してコンポーネントを削除することはできません。「コンポーネント・パレットの設定」ダイアログを使用する必要があります。

3.6.6 JDeveloperでのロールの変更方法

JDeveloperの機能を決定するために使用されるロールを変更できます。成形では、ユーザーのロールに基づいてJDeveloper環境を調整します。

新しいロールに変更する場合、JDeveloperを再起動するまでは、そのロールを使用できません。

JDeveloperのロールを変更するには、次のようにします。

- メイン・メニューから、「ツール」→「ロールの切替え」を選択して、ロールを選択します。

3.6.7 ファイル・タイプとJDeveloperを関連付ける方法

一般に使用されるファイル・タイプをJDeveloperに関連付けることができます。ファイル・タイプをJDeveloperに関連付けした後は、そのタイプのファイルを開くと、JDeveloperが自動的に起動します。(この機能はWindowsシステムでのみサポートされています。)

ファイル・タイプをJDeveloperに関連付けるには、次のようにします。

1. メイン・メニューから「ツール」→「設定」を選択し、「ファイル・タイプ」ペインを開きます。詳細は、[F1]を押すか、「プリファレンス」ダイアログ内で「ヘルプ」をクリックしてください。

2. ファイル・タイプのリストで、JDeveloperに関連付けるファイル・タイプを選択します。

3. 詳細領域で、「JDeveloperで開く」を選択します。

3.7 リソース・パレットの操作

アプリケーションをデザインおよびビルドする場合は、多数のソフトウェア・アセットを検索し、これを使用する必要があります。検索対象は判明していても、検索する場所が不明な場合や、コールする必要のあるアーティファクトが不明な場合があります。アーティファクトの検索場所が判明しており、何をコールするかが判明している場合でも、ソース・リポジトリへの接続の作成方法が不明な場合もあります。次の点を考慮してください。

- アプリケーション開発者は、チームの他のメンバー、および他の製品チームが作成した共有モデル、ビューおよびコントローラ・オブジェクトを検索し、組み込む必要があります。

- UIデザイナはイメージ、スタイル・シート、テンプレート、サンプル・デザインの企業カタログにアクセスし、標準に準拠したページを迅速に作成できるようにする必要があります。

- アプリケーション・インテグレータでは、対象となる各種Webサービスから特定のドメインへ簡単にアクセスできる必要があります。

- エンド・ユーザーはページのパーソナライズで使用する関連コンテンツ(ポートレットおよびUIコンポーネントなど)を検索する必要があります。このようなケースでは、ユーザーの目的は、現在のタスクに必要なリソースを検索することのみです。アセットの検出およびアクセスのプロセスは、可能なかぎり簡単にする必要があります。

JDeveloperのリソース・パレットでは、これに取り組んでいます。これにより、次が可能です。

- IDE接続により、基礎となる様々なリポジトリに保存されているリソースの検索

- カタログでの階層構造のブラウズによるリソースの検索

- リソースの検索および検索対象の保存

- ブラウズ時の表示可能セットを削減するためのリソースのフィルタ

- ビルド中のアプリケーションで検出したリソースの使用

- カタログ定義の共有によるリソースの検出および再利用の促進

3.7.1 リソース・パレットを開く方法

リソース・パレットでは、アプリケーション・サーバー、データベース、WebDAVサーバーなど様々なリソースへの、これらを使用する様々なアプリケーションからの接続を作成し、これらのリソースを他のユーザーと共有できます。

リソース・パレットを開くには、次のようにします。

メイン・メニューで、「表示」→「リソース・パレット」を選択します。

デフォルトでは、リソース・パレットは「JDeveloper」ウィンドウの右側に表示されます。

3.7.2 IDE接続の使用方法

リソース・パレットで定義された接続は、リソース・パレットの「IDE接続」パネルにリストされます。

JDeveloperで接続を作成する場合に、別のアプリケーションで再利用可能、またはユーザー間で共有可能なIDE接続、あるいはアプリケーション接続としてリソース・パレットのコンテキストで作成できます。

接続タイプには、特殊なconnection-typeナビゲータに表示されるものもあります。たとえば、データベース接続は「IDE接続」ノードの「データベース・ナビゲータ」(IDE接続の場合)、またはapplication-nameノードに表示されます(アプリケーション・リソース接続の場合)。データベース・ナビゲータでは、データベース接続を介してオブジェクトを編集します。

作成可能な各種接続タイプは、使用可能なテクノロジと拡張機能に応じて決まります。可能な接続先を確認するには、リソース・パレットで新規ボタンから「接続の作成」を選択します。

3.7.2.1 リソース・パレット接続ディスクリプタ・プロパティの場所

リソース・パレット接続ディスクリプタの定義情報は、ファイル・システムの次の場所にあります。

system-dir/jdeveloper/system11.1.2.n.nn.nn.nn/o.jdeveloper.rescat2.model/connections/connections.xml

3.7.2.2 接続の有効範囲の定義

JDeveloper 11gでは、接続の作成と管理の方法は2通りあります。接続はアプリケーションのコンテキストで使用するもの(アプリケーション・リソース接続)、または全体としてIDEに対するもの(IDE接続)を定義できます。これらの両方の定義には同じダイアログを使用しますが、JDeveloperでのその範囲は異なります。

最初に接続を作成する場合に、接続範囲を選択します。後で接続範囲を変更することはできません。

3.7.2.2.1 アプリケーション・リソース接続

このような接続は、ローカルで範囲が設定されており、アプリケーション内でのみ使用可能です。アプリケーション・リソースでの接続は、アプリケーションのアーティファクトであり、アプリケーション内にデプロイされます。このような接続タイプはアプリケーション・ナビゲータの「接続」ノードの下で、「アプリケーション・リソース」パネルにリストされます。

接続ディスクリプタ定義情報のファイル・システムの場所はapplication-folder/.adf/META-INF/connections.xml (application-folderは選択したアプリケーションのパス)です。

3.7.2.2.2 IDE接続

これらは再利用可能な、グローバル定義された接続であり、リソース・パレットの「IDE接続」パネルにリストされます。IDE接続をアプリケーション・ナビゲータにコピーし、アプリケーション内で使用できるようにできます。

3.7.2.3 IDE接続の作成方法

リソース・パレットで、JDeveloperで使用可能なリソースに対する接続を作成できます。

作成可能な特定の接続タイプは、使用可能なテクノロジと拡張機能によって決まります。

IDE接続を作成するには、次のようにします。

1. リソース・パレットの「IDE接続」パネルで、新規ボタンから「接続の作成」を選択します。

2. 作成する接続タイプを選択し、「接続の作成」ダイアログで適切な情報を入力します。作業中に詳細を参照するには、[F1]を押すか、ダイアログ内から「ヘルプ」をクリックします。

3.7.2.4 IDE接続の編集方法

リソース・パレットでの接続の作成後は、接続の詳細は編集できますが、接続名は変更できなくなります。

IDE接続を編集するには、次のようにします。

1. リソース・パレットの「IDE接続」パネルで、接続のポップアップ・メニューから「プロパティ」を選択します。

2. 「接続の編集」ダイアログが開き、そこで接続の詳細を変更できます。詳細は、[F1]を押すか、「接続の編集」ダイアログ内で「ヘルプ」をクリックしてください。

3.7.2.5 IDE接続のアプリケーションへの追加方法

アプリケーションで、リソース・パレットの接続を使用できます。

JDeveloperで現在使用しているアプリケーションに接続を追加でき、この接続がアプリケーション・ナビゲータの「アプリケーション・リソース」パネルの「接続」ノードにリストされます。

接続をアプリケーションに追加するには、次のようにします。

リソース・パレットの「IDE接続」パネルで、接続のポップアップ・メニューから「アプリケーションに追加」を選択します。

また、リソース・パレットからリソースをドラッグし、アプリケーション・ページにドロップします。

または、リソース・パレットの「IDE接続」から接続をドラッグし、これをアプリケーション・ナビゲータの「アプリケーション・リソース」ペインにドロップします。

3.7.3 リソース・パレットの検索方法

リソース・パレットで検索する方法は2通りあります。

- 標準検索の実行

- ダイアログにパラメータを入力する、拡張検索の実行

また、カタログに動的フォルダを定義できます。フォルダのコンテンツは、フォルダを開いたときに実行される問合せ式によって定義されます。

検索にかかる時間はリソース・パレット内のリソースの数、およびリソースへの接続にかかる時間に応じて異なり、その結果は「検索結果」パネルに表示されます。

「検索の停止」ボタンをクリックして、検索の完了前に検索を停止できます。

3.7.3.1 標準検索の実行

この場合、検索はリソース・パレットのコンテンツ全体で実行され、時間がかかる場合があります。これは、検索中にJDeveloperがリモートのリソースに接続するためです。

標準検索を実行するには、次のようにします。

1. リソース・パレットで「検索オプション」ボタンをクリックし、リソースの「名前」、「タイプ」、または「説明」のいずれに対して検索を実行するかを選択します。詳細は、[F1]を押すか、リソース・パレット内で「ヘルプ」をクリックしてください。

2. フィールドに検索文字列を入力します。たとえば、名前にdepを含むリソースをすべて検索する場合は、ステップ1で「名前」を選択し、depと入力します。文字列depを含むすべてのリソースが検索結果にリストされます。

3. 「検索の開始」ボタンをクリックして検索を開始します。

3.7.3.2 拡張検索の実行

一連の検索条件を指定して、検索を開始する場所を選択できます。

拡張検索を実行するには、次の手順を実行します。

1. リソース・パレットで、「カタログ」または「IDE接続」パネルのオブジェクトのポップアップ・メニューから「拡張検索」を選択します。詳細は、[F1]を押すか、「拡張検索」ダイアログ内で「ヘルプ」をクリックしてください。

2. 検索を開始する場所を定義します。「検索範囲」から選択するか、「階層の表示」をクリックして、リソース・パレットのコンテンツを階層リストから選択します。

3. 検索条件を入力して必要なリソースに戻り、「検索」をクリックします。

3.7.4 リソース・パレット検索を再利用する方法

検索は保存し、再利用できます。検索を再利用するために保存する方法は2通りあります。

- 動的フォルダでは、フォルダのコンテンツは、フォルダを開くときに検索条件に基づいて動的に作成されます。

- 静的フォルダでは、検索の結果が含まれます。

動的フォルダは、カタログで直接作成することもできます。

検索を保存するには、次のようにします。

1. リソース・パレットの「検索結果」パネルで、ポップアップ・メニューから「検索の保存」を選択します。

2. 「検索の保存」ダイアログで、次を選択します。

- 動的フォルダを作成するための「検索条件を保存」。

- 結果の静的フォルダを作成する「検索結果の保存」。

詳細は、[F1]を押すか、リソース・パレット内で「ヘルプ」をクリックしてください。

3. フォルダの名前を入力します。

4. フォルダを組み込むカタログを、ドロップダウン・リスト、または「階層の表示」をクリックすると表示される階層リストから選択します。

3.7.5 リソース・パレット・コンテンツをフィルタする方法

フィルタを使用して、カタログ・フォルダのコンテンツを微調整できます。

「カタログ」のコンテンツをフィルタするには、次のようにします。

1. リソース・パレットで、「カタログ」パネルまたは「IDE接続」パネルのオブジェクトのポップアップ・メニューから「フィルタ」を選択します。詳細は、[F1]を押すか、「フィルタ」ダイアログ内で「ヘルプ」をクリックしてください。

2. フィルタリングを定義する文字列を入力します。その文字列を含むフォルダのエントリのみが表示されます。

3.7.6 カタログおよび接続をインポートおよびエクスポートする方法

カタログと接続は、別のユーザーがエクスポートしたリソース・カタログのアーカイブ(.rcx)ファイルのインポートによって共有されます。

カタログをエクスポートするには、次のようにします。

注意:

エクスポートするカタログを選択すると、カタログ内の接続もすべて選択されます。エクスポート前にカタログの選択を解除する場合は、アーカイブ・ファイルに含まない接続の選択も必ず解除します。

1. リソース・パレットで、「カタログ」または「IDE接続」パネルのオブジェクトのポップアップ・メニューから「エクスポート」を選択します。

2. 「カタログと接続のエクスポート」ダイアログで、エクスポートするカタログと接続を選択し、エラーの処理方法を決定します。詳細は、[F1]を押すか、「カタログと接続のエクスポート」ダイアログ内で「ヘルプ」をクリックしてください。

カタログをインポートするには、次のようにします。

1. リソース・パレットで、(新規)からインポートを選択します。

2. 「カタログと接続のインポート」ダイアログで、リソース・カタログのアーカイブ・ファイル(.rcx)へのパスと名前を指定またはブラウズします。詳細は、[F1]を押すか、「カタログと接続のインポート」ダイアログ内で「ヘルプ」をクリックしてください。

3. インポートするカタログと接続を選択し、エラーの処理方法を決定します。

3.7.7 リソース・パレットをリフレッシュする方法

リソース・パレットのコンテンツはリフレッシュできます。

リソース・パレットをリフレッシュするには、次のようにします。

1. リソース・パレットで、「カタログ」パネルまたは「IDE接続」パネルのオブジェクトのポップアップ・メニューから「リフレッシュ」を選択します。

3.7.8 リソース・パレット・カタログの使用方法

カタログは、基礎となる複数のリポジトリからリソースを編成するためのユーザー定義構成です。カタログとそれに関連するフォルダ構成のコンテンツは、個々の開発者が使用できるように設計するか、開発プロジェクトのUIデザイナなど、特定のユーザー・グループを対象とすることができます。

カタログ・フォルダにより、カタログ内のリソースが整理されます。カタログ・フォルダは、ファイル・システム内のファイル、またはWebブラウザのブックマークを整理する場合と同様に使用できます。それぞれのカタログ・フォルダには、次の組合せが含まれます。

- フォルダ

- 問合せによって移入される動的フォルダ

- フォルダまたはサブツリーのコンテンツを微調整するためのフィルタ

3.7.8.1 カタログの作成方法

カタログで、リソース・パレットの情報を整理できます。

カタログを作成するには:

1. リソース・パレットで、「新規」ボタンから「新規カタログ」を選択します。

2. 「カタログの作成」ダイアログで、カタログの名前を指定します。詳細は、[F1]を押すか、「カタログの作成」ダイアログ内で「ヘルプ」をクリックしてください。

3. (オプション)カタログの説明、およびカタログ管理者の電子メールを入力します。

3.7.8.2 カタログの名前の変更方法

カタログの名前を変更できます。

カタログの名前を変更するには、次のようにします。

1. リソース・パレットで、カタログを右クリックして、ポップアップ・メニューから「名前の変更」を選択します。

2. 「名前の変更」ダイアログで、カタログの新規の名前を指定します。詳細は、[F1]を押すか、「名前の変更」ダイアログで「ヘルプ」をクリックしてください。

3.7.9 カタログ・フォルダの使用方法

カタログのコンテンツを整理するためのフォルダを作成できます。

3.7.9.1 フォルダの作成方法

カタログ内の情報をフォルダで整理できます。

カタログ・フォルダを作成するには、次のようにします。

1. リソース・パレットで、「カタログ」パネルまたは「IDE接続」パネルのカタログのポップアップ・メニューから「新規フォルダ」を選択します。詳細は、[F1]を押すか、「フォルダの作成」ダイアログ内で「ヘルプ」をクリックしてください。

2. フォルダの名前を入力します。

3.7.9.2 動的フォルダの作成方法

動的フォルダでは、カタログ・フォルダにリソースを動的に移入するための便利な方法を提供しています。フォルダのコンテンツは、フォルダを開いたときに実行される問合せ式によって定義されます。問合せ式の結果は、フォルダのコンテンツとして表示されます。

動的フォルダを作成するには、次のようにします。

1. リソース・パレットで、「カタログ」パネルまたは「IDE接続」パネルのカタログのポップアップ・メニューから「新規動的フォルダ」を選択します。詳細は、[F1]を押すか、「動的フォルダの作成」ダイアログ内で「ヘルプ」をクリックしてください。

2. フォルダを開いたときに、このフォルダへの移入に使用される検索条件を定義します。

3.7.9.3 カタログへのリソースの追加方法

リソース・パレットの「IDE接続」パネルまたは「検索」パネルのリソースから、「カタログ」のカタログに接続を追加できます。

リソースをカタログに追加するには、次のようにします。

1. リソース・パレットで、「IDE接続」パネルの接続、または「検索」パネルの検索結果を右クリックし、ポップアップ・メニューから「カタログに追加」を選択します。

2. 「カタログに追加」ダイアログが開き、カタログのリソース名、およびこれに追加するカタログを指定できます。詳細は、[F1]を押すか、「接続の作成」ダイアログで「ヘルプ」をクリックしてください。

また、「IDE接続」からアイテムをドラッグし、これをカタログまたはカタログ・フォルダにドロップできます。

カタログのアイテムまたはフォルダを選択し、これを同じカタログの別のフォルダ、または別のカタログにドラッグしてカタログを整理できます。

3.8 ソース・ファイルの処理

JDeveloperには、JavaやXMLなど、複数のテクノロジにまたがってソース・ファイルを編集するためのエディタが組み込まれています。

3.8.1 ソース・エディタの使用

JDeveloperには、JavaやXMLなど、複数のテクノロジにまたがってソース・ファイルを編集するためのエディタが組み込まれています。

編集しているソース・ファイルのタイプによって、ソース・エディタは次のフォームの1つで使用可能になります。

- Javaソース・エディタ

- XMLエディタ

- HTML/JSPソース・エディタ

- JavaScriptエディタ

テクノロジ固有の機能に加え、ソース・エディタはコーディング作業を向上させる、すべてのテクノロジにわたる一連の共通機能も備えています。これらの機能には、ブックマーキング、コード・インサイト、コード・テンプレートおよびより速くて質の高いコーディングを実現させるその他の機能が含まれます。

ソース・エディタをコーディング・スタイルに合せてカスタマイズするには、「プリファレンス」ダイアログ内の「コード・エディタ」ページを使用します。

ソース・エディタは、すべてのテクノロジにわたり、様々なコーディング・タスクに対する直感的なサポートを提供する、一連の共通機能を用意しています。エディタのすべてのフォームにわたり使用可能なこれらの機能は、コーディング・タスクのより迅速な実行とコードのナビゲーション向上により、コーディング操作が向上します。

ブレッドクラム・ナビゲーション

「エディタ」ウィンドウの下部に位置するブレッドクラム・バーは、現在のキャレットの位置からファイルの一番上までコード・エンティティの階層を表示します。マウス・カーソルをノードの上に置くと、ノードに関する情報がポップアップ表示されます。またそのノードをクリックするとキャレットがノードの位置に移動します。

ブレッドクラムをクリックし、子ブレッドクラムのポップアップ・リストを(適切な場所に)表示できます。たとえば、Javaクラスでは、ブレッドクラムをクリックして、リスト内のクラスのメソッドおよび内部クラスを表示できます。このリスト上のアイテムの選択により、エディタをその位置に移動できます。

ブロック着色が有効化されており、色が割り当てられている場合、ブレッドクラムは該当するコード・ブロックと同じ色でハイライト表示されます。

概要ポップアップ

エディタの右マージンは、ソース・ファイル内の位置を示すインジケータである色つきの概要マークが表示されます。マウスを概要マークの上に置くと、ソース・ファイルのその位置にあるアイテムに関する情報、および関連コードの断片を表示するポップアップが現れます。

次の概要インジケータが提供されています。

- 「エディタ」ウィンドウの右上角の四角マークは、色により、ソース・ファイル全体の状態を示します。白はヘルス状態が計算されていることを示します。緑はファイル内にエラーまたは警告がないことを示します。赤はエラーを示し、黄色は警告を示します。

- 四角形は、その色に応じて次のソース編集アーティファクトの発生を示します。

- 赤: Javaコード・エラー

- 水色: ブックマーク

- ミディアム・ブルー: 現在の実行ブレークポイント

- 黄色: 検索対象テキストの発生

- 薄いオレンジ: Java警告

- 明るいオレンジ: プロファイル・ポイント

右マージンのすべての場所で[Ctrl]キーを押して、現在ビューにないソース・コードの一部を表示するポップアップ・ウィンドウも表示できます。[Ctrl]キーを押している間にマウスの位置を調節することにより、エディタ内でスクロールすることなくコード全体を表示できます。

ホバー

ホバーにより、IDEの特定の領域にマウス・カーソルを移動すると、前面に表示されるポップアップ・ウィンドウでこれに関する情報を取得できます。

空白表示

「ツール」メニュー→「プリファレンス」→「コード・エディタ」→「表示」→「空白文字の表示」

この機能はオプションで空白、改行、復帰、ハード・スペースおよびタブ文字をエディタ内で表示可能にします。これはデフォルトではオフになっており、「プリファレンス」ダイアログから有効化および無効化できます。

選択の複製

「編集」メニュー→「選択の複製」

コードの現在選択したブロックを複製します。コピーしたコードはオリジナル・コードに隣接して配置されます。複製後は、新しく挿入されたコードが選択されます。クリップボードには、この操作による影響はありません。

垂直方向の選択

「編集」メニュー→「ブロック選択」

この機能により、行の終わりで折り返すテキストを選択しない場合、コードを垂直方向に選択できます。これは表形式データまたは垂直方向に並んだコード・ブロックに有用です。

行の結合

現在行と次の行を結合、または選択内のすべての行を結合します。行を結合するため、コメント・デリミタまたは追加の空白は適切に削除されます。

デフォルトのキーボード・ショートカット: [Ctrl]+[J]

カーソル位置

ソース・エディタが使用中の場合は、下部のステータス・バーにカーソルの現在の行と列の位置が表示されます。

マウス・ホイール・ズーム

[Ctrl]キーを押しながらマウス・スクローラを使用して、コード・エディタをズーム・インまたはズーム・アウトします。

3.8.1.1 ポップアップ・メニューから使用可能な機能

汎用ソース・エディタは、ポップアップ・メニューを介して一連の機能を提供します。これらの機能を使用するには、ポップアップ・メニューで、「ソース」を選択します。使用するソース・ファイルのタイプにより、次以外の項目がポップアップ・メニューに表示される場合があります。たとえば、Javaソース・エディタはJava固有のオプションをソース・エディタのポップアップ・メニューに提供します。

注意:

これらの機能は、「ソース」メニューからも使用可能です。

構文補完インサイト

構文補完インサイトでは、編集中のJavaコードを自動補完する補完項目(メソッド名や、適用可能な場合はパラメータ・タイプなど)のリストが挿入ポイントに表示されます。このリストは、挿入ポイントにあるコードのコンテキストに基づいて生成されます。構文補完インサイトでサポートされるコンテキストは、次のとおりです。

- package文およびimport文の内部

- extends、implementsおよびthrows句の内部

- continue文およびbreak文の内部

- 一般的なコード式の内部

デフォルトのキーボード・ショートカット: [Ctrl]+[Space]

パラメータ・インサイト

パラメータ・インサイトでは、入力中のメソッド・コールのパラメータのタイプおよび名前が表示されます。メソッドがオーバーロードされている場合は、パラメータのタイプと名前の複数のセットがリストされます。

デフォルトのキーボード・ショートカット: [Ctrl]+[Shift]+[Space]

注意:

「構造」ウィンドウにファイルのエラーが表示された場合は、コード(補完またはパラメータ)・インサイトが動作しないことがあります。使用しているクラスがプロジェクトにない(つまり、クラスパス上にない)場合、コード・インサイトは表示されません。コード・インサイトがソース・ファイルにアクセスするには、srcファイルのコンパイルが必要な場合がありますので注意してください。

補完文

JDeveloperにとって、補完が明白であるような場合、自動補完コード文を使用します。たとえば、文末のセミコロン挿入などです。

デフォルトのキーボード・ショートカット: [Ctrl]+[Shift]+[Enter]

テンプレートの適用

JDeveloperの事前定義コード・テンプレートのリストからコード・テンプレートを挿入します。提供されているコード・テンプレートはコンテキスト依存です。たとえば、クラス変数を宣言するテンプレートは、カーソルがクラス・ファイルの該当する場所にある場合のみ提供されます。

デフォルトのキーボード・ショートカット: [Ctrl]+[Enter]

コード・アシスト

コード・アシストはエディタ内のコードを検証し、一般的な問題の修正を補助します。JDeveloperでコード変更に関する提案がある場合は、エディタのマージンに「コード・アシスト」アイコンが表示されます。コード・アシストを手動で起動するには、[Ctrl]と[Alt]を押しながら[Enter]を押します。コード・アシストにリストされているアクションを選択するには、[Alt]を押しながら下線キーを押します。

デフォルトのキーボード・ショートカット: [Ctrl]+[Alt]+[Enter]

QuickDoc

フォーカスされている要素について、(JavaまたはJavaScriptエディタのどちらを使用しているかに応じて) JavadocまたはJsdocの表示を選択します。

デフォルトのキーボード・ショートカット: [Ctrl]+[D]

行コメントの設定

ソース・エディタで現在フォーカスされている行をコメント・アウトします。このコマンドをコメントされた行で実行すると、その行を非コメント化します。

デフォルトのキーボード・ショートカット: [Ctrl]+[/]

ブロックのインデント

現在フォーカスされているコードの行をインデントします。コードのブロックが選択されている場合、ブロック全体がインデントされます。

ブロックのインデント解除

エディタ内でフォーカスされているコードに基づき、コードの行またはブロックをインデント解除します。

3.8.2 ソース・エディタのプリファレンスの設定方法

プリファレンスの変更により、ソース・エディタの様々な機能のデフォルト設定を変更できます。

事前定義されたキーボード・スキームを修正して、ソース・エディタのショートカット・キーを表示または変更できます。

ソース・エディタのインデント・サイズを設定するには、次のようにします。

1. メイン・メニューから、「ツール」→「プリファレンス」を選択します。詳細は、[F1]を押すか、「プリファレンス」ダイアログ内で「ヘルプ」をクリックしてください。

2. 「プリファレンス」ダイアログで、「コード・エディタ」ノード、「コード・スタイル」ページの順に選択します。

3. コード・スタイル・ページで、「編集」ボタンを選択します。

4. 「書式」タブで、「インデント」ノードを開き、「インデント・サイズ」を選択します。

5. 必要に応じてインデントの値を変更します。

注意:

コードの編集時に[Tab]キーを押して「タブ文字を使用」オプションの選択を解除した場合、JDeveloperでは、指定したインデント・サイズでインデントされます(デフォルトは4)。「タブ文字を使用」を選択すると、「インデント・サイズ」および「タブ・サイズ」フィールドの両方で指定された値に基づいて、JDeveloperでは、インデントにタブ文字を使用します。たとえば、インデント・サイズに4を、タブ・サイズに8を使用している場合、タブ・サイズ(8)に到達するには2つのインデント・レベル(それぞれ4つのスペース)が必要です。したがって、[Tab]を2回押して2回インデントすると、ソース・ファイルにタブ文字が挿入されます。このタブ文字によって、8つのスペースが挿入されます。

6. 「OK」をクリックしてダイアログを閉じます。

ソース・エディタのフォントを設定するには、次のようにします。

1. メイン・メニューから、「ツール」→「プリファレンス」を選択します。詳細は、[F1]を押すか、「プリファレンス」ダイアログ内で「ヘルプ」をクリックしてください。

2. 「プリファレンス」ダイアログで、「コード・エディタ」ノード、「フォント」ノードの順に選択します。

3. フォント・ページで、フォント・タイプとフォント・サイズを選択します。必要に応じてサンプル・テキストを変更します。サンプル・テキストの表示にフォントの変更が反映されます。
デフォルトでは、すべてのシステム・フォントがロードされます。このページで使用するフォントを固定幅フォントに限定するには、「固定幅フォントのみ表示」を選択します。

4. 「OK」をクリックします。

ソース・エディタのカレットの機能を設定するには、次のようにします。

1. メイン・メニューから、「ツール」→「プリファレンス」を選択します。詳細は、[F1]を押すか、「プリファレンス」ダイアログ内で「ヘルプ」をクリックしてください。

2. 「プリファレンス」ダイアログで、「コード・エディタ」ノードを開きます。

3. 「カレットの機能」ノードを選択します。

4. カレットの機能ページで、カレットの外観と機能を決定する属性を設定します。
詳細は、[F1]を押すか、ダイアログ・ページ内で「ヘルプ」をクリックしてください。

5. 「OK」をクリックします。

ソース・エディタの幅および右マージンのオプションを設定するには、次のようにします。

1. メイン・メニューから、「ツール」→「プリファレンス」を選択します。詳細は、[F1]を押すか、「プリファレンス」ダイアログ内で「ヘルプ」をクリックしてください。

2. 「プリファレンス」ダイアログで、「コード・エディタ」ノードを開きます。

3. 「表示」ノードを選択します。

4. 表示ページで、右マージンの設定を入力します。

5. ソース・エディタの幅を、列の数で入力します。

6. 「OK」をクリックします。

ソース・エディタの行の左余白の処理を設定するには、次のようにします。

1. メイン・メニューから、「ツール」→「プリファレンス」を選択します。詳細は、[F1]を押すか、「プリファレンス」ダイアログ内で「ヘルプ」をクリックしてください。

2. 「プリファレンス」ダイアログで、「コード・エディタ」ノードを開きます。

3. 「行の左余白」ノードを選択します。

4. 行の左余白ページで、行番号を表示するかどうかを決定します。

5. 他の属性を使用して、必要な行の左余白の処理を設定します。

6. 「OK」をクリックします。

ソース・エディタの構文ハイライト表示オプションを設定するには、次のようにします。

1. メイン・メニューから、「ツール」→「プリファレンス」を選択します。詳細は、[F1]を押すか、「プリファレンス」ダイアログ内で「ヘルプ」をクリックしてください。

2. 「プリファレンス」ダイアログで、「コード・エディタ」ノードを開きます。

3. 「構文の色指定」ノードを選択します。

4. まず、構文の色指定ページで、処理する構文の適切なカテゴリを選択します。
このカテゴリのリストにある最初のスタイルの現在の設定を反映してページが表示され、この設定がハイライト表示されます。

5. 前述のカテゴリが表示された状態で、「使用可能なスタイル」リストで個々のスタイルを選択し、そのスタイルの現在の設定を表示します。

6. フォント・スタイルを選択し、背景色と前景色を必要に応じて設定します。その設定に従ってサンプル・テキストが変更されます。

7. 「OK」をクリックします。

ソース・エディタのブックマーク・オプションを設定するには、次のようにします。

1. メイン・メニューから、「ツール」→「プリファレンス」を選択します。詳細は、[F1]を押すか、「プリファレンス」ダイアログ内で「ヘルプ」をクリックしてください。

2. 「プリファレンス」ダイアログで、「コード・エディタ」ノードを開きます。

3. 「ブックマーク」ノードを選択します。

4. 「ブックマーク」ページで、エディタまたはOracle JDeveloperを終了した後のブックマークの処理方法、ブックマーク間の移動方法、およびすでに存在しないと考えられる行に付けられた、ファイルの最後にあるブックマークの処理方法を決定します。

5. 「OK」をクリックします。

ソース・エディタのコード・インサイトのオプションを設定するには、次のようにします。

1. メイン・メニューから、「ツール」→「プリファレンス」を選択します。詳細は、[F1]を押すか、「プリファレンス」ダイアログ内で「ヘルプ」をクリックしてください。

2. 「プリファレンス」ダイアログで、「コード・エディタ」ノードを開きます。

3. 「コード・インサイト」ノードを選択します。

4. コード・インサイト・ページで、適切なチェック・ボックスをチェックして構文補完インサイトまたはパラメータ・インサイトを使用可能にし、スライダを使用してポップアップ・ウィンドウが表示されるまでの遅延時間を設定します。

5. 「OK」をクリックします。

3.8.3 ソース・エディタのコード・テンプレートをカスタマイズする方法

コード・テンプレートを使用することによって、ソース・エディタでの作業中にコードを迅速かつ効率的に作成できます。既存のテンプレートを編集することも、独自のテンプレートを作成することもできます。

既存のコード・テンプレートを表示するには、次のようにします。

1. メイン・メニューから「ツール」→「プリファレンス」を選択し、「コード・エディタ」ノードを開いて、「コード・テンプレート」を選択します。詳細は、[F1]を押すか、「プリファレンス」ダイアログ内で「ヘルプ」をクリックしてください。

2. コード・テンプレート・ページで、ショートカットをスクロールします。このショートカットは、各テンプレートを起動するために入力する文字を表します。

3. 任意のショートカットをクリックすると、関連付けられているテンプレート・コードが「コード」タブに表示されます。このテンプレートに関連付けられているインポートがある場合は、「インポート」タブに表示されます。

既存のコード・テンプレートを編集するには、次のようにします。

1. メイン・メニューから「ツール」→「プリファレンス」を選択し、「コード・エディタ」ノードを開いて、「コード・テンプレート」を選択します。

2. コード・テンプレート・ページで、必要に応じて、ショートカット、説明、コード(コードで使用される変数を含む)およびインポートを変更します。

3. 終了したら、「OK」をクリックします。

新規のコード・テンプレートを定義するには、次のようにします。

1. メイン・メニューから「ツール」→「プリファレンス」を選択し、「コード・エディタ」ノードを開いて、「コード・テンプレート」を選択します。

2. 「コード・テンプレート」ページで、「追加」をクリックします。カーソルが「ショートカット」リストの一番下にジャンプし、新規行が追加されます。

3. 新規ショートカットの名前を入力し、その隣のリストに説明を追加します。

4. 「コード」タブを選択し、このテンプレートのコードを入力します。カーソル位置はテンプレートの一部であり、テンプレートの使用時に入力される新規コードの論理挿入位置を表します。「インポート」タブを選択し、このテンプレートに関連付けられているインポートを入力します。

5. 「OK」をクリックします。

ソース・エディタのHTMLおよびJSPオプションをカスタマイズするには、次のようにします。

1. 「ツール」→「設定」を選択します。詳細は、[F1]を押すか、「プリファレンス」ダイアログ内で「ヘルプ」をクリックしてください。

2. 「コード・エディタ」ノードを開きます。

3. 「XMLおよびJSP/HTML」ノードを選択します。

4. 「XMLおよびJSP/HTML」ページで、「終了タグの自動補完」を選択すると、そのオプションが有効になります。

5. 「OK」をクリックします。

ソース・エディタのUNDO動作を設定するには、次のようにします。

1. メイン・メニューから、「ツール」→「プリファレンス」を選択します。詳細は、[F1]を押すか、「プリファレンス」ダイアログ内で「ヘルプ」をクリックしてください。

2. 「プリファレンス」ダイアログで、「コード・エディタ」ノードを開きます。

3. 「UNDO動作」ノードを選択します。

4. UNDO動作ページのスライダ・バーを使用して、1回のUNDOに集約する同じタイプの処理数を設定します。

5. 挿入モードと上書きモードでの編集の集約オプションと、[Del]キーおよび[Back Space]キーを使用した削除の集約オプションを選択または選択解除します。

6. ナビゲーションのみの変更でもUNDOを可能にする場合は、該当するチェック・ボックスをチェックします。この設定を有効にする場合は、スライダを使用し、1回のUNDOに集約するナビゲーション変更の数を設定します。

7. 「OK」をクリックします。

ソース・エディタの印刷オプションを設定するには、次のようにします。

1. メイン・メニューから、「ツール」→「プリファレンス」を選択します。詳細は、[F1]を押すか、「プリファレンス」ダイアログ内で「ヘルプ」をクリックしてください。

2. 「プリファレンス」ダイアログで、「コード・エディタ」ノードを開きます。

3. 「印刷」ノードを選択します。

4. 印刷ページで、様々な印刷オプションを設定します。

5. 「OK」をクリックします。

3.8.4 エディタ・ウィンドウでのソース・ファイルの管理方法

Oracle JDeveloperは、エディタ・ウィンドウでファイル操作をより簡単にするための様々な機能を備えています。

3.8.4.1 ファイルのビューの最大化

JDeveloperでファイルを可能な最大ビューで開くことができます。これは、JDeveloper画面の全体を占めるようソース・エディタを最大化することで実現されます。

JDeveloperのすべての別ウィンドウ(ヘルプ・センターやアプリケーション・ナビゲータなど)で、タブをダブルクリックするのと同じテクニックを使用できます。

ファイルのビューを最大化するには、次のようにします。

- ソース・エディタで、ファイルのタブをダブルクリックします。JDeveloperで表示できるウィンドウはソース・エディタのみとなり、現在選択しているファイルがウィンドウ内に表示されます。

ファイルのビューを以前のサイズに縮小するには、次のようにします。

- 再びファイルのタブをダブルクリックします。Oracle JDeveloperで、ウィンドウは以前のレイアウトに戻ります。

3.8.4.2 エディタ・ウィンドウで開いているファイル間の移動

表示されている順(タブによる切替え)、履歴順(アクセス順による切替え)または数値順(ファイル・ショートカット・キー割当てに基づく切替え)にファイル間を移動できます。

タブを使用して開いているファイルを移動するには、次のようにします。

- [Alt]を押しながら[←]を押すか、[Alt]を押しながら[→]を押します。[Alt]を押しながら[←]を押すと左に移動し、[Alt]を押しながら[→]を押すと右に移動します。

アクセス履歴に基づいて開いているファイルを移動するには、次のようにします。

- [Ctrl]を押しながら[Tab]を押すか、[Ctrl]および[Shift]を押しながら[Tab]を押します。
[Ctrl]を押しながら[Tab]を押すと、最後にアクティブであったファイルが開きます。任意のファイルを開くと、そのファイルが現在のアクティブなファイルになり、その前に開いていたファイルが最後にアクティブであったファイルになることに注意してください。

たとえば、指定のファイルA、BおよびCがC、B、Aの順序で開かれ、現在ファイルAにフォーカスがあるとします。この状態で[Ctrl]を押しながら[Tab]を押すと、ファイルBが画面の前面に表示されます。すると、Bがフォーカスのあるファイルになり、Aが最後にアクティブであったファイルになります。そのため、もう一度[Ctrl]を押しながら[Tab]を押すと、再びAが画面の前面に表示されます。

- [Ctrl]を押しながら[Tab]を連続して押すと、中断することなくアクセス順序に基づいてファイルを移動できます。いずれかのファイルで操作を停止した場合のみ、そのファイルにフォーカスが当たります。ファイルで操作を停止することは、そのファイルで[Ctrl]を押しながら[Tab]を押すことと同じです。

3.8.4.3 現在開いているすべてのファイルのリスト表示方法

エディタ・ウィンドウで現在開いているすべてのファイル、または特定のタブ・グループで現在開いているすべてのファイルを表示できます。

特定のタブ・グループで現在開いているすべてのファイルをアルファベット順にリスト表示するには、次のようにします。

エディタ・ウィンドウの右上隅にある「ファイル・リスト」ボタンをクリックします。または、エディタ・ウィンドウにフォーカスがある状態で、[Alt]を押しながら[0]を押します(デフォルトのキーボード・スキームの場合)。

エディタ・ウィンドウが分割されていない場合、開いているすべてのファイルがリスト表示されます。エディタ・ウィンドウが分割されている場合、リストには該当するタブ・グループ内で開いているすべてのファイルが表示されます。

ファイルが分割または連結解除されているかどうかにかかわらず、エディタ・ウィンドウで現在開いているすべてのファイルをアルファベット順にリスト表示するには、次のようにします。

- メイン・メニューから、「ウィンドウ」→「ウィンドウ」を選択します。

3.8.4.4 最近開いたファイルへアクセスする方法

ユーザーが最後に編集したファイルは、Oracle JDeveloperに記録されます。

現在開いているかどうかにかかわらず、最近編集したファイルにアクセスするには、次のようにします。

1. メイン・メニューから、「ナビゲート」→「最近使用したファイルへ移動」を選択するか、(デフォルトのキーボード・スキームで) [Ctrl]を押しながら[=]を押します。

2. 「最近のファイル」ダイアログでリストからファイルを選択するか、ファイル名の最初の文字をいくつか入力します。

3. 「OK」をクリックします。

デフォルトでは、ナビゲータなどから直接開いたファイルのみがリストに表示されます。コードのデバッグなどで間接的に開いたファイルは、自動的に表示されません。直接か間接かにかかわらず、開いたファイルをすべて表示するには、「すべて表示」を選択します。

3.8.4.5 1つのファイルを複数のエディタで開く方法

エディタ・ウィンドウを水平方向または垂直方向に分割し、1つのファイルを複数のビューで開くことができます。ビューごとに、ファイルを開くエディタの種類を変更できます。

ファイルは、任意の数のビューに分割できます。分割されたビューは、自動的に相互に同期します。

1つのファイルを複数のビューで開くには、次のようにします。

1. メイン・メニューから、「ウィンドウ」→「ドキュメントを分割」を選択します。
エディタ・ウィンドウが2つに分割され、1つのファイルに同一の独立したウィンドウが2つ表示されます。各ウィンドウの下部には、それぞれのエディタ・タブのセットがあります。

2. 各ウィンドウで、ファイルを表示するエディタ・タブを選択します。
一部のエディタ(Javaビジュアル・エディタなど)では、1つのファイルで一度に開けるのは1つのビューのみであることに注意してください。

または、マウスを使用してファイルを水平方向または垂直方向に分割することもできます。

ファイルを水平方向に分割するには、垂直スクロール・バーのすぐ上(ウィンドウの右上隅)でスプリッタをクリックし、下にドラッグします。

ファイルを垂直方向に分割するには、水平スクロール・バーのすぐ右(ウィンドウの右下隅)でスプリッタをクリックし、左にドラッグします。

分割されたビュー間を簡単に移動するには、次のようにします。

- 順方向に移動するには、[F6]をします。

- 逆方向に移動するには、[Shift]を押しながら[F6]を押します。

複数のビューを1つにまとめるには、次のようにします。

- メイン・メニューから、「ウィンドウ」→「ドキュメントの分割解除」を選択します。

または、分割線をエディタ・ウィンドウの端を超えるまでドラッグします。

3.8.4.6 複数のファイルを一度に表示

エディタ・ウィンドウを水平方向または垂直方向に分割し、複数のファイルを一度に表示するビューを開くことができます。各ビューは、それぞれ他のビューから独立しています。

エディタ・ウィンドウは、任意の数の独立した異なるビューに分割できます。

個別のウィンドウに複数のファイルを一度に表示するには、次のようにします。

- メイン・メニューから、「ウィンドウ」→「新規タブ・グループ」を選択します。
エディタ・ウィンドウが2つに分割され、ウィンドウごとに異なるファイルが表示されます。各ウィンドウの上部にはドキュメント・タブのセットがあり、下部にはエディタ・タブのセットがあります。これらの各ウィンドウは、タブ・グループと呼ばれます。

タブ・グループは必要な数だけ作成できます。

または、マウスを使用してファイルを連結解除することもできます。ファイルのドキュメント・タブをクリックし、ファイルを表示するウィンドウ領域の方向にドラッグします。

タブをドラッグすると、カーソルに従うアイコンが変化します。左、右、上または下向きの矢印を持つ分割されたウィンドウの形により、マウス・ボタンを放したときに新しいウィンドウが現在のウィンドウに対してどの位置に表示されるかがわかります。

ファイルを別のタブ・グループに移動するには、次のようにします。

1. ファイルのドキュメント・タブを、連結するタブ・グループの中央の表示領域にドラッグします。

2. カーソルに従うアイコンが、タブ付きの小さなウィンドウの形に変化したらマウスを放します。

複数のビューを1つにまとめるには、次のようにします。

- ドロップダウン・メニューから、「ウィンドウ」→「タブ・グループを閉じる」を選択します。

または、連結解除しているファイルのドキュメント・タブをドラッグし、既存のタブまたはタブ・グループの上にドロップすることもできます。アイコンがタブ付きの小さなウィンドウの形に変化したらマウスを放します。

3.8.4.7 エディタ・ウィンドウで簡単にファイルを閉じる方法

エディタ・ウィンドウで開いている任意のファイルは、クリックするだけで閉じられます。

現在のファイルを閉じるには、次のいずれかの方法を選択します。

- メイン・メニューから、「ファイル」→「閉じる」を選択します。

- [Ctrl]を押しながら[F4]を押します。

- エディタで現在のファイルのタブを右クリックし、「閉じる」を選択します。

- 現在のファイルのタブの上にマウスを置き、「閉じる」ボタンをクリックします。

すべてのファイルを閉じるには、次のいずれかの方法を選択します。

- メイン・メニューから、「ファイル」→「すべて閉じる」を選択します。

- [Ctrl]、[Shift]および[F4]を同時に押します。

- エディタでファイルのタブを右クリックし、「すべて閉じる」を選択します。

1つを除いてすべてのファイルを閉じるには、次のようにします。

- エディタで、開いたままにするファイルのタブを右クリックし、「その他を閉じる」を選択します。

一度に複数のファイルを閉じるには、次のようにします。

1. メイン・メニューから、「ウィンドウ」→「ウィンドウ」を選択します。

2. 「ウィンドウ」ダイアログで、閉じるファイルを複数選択して「OK」をクリックします。

選択したファイルのみを閉じるには、次のようにします。

1. エディタで、閉じるファイルに対応するタブを選択します。

2. [Ctrl]を押しながらタブをクリックするか、またはタブの上にマウスを置き、「閉じる」ボタンをクリックします。

3.8.5 マウスオーバー・ポップアップの使用

「マウスオーバー・ポップアップ」では、IDEの特定の領域にマウス・カーソルを置くと、前面に表示されるポップアップ・ウィンドウでこれに関する情報を取得できます。次の項目に関する情報を得ることができます。

- Javadoc

- ソース・コード

- デバッグ中のデータ値

- ブレークポイント

マウスを移動し、任意でその機能に割り当てるキーを押すと、ポップアップ・ウィンドウが表示されます。マウスオーバー・ポップアップを使用できるIDEの領域には、次のものがあります。

- 「構造」ウィンドウ

- エディタ内のテキスト

スマート・ポップアップ

スマート・ポップアップ機能では、「プリファレンス」ダイアログの「マウスオーバー・ポップアップ」ページで指定されたポップアップの順序に応じて、状況に最も適したポップアップが表示されます。スマート・ポップアップは、「プリファレンス」ダイアログの「マウスオーバー・ポップアップ」ページで指定できるキーストロークによって有効化されます。

たとえば、次のようなポップアップを構成します(「プリファレンス」ダイアログの「マウスオーバー・ポップアップ」ページで設定)

- スマート・ポップアップはコントロール・キーで有効化され、構成されます。

- 「データ値」、「ドキュメント」、および「ソース」ポップアップではすべて「スマート・ポップアップ」が有効化されており、「マウスオーバー・ポップアップ」表で「データ値」、「ドキュメント」、「ソース・コード」の順になっています。

構成では、マウスをソース・エディタの変数の上に置いて[Ctrl]を押すと、次のようになります。

- 「データ値」ポップアップが最初に考慮されます。デバッグ中に、値のある変数の上にマウスを置くと、「データ値」ポップアップが表示されます。

- 前のステップでポップアップが表示されない場合、次に「ドキュメント」ポップアップが考慮されます。変数にドキュメントがある場合、ポップアップ・ウィンドウに表示されます。

- 前のステップでポップアップが表示されない場合、「ソース」ポップアップが次に考慮され、変数がある場合はそのソース・コードがポップアップ・ウィンドウに表示されます。

「スマート・ポップアップ」では、IDEのスマート・ポップアップの有効化キーストロークを使用するのみで、最も適切なポップアップを表示できます。

注意:

スマート・ポップアップが有効化されていても、「データ値」、「ドキュメント」、および「ソース」の個々のポップアップについては、それぞれの有効化キーで有効化する必要があります。

3.8.6 ナビゲータでのソース・ノードの検索方法

編集用に開いたファイルのソース・ノードは、そのノードが現在のプロジェクト内にあるかどうかにかかわらず、アプリケーション・ナビゲータ内で簡単に検索できます。

エディタで開いたファイルのノードを検索するには、次のようにします。

1. エディタで検索対象のファイルにフォーカスがあることを確認します。

2. ポップアップ・メニューから、「ナビゲータ内で選択」を選択します。

3.8.7 ソース・ファイル内のブックマークの設定方法

関連コードをすぐに見つけられるように、ソース・ファイル内でブックマークを使用できます。「ブックマーク」ウィンドウを使用して、ブックマークされたマテリアルへ移動できます。

ソース・ファイル内でブックマークを設定または削除するには次のようにします。

1. ファイル内で、ブックマークを設定する行の左余白にカーソルを置きます。

2. 右クリックして「ブックマークの設定」を選択します。

3.8.8 ソース・ファイルの編集方法

Oracle JDeveloperには、ソース・ファイルを編集するための各種機能が用意されています。

3.8.8.1 ソース・エディタでソース・ファイルを開く方法

JDeveloperには、各種コードの迅速かつ効率的な作成に役立つ強力なソース・エディタが用意されています。

各ファイル・タイプの特定のエディタに対し、プリファレンスを設定できます。

デフォルト・エディタでソース・コードを開くには、次のようにします。

- アプリケーション・ナビゲータで、ファイルをダブルクリックするか、右クリックして「開く」を選択します。
選択したファイル・タイプに関連付けられているデフォルト・エディタが、コンテンツ領域に表示されます。ファイルに対応するエディタがすでに開かれている場合は、エディタが前面に表示されます。

特定のエディタまたはビューアでソース・コードを開くには、次のようにします。

1. アプリケーション・ナビゲータで、ファイルをダブルクリックするか、右クリックして「開く」を選択します。

2. エディタ・ウィンドウで、適切なエディタ・タブを選択します。

ソースに対する変更は、そのファイルの他のビューアまたはエディタに即時に反映されます。

モデリングされたJavaクラスからJavaソース・コードを生成することもできます。

3.8.8.2 外部エディタでのソース・コードの編集方法

JDeveloperで開いたソース・コードは、必要に応じて外部エディタでも編集できます。JDeveloperのIDEに戻ると、編集内容がJDeveloperにより検出されます。

ファイルを外部エディタで編集する前に、JDeveloperで行った変更を保存しておく必要があります。保存しない場合、JDeveloperに戻った際に、これらのファイルを再ロードするかどうかの確認を求められます。外部で変更されたファイルを再ロードすると、JDeveloperで行った未保存の変更内容は失われます。再ロードしない場合、外部で行った変更はJDeveloperでファイルを保存する際に失われます。

JDeveloperでファイルを開いたまま、外部エディタを使用してソース・コードを編集するには、次のようにします。

1. JDeveloperで開いているファイルに対する変更を保存します。

2. 外部エディタでファイルを編集し、変更をディスクに保存します。

3. JDeveloperのソース・エディタで開いているファイルに戻ります。
デフォルトでは、ファイルは事前確認なしにJDeveloperに再ロードされます。確認ダイアログを表示するには、「設定」ダイアログの環境ページで、「IDEで未修正のファイルは警告なしでリロード」オプションの選択を解除します。

3.8.8.3 コンポーネント・パレットからソース・ファイルへのコードSnippetの挿入方法

コンポーネント・パレットに追加したコードSnippetを、エディタで開いているファイルに追加できます。

他の方法として、コードの記述をより迅速および効率的にするために、ソース・エディタの作業でコード・テンプレートを使用することもできます。

コンポーネント・パレットからソース・ファイルにコードSnippetを挿入するには、次のようにします。

1. ソース・エディタでファイルを開きます。

2. コンポーネント・パレットが表示されていない場合は、「表示」→「コンポーネント・パレット」を選択して開きます。

3. パレットのドロップダウン・リストで、「コードSnippet」または定義したSnippetページを選択します。
そのページに対して定義されているSnippetが、右側にリスト表示されます。リスト表示とアイコン表示を切り替えるには、右クリックしてポップアップ・メニューから表示を選択します。

4. ファイル内のSnippetを挿入する位置にカーソルを置きます。

5. パレットで、Snippetの名前またはアイコンをクリックします。

ファイル内にコードSnippetが表示されます。

3.8.8.4 ソース・ファイル内のマクロの記録および再生方法

ソース・エディタで開かれているファイル内のキーストローク・シーケンスを、記録および再生できます。

記録および再生のショートカット・キーを定義するには、次のようにします。

1. メイン・メニューから、「ツール」→「プリファレンス」を選択します。

2. 「プリファレンス」ダイアログで、「ショートカット・キー」ノードを選択します。

3. ショートカット・キー・ページの「検索」フィールド内に、「マクロ設定の記録」を入力します。

4. 選択した「マクロ設定の記録」アクションが「使用可能なコマンド」の下に表示されます。

5. ショートカットを割り当てるには、「新しいショートカット」フィールドにフォーカスし、キーボードでキーの組合せを押すことにより、ショートカットを入力します。
この指定したショートカットがすでにあるコマンドに割り当てられている場合、そのコマンドが「競合」フィールドに表示されます。

6. 指定したショートカットを割り当てるには、「割当て」をクリックします。

7. ここで、「検索」フィールドに「マクロの再生」を入力します。

8. ステップ5と6を繰り返して、マクロを再生するためのショートカットを割り当てます。

9. 「OK」をクリックします。

マクロを記録するには、次のようにします。

1. エディタでソース・ファイルを開きます。

2. 記録を開始するには、マクロの記録用に定義したキーの組合せを押します。

3. 次に、記録するキーストローク・シーケンスを入力します。

4. 記録を終了するには、再び、マクロの記録用に定義したキーの組合せを押します。

マクロを再生するには、次のようにします。

1. エディタでソース・ファイルを開きます。

2. 開いているファイル内にカーソルを置きます。

3. マクロの再生用に定義したキーの組合せを押します。

3.8.8.5 タスクの作成方法

ソース・コードのファイル内の行に直接関連するタスク、またはアプリケーション、プロジェクトまたは一般ファイルに関連付けられたタスクを作成できます。Oracle JDeveloperでは、TODO、TASK、およびFIXMEのタグと、HIGH、MEDIUM、LOW、およびNONEの優先度が事前構成されており、「設定」ダイアログの「タスク」ページで、独自のタスク・タグおよびタスク優先度を追加できます。

独自のタスク優先度およびタスク・タグを追加するには、次のようにします。

1. メイン・メニューから、「ツール」→「プリファレンス」を選択します。

2. 「プリファレンス」ダイアログで、「タスク」ノードを選択します。

3. 「タスク」ページで、優先度およびソース・タグを要件に合うよう変更します。
詳細は、[F1]を押すか、ダイアログ・ページ内で「ヘルプ」をクリックしてください。

4. 「OK」をクリックします。

ソース・コードのコメント行に関連付けるタスクを作成するには、次のようにします。

1. 「表示」→「タスク・ウィンドウ」を選択してタスク・ウィンドウを開きます。

2. ソース・コード・ファイル内で、//およびタスク・タグの1つで始まるコメント行を作成します(例: //TODO)。

3. コメントの入力を続行すると、そのコメントが同時にタスクの説明としてタスク・ウィンドウに表示されます。

4. 必要に応じてタスク・ウィンドウで他のオプションを設定します。タスク・ウィンドウでの作業中にヘルプを参照するには、[F1]を押してください。

アプリケーション、プロジェクトまたはファイルに関連付けるタスクを作成するには、次のようにします。

1. ナビゲータで、タスクを作成するオブジェクトを選択します。

2. 「表示」→「タスク・ウィンドウ」を選択してタスク・ウィンドウを開きます。

3. 「タスクの追加」ボタンを選択すると「タスクの追加」ダイアログが開きます。

4. 作成するタスクのダイアログを終了します。「タスクの追加」ダイアログの使用中にヘルプを参照するには、[F1]を押してください。

3.8.9 ソース・ファイルの比較方法

同一のプロジェクトあるいは外部のプロジェクトに属するソース・ファイルを比較できます。

現在編集中のファイルを保存されているバージョンと比較するには、次のようにします。

1. エディタで開いている現在のバージョンにフォーカスを当てます。

2. エディタ・ウィンドウで「履歴」タブを選択します。

保存されたファイルが、エディタ・バッファのファイルと並んで開きます。

1つのファイルをプロジェクト外の別のファイルと比較するには、次のようにします。

1. 比較するエディタのファイルにフォーカスを当てます。

2. メイン・メニューから、「ファイル」→「別のファイルと比較」を選択します。

3. 「比較対象のファイルを選択」ダイアログで、適切なファイルに移動して選択し、「開く」をクリックします。

2つのファイルが、「比較」というラベルの付いたタブに並べて表示されます。

同じプロジェクト内の2つのファイルを比較するには、次のようにします。

1. ナビゲータで、比較する2つのファイルを選択します。

2. メイン・メニューから、「ファイル」→「比較対象」→「相互」を選択します。

2つのファイルが、「比較」というラベルの付いたタブに並べて表示されます。

3.8.10 最後に保存したバージョンのファイルの回復方法

ファイルの変更中は、いつでも最後に保存したバージョンのファイルに戻せます。

最後に保存したバージョンのファイルを回復するには、次のようにします。

1. エディタ内の変更されたファイルにフォーカスがある状態で、メイン・メニューから「ファイル」→「置換」→「ディスク上のファイル」を選択します。

2. 「置換の確認」ダイアログで、「はい」をクリックします。

最後に保存してから追加したすべての変更が元に戻ります。

3.8.11 ソース・ファイルの検索方法

Oracle JDeveloperには、各種コードの迅速かつ効率的な作成に役立つ強力なソース・エディタが用意されています。

テキストを置換するためのオプションを使用して、現在ソース・エディタで開いているソース・ファイルを検索するには、次のようにします。

1. エディタでファイルを開いた状態で、エディタにフォーカスがあることを確認します。

2. 検索対象のテキストが簡単に見つかった場合は、オプションでその文字列をハイライト表示できます。

3. メイン・メニューから、「検索」→「検索」を選択します。他の方法として、[Ctrl]を押しながら[F]を押します。

4. 「検索」ダイアログで、検索するテキストを入力、または選択します。
「検索文字列」ドロップダウン・リストに、JDeveloperのこのセッションで以前に検索されたテキストが表示されます。

5. 必要に応じて、他の検索パラメータも選択します。
詳細は、[F1]を押すか、ダイアログ内で「ヘルプ」をクリックしてください。

6. 「OK」をクリックします。

開いているソース・ファイル内で1つのテキスト文字列の簡易検索を実行するには、次のようにします。

1. エディタでファイルを開いた状態で、エディタにフォーカスがあることを確認します。

2. ファイル内の検索を開始する位置にカーソルを置きます。

3. メイン・メニューから、「検索」→「次をインクリメンタル検索」または「検索」→「前をインクリメンタル検索」を選択します。

4. ダイアログで、検索テキストを入力します。
入力すると、表示されている文字列の次の出現箇所にカーソルが移動します。

他の方法として、検索ボックスにテキスト文字列を入力します。入力すると、表示されている文字列の次の出現箇所にカーソルが移動します。「前へ」または「次へ」ボタンを使用して、ファイル内を検索します。「大/小文字の区別」、「完全一致」または「一致した文字列を強調表示」を設定するには、検索ボックス内でクリックします。

プロジェクトまたはアプリケーション内のすべてのファイルを検索するには、次のようにします。

1. メイン・メニューから、「検索」→「ファイル内を検索」を選択します。

2. 「ファイル内を検索」ダイアログで、検索するテキストを入力、または選択します。
「検索文字列」ドロップダウン・リストに、Oracle JDeveloperのこのセッションで以前に検索されたテキストが表示されます。デフォルトでは、ソース・エディタでテキストが選択された状態でこのダイアログを開くと、そのテキストが最初のエントリとして表示されます。

3. 検索対象のファイル・タイプを選択するには、「ファイル・タイプ」ボタンをクリックして「対象ファイル・タイプ」ダイアログを開きます。デフォルトでは、すべてのファイル・タイプが検索されます。

4. 必要に応じて、他の検索パラメータも選択します。
詳細は、[F1]を押すか、ダイアログ内で「ヘルプ」をクリックしてください。

5. 「OK」をクリックします。

3.8.12 ソース・ファイルの印刷方法

Oracle JDeveloperでは、ソース・ファイルを印刷できます。

ソース・ファイルを印刷するには、次のようにします。

1. 印刷するファイルをエディタに表示するか、ナビゲータでファイル名を選択します。

2. メイン・メニューから、「ファイル」→「印刷」を選択します。

3. 「印刷」ダイアログで、印刷オプションを選択します。

4. 「OK」をクリックします。

3.8.13 リファレンス: 正規表現

正規表現とは、パターン一致によって検索文字列をカスタマイズする文字です。文字列をパターンに対して一致させることも、一致する文字列の一部を抽出することもできます。

JDeveloperでは、標準のSunのjava.util.regex正規表現パッケージを使用します。詳細は、http://docs.oracle.com/javase/tutorial/essential/regex/の「Regular Expressions and the Java Programming Language」を参照してください。

3.9 拡張機能の使用

拡張機能は、JDeveloperの起動後にロードされ、統合されるコンポーネントです。拡張機能はIDEにアクセスでき、数多くの有効なタスクを実行できます。実際、JDeveloper自体も大半が拡張機能で構成されています。JDeveloperの基本機能の大半は拡張機能(基本のJDeveloper IDEに新機能を追加するソフトウェア・パッケージ)として実装されます。既存の拡張機能をJDeveloperに追加したり、独自の拡張機能を作成できます。

このセクションでは、JDeveloper拡張機能の検索、インストール、および有効化または無効化に関する情報を提供します。JDeveloper拡張機能を検索してダウンロードする最も簡単な方法は、更新の確認ウィザードを使用する方法です。

IDEのその他の機能(バージョン・コントロール・システムとの統合や、特別なエディタあるいはデバッガ)が必要な場合は、外部ツールをJDeveloperに追加できます。詳細は、第3.12項「JDeveloperへの外部ツールの追加」を参照してください。また、Extension SDK (Software Development Kit)から、追加の開発ツールおよび機能を手に入れることができます。Extension SDKは、「更新の確認」ウィザードからダウンロードできます。

Extension SDKは、Oracle Technology NetworkのWebページからもダウンロードできます。

注意:

拡張機能が追加または更新されると、その拡張機能に関連する既存の設定を移行する場合に備えて、起動時に移行ダイアログが表示されます。

3.9.1 「更新の確認」を使用して拡張機能をインストールする方法

拡張機能を検索してインストールする最も簡単な方法は、更新の確認ウィザードを使用することです。

更新の確認ウィザードを使用する拡張機能をインストールするには、次のようにします。

1. 「ヘルプ」メニューから「更新の確認」を選択します。

2. ウィザードの手順に従って、パッチと拡張機能を参照、ダウンロードおよびインストールします。

更新の確認ウィザードには、「ツール」→「機能」ページからもアクセスできます。

3.9.2 プロバイダのWebサイトからの拡張機能のインストール方法

拡張機能のプロバイダが、特に拡張機能に更新がある場合に直接通知できるよう、ユーザーがそのプロバイダのWebサイトから直接インストールすることを望む場合があります。この場合、更新の確認ウィザードは、プロバイダの意向をユーザーに通知し、その後、ユーザーがプロバイダのWebサイトからダウンロードおよびインストールを実行できるよう、デフォルトのWebブラウザを開きます。

プロバイダのWebサイトからのダウンロードおよびインストールは、次のように行います。

- 拡張機能のダウンロードおよびインストールについては、プロバイダのWebサイトの指示に従ってください。登録、構成、その他の設定要件に関するすべてのコメントまたは指示に注意してください。

3.9.3 OTNからの拡張機能の直接インストール方法

OTNのJDeveloper Extensions Exchange Webサイトで拡張機能を検索し、ダウンロードできます。ページは次の場所にあります。

http://www.oracle.com/technetwork/developer-tools/jdev/index-099997.html

使用可能な拡張機能には次のものが含まれます。

- JUnit Extension: JUnitを使用した、テスト・ケース、テスト・スイート、テスト・フィクスチャの作成および実行を可能にする拡張機能です。

- iSQL*Plus Extension: JDeveloperの内部でSQL*Plusスクリプトのロードおよび実行を可能にする拡張機能です。

- Oracle Business Intelligence Beans: 一連の標準ベースJavaBeans(tm)で、これにより開発者はビジネス・インテリジェンス・アプリケーションを作成できます。

- JDeveloperコミュニティによる、その他のJDeveloper拡張機能。

OTNからダウンロードした拡張機能をインストールするには、次の手順を実行します。

- 現在のリリース用に作成された拡張機能については、『Oracle Fusion Middleware Oracle JDeveloper Extensions開発者ガイド』を参照してください。

- 以前のリリースで作成された拡張機能については、Extension SDKでJDeveloperの過去のバージョンでの拡張機能のパッケージングおよびデプロイを参照してください。以前のリリースでは、拡張機能のパッケージ方法や配置場所が異なっています。

3.9.4 JDeveloperドロップイン・ディレクトリを使用した拡張機能のインストール方法

JDeveloperでは、「監視対象ディレクトリ」の概念をサポートしています。監視対象ディレクトリとは、ユーザーまたはスクリプトがファイルを置くことができ、次のJDeveloperの起動時に、それが自動的に検出される場所です。

ドロップイン・ディレクトリを使用する拡張機能をインストールするには、次のようにします。

- 拡張機能JARを、jdeveloper/dropinsフォルダにあるJDeveloperドロップイン・ディレクトリにドロップします。

- 追加のドロップイン・ディレクトリは、ide.bundle.search.path propertyでコマンドラインから、あるいはjdev.confファイルにエントリを追加して指定できます。

3.10 オンライン・ヘルプの使用

JDeveloperのオンライン・ヘルプには「ヘルプ・センター」経由でアクセスします。このセクションでは、ヘルプ・センターの機能を有効に使用する方法について説明します。

JDeveloperの「ヘルプ・センター」は、ヘルプ・ナビゲータとヘルプ・トピック・ビューアの2つのウィンドウで構成されます。

使用できるコンテンツの種類は次のとおりです。

- このガイドで参照可能な、概念および手順に関する情報。

- 状況依存オンライン・ヘルプ・トピック。[F1]キーを押すか、ダイアログまたはウィザードの「ヘルプ」をクリックするか、またはウィザードのヘルプ・アイコンをクリックすると開きます。

- 開発者ガイド。特有の技術を備えたアプリケーション開発のためのエンドツーエンドの情報を提供します。

- チュートリアル。多くのJDeveloperアプリケーション・シナリオについて説明します。

「ヘルプ・センター」からも、Oracle Technology Network (OTN)の追加ドキュメントにアクセスできます。

「ヘルプ・センター」の検索機能によって、インストール済ドキュメント、OTNから利用できるドキュメントおよびFusion Middlewareドキュメント・ライブラリを検索できます。

コンテンツの表示方法のカスタマイズもできます。

3.10.1 ヘルプ・センターの使用

「ヘルプ・センター」を使用すると、目次の参照、動的ヘルプ・リンク・リストでのトピックの検索、インストール済およびオンライン・コンテンツの全文検索ができます。また、頻繁に参照するトピックへのリンクを保存できる「お気に入り」ナビゲータが備わっています。ヘルプ・センターには、ヘルプ・ナビゲータとヘルプ・トピック・ビューアの2つのウィンドウがあります。このウィンドウの様式は一部カスタマイズができます。

次の表では、「ヘルプ・センター」ツールバーで使用可能な機能について説明します。

表3-27 「ヘルプ・センター」ツールバー・アイコン

アイコン

名前

説明

「ヘルプ・センターを上に表示」([Alt]+[K])

開いているその他すべてのウィンドウの上位にヘルプ・センターを維持します。

ナビゲータ

以前に閉じたヘルプ・センターのナビゲータを開きます。

JDeveloperフォーラム

外部ブラウザ・ウィンドウを起動し、Oracle Technology Network (OTN)のJDeveloperフォーラムにアクセスします。

検索

オンライン・ヘルプ、Oracle Technology Network (OTN)とFusion Middlewareおよびデータベース・ライブラリにインストール済のすべてのドキュメントを検索します。

「ヘルプ・センター」の左側には、コンテンツをナビゲートするためのタブが含まれています。

- 目次: ヘルプ・システムにあるすべてのインストール済コンテンツの目次を表示します。これには、従来のオンライン・ヘルプ、チュートリアル、開発者ガイドおよびユーザー・ガイドも含まれます。

- お気に入り - ユーザー定義のヘルプ・トピックおよびクイック検索用に保存した外部リンクのフォルダを表示します。

「ヘルプ・センター」には、右側にコンテンツおよび検索結果を表示する次のタブが含まれています。

- 「ヘルプ・コンテンツ」ビューア - 選択されたオンライン・ヘルプおよび開発者ガイドのコンテンツを表示します。選択されたコンテンツの複数のタブ付きページが開かれます。

- 「チュートリアル」ビューア - 選択したチュートリアルを表示します。開かれるチュートリアル・ビューアは1つのみです。

- 検索結果 - 全文検索の結果を表示します。

3.10.2 オンライン・ヘルプを開く方法

JDeveloperの「ヘルプ・センター」は、ヘルプ・ナビゲータとヘルプ・トピック・ビューアの2つのウィンドウで構成されます。

オンライン・ヘルプは次のいずれかの方法で開くことができます。

- 任意に[F1]を押すか、「ヘルプ」をクリックするか、または「ヘルプ」アイコンをクリックすると、状況依存ヘルプが表示されます。

- メイン・メニューから「ヘルプ」→「検索」を選択します。

- メイン・メニューから「ヘルプ」→「目次」を選択します。

- メイン・メニューから「ヘルプ」→「ヘルプのお気に入り」を選択します。

- 「開始」ページから、チュートリアル、資料またはヘルプ・トピック・アイコンのリンクを選択します。

すでに開いているヘルプ・ページを参照するには、次の手順を実行します。

- ヘルプ・トピック・ウィンドウの最上部にあるタブを選択します。

- ヘルプ・トピック・ウィンドウの上部にあるスクロール・ボタンをクリックして、使用可能なタブをすべてスクロールし、タブを選択します。

- ヘルプ・トピック・ウィンドウの上部にある「タブ・リスト」ボタンをクリックして、使用可能なすべてのページのリストを表示し、ページを1つ選択します。

3.10.3 ドキュメントの検索方法

全文検索を実行することによって、オンライン・ヘルプとしてインストール済のドキュメントをすべて検索できます。また、Oracle Technology Network (OTN)とFusion Middlewareおよびデータベース・オンライン・ドキュメント・ライブラリの検索もできます。個々のヘルプ・トピックは、トピック・ビューアのツールバーにある「検索」アイコンを使用して検索できます。

「ヘルプ・センター」から全文検索を実行する手順は、次のとおりです。

1. 「ヘルプ・センター」が開いていない場合は、メイン・メニューから「ヘルプ」→「検索」を選択します。

2. 「検索」フィールドに、検索する語句を入力します。

3. オプションで、「検索オプション」メニューを開いて検索する場所を選択します。デフォルトで、「ローカルのドキュメント」および「Fusion Middleware」ライブラリが選択されています。

4. 必要に応じて他の検索オプションを設定します。適用対象はオンライン・ヘルプ検索のみです。

5. 「移動」アイコンをクリックするか、[Enter]を押します。
ヘルプ・ビューアの領域で、各一致ドキュメントのタイトルおよびソースと、テキストの冒頭とともに、「検索結果」ページが開きます。

6. トピックを選択するには、タイトルをダブルクリックします。
各ヘルプ・トピックは、別個のタブ付きページで開かれます。「検索結果」ページは使用可能なままです。各OTNおよびドキュメント・ライブラリ・ページは、デフォルトのブラウザで開かれます。

ブール式オプションの使用

BooleanExpressionはブール式に関連する検索条件を表すための再帰的なツリー構造です。BooleanExpressionは次の構文に基づいています。

BooleanExpression ::
BooleanExpression AND BooleanExpression
BooleanExpression OR  BooleanExpression
BooleanExpression NOT BooleanExpression
BooleanExpression + BooleanExpression
BooleanExpression -  BooleanExpression
+ BooleanExpression
- BooleanExpression
NOT BooleanExpression
StringExpression (base case)

メイン・ツールバーの「検索」フィールドからドキュメント検索を開始する手順は、次のとおりです。

1. 「検索」フィールドに、検索する語句を入力します。

2. 「検索オプション」メニューを開いてドキュメントのみを選択します。「ヘルプ: ローカル」、「ヘルプ: OTN」、「ヘルプ: iLibrary」。他の場所の選択を解除します。
デフォルトでは、すべての場所が選択されています。

3. 「移動」アイコンをクリックするか、[Enter]を押します。
「ヘルプ・センター」が、右側に「検索結果」ページがある状態で開かれ、各一致ドキュメントのタイトルおよびソースと、テキストの冒頭が表示されます。

3.10.4 「お気に入り」ページへのブックマークの追加方法

ヘルプ・センターのお気に入りページに、作成して名前を付けたフォルダに格納して、頻繁に参照するヘルプ・トピックのリンクを保存できます。ヘルプ・トピックは、ブックマークのためヘルプ・トピック・ビューアで開く必要があります。外部サイトへのリンクを追加することもできます。

お気に入りページにヘルプ・トピックのリンクを追加するには、次のようにします。

1. ヘルプ・トピック・ビューアのツールバーの「お気に入りに追加」アイコンをクリックします。
「お気に入りに追加」ダイアログが表示されます。

2. リンクを追加するフォルダを選択し、「OK」をクリックします。

「お気に入り」ページに外部サイトのリンクを追加する手順は、次のとおりです。

1. お気に入りページのツールバーの「外部のお気に入りを追加」をクリックするか、お気に入りページのノードを右クリックしてポップアップ・メニューから「外部のお気に入りを追加」を選択します。
「外部のお気に入りに追加」ダイアログが表示されます。

2. 「名前」フィールドにページまたはドキュメントのタイトルを入力します。

3. 「URL」フィールドに完全修飾パスを入力します。

4. リンクを追加するフォルダを選択し、「OK」をクリックします。

新しい「 お気に入り」フォルダを作成する手順は、次のとおりです。

1. 「お気に入り」ページのツールバーの「新規フォルダ」アイコンをクリックするか、「お気に入り」ページのノードを右クリックしてポップアップ・メニューから「新規フォルダ」を選択します。

2. 新しいフォルダ名を入力して「OK」をクリックします。

「お気に入りに追加」ダイアログが開いているときに、「新規フォルダ」をクリックして、新しいフォルダを作成することもできます。

「お気に入り」フォルダの名前を変更する手順は、次のとおりです。

1. お気に入りページのフォルダを右クリックし、ポップアップ・メニューから「名前の変更」を選択します。

2. 新しいフォルダ名を入力して「OK」をクリックします。

「お気に入りに追加」ダイアログが開いているときに、「名前の変更」をクリックして、フォルダの名前を変更することもできます。

「 お気に入り」フォルダまたはリンクを削除する手順は、次のとおりです。

- お気に入りページのツールバーの「削除」アイコンをクリックするか、お気に入りページのノードを右クリックしてポップアップ・メニューから「削除」を選択します。

「お気に入りに追加」ダイアログが開いているときに、ノードを選択して「削除」をクリックしてフォルダを削除することもできます。

3.10.5 オンライン・ヘルプ表示をカスタマイズする方法

「ヘルプ・センター」ウィンドウと、ナビゲータおよびトピック・ビューアのいくつかの特性は、ツールバーおよびポップアップ・メニューを使用してカスタマイズできます。

「常に手前に表示」アイコンを使用すると、「ヘルプ・センター」が、JDeveloperを含めて開いているすべてのウィンドウの前に維持されます。

「ヘルプ・センター」のツールバーにある「ナビゲータ」ドロップダウンから表示するヘルプの種類を選択できます。

- 目次 - すべてのインストール済オンライン・ヘルプ・トピックおよびブックの目次を表示します。

- お気に入り - インストール済ドキュメントおよび外部ドキュメントのクイック・アクセスのための、ユーザー定義リンクのフォルダを表示します。

または、「ヘルプ・センター」で右クリックしてポップアップ・メニューの「タブを構成」オプションからナビゲータを選択して、以前閉じたナビゲータを開くこともできます。

コンテンツ・ナビゲータのすべてのヘルプ・トピックを表示するように選択することも、次の図に示すように、「コンテンツ」ドロップダウンから1つのコンテンツ・タイプを選択することによって、表示されるものを減らすように選択することもできます。

図3-1 「コンテンツ」ドロップダウン・リスト

ヘルプ・トピック・ビューアのツールバーにある「フォント・サイズの変更」オプションを使用して、フォント・サイズを徐々に拡大または縮小できます。

3.10.6 複数のヘルプ・トピックを開いて閉じる方法

ヘルプ・システムのトピックの間を移動すると、トピックは新しくタグ付けされたページで開かれます。

すでに開いているヘルプ・ページを表示するには、次のいずれかの方法を使用します。

- ヘルプ・トピック・ウィンドウの最上部にあるタブを選択します。

- ヘルプ・トピック・ビューアの上にあるスクロール・ボタンをクリックして、使用可能なタブをすべてスクロールし、タブを選択します。

- ヘルプ・トピック・ビューアの上にある「タブ・リスト」ボタンをクリックして、使用可能なすべてのページのリストを表示し、ページを1つ選択します。

トピック内のリンクをクリックしてトピックを開くと、同じビューア内のトピックが開きます。このようなトピックを順番に切り替るには、ヘルプ・トピック・ビューアのツールバーにある「進む」アイコンまたは「戻る」アイコンをクリックします。種類の異なるヘルプ・ビューア・タブの間は移動できません。たとえば、検索結果やヘルプ・トピック・タブなどです。かわりにスクロール・ボタンを使用します。

ヘルプ・トピック・ビューアで開いている1つ以上のページを閉じる手順は、次のとおりです。

- ヘルプ・トピック・ビューアのタブで右クリックして、ポップアップ・メニューのオプションから選択します。
前にあるページ、すべてのページ、または前にあるページを除いたすべてのページを閉じることができます。

3.10.7 ヘルプ・トピックの印刷方法

ヘルプ・トピックを、個々にまたは項ごとに印刷できます。

個々のヘルプ・トピックを印刷するには、次のようにします。

1. ヘルプ・トピック・ビューアのヘルプ・トピックを開きます。

2. ヘルプ・トピック・ビューアのツールバーで、「印刷」アイコンをクリックします。

トピックをまとめて印刷するには、次のようにします。

1. 「ヘルプ・センター」の「目次」タブをクリックします。

2. 目次のツリーでトピック・フォルダを選択します。

3. 右クリックして「トピックのサブツリーを印刷」を選択します。

親トピックとその子トピックが印刷されます。リスト表示されるリンクのトピックは印刷されません。

3.11 一般的な開発ツール

この項は、JDeveloper IDEの基本的な機能および概念への手引きとして利用できます。

3.11.1 アプリケーション概要

Fusion Webアプリケーション構築のガイドとして「アプリケーション概要」ページを使用して、ファイルとオブジェクトを作成し、そのステータスを確認します。

3.11.1.1 チェックリスト

「アプリケーション概要」チェックリストにより、Oracle推奨のベスト・プラクティスに応じたFusion Webアプリケーションを構築できます。「チェックリスト」はFusion Webアプリケーションが作成されると、「アプリケーション概要」ページの一部としてデフォルトで表示されます。

チェックリストでは、アプリケーションの構成および構築のプロセス全体、および特定のダイアログとウィザードも網羅しています。それぞれのステップは、手順を追った説明へのリンク、開発者ガイドの関連する項、およびIDEでそのステップの作業の結果発生することの説明を組み合せて、アーキテクチャ、ツールおよび結果のファイルについて学習できるように設計されています。

ウィザードとは異なり、チェックリスト自体は線形の、柔軟性の高い手軽なガイドとして提供されます。正しい順序で規定のパスを実行するか、別の順序でタスクを調べることができます。チェックリストでは、目標を達成する最適な方法が提案されますが、これに制限されるものではありません。また、「アプリケーション概要」を閉じてIDEで直接作業するか、IDEとチェックリストで相互に作業することができます。

チェックリストを使用するには、次のようにします。

- ステップを開き、前提条件と仮定を読み取ります。

- 必要に応じて、任意のドキュメント・リンクをクリックします。

- IDEの関連領域に進むためのボタンをクリックします。

- タスクを実行し、「ステータス・インジケータ」ドロップダウンによってそのステータスを変更します。

3.11.1.2 「ファイル・サマリー」ページ

JDeveloperで作成するすべてのファイルとアーティファクトは、アプリケーション概要の「ファイル・サマリー」ページにオブジェクト・タイプ別に整理されて表示されます。新規ファイルとアーティファクトを作成し、これをステータスおよびプロジェクト別にフィルタして表示できます。次の表に、「ファイル・サマリー」ページのタイプを説明します。

表3-28 「ファイル・サマリー」ページ

ページ

機能

ステータス

次のステータス・アイコンを使用して、使用可能なオブジェクト・タイプに関する情報を表示します。

- エラー

- 警告

- 不完全

- アドバイザリ

- OK

- 未チェック

ファイル

オブジェクトの名前が表示されます。列ヘッダーの「ソート」アイコンをクリックして、オブジェクトを昇順または降順でソートできます。

プロジェクト

ファイルまたはオブジェクトのあるプロジェクトを表示します。

「ファイル・サマリー」ページのツールバー

次の表で、「ファイル・サマリー」ページのツールバーにあるアイコンとその機能を説明します。

表3-29 「ファイル・サマリー」ページのツールバー・アイコン

アイコン

名前

機能

新規

選択したプロジェクト内でリストされる、新規オブジェクト・タイプを作成します。ポップアップ・メニューには、各プロジェクトで作成されるテクノロジに関連するファイルとオブジェクトがリストされます。

編集

選択したファイルまたはオブジェクトを、デフォルトのエディタで開きます。

削除

選択したファイルまたはオブジェクトを削除します。

フィルタ・ステータスまたはプロジェクト

前述のとおり、ステータスを選択して特定のステータスのファイルをすべてリスト表示します。デフォルトでは、「すべて表示」が選択されます。

現在のアプリケーション内に複数のプロジェクトが存在する場合、このリストを使用して、「ファイル・サマリー」ページに含めるプロジェクトを選択します。次の選択が可能です。

- すべてのプロジェクト

- アプリケーションで使用可能なプロジェクトの中の特定のプロジェクト

3.11.2 ファイル・リスト

「ファイル・リスト」を使用すると、アプリケーション内に作成したオブジェクトの検索および操作を行えます。Javaコードの分析に使用するルール、コード・アシスト、およびメトリックは、「コード・アシスト」プロファイルで指定します。

3.11.2.1 「ファイル・リスト」タブのヘッダー

次の表では、「ファイル・リスト」タブのヘッダーで使用できるオプションについて説明します。

表3-30 「ファイル・リスト」タブのヘッダー・オプション

オプション

機能

参照

現在のアプリケーション内に複数のプロジェクトが存在する場合は、このリストを使用して、オブジェクトを検索するプロジェクトを選択します。リストには、現在のアプリケーション内のすべてのプロジェクトに加え、すべてのプロジェクトおよび選択したプロジェクト(複数のプロジェクト)を表示するオプションが含まれます。次の選択が可能です。

- アプリケーションで使用可能なプロジェクトの中の特定のプロジェクト

- すべてのプロジェクト

- 複数のプロジェクト。「プロジェクトの選択」ダイアログが開き、アプリケーションで使用可能なプロジェクトの中からプロジェクトを選択します。

保存済の検索

基本的に、<新規検索>が含まれます。最低1つの検索を保存すると、保存済の検索がすべてリストされます。保存済の検索を選択すると、その検索の検索基準が表示されます。保存済の検索の間に変更があった場合でも、検索結果には最後に実行した検索の結果が表示されます。新しい検索結果を取得する場合は、「検索」ボタンをクリックします。検索の保存は、「その他のアクション」ボタンから選択できるアクションの1つです。

履歴の表示

「最近の検索」ダイアログを開き、最近の検索に戻ることができます。選択した検索の検索基準が表示されますが、検索結果は最後に検索を実行したときと同じ内容です。新しい検索結果を取得する場合は、「検索」ボタンをクリックします。

3.11.2.2 検索基準領域

次の表では、検索基準領域で使用可能な機能について説明します。

表3-31 検索基準領域の機能

オプション

機能

検索基準の入力行

基本的には、検索基準用に単一の入力行が用意されています。行の最後にある「追加」アイコンをクリックすると、行を追加できます。行を削除する場合は、その行の最後にある「削除」アイコンをクリックします。デフォルトでは、行の1つ目のフィールドに「ファイル名」と表示されますが、これは「ファイル拡張子」、「更新日時」、「ステータス」、または「カテゴリ」に変更できます。2つ目のフィールドでは、1つ目のフィールドの入力を拡張するために使用可能なオプションを選択できます。3つ目のフィールドには、検索可能なすべてのオブジェクト・タイプのリストが含まれます。

一致オプション

「すべてに一致」または「いずれかに一致」を選択して、検索の範囲を決定します。

検索

クリックし、現在表示されている検索基準に基づいて検索を開始します。

その他のアクション

名前付き検索とともに使用するオプションの次のメニューを表示する場合にクリックします。

- 保存 - 現在の検索基準を、「保存済の検索」ボックスに現在表示されている名前で保存します(名前が「新規検索」である場合でも、その名前で保存されます)。

- 別名保存 - 「別名保存」ダイアログが開き、現在の検索基準を新しい名前付き検索として保存できます。

- リストア - このメニューにある「クリア」オプションを使用した直後に使用すると、削除された名前付き検索がリストアされます。

- クリア - この名前付き検索の検索基準をクリアします。このメニューにある「リストア」オプションを直後に選択すると、この名前付き検索の基準をリストアできます。

- 削除 - 確認の後、現在の名前付き検索を削除します。

3.11.2.3 検索結果の表

次の表では、「検索結果」の表で使用可能なオプションを説明します。

表3-32 「検索結果」の表で使用可能なオプション

オプション

機能

結果サマリー

検索基準に一致するファイルの数、および検索が完了した日時を表示します。

リフレッシュ

最新の検索基準に基づいて結果が返されます。

表のカスタマイズ

結果の表に表示される列を選択するメニューを開きます。「列の選択」オプションを選択すると、「表のカスタマイズ」ダイアログが開き、表示する列、および結果表にそれらを表示する順序を選択できます。デフォルトでは、「ステータス」、「ファイル」、「プロジェクト」、および「更新日時」の順に表示されます。その他に選択して表示できる列は、「アプリケーション」および「カテゴリ」です。

表の見出し

表のヘッダーをクリックして左右にドラッグすることにより、列の順序を変更できます。ヘッダーをクリックして列を強調表示し、再びクリックしてソート順序を変更することで、列内のオブジェクトを昇順と降順のどちらで表示するかを選択できます。表のヘッダーのソート・アイコン(または)は、現在のソート順序に応じて変わります。

オブジェクト・リスト

検索基準に一致したすべてのオブジェクトをリストします。オブジェクトの名前を選択して右クリックし、コンテキスト・メニューから選択することで、オブジェクトに対するアクションを開始できます。

3.11.3 「比較」ウィンドウ

「比較」ウィンドウでは、2つのファイルまたは2つのディレクトリ間の差異を確認できます。

この操作は、特定のファイルをチェックインするかどうかを決定する場合(特に、未知の内容を含むファイルがチェックインによって上書きされる場合に)行います。「比較」ウィンドウは、アプリケーション概要、アプリケーション・ナビゲータ、および「Subversion」ソース・コントロール・システムと統合されています。

3.11.3.1 ツールバー

次の表で、「比較」ウィンドウ・ツールバーのアイコンとそれぞれの機能を説明します。

表3-33 「比較」ウィンドウ・ツールバー

アイコン

名前

機能

最初の差分に移動

クリックすると、カーソルが最初の差分に移動します。

前の差分に移動

クリックすると、カーソルが直前の差分に移動します。

次の差分に移動

クリックすると、カーソルが次の差分に移動します。

最後の差分に移動

クリックすると、カーソルが最後の差分に移動します。

パッチの生成

「パッチの生成」ダイアログを開く場合にクリックします。このダイアログでは、ファイルに加えた変更を含めたパッチを生成できます。

3.11.3.2 ソースおよびターゲット領域

各領域のタイトル・バーに、差異を含むファイルの名前が表示されます。バージョンは1行ずつ表示されます。差分がある行は、影付きボックスを使用してハイライト表示され、必要に応じて結合されます。

3.11.4 アプリケーション・ナビゲータ

アプリケーション・ナビゲータを使用すると、アプリケーションのコンテンツおよび関連リソースを管理できます。

3.11.4.1 アプリケーション・ナビゲータのツールバー

この項では、アプリケーション・ナビゲータのツールバーから使用できる機能について説明します。

メイン・ドロップダウン・リスト

次の図に示すメイン・ドロップダウン・リストを使用してアプリケーションを新規作成するか、既存のアプリケーションを開くか、または開いているアプリケーションのリストからアプリケーションを選択します。実行可能なアプリケーション・レベル・アクションのリストから項目を選択する場合は、ポップアップ・メニューを使用します。

「アプリケーション」メニュー

次の図に示すアプリケーション・メニューを使用して、使用可能なアクションのリストからアクションを選択します。

次の表では、「アプリケーション」メニューで使用可能なオプションについて説明します。

表3-34 「アプリケーション」メニュー・オプション

メニュー・オプション

機能

新規プロジェクト

作成するプロジェクトのタイプを選択できる「新規ギャラリ」を開きます。

新規([Ctrl]+[N])

「新規ギャラリ」を開きます。アプリケーションから作成できる項目のみが表示されます。

プロジェクトを開く

「プロジェクトを開く」ダイアログを開きます。このダイアログでは、このアプリケーション内で開くプロジェクトにナビゲートできます。

アプリケーションを閉じる

現在のアプリケーションを閉じます。

アプリケーションの削除

ディスクからアプリケーション・コントロール・ファイル(.JWS)を削除します。

アプリケーションの名前変更

現在のアプリケーションの名前を変更できる「名前の変更」ダイアログを開きます。

アプリケーション・ファイルの検索

特定のファイルを検索する「ファイル・リスト」を開きます。

概要の表示

このアプリケーションで作成可能なすべてのファイルのホームとなる「アプリケーション概要」を開きます。

アプリケーションのフィルタ

アプリケーション・ナビゲータ内のリストに含めるファイル、またはリストから除外するファイルを指定できる「ワーキング・セットの管理」ダイアログを開きます。

保護

アプリケーション・リソースを保護します。

デプロイ

アプリケーションに対して定義されている複数のデプロイメント・プロファイルから、いずれかのプロファイルを選択できます。

アプリケーション・プロパティ

アプリケーションの様々なプロパティを設定できる「アプリケーション・プロパティ」ダイアログを開きます。

3.11.4.2 アプリケーションの操作

アプリケーション・ナビゲータから、複数のアプリケーションを操作できます。これには次のものがあります。

- アプリケーションのコンテンツが表示されていない初期のビューで、「新規アプリケーション」リンクを選択してアプリケーションを新規作成するか、「アプリケーションを開く」リンクを選択して既存のアプリケーションを開きます。

- 「表示」→ナビゲータ名を使用して、現在閉じているナビゲータを開いたり、現在開いているナビゲータを最前面に移動したりします。

- 該当するタブを右クリックするか、[Alt]を押しながら[-]を押すと表示されるコンテキスト・メニューを使用して、アプリケーション・ナビゲータを移動、サイズ変更、フローティング、最小化、最大化、リストア、または閉じます。

- メイン・ドロップダウン・リストからアプリケーションを選択するか、目的のアプリケーションが表示されない場合は「アプリケーションを開く」を選択して、ナビゲータ内に表示されているアプリケーションを変更します。

- ドロップダウン・リストから「新規アプリケーション」を選択して、アプリケーションを新規作成します。

- アプリケーションを右クリックするか、「アプリケーション・メニュー」アイコン(アプリケーション名の右側)をクリックして、アプリケーションのポップアップ・メニューを開きます。

3.11.4.3 プロジェクト・パネルの操作

アプリケーション・ナビゲータのプロジェクト・パネルでは、次の操作が可能です。

- 「プロジェクト・プロパティ」アイコンをクリックして、プロジェクト・プロパティを表示します。

- 「リフレッシュ」アイコンをクリックして、プロジェクトのコンテンツをリフレッシュします。

- 「ワーキング・セット」ドロップダウン・メニューからオプションを選択して、操作するプロジェクト・コンテンツをフィルタリングします。

- 「ナビゲータの表示オプション」ドロップダウン・メニューからオプションを選択して、ナビゲータに表示される内容を変更します。

- 任意のノードを右クリックすると、コマンドのコンテキスト依存メニューが表示されます。

- オブジェクトの名前をクリックして、「構造」ウィンドウにオブジェクトの構造を表示します。

- オブジェクトの名前をダブルクリックすると、そのオブジェクトがデフォルトのエディタで開かれます(または、デフォルトのエディタにフォーカスが移動します)。

- 「ファイル」→「名前の変更」を使用して、ファイル名を変更します。

- 「ファイル」→「別名保存」を使用してファイルを移動します。

- パネル内の任意の場所にフォーカスを置き、検索するオブジェクトの検索文字列を入力して、パネル内に表示されている項目を検索します。(名前に検索文字列が含まれるものも検索対象とする場合は、先頭にアスタリスクを入力します)。

- バーをクリックして、パネルを開閉します。

- パネルのドロップダウン・メニュー(パネル・バーの右端)を開き、「最小化」を選択して、パネルを非表示にします。パネルを再び表示するには、ナビゲータの最下部にある3点をクリックし、「プロジェクト」をクリックします。

3.11.4.4 「アプリケーション・リソース」パネルの操作

「アプリケーション・リソース」パネルでは、次の操作が可能です。

- バーをクリックして、パネルを開閉します。

- バーを上下にドラッグして、パネルで使用する領域を変更します。

- パネルのドロップダウン・メニュー(パネル・バーの右端)を開き、「最小化」を選択して、パネルを非表示にします。パネルを再び表示するには、アプリケーション・ナビゲータの最下部にある3点をクリックし、「アプリケーション・リソース」をクリックします。

- 任意のノードを右クリックすると、コマンドのコンテキスト依存メニューが表示されます。

- オブジェクトの名前をクリックして、「構造」ウィンドウにオブジェクトの構造を表示します。

- オブジェクトの名前をダブルクリックすると、そのオブジェクトがデフォルトのエディタで開かれます(または、デフォルトのエディタにフォーカスが移動します)。

- パネル内の任意の場所にフォーカスを置き、検索するオブジェクトの検索文字列を入力して、パネル内に表示されている項目を検索します。(名前に検索文字列が含まれるものも検索対象とする場合は、先頭にアスタリスクを入力します)。

3.11.4.5 「データ・コントロール」パネルの操作

「データ・コントロール」パネルでは、次の操作が可能です。

- バーをクリックして、パネルを開閉します。

- バーを上下にドラッグして、パネルで使用する領域を変更します。

- パネルのドロップダウン・メニュー(パネル・バーの右端)を開き、「最小化」を選択して、パネルを非表示にします。パネルを再び表示するには、アプリケーション・ナビゲータの最下部にある3点をクリックし、「データ・コントロール」をクリックします。

- 任意のノードを右クリックすると、コマンドのコンテキスト依存メニューが表示されます。

- データ・コントロールのポップアップ・メニューを開き「定義の編集」を選択して、データ・コントロールの定義を編集します。

- パネル内の任意の場所にフォーカスを置き、検索するオブジェクトの検索文字列を入力して、パネル内に表示されている項目を検索します。(名前に検索文字列が含まれるものも検索対象とする場合は、先頭にアスタリスクを入力します)。

3.11.4.6 「最近開いたファイル」パネルの操作

「最近開いたファイル」パネルでは、次の操作が可能です。

- バーをクリックして、パネルを開閉します。

- バーを上下にドラッグして、パネルで使用する領域を変更します。

- パネルのドロップダウン・メニュー(パネル・バーの右端)を開き、「最小化」を選択して、パネルを非表示にします。パネルを再び表示するには、アプリケーション・ナビゲータの最下部にある3点をクリックし、「最後に開いたファイル」をクリックします。

- オブジェクトの名前をダブルクリックすると、そのオブジェクトがデフォルトのエディタで開かれます(または、デフォルトのエディタにフォーカスが移動します)。

- パネル内の任意の場所にフォーカスを置き、検索するオブジェクトの検索文字列を入力して、パネル内に表示されている項目を検索します。(名前に検索文字列が含まれるものも検索対象とする場合は、先頭にアスタリスクを入力します)。

3.11.5 アプリケーション・サーバー・ナビゲータ

アプリケーション・サーバー・ナビゲータを使用すると、アプリケーション・サーバーへの接続を管理できます。これはリソース・パレットと統合されています。

アプリケーション・サーバー・ナビゲータでアプリケーション・サーバー接続を作成すると、この接続はリソース・パレットで使用可能になります。同様に、「リソース・パレット」でアプリケーション・サーバー接続を作成すると、この接続は「アプリケーション・サーバー・ナビゲータ」で使用可能になります。

アプリケーション・サーバー・ナビゲータのコンテキスト・メニューからは、次のことを実行できます。

- 「アプリケーション・サーバー」ノードのポップアップ・メニューから「新規アプリケーション・サーバー」を選択して、アプリケーション・サーバーへの接続を新規作成します。

- 「アプリケーション・サーバー」ノードのポップアップ・メニューから「インポート」をクリックして、接続をインポートします。

- 「アプリケーション・サーバー」ノードのポップアップ・メニューから「エクスポート」をクリックして、接続をエクスポートします。

- 接続のポップアップ・メニューから「プロパティ」を選択して、既存のアプリケーション・サーバー接続のプロパティを編集します。

IntegratedWebLogicServerのポップアップ・メニューから、次のことが可能です。

- 統合WebLogic Serverを起動します。

- 統合WebLogic Serverをデバッグ・モードで起動します。

- デフォルト・ドメインを作成します。最初にアプリケーション・サーバー・ナビゲータを起動した場合のノードは、IntegratedWebLogicServer (ドメイン未設定)のみです。統合WebLogic Serverを使用する前に、デフォルト・ドメインを作成する必要があります。最初にデフォルト・ドメインを作成する場合は、新規ドメインの管理者パスワードを入力する必要があります。

- デフォルト・ドメインを更新します。

- ログを構成し、問題の診断に役立てます。

- 次の管理コンソールを開始します。

- 統合WebLogic Server。

- Oracle WebLogic Server。

次の表では、アプリケーション・サーバー・ナビゲータのツールバー・アイコンを説明します。

表3-35 アプリケーション・サーバー・ナビゲータのツールバー・アイコン

アイコン

名前

機能

リフレッシュ

選択したアプリケーション・サーバー接続の内容をリフレッシュする場合にクリックします。

削除

選択したアプリケーション・サーバー接続を削除する場合にクリックします。

3.11.6 「構造」ウィンドウ

「構造」ウィンドウには、その構造内のダイアグラム、ナビゲータ、エディタとビューア、およびプロパティ・インスペクタのウィンドウのうちアクティブなウィンドウ内で現在選択されているドキュメント内のデータが構造的に表示されます。

現在開いているドキュメントに応じて、「構造」ウィンドウでデータを2種類のモードで表示できます。

- ソース - クリックすると、現在エディタで開いているファイルのコード構造が表示されます。これは、コード編集が可能なテクノロジに適用できます。たとえば、このタブは、ダイアグラムを編集用に開いている場合は使用できません。

- 設計 - 現在エディタで開いているファイルのUI構造が表示されます。

「構造」ウィンドウには、ドキュメント・データやダイアグラム・データを様々な方法で表示できます。表示可能な構造の種類はドキュメントやダイアグラムのタイプによって決まります。Javaファイルの場合は、コード構造、UI構造またはUIモデル・データを表示できます。XMLファイルの場合は、XML構造、設計構造またはUIモデル・データを表示できます。

構造ウィンドウは動的で、現在選択されているアクティブ・ウィンドウを(特定のビューでウィンドウのコンテンツを固定しないかぎり)常に追跡し、現在アクティブなエディタに関連付けます。ナビゲータのノードが現在選択されている場合、デフォルト・エディタで表示されます。現在選択されている構造のビューを変更するには、別の構造タブを選択します。

また、構造内のウィンドウは「構造」ウィンドウでの選択に従います。たとえば、「構造」ウィンドウでメソッドのノードをダブルクリックすると、ソース・エディタがアクティブなビューとなり、メソッドを直接定義できます。

構造ウィンドウの複数のインスタンスを開き、任意の数のコンテンツを固定して、異なるファイルの構造を比較できます。エディタを変更せずに構造の表示を切り替えることもできます。

「構造」ウィンドウに表示されるダイアグラム・オブジェクト(UML要素など)は、ダイアグラムに直接ドラッグ・アンド・ドロップできます。

3.11.6.1 「構造」ウィンドウ・ツールバー

次の表で、「構造」ウィンドウ・ツールバーのアイコンとその機能を説明します。

表3-36 「構造」ウィンドウのツールバー・アイコン

アイコン

名前

機能

固定

構造ウィンドウを現在のビューで固定する場合にクリックします。固定されたウィンドウでは、アクティブ・ウィンドウでアクティブになっている選択が追跡されません。

新規ビュー

構造ウィンドウの新規インスタンスを開く場合にクリックします。同じウィンドウのタブ付きページに、新規ビューが表示されます。

3.11.6.2 「構造」ウィンドウのビュー

構造ウィンドウのビューは、アクティブ・ウィンドウで現在選択されているドキュメント・タイプによって異なります。各ビューには、ファイル・タイプに基づいてファイルの構造を表示およびソートするための様々なオプションがあります。

次の表は、「構造」ウィンドウのビューを示しています。

表3-37 「構造」ウィンドウのビュー

ビュー

説明

「ADFビジネス・コンポーネント」ビュー

ナビゲータの1つでADFビジネス・コンポーネントを選択すると、「構造」ウィンドウには、コンポーネントのファイル、属性およびその他のプロパティの構造化ビューが表示されます。

「Cascading Style Sheet」ビュー

このビューでは、CSS要素を選択し、グループ化して編集を容易にすることができます。編集のためにCSSファイルを開くと、ファイル内のCSSセレクタが「要素」、「クラス」、および「ID」の3タイプのいずれかとして「構造」ウィンドウに表示されます。

「Java」ビュー

このビューでは、現在編集中のJavaファイルの設計構造、およびコードが表示されます。また、構造データ表示の表示プリファレンスを複数指定できます。

JSP/HTMLビュー

このビューでは、現在選択されているJSP/HTMLファイルのコード構造とUIバインディングを表示します。

「Struts」ビュー

「Struts」ビューは、有効なナビゲータまたはエディタで現在選択しているStruts構成ファイルの要素および属性の階層を表示します。

「TopLink」ビュー

「TopLink」ビューは、ディスクリプタ、セッション、およびマッピングを含め、アプリケーション・ナビゲータまたはTopLinkエディタで選択されているTopLink要素に関する詳細情報を表示します。

「UML」ビュー

「UML」ビューは、アクティビティ図、クラス・ダイアグラム、ユースケース図などのUMLベースのダイアグラムでの動作、インタラクションおよびコード構造を表示します。

「ダイアグラム」ビュー

ダイアグラムが編集用に開いている場合、「ダイアグラム」ビューはそのダイアグラムに追加したコンポーネントを表示します。「構造」ウィンドウのダイアグラム・ビューで要素を選択し、これをダイアグラムに配置できます。

3.11.7 アプリケーション・ナビゲータ - 「データ・コントロール」パネル

アプリケーションのビジネス・サービスを表すために作成されたデータ・コントロールを表示したり、開いているWebページまたは「ADF Swing」パネルにコントロール・パネル・オブジェクトをドラッグ・アンド・ドロップすることによってデータ・バインドされたUIコンポーネントを作成する場合に使用します。

注意:

アプリケーションのデータ・コントロールがまだ作成されていない場合、またはインポートされていない場合は、「データ・コントロール」パネルが表示されないことがあります。

このパネルには、UIコンポーネントをバインドできるオブジェクトが表示されます。これには、ビジネス・サービス開発者がOracle ADFデータ・コントロールを使用して公開したデータ・コレクション、属性、およびメソッドと、すべてのデータ・コレクションに共通する特定のビルトイン操作が含まれます。

「データ・コントロール」パネルからページにオブジェクトをドラッグすると、そのオブジェクトに対して作成可能なUIコンポーネントがポップアップ・メニューに表示されます。この方法で作成したコンポーネントは、自動的に削除済オブジェクトにデータ・バインドされます。

データ・バインドされたUIコンポーネントを、表示されているWebページまたはJavaパネルに挿入すると、次の場所でOracle ADFデータ・バインディングを確認できます。

- Webページのコード・ビュー。実行時にJSTLタグ・ライブラリの式言語機能を使用して検証される式に含まれるデータ・バインディング・オブジェクトが表示されます。

- 「ADF Swing」パネルまたはフォームのコード・ビュー。UIコンポーネントでのsetModel()メソッド・コールによって、データ・バインディング・オブジェクトが初期化され、Oracle ADFバインディング・コンテキスト(パネルでのsetBindingContext()メソッド・コールで指定)にアクセスします。

- 関連するページ定義ファイル。ページ定義ファイルでは、ページ、パネル、またはフォームに対して作成されたバインディングが定義されます。

「データ・コントロール」パネル・ツールバー

次の表で、「データ・コントロール」パネル・ツールバーのアイコンとその機能を説明します。

表3-38 「データ・コントロール」パネルのツールバー・アイコン

アイコン

名前

機能

パネルのリフレッシュ

基礎となるビジネス・コンポーネントが変更された場合は、クリックしてパネルをリロードします。

パネルのフィルタ

パネルの特定のアイテムを検索する検索基準を入力する場合にクリックします。

3.11.8 「ログ」ウィンドウ

「ログ」ウィンドウにはタブ付きウィンドウが表示され、IDEの各種コンポーネントからの特定のフィードバックが表示されます。

「ログ」ウィンドウには次の情報が表示されます。

- コンパイラ。コンパイラからエラー・メッセージが報告されます。このメッセージをダブルクリックすると、参照先のソース・ファイルの正しい行に直接移動できます。

- Apache Ant。Apache Antを使用してプロジェクトを構築する場合、ログ・ウィンドウには対応するビルド情報が表示されます。

- デバッガ

- 監査

- プロファイラ

ログ・ウィンドウの内容に対応したコンテキスト・メニューを表示するには、ウィンドウ内を右クリックします。ログ・ウィンドウのウィンドウとしてのコンテキスト・メニューを表示するには、タブを右クリックします。

ログ・ウィンドウのコンテキスト・メニューからは、次のことを実行できます。

- ウィンドウの内容をコピー

- ウィンドウ内のすべてのデータを選択

- ウィンドウ内のテキストの折返し

- ウィンドウの内容を消去

- ウィンドウの内容を別の形式で保存

- ウィンドウを閉じる

特定のプロセスで生成されたタブ付きセクションでは、これ以外の操作も可能な場合があります。

ウィンドウ自体のコンテキスト・メニューからは、次のことを実行できます。

- ウィンドウを閉じる

- 現在選択されているタブ以外のすべてのタブを閉じる

- ウィンドウ内のすべてのタブを閉じる

3.11.9 「ステータス」ウィンドウ

「ステータス」ウィンドウは、コードの監査を支援するJDeveloperの機能の1つです。このウィンドウには、「ファイル・リスト」で選択したドキュメント内の監査違反が表示され、問題を解決するための情報が提供されます。

コード・アシストのコード監査プロファイルによって、報告されるコード監査違反が決まります。

「ステータス」ウィンドウ・ツールバー

「ステータス」ウィンドウ・ツールバーのアイコンを使用して、表示するアイテムを選択できます。

次の表で、ツールバーのアイコンとその機能を説明します。

表3-39 「ステータス」ウィンドウのツールバー・アイコン

アイコン

名前

機能

エラーを示す問題の表示

選択したファイルのエラー数のみの表示、またはファイルのエラーのリスト表示を切り替えます。

警告を示す問題の表示

選択したファイルの警告数のみの表示、またはファイルの警告のリスト表示を切り替えます。

不完全を示す問題の表示

選択したファイル内の不完全な問題の数のみを表示するか、ファイル内の不完全な問題をリスト表示するかを切り替えます。

アドバイザリを示す問題の表示

選択したファイル内のアドバイザリを示す問題の数のみを表示するか、ファイル内のアドバイザリを示す問題をリスト表示するかを切り替えます。

修正

リスト内の問題のいずれかを選択し、「修正」をクリックします。「欠落しているJavadocタグの追加」など、推奨の修正方法が表示されます。

3.11.10 「タスク」ウィンドウ

このドッキング可能なウィンドウを使用して、アプリケーション、プロジェクトおよびファイルに関連するタスクを記録します。

Javaクラス・ソース・ファイルで作業している場合は、// TODOと入力(つまり、コメントを作成してJDeveloperで認識されるソース・タグを使用)すると、自動的にタスクが作成されます。

「タスク」ウィンドウの使用中には、次の機能を利用できます。

- 列ヘッダーをクリックして、情報をソートします。

- 任意のヘッダーのポップアップ・メニューを開き、リストからオプションを選択して、列を表示または非表示にします。また、任意のタスクのポップアップ・メニューから「列を表示/非表示」を選択して、列を表示または非表示にすることもできます。

- 任意のタスクのポップアップ・メニューから「タスクの追加」を選択して、タスクを追加します。

- タスクのポップアップ・メニューから「タスクの編集」を選択して、既存のタスクを編集します。

- タスクのポップアップ・メニューから「タスクの削除」を選択して、タスクを削除します。

- 任意のタスクのポップアップ・メニューから「完了済タスクを削除」を選択して、完了済タスクを削除します。

- タスクのポップアップ・メニューから「ソースに移動」を選択して、そのタスクで参照されているファイルを開きます。

「タスク」ウィンドウ・ツールバー

このツールバーを使用すると、「タスク」ウィンドウに表示されるタスクを管理できます。次の表で、「タスク」ウィンドウのツールバー・アイコンとその機能を説明します。

表3-40 「タスク」ウィンドウのツールバー・アイコン

アイコン

名前

機能

現在のアプリケーション

表示するタスク範囲として現在のアプリケーションを定義する場合に選択します。

現在のプロジェクト

表示するタスクの範囲として、現在のプロジェクトを定義する場合に選択します。

現在のファイル

表示するタスクの範囲として現在のファイルを定義する場合に選択します。

タスクの追加

ソース・ファイル・コメントに関係なく新規のタスクを作成する場合にクリックします。

タスクの編集

ハイライト表示されているタスクを編集する場合にクリックします。

タスクの削除

ハイライト表示されているタスクを削除する場合にクリックします。

フィルタ

「タスクのフィルタ処理」ダイアログを開く場合にクリックします。このダイアログでは、表示されるタスクと非表示のタスクを決定するフィルタを設定できます。

3.12 JDeveloperへの外部ツールの追加

外部ツールとは、JDeveloperのカスタム・メニュー項目およびカスタム・ツールバー・ボタンのことで、システムにインストールされているアプリケーションで、JDeveloperのパッケージには含まれていないアプリケーションを起動するものです。

JDeveloperで事前にサポートが構成されているすべてのプログラムを検索するには、次のようにします。

1. メイン・メニューから、「ツール」→「外部ツール」を選択します。

2. 「外部ツール」ダイアログで、「ツールの検索」をクリックします。

JDeveloperから外部プログラムへのアクセスを追加するには、次のようにします。

1. メイン・メニューから、「ツール」→「外部ツール」を選択します。

2. 「外部ツール」ダイアログで、「新規」をクリックします。ウィザードの指示に従います。

外部プログラムの表示方法を変更する、またはJDeveloperから外部プログラムへのアクセスを削除するには、次のようにします。

1. メイン・メニューから、「ツール」→「外部ツール」を選択します。

2. 「外部ツール」ダイアログで、「編集」または「削除」をクリックします。JDeveloperから外部ツールのオプション、表示、統合または利用可能性を編集している場合は、対応するタブを選択して、値を変更します。有効な値を選択する方法のヘルプを表示するには、「ヘルプ」をクリックしてください。

3. 「OK」をクリックします。変更がただちに反映されます。

第II部

Oracle JDeveloperによるアプリケーションの開発

ここでは、Oracle JDeveloperによるアプリケーションの開発方法について説明します。アプリケーションを効率的にビルド、テスト、実行およびデプロイする方法についての情報が掲載されています。

この部の内容は次のとおりです。

- 第4章「Oracle JDeveloperでのアプリケーションの開発に関するスタート・ガイド」
この章では、JDeveloperで使用可能なアプリケーションを開発するための機能の概要について説明します。

- 第5章「アプリケーションおよびプロジェクトの使用」
この章では、Oracle JDeveloper IDEでアプリケーションとプロジェクトを効果的に使用する方法について説明します。

- 第6章「ソース・コントロールを使用したアプリケーションのバージョニング」
この章では、JDeveloperで使用できるバージョン・コントロールの機能について説明します。

- 第7章「アプリケーションのビルド、実行およびデバッグ」
この章では、JDeveloperのビルド、実行およびデバッグ機能の概要を説明します。

- 第8章「アプリケーションの監査とプロファイリング」
この章では、JDeveloperにおける監査、プロファイリングおよびテストの機能についての概要を説明します。

- 第9章「アプリケーションのデプロイ」
この章では、JDeveloperでアプリケーションをデプロイする方法について説明します。

4 Oracle JDeveloperでのアプリケーションの開発に関するスタート・ガイド

この章では、JDeveloperで使用可能なアプリケーションを開発するための機能の概要について説明します。

この章では、次の項目について説明します。

- 第4.1項「Oracle JDeveloperによるアプリケーションの開発について」

4.1 Oracle JDeveloperによるアプリケーションの開発について

JDeveloperでは、アプリケーションを開発するために複数のツールおよび機能を提供しています。これらの機能を使用して、アプリケーションを効率的に構築、テスト、実行およびデプロイできます。次の機能が含まれます。

- アプリケーション、プロジェクトおよびファイルに関連付けられた様々なオブジェクト・タイプおよびリソースを管理および操作するためのナビゲータ、ウィンドウおよびパレット。

- 様々なタイプのソース・ドキュメントの作成作業を簡略化するための複数のビジュアル編集およびコード編集用ツール。これらのエディタはナビゲータやパレットなどIDE内の他のツールと統合されているため、ドラッグ・アンド・ドロップ操作や、統合された様々なツール間での同時更新、自動更新がサポートされています。

- ソース・コード、プロセス、およびアプリケーション・モジュールまたはパッケージのテストおよび分析作業を簡略化するための複数のツール。

5 アプリケーションおよびプロジェクトの使用

この章では、Oracle JDeveloper IDEでアプリケーションとプロジェクトを効果的に使用する方法について説明します。

この章では、次の項目について説明します。

- 第5.1項「アプリケーションとプロジェクトの使用について」

- 第5.2項「アプリケーションおよびプロジェクトの作成」

- 第5.3項「アプリケーションおよびプロジェクトの管理」

- 第5.4項「アプリケーション、プロジェクトまたは個々のファイルの管理」

- 第5.5項「プロジェクト・スコープの外部のライブラリおよびJava SEの管理」

5.1 アプリケーションおよびプロジェクトの使用について

アプリケーションは、制御構造における最上位レベルです。作業中に必要なすべてのオブジェクトが表示されます。アプリケーションは、プログラム開発中のすべてのプロジェクトを追跡します。

プロジェクトは、JDeveloperのプログラムまたはプログラムの一部を定義する一連のファイルの論理コンテナです。プロジェクトには、たとえば、複数層アプリケーションの様々な層、あるいは複合アプリケーションの様々なサブシステムなどを表すファイルが含まれます。これらのファイルは任意のディレクトリに配置でき、かつ、単一のプロジェクトに含めることができます。

アプリケーションおよびプロジェクトのコントロール・ファイルを、ディスクから削除せずにIDEから削除できます。(これは他のタイプのファイルには当てはまりません。他のタイプのファイルは、IDEから削除された時点でディスクから削除されます)。

JDeveloperでは、様々なファイル・タイプを認識でき、ファイルをダブルクリックした場合、各ファイル・タイプが適切なビューアまたはエディタで表示されます。

プロジェクトをアプリケーションに追加する際には、次の処理を選択できます。

- 新規プロジェクトを作成し、特定のオブジェクトおよび属性を定義します。

- デフォルトのプロジェクト・プロパティを継承する新規の空プロジェクトを作成します。

- 新規プロジェクト内に、JDeveloper以外の既存のファイル・セットを開きます。

新規プロジェクトを作成、または既存のプロジェクトを開くとすぐに、選択したアプリケーションに追加されます。

プロジェクトは、ディレクトリから直接ファイル・リストを制御します。アプリケーションおよびパッケージは、プロジェクト内のファイルの格納場所および格納方法も定義します。

注意:

同一オブジェクト(物理ファイル)が複数のプロジェクトに表示される場合があります。これは、あるプロジェクト内のオブジェクトについて実行されるすべてのアクションが他のプロジェクトで実行されることを意味します(ただし、プロジェクトがコンパイルされて初めて同じ効果が表れます)。パッケージの場合、2つ以上のプロジェクトでパッケージを共有できません。ただし、パッケージの生成に使用されたソースパスも共有しており、パッケージがすでにコンパイル済で変更の予定がない場合を除きます。

5.2 アプリケーションおよびプロジェクトの作成

新しいアプリケーションとプロジェクトは、アプリケーション・ナビゲータから管理されます。

5.2.1 アプリケーションの作成方法

この項では、カスタムJDeveloperアプリケーションと、その中のプロジェクトの作成方法について説明します。

新規のアプリケーションを作成するには、次のようにします。

1. 「ファイル」→「新規」を選択して「新規ギャラリ」を開きます。

2. 「新規ギャラリ」の「カテゴリ」ツリーで、「一般」の「アプリケーション」を選択します。

3. 「項目」リストで、作成するアプリケーションのタイプをダブルクリックします。

4. 「アプリケーションの作成」ダイアログで、名前やディレクトリなど、アプリケーションの詳細を入力します。ウィザードに関するヘルプを表示するには、[F1]を押します。

5. 「次へ」をクリックして「プロジェクト名」ページを開き、オプションでプロジェクトの詳細を入力します。

6. 終わったら、「終了」をクリックします。

5.2.2 カスタム・アプリケーションを作成する方法

この項では、カスタマイズ可能で任意の機能を追加できる単一のプロジェクトを含むカスタム・アプリケーションを作成する方法について説明します。

カスタム・アプリケーションを作成するには、次のようにします。

1. 「ファイル」→「新規」を選択して「新規ギャラリ」を開きます。

2. 「新規ギャラリ」の「カテゴリ」ツリーで、「一般」の「アプリケーション」を選択します。

3. 「項目」リストで、「カスタム・アプリケーション」をダブルクリックします。カスタム・アプリケーションの作成・ウィザードが開きます。

4. 「カスタム・アプリケーションの作成」ダイアログで、名前やディレクトリなど、アプリケーションの詳細を入力します。ウィザードに関するヘルプを表示するには、[F1]を押します。

5. 「次へ」をクリックして「プロジェクト名」ページを開き、オプションでプロジェクトの詳細を入力します。

6. 終わったら、「終了」をクリックします。

5.2.3 新規のプロジェクトを作成する方法

JDeveloperでは、アプリケーションの開発中に使用するプロジェクト(関連ファイルまたはコンポーネントの集合)の追跡に、アプリケーション・ナビゲータを使用します。既存のソースに基づき新規プロジェクトを作成することもできます。

5.2.3.1 新規のプロジェクトを作成する方法

既存のソースまたは新規のオブジェクトが移入されたものから新規プロジェクトを作成することも、新規の空プロジェクトを作成することもできます。

すべてのプロジェクトは、「デフォルトのプロジェクト・プロパティ」ダイアログで指定された設定を継承します。作成したプロジェクトは、アクティブなアプリケーションにすぐに追加されます。

既存のソースから、または新規オブジェクトを使用して新規プロジェクトを作成するには、次のようにします。

1. アプリケーション・ナビゲータで、プロジェクトを追加するアプリケーションを選択します。

2. 「アプリケーション・メニュー」アイコンをクリックして「新規プロジェクト」を選択し、「新規ギャラリ」の「プロジェクト」ページを開きます。

3. 「項目」リストで、作成するプロジェクトのタイプをダブルクリックします。

4. プロジェクトの作成ウィザードを完了して「終了」をクリックします。ウィザードに関するヘルプを表示するには、[F1]を押します。

ナビゲータに新規のプロジェクトが表示されます。このプロジェクトは、あらかじめ設定されているデフォルト・プロパティをすべて継承します。プロジェクトのプロパティを変更する場合は、ファイル名をダブルクリックするか、右クリックして「プロジェクト・プロパティ」を選択します。

5.2.3.2 新規のカスタム・プロジェクトを作成する方法

カスタム・プロジェクトは、カスタマイズして任意の機能を追加できます。すべてのプロジェクトは、「デフォルトのプロジェクト・プロパティ」ダイアログで指定された設定を継承します。作成したプロジェクトは、アクティブなアプリケーションにすぐに追加されます。

新規のカスタム・プロジェクトを作成してアクティブなアプリケーションに追加するには、次のようにします。

1. アプリケーション・ナビゲータで、新規プロジェクトを含むアプリケーションを開きます。

2. 「アプリケーション・メニュー」アイコンをクリックして「新規プロジェクト」を選択し、「新規ギャラリ」の「プロジェクト」ページを開きます。

3. 「項目」で、「カスタム・プロジェクト」を選択します。

4. 「OK」をクリックします。

5.3 アプリケーションおよびプロジェクトの管理

JDeveloperには、アプリケーションとプロジェクトを効果的に管理するいくつかの機能が用意されています。

5.3.1 既存のアプリケーションまたはプロジェクトを開く方法

新規のアプリケーションおよびプロジェクトを最初から作成することも、既存のアプリケーションおよびプロジェクトを開くこともできます。作成またはインポートしたアプリケーションは、すぐにアプリケーション・ナビゲータの「アプリケーション」ノードに追加されます。作成またはインポートしたプロジェクトは、すぐに選択したアプリケーションに追加されます。

既存のアプリケーションを開いてアプリケーション・ナビゲータに追加するには、次のようにします。

1. アプリケーション・ナビゲータで、ドロップダウン・リストから「アプリケーションを開く」を選択します。

2. アプリケーション・ファイルの場所まで移動し、ファイルを選択します。
「ファイル・タイプ」フィールドには、.jwsファイルを指定するか、すべてのタイプを表示するようにしてください。

3. 「開く」をクリックします。
これで、ナビゲータのアプリケーション・リストにアプリケーションが追加されます。

既存のプロジェクトを開き、アプリケーションに追加するには、次のようにします。

1. アプリケーション・ナビゲータで、プロジェクトを追加するアプリケーションを選択します。

2. メイン・メニューから、「ファイル」→「開く」を選択します。

3. プロジェクト・ファイルの場所まで移動し、ファイルを選択します。
「ファイル・タイプ」フィールドには、.jprファイルを指定するか、すべてのタイプを表示するようにしてください。

4. 「開く」をクリックします。
プロジェクトがアクティブなアプリケーションに追加されます。

5.3.2 JDeveloperに既存のソース・ファイルをインポートする方法

様々なタイプの新規ファイルを最初から作成したり、既存のファイルを開くことができます。既存のファイルを開く場合、ファイルをファイル構造とともに既存のプロジェクトにインポートするか、このファイルを使用して完全に新規のプロジェクトを作成します。

あるいは、既存のプロジェクトにソース・ファイルを追加できます。

5.3.2.1 新規JDeveloperプロジェクトへの既存のファイルのインポート

新規プロジェクトを作成しながら、既存のファイルをJDeveloperにインポートできます。

既存のファイルを開き、新規JDeveloperプロジェクトにインポートするには、次のようにします。

1. アプリケーション・ナビゲータで、新規プロジェクトを追加するアプリケーションを選択または作成します。

2. アプリケーションを選択した状態で「ファイル」→「新規」を選択し、「新規ギャラリ」を開きます。

3. 「カテゴリ」ツリーで、「一般」を開いて「プロジェクト」を選択します。

4. 「項目」リストで「既存のソースからのプロジェクト」をダブルクリックします。

5. 既存のソースからのプロジェクト・ウィザードの「場所」ページで、新規.jprファイルの名前を入力するか、デフォルトを受け入れます。
ウィザードのこのページまたは後続のページの詳細は、[F1]を押すか、ウィザード内で「ヘルプ」をクリックしてください。

あるいは、「ファイル」→「インポート」を選択し、「Javaソース」または「ソースを新規プロジェクトへ」を選択する方法もあります。

6. デフォルトのディレクトリ・パスを受け入れるか、新規パスを入力するか、または「参照」をクリックしてパスまで移動します。

7. 「次へ」をクリックします。

8. 「Javaコンテンツ」領域の「ソースの指定」ページで、「追加」をクリックして「ディレクトリの選択」ダイアログを開きます。

9. このダイアログで、追加するファイルを含むディレクトリまで移動します。「選択」をクリックしてダイアログを閉じ、ウィザードにディレクトリを表示します。

10. ディレクトリの追加後、ファイル・フィルタまたはディレクトリ・フィルタを適用できます。フィルタを適用するには、「対象」タブの横にある「追加」をクリックします。

11. インポート・リストの完了後、オプションで「プロジェクト・ディレクトリにファイルをコピー」をクリックし、元のソースを指定するかわりに、選択したファイルをプロジェクトにコピーします。

12. デフォルトの出力ディレクトリとデフォルトのパッケージを定義します。

13. 「終了」をクリックします。
新規プロジェクトが選択したアプリケーション・ノードの下に表示され、インポートされたファイルが移入されます。

「プロジェクト・プロパティ」ダイアログで、プロジェクト・ディレクトリ構造を調整できます(リソース・ディレクトリを指すようにするなど)。

5.3.2.2 新規JDeveloperプロジェクトにWARファイルをインポートする方法

WARファイルから抽出したコンテンツを含む新規プロジェクトを作成しながら、JDeveloperにWARファイルをインポートできます。

WARファイルを開き、新規JDeveloperプロジェクトにインポートするには、次のようにします。

1. アプリケーション・ナビゲータで、新規プロジェクトを追加するアプリケーションを選択または作成します。

2. アプリケーションを選択した状態で「ファイル」→「新規」を選択し、「新規ギャラリ」を開きます。

3. 「カテゴリ」ツリーで、「一般」を開いて「プロジェクト」を選択します。

4. 「項目」リストで、「WARファイルからのプロジェクト」をダブルクリックします。

5. 「WARファイルからのプロジェクト作成」ウィザードを終了します。
このウィザードを使用する際の詳細は、[F1]を押します。

このウィザードでWARファイルを分析し、そのコンテンツを抽出します。

新規プロジェクトが選択したアプリケーション・ノードの下に表示され、インポートされたファイルが移入されます。

5.3.2.3 新規JDeveloperアプリケーションへのEARファイルのインポート

EARファイルをインポートすると、JDeveloperでは新規アプリケーションを作成し、抽出したEARモジュールに基づいたプロジェクトを移入します。EARファイルのコンテンツは、既存のアプリケーションやプロジェクトに追加できません。

JDeveloperを使用して単に配布するEARファイルをインポートする場合には、この手順を使用しないでください。この場合は、新しいアプリケーションとプロジェクトを作成し、プロジェクト・ディレクトリにEARファイルをコピーします(またはプロジェクトのコンテンツにそのファイルの場所を追加します)。これにより、プロジェクトの「アプリケーション・ソース」ノードの下にあるアプリケーション・ナビゲータにEARファイルが表示されます。ここからファイルを配布するには、ファイルを右クリックして「配布先」を選択します。

EARファイルを開き、新規JDeveloperアプリケーションにインポートするには、次のようにします。

1. メイン・メニューから、「ファイル」→「インポート」を選択し、「EARファイル」をダブルクリックします。
EARファイルのインポート・ウィザードはコンテキストに依存しないため、最初にナビゲータで固有の選択をする必要はありません。

2. 「EARファイルのインポート」ウィザードを終了します。
終了ページに最後のアプリケーションのコンテンツが表示されます。

3. 「終了」をクリックしてリストを受け入れ、アプリケーションを作成します。
ナビゲータに新規アプリケーションが表示されます。アプリケーションには、インポートされたモジュールに基づいたプロジェクトが移入されています。

5.3.3 プロジェクトにファイルをインポートする方法

様々なタイプの新規ファイルを最初から作成したり、既存のファイルを開くことができます。既存のファイルを開く場合、ファイルをファイル構造とともに既存のプロジェクトにインポートするか、このファイルを使用して完全に新規のプロジェクトを作成します。

既存のソースから新規プロジェクトを作成することもできます。

5.3.3.1 プロジェクトにファイルをインポートする方法

元のファイル構造を維持しながら、すでに作成したプロジェクトに様々なタイプの既存のファイルをインポートできます。

注意:

既存ソースのインポート・ウィザードを使用して、プロジェクトに.zipファイルまたは.jarファイルを追加できます。これを使用して.warファイルや.earファイルを追加することはできません。.warファイルの場合、そのコンテンツをプロジェクトへ適切に抽出するには、「WARファイルのインポート」ウィザードを使用する必要があります。EARファイルの場合、そのコンテンツを新規アプリケーションへ抽出するには、EARファイルのインポート・ウィザードを使用する必要があります。

既存ソースのインポート・ウィザードを使用して既存のファイルを開き、プロジェクトに追加するには、次のようにします。

1. アプリケーション・ナビゲータで、ファイルを追加するプロジェクトを選択します。

2. メイン・メニューから、「ファイル」→「インポート」を選択します。

3. 「インポート」ダイアログで「既存ソース」をダブルクリックします。

4. 既存ソースのインポート・ウィザードの「ソース・ファイルとディレクトリの追加」ページで「追加」をクリックして「ファイルまたはディレクトリを選択」ダイアログを開きます。
ウィザードのこのページまたは後続のページの詳細は、[F1]を押すか、ウィザード内で「ヘルプ」をクリックしてください。

5. このダイアログで、追加するファイルを含むディレクトリに移動するか、または個々のファイルに移動し、「開く」をクリックしてダイアログを閉じ、ウィザードにファイルを表示します。
このダイアログには必要があるたびに戻ることができます。ウィザードに戻るたびに「追加」をクリックし、必要なだけ個々のファイルまたはディレクトリを追加します。

6. ファイルまたはディレクトリの追加が完了し、ウィザードに戻った後は、個々のファイルの選択または選択解除を行うか、フィルタを適用することによって、リストを修正できます。フィルタを適用するには、「ファイル・フィルタ」または「ディレクトリ・フィルタ」をクリックします。

7. インポート・リストの完了後、オプションで「プロジェクト・ディレクトリにファイルをコピー」をクリックし、元のソースを指定するかわりに、選択したファイルをプロジェクトにコピーします。このオプションを選択する場合、デフォルトのsrcディレクトリをそのまま使用するか、新しいディレクトリを入力する、または「参照」をクリックしてディレクトリに移動します。

8. 「次へ」をクリックします。

9. 「終了」ページで、新規プロジェクト・ファイルのリストを確認します。このリストを受け入れるには、「終了」をクリックします。
選択したプロジェクトにファイルが追加されます。

5.3.4 プロジェクトでフォルダとJavaパッケージを管理する方法

JDeveloperでは、プロジェクト・ファイルを編成しやすいように、プロジェクト内にカスタム・フォルダまたはJavaパッケージを作成できます。

フォルダまたはJavaパッケージを作成するには、次のようにします。

1. アプリケーション・ナビゲータで、カスタム・フォルダを作成するプロジェクトまたはフォルダを選択します。

2. 「ファイル」メニューで「新規」を選択します。

3. 「新規ギャラリ」の「カテゴリ」で、「一般」を選択します。

4. 「項目」で「フォルダ」を選択し、新規フォルダを作成します。Javaパッケージを作成するには、「項目」で「Javaパッケージ」を選択します。

5. 「フォルダの作成」ダイアログまたは「Javaパッケージの作成」ダイアログで、フォルダまたはJavaパッケージの名前と、それを作成するディレクトリを指定します。

フォルダまたはJavaパッケージを削除するには、次のようにします。

1. 削除するフォルダまたはJavaパッケージを選択します。

2. 「ファイル」メニューで「削除」を選択します。

3. 「フォルダの削除の確認」ダイアログで、フォルダまたはJavaパッケージの削除を確認します。フォルダのファイルを表示をクリックすると、フォルダまたはJavaパッケージに含まれるファイルが表示されます。

5.3.5 ワーキング・セットの管理方法

ワーキング・セットによって、プロジェクトでファイルのサブセットを表示するようにナビゲータを構成できます。これは特に、大規模なプロジェクトを操作する際に便利です。独自のワーキング・セットを定義するまでは、使用可能な唯一のワーキング・セットは「Default」であり、これは現在のアプリケーションのすべてのファイルが含まれたワーキング・セットです。

プロジェクトの実行およびデバッグを、アプリケーション全体の実行およびデバッグと同じ方法で行えます。これにより、アプリケーション全体に影響を及ぼしたり、余分な負荷をかけたりすることなく、Java EEアプリケーションなどの大規模アプリケーションのサブセットのみで作業できます。

ワーキング・セットを定義するには、「アプリケーション・ナビゲータ」のファイルまたはコンテナから選択するか、「ワーキング・セットの管理」ダイアログで対象とするフィルタ・パターンと対象外とするフィルタ・パターンを指定します。

アプリケーション・ナビゲータにあるオブジェクトをワーキング・セットにグループ化するには、次のようにします。

1. アプリケーション・ナビゲータで、新規のワーキング・セットに含めるオブジェクトを選択します。

2. アプリケーション・ナビゲータで、「ワーキング・セット」アイコンをクリックし、「選択から新規」を選択します。
これにより「別名保存」ダイアログが開きます。詳細は、[F1]を押すか、「別名保存」ダイアログ内で「ヘルプ」をクリックします。

3. ワーキング・セットの名前を入力し、「OK」をクリックします。

ファイル・フィルタとディレクトリ・フィルタを定義してワーキング・セットを作成するには、次のようにします。

1. アプリケーション・ナビゲータで、「ワーキング・セット」アイコンをクリックし、「ワーキング・セットの管理」を選択します。
この操作により、「ワーキング・セット」ダイアログが開きます。左側のツリーを使用して、含めるプロジェクトを選択します。右側のパネルで、現在のプロジェクトに含めるファイルを選択します。詳細は、[F1]を押すか、「ワーキング・セット」ダイアログ内で「ヘルプ」をクリックします。

2. 「別名保存」をクリックして、ワーキング・セットを保存します。

「ログ」ウィンドウの検索結果からワーキング・セットを作成するには、次のようにします。

1. 「ログ」ウィンドウで右クリックし、コンテキスト・メニューから「ワーキング・セットとして保存」を選択します。

2. 「ワーキング・セットの作成」ダイアログで、ワーキング・セットの名前を入力します。

現在使用しているワーキング・セットを確認するには次のようにします。

- アプリケーション・ナビゲータで、マウスを「ワーキング・セット」アイコンの上に置きます。現在のワーキング・セットの名前がツールチップとして表示されます。または、「ワーキング・セット」アイコンをクリックして、アクティブ・ワーキング・セットがチェックされているメニューを表示します。

アクティブ・ワーキング・セットを変更するには、次のようにします。

- アプリケーション・ナビゲータで、「ワーキング・セット」アイコンをクリックし、開くワーキング・セットを選択します。
このワーキング・セットに含まれていないファイルはビューから削除されます。

ワーキング・セットのファイルおよびプロジェクトを編集するには、次のようにします。

1. アプリケーション・ナビゲータで、「ワーキング・セット」アイコンをクリックし、「ワーキング・セットの管理」を選択します。
この操作により、「ワーキング・セット」ダイアログが開きます。詳細は、[F1]を押すか、「ワーキング・セット」ダイアログ内で「ヘルプ」をクリックします。

2. 「ワーキング・セット」ドロップダウン・リストから、変更するワーキング・セットを選択します。

3. 必要に応じて変更を行います。

アプリケーション・ナビゲータでビューをリストアして、すべてのファイルを表示するには次のようにします。

- アプリケーション・ナビゲータで、「ワーキング・セット」アイコンをクリックし、「(すべてのファイル)」を選択します。

ワーキング・セットを実行およびデバッグするには、次のようにします。

1. 実行またはデバッグするワーキング・セットを使用していることを確認します。これは、Java EEモジュール(Webアプリケーション、EJBモジュール)を使用しているとみられるプロジェクトおよびすべての依存性を含みます。
(「プロジェクト・プロパティ」ダイアログの依存性ページで)依存性が明確なプロジェクトはすべて、ワーキング・セットから対象外とされても、含まれることに注意してください。

2. 「実行」→「現在のワーキング・セットを使用(Java EEのみ)」を選択します。これで、アプリケーション・ナビゲータで、ソース・エディタやファイルやプロジェクトのポップアップ・メニューを開く場合、実行およびデバッグのオプションは名前の一部に「ワーキング・セット」が付きます。たとえば、「実行(ワーキング・セット)」または「デバッグ(ワーキング・セット)」となります。

5.3.6 JDeveloperでファイルをプロジェクトに追加せずに参照する方法

場合によっては、プロジェクトに直接追加することなくファイルを参照することが必要になります。ファイルは、プロジェクトに追加せずにJDeveloper IDEに取り込むことができます。

JDeveloperでファイルをプロジェクトに追加せずに開くには、次のようにします。

1. メイン・メニューから、「ファイル」→「開く」を選択します。
ファイル参照のみ行う場合は、アプリケーション・ナビゲータで現在どのノードが選択されていてもかまいません。

2. 開くファイルまで移動します。ファイル・タイプ・フィールドでは、適切なファイル・タイプを指定するか、すべてのファイル・タイプを表示するよう指定してください。

3. ファイルを選択します。ファイルまたはディレクトリは、必要な数だけリストから選択できます。
アーカイブ・ファイルは1個につき2個表示され、一方は仮想ディレクトリ、もう一方はファイルとして表示されます。アーカイブ・ファイルを開く場合、リストではディレクトリとして選択します。

4. 選択を行い、「開く」をクリックします。

5.3.7 アーカイブの表示方法

JDeveloperで任意のアーカイブ・ファイルを開くことにより、そのアーカイブの内容を簡単にインスペクトできます。アーカイブの内容を既存のプロジェクトまたは新規JDeveloperプロジェクトに追加できます。

JDeveloperでアーカイブを開き、その内容を表示するには、次のようにします。

1. メイン・メニューから、「ファイル」→「開く」を選択します。
アーカイブ内容の参照のみを行う場合は、アプリケーション・ナビゲータで現在どのノードが選択されていてもかまいません。

2. アーカイブを含むディレクトリまで移動します。アーカイブ・ファイルは1個につき2個表示され、一方は仮想ディレクトリ、もう一方はファイルとして表示されます。
アーカイブ・ファイルが表示されない場合、すべてのファイル・タイプが表示されていることを再確認してください。

3. アーカイブの2回目の表示(ファイルとしてのアーカイブ)を選択し、「開く」をクリックします。

5.3.8 JDeveloperでイメージ・ファイルを表示する方法

.gif、.jpg、.jpegまたは.pngファイルは、JDeveloper内から簡単に表示できるようになります。

JDeveloperでイメージを開いて表示するには、次のようにします。

1. メイン・メニューから、「ファイル」→「開く」を選択します。
イメージ参照のみを行う場合は、アプリケーション・ナビゲータで現在どのノードが選択されていてもかまいません。

2. 開くイメージまで移動します。ファイル・タイプ・フィールドでは、すべてのファイル・タイプまたはイメージ・タイプを指定してください。

3. イメージを選択します。

4. 選択を行い、「開く」をクリックします。
イメージがJDeveloperのメインの作業領域に表示されます。

JDeveloperにすでにインポートされているイメージを表示するには、次のようにします。

1. アプリケーション・ナビゲータで、イメージ・ファイルを選択します。

2. ファイルをダブルクリックするか、右クリックして「開く」を選択します。

5.3.9 デフォルトのプロジェクト・プロパティを設定する方法

今後作成するすべてのプロジェクトに共通のプロジェクト・プロパティを設定することも、個々のプロジェクトのプロパティを微調整することもできます。

個々のプロジェクトに対してプロジェクト・プロパティを設定した場合、そのプロジェクトについてのみデフォルト値がオーバーライドされます。

プロジェクトのデフォルト設定を表示または変更するには、次のようにします。

1. メイン・メニューから、「アプリケーション」→「デフォルト・プロジェクト・プロパティ」を選択します。

2. 「デフォルトのプロジェクト・プロパティ」ダイアログで、適切なカテゴリを選択します。

3. 必要に応じて、各プロパティを表示または設定します。

4. 終わったら、「OK」をクリックします。

デフォルトのプロジェクト・プロパティの設定手順は、各プロジェクトのプロパティ設定の手順と同じです。ただしデフォルトのプロパティは、最初に各プロジェクトを選択する必要がありません。「デフォルト・プロジェクト・プロパティ」ダイアログからは設定できないプロジェクト・プロジェクトもあるので注意してください。

5.3.10 個々のプロジェクトのプロパティを設定する方法

今後作成するすべてのプロジェクトに共通のプロジェクト・プロパティを設定することも、個々のプロジェクトのプロパティを微調整することもできます。個々のプロジェクトに対してプロジェクト・プロパティを設定した場合、そのプロジェクトについてのみデフォルト値がオーバーライドされます。

コンパイルまたはデバッグなどの特定のタスクに基づいて、追加のプロジェクト・プロパティも使用可能です。

個々のプロジェクトについて、現在の出力パスを表示または変更するには、次のようにします。

1. アプリケーション・ナビゲータで、適切なプロジェクトを選択します。

2. メイン・メニューから、「アプリケーション」→「プロジェクト・プロパティ」を選択するか、右クリックして「プロジェクト・プロパティ」を選択します。
「プロジェクト・プロパティ」ダイアログが開き、最後のページに入力パスが表示されます。

3. 「プロジェクトのソースパス」ページで、新規の値を入力するか、「参照」をクリックして、出力ディレクトリに必要な変更を加えます。

4. 終わったら、「OK」をクリックします。

5.3.10.1 プロジェクトにライブラリを含める方法

プロジェクトにライブラリを組み込む場合は、これらのライブラリに対して定義されているソースパスが自動的にプロジェクトのクラスパスの一部になります。

個々のプロジェクトについて、現在のライブラリを表示するには、次のようにします。

1. アプリケーション・ナビゲータで、適切なプロジェクトを選択します。

2. ポップアップ・メニューから「プロジェクト・プロパティ」を選択します。

3. 「ライブラリとクラスパス」ノードを選択します。プロジェクトに現在含まれているライブラリが「クラスパス・エントリ」リストに表示されます。

既存のライブラリをプロジェクトに追加するには、次のようにします。

1. アプリケーション・ナビゲータでプロジェクトを選択し、「プロジェクト・プロパティ」ダイアログを開きます。

2. 「ライブラリとクラスパス」ノードを選択します。

3. 「ライブラリとクラスパス」ページで「ライブラリの追加」をクリックします。

4. 選択ツリーから必要なライブラリを検索し、「OK」をクリックします。

新規ライブラリを作成し、プロジェクトに追加するには、次のようにします。

1. アプリケーション・ナビゲータでプロジェクトを選択し、「プロジェクト・プロパティ」ダイアログを開きます。

2. 「ライブラリとクラスパス」ノードを選択します。

3. 「ライブラリとクラスパス」ページで「ライブラリの追加」をクリックします。

4. 「ライブラリの追加」ダイアログで、「新規」をクリックします。

5. 「ライブラリの作成」ダイアログで、新規ライブラリの名前を入力してから、その場所を選択します。

6. パス・タイプごとに、「エントリの追加」または「URLの追加」の該当する方をクリックします。パスを削除するか、または追加内容を修正するには、「削除」をクリックします。エントリを並び替えるには、表示領域の右にある並び替えボタンを使用します。

7. 「エントリの追加」または「URLの追加」をクリックした後、表示される選択ダイアログでファイル名を入力するか、リストを参照してファイル名を選択します。入力の完了後、「選択」をクリックします。

8. 「ライブラリの作成」ダイアログで、「OK」をクリックします。

9. ライブラリとクラスパス・ページで作業が完了した後、「OK」をクリックします。

プロジェクト内の既存のライブラリを編集するには、次のようにします。

1. アプリケーション・ナビゲータでプロジェクトを選択し、「プロジェクト・プロパティ」ダイアログを開きます。

2. 「ライブラリとクラスパス」ノードを選択します。

3. 「ライブラリとクラスパス」ページで、「クラスパス・エントリ」リストから変更するライブラリを選択します。

4. 「編集」をクリックします。(ライブラリが編集可能でない場合、このボタンは「表示」ボタンのままです。)

5. 「ライブラリ定義の編集」ダイアログで、最初のフィールドに変更対象のライブラリの名前が表示されます。ライブラリ名を変更する場合には、このフィールドに直接入力します。

6. 「パスの編集」ダイアログで、「エントリの追加」または「URLの追加」の該当する方をクリックします。パスを削除する、または追加内容を修正するには、「削除」をクリックします。エントリを並び替えるには、表示領域の右にある並び替えボタンを使用します。

7. 「エントリの追加」または「URLの追加」をクリックした後、表示される選択ダイアログでディレクトリ名を入力するか、リストを参照してディレクトリ名を選択します。入力の完了後、「選択」をクリックします。

8. 「ライブラリの編集」ダイアログで、「OK」をクリックします。

9. ライブラリとクラスパス・ページで作業が完了した後、「OK」をクリックします。

5.3.10.2 プロジェクトからライブラリを削除する方法

プロジェクトからライブラリを削除した場合は、これらのライブラリに対して定義されているソースパスがプロジェクトのクラスパスの一部ではなくなります。

プロジェクトからライブラリを削除するには、次のようにします。

1. アプリケーション・ナビゲータで、適切なプロジェクトを選択します。

2. メイン・メニューから、「アプリケーション」→「プロジェクト・プロパティ」を選択するか、右クリックして「プロジェクト・プロパティ」を選択します。

3. 「ライブラリとクラスパス」ノードを選択します。

4. 「ライブラリ」ページで、「ライブラリ」リストから目的のライブラリを選択し、「削除」をクリックします。

5. 完了後、「OK」をクリックします。

5.3.10.3 プロジェクトのターゲットJava SEを設定する方法

ターゲットJava SEの設定では、プロジェクトのコンパイル時および実行時にJDeveloperが使用するJava SEを指定します。

個々のプロジェクトについて、現在のJava SEを表示または変更するには、次のようにします。

1. アプリケーション・ナビゲータで、適切なプロジェクトを選択します。

2. メイン・メニューから、「アプリケーション」→「プロジェクト・プロパティ」を選択するか、右クリックして「プロジェクト・プロパティ」を選択します。
「プロジェクト・プロパティ」ダイアログが開き、共通の入力パスが表示されるか、最後に表示していたページが表示されます。

3. 「ライブラリとクラスパス」ページに、プロジェクトに使用される「Java SEバージョン」が表示されます。新規のJava SEを定義するには、「変更」をクリックします。

4. 終わったら、「OK」をクリックします。

5.3.10.4 プロジェクトの依存性の管理方法

一般に、複合アプリケーションは複数のプロジェクトで構成されており、これらのプロジェクトは依存性によって関連している可能性があります。つまり、プロジェクトAがプロジェクトBのクラスまたはリソースを使用する場合、プロジェクトAはプロジェクトBに依存している必要があります。この依存性が設定されている場合、プロジェクトAをコンパイルすると、プロジェクトBが自動的にコンパイルされます。

デプロイメント・プロファイルの依存性は、「ツール」メニューから使用可能な「プロジェクト・プロパティ」ダイアログで作成および編集します。

個々のプロジェクトの依存性を管理するには、次のようにします。

1. アプリケーション・ナビゲータで、適切なプロジェクトを選択します。

2. メイン・メニューから、「アプリケーション」→「プロジェクト・プロパティ」を選択するか、右クリックして「プロジェクト・プロパティ」を選択します。

3. 「依存性」ノードを選択します。

4. 依存性ページで、プロジェクトの現在の依存階層を表示します。

5. 必要に応じて、プロジェクトを選択または選択を解除します。

6. 現在の依存順序を変更するには、「順序付け」をクリックします。

7. 終わったら、「OK」をクリックします。

5.3.10.5 プロジェクトに機能を関連付ける方法

プロジェクトに機能が関連付けられると、JDeveloperの設計時に、このタイプのプロジェクトに対して最も必要性が高いと思われるものに基づいて選択肢がフィルタされます。

プロジェクト・テンプレートを使用して、プロジェクトに機能を関連付けるには、次のようにします。

1. メイン・メニューから、「アプリケーション」→「テンプレートの管理」を選択します。

2. 「アプリケーション・テンプレートの管理」ダイアログで、機能を関連付けるプロジェクト・テンプレートをクリックします。
アプリケーション・テンプレートは、「アプリケーション・テンプレート」の下に、第1レベル・ノードとしてリストされます。プロジェクト・テンプレートは、アプリケーション・テンプレートの下に表示されます。

3. 右側のパネルで、「使用可能なプロジェクト・テンプレート」リストから適切な機能を選択し、シャトル・ボタンを使用して「選択したプロジェクト・テンプレート」リストに移動します。

4. 終わったら、「OK」をクリックします。

個々のプロジェクトに機能を関連付けるには、次のようにします。

1. アプリケーション・ナビゲータで、適切なプロジェクトを選択します。

2. メイン・メニューから、「アプリケーション」→「プロジェクト・プロパティ」を選択するか、右クリックして「プロジェクト・プロパティ」を選択します。

3. 「機能」ノードを選択します。

4. 「機能」ページで、「機能の追加」ボタンをクリックします。

5. 「機能の追加」ダイアログで、プロジェクトに関連付ける機能を「プロジェクトの機能」リストで選択します。

6. シャトル・ボタンをクリックして、選択内容を「選択済」リストに移動します。

7. 「OK」をクリックします。

5.3.10.6 プロジェクトにJavadocプロパティを設定する方法

作成するすべてのプロジェクトは、JDeveloperプロジェクトのデフォルト設定か、またはすべてのプロジェクトに対してユーザーが指定した設定になります。これらのデフォルト設定は、プロジェクトごとに置き換えることもできます。これらのプロパティの設定方法はどちらの場合でも同じであり、情報の場所および適用対象のみが異なります。

個々のプロジェクトのJavadocプロパティを設定するには、次のようにします。

1. アプリケーション・ナビゲータでプロジェクトを選択します。

2. メイン・メニューから、「アプリケーション」→「プロジェクト・プロパティ」を選択するか、右クリックして「プロジェクト・プロパティ」を選択します。

3. 「プロファイル」の下の、アクティブなプロファイル・ノードを選択します。

4. 「アクティブ・プロファイル」ノードの下にある「Javadoc」ノードを選択します。

5. 完了後、「OK」をクリックして「プロジェクト・プロパティ」ダイアログを閉じます。

5.3.11 アプリケーションおよびプロジェクトのテンプレートを管理する方法

アプリケーション・テンプレートおよびプロジェクト・テンプレートを使用すると、プロジェクトを編成してその編成を標準化できます。テンプレートを機能に組み込むと、アプリケーションの設計および作成方法を効率化できます。

5.3.11.1 新規アプリケーション・テンプレートの定義方法

アプリケーション・テンプレートは、アプリケーションで必要なプロジェクト・タイプを指定する1つ以上のプロジェクト・テンプレートをまとめたものです。こうしたテンプレートを使用することで、アプリケーションの開発方法を標準化できます。

新規アプリケーション・テンプレートを定義するには、次のようにします。

1. 新規アプリケーションの作成プロセスを開始します。

2. 「アプリケーションの作成」ダイアログで、「テンプレートの管理」をクリックします。また、このダイアログが開いていない場合は、「アプリケーション」→「テンプレートの管理」を選択します。
詳細は、[F1]を押すか、該当するダイアログ内で「ヘルプ」をクリックしてください。

3. 「テンプレートの管理」ダイアログで、「アプリケーション・テンプレート」ノードを選択し、クリックして「アプリケーション・テンプレートの作成」ダイアログを開きます。

4. 新しいテンプレートの名前を入力し、「OK」をクリックします。
新規テンプレートが、「テンプレートの管理」ダイアログのテンプレート・リストに表示されます。すべてのアプリケーション・テンプレートは、「アプリケーション・テンプレート」の下に、第1レベル・ノードとしてリストされます。

5. 「アプリケーション・テンプレート」の定義を完了します。詳細は、[F1]を押すか、「テンプレートの管理」ダイアログ内で「ヘルプ」をクリックしてください。

アプリケーション・テンプレートは、「ビジネス層」の「アプリケーション」カテゴリ内の「新規ギャラリ」に表示されます。

5.3.11.2 新規プロジェクト・テンプレートの定義方法

プロジェクト・テンプレートは、指定のアプリケーションで必要な各種プロジェクトを指定します。プロジェクト・テンプレートは、アプリケーション・テンプレート内に含まれます。

新規プロジェクト・テンプレートを定義するには、次のようにします。

1. 新規アプリケーション・テンプレートを定義します。
あるいは、テンプレートがすでに定義されている場合、「アプリケーション」→「テンプレートの管理」を選択します。

2. 「テンプレートの管理」ダイアログで、「プロジェクト・テンプレート」ノードを選択し、「追加」アイコンをクリックして「プロジェクト・テンプレートの作成」ダイアログを開きます。

3. 新しいテンプレートの名前を入力し、「OK」をクリックします。
新規テンプレートが、「テンプレートの管理」ダイアログのテンプレート・リストに表示されます。すべてのプロジェクト・テンプレートは、「プロジェクト・テンプレート」の下に、第1レベル・ノードとしてリストされます。

4. 「プロジェクト・テンプレート」の定義を完了します。詳細は、[F1]を押すか、「テンプレートの管理」ダイアログ内で「ヘルプ」をクリックしてください。

プロジェクト・テンプレートが、「新規ギャラリ」の「プロジェクト」カテゴリに表示されます。

5.3.11.3 アプリケーションおよびプロジェクトのテンプレートを共有する方法

共有の場所でアプリケーション・テンプレートまたはプロジェクト・テンプレートを作成できます。その他のユーザーは共有の場所からテンプレートを読み取り、使用するアプリケーションおよびプロジェクトについて同じテンプレートを使用できます。

共有テンプレートを作成する手順は次のとおりです。

1. 「アプリケーション」→「テンプレートの管理」を選択します。

2. 「テンプレートの管理」ダイアログで、「アプリケーション・テンプレート」ノードまたは「プロジェクト・テンプレート」ノードを選択し、「共有場所の追加」アイコンをクリックします。

3. 「テンプレート・ディレクトリの追加」ダイアログで、共有テンプレートを格納する場所を入力するか、参照します。

共有テンプレート・フォルダは、「アプリケーション・テンプレート」および「プロジェクト・テンプレート」の両ノードの下にリストされます。

5.3.11.4 既存のアプリケーション・テンプレートまたはプロジェクト・テンプレートを編集する方法

既存のユーザー定義アプリケーション・テンプレートまたはプロジェクト・テンプレートを編集できます。

既存のアプリケーション・テンプレートまたはプロジェクト・テンプレートを編集するには、次のようにします。

1. メイン・メニューから、「アプリケーション」→「テンプレートの管理」を選択します。

2. 「テンプレートの管理」ダイアログで、編集するテンプレートを選択します。
詳細は、[F1]を押すか、「テンプレートの管理」ダイアログ内で「ヘルプ」をクリックしてください。

3. 右側のパネルで、テンプレートの属性を必要に応じて編集します。

4. 終わったら、「OK」をクリックします。

5.3.11.5 既存のアプリケーション・テンプレートまたはプロジェクト・テンプレートを削除する方法

既存のユーザー定義アプリケーション・テンプレートまたはプロジェクト・テンプレートを削除できます。

既存のアプリケーション・テンプレートまたはプロジェクト・テンプレートを削除するには、次のようにします。

1. メイン・メニューから、「アプリケーション」→「テンプレートの管理」を選択します。

2. 「テンプレートの管理」ダイアログで、削除するテンプレートの名前を選択します。
アプリケーション・テンプレートは、「アプリケーション・テンプレート」の下に、第1レベル・ノードとしてリストされます。プロジェクト・テンプレートは、「プロジェクト・テンプレート」の下に、第1レベル・ノードとしてリストされます。

詳細は、[F1]を押すか、「テンプレートの管理」ダイアログ内で「ヘルプ」をクリックしてください。

3. 「削除」をクリックします。

4. 「OK」をクリックします。

5.4 アプリケーション、プロジェクトまたは個々のファイルの管理

この項では、アプリケーション、プロジェクト、個々のコンポーネントを保存する、名前変更する、または閉じる方法について説明します。

5.4.1 アプリケーションまたはプロジェクトの保存方法

アプリケーションまたはプロジェクトは複数の方法で保存できます。

全アプリケーション内の、すべてのプロジェクトを含むすべてのコンポーネントを保存するには、次のようにします。

- メイン・メニューから、「ファイル」→「すべて保存」を選択するか、「すべて保存」アイコンをクリックします。

または、「ファイル」→「保存」を選択して、コンポーネントを個別に保存することもできます。

アプリケーションまたはプロジェクトのコンテナ・ファイル(.jws、.jpr)のみを保存しても、そのアプリケーションまたはプロジェクトによって管理されている個別のファイルは保存されないことに注意してください。また、コンテナに含まれている個別のファイルを保存しても、コンテナ・ノードは保存されません。

各ノードは独立したエンティティであり、別々に保存する必要があります。「すべて保存」を使用することにより、これらのコンテナ・ファイルと、それに含まれるすべてのファイルを同時に保存できます。

選択したアプリケーション・ノードやプロジェクト・ノードに対して「保存」または「別名保存」を実行すると、.jwsファイルや.jprファイルのみが保存または複製されます。ノードに含まれているファイルは保存も複製もされません。

また、アプリケーションまたはプロジェクトのコンテナ・ファイルに対して「名前を付けて保存」を実行すると、コンテナは置き換えられますが、コンテナに含まれているファイルは変更されません。個々のファイルに対して「別名保存」を実行した場合は、そのファイルが複製されます。ただし、ファイルの名前を変更する場合は「ファイル」→「名前の変更」を使用してください。

5.4.2 個々のコンポーネントまたはファイルを保存する方法

個々のコンポーネントを複数の方法で保存できます。

個々のコンポーネントまたはファイルを保存するには、次のようにします。

1. アプリケーション・ナビゲータで、保存するコンポーネントまたはファイルを選択します。

2. メイン・メニューから、「ファイル」→「保存」を選択するか、ツールバーの「保存」アイコンをクリックします。
ファイルはただちに保存され、ファイル名がイタリック体からローマン体のフォントに変わります。

アプリケーションまたはプロジェクトのコンテナ・ファイル(.jws、.jpr)のみを保存しても、そのアプリケーションまたはプロジェクトによって管理されている個別のファイルは保存されないことに注意してください。また、コンテナに含まれている個別のファイルを保存しても、コンテナ・ノードは保存されません。

各ノードは独立したエンティティであり、別々に保存する必要があります。「すべて保存」を使用することにより、これらのコンテナ・ファイルと、それに含まれるすべてのファイルを同時に保存できます。

選択したアプリケーション・ノードやプロジェクト・ノードに対して「保存」または「別名保存」を実行すると、.jwsファイルや.jprファイルのみが保存または複製されます。ノードに含まれているファイルは保存も複製もされません。

個々のファイルまたはコンポーネントは、「ファイル」→「名前の変更」を選択して変更することもできます。

また、アプリケーションまたはプロジェクトのコンテナ・ファイルに対して「別名保存」を実行すると、コンテナは置き換えられますが、コンテナに含まれているファイルは変更されません。個々のファイルに対して「別名保存」を実行した場合は、そのファイルが複製されます。

5.4.3 アプリケーション、プロジェクトまたは個々のコンポーネントの名前を変更する方法

アプリケーション制御ファイル、プロジェクト制御ファイルおよび個々のファイルの名前を変更できます。Javaクラスの名前変更の正しい方法は、リファクタを使用する方法です。

アプリケーションまたはプロジェクトのコンテナ、あるいは個々のソース・ファイルの名前を変更するには、次のようにします。

1. アプリケーション・ナビゲータで、保存するノードを選択します。

2. メイン・メニューから、「ファイル」→「名前の変更」を選択します。
シンプル・ファイルの場合は「名前の変更」ダイアログが開きます。シンプル・ファイルの場合は「名前の変更」ダイアログが開き、Javaファイルの場合は「ファイルの名前変更」ダイアログが開きます。

3. 「ファイルの名前変更」ダイアログが開いた場合、選択したファイルのみの名前を変更するか、あるいは、選択したファイル、そのファイルで定義されたクラス、およびそのクラスの参照すべての名前を変更するかを選択します。
クラスの名前を変更し参照を更新するように選択した場合は、「Object_Nameの名前の変更」ダイアログが開きます。

4. 「Object_Nameの名前の変更」ダイアログが開いた場合、必要に応じて名前を変更しオプションを選択後、「OK」をクリックします。

5. 「名前の変更」ダイアログが開いた場合、必要に応じて名前を変更して「保存」をクリックします。
ナビゲータに、新しい名前でノードが表示されます。

また、「ファイル」→「別名保存」を選択することもできます。「名前の変更」では常にターゲット・ファイルが置換されます。「別名保存」ではアプリケーションまたはプロジェクトのコンテナ・ファイル(.jws、.jpr)が置換され、ソース・ファイルが複製されます。

ファイルを保存する際には、コンテナ・ファイルのみを保存してもアプリケーションやプロジェクト全体の内容は保存されないことに注意してください。全体の内容を保存するには、「すべて保存」を使用する必要があります。

5.4.4 アプリケーション、プロジェクトまたはプロジェクト内容の場所を移動する方法

アプリケーション・ナビゲータは、アプリケーションおよびプロジェクトの論理構造を視覚的に表示します。これは、ファイル・ディレクトリではありません。また、必ずしもファイルの物理的な場所を表しているわけではありません。

個々のファイルの物理的な場所は、JDeveloperで変更できます。ファイルのグループの物理的な場所を変更する場合は、オペレーティング・システムのファイル・マネージャを使用する方が簡単です。

ファイルとプロジェクトのアソシエーションやプロジェクトとアプリケーションのアソシエーションを変更するには、アプリケーション・ナビゲータで適宜追加または削除します。

注意:

Javaクラスの移動には、「リファクタ」メニューのオプションを使用することをお薦めします。

プロジェクトまたはコンテナ・ファイル(.jwsや.jpr)のいずれかにある、個々のファイルの物理的な場所を変更するには、次のようにします。

1. アプリケーション・ナビゲータで、移動するファイルを選択します。

2. メイン・メニューから、「ファイル」→「名前の変更」を選択します。Javaファイルを選択した場合は、「ファイルの名前変更」ダイアログが開きます。ファイルを移動できるのは、「ファイルの名前変更のみ行います。参照は更新しません。」オプションを選択した場合のみです。

3. 「名前の変更」ダイアログで、ファイルの新しい場所に移動し、必要な場合はファイル名を変更します。

4. 「保存」をクリックします。
ファイルが新しいディレクトリに物理的に格納されます。ナビゲータでの論理表示は、明示的に変更しないかぎり変わりません。

アプリケーション全体またはディレクトリの物理的な場所を変更するには、次のようにします。

1. オペレーティング・システムのファイル・マネージャで、ファイルが現在配置されているディレクトリに移動します。JDeveloperのデフォルト・ディレクトリに格納されるファイルは、myworkフォルダにあります。

2. 移動するディレクトリ全体(アプリケーション、プロジェクト、またはプロジェクト内のファイル)を選択し、新しい場所に移動します。
ファイルが移動します。ただし、JDeveloperではそのファイルの場所を認識しません。

3. JDeveloperに戻ったら、アプリケーション・ナビゲータで、ドロップダウン・リストから「アプリケーションを開く」を選択します。

4. アプリケーションまたはプロジェクトの新しい物理的な場所に移動し、「開く」をクリックします。

あるプロジェクトから別のプロジェクトにファイルのグループの物理的な場所を変更するには、次のようにします。

1. オペレーティング・システムのファイル・マネージャで、ファイルが現在配置されているディレクトリに移動します。

2. 移動するファイルを選択し、新しい場所に移動します。

3. JDeveloperに戻ったら、アプリケーション・ナビゲータでプロジェクトを選択し、ポップアップ・メニューから「プロジェクト・プロパティ」を選択します。

4. 「プロジェクト・プロパティ」ダイアログの「プロジェクトのソース・パス」ページで「追加」ボタンを使用し、追加するファイルの場所まで移動します。
ファイルは、ステップ2で配置された場所に物理的に移動し、ナビゲータではステップ4で選択された場所に論理的に関連付けられます。

5.4.5 アプリケーション、プロジェクトまたはその他のファイルを閉じる方法

アプリケーション・ナビゲータでアプリケーション、プロジェクトまたはファイルを閉じると、アプリケーションまたはプロジェクトがメモリーからアンロードされます。閉じたアプリケーションまたはプロジェクトは、ノードを閉じた状態でナビゲータに表示されます。

また、アプリケーション、プロジェクトまたはファイルは、ナビゲータのリストからのみ削除することも、その格納場所にかかわらずJDeveloper内から完全に削除することもできます。

アプリケーションまたはプロジェクトを閉じるには、次のようにします。

1. アプリケーション・ナビゲータで、閉じるアプリケーションまたはプロジェクトを選択します。

2. メイン・メニューから、「ファイル」→「閉じる」を選択します。
閉じるアプリケーションまたはプロジェクト内のファイルが変更済かつ未保存の場合は、保存を求めるプロンプトが表示されます。

アプリケーションまたはプロジェクトのノードが閉じられ、展開可能であることを示すプラス記号付きでナビゲータに表示されます。

「エディタ」ウィンドウの上にある、対応する「ドキュメント」タブの「閉じる」ボックスをクリックし、ビューアまたはエディタで開かれているファイルを閉じることもできます。

5.4.6 プロジェクトからファイルを削除する方法

プロジェクトからファイルを削除すると、そのファイルはナビゲータのリストからのみ削除されます。あるいは、ファイルの格納場所にかかわらず、JDeveloperから永久的に削除することもできます。

プロジェクトからファイルを削除するには、次のようにします。

1. アプリケーション・ナビゲータで、削除するファイルを選択します。

2. 「ファイル」→「削除」を選択します。

3. 「削除の確認」ダイアログが表示されます。ファイルを削除する場合は、「はい」をクリックします。

5.4.7 アプリケーションからプロジェクトを削除する方法

JDeveloper内からプロジェクト制御ファイル(.jpr)を削除して、アプリケーションからプロジェクトを削除できます。

アプリケーションからプロジェクトを削除するには、次のようにします。

1. アプリケーション・ナビゲータで、削除するプロジェクトを選択します。

2. 「ファイル」→「プロジェクトの削除」を選択します。

3. 「プロジェクトの削除の確認」ダイアログが表示されます。削除を確認するには「はい」をクリックします。

5.4.8 アプリケーションの削除方法

JDeveloper内からアプリケーションを削除できます。

IDEからアプリケーションを削除するには、次のようにします。

1. アプリケーション・ナビゲータで「アプリケーション・メニュー」を選択します。

2. 「アプリケーションを閉じる」を選択します。

3. 「アプリケーションのクローズの確認」ダイアログが表示されます。設定に基づきオプションを選択します。

5.5 プロジェクト・スコープの外部のライブラリおよびJava SEの管理

JDeveloperでは、プロジェクト・スコープの外部のライブラリとJava SEを管理できます。

5.5.1 プロジェクト・スコープの外部のライブラリまたはJava SEをインポートする方法

JDeveloperプロジェクト・スコープの完全に外部にあるライブラリを、ユーザー自身またはJDeveloperのユーザー・グループがプロジェクトで使用できるように設定して、このライブラリを使用できます。

プロジェクト・スコープの外部のライブラリまたはJava SEを使用するには、次のようにします。

1. メイン・メニューから「ツール」→「ライブラリの管理」を選択します。

2. 「ライブラリの管理」ダイアログで、「ライブラリ」タブまたは「Java SE定義」タブのどちらかを選択します。

3. ユーザー自身が使用するライブラリをインポートする場合は、「ユーザー」ノードを選択します。グループで使用するライブラリをインポートする場合は、「拡張」ノードを選択します。

4. 「ディレクトリ」をクリックします。

5. 「ディレクトリのロード」ダイアログで、インポートするライブラリに移動し、「選択」をクリックします。

6. 終わったら、「OK」をクリックします。

5.5.2 プロジェクト・スコープの外部のライブラリまたはJava SEを作成する方法

JDeveloperプロジェクト・スコープの完全に外部にあるライブラリを、ユーザー自身またはJDeveloperのユーザー・グループがプロジェクトで使用できるように設定して、このライブラリを使用できます。

プロジェクト・スコープの外部のライブラリまたはJava SEを作成するには、次のようにします。

1. メイン・メニューから「ツール」→「ライブラリの管理」を選択します。

2. 「ライブラリの管理」ダイアログで、「ライブラリ」タブまたは「Java SE定義」タブのどちらかを選択します。

3. ユーザー自身が使用するライブラリを作成する場合は、「ユーザー」ノードを選択します。グループで使用するライブラリを作成する場合は、「拡張」ノードを選択します。

4. 「新規」をクリックします。

5. 「ライブラリの作成」ダイアログまたは「Java SEの作成」ダイアログで、新規ライブラリまたはJava SEの詳細を終了します。

6. 終わったら、「OK」をクリックします。

5.5.3 プロジェクト・スコープの外部のライブラリまたはJava SEを編集する方法

JDeveloperプロジェクト構造の完全に外部にあるライブラリを、ユーザー自身またはJDeveloperのユーザー・グループがプロジェクトで使用できるよう設定して、このライブラリを使用することができます。

プロジェクト・スコープの外部のライブラリまたはJava SEを編集するには、次のようにします。

1. メイン・メニューから「ツール」→「ライブラリの管理」を選択します。

2. 「ライブラリの管理」ダイアログで、「ライブラリ」タブまたは「Java SE定義」タブのどちらかを選択します。

3. タブ・リストで、編集するライブラリを選択します。そのライブラリの属性が右側のフィールドに表示されます。

4. Java SE実行可能ファイルを変更するには、「参照」をクリックします。

5. クラスパス、ソースパスまたはドキュメント・パスを変更するには、変更するパスを選択し、「パス」パネルの下にあるボタン(「エントリの追加」、「URLの追加」または「削除」)のいずれかをクリックします。
右マージンの「上へ」ボタンと「下へ」ボタンをクリックしてエントリを並び替えることもできます。

6. 終わったら、「OK」をクリックします。

5.5.4 プロジェクト・スコープの外部のライブラリまたはJava SEを削除する方法

JDeveloperプロジェクト・スコープの完全に外部にあるライブラリを、ユーザー自身またはJDeveloperのユーザー・グループがプロジェクトで使用できるように設定して、このライブラリを使用できます。

プロジェクト・スコープの外部のライブラリまたはJava SEを削除するには、次のようにします。

1. メイン・メニューから「ツール」→「ライブラリの管理」を選択します。

2. 「ライブラリの管理」ダイアログで、「ライブラリ」タブまたは「Java SE定義」タブのどちらかを選択します。

3. タブ・リストで、削除するライブラリを選択します。削除できるのは、自分で作成したライブラリのみです。

4. 「削除」をクリックし、確認ダイアログに応答します。
ライブラリがただちに削除されます。

5. 「ライブラリの管理」ダイアログを閉じるには、「OK」をクリックします。

6 ソース・コントロールを使用したアプリケーションのバージョニング

この章では、チーム環境で開発されたアプリケーションのバージョンをソース・コントロール・システムを使用して管理する方法について説明します。使用可能なバージョン・コントロール・システムについて、およびOracle JDeveloperで使用可能な各種バージョン・コントロール拡張機能のダウンロード方法について説明します。また、JDeveloperで使用可能な各ソース・コントロール・システムに関する指示も含まれます。

この章では、次の項目について説明します。

- 第6.1項「ソース・コントロールを使用したアプリケーションのバージョニングについて」

- 第6.2項「Oracle JDeveloperでのソース・コントロール拡張機能のダウンロード」

- 第6.3項「SubversionとOracle JDeveloperの使用」

- 第6.4項「Concurrent Version System (CVS)とOracle JDeveloperの使用」

- 第6.5項「PerforceとOracle JDeveloperの使用」

- 第6.6項「Serena DimensionsとOracle JDeveloperの使用」

- 第6.7項「Rational ClearCaseとOracle JDeveloperの使用」

- 第6.8項「Team SystemとOracle JDeveloperの使用」

- 第6.9項「WebDAVとOracle JDeveloperの使用」

6.1 ソース・コントロールを使用したアプリケーションのバージョニングについて

チームでの開発では、同一のファイルを変更する複数の開発者をコーディネーションし、プロジェクト管理またはバグ・レポート・システムに対してこれらの変更を追跡し、最終的には進行中のプロジェクトに組み込まれるコンテンツで共通に使用しているリポジトリに編集済ファイルをチェックインまたはコミットする必要が生じることがよくあります。

ソフトウェア製品のチーム開発をアシストするために、JDeveloperで使用できる機能セットにはポピュラーなバージョン・コントロール・システムとしてSubversionが統合されています。JDeveloperインタフェースの「バージョン」メニューまたはバージョニング・ナビゲータを使用すると、Subversionの多数のコマンドに直接アクセスできます。

他のバージョニング・システムに習熟しているユーザーに対して、JDeveloperはダウンロード可能な拡張機能として、CVS、PerforceおよびSerena Dimensionsのサポートも提供しています。これらおよび他の拡張機能では、「ヘルプ」→「更新の確認」を選択できます。

最後に、このセクションでは、XMLという重要なデータ・タイプでバージョン・コントロールをより効果的で有益なものにするために、XMLの書き方のベストプラクティスの推奨事項も説明しています。

6.2 Oracle JDeveloperでのソース・コントロール拡張機能のダウンロード

JDeveloperには、チームでの開発のためのツールが複数あります。このようなツールには、統合ソリューションであるSubversionや、JDeveloperとポピュラーなバージョン・コントロール・システムをインタフェースするいくつかの拡張機能があります。さらに、ダウンロード可能な拡張機能として、アプリケーション・ライフサイクル管理システムのOracleチーム・プロダクティビティ・センターも使用できます。

選択したバージョニング・システムに対して、チームのほとんどのメンバーがファイルをチェックインおよびチェックアウトし、作業中のプロジェクトの変更を管理するという相互作用を行いますが、このバージョニング・システムはJDeveloperと関連があるため、通常は少なくとも1人のチーム・メンバーがバージョニング・システムを管理および保持する必要があります。バージョニング・システムの管理者である場合は、ファイルのチェックインおよびチェックアウトのみではなく、追加作業が発生する可能性があります。

バージョニング・システムをJDeveloperと統合するために、JDeveloper拡張機能をダウンロードする必要のあるバージョニング・システムの1つを使用している場合、「ヘルプ」→「更新の確認」を選択すると、更新センターでバージョニング・システムを参照できます。使用しているバージョニング・システムを検索するときは、必ずすべての更新センターを選択してください。

6.3 SubversionとOracle JDeveloperの使用

JDeveloperには、Subversion (SVN)というポピュラーなチーム開発ソリューションが統合されています。Subversionを使用するチームのメンバーである場合、JDeveloperの「バージョニング」メニューに含まれているコマンドから、Subversionを使用して、チームのリポジトリとの接続を保持し、変更、マージなどを追跡しながら、作業中のコンテンツを管理できます。Subversionを設定するには、ソース・コントロール対象ファイル用のリポジトリの作成、JDeveloperがリポジトリに接続できることの確認、リポジトリへのファイルのインポートなどを行う必要があります。

一般に、ファイルのバージョン・コントロールを有効にするには、まず作業用ファイルをSubversionリポジトリにインポートします。リポジトリに入れると、Subversionの作業用コピー用のローカル・フォルダにSubversionリポジトリからファイルをチェックアウトできるようになります。この作業用コピーは、アクセスの容易さと速さを考慮して、通常は自分のローカル・ファイルシステムにしますが、必要であればネットワーク上の場所にすることもできます。JDeveloperでファイルを作成するとき(またはJDeveloperにファイルを移動するとき)には、Subversionの作業用コピーに保存します。自分の作業結果をチームに提供できる状態になれば、Subversionの管理下にこれらの新しいファイルを追加します。変更したファイルや新しいファイルを他のユーザーが使用できる時点になれば、Subversionリポジトリにコミットして、使用できるようにします。チームの他のメンバーが行った作業を利用するには、変更されたファイルをSubversionリポジトリから自分の作業用コピーにコピーして自分のファイルを更新します。

設定を完了した後、Subversionでの作業は、ファイルのチェックアウト、JDeveloperでのファイルの編集、変更後のファイルのチェックインが中心になります。また、自分の変更とチームの他のメンバーの変更の競合を解決することが必要になる場合もあります。Subversionの管理下からファイルの出し入れが行われる場合もあり、さらに不具合、お客様の要求および他の特性を追跡するために特定のバージョンに関連付けられたファイルの特別なプロパティを使用する場合もあります。

6.3.1 SubversionとJDeveloperの設定方法

Subversionを設定するには、ソース・コントロール対象ファイル用のリポジトリの作成、JDeveloperがリポジトリに接続できることの確認、リポジトリへのファイルのインポートなどを行う必要があります。

次の例外を除き、JDeveloperのSubversion拡張機能以外に、Subversionソフトウェアを追加でインストールする必要はありません。

- JDeveloper Subversion VCS拡張機能を使用して、ローカルSubversionリポジトリを作成する場合。

- 拡張機能で提供されているSVNKit以外のJavaバインディング(ヘルパー・ライブラリ)を使用する場合。

- プロキシ・サーバー経由でSubversionリポジトリに接続する場合

前述の場合はすべて、Subversionクライアント・ソフトウェアを別途インストールする必要があります。代替のJavaバインディングを使用する場合は、バインディング・ソフトウェアを追加でインストールする必要があります。

代替のJavaバインディングとして、JavaHLを使用できます。これには、Subversionの作成者によって開発と保守が行われているという利点があり、広範なプロトコル(http、https、file、svn、svn+ssh)経由でリポジトリにアクセスできます。JavaHLバインディングを使用するには、JDeveloperとは別にSubversionクライアント・ソフトウェアをインストールする必要があります。インストールすると、JDeveloperでJavaHLとSVNKitのクライアント・オプションを選択できるようになります。

Subversionクライアント・ソフトウェアをインストールするには、次のようにします。

1. Subversionのインストーラ(svn-1.3.2-setup.exe)をhttp://subversion.apache.org/から(c:\downloadsなどに)ダウンロードします。

2. インストーラを実行して、Subversionクライアントを便利な場所(c:\subversionなど)に置きます。コンピュータを再起動します。

この手順では、オペレーティング・システムがWindowsであると仮定しています。Windows以外の環境の場合は、オペレーティング・システムのパッケージ管理システムのドキュメントを調べて、ベンダー提供のSubversionクライアントにJavaHLが含まれていることを確認してください。

これまでのインストールを確認するために、コマンド・プロンプトを開いてsvn helpと入力します。サブコマンドのリストが表示されます。表示されない場合は、クライアント・ソフトウェアがインストールされた場所のbinディレクトリ(この例では、c:\subversion\bin)がシステム・パスに含まれていることを確認します。

JavaHLバインディング・ソフトウェアをインストールするには、次のようにします。

1. JavaHLバイナリのインストーラ(svn-win32-1.3.2_javahl.zip)をhttp://subversion.apache.org/から(c:\downloadsなどに)ダウンロードします。

2. WinZipまたは同様のツールを使用して、libsvnjavahl-1.dllファイルをsvn-win32-1.3.2_javahl.zipからSubversionクライアントをインストールしたbinディレクトリ(この例では、c:\subversion\bin)に抽出します。

3. インストーラを実行して、Subversionクライアントを便利な場所(c:\subversionなど)に置きます。コンピュータを再起動します。

4. JDeveloperを起動または再起動します。

6.3.1.1 プロキシ・サーバー経由のSubversionリポジトリへの接続方法

プロキシ・サーバー経由でSubversionリポジトリに接続する場合は、まずSubversionクライアント・ソフトウェアを別途インストールする必要があります。

Subversionクライアント・ソフトウェアをインストールすると、WindowsのApplication DataディレクトリにSubversionサブディレクトリが作成されます。Application Dataディレクトリを見つけるには、c:/プロンプトでcd %APPDATA%と入力します。次に、Subversionサブディレクトリを開きます。(Linuxでは、このサブディレクトリは~/.subversionになります。~はホーム・ディレクトリを表します。)

Subversionサブディレクトリには、serversという名前のファイルがあります。このファイルをテキスト・エディタで開いて、[global]セクションを検索します。コメント・マーカー(#)をhttp-proxy-host行から削除して、使用するプロキシ・サーバーの詳細情報でプレースホルダのプロキシ情報を上書きします。コメント・マーカー(#)をhttp-proxy-port行から削除して、プロキシ・サーバーのポート情報でプレースホルダのポート情報を上書きします。特定のURLを除外してプロキシ・サーバーを使用しないようにする場合は、コメント・マーカー(#)をhttp-proxy-exceptions行から削除して、除外するURLでプレースホルダのURLを上書きします。

他にもプロキシ・サーバーを使用する場合は、http-proxy-host行とhttp-proxy-port行を追加して、詳細情報を記述します。

Subversionで使用されるすべてのhttp方式がプロキシ・サーバーでサポートされていることが重要です。一部のプロキシ・サーバーでは、PROPFIND、REPORT、MERGE、MKACTIVITY、CHECKOUTがデフォルトではサポートされていません。プロキシ・サーバーを使用してSubversionリポジトリにアクセスする際に問題が発生する場合は、これらのhttp方式がサポートされるように設定を変更するようにサーバーのシステム管理者に依頼してください。

6.3.1.2 インストールの確認方法

JDeveloperで、Subversionをバージョニング・システムとして選択します(「バージョニング」→「構成」→「Subversion」)。

Subversionのメイン・プリファレンス・ページを開いて(「ツール」→「プリファレンス」→「バージョニング」)、必要なクライアント・インストールが使用可能であることを確認します。複数がリストされている場合は、使用するものを1つ選択します。

重要: この後に、更新センター(Oracleの公式拡張機能および更新)からJDeveloper Subversion拡張機能の更新を受け入れると、以前に代替クライアントを選択していた場合でも、クライアント・プリファレンスがSVNKitにリセットされます。

6.3.1.3 Subversionリポジトリの作成方法

ほとんどの場合、チームのSubversionリポジトリに接続します。プロジェクトおよびアプリケーションを開発するときは、Subversionリポジトリからファイルをチェックアウトし、変更してからチェックインします。Subversionを使用する場合、これが最も一般的で推奨される方法です。

ただし、インストールによっては、JDeveloperを使用して、ローカルのファイル・システムにSubversionリポジトリを作成する必要が生じることがあります。このとき、リポジトリへの接続も同時に作成されます。

JDeveloperでは、file:///プロトコルを使用して、新しく作成されたリポジトリへのアクセスが試みられます。JDeveloperとともにインストールされるSubversionクライアント(SVNKit)では、file:///プロトコルがサポートされています。file:///プロトコルがサポートされていないSubversionクライアントを使用する場合は、別のアクセス方法(http://、https://、svn://またはsvn+ssh://)を使用する必要があります。設定方法はSubversionのドキュメントを参照してください。

Subversionリポジトリを作成するには、次のようにします。

1. 「バージョニング」→「ローカル・リポジトリの作成」を選択します。
ローカル・リポジトリの作成がサポートされていないインストール方法の場合は、エラー・メッセージが表示されます。それ以外の場合は、「Subversionリポジトリの作成」ダイアログが開きます。

2. 「Subversionリポジトリの作成」ダイアログの作業を完了します。
ダイアログ使用時のヘルプを表示するには、[F1]を押すか「ヘルプ」をクリックします。

Subversionリポジトリを参照するには、次のようにします。

1. バージョニング・ナビゲータでSubversionリポジトリへの接続を開きます。

2. フォルダをダブルクリックし、内容を表示します。

3. 要素を右クリックし、使用可能な操作を表示します。

6.3.1.4 Subversion接続の作成および編集方法

JDeveloperからSubversionリポジトリを使用する前に、リポジトリへの接続を作成しておく必要があります。なんらかの理由で接続の詳細が変更された場合は、後で編集できます。

通常は、チームまたはバージョン・コントロールの管理者から、Subversion接続の詳細(サーバー名、ユーザーID、パスワードなど)を入手します。Subversionリポジトリへの接続を作成する前に、これらの詳細を入手しておく必要があります。

Subversion接続を作成するには、次のようにします。

1. バージョニング・ナビゲータ(「表示」→「チーム」→「バージョニング・ナビゲータ」)で、Subversionノードを右クリックし、「新規リポジトリ接続」を選択します。
「Subversion接続の作成」ダイアログが開きます。このダイアログ使用時のヘルプを表示するには、[F1]を押すか「ヘルプ」をクリックします。

2. Subversionリポジトリの場所のURLを入力します。

3. オプションで、接続の名前を入力します。

4. Subversionリポジトリがパスワードで保護されている場合は、ユーザー名とパスワードを入力します。

5. Subversionリポジトリへの接続をテストする場合は、「接続のテスト」ボタンをクリックします。結果は「ステータス」領域に表示されます。

6. 接続を完了するには、「OK」をクリックします。

Subversion接続を編集するには、次のようにします。

1. Subversionナビゲータ(「表示」→「チーム」→「バージョニング・ナビゲータ」)で、Subversion接続名を右クリックし、「プロパティ」を選択します。
「Subversion接続の編集」ダイアログが開きます。このダイアログ使用時のヘルプを表示するには、[F1]を押すか「ヘルプ」をクリックします。

2. 必要な変更を行って「OK」をクリックします。

6.3.1.5 Subversionリポジトリ内容の表示方法

Subversionリポジトリの現在の内容は、バージョニング・ナビゲータで表示できます。選択したSubversion接続の下のノードを展開すると、Subversionリポジトリの構造とファイルの内容が表示されます。

対応するポップアップ・メニューから「開く」を選択すると、Subversionリポジトリ・ファイルの読取り専用バージョンを表示できます。これにより、ローカル・バージョンをチェックアウトまたは更新した後でSubversionリポジトリ内のファイルに対して行われた変更内容を確認できます。

バージョニング・ナビゲータから表示可能なSubversionリポジトリ内のフォルダには、次の操作が用意されています。

新規

新規ギャラリを開き、アプリケーション、接続、プロジェクトおよび他のエンティティを作成できます。

新規リモート・ディレクトリ

「ディレクトリの作成」ダイアログを開き、右クリックした要素のURLに関連付ける新規ディレクトリを作成できます。

削除

確認ダイアログを表示せずに、選択した要素をJDeveloperビューから即時削除します。慎重に使用してください。

チェックアウト

デフォルトでは、「Subversionからのチェックアウト」ダイアログを開きます。

様々なバージョン・コントロール・システムに応じてJDeveloperを構成した場合、「チェックアウト」を選択すると、選択したバージョン・コントロール・ソフトウェア用のチェックアウト・ダイアログが開きます。

6.3.1.6 Subversionリポジトリのファイルのチェックアウト方法

Subversionでプロジェクトの作業を開始するときは、作業するファイルをチェックアウトします。このとき、Subversionリポジトリからアプリケーション全体をチェックアウトすることをお薦めします。これにより、ローカル作業領域でそのアプリケーションのすべてのファイルにアクセスできます。Subversionは条件モジュールを使用して、チェックアウトが推奨されるアプリケーションを参照します。

注意:

Subversionには「チェックイン」手順がないため、更新したファイルをチェックインしたり、次にそのファイルでの作業が必要になった場合に再度チェックアウトしないようにしてください。かわりに、ファイルのローカル・コピーで作業を完了した後、それをSubversionリポジトリにコミットしてファイルを最新の状態に保ちます。

ファイルをチェックアウトした後に、他の開発者がSubversionリポジトリにコミットした変更をローカルのコピーに組み込むには、ローカルのコピーを更新します。

Subversionのファイルをチェックアウトすると、Subversionリポジトリからローカル・マシンの新しい場所(ユーザーが指定します)にファイルがコピーされます。Subversionの「作業用コピー」はこの場所とこの場所内のファイルで構成されます。

Subversionリポジトリからモジュールをチェックアウトするには、次のようにします。

1. バージョニング・ナビゲータで、リポジトリ・ノードまたはチェックアウトするファイルが含まれたノードを選択します。

2. 「バージョニング」→「チェックアウト」を選択します。
Subversionリポジトリに現在接続されていない場合は、接続できるように「Subversion接続の作成」ダイアログが表示されます。

「Subversionからのチェックアウト」ダイアログが表示されます。ダイアログの使用時に詳細を参照するには、[F1]を押すか「ヘルプ」をクリックします。

3. ダイアログが表示したSubversion接続が正しい接続であることを確認します(複数のSubversion接続またはリポジトリがある場合)。

4. チェックアウトするアプリケーション・ファイルが含まれたSubversion接続のパスを参照します。

5. チェックアウトしたファイルをコピーするコピー先を作業領域に入力するか、「参照」をクリックして、ローカルの作業領域にナビゲートします。

6. チームで使用する場合は、オプションで特定のタグをチェックできます。

7. このSubversionモジュールに含まれるフォルダ内のファイルをチェックアウトする場合、必ず「深さ」を選択してください。
すべてを選択したら、「OK」をクリックします。

6.3.1.7 Subversionリポジトリのファイルの更新方法

作業をしてきたファイルをSubversionリポジトリ内のリビジョンで最新状態にする場合には、次の手順を使用します。

作業用コピーに更新操作を実行することをお薦めします。

「作業用コピーの更新」を使用すると、JDeveloperアプリケーション・ナビゲータで使用しているアプリケーションでどのノードが有効であるかとは関係なく、チェックアウトした作業用コピー内のすべてのファイルが更新されます。もう1つの方法は「更新」の選択です。この場合、アプリケーション・ナビゲータで選択したフォルダまたはファイル(および任意の子フォルダまたは子ファイル)のみが更新されます。

作業用コピーを更新するには、次のようにします(推奨)。

1. アプリケーション・ナビゲータで、作業用コピーに属するナビゲータ・ノードまたはファイルを選択します。

2. 「バージョニング」→「作業用コピーの更新」を選択します。
「作業用コピーの更新」ダイアログが表示されて、作業用コピーのフォルダがリストされます。

3. 表示されているフォルダが、更新する作業用コピーの正しいフォルダであることを確認します。正しくない場合は、ダイアログを取り消して、手順1からやりなおします。

4. 必要に応じて「作業用コピーの更新」ダイアログのオプションを設定します。
オプションの詳細を参照するには、[F1]を押すか「ヘルプ」をクリックします。

5. Subversionリポジトリの作業用コピーを更新するには、「OK」をクリックします。

また、個々のファイルを更新することもできます。ただし、この方法では、前回のチェックアウト以降に他のチーム・メンバーによって変更された可能性のあるすべてのファイルを更新できないというリスクもあります。

個々のファイルを更新するには、次のようにします。

1. アプリケーション・ナビゲータで、更新するファイルを選択して、「バージョニング」→「更新」を選択します。
「リソースの更新」ダイアログが表示されて、ファイルがリストされます。

2. 必要に応じて「リソースの更新」ダイアログのオプションを設定します。
オプションの詳細を参照するには、[F1]を押すか「ヘルプ」をクリックします。

3. Subversionリポジトリからリストされたファイルを更新するには、「OK」をクリックします。

6.3.1.8 JDeveloperファイルのSubversionへのインポート方法

JDeveloper内で作成した(またはJDeveloperに持ち込んだ)ファイルは、Subversionによる管理を使用する前に、Subversionリポジトリにインポートしてから、チェックアウトする必要があります。

JDeveloperの既存のプロジェクトやアプリケーションをSubversionにインポートするには、次のようにします。

1. 「アプリケーション・ナビゲータ」で、Subversionにインポートするアプリケーションまたはプロジェクトを選択します。

2. 「バージョニング」→「ファイルのインポート」を選択します。
Subversionへのインポート・ウィザードが開きます。

3. ウィザードを完了します。ウィザード使用時のヘルプを表示するには、[F1]を押すか「ヘルプ」をクリックします。
インポートされたファイルのチェックアウトをウィザードで許可した場合は、横にバージョン番号が付いたファイルが「アプリケーション・ナビゲータ」に表示されます。ファイルを表示する前に、表示をリフレッシュすることが必要になる場合があります。

インポートされたファイルのチェックアウトをウィザードで許可しなかった場合は、ファイルの作業を始める前に、この時点でファイルをチェックアウトする必要があります。

6.3.1.8.1 アプリケーションのSubversionへのインポート方法

JDeveloperの「アプリケーションのバージョニング」機能を使用して、Subversionにアプリケーション全体をインポートすることもできます。

「アプリケーションのバージョニング」を使用してファイルをインポートするには、次のようにします。

1. バージョン管理に追加するアプリケーションを選択します。

2. 「バージョニング」→「アプリケーションのバージョニング」を選択します。

3. 「アプリケーションのバージョン」ダイアログで、Subversionリポジトリを選択します。これにより、「Subversionへのインポート」ウィザードが開きます。

「アプリケーションのバージョニング」機能を使用してファイルをSubversionにインポートすると、Subversionによって2つのディレクトリが作成されます。1つは作業領域として、もう1つはバックアップ・ディレクトリとして作成されます。

例: Catalogという名前のアプリケーションを新規作成した後に、「バージョニング」→「アプリケーションのバージョニング」→「Subversion」を選択します。必ず「オプション」ページで「チェックアウトを実行」を選択してからウィザードを終了してください。

ウィザードが完了すると、Subversionでアプリケーションのソース・ディレクトリとして指定したローカル・ディレクトリを参照します。リストされたCatalog.svn-import-backupとCatalog.svn-import-workareaの2つのディレクトリが表示されます。

JDeveloper(およびSubversion)は、Catalog.svn-import-workareaディレクトリをファイルのアクセス、チェックアウト/チェックイン、および他のアクティビティに使用します。これらのディレクトリ内のファイルは、JDeveloperおよびSubversionの外部から編集、移動または操作しないでください。

6.3.2 Subversionでのファイルの使用方法

設定を完了した後、Subversionでの作業は、ファイルのチェックアウト、JDeveloperでのファイルの編集、変更後のファイルのチェックインが中心になります。また、自分の変更とチームの他のメンバーの変更の競合を解決することが必要になる場合もあります。Subversionの管理下からファイルの出し入れが行われる場合もあり、さらに不具合、お客様の要求および他の特性を追跡するために特定のバージョンに関連付けられたファイルの特別なプロパティを使用する場合もあります。

6.3.2.1 ファイルのSubversionコントロールへの追加方法

ローカル作業用コピーの一部である新しいファイル(つまり、バージョニングされてSVNリポジトリからチェックアウトされたアプリケーション)をJDeveloperで作成するときには、JDeveloperのSubversion機能を使用する前に、Subversionの管理下にファイルを追加してコミットしておく必要があります。JDeveloperの「プリファレンス」メニューで、この作業を自動的に実行するように設定することをお薦めします。

コミット時に新規ファイルを追加するには、次のようにします。

1. 「ツール」→「プリファレンス」→「バージョニング」→「一般」を選択します。

2. 「作業用コピーのコミット時に自動的に新規ファイルを追加」を選択します。

3. 「OK」をクリックします。

個々のファイルをSubversionの管理下に置くこともできます。

個々のファイルをSubversionの管理下に置くには、次のようにします。

1. アプリケーション・ナビゲータでファイルを選択し、「バージョニング」→「追加」を選択します。
ここでは、自分の作業ファイルまたはJDeveloperで使用するアプリケーションやプロジェクトをファイルとして選択できます。

「ソース・コントロールに追加」ダイアログが開いて、ファイルがリストされます。

2. Subversionの管理下にファイルを追加するには、「OK」をクリックします。
「アプリケーション・ナビゲータ」に黒い十字とともにファイルが表示されるようになります。これは、ファイルがJDeveloperの作業領域に保存されているが、Subversionリポジトリにはまだコミットされていないことを示しています。バージョン管理して他のユーザーからアクセスできるようにするには、Subversionにファイルをコミットする必要があります。

3. Subversionリポジトリにファイルをコミットするには、アプリケーション・ナビゲータでファイルを選択して、「バージョニング」→「コミット」を選択します。
「リソースのコミット」ダイアログが表示されて、ファイルがリストされます。

4. バージョニングのコメントを「コメント」ボックスに追加します。
特定のファイルのバージョンのリストを表示すると、これらのコメントが表示されます。

5. Subversionリポジトリにファイルをコミットするには、「OK」をクリックします。
「アプリケーション・ナビゲータ」にオレンジ色の点とともにファイルが表示されるようになります。これは、ファイルがSubversionリポジトリに認識されていて、最新状態にあることを示しています。

6.3.2.2 変更セットの使用方法

変更セット(または変更リスト)は、各変更リストに対するグループ操作を有効化するために作業用コピー・ファイルに適用可能な重要ラベルです。変更セットへのファイル追加の背景にある概念は、ディレクトリへのファイルのソートと似ていますが、変更リストは動的に作成可能であり、ラベルは各ファイルに適用され、これらはファイル・システム階層内のレベルとは関係ありません。これにより、変更セット内のすべてのファイルを単一グループとして処理できます。たとえば、3つの異なるファイルの編集が必要な単一バグ修正を行う場合、3つのファイルをすべて変更セットに追加し、JDeveloperの「保留中の変更」ウィンドウでこれらを単一論理ユニットとして追跡できます。

Subversionを使用すると、ファイルを名前付き変更セットに手動で、または自動的に関連付けることができます。変更セットへの追加はメニュー・システムを介して行います。JDeveloperによって送信中の変更が検出された場合、デフォルトのアソシエーションを介して自動追加を行うことも可能です。

名前付き変更セットの変更は「保留中の変更」ウィンドウのビューで参照できます。ここから、変更セットを操作し、関連する変更をリポジトリをコミットできます。

選択したファイルを新規変更セットに追加するには、次のようにします。

- ファイルを「保留中の変更」ウィンドウから選択し、「バージョニング」→「追加先」→「新規変更セット」を選択します。

ファイルを変更セットに追加するには、次のようにします。

1. 「保留中の変更」ウィンドウで、既存の変更セットに追加するファイルを選択し、右クリックします。

2. 「追加先」を選択し、既存の変更セットを選択します。

3. ダイアログに表示されている既存の変更セットの1つを選択するか、「新規変更セット」を選択し、このファイルが含まれる新規変更セットを作成します。

4. 「OK」をクリックします。

6.3.2.2.1 変更セットの編集

JDeveloperでは、インストールしたバージョン・コントロール・システムごとにデフォルトの名前なし変更セットが作成され、別の変更セットをデフォルトとして指定するまではこの変更セットが使用されます。このデフォルトの変更セットを含む個別変更セットの内容およびステータスを変更するには、任意の変更セットを右クリックし、次のいずれかを選択します。

編集

選択した変更セットの内容を変更します。

削除

選択した変更セットを保留中の変更から削除します。変更セットに関連するファイルは削除しません。

デフォルトに設定

選択した変更セットを将来の操作用のデフォルトとして設定します。新しく作成および編集されたすべてのファイルが、デフォルトを変更するかファイルを別の変更セットに手動で追加するまでは、この変更セットの一部になります。

6.3.2.3 ファイルの履歴の表示方法

この操作は、履歴ビューアを開いてSubversionファイルの履歴を表示する場合に行います。

ファイルの履歴を表示するには、次のようにします。

- アプリケーション・ナビゲータでファイルを選択し、ポップアップ・メニューから「バージョニング」→「バージョン履歴」を選択します。
履歴ビューアの使用中に詳細を表示するには、[F1]を押すか「ヘルプ」をクリックします。

6.3.2.4 ファイルのSubversionリポジトリへのコミット方法

これまで作業してきたファイルの最新バージョンでSubversionリポジトリを更新し、同時に新規ファイル追加および不要ファイルの削除をSubversionリポジトリに対して行うには、次の手順を行います。

個々のファイルまたは作業用コピーのコンテキストに対してコミット操作を行えます。

コミットしようとする個々のオブジェクトに、コミットされていない親オブジェクトがある場合は、親オブジェクトをまずコミットする必要があります。別の方法として、オブジェクトが所属している作業用コピーをコミットすることもできます。この場合は、コミットされていないすべてのオブジェクトがコミットされます。

また、変更セットを使用すると、アプリケーション全体内の特定のサブプロジェクトまたはタスクに関連するすべてのファイルを確実にコミットする上で役に立つ、ファイルのグループを管理することもできます。

「アプリケーション・ナビゲータ」または「保留中の変更」ウィンドウに表示されている個々のファイルをコミットするには、次のようにします。

- ファイルを選択し、「バージョニング」→「コミット」を選択します。
「リソースのコミット」ダイアログが表示されて、ファイルがリストされます。必要に応じて「リソースのコミット」ダイアログのオプションを設定します。

オプションの詳細を参照するには、[F1]を押すか「ヘルプ」をクリックします。リストに表示されたファイルをSubversionリポジトリにコミットするには、「OK」をクリックします。

「アプリケーション・ナビゲータ」で作業用コピーをコミットするには、次のようにします。

1. 作業用コピーに属するナビゲータ・ノードかファイルを選択します。

2. 「バージョニング」→「作業用コピーのコミット」を選択します。

オプションの詳細を参照するには、[F1]を押すか「ヘルプ」をクリックします。作業用コピーの内容で、Subversionリポジトリを更新するには、「OK」をクリックします。

「作業用コピーのコミット」を使用すると、JDeveloperアプリケーション・ナビゲータで使用しているアプリケーションでどのノードが有効であるかとは関係なく、チェックアウトした作業用コピー内のすべてのファイルが更新されます。もう1つの方法は「コミット」の選択です。この場合、アプリケーション・ナビゲータで選択したフォルダまたはファイル(および任意の子フォルダまたは子ファイル)のみがコミットされます。

さらに、「保留中の変更」ウィンドウから、作業用コピーをコミットできます。

「保留中の変更」ウィンドウで作業用コピーをコミットするには、次のようにします。

1. 「保留中の変更」ウィンドウを送信変更モードにします。
「保留中の変更」ウィンドウの詳細を参照するには、[F1]を押すか「ヘルプ」をクリックします。

2. コミットする作業用コピーからファイルを選択します。

3. 「バージョニング」→「作業用コピーのコミット」を選択します。

6.3.2.4.1 Oracleチーム・プロダクティビティ・センター拡張機能を使用した作業アイテムIDの保存

Oracleチーム・プロダクティビティ・センターを使用する場合、作業アイテムIDはコミット時にコメント・ダイアログでタグとして自動的に保存されます。

6.3.2.5 Subversionでのテンプレートの使用方法

多くのチーム環境では、開発者がファイルのチェックイン時にコメントを入力する必要があります。これらのコメントには、バグ・レポート番号、他のファイルへの依存性、リポジトリにコミットされるファイルに関連して格納する他の説明情報などがあります。

JDeveloperでは、このようなコメントに使用するテンプレートを作成して選択できます。テンプレートは、「コミット」メニューから使用できます。

新規テンプレートを作成する手順は、次のとおりです。

1. 「ツール」→「プリファレンス」→「バージョニング」→「Subversion」→「コメント・テンプレート」を選択します。

2. 「追加」をクリックします。

テンプレートを選択する手順は、次のとおりです。

1. 「テンプレートまたは前のコメントの選択」をクリックします。

2. リストからテンプレートを選択します。

3. 「OK」をクリックします。

コミットするファイルにコメントを作成する手順は、次のとおりです。

1. 「コメント」ボックスをクリックして選択します。

2. コミットするファイルに作成するコメントを入力します。

3. 「OK」をクリックします。

6.3.2.6 ファイルの以前の状態への回復方法

「回復」コマンドを使用して、次のことを行います。

- ファイルのコンテンツに対するローカルな変更を元に戻します。

- まだコミットされていない追加されたファイルのステータス変更を、「未追加」に戻します。

- 「削除をスケジュール済」のファイル(「保留中の変更」ウィンドウ内)がSubversionリポジトリから削除されないようにします。

ファイルを回復するには、次のようにします。

1. アプリケーション・ナビゲータまたは「保留中の変更」ウィンドウでファイルを選択して、「バージョニング」→「回復」を選択します。
「ローカルでの変更の回復」ダイアログが表示されて、ファイルがリストされます。

ダイアログ使用時のヘルプを表示するには、[F1]を押すか「ヘルプ」をクリックします。

2. リストされているファイルを回復するには、「OK」をクリックします。

6.3.2.7 ファイルとSubversionのベース・リビジョンの置換方法

ベース・リビジョンとファイルを置き換える場合には、次の手順を使用します。ベース・リビジョンとは、現在作業しているリビジョンの基礎となったリビジョンです。

Subversionのベース・リビジョンでファイルを置き換えるには、次のようにします。

1. アプリケーション・ナビゲータで、置き換えるファイルを選択します。

2. 「ファイル」→「ベース・リビジョンとの置換」を選択します。「ベース・リビジョンとの置換」ダイアログが表示されます。置換するファイルがダイアログに表示されていることを確認します。

3. 「OK」をクリックし、ファイルを置換します。

6.3.2.8 Subversionでのファイルの比較方法

Subversionの管理下にあるファイルを同じファイルの他のリビジョンや他のファイルと比較するには、次の手順を使用します。

ファイルのリビジョンを比較するには、次のようにします。

1. ファイルのポップアップ・メニューで、「比較」を選択します。

2. 「前のリビジョン」、「最新のリビジョン」、または「他のリビジョン」を選択します。
差分がない場合は、メッセージが表示されます。差違がある場合は、「履歴」ツールの「比較」パネルにリビジョンが表示されます。

別のファイルと比較するには、次のようにします。

1. ファイルのポップアップ・メニューで、「比較」→「その他のファイル」を選択します。
「比較対象のファイルを選択」ダイアログが開きます。

2. 比較対象のファイルを選択します。
ファイルは、「履歴」ツールの「比較」パネルに表示されます。

2つのファイルを比較するには、次のようにします。

1. 「アプリケーション・ナビゲータ」で2つのファイルを選択します。

2. いずれかのファイルのポップアップ・メニューで、「比較」→「相互」を選択します。
ファイルは、「履歴」ツールの「比較」パネルに表示されます。

「履歴」ツールの「比較」パネルを非表示にして(後で表示)、JDeveloperで他のパネルを表示できます。

6.3.2.9 ファイル・バージョン間の競合の解決方法

ファイルの自分のコピーとSubversionリポジトリとの間に競合がある場合は、影響があるファイルの横のアイコンに感嘆符が表示されます。そのようなファイルは、Subversionリポジトリに送信できません。この問題を解決するには、次のいずれかを行います。

- 競合のないバージョンのファイルに戻します。

- JDeveloperのマージ・ツールを使用して競合を解決します。

- 変更されない場合(通常この操作が必要になるのは、バイナリ・ファイルの場合のみ)でも、Subversionコントロール・システムに、競合が解決されたことを通知します(「バージョニング」→「解決済をマーク」)。

この操作が必要な可能性があるもう1つのケースは、マージ・ツールを使用するかわりに、ファイルで競合を自分で解消した場合です。これは、ファイルをローカルでマージするというより一般的な解決方法ではなく、サーバーでファイルをマージすることを選択した場合などです。

競合のないバージョンのファイルに戻すには、次のようにします。

- アプリケーション・ナビゲータでファイルを選択し、「バージョニング」→「回復」を選択します。

マージ・ツールを使用して競合を解決するには、次のようにします。

1. アプリケーション・ナビゲータでファイルを選択し、「バージョニング」→「競合の解決」を選択します。
「マージ」タブが表示された状態でファイルが開かれ、マージ・ツールが表示されます。

2. マージ・ツールを使用して、競合を解決します。
マージ・ツールの使用中にヘルプを表示するには、[F1]を押すか「ヘルプ」をクリックします。

ファイルを変更していない場合でも、競合が解決されたことを通知するには、次のようにします。

- アプリケーション・ナビゲータでファイル(通常はバイナリ・コンテンツのファイル)を開いて、「バージョニング」→「解決済をマーク」を選択します。

6.3.2.10 Subversionでの競合の解決方法

この操作は、2つのリビジョンのファイルをマージする場合に使用します。リビジョンに競合する内容が含まれている場合は、「保留中の変更」ウィンドウで、競合が通知され(送信ステータスは「競合」または「マージで競合します」)、「競合の解決」ボタンがアクティブになります。

内容が競合する2つのリビジョンをマージするには、次のようにします。

1. 「保留中の変更」ウィンドウの「送信」タブで、競合しているリビジョンを選択し、「競合の解決」ボタンをクリックします。(アプリケーション・ナビゲータでリビジョンを選択することもできます。)

2. マージ・ツールが(ファイル・エディタの「マージ」タブとして)開きます。
マージ・ツールの使用中にヘルプを表示するには、[F1]を押すか「ヘルプ」をクリックします。

マージ・ツールには3つのパネルがあります。左側のパネルには、リポジトリ内のバージョンの内容が表示されます。右側のパネルには、最新のローカル・バージョンの内容が表示されます。中央のパネルには、マージの結果が表示されます。パネル間のマージンには、各競合を解決するために提示された処理を示す記号が表示されます。

3. マージン記号のツールチップを読んで、競合を解決するために提示された処理を確認します。
詳細な処理は、マージン記号のポップアップ・メニューから選択できます。

4. それぞれに提示された処理を実施して競合を解決します。
最初に提示された処理を受け入れると、追加処理が提示される場合があります。

中央のパネルに入力して、そのパネルの内容を変更することもできます。

5. マージを完了するには、マージ・ツール上の「変更の保存」ボタン(JDeveloperの「保存」オプションではありません)をクリックして変更内容を保存します。

6.3.2.11 Subversionでのプロパティ競合の解決方法

Subversionを使用すると、フォルダまたはファイルに関連付けられたプロパティを作成および保存できます。これらのプロパティには、名前および値文字列があります。

このような競合は、Subversionの「ツリー競合の解決」機能を使用して解決できます。

Subversionのプロパティ競合を解決するには、次のようにします。

1. アプリケーション・ナビゲータで、Subversionの管理下にありプロパティが競合している要素を選択します。

2. 右クリックし、「バージョニング」→「ツリー競合の解決」を選択します。

これにより、バージョン比較の場合と同じように、プロパティが競合するバージョンが隣接する2つのペインに表示されます。

競合を解決するには、「Subversionプロパティ」ウィンドウで変更を行います。

6.3.2.12 マージ・ウィザードの使用方法

マージ・ウィザードは、JDeveloperでSubversionのマージ・トラッキングをサポートする上で役に立ちます。Subversionのマージ・トラッキングとは基本的に、マージ内容をユーザーのかわりにSubversionが記録する機能です。マージ・ウィザードを使用すると、特定のリビジョン、ブランチまたは変更セットなどのマージ対象のコンポーネントを簡単に選択できます。

マージ・ウィザードには、様々なオプションが用意されています。

選択したリビジョン範囲のマージ

たとえば、バグ修正のグループを別のリリース・ブランチにバックポートする場合など、リビジョンの範囲を別のブランチにマージする場合、これを選択します。

ブランチの再統合

通常、たとえば、機能ブランチでの作業を完了した後に変更をトランクに再統合する場合など、ブランチでの変更をトランクにマージし戻す場合に使用します。

2つの異なるツリーのマージ

2つのブランチ間の差異を作業用コピーにマージする場合、これを選択します。

特定のリビジョンのマージのブロック

特定のリビジョンをトランクにマージする準備がまだ整っていないか、このマージが適切ではない場合、これを選択します。

6.3.2.13 ブランチおよびタグの使用方法

開発(「トランク」)のメイン・ラインの独立したファイルに対する作業を行う場合、ブランチを作成できます。同じ機能を使用して、タグ、特定の時点での開発ステータスを反映したファイルの集合体も作成できます。

ブランチで行ってきた作業を開発のメイン・ラインに戻す場合は、リビジョンのマージ機能を使用して、処理を開始できます。この機能では、2つのリビジョンの内容を比較し、現在の作業用コピーへ差異を適用します。1つのリビジョンの変更を別のリビジョンにコピーする場合も、この機能を使用できます。

作業用コピーを別のブランチに基づいて変更する場合、スイッチ機能を使用できます。スイッチ機能は、ブランチ作成の一部として使用することも、独立して使用することもできます。

ブランチまたはタグを作成するには、次のようにします。

1. 続行する前に、ファイルをSubversionにコミットしたことを確認してください。

2. 「アプリケーション・ナビゲータ」で、ブランチまたはタグを作成しようとする開発ラインにあるファイルまたはタグを選択します。

3. 「バージョニング」→「ブランチ/タグ」を選択します。

4. 「ブランチ/タグ」ダイアログの作業を完了します。
ダイアログ完了時のヘルプを表示するには、[F1]を押すか「ヘルプ」をクリックします。

マージ機能を使用する(つまり、2つのリビジョンを比較して、作業用コピーに結果を適用する)には、次のようにします。

1. 「アプリケーション・ナビゲータ」で、開始リビジョン(つまり、比較対象にするリソース)にあるプロジェクトまたはファイルを選択します。

2. 「バージョニング」→「マージ」を選択します。

3. 「マージ」ダイアログの作業を完了します。
ダイアログ完了時のヘルプを表示するには、[F1]を押すか「ヘルプ」をクリックします。

リポジトリ内の別の場所に基づくものに作業用コピーを変更するには、次のようにします。

1. 「アプリケーション・ナビゲータ」で、現在の作業用コピーにあるプロジェクトまたはファイルを選択します。

2. 「バージョニング」→「切替え」を選択します。

3. 「切替え」ダイアログの作業を完了します。
ダイアログ完了時のヘルプを表示するには、[F1]を押すか「ヘルプ」をクリックします。

6.3.2.14 Subversionプロパティの追加および表示方法

Subversionを使用すると、アプリケーション・ナビゲータでファイル、フォルダおよび他のリソースなどの様々なレベルの要素にプロパティを定義および追加できます。これらのプロパティを定義し、共通点のあるファイルまたはフォルダをトラッキングする方法としてこれらを使用できます。たとえば、新しく追加した機能に特定のSubversionプロパティを関連付けることができます。このSubversionプロパティを持つすべてのファイルまたはフォルダを表示することにより、この機能に関連付けられたすべてのファイルを表示できます。これには、HTMLファイル、JavaScriptファイル、クラス定義ファイル、またはこの新規機能のアプリケーションへの追加に関する他の任意の要素などがあります。

自分のチームがSubversionプロパティを以前から使用している場合、「Subversionプロパティの表示」メニューを使用して、選択したSubversionプロパティを使用するすべての要素のリストを表示できます。また、異なるバージョン間でSubversionプロパティを比較することもできます。

Subversionプロパティのリストを表示するには、次のようにします。

1. アプリケーション・ナビゲータで、Subversionの管理下にある要素を選択します。

2. 「バージョニング」→「Subversion」→「Subversionプロパティの表示」を選択します。

特定の側面(新規機能やバグ修正など)をトラッキングおよび管理するためにプロジェクトに新規プロパティが必要な場合、新規プロパティを追加することもできます。

Subversionプロパティを新しく追加するには、次のようにします。

1. アプリケーション・ナビゲータで、Subversionの管理下にある要素を選択します。

2. 「バージョニング」→「Subversion」→「Subversionプロパティの追加」を選択します。

3. プロパティの値を入力し、「OK」をクリックします。Subversionプロパティおよびその使用方法の例は、次の項を参照してください。

6.3.2.14.1 Subversionプロパティの例

Subversionプロパティを追加または編集する場合、ダイアログでは、次の要素を選択または指定できます。

リソース・ファイル

このプロパティが適用されるファイル(またはフォルダや他のリソース)。この値を変更するには、異なるファイルまたはリソースを選択します。このプロパティをアプリケーション・レベルまたはプロジェクト・フォルダ・レベルで追加する場合、ファイルではなくフォルダを参照するようにリソース・ファイル・エントリを編集してください。

プロパティ名

使用可能なリストからプロパティ名を選択するか、新しい名前を入力してSubversionプロパティを新しく作成します。Subversionプロパティとしてトラックされるように、新規のプロパティ名はsvn:で始めます。

値文字列

プロパティを表示したときに、このSubversionプロパティとともに表示される文字列を入力します。たとえば、特定の不具合識別番号または提供予定の特定のリリースに特定のSubversionプロパティを関連付けることができます。

「値文字列」はプロパティによって異なる場合があることに注意してください。たとえば、svn:externalsというプロパティで、ローカル・ファイルとSVNリポジトリ内のその外部URLの間の接続を記録するとします。このプロパティの値文字列は、外部ファイルのチェックアウト先のローカル・ディレクトリとSVNリポジトリ内の外部ファイルへのURLがそれぞれ示されているテキスト文字列のペアになります。

この例では、リソース・ファイルはD:\tempで、プロパティ名はsvn:externalsだとします。値文字列(値のペア)は、次のようになります。

external_libs https://ukp16449.uk.oracle.com/repos/trunk/FOD/StoreFront.jar

これは、そのURLのSubversionリポジトリに保存されているファイルStoreFront.jarがD:\temp\external_libsにチェックアウトされることを示しています。このプロパティからポイントされる特定のファイルに「値文字列」のエントリが保存されている場合は、「値ファイル」エントリを使用します。

値ファイル

アプリケーション内で多数のリソースに同じSubversionプロパティを追加することがわかっている場合は、その値文字列をテキスト・ファイルに保存できます。「参照」をクリックし、使用する値文字列が含まれるテキスト・ファイルを選択します。

プロパティを再帰的に設定

アプリケーションまたはプロジェクト階層の現在のレベルよりも下にあるすべてのファイルおよび要素に対し、Subversionでこのプロパティを適用する場合に選択します。

6.3.2.14.2 Subversion外部プロパティとリビジョン番号の指定

リビジョン番号とともに外部プロパティを設定する場合は、値文字列に正しい書式を使用してください。svn:externalタイプのプロパティの値文字列に次のいずれかを使用すると、JDeveloperの統合Subversionを使用してExternalWebINFのリビジョンを16に設定できます。

ExternalWebINF -r 16 https://myserver.myteam.com/svn/repos/public-html/WEB-INFhttps://myserver.myteam.com/svn/repos/public-html/WEB-INF@16 ExternalWebInf

ただし、Subversion 1.4クライアントの場合、使用できるのは最初の書式のみです。

6.3.2.15 Subversionファイルのステータスの表示方法

次の手順は、Subversionのソース・コントロール下にあるファイルのコンテンツ・ステータスおよび関連するプロパティのステータスを確認する場合に使用します。ファイルのステータスをリフレッシュすることもできます。

ファイルのステータスを表示するには、次のようにします。

1. アプリケーション・ナビゲータでファイルを選択し、ポップアップ・メニューを開き、「バージョニング」→「プロパティ」を選択します。

2. 「バージョニング」タブを選択します。

表示されるステータス・ラベルは、コンテンツおよび関連するプロパティのソース・コントロール・ステータスをSubversionで記述するために使用されるステータス・ラベルです。

コンテンツの主なステータスは次のとおりです。

- 追加済 - コンテンツはソース・コントロールに追加されましたが、Subversionリポジトリにはまだコミットされていません。

- 修正済 - プロパティは、リポジトリからのコピー後にローカルで変更されています。

- 変更なし(通常) - プロパティは、Subversionリポジトリからの最終更新後に変更されていません。

- 競合 - プロパティがSubversionリポジトリから更新されたときに競合がありました。

- 削除済 - ファイル(コンテンツおよび関連するプロパティ)は、次のコミット操作でSubversionリポジトリから削除されます。

関連するプロパティの主なステータスは次のとおりです。

- 修正済 - プロパティは、リポジトリからのコピー後にローカルで変更されています。

- 変更なし(通常) - プロパティは、Subversionリポジトリからの最終更新後に変更されていません。

- 競合 - プロパティがSubversionリポジトリから更新されたときに競合がありました。

6.3.2.16 Subversionコントロール下にあるファイルのステータスのリフレッシュ方法

ファイルのソース・コントロール・ステータスは、JDeveloperのナビゲータ(アプリケーション・ナビゲータおよびチーム・ナビゲータ)に、次のようなアイコン・オーバーレイによって表示されます。

Subversionクライアント・アプリケーションの使用など、JDeveloperの外部でファイルのステータスが変更されると、新規のステータスがJDeveloperに即時に表示されない場合があります。ナビゲータに表示されるステータスをソース・コントロール・システム内のファイルのステータスと確実に一致させるために、手動リフレッシュを実行できます。

JDeveloperでファイルのステータスをリフレッシュするには、次のようにします。

- 「表示」→「リフレッシュ」を選択します。

6.3.2.17 Subversionコントロールからのファイルの削除方法

Subversionコントロールからファイルを削除する場合、JDeveloperの「削除」機能を使用します。この機能は、削除するファイルの使用方法を検索し、次に進むためのオプションが含まれたダイアログで、「安全に削除」を実行します。

Subversionの管理からファイルを削除するには、次のようにします。

1. アプリケーション・ナビゲータで、Subversionから削除するファイルを選択します。

2. 「編集」→「削除」を選択(またはファイルを右クリックして「削除」を選択)します。

3. 「安全に削除」が選択されていることを確認してください。

4. 「OK」をクリックします。
JDeveloperが削除しようとしているファイルの使用方法を検出すると、次に進むためのオプションが含まれたダイアログが表示されます。適切なオプションを選択し、「OK」をクリックします。

6.3.3 エクスポート機能の使用方法

Subversionでは、パッチを作成して適用する機能、つまりファイルの2つのリビジョンの間の変更を特定して、それらの変更を3つ目のファイルに適用する方法が提供されています。さらに、Subversionには、リポジトリ接続の詳細およびリポジトリ内のファイルをエクスポートするための管理機能も含まれています。

6.3.3.1 パッチの作成および適用方法

あるファイルの2つのリビジョン間の変更内容を記録し、その変更内容を3番目のファイルに適用するとします。これを実行するには、パッチを作成して適用します。

パッチを作成するには、次のようにします。

この手順により、ファイルのコントロール・リビジョンとローカル・リビジョン間の差分で構成されるパッチが生成されます。

1. JDeveloperで、パッチを作成するファイルを開きます。

2. 「履歴」タブをクリックします。
「履歴」ビューには、ファイルのすべてのリビジョンが表示されます。「履歴」ビュー下部の左ペインにはローカル・リビジョンの内容が表示され、右ペインにはコントロール・リビジョンの内容が表示されます。

3. パッチを作成するリビジョンの組合せを選択します。

4. ポップアップ・メニューから「パッチの生成」を選択します。
「パッチ・コンテキストの選択」ダイアログが開く場合があります。このダイアログ使用時のヘルプを表示するには、[F1]を押すか「ヘルプ」をクリックします。

「パッチの生成」ダイアログが開きます。必要に応じてダイアログを完了します。ダイアログ使用時のヘルプを表示するには、[F1]を押すか「ヘルプ」をクリックします。

パッチを適用するには、次のようにします。

1. ナビゲータで、パッチを適用するリソースを選択します。
リソースは、アプリケーション、プロジェクトまたはソース・ファイルの場合があります。

2. 「バージョニング」→「パッチの適用」を選択します。
プロジェクトにパッチを適用する場合は、「パッチ・コンテキストの選択」ダイアログが開きます。このダイアログで、プロジェクト・ファイル(.jpr)のパッチを適用するのか、またはプロジェクトの内容を更新するのかを指定する必要があります。

「パッチの適用」ダイアログが開きます。

3. 「パッチの適用」ダイアログの上部のグリッドで、ターゲット・リソースが正しく識別されていることを確認します。

4. パッチのソースを選択します。このオプションおよびこのダイアログの他のオプションの詳細は、[F1]を押すか「ヘルプ」をクリックします。

5. 「プレビュー」をクリックします。これによって、「パッチの適用: プレビュー」ウィンドウが表示されます。このウィンドウで、特定の変更を受け入れることも拒否することもできます。「パッチの適用: プレビュー」ウィンドウのオプションの詳細は、[F1]を押すか「ヘルプ」をクリックします。

6. パッチを適用するには、「OK」をクリックします。

6.3.3.2 JDeveloperからのSubversion管理ファイルのエクスポート方法

Subversionの管理下にあるJDeveloperファイルのコピーをエクスポートできます。この操作は「アプリケーション・ナビゲータ」から行えます。その場合は、Subversionの「作業用コピー」からファイルがエクスポートされます。この操作は「Subversionナビゲータ」から行うこともできます。その場合は、Subversionリポジトリからファイルがエクスポートされます。「Subversionナビゲータ」を使用してエクスポートする場合は、エクスポートするファイルのリビジョンを指定できます。ファイルをエクスポートするとは、指定したローカル・ファイルシステム・ディレクトリにファイルをコピーすることです。

Subversionの「作業用コピー」からファイルをエクスポートするには、次のようにします。

1. 「アプリケーション・ナビゲータ」で、エクスポートするファイルがあるプロジェクトを選択します。

2. 「バージョニング」→「ファイルのエクスポート」を選択します。
「ファイルのエクスポート」ダイアログが開きます。

3. 「宛先パス」ボックスで、ファイルをコピーする場所を入力または参照します。

4. ファイルをエクスポートするには、「OK」をクリックします。

Subversionリポジトリからファイルをエクスポートするには、次のようにします。

1. Subversionナビゲータで、エクスポートするファイルがあるリポジトリ・ノードまたはディレクトリを選択します。

2. 「バージョニング」→「ファイルのエクスポート」を選択します。
「ファイルのエクスポート」ダイアログが開きます。

3. 「宛先パス」ボックスで、ファイルをコピーする場所を入力または参照します。

4. ファイルの特定のバージョンをエクスポートする場合は、「リビジョンの使用」を選択して、隣のテキスト・ボックスにリビジョン番号を入力します。

5. ファイルをエクスポートするには、「OK」をクリックします。

6.3.3.3 Subversionリポジトリ接続の詳細のエクスポートおよびインポート方法

ファイルへのSubversionリポジトリ接続の詳細をエクスポートできます。接続の詳細を後でファイルからインポートすれば、Subversionリポジトリの接続を再作成できます。

Subversion接続の詳細をファイルにエクスポートするには、次のようにします。

1. Subversionナビゲータで、「Subversion」ノードを選択し、ポップアップ・メニューで「接続のエクスポート」を選択します。
「Subversion接続のエクスポート」ダイアログが開きます。

2. 接続の詳細を格納するファイルの場所と名前を入力して、「OK」をクリックします。

Subversion接続の詳細をファイルからインポートするには、次のようにします。

1. Subversionナビゲータで、「Subversion」ノードを選択し、ポップアップ・メニューで「接続のインポート」を選択します。
「Subversion接続のインポート」ダイアログが開きます。

2. インポートする接続の詳細が格納されているファイルを参照して、「OK」をクリックします。

6.4 Concurrent Version System (CVS)とOracle JDeveloperの使用

JDeveloperでは、Concurrent Versions System (CVS)のソース・コントロール機能を使用できます。CVS拡張機能をインストールした後、JDeveloperはCVSとシームレスに動作するため、JDeveloperのナビゲータおよびメニューから、CVSリポジトリへの接続、ファイルのチェックアウト、ファイルでの作業と変更内容のコミットができます。

注意:

CVSの使用方法および管理方法の詳細は、http://www.cvshome.orgにあるCVSオンライン・マニュアルを参照してください。

6.4.1 CVSとOracle JDeveloperの設定方法

一般にCVSではJDeveloperにアクセスできるファイルの共通リポジトリが使用されます。このリポジトリは、ソフトウェア・プロジェクトの開発時にユーザーおよびチームで共有します。リポジトリ内のファイルを変更するには、最初にファイルをチェックアウトし、CVSがだれがいつどのようにファイルにアクセスしたか追跡できるようにします。2人のチーム・メンバーが同時に同じファイルを編集する場合、CVSに含まれたツールがこれらの変更が競合するかどうかの判断をします。そして問題解決のために単一または包括的ファイル内の変更をマージする場合があります。最後に、CVSでは、これらの変更済ファイルをチェックインしてリポジトリに戻し、新しい内容やマージされた内容を含む最新のファイルにビルド・ツールでアクセスできるようにします。

CVSを使用して共有コンテンツを管理する前に、JDeveloperをCVSに接続する必要があります。JDeveloperの設定、チームのCVSリポジトリへの接続、ローカル・リポジトリの作成などの作業を行う必要があります。この項のトピックでは、「更新のチェック」からCVS拡張機能をダウンロードした後にJDeveloperからCVSを使用可能にするために必要なすべてのステップについて説明します。チームでCVSをすでに使用している場合は、組織でCVSがどのように実装されているかを確認してください。

CVSとJDeveloperを設定するプロセスには、JDeveloperの構成、CVS接続の作成、CVSリポジトリへのプロジェクトのファイルのインポート、および編集するCVSモジュールのチェックアウトが含まれます。

6.4.1.1 CVSと使用するためのJDeveloperの構成方法

CVSを使用する前に、プリファレンスを設定してJDeveloperを構成する必要があります。

JDeveloperをCVSとともに使用するように設定するには、次のようにします。

1. 「ツール」→「プリファレンス」を選択し、次に「プリファレンス」ダイアログの左側のペインから「拡張機能」を選択します。

2. 右側のパネルで、「バージョニング・サポートn.n」が選択されていることを確認します。

3. 「設定」ダイアログの左側のパネルで、「バージョニング」ノード、「CVS」ノードの順に開きます。CVS設定のメイン・パネルが表示されます。その他のCVS設定パネルは、「CVS」ノードの下の項目をクリックすると表示されます。

4. 必要に応じて設定を変更します。特定の設定に関する詳細は、[F1]を押すか「ヘルプ」をクリックします。

5. CVSでバイナリ・ファイル・タイプを使用するには、右側のパネルで「ファイル・タイプ」ノードを選択し、CVSで使用するバイナリ・ファイル・タイプをファイル・タイプ・ページで作成します。
このページ使用時のヘルプを表示するには、[F1]を押すか「ヘルプ」をクリックします。

6. 「OK」をクリックして「プリファレンス」ダイアログを閉じます。

バージョニング・システムとしてCVSを選択するには、次のようにします。

- 「バージョニング」→「バージョン・システム: [...]」→「CVS」を選択します。

JDeveloperを設定して、CVSをバージョニング・システムとして選択すると、CVSリポジトリ内のファイルを表示およびアクセスできるように、CVSに接続する準備が完了します。

6.4.1.2 CVS接続の作成方法

JDeveloperからCVSリポジトリを操作できるようにするためには、CVSリポジトリに対する接続を作成する必要があります。ローカルCVSリポジトリを作成するときには、リポジトリへの接続を自動的に作成するように選択できます。

CVS接続は、CVSナビゲータに表示されます。これによって、接続の詳細を編集できるようになります。

CVS接続を作成するには、次のようにします。

1. CVSナビゲータ(「表示」→「CVSナビゲータ」)で、CVSノードを右クリックし、「新規CVS接続」を選択します。
「CVS接続の作成」ウィザードが開きます。

2. 「CVS接続の作成」ウィザードの作業を完了します。
ウィザード使用時のヘルプを表示するには、[F1]を押すか「ヘルプ」をクリックします。

CVS接続を編集するには、次のようにします。

1. CVSナビゲータ(「表示」→「CVSナビゲータ」)で、接続名を右クリックし、「プロパティ」を選択します。
「CVS接続の編集」ウィザードが開きます。

2. ウィザードを使用して、必要に応じて変更します。
このウィザード使用時のヘルプを表示するには、[F1]を押すか「ヘルプ」をクリックします。

6.4.1.3 JDeveloperプロジェクト・ファイルのCVSへのインポート方法

JDeveloperプロジェクトをCVSで使用するには、CVSリポジトリにプロジェクト・ファイルをインポートする必要があります。インポートすると、フォルダおよびファイルすべてがCVSリポジトリにコピーされ、ソース・コントロール下に置かれます。

CVSリポジトリにプロジェクト・ファイルをインポートするには、CVSへのインポート・ウィザードを使用します。

CVSへのインポート・ウィザードを使用するには、次のようにします。

1. 「バージョニング」→「モジュールのインポート」を選択します。CVSへのインポート・ウィザードが表示されます。

2. ウィザードの要求に従ってインポートを完了します。このウィザード使用時のヘルプを表示するには、[F1]を押すか「ヘルプ」をクリックします。

ローカルで作業できるように、ファイルを変更する前にマシンにコピーする必要があります。

6.4.1.4 CVSモジュールのチェックアウト方法

これは、JDeveloperでCVSのソース・コントロール下にあるファイルやフォルダを最初に使用する際に実行する構成タスクです。このタスクは、CVSリポジトリにJDeveloperプロジェクトをインポート(必要な場合)した後に1回実行します。

CVSリポジトリからモジュールをチェックアウトするには、次のようにします。

1. CVSナビゲータで、チェックアウトするCVSモジュールを選択します。
次のいずれかの操作を行います。

「バージョニング」→「CVS」→「モジュールのチェックアウト」を選択します。

または

ポップアップ・メニューから「モジュールのチェックアウト」を選択します。

「CVSからのチェックアウト」ダイアログが表示されます。

2. ダイアログを完了します。このダイアログ使用時のヘルプを表示するには、[F1]を押すか「ヘルプ」をクリックします。

6.4.2 JDeveloperと使用するためのCVSの構成方法

CVSを使用できるようにJDeveloperを設定することに加えて、JDeveloperとともにCVSを使用可能するために必要なタスクがいくつかあります。これらのタスクの一部は、管理者が実行することもできます。これらのタスクのいずれかがインストールで実行されているかを常に確認する必要があります。

通常、作業時にファイルを格納するためのローカルCVSリポジトリが必要です。また、CVSと通信するためのセキュア・シェル(SSH)を構成したり、キャラクタ・セットを選択する必要がある場合もあります。最後に、CVSにログインする必要があります。

6.4.2.1 ローカルCVSリポジトリの作成方法

JDeveloperから、新規CVSリポジトリをローカル・ファイル・システムに作成できます。この機能は、CVS拡張機能の一部としてJDeveloperにインストールされる内部CVSクライアントではなく、外部CVSクライアント・ソフトウェアを使用している場合にのみ使用できます。

ローカルCVSリポジトリを作成するには、次のようにします。

1. 「バージョニング」→「ローカル・リポジトリの作成」を選択します。

2. 「リポジトリ・フォルダ」ボックスに、新規ローカル・リポジトリを作成するディレクトリのパスを入力します。
既存の空のディレクトリを指定または選択するか、新規ディレクトリを指定できます。指定した既存のディレクトリが空でない場合は、リポジトリに対して空または新規のディレクトリを指定するように伝える警告ダイアログが表示されます。

3. 作成しているローカル・リポジトリへの接続を作成する場合は、「リポジトリ接続の作成」ボックスを選択します。
接続には、:local:{path}の形式で名前が指定されます。この名前は後で変更できます。変更する場合は、CVSナビゲータで、接続名のポップアップ・メニューから「プロパティ」ダイアログを開き、「名前」タブで既存の名前を新しい名前で上書きします。

4. 「OK」をクリックします。新規ローカル・リポジトリが作成されると、確認ダイアログが表示されます。

6.4.2.2 SSH (セキュア・シェル)、CVSおよびJDeveloperの構成方法

JDeveloperでは、CVSリポジトリに対するアクセスとしてSSHレベル1および2をサポートしています。

6.4.2.2.1 SSHレベル1 (SSH)の構成

JDeveloperでは、CVSリポジトリへのアクセスにSSHレベル1を直接使用できません。ただし、リモート・シェル・アクセス用にSSHレベル1を設定することは可能です。

リモート・シェル・アクセスを使用できるようにSSHレベル1を設定するには、次のようにします。

1. ssh-keygenコマンドを使用して公開鍵および秘密鍵を生成します。

2. ~/.ssh/identity.pub公開鍵ファイルと~/.ssh/authorized_keysをCVSリポジトリのあるマシン上で連結します。

JDeveloperを実行してCVSをSSHレベル1で使用するには、その前にユーザーが明示的に認証され、環境が正しく設定されている必要があります。環境を正しく設定するには、次の手順に従ってください。

SSHレベル1用に環境を設定するには、次のようにします。

1. CVS_RSH環境変数をSSHクライアントの場所に設定します。

2. UNIXのコマンドラインで、ssh-agent {shell}と入力し、[Enter]を押します。

3. UNIXのコマンドラインでssh-addと入力し、[Enter]を押します。

4. JDeveloperを起動します。

5. CVS接続ウィザードを使用している場合は、CVSのアクセス方法として「外部」を選択します。

6.4.2.2.2 SSHレベル2 (SSH2)の構成

JDeveloperには、CVSリポジトリへのアクセスにSSH2を直接使用できます。

リモート・シェル・アクセス用にSSH2を使用するには、次のようにします。

1. JDeveloperのCVS設定ページで、「CVSクライアント」設定を「JDeveloper [...]内」に設定します。

2. CVS接続ウィザードが起動します。

3. CVS接続ウィザードの「接続」ページで、「アクセス方法」に「SSH2によるセキュア・シェル」を選択します。ヘルプを表示するには、[F1]を押すか「ヘルプ」をクリックします。

4. 接続ページで「SSH2キーペアの生成」をクリックします。「SSH2キーペアの生成」ダイアログが開きます。このダイアログ使用時のヘルプを表示するには、[F1]を押すか「ヘルプ」をクリックします。

5. SSH2キー・ファイルが生成されると、ファイルのインストール場所を説明する情報ダイアログが表示されます。

6. ダイアログの説明に従って、SSH2キー・ファイルをインストールします。

7. CVS接続ウィザードを完了してCVS接続を作成します。

内部CVSクライアントを使用している場合は、いつでも「バージョニング」→「管理」→「SSH2キーペアの生成」を選択してSSH2キー・ファイルを生成できます。外部CVSクライアントを使用している場合、このメニュー・オプションは使用できません。

6.4.2.3 キャラクタ・セットの選択方法(ローカル・クライアントのみ)

インストールでローカルCVSが使用されている場合、キャラクタ・セットを選択する必要があります。

CVSリポジトリの接続ごとに、ファイルのエンコーディングに使用するキャラクタ・セットを選択できます。デフォルトでは、プラットフォームまたはオペレーティング・システムに指定されているキャラクタ・セットが使用されます。

「エンコーディングの設定」ダイアログを使用して、IDEのデフォルトまたは特定のキャラクタ・セットに変更できます。

キャラクタ・セットを選択するには、次のようにします。

1. CVSナビゲータで、接続を選択します。

2. マウスの右ボタンをクリックして、「エンコーディングを設定」を選択します。

3. 必要なキャラクタ・セットを選択します。

6.4.2.4 CVSへのログイン方法

CVSリポジトリへの接続の一部のタイプでは、接続とは関係なくログインする必要があります。CVS接続が存在するにもかかわらず、CVSのいずれの機能にもアクセスできない場合は、ログインする必要があります。

CVSリポジトリにログインするには、次のようにします。

1. CVSナビゲータで、「バージョニング」→「ログイン」を選択します。
「ログイン」メニュー・オプションが使用不可で、「ログアウト」オプションが使用可能な場合は、すでにログインしています。

2. 「CVSにログイン」ダイアログで、パスワードを入力します。パスワードを記憶して、今後CVSリポジトリに接続する際に自動的に入力されるようにする場合は、「起動時に自動的に接続」ボックスを選択します。

3. 「OK」をクリックしてログインを完了します。

6.4.2.5 CVSを使用したローカル・ファイルへのアクセス方法

JDeveloperがマシン上のCVSクライアントへのパスを検出すると、JDeveloperのCVS設定は、そのCVSクライアント(JDeveloperとともにインストールされた内部CVSクライアントではなく)を使用するようにデフォルトで設定されます。CVSクライアントへのパスが見つからない場合は、内部CVSクライアントを使用するように設定されます。

内部CVSクライアントは、ローカルCVSリポジトリ(つまり、ユーザーのマシンのリポジトリ)へのアクセスには使用できません。ローカルCVSリポジトリにアクセスする場合は、CVSの完全なクライアント/サーバー・バージョンをマシンにインストールし、JDeveloperのCVS設定を適切に設定する必要があります。

外部CVSクライアントを使用する場合は、次のクライアントをお薦めします。

- Windowsプラットフォーム用のCVSNT 2.0.58a

- cvshomeにあるCVS 1.11.9 (その他のプラットフォームの場合)

注意:

クライアント専用バージョンのCVSがすでにインストールされている場合があります。その場合、ローカルのCVSリポジトリにはアクセスできません。完全なクライアント/サーバー・バージョンをインストールしてください。CVSナビゲータで接続ノードを展開できない場合や、CVSウィザードの「モジュール・リストの取得」ボタンでモジュール・リストが開かない場合は、ローカルCVSリポジトリにアクセスを試みるクライアント専用CVSソフトウェアがインストールされていると考えられます。インストールされているCVSのタイプは、CVSコマンド・プロンプトからcvs -vと入力することで確認できます。クライアント専用バージョンがインストールされている場合は、バージョン情報行の最後に(client)と表示されますが、クライアント/サーバー・バージョンがインストールされている場合は(client/server)と表示されます。

ファイアウォールを介してCVSにアクセスするには、次のようにします。

ファイアウォールを介してCVSサーバーにアクセスする場合、接続するには次のどちらかの条件を満たす必要があります。

- ファイアウォールでCVSポートによるTCP/IP通信が許可されていること。

- HTTPトンネリングをサポートするCVSクライアント(CVSNTなど)を使用すること。

ログインの際に認証に失敗した場合は、CVSコマンドラインを使用して接続してください。それでも失敗した場合は、ファイアウォールによって接続がブロックされている可能性があるため、ネットワーク管理者に相談してください。

必要な場合は、ファイアウォールを介した接続をサポートするようにCVSルート変数の値を変更できます。

6.4.2.5.1 CVSファイル・タイプの処理

CVS管理者は、JDeveloperで作成されるイメージ・ファイル形式などのバイナリ・ファイルが自動的に処理されるよう、CVSリポジトリを構成する必要があります。

他のファイル形式の場合は更新されるような状況で、これらのファイルに対してはマージが試みられます。これが行われないようにするには、CVSリポジトリの構成を変更する必要があります。

CVSの詳細は、CVSのドキュメントまたはWebサイト(http://www.cvshome.org)を参照してください。このサイトから、CVSのソフトウェアをダウンロードすることもできます。

6.4.3 構成後のCVSの使用方法

一度JDeveloperを設定してプロジェクト・ファイルをCVSリポジトリで使用できるようになると、ほとんどの場合、更新、チェックアウト、変更およびコミットの基本的な順序に従ったワークフローを使用します。さらに編集の競合を解決し、結果ファイルのリポジトリへのマージが必要になる場合もあります。

6.4.3.1 CVS内のプロジェクト、フォルダまたはファイルの更新方法

CVSの更新操作では、ローカル・ファイルがCVSリポジトリ内のデータで更新されます。または、ローカル・ファイルをCVSリポジトリに保持されているファイルで完全に置き換えるように選択できます。

個々のファイル(プロジェクト・ファイルも含む)を更新したり、プロジェクト・フォルダの内容全体を更新することもできます。

CVSリポジトリの内容は、CVSナビゲータで表示できます。CVSサーバーの下のノードを展開すると、CVSリポジトリの構造とファイルの内容が表示されます。対応するポップアップ・メニューから「開く」を選択すると、CVSリポジトリ・ファイルの読取り専用バージョンを表示できます。これにより、ローカル・バージョンをチェックアウトまたは最後にコミットした後でCVSリポジトリ内のファイルに対して行われた変更内容を確認できます。

個々のファイル(プロジェクト・ファイルを含む)を更新するには、次のようにします。

1. アプリケーション・ナビゲータでファイルを選択し、「バージョニング」→「更新」を選択します。

2. 必要に応じてオプションを設定します。これらのオプションの詳細は、[F1]を押すか「ヘルプ」をクリックします。

3. リストに表示されているファイルをすべて更新するには、「OK」をクリックします。

プロジェクト・フォルダの内容を更新するには、次のようにします。

1. アプリケーション・ナビゲータでプロジェクト・フォルダを選択し、ポップアップ・メニューから「プロジェクト・フォルダの更新」を選択します。

2. 必要に応じてオプションを設定します。これらのオプションの詳細は、[F1]を押すか「ヘルプ」をクリックします。

3. リストに表示されているファイルをすべて更新するには、「OK」をクリックします。

「保留中の変更」ウィンドウに表示されるファイルを更新するには、次のようにします。

1. 受信変更モードの「保留中の変更」ウィンドウで、更新するファイルを選択します。
「保留中の変更」ウィンドウの詳細を参照するには、[F1]を押すか「ヘルプ」をクリックします。

2. 「更新」ボタンをクリックします。

6.4.3.2 CVS内のファイルの編集および監視方法

編集および監視は、外部CVSクライアントの実行可能ファイルを使用している場合にのみ使用可能になります。

次の手順により、ファイルに対するエディタの取得や終了、チーム内でどのユーザーがファイルを編集しているか、およびどのユーザーがファイルの編集を監視しているかの確認ができます。2人以上の開発者が同じファイルを同時に編集できます。

編集および監視を使用するようにJDeveloperを設定するには、次のようにします。

1. 「ツール」→「プリファレンス」→「バージョニング」→「CVS」を選択してプリファレンス・ページを開きます。

2. 「外部の実行可能ファイル」が選択され、有効な詳細情報が入力されていることを確認します。

3. 「編集/監視モードでCVSを実行」を選択します。

4. 「ツール」→「プリファレンス」→「バージョニング」→「CVS」→「一般」を選択してプリファレンス・ページを開きます。

5. 「自動的にファイルを編集可能にする」の選択を解除します。

ファイルに対するエディタを取得するには、次のようにします。

1. アプリケーション・ナビゲータでファイルを選択し、「バージョニング」→「編集」を選択します。

2. ファイル選択ボックスでハイライト表示されているすべてのファイルにこの操作を適用するかどうかを確認します。

3. このファイルの監視を設定するには、「監視するアクションの設定」チェック・ボックスを選択し、ドロップダウン・リストから監視するアクションを選択します。

4. 「OK」をクリックします。

ファイルに対するエディタを終了する(ファイルを未編集にする)には、次のようにします。

この操作により、現在の編集で行われた変更は無効になります。エディタが終了すると、ローカル・ファイルへの変更内容は失われます。

1. アプリケーション・ナビゲータでファイルを選択し、「バージョニング」→「編集解除」を選択します。

2. ファイル選択ボックスでハイライト表示されているすべてのファイルにこの操作を適用するかどうかを確認します。

3. 「OK」をクリックします。

ファイル監視機能を有効または無効にするには、次のようにします。

1. アプリケーション・ナビゲータで、通知を受け取るファイルが含まれているプロジェクトを選択します。

2. 「バージョニング」→「監視」を選択します。

3. 「CVSファイルの監視」ダイアログで、「コマンド・タイプ」ドロップダウン・リストから「監視の開始」または「監視の終了」を選択します。

4. 「OK」をクリックします。

ファイルに対する処理の通知を受け取るユーザーのリストに自分自身を追加するには、次のようにします。

1. アプリケーション・ナビゲータで、通知を受け取るファイルが含まれているプロジェクトを選択します。

2. 「バージョニング」→「監視」を選択します。

3. ファイル選択ボックスに表示されているすべてのファイルにこの操作を適用するかどうかを確認します。

4. 監視設定タブで、「コマンド・タイプ」にドロップダウン・リストから「監視するファイルの追加」を選択します。

5. オプションで、「監視操作の設定」チェック・ボックスを選択して、通知を受け取る特定の操作を選択します。

6. 「OK」をクリックします。

ファイルに対する処理の通知を受け取るユーザーのリストから自分自身を削除するには、次のようにします。

- (前述の)自分自身をリストに追加する手順に従います。ただし、「コマンド・タイプ」ドロップダウン・リストから「監視するファイルの削除」を選択します。

どのユーザーがファイルに対する変更を監視しているかを確認するには、次のようにします。

- 「バージョニング」→「編集の通知」を選択します。

「編集の通知」ウィンドウが開きます。「ウォッチャ」タブに、監視中のファイルと現在変更を監視している1人以上のユーザーが表示されます。

どのユーザーが現在ファイルを編集しているかを確認するには、次のようにします。

- 「バージョニング」→「編集の通知」を選択します。

「編集の通知」ウィンドウが開きます。「エディタ」タブに、エディタを現在確保しているファイルと、それらのエディタを取得したユーザーが表示されます。

6.4.3.3 CVSの変更のコミット方法

この操作は、作業済ファイルの最新バージョンでCVSリポジトリを更新する場合や、CVSリポジトリに新規ファイルを追加したり、CVSリポジトリから不要なファイルを削除する場合に使用します。

この操作は単一のファイルに対して実行することも、プロジェクトのコンテキストで実行することもできます。プロジェクトのコンテキストの場合、最後のコミット以降に変更されたファイルがJDeveloperにより判断され、リスト表示されます。

CVSバージョン・コントロール下にないファイルが含まれているプロジェクトに対してコミットを選択すると、「ファイルのCVSへの追加」メッセージ・ダイアログが表示されます。このダイアログの使用方法を参照するには、[F1]を押してください。

CVSリポジトリの現在の内容は、CVSナビゲータで表示できます。CVSの下のノードを展開すると、CVSリポジトリの構造とファイルの内容が表示されます。対応するポップアップ・メニューから「開く」を選択すると、CVSリポジトリ・ファイルの読取り専用バージョンを表示できます。これにより、ローカル・バージョンをチェックアウトまたは更新した後でCVSリポジトリ内のファイルに対して行われた変更内容を確認できます。

アプリケーション・ナビゲータに表示される個々のファイルをコミットするには、次のようにします。

1. アプリケーション・ナビゲータでファイルを選択し、「バージョニング」→「コミット」を選択します。
「CVSにコミット」ダイアログにファイルがリスト表示されます。

2. 必要に応じて「CVSにコミット」ダイアログのオプションを設定します。
オプションの詳細を参照するには、[F1]を押すか「ヘルプ」をクリックします。

3. リスト表示されたファイルをCVSリポジトリ内で更新するには、「OK」をクリックします。

アプリケーション・ナビゲータに表示されるプロジェクト・フォルダの内容をコミットするには、次のようにします。

1. アプリケーション・ナビゲータでプロジェクト・フォルダを選択し、ポップアップ・メニューから「バージョニング」→「プロジェクト・フォルダのコミット」を選択します。
プロジェクトにCVSコントロール下にないファイルがある場合は、それらのファイルを追加するかしないかを指定するように求められます。

「CVSにコミット」ダイアログが表示され、フォルダがリスト表示されます。

2. 必要に応じて「CVSにコミット」ダイアログのオプションを設定します。
オプションの詳細を参照するには、[F1]を押すか「ヘルプ」をクリックします。

3. リスト表示されたファイルをCVSリポジトリ内で更新するには、「OK」をクリックします。

「保留中の変更」ウィンドウに表示されるファイルをコミットするには、次のようにします。

1. 送信変更モードの「保留中の変更」ウィンドウで、コミットするファイルを選択します。
「保留中の変更」ウィンドウの詳細を参照するには、[F1]を押すか「ヘルプ」をクリックします。

2. 「コミット」ボタンをクリックします。

6.4.3.4 CVSでのファイルのマージ方法

この操作は、2つのリビジョンのファイルをマージする場合に使用します。リビジョンに競合する内容が含まれている場合は、「保留中の変更」ウィンドウで、競合が通知され(送信ステータスは「競合」または「マージで競合します」)、「競合の解決」ボタンがアクティブになります。

内容が競合する2つのリビジョンをマージするには、次のようにします。

1. 「保留中の変更」ウィンドウの「送信」タブで、競合しているリビジョンを選択し、「競合の解決」ボタンをクリックします。

2. マージ・ツールが(ファイル・エディタの「マージ」タブとして)開きます。
マージ・ツール使用時のヘルプを表示するには、[F1]を押してください。

マージ・ツールには3つのパネルがあります。左側のパネルには、リポジトリ内のバージョンの内容が表示されます。右側のパネルには、最新のローカル・バージョンの内容が表示されます。中央のパネルには、マージの結果が表示されます。パネル間のマージンには、各競合を解決するために提示された処理を示す記号が表示されます。

3. マージン記号のツールチップを読んで、競合を解決するために提示された処理を確認します。
詳細な処理は、マージン記号のポップアップ・メニューから選択できます。

4. それぞれに提示された処理を実施して競合を解決します。
最初に提示された処理を受け入れると、追加処理が提示される場合があります。

中央のパネルに入力して、そのパネルの内容を変更することもできます。

5. マージを完了するには、「保存」ボタンを使用して変更内容を保存します。

6.4.4 CVSでのブランチの使用方法

CVSでは、プロジェクトのメイン(またはトランク)・ブランチとは別に実行する必要がある開発作業に使用するブランチを定義できます。JDeveloperでは、「タグ、ブランチおよびマージ」メニューから自分のリポジトリ内のCVSブランチにアクセスできます。

CVSでは、特定の作業(不具合修正や特殊な機能の開発など)を行いたい場合、ファイルのメイン・セットには影響を与えずに、別々のブランチを作成できます。このブランチは、トランクとも呼ばれます。

一度ブランチを作成した後は、通常はCVSとやり取りして、ファイルのチェックアウト、変更のコミットなどを行います。ブランチを切り替えて、ブランチに対する変更をマージしてトランクに戻すことができます。

CVSは特定のブランチまたはブランチ内の特定のファイルにタグを適用(タグを作成する場合は、ブランチの新規タグの作成と同様に作成)することもできます。

6.4.4.1 新規ブランチの作成方法

メジャー・リリースの後の不具合修正や一部のお客様用の特殊機能に関する作業をする場合など、コード・リポジトリの以前のバージョンに基づいてプロジェクトを始めようとする場合は、新しいブランチを作成します。

新規ブランチを作成するには、次のようにします。

1. CVSリポジトリで、新規ブランチのベースにするファイルまたはフォルダを選択して、マウスの右ボタンをクリックします。

2. 「ブランチ」→「CVSのブランチ」の順に選択します。

3. ブランチ名を入力します。JDeveloperでは、入力したブランチ名の最後に_BASEが付加されて、ブランチ名がブランチ用のデフォルト・タグに変換されます。

4. ブランチ・ソースがトランクか作業用コピーかを選択します。トランクを選択すると、すべてのファイルのHEADリビジョンがブランチされます。

5. 「保存」をクリックします。

ブランチが作成される前にベース・タグが適用されるので、将来のマージ・ポイントとしてこれらのバージョンを指定できるようになります。

ベースとして使用するブランチを選択して、既存のブランチから新しいブランチを作成するように指定することもできます。

既存のブランチから新規ブランチを作成するには、次のようにします。

1. 「詳細」をクリックします。

2. 既存のブランチのリストから、目的のブランチを選択します。

6.4.4.2 CVSでのブランチの使用方法

ブランチの選択は、多くのCVS機能に統合されています。編集中のファイルやチェックアウトしたファイルのブランチやバージョンを切り替えることができます。作業領域のコンテンツの更新中だけでなく、CVSモジュールのチェックアウト中にも、タグ、ブランチまたはバージョンの日付を選択できます。

6.4.4.2.1 ブランチまたはバージョンの切替え方法

JDeveloperの「バージョニング」メニューまたはファイルやプロジェクトのポップアップ・メニューから、編集中のファイルのブランチまたはバージョンを切り替えることができます。

「バージョニング」メニューからブランチ、バージョンまたは日付を選択するには、次のようにします。

1. 「バージョニング」メニューで、タグ、ブランチおよびマージ→「ブランチまたはバージョンの切替」を選択します。

2. ブランチまたはバージョンのリストを表示するには、チューザをクリックします。

3. 使用するブランチまたはバージョンを選択します。

4. オプションで、「日付の追加」をクリックして、使用する日付を指定します。

5. 「OK」をクリックします。

プロジェクトのコンテキスト・メニューからブランチ、バージョンまたは日付を選択するには、次のようにします。

1. 「バージョニング」→「ブランチまたはバージョンの切替」の順に選択します。

2. ブランチまたはバージョンのリストを表示するには、チューザをクリックします。

3. 使用するブランチまたはバージョンを選択します。

4. オプションで、「日付の追加」をクリックして、使用する日付を指定します。

5. 「OK」をクリックします。

6.4.4.2.2 更新中のブランチの選択方法

リポジトリに対する最新のリビジョンを取得するためのコンテンツ更新中に、同時に(関連タグ経由で)ブランチするオプションがあります。

タグを選択して、更新中にブランチするには、次のようにします。

1. オブジェクトのコンテキスト・メニューで、「プロジェクト・フォルダの更新」を選択します。

2. 「CVSから更新」ダイアログで、「リビジョン、タグまたは日付の使用」チェック・ボックスを選択して、選択アイコンをクリックします。

3. 使用するタグを選択します。

4. オプションで、「日付の追加」をクリックして、使用する日付を指定します。

5. 現在の更新に適用する他の任意のチェック・ボックス(「ローカルでの変更の上書き」、「空のフォルダを削除」など)を選択して、「OK」をクリックします。

6.4.4.2.3 チェックアウト中のブランチの選択方法

他のCVS操作と同様に、タグとブランチは、CVSモジュールのチェックアウト処理に統合されています。

チェックアウト中にブランチを選択するには、次のようにします。

1. バージョニング・ナビゲータのコンテンツ上でマウスの右ボタンをクリックしてコンテキスト・メニューを表示して、「モジュールのチェックアウト」を選択します。

2. 「リビジョン、タグまたは日付の使用」チェック・ボックスを選択して、選択アイコンをクリックしてタグを選択します。

3. タグを選択します。オプションで、「日付の追加」ボタンをクリックして日付を追加できます。選択が終われば、「OK」をクリックして、「タグ」ダイアログを閉じます。

4. 他の任意のオプション(「強制的に一致」、「子フォルダの無視」など)を選択してから「OK」をクリックして、「CVSからのチェックアウト」ダイアログを閉じます。

6.4.4.3 CVSでのタグの使用方法

タグは、ブランチ、ブランチ固有のコンテンツまたは1つのローカル・グループとして識別して操作するその他のコンテンツを識別する1つの方法です。ファイル、フォルダまたはプロジェクトにタグを付けることができます。後でこれらのタグを使用して、ブランチの識別、特定のタグがあるブランチのファイルの更新および他の操作を行えます。

タグの選択と参照は、ポップアップ・メニューおよび「バージョニング」→「CVS」→「タグ」メニューで行えます。使用できるタグは、コンテンツに対して実行中の操作のコンテキストによって異なります。

6.4.4.3.1 タグのプロジェクトへの追加方法

プロジェクトにタグを付けて識別できます。次に、タグ選択機能がある任意のCVSメニューでタグを選択して、このプロジェクトを操作できます。

プロジェクトにタグを追加するには、次のようにします。

1. タグを付けるプロジェクトを選択します。

2. 「バージョニング」→「CVS」→「タグ、ブランチおよびマージ」→「タグ」の順に選択します。

3. 使用するタグを入力するか、選択アイコンをクリックして既存のタグを参照します。

4. オプション: 「リビジョン、タグまたは日付の使用」を選択してから、タグを入力するか、アイコンをクリックしてリストを参照します。

6.4.4.3.2 プロジェクトまたはファイルの更新中のタグの適用方法

「CVSから更新」ダイアログの使用中に、タグを選択して適用できます。

プロジェクト・ビューから既存のブランチ、バージョンまたは日付を選択するには、次のようにします。

1. プロジェクトのポップアップ・メニューで、「バージョニング」→「タグ」の順に選択します。

2. 「リビジョン、タグまたは日付の使用」を選択します。

3. タグ選択アイコンをクリックします。

4. 表示されたリストからタグを選択します。

6.4.4.3.3 タグの削除方法

タグを削除することもできます。タグを削除すると、タグを適用したすべてのリソースからタグが削除されます。タグを削除しても、タグの適用先のコンテンツは削除されません。使用可能なタグのリストから、コンテンツが削除されるだけです。

タグを削除するには、次のようにします。

1. 「バージョニング」→「タグ、ブランチおよびマージ」→「タグの削除」の順に選択します。

2. 選択アイコンをクリックします。削除するタグを選択して、「OK」をクリックします。

このコンテキストで選択できるのは、既存のタグのバージョン(ブランチではない通常のタグ)のみです。

6.4.5 CVSでのファイルの使用方法

原則として、CVSでのファイル操作は、最新バージョンのファイルのチェックアウト、編集、変更済ファイルのチェックインを指します。また、自分と自分のチーム・メンバーが同じファイルを編集した場合、自分の作業が失われないために変更のマージが必要になる場合があります。またCVSの他の機能では、リポジトリからの新規ファイルの追加または未使用/廃止ファイルの削除などが可能です。しかし一般的なワークフローでは、チェックアウト、編集、チェックインのパターンに従います。

CVSでのファイル操作には、CSオブジェクトの表示のリフレッシュ、ファイルの追加および削除、テンプレートの使用、ファイルの比較、CVSでのファイルの置換、ファイルの履歴およびステータスの表示、ファイルのロックおよびロック解除、およびリビジョンおよびタグの使用が含まれます。

6.4.5.1 CVSオブジェクトの表示のリフレッシュ方法

オブジェクトのソース・コントロール・ステータスは、表6-1に示すように、アプリケーション・ナビゲータにアイコン上の記号で示されます。

表6-1 CVSオブジェクトのステータス

アイコン

説明

オブジェクトはCVSリポジトリからコピーされ、作業ファイル・ディレクトリに追加されています。

オブジェクトはCVSソース・コントロール下にはありませんが、CVSリポジトリに追加できます。

オブジェクト(ファイル)がCVSリポジトリから更新されたときに競合が発生しました。この場合は、手動でファイルを編集し、競合する点をすべて解決する必要があります。

オブジェクトは、次のコミット処理でCVSリポジトリから削除されるようにスケジューリングされています。

ローカルまたはリモートの変更のため、オブジェクトはCVSリポジトリと同期化されていません。

オブジェクトは最後にCVSリポジトリからコピーされてから変更されていません。

オブジェクトは最後にCVSリポジトリからコピーされてから変更されていません。ただし、このオブジェクトは読取り専用です。

CVSサンドボックス・フォルダにパッケージまたはノードがあります。

表示上のオブジェクトは基礎となる複数のオブジェクトで構成されており、それらのステータスが同じでない可能性があります。

外部のソース・コントロール・ソフトウェアを使用したオブジェクトのチェックインなど、JDeveloper外部でオブジェクトのステータスが変更されると、新規のステータスがJDeveloperに即時に表示されない場合があります。アプリケーション・ナビゲータに表示されるステータスをソース・コントロール・システム内のオブジェクトのステータスと確実に一致させるために、手動リフレッシュを実行できます。

JDeveloperでオブジェクトのステータスをリフレッシュするには、次のようにします。

- システム・ナビゲータまたはCVSナビゲータで、「リフレッシュ」ボタンをクリックします。

6.4.5.2 ファイルの追加および削除方法

CVSにファイルを追加できるのは、そのファイルが、すでにCVSでバージョン・コントロールされているプロジェクトの一部である場合のみです。

新規ファイル(新規クラスなど)を作成した場合、これを他のCVS操作で使用するにはソース・コントロールに追加する必要があります。ファイルはソース・コントロールにローカルに追加され、CVSリポジトリは更新されません。ファイルは、アプリケーション・ナビゲータでは+アイコンで表示されます。

アプリケーション・ナビゲータを介してファイルをCVSに追加するには、次のようにします。

1. アプリケーション・ナビゲータでファイルを選択し、「バージョニング」→「追加」(または、ファイルがバイナリである場合は「バージョニング」→「バイナリとして追加」)を選択します。通常JDeveloperでは、バイナリ・ファイルが認識されて、ナビゲータのファイル名の後に(バイナリ)と表示されます。「CVSに追加」ダイアログ(または「CVSにバイナリとして追加」ダイアログ)が表示されて、ファイルがリストされます。

2. 「OK」をクリックします。
ファイルは、次にコミットが実行される際にCVSリポジトリに追加されます。

「保留中の変更」ウィンドウに表示するファイルを追加するには、次のようにします。

1. 候補ファイル・モードの「保留中の変更」ウィンドウで、ソース・コントロールに追加するファイルを選択します。
「保留中の変更」ウィンドウの詳細を参照するには、[F1]を押すか「ヘルプ」をクリックします。

2. 「追加」ボタンをクリックします。

CVSからファイルを削除するには、次のようにします。

CVSからファイルを削除すると、そのファイルはローカル・ディスクから削除されます。

1. アプリケーション・ナビゲータで、削除するファイルを選択し、「バージョニング」→「削除」を選択します。

2. 「CVSから削除」ダイアログにファイルがリスト表示されます。

3. 「OK」をクリックします。

ファイルは、次にコミットが実行される際にCVSリポジトリから削除されます。

6.4.5.3 CVSテンプレートの使用方法

多くのチーム環境では、開発者がファイルのチェックイン時にコメントを入力する必要があります。これらのコメントには、バグ・レポート番号、他のファイルへの依存性、リポジトリにコミットされるファイルに関連して格納する他の説明情報などがあります。

JDeveloperでは、このようなコメントに使用するテンプレートを作成して選択できます。テンプレートは、「コミット」メニューから使用できます。

新規テンプレートを作成する手順は、次のとおりです。

1. 「ツール」→「プリファレンス」→「バージョニング」→「CVS」→「コメント・テンプレート」を選択します。

2. 「追加」をクリックします。

テンプレートを選択する手順は、次のとおりです。

1. 「テンプレートまたは前のコメントの選択」をクリックします。

2. リストからテンプレートを選択します。

3. 「OK」をクリックします。

コミットするファイルにコメントを作成する手順は、次のとおりです。

1. 「コメント」ボックスをクリックして選択します。

2. コミットするファイルに作成するコメントを入力します。

3. 「OK」をクリックします。

6.4.5.4 CVSでのファイルの比較方法

この操作は、CVSのソース・コントロール下にあるファイルのリビジョンを比較する場合に使用します。ファイルはその直前のリビジョン、または以前のリビジョンと比較できます。

アプリケーション・ナビゲータに表示されるファイルを比較するには、次のようにします。

1. ファイルのポップアップ・メニューで、「比較」を選択します。

2. 「前のリビジョン」、「ヘッド・リビジョン」、または「他のリビジョン」を選択します。

3. 前のリビジョンと比較する場合は、以前のリビジョンのファイルがCVSファイルの比較ダイアログにリスト表示されます。比較するファイルを選択します。
差分がない場合は、メッセージが表示されます。差分がある場合は、比較ツールが表示されます。

「保留中の変更」ウィンドウに表示されるファイルを比較するには、次のようにします。

「保留中の変更」ウィンドウのファイルは、ウィンドウのモードに従って、以前のリビジョンまたはヘッド・リビジョンのいずれかと比較できます。「保留中の変更」ウィンドウの使用時に詳細を参照するには、[F1]を押してください。

- 送信変更モードのウィンドウで、比較するファイルを選択して「前のリビジョンと比較」ボタンを選択します。

- 受信変更モードのウィンドウで、比較するファイルを選択して「ヘッド・リビジョンと比較」ボタンを選択します。

差分がない場合は、メッセージが表示されます。差分がある場合は、比較ツールが表示されます。

6.4.5.5 ファイルとCVSリビジョンの置換方法

この操作は、ファイルをベースまたはヘッド・リビジョンに置換する場合、または特定のリビジョン番号またはタグのファイルに置換する場合に使用します。ヘッド・リビジョンとは最新のリビジョンです。ベース・リビジョンとは、現在作業しているリビジョンの基礎となったリビジョンです。

ファイルをCVSリビジョンに置換するには、次のようにします。

1. ナビゲータで、置換するファイルを選択します。

2. 次のいずれか1つを実行します。

- ベース・リビジョンに置換する場合は、「ファイル」→「置換」→「ベース・リビジョン」の順に選択します。「ベース・リビジョンとの置換」ダイアログが表示されます。

- 特定のリビジョン番号またはタグに置換する場合は、「ファイル」→「置換」→「タグ付けされたリビジョン」の順に選択します。「タグ付リビジョンとの置換」ダイアログが表示されます。

- ヘッド・リビジョンに置換する場合は、「ファイル」→「置換」→「ヘッド・リビジョン」の順に選択します。「ヘッド・リビジョンとの置換」ダイアログが表示されます。

3. 置換するファイルがダイアログに表示されていることを確認します。

4. 特定のリビジョン番号またはタグに置換する場合は、ダイアログのテキスト・ボックスにリビジョン番号またはタグを入力します。

5. 「OK」をクリックし、ファイルを置換します。

6.4.5.6 ファイルの履歴およびステータスの表示方法

ファイルの履歴およびステータスにより、ファイルにどのような処理が行われてきたか、および最後にどのような処理が行われたかがわかります。これは、ファイルを最新の状態にするために、または独自の変更を行うために実行が必要なことを決定する上で役立ちます。

この操作は、履歴ビューアを開いてCVSファイルの履歴を表示する場合に行います。

プロジェクトまたはファイルの履歴を表示するには、次のようにします。

- アプリケーション・ナビゲータでプロジェクトまたはファイルを選択し、ポップアップ・メニューから「バージョニング」→「バージョン履歴」を選択します。
履歴ビューアの使用中に詳細を表示するには、[F1]を押してください。

この操作は、CVSのソース・コントロール下にあるファイルのステータスを確認する場合に使用します。CVSコントロール下にあるファイルのステータスをリフレッシュすることもできます。

ファイルのステータスを表示するには、次のようにします。

1. アプリケーション・ナビゲータでファイルを選択し、ポップアップ・メニューを開き、「バージョニング」→「プロパティ」を選択します。

2. 「バージョニング」タブを選択します。ファイルのステータスは、タブの最初の項目です。

ステータスには、次のものがあります。

- ローカルで変更されました。 - ファイルは、リポジトリからのコピー後にローカルで変更されています。

- CVSにあります。 - ファイルは、リポジトリからのコピー後に別のユーザーによって変更されています。

- 削除されました。 - ファイルは、次回のコミットで削除されます。

- 追加されました。 - ファイルは、次回のコミットで追加されます。

- 最新です。 - ファイルは、最新のCVSリポジトリ・バージョンと一致しています。

- 競合があります。 - ファイルの更新またはコミット処理から生じている可能性があります。必要な場合は、CVS管理者に相談してください。

- 確定できません。 - たとえば、別のユーザーによりファイルが外部で更新されています。

- 変更されました。 - ファイルにはマージの競合が以前にありましたが、それ以降にタイムスタンプが変更されています。

6.4.5.7 ファイルのロックおよびロック解除方法

注意:

新しいリリースのCVSクライアント・ソフトウェアでは、ファイルのロックはサポートされません。この機能は、JDeveloperの将来のリリースでは削除される予定です。

自分が作業しているファイルに対する他のユーザーの作業を禁止するように選択できます。通常、CVSではCVSリポジトリへのコミット中に様々なバージョンのファイルを調整できるため、通常、この機能は必要とされません。JDeveloperの比較機能とマージ機能により、各種バージョンのファイルは自動的に調整されます。また、重大な競合が存在する場合に手動でファイルを調整するためのツールが用意されています。

作業を完了するまでは、他のユーザーが同じファイルで作業しないようにする必要がある場合があります。これは、ファイルがバイナリ形式であり、基本的にはマージしにくいためです。この場合、作業するファイルをロックできます。ファイルはCVSリポジトリ内でロックされ、他のユーザーはアクセスできなくなります。他のユーザーによる作業を許可する場合は、そのファイルのロックを解除します。

CVS内のファイルをロックするには、次のようにします。

1. アプリケーション・ナビゲータでロックするファイルを選択し、「バージョニング」→「CVS」→「管理」→「ロック」を選択します。

2. ファイル選択ボックスでハイライト表示されているすべてのファイルにこの操作を適用するかどうかを確認します。

3. 「OK」をクリックします。

CVS内のファイルのロックを解除するには、次のようにします。

1. アプリケーション・ナビゲータでロックするファイルを選択し、「バージョニング」→「CVS」→「管理」→「ロック解除」を選択します。

2. ファイル選択ボックスでハイライト表示されているすべてのファイルにこの操作を適用するかどうかを確認します。

3. 「OK」をクリックします。

6.4.5.8 リビジョンおよびタグの使用方法

次の手順により、リビジョンおよびタグの操作ができます。

CVSファイルのリビジョンを開くには、次のようにします。

この手順により、CVSリポジトリからファイルのリビジョンを取得します。これにより、そのリビジョンを表示したりローカルで保存できます。

1. アプリケーション・ナビゲータでファイルを選択し、「バージョニング」→「リビジョンを開く」を選択します。

2. ダイアログで、必要に応じてオプションを設定します。オプションの説明を参照するには、[F1]を押すか「ヘルプ」をクリックします。

3. 「OK」をクリックします。

CVSタグを割り当てるには、次のようにします。

この手順により、選択したファイルのローカルのCVSリビジョンにシンボリック・タグを割り当てることができます。

1. アプリケーション・ナビゲータで、単一のファイル、プロジェクトまたはワークスペースを選択します。プロジェクトまたはワークスペースを選択すると、そのプロジェクトまたはワークスペース内の全ファイルがタグの割当て対象として選択されます。

2. 「バージョニング」→「タグ」→「タグ」を選択します。

3. ファイル選択ボックスでハイライト表示されているすべてのファイルにこの操作を適用するかどうかを確認します。

4. 「タグ名」ボックスにタグの名前を入力します。

5. 必要に応じて他のオプションを設定します。オプションの詳細を参照するには、[F1]を押してください。

6. 「OK」をクリックします。

CVSタグを削除するには、次のようにします。

この手順により、選択したファイルのローカルのCVSリビジョンからシンボリック・タグを削除できます。

1. アプリケーション・ナビゲータで、単一のファイル、プロジェクトまたはワークスペースを選択します。プロジェクトまたはワークスペースを選択すると、そのプロジェクトまたはワークスペース内の全ファイルからタグが削除されます。

2. 「バージョニング」→「タグ」→「タグの削除」を選択します。

3. ファイル選択ボックスでハイライト表示されているすべてのファイルにこの操作を適用するかどうかを確認します。

4. 「タグ名」ボックスにタグの名前を入力します。

5. 「OK」をクリックします。

CVSタグを表示するには、次のようにします。

この手順により、ファイル・リビジョンに適用された既存のタグに関する情報ダイアログが表示されます。

1. ファイルのポップアップ・メニューから、「バージョニング」→「プロパティ」の順に選択します。

2. 「バージョニング」タブを選択します。ファイル・リビジョンの既存のタグ・リストに、その時点のスティッキー・タグ、日付およびオプション(ある場合)が表示されます。

CVSタグをリセットするには、次のようにします。

この手順により、選択したファイルに適用されたスティッキー・タグまたは日付が削除され、ヘッド・リビジョンにリセットされます。

1. アプリケーション・ナビゲータで、タグをリセットするファイルを選択します。

2. 「バージョニング」→「タグ」→「タグのリセット」を選択します。

6.4.6 外部ツールおよびエクスポート機能の使用方法

CVSを外部ツールとともに使用する場合(マージするファイルのバージョンを比較する場合など)やCVSの制御下にあるファイルを使用して開発しているプロジェクト用にパッチの開発や適用を行う場合について説明します。また、CVSモジュールをエクスポートしたり、CVSROOT値をクリップボードにコピーすることが必要な場合もあります。次の手順により、これらの方法について説明します。

6.4.6.1 CVSでの外部差分ツールの使用方法

JDeveloperには、ほぼすべての状況下でうまく動作するように統合された、比較ビューアが用意されています。ただし、他の比較ツールやCVS DIFFからの簡易出力を使用することもできます。JDeveloperでは、サード・パーティ・ツールおよびアプリケーションを統合できます。ここでは、JDeveloperの外部ツール・サポート機能を使用して外部比較ビューアを統合する方法について説明します。

CVS DIFFを統合するには、次のようにします。

1. JDeveloperで、「ツール」→「外部ツール」の順に選択します。

2. 「追加」をクリックします。外部ツールの作成ウィザードが開きます。

3. 外部プログラム・オプション・ページで次の情報を入力します。
プログラムの実行ファイル
CVSインストールの場所(c:\cvsnt\cvs.exeなど)またはcvsのみ

引数
-d ${cvs.root} diff ${file.name}

代替引数
-d ${cvs.root} diff -r ${cvs.revision} -r ${cvs.second.revision} ${file.name}

実行ディレクトリ
${file.dir}

履歴ツールが表示されているときに2つの固有のCVSリビジョンを比較するツールを統合する場合、代替引数を入力します。

4. 表示ページのメニュー項目のキャプション・ボックスに、差分ツール用のキャプション(リポジトリとのCVS Diffなど)を入力します。

5. 統合ページで、JDeveloperへの差分ツールの統合方法を選択します。たとえば、「ツール・メニュー」、「ナビゲータ・ポップアップ・メニュー」および「コード・エディタ・ポップアップ・メニュー」の各項目を選択します。

6. 「可用性」ページで、「ファイルがエディタで選択されている場合または開いている場合」を選択します。

7. 「終了」をクリックします。

サード・パーティの差分ユーティリティを統合するには、次のようにします。

Araxis Mergeなど、サード・パーティのユーティリティを使用し、外部ツールのマクロを使用して履歴ツールで2つのリビジョン間の差異を表示できます。次の手順では、Araxis Mergeを起動するメニュー項目をインストールします。他の差分ユーティリティの場合は、ユーティリティのマニュアルを参照し、指定する必要のあるコマンドライン引数を判断してください。

1. JDeveloperで、「ツール」→「外部ツール」の順に選択します。

2. 「追加」をクリックします。外部ツールの作成ウィザードが開きます。

3. 外部プログラム・オプション・ページで次の情報を入力します。
プログラムの実行ファイル サード・パーティのツールへのパス(c:\araxismerge\compare.exeなど)

引数
/wait /title1:"${file.name} revision ${cvs.revision}" /title2:"${file.name} revision ${cvs.second.revision}" /2 ${cvs.revision.file} ${cvs.second.revision.file}

4. 表示ページのメニュー項目のキャプション・ボックスに、サード・パーティ・ツール用のキャプション(Araxis Diffなど)を入力します。

5. 必要に応じて、このウィザードの残りのステップを完了します。ウィザード使用時のヘルプを表示するには、[F1]を押すか「ヘルプ」をクリックします。

6. 「終了」をクリックします。

他のCVSコマンドを統合するには、次のようにします。

提供される外部ツールのマクロを使用して、簡単に他のCVSコマンドをJDeveloperに統合できます。たとえば、CVS注釈コマンド(「blame」と呼ぶこともあります)などです。このコマンドは、各コード行の変更者と変更時期のサマリーを表示します。CVS注釈用のツールを統合するには、新規ツールで次のオプションを設定します。

1. JDeveloperで、「ツール」→「外部ツール」の順に選択します。

2. 「追加」をクリックします。外部ツールの作成ウィザードが開きます。

3. 外部プログラム・オプション・ページで次の情報を入力します。
プログラムの実行ファイル
CVSの実行ファイルへのパス(C:\cvs\cvs.exeなど)

引数
-d ${cvs.root} annotate ${file.name}

実行ディレクトリ
${file.dir}

4. 必要に応じて、このウィザードの残りのステップを完了します。ウィザード使用時のヘルプを表示するには、[F1]を押すか「ヘルプ」をクリックします。

5. 「終了」をクリックします。

6.4.6.2 CVSモジュールのエクスポート方法

CVSエクスポート・ウィザードを使用して、デプロイメント可能なファイル構造を作成するモジュールのファイルのリビジョンをエクスポートします。

CVSエクスポート・ウィザードを使用するには、次のようにします。

1. 「バージョニング」→「モジュールのエクスポート」を選択します。CVSエクスポート・ウィザードが表示されます。

2. ウィザードの要求に従ってエクスポートを完了します。ウィザードの使用時に詳細を参照するには、[F1]を押すか「ヘルプ」をクリックします。

指定した場所にファイルがエクスポートされます。

6.4.6.3 CVSROOTパスのクリップボードへのコピー方法

CVSROOTのパスは、他のアプリケーションで使用できるように、CVSナビゲータのノードからクリップボードにコピーできます。

CVSROOTパスをクリップボードにコピーするには、次のようにします。

1. 接続ナビゲータで、接続名を右クリックします。

2. ポップアップ・メニューから「CVSROOTをコピー」を選択します。

CVSROOTの完全パスがクリップボードにコピーされます。コピーされたパスは、クリップボードから別のアプリケーションに貼付けできます。

6.4.7 パッチの作成および適用方法

あるファイルの2つのリビジョン間の変更内容を記録し、その変更内容を3番目のファイルに適用するとします。これを実行するには、パッチを作成して適用します。

パッチを作成するには、次のようにします。

この手順により、ファイルのコントロール・リビジョンとローカル・リビジョン間の差分で構成されるパッチが生成されます。

1. JDeveloperで、パッチを作成するファイルを開きます。

2. 「履歴」タブをクリックします。
「履歴」ビューには、ファイルのすべてのリビジョンが表示されます。「履歴」ビュー下部の左ペインにはローカル・リビジョンの内容が表示され、右ペインにはコントロール・リビジョンの内容が表示されます。

3. パッチを作成するリビジョンの組合せを選択します。

4. ポップアップ・メニューから「パッチの生成」を選択します。
「パッチ・コンテキストの選択」ダイアログが開く場合があります。このダイアログの使用時にヘルプを参照するには、[F1]を押してください。

「パッチの生成」ダイアログが開きます。必要に応じてダイアログを完了します。このダイアログの使用時にヘルプを参照するには、[F1]を押してください。

パッチを適用するには、次のようにします。

1. ナビゲータで、パッチを適用するリソースを選択します。
リソースは、アプリケーション、プロジェクトまたはソース・ファイルの場合があります。

2. 「バージョニング」→「パッチの適用」を選択します。
プロジェクトにパッチを適用する場合は、「パッチ・コンテキストの選択」ダイアログが開きます。このダイアログで、プロジェクト・ファイル(.jpr)のパッチを適用するのか、またはプロジェクトの内容を更新するのかを指定する必要があります。

「パッチの適用」ダイアログが開きます。

3. 「パッチの適用」ダイアログの上部のグリッドで、ターゲット・リソースが正しく識別されていることを確認します。

4. パッチのソースを選択します。このオプションおよびこのダイアログの他のオプションの詳細は、[F1]を押すか「ヘルプ」をクリックします。

5. 「プレビュー」をクリックします。これによって、「パッチの適用: プレビュー」ウィンドウが表示されます。このウィンドウで、特定の変更を受け入れることも拒否することもできます。「パッチの適用: プレビュー」ウィンドウのオプションの詳細は、[F1]を押してください。

6. パッチを適用するには、「OK」をクリックします。

6.5 PerforceとOracle JDeveloperの使用

Perforceでは、ローカル・ディレクトリ構造を使用して、仮ソース・コントロールの下に配置されるファイルを受信します。この場所はPerforceクライアント・ワークスペースと呼ばれます。JDeveloperで作成(またはJDeveloperに移動)されたファイルは、この場所に格納する必要があります。ファイルがPerforceクライアント・ワークスペースに格納された後、Perforce保管庫と呼ばれる中心的な場所にファイルを発行し、ファイルを完全にソース・コントロール下に置きます。バージョン管理して他のユーザーからアクセスできるようにするには、Perforce保管庫にファイルを発行する必要があります。

6.5.1 PerforceとJDeveloperの設定方法

Perforce拡張機能をダウンロードするとともに、PerforceをJDeveloperとともに使用する前に、多数のPerforce機能をインストールしてJDeveloperで使用可能にする必要があります。インストールしたら、JDeveloperを構成し、Perforceクライアント・ワークスペースに接続します。最後に、作業用ファイルをPerforceの管理下に置き、Perforceの使用時にJDeveloperでこれらのファイルを使用できるようにする必要があります。

6.5.1.1 JDeveloperで使用するPerforceコンポーネントのインストール方法

目的のJDeveloperユーザーからアクセスできるマシン上に少なくとも1台のPerforceサーバーがインストールされている必要があります。Perforceサーバーのインストールがまだ存在しない場合、必要なソフトウェアを(www.perforce.comなどから)取得し、Perforceの説明書に従ってインストールします。Perforceサーバー・ソフトウェアがインストールされているマシンのアイデンティティを記録します。このアイデンティティは、JDeveloperを介してこれに接続する際に必要になります。

Perforceクライアントのインストール

JDeveloperが含まれる(またはJDeveloperが含まれる予定の)マシンにPerforceクライアント・アプリケーションをインストールする必要があります。Perforceクライアント・アプリケーションは、www.perforce.comから取得可能なサーバー・ソフトウェアと同じソフトウェアからインストールできます。このインストールには、コマンドライン・クライアント(P4)、およびWindowsインストールの場合はWindows用のビジュアル・マージ(P4WinMrg)が含まれる必要があります。

Perforceクライアント・アプリケーションを初めて実行する場合、Perforceクライアント・ワークスペースを作成する必要があります。Perforceクライアント・ワークスペースには、Perforceの管理下にあるファイルの作業用コピーが格納されます。JDeveloperのデフォルト・ディレクトリは、このディレクトリにJDeveloperファイルがすでに含まれるかどうかとは関係なく、Perforceクライアント・ワークスペースとして使用できます。JDeveloperのデフォルト・ディレクトリは、<installation_directory>\jdev\myworkです。また、デフォルトのPerforceクライアント・ワークスペースをそのまま使用することも、独自のワークスペースを指定することもできます。このような場合、使用していた場所をメモしておく必要があります。これは、JDeveloperでアプリケーションおよびプロジェクトを作成する際にこの場所を指定する必要があるためです。

Perforceクライアント・アプリケーションでパスワードを設定する場合、JDeveloperを介してPerforceに接続する際もこれらのパスワードを使用する必要があります。

JDeveloperのインストール

JDeveloperは通常の方法でインストールする必要があります。JDeveloperの各インストールは、Perforceのクライアント・アプリケーションとして機能します。Perforceクライアントとして使用するすべてのマシンにJDeveloperをインストールできます。または、JDeveloperインストールとPerforce独自のクライアント・アプリケーションを組み合せて使用することもできます。JDeveloperとPerforceクライアント・アプリケーションは、シームレスに連携して機能します。JDeveloperに組み込まれたPerforceに対するサポート以外にも、JDeveloperインタフェースを介してPerforceクライアント・アプリケーションにアクセスすることもできます。

6.5.1.2 Perforceと使用するためのJDeveloperの構成方法

Perforceを使用できるようJDeveloperを構成する前に、Perforceサーバーおよびクライアント・ソフトウェアがインストールされている必要があります。

JDeveloperをPerforceとともに使用するように設定するには、次のようにします。

1. 「ツール」→「プリファレンス」を選択し、次に「プリファレンス」ダイアログの左側のペインで「拡張機能」を選択します。

2. 右側のペインで、「バージョニング・サポートn」チェック・ボックスが選択されていることを確認して、「構成」をクリックします。

3. 「Perforceのバージョニング・サポートn」が選択されていることを確認します。

4. 「プリファレンス」ダイアログの左側のパネルで、「バージョニング」ノード、「Perforce」ノードの順に開きます。Perforce設定のメイン・パネルが表示されます。その他のPerforce設定パネルは、「Perforce」ノードの下の項目をクリックすると表示されます。

5. 必要に応じて設定を変更します。特定の設定に関する詳細は、[F1]を押してください。

6. 「OK」をクリックして「プリファレンス」ダイアログを閉じます。

Perforceをバージョン・システムとして選択するには、次のようにします。

- 「バージョニング」→「バージョン・システム: [...]」→「Perforce」を選択します。

6.5.1.3 Perforceへの接続方法

JDeveloper内でPerforceを操作できるようにするには、Perforceに接続する必要があります。

Perforceに手動で接続するには、次のようにします。

1. 「バージョニング」→「Perforceに接続」を選択します。
「接続」ダイアログが開きます。ユーザー名、ポートおよびクライアント情報が自動的に導出され、「接続」ダイアログに表示されます。

2. 表示されていない場合は、正しいユーザー名、ポートおよびクライアント情報を入力します。

3. Perforceサーバーがパスワード保護を使用して設定されている場合、パスワードを入力します。(次回接続するときのためにパスワードが記憶されるようにする場合は、「パスワードを保存する」ボックスを選択します。)

4. Perforceサーバーへの接続をテストする場合は、「接続のテスト」ボタンをクリックします。結果は長方形のテキスト領域に表示されます。

5. 接続を完了するには、「OK」をクリックします。

JDeveloperを起動する際にPerforceに自動的に接続するには、次のようにします。

1. 「ツール」→「プリファレンス」を選択し、「バージョニング」ノード、「Perforce」ノードの順に選択します。

2. 「起動時に自動的に接続」ボックスを選択します。

3. 「プリファレンス」ダイアログを閉じるには、「OK」をクリックします。

6.5.1.4 Perforceへの複数接続方法

一部開発環境では、Perforceに複数回接続する必要がある場合があります。次に例を示します。

- 自社では、開発用として1つのPerforceサーバーを使用し、テスト用としてもう1つのPerforceサーバーを使用しています。

- 2つの異なるPerforceクライアントを使用して接続する必要があります。

- 異なるPerforceユーザーIDを使用する必要があります。

JDeveloperに対するPerforce拡張機能を使用すると、これらすべての操作が可能になります。この場合、Perforce接続を作成するたびに名前を付けることから始めます。

名前付きPerforce接続を作成するには、次のようにします。

1. 「バージョニング」→「Perforceに接続」を選択します。
「接続」ダイアログが開きます。ユーザー名、ポートおよびクライアント情報が自動的に導出され、「接続」ダイアログに表示されます。

2. 表示されていない場合は、正しいユーザー名、ポートおよびクライアント情報を入力します。

3. このPerforce接続に使用する名前を入力します。現在開いている他の任意のPerforce接続とこれが異なることを確認してください。

4. Perforceサーバーがパスワード保護を使用して設定されている場合、パスワードを入力します。(次回接続するときのためにパスワードが記憶されるようにする場合は、「パスワードを保存する」ボックスを選択します。)

5. Perforceサーバーへの接続をテストする場合は、「接続のテスト」ボタンをクリックします。結果は長方形のテキスト領域に表示されます。

6. 接続を完了するには、「OK」をクリックします。

Perforce変更リストには、変更リスト内の各ファイルに適用される接続が表示されます。

6.5.1.5 ファイルをPerforceの管理下に置く方法

JDeveloper内で作成するファイル、または外部からJDeveloperに移動するファイルの設定JDeveloper Perforceバージョニング機能を使用するには、これらのファイルをPerforceの管理下に置く必要があります。

Perforceの管理下に置く必要がある既存のJDeveloperプロジェクトがある場合、Perforceへのインポート・ウィザードを使用します。

JDeveloperの個々のファイルをPerforceの管理下に置くには、次のようにします。

1. ナビゲータでファイルを選択し、「バージョニング」→「追加のため開く」を選択します。
ここでは、自分の作業ファイルまたはJDeveloperで使用するアプリケーションやプロジェクトをファイルとして選択できます。

「ファイルをPerforceに追加」ダイアログにファイルがリスト表示されます。

2. ファイルをロックし、他のユーザーが編集できないようにするには、「ファイルのロック」ボックスを選択します。

3. Perforceの管理下にファイルを追加するには、「OK」をクリックします。
これで、ファイルは赤い十字とともにナビゲータに表示されます。これは、これらのファイルはPerforceクライアント・ワークスペースに格納されているが、Perforce保管庫にはまだ格納されていないことを意味します。バージョン管理して他のユーザーからアクセスできるようにするには、Perforce保管庫にファイルを追加する必要があります。

4. Perforce保管庫にファイルを追加するには、アプリケーション・ナビゲータでファイルを選択して、「バージョニング」→「発行」を選択します。
「ファイルの発行」ダイアログが表示されて、ファイルがリストされます。

5. バージョニングのコメントを「コメント」ボックスに追加します。
特定のファイルのバージョンのリストを表示すると、これらのコメントが表示されます。

6. Perforce保管庫にファイルを発行するには、「OK」をクリックします。
ナビゲータに緑色の点とともにファイルが表示されるようになります。これは、ファイルがPerforce格納庫に認識されていて、最新状態にあることを示しています。

JDeveloperの外部で作成されたファイルをPerforceの管理下に置くには、次のようにします。

1. JDeveloperファイル記憶域ディレクトリの下にある既存の\srcディレクトリ(これはPerforceクライアント・ワークスペースと同じである必要があります)にファイルをコピーまたは移動します。

2. JDeveloperを終了して再度開きます。
ファイルはナビゲータで、\srcディレクトリを使用したプロジェクト内に表示されるようになります。青地に白の斜線の十字でファイルがマークされるようになります。これは、ファイルがJDeveloperに認識されているが、ソースの管理下にはないことを示しています。

3. 前述の手順に従って、ファイルをPerforceの管理下に置きます。

6.5.1.6 JDeveloperファイルのPerforceへのインポート方法

Perforceとともに既存のJDeveloperプロジェクトおよびソース・ファイルの使用を開始する前に、これらをPerforceクライアント・ワークスペースにインポートする必要があります。これらがPerforceクライアント・ワークスペースに格納された後、Perforce保管庫にファイルを発行し、ファイルを完全にソース・コントロール下に置きます。

Perforceへのインポート・ウィザードを使用して、JDeveloperプロジェクト・ファイルおよびソース・ファイルをPerforceクライアント・ワークスペースにインポートします。

Perforceへのインポート・ウィザードを使用するには、次のようにします。

1. まだPerforceに接続していない場合は、「バージョニング」→「Perforceに接続」を選択して接続します。

2. アプリケーション・ナビゲータで、Perforceの管理下に置くJDeveloperプロジェクトを選択します。

3. 「バージョニング」→「プロジェクトのインポート」を選択します。Perforceへのインポート・ウィザードが表示されます。

4. ウィザードの要求に従ってインポートを完了します。ウィザードの使用時に詳細を参照するには、[F1]を押してください。
プロジェクトおよびファイルがナビゲータに表示されます。オーバーレイ・アイコンを表示することを選択した場合、これらのアイコンにファイルの現在のソース・コントロール・ステータスが示されます。

5. ファイルを完全にPerforceソース・コントロール下に置くには、これらをPerforce保管庫に発行します。

6.5.2 Perforceでのファイルの使用方法

Perforceでは、パッチを作成して適用する機能、つまりファイルの2つのリビジョンの間の変更を特定して、それらの変更を3つ目のファイルに適用する方法が提供されています。さらに、Perforceには、リポジトリ接続の詳細およびリポジトリ内のファイルをエクスポートするための管理機能も含まれています。

6.5.2.1 ローカル・ファイルと管理バージョンの同期化方法

ファイルは別のユーザーによってPerforceクライアントを介して編集され、その変更がPerforce保管庫に発行される場合があります。これにより、ファイルのコピーが管理バージョンよりも古くなります。

ビューに最新のファイル・ステータスが表示されているかどうかテストするには、次のようにします。

- 「表示」→「リフレッシュ」を選択します。
管理バージョンよりも古いファイルには感嘆符アイコンが表示されます。

ファイルを管理バージョンと同じように最新の状態にするには、次のようにします。

1. 「接続」ドロップダウン・リストで、この変更リストに適したPerforce接続(複数存在する場合)を選択します。

2. ナビゲータでファイルを選択し、「バージョニング」→「同期」を選択します。
「ファイルの同期化」ダイアログが表示されて、ファイルがリストされます。

3. ダイアログを完了します。
ダイアログ・オプションの詳細は、[F1]を押してください。

4. ファイルを同期化するには「OK」をクリックします。
ローカル・ファイルは管理バージョンのコピーに置換されます。ファイルの横に表示されるアイコンは緑色の点に変化します。

6.5.2.2 ファイルとPerforceナビゲータの同期化方法

Perforceナビゲータを使用すると、Perforce保管庫を参照し、保管庫にある内容から作業ディレクトリを更新できます。このナビゲータを使用すると、Perforceサーバーから内容をコンピュータにダウンロードして、クライアント・ワークスペースと同期化するフォルダまたはファイルを選択できます。保管庫で新規ファイルが検出された場合、これらを処理するオプションは複数あります。

接続ノードを開くときに接続が確立されていない場合、接続ダイアログが表示されます。

Perforceナビゲータを使用してファイルを同期化するには、次のようにします。

1. バージョニング・ナビゲータで同期化するフォルダまたはファイル(あるいはその両方)を選択して、Perforceの下にある内容を開きます。作業対象のプロジェクトのレベルまで開く場合、ファイルまたはフォルダを右クリックし、「保管庫からの同期化」を選択します。この操作により、「保管庫からの同期化」ダイアログが開きます。

2. 選択したプロジェクトが「保管庫からの同期化」ダイアログの「名前」ペインに表示されます。その下には選択または指定可能なフィールドがあります。
ヘッド・リビジョン

プロジェクトのヘッド・リビジョンと同期化します。これを選択すると、「保管庫からの同期化」ダイアログに「同期の強制実行」チェック・ボックスが表示されます。保管庫の各内容とは関係なく保管庫の内容を作業ディレクトリにダウンロードする場合(保管庫の内容のクリーン・ダウンロードから開始する必要があることがわかっている場合など)、「同期の強制実行」を選択します。

リビジョン番号

特定のリビジョン番号と同期化する場合、これを選択します。「保管庫からの同期化」に「ターゲット」フィールドが表示されます。「ターゲット」フィールドを使用して、ローカル作業コピーの同期元であるリビジョン番号を入力します。

変更リスト

特定の変更リストと同期化する場合、これを選択します。「保管庫からの同期化」に「ターゲット」フィールドが表示されます。「ターゲット」フィールドを使用して、ローカル作業コピーの同期元である変更リストの名前を入力します。

ラベル名

特定のラベル(通常は特定のブランチを識別するために使用されます)を使用してファイルを開く場合、これを選択します。「保管庫からの同期化」に「ターゲット」フィールドが表示されます。「ターゲット」フィールドを使用して、ローカル作業コピーの同期元であるラベルの名前を入力します。

日付

ローカル・ファイルの同期元の日付(および必要に応じて時間)を指定する場合、これを選択します。「保管庫からの同期化」に「ターゲット」フィールドが表示されます。「ターゲット」フィールドを使用して、ローカル作業コピーの同期元である日付(yyyy/mm/ddまたはyyyy/mm/dd:hh:mm:ss形式)を入力します。

現在のプロジェクトに適用するフィールドを選択し、「OK」をクリックします。

3. ソース内に存在しないファイルが保管庫に含まれる場合、新規ファイルが検出されたことが通知され、次のオプションがリストされます。
アクティブ・プロジェクト内でファイルを開く

ファイルをコピーし、選択したプロジェクト内でこれらを開きます。

ファイルから新規プロジェクトを作成

検出されたファイルを使用して新規プロジェクトを作成します。

ファイルをエディタで開く

ファイルをエディタ・ウィンドウで開き、これらをレビューし、最適な解決策(保持、名前変更、破棄または変更)を決定できます。

ファイルを開かない

ファイルを保管庫から作業ディレクトリにコピーせず、ファイルを閉じたままにしておきます。

6.5.2.3 Perforceワークスペースによるファイルのフィルタ方法

Perforce保管庫内に非常に多数のファイルが存在する場合、Perforceワークスペースでファイルをフィルタして作業対象のファイルにナビゲートする方が簡単な場合があります。これを行うには、Perforceクライアントで各種設定を行ってから、JDeveloperでフィルタされたビューを表示します。

Perforce (特にp4v)でファイルをフィルタするには、保管庫ツリーが表示されていることを確認してから、「フィルタ」アイコン→ワークスペース・ビューに限定されたツリーを選択します。

JDeveloperでファイルをフィルタするには、次のようにします。

- バージョン・ナビゲータ→「Perforce」→「接続名」→ポップアップ・メニュー - 「クライアント・ワークスペースによるフィルタ」を選択します。

Perforceワークスペースを制限するルールがPerforceクライアントで採用されている場合、JDeveloperバージョン・ナビゲータには差異のみが表示されます。(p4vの場合、これらのルールは、選択したワークスペース用の「ワークスペース」ダイアログの「ビュー」フィールドで表示および設定されます。)p4vクライアント内のワークスペース・ビューは、次のようなルールを使用して制限できます。

//depot/JDeveloper_1013/... //<client name>//JDeveloper_1013

JDeveloperで、「クライアント・ワークスペースによるフィルタ」を選択すると、//depot/JDeveloperのみが表示されるようにナビゲータがフィルタされます。

6.5.2.4 ファイルの編集方法

デフォルトでは、Perforceの管理下のファイルをナビゲータから開くのみで編集を開始できます。Perforceサーバーに接続している場合、開かれたファイルに入力できるまでに遅延が生じる可能性があります。ファイルを編集するために手動で開くまではファイルを閉じたままにしておく場合は、「ファイルを編集のために自動的に開く」設定をオフに設定します。次の手順は、この設定がどちらに設定されているかとは関係なく機能します。

Perforceの管理下のファイルを編集するには、次のようにします。

1. ナビゲータでファイルを選択し、「バージョニング」→「編集のため開く」の順に選択します。
「編集のためファイルを開く」ダイアログが表示されて、ファイルがリストされます。

2. ファイルが管理バージョンよりも古く、管理バージョンを編集する必要がある場合、ファイルの同期化対象ボックスを選択します。
ファイルを編集する前に管理バージョンを取得しない場合、ファイルとPerforce保管庫内のバージョン間に競合が生じる可能性があります。この場合、変更を管理バージョンに受け入れる前に競合を解消する必要があります。

3. ファイルをロックする場合は、「ファイルのロック」ボックスを選択します。
ファイルをロックすると、他のユーザーはファイルを編集できますが、ロックを適用したユーザーがロックを解放するまではファイルを発行できなくなります。

4. Perforceの管理下でファイルを編集可能にするには、「OK」をクリックします。
ファイルが編集可能であることがPerforceに通知されます。ナビゲータでファイルのアイコンに赤いチェック・マークが追加されます。

5. ファイルを編集するには、ファイルのポップアップ・メニューから「開く」を選択します。

6. 変更を行い、ファイルを保存します。
必要に応じてファイルを閉じることもできます。

これで、ファイルに対して行った変更がPerforceクライアント・ワークスペースに保存されます。ファイルの管理バージョンに変更を追加し、他のユーザーに対してこれらの変更を有効にするには、ここでこれらを発行する必要があります。

6.5.2.5 変更したファイルのPerforce保管庫への発行方法

ファイルに対して行った変更は、最初にPerforceクライアント・ワークスペースに保存されます。ファイルの管理バージョンにこれらの変更を追加し、他のユーザーに対してこれらの変更を有効にするには、これらを発行する必要があります。次の手順で、「発行」メニュー・オプションが使用不可である場合は、ファイルのコピーとPerforce保管庫内のファイルの間に解消されていない競合が存在することがその理由です。処理を続行する前に、競合を解消するか、競合のないバージョンにファイルを戻す必要があります。

変更をPerforce保管庫に発行するには、次のようにします。

1. ナビゲータでファイルを選択し、「バージョニング」→「発行」を選択します。
「ファイルの発行」ダイアログが表示されて、ファイルがリストされます。

2. バージョニングのコメントを「コメント」ボックスに追加します。

3. Perforce保管庫にファイルを発行するには、「OK」をクリックします。
ナビゲータに緑色の点とともにファイルが表示されるようになります。これは、ファイルがPerforce格納庫内のバージョンと同じように最新状態にあることを示しています。

6.5.2.6 ファイル・バージョン間の競合の解決方法

ファイルの自分のコピーとPerforce保管庫との間に競合がある場合は、影響があるファイルの横のアイコンに感嘆符が表示されます。このようなファイルをPerforce保管庫に発行することはできません。この問題を解決するには、競合のないファイルのバージョンに戻すか、競合を解決する必要があります。競合を解決するには、ローカルにインストールされたPerforceクライアント・アプリケーションを使用するか、「プリファレンス」ページ(「ツール」→「プリファレンス」→「バージョニング」→「Perforce」→「バージョン・ツール」)に指定されている別のマージ・ツールを選択して使用します。

競合のないバージョンのファイルに戻すには、次のようにします。

- ナビゲータでファイルを選択し、「バージョニング」→「回復」を選択します。

ファイル・バージョンの競合を解決するには(Perforceマージ・ツールを使用する場合)、次のようにします。

1. 「バージョニング」→「解決」を選択し、Perforceクライアントを開きます。

2. 保留中のクライアントの変更リストで、変更を識別します。

3. Perforceツールを使用して競合を解決します。
競合を自動マージできない場合、マージ・ツールを実行し、その機能を使用して競合データから確定バージョンを作成します。

4. マージを受け入れます。

5. マージを発行します。

6. JDeveloperで、「ビュー」→「リフレッシュ」を使用してファイルに緑色の点を表示します。
ファイルは編集可能な状態で開かれたままです。

7. ファイルを発行します。

6.5.2.7 ファイル・バージョン間の競合の解決方法

ファイルの自分のコピーとPerforce保管庫との間に競合がある場合は、影響があるファイルの横のアイコンに感嘆符が表示されます。このようなファイルをPerforce保管庫に発行することはできません。この問題を解決するには、競合のないファイルのバージョンに戻すか、競合を解決する必要があります。競合を解決するには、ローカルにインストールされたPerforceクライアント・アプリケーションを使用するか、「プリファレンス」ページ(「ツール」→「プリファレンス」→「バージョニング」→「Perforce」→「バージョン・ツール」)に指定されている別のマージ・ツールを選択して使用します。

競合のないバージョンのファイルに戻すには、次のようにします。

- ナビゲータでファイルを選択し、「バージョニング」→「回復」を選択します。

ファイル・バージョンの競合を解決するには(Perforceマージ・ツールを使用する場合)、次のようにします。

1. 「バージョニング」→「解決」を選択し、Perforceクライアントを開きます。

2. 保留中のクライアントの変更リストで、変更を識別します。

3. Perforceツールを使用して競合を解決します。
競合を自動マージできない場合、マージ・ツールを実行し、その機能を使用して競合データから確定バージョンを作成します。

4. マージを受け入れます。

5. マージを発行します。

6. JDeveloperで、「ビュー」→「リフレッシュ」を使用してファイルに緑色の点を表示します。
ファイルは編集可能な状態で開かれたままです。

7. ファイルを発行します。

6.5.2.8 Perforceコントロール下にあるファイルのステータスのリフレッシュ方法

ファイルのソース・コントロール・ステータスは、次に示すように、JDeveloperナビゲータにアイコン上の記号で示されます。

表6-2 Perforceのステータス・アイコン

アイコン

意味

ファイルはPerforceクライアント・ワークスペース内にありますが、まだPerforce保管庫に発行されていません。

ファイルはPerforce保管庫に次回発行されたときに削除されます。

ファイルはPerforce保管庫よりも古くなっています。

ファイルはPerforce保管庫と同じように最新の状態です。

ファイルは編集可能な状態で開いています。

ファイルはロックされています。

Perforceクライアント・アプリケーションの使用など、JDeveloperの外部でファイルのステータスが変更されると、新規のステータスがJDeveloperに即時に表示されない場合があります。アプリケーション・ナビゲータに表示されるステータスをソース・コントロール・システム内のファイルのステータスと確実に一致させるために、手動リフレッシュを実行できます。

JDeveloperでファイルのステータスをリフレッシュするには、次のようにします。

- 「表示」→「リフレッシュ」を選択します。

6.5.2.9 ファイルの削除方法

Perforceの管理下にあるファイルを削除する場合は、JDeveloper内でPerforceの機能を使用するか、Perforceクライアント・アプリケーションを使用して削除します。Perforce管理下にあるファイルを「ディスクから削除」または「削除」コマンドを使用して削除すると、バージョニングに関する問題が発生する可能性があるため、これらのコマンドは使用しないでください。

Perforceの管理下のファイルを削除するには、次のようにします。

1. ナビゲータでファイルを選択し、「バージョニング」→「削除のため開く」の順に選択します。
「ファイルの削除」ダイアログが表示されて、ファイルがリストされます。

2. 「OK」をクリックします。
ファイルはローカル・ファイル・システムから削除されます。ナビゲータでファイルのアイコンに黒い斜線の十字が追加されます。

削除されたファイルを取得する必要がある場合は、Perforceクライアントを使用する必要があります。これを行うには、「バージョニング」→「Perforce」→「Perforceクライアントの起動」の順に選択します。

6.5.3 変更リストの使用方法

Perforceでは、変更リストを使用すると、ファイルをまとめて操作を簡略化できます。ファイルを変更リストにまとめた後、1回の操作でこれらをチェックアウトしてすべて発行できるようになります。

Perforceでは、変更は変更リストを使用してPerforceリポジトリに発行されます。これにより、複数のファイルに対する変更を1つの論理ユニットにまとめて、1回の操作でこのユニットをPerforceリポジトリに発行できます。

変更リストは複数使用できます。自分や自分のチームの作業方法に応じて、特定のプロジェクト、関連するファイルのグループ、または他の任意のファイルのグループに関する変更リストを作成してから、1つの論理ユニットを作成する方が便利な場合があります。また、ファイルを変更リスト間で移動することもできます。

通常、変更リストを使用する場合、変更リストの作成、変更リストへのファイルの追加、ファイルの編集、編集したファイルと変更リストの発行というワークフローに従います。

また、変更リスト・ブラウザを介して既存の変更リストを参照することもできます。変更リスト・ブラウザを使用すると、変更リスト間でファイルを作成、発行および移動することもできます。変更リスト内の任意のファイルで発行操作が失敗した場合、その変更リスト全体が失敗します。つまり、Perforceリポジトリの整合性は維持されます。

6.5.3.1 Perforce変更リストの作成方法

Perforce変更リストを使用すると、変更された複数のファイルおよびフォルダを1回の手順で操作できるため、作業対象のファイルが複数存在する場合、プロセスが簡略化されます。

Perforce変更リストを作成するには、次のようにします。

1. 「バージョニング」メニューから「Perforce」→「変更リストの作成」を選択します。

2. 「接続」ドロップダウン・リストで、この変更リストに適したPerforce接続(複数存在する場合)を選択します。

3. 変更リストに追加するファイルを選択し、「すべて選択」を選択し、表示されているすべてのファイルをこの変更リストに追加します。

4. 必要に応じて、この変更リストにコメントを追加します。前のコメントを選択(および必要に応じて編集用のオプションを使用)することも、コメント・テンプレートを選択することもできます。

5. 目的に応じて変更リストを設定したら、「OK」をクリックします。

6.5.3.2 Perforceリビジョンまたは変更リストへの注釈付け方法

Perforceリビジョンまたは変更リストに注釈を付けると、リビジョン内のすべてのファイルにリンクされたコメントとしてPerforceリビジョンまたは変更リストを格納できます。Perforceでこれらのファイルを後で変更する場合、これらのファイルのリビジョンまたは変更リストの順序をファイルの注釈として表示できます。

変更リストに注釈を追加するには、次のようにします。

1. 「バージョニング」メニューから「バージョニング」→「Perforce」→「Perforce保留中変更リスト」を選択します。

2. 「変更リストの使用」セレクタをクリックして、表示する変更リストを選択します。

変更リストの「コメント」フィールドに前の注釈が表示されます。

6.5.3.3 ファイルのPerforce変更リストへの追加方法

Perforce変更リストを使用すると、変更された複数のファイルおよびフォルダを1回の手順で操作できるため、作業対象のファイルが複数存在する場合、プロセスが簡略化されます。ファイルをPerforceに追加する場合、「追加のため開く」メニューを使用して、これらのファイルを追加する変更リストを同時に選択できます。

変更リストにファイルを追加するには、次のようにします。

1. 「バージョニング」メニューから「Perforce」→「追加のため開く」を選択します。

2. 「変更リストの使用」セレクタをクリックして、使用する変更リストを選択します。

6.5.3.4 Perforce変更リストの発行方法

ファイルに対する一連の編集を行ったら、これらをPerforceで発行できます。変更リストを作成した場合、この変更リスト上のすべてのファイルを1回の操作で発行することも、編集したファイルのみを選択して発行することもできます。

変更リスト内のファイルを選択して発行するには、次のようにします。

1. 「バージョニング」メニューから「Perforce」→「変更リストの発行」を選択します。

2. 実行した変更の説明を「説明」フィールドに入力します。

3. 発行するファイルを確認します。必要に応じて、「すべて選択」および「すべて選択解除」ボタンを使用します。

6.5.3.5 変更リスト・ブラウザの使用方法

変更リスト・ブラウザを使用すると、Perforceリポジトリ内で保留中のすべての変更リストの状態を一目で参照できます。保留中の変更リストごとに名前、説明および内容が表示されます。デフォルトの変更リストは常にブラウザの上部に表示されます。各変更リストの下で、その変更リストに関連付けられたファイルを参照できます。また、ブラウザの上部にはPerforce接続およびクライアントも表示されます。

保留中変更リスト・ブラウザで、変更リストの作成および発行、変更リスト間のファイルの移動、およびブラウザのリフレッシュを行うことができます。

変更リスト・ブラウザを使用して変更リストを作成するには、次のようにします。

1. 「バージョニング」メニューから「Perforce」→「変更リストの作成」を選択します。

2. 「接続」ドロップダウン・リストで、この変更リストに適したPerforce接続(複数存在する場合)を選択します。

3. 変更リストに追加するファイルを選択し、「すべて選択」を選択し、表示されているすべてのファイルをこの変更リストに追加します。

4. 必要に応じて、この変更リストにコメントを追加します。前のコメントを選択(および必要に応じて編集用のオプションを使用)することも、コメント・テンプレートを選択することもできます。

5. 目的に応じて変更リストを設定したら、「OK」をクリックします。

変更リストを発行するには、次のようにします。

1. 「バージョニング」メニューから「Perforce」→「変更リストの発行」を選択します。

2. 実行した変更の説明を「説明」フィールドに入力します。

3. 発行するファイルを確認します。必要に応じて、「すべて選択」および「すべて選択解除」ボタンを使用します。

変更リスト間でファイルを移動するには、次のようにします。

1. 変更リスト・ブラウザでファイルを右クリックし、「変更リストへのファイルの移動」を選択します。

2. このファイルの移動先の変更リストを選択し、「OK」をクリックします。

[F1]を押して変更リスト・ブラウザをリフレッシュすることもできます。

6.5.4 パッチの作成および適用方法

あるファイルの2つのリビジョン間の変更内容を記録し、その変更内容を3番目のファイルに適用するとします。これを実行するには、パッチを作成して適用します。

パッチを作成するには、次のようにします。

この手順により、ファイルのコントロール・リビジョンとローカル・リビジョン間の差分で構成されるパッチが生成されます。

1. JDeveloperで、パッチを作成するファイルを開きます。

2. 「履歴」タブをクリックします。
「履歴」ビューには、ファイルのすべてのリビジョンが表示されます。「履歴」ビュー下部の左ペインにはローカル・リビジョンの内容が表示され、右ペインにはコントロール・リビジョンの内容が表示されます。

3. パッチを作成するリビジョンの組合せを選択します。

4. ポップアップ・メニューから「パッチの生成」を選択します。
「パッチ・コンテキストの選択」ダイアログが開く場合があります。このダイアログの使用時にヘルプを参照するには、[F1]を押してください。

「パッチの生成」ダイアログが開きます。必要に応じてダイアログを完了します。ダイアログの使用中にヘルプを参照するには、[F1]を押します。

パッチを適用するには、次のようにします。

1. ナビゲータで、パッチを適用するリソースを選択します。
リソースは、アプリケーション、プロジェクトまたはソース・ファイルの場合があります。

2. 「バージョニング」→「パッチの適用」を選択します。
プロジェクトにパッチを適用する場合は、「パッチ・コンテキストの選択」ダイアログが開きます。このダイアログで、プロジェクト・ファイル(.jpr)のパッチを適用するのか、またはプロジェクトの内容を更新するのかを指定する必要があります。

「パッチの適用」ダイアログが開きます。

3. 「パッチの適用」ダイアログの上部のグリッドで、ターゲット・リソースが正しく識別されていることを確認します。

4. パッチのソースを選択します。このオプションおよびこのダイアログの他のオプションの詳細は、[F1]を押してください。

5. 「プレビュー」をクリックします。これによって、「パッチの適用: プレビュー」ウィンドウが表示されます。このウィンドウで、特定の変更を受け入れることも拒否することもできます。「パッチの適用: プレビュー」ウィンドウのオプションの詳細は、[F1]を押してください。

6. パッチを適用するには、「OK」をクリックします。

6.6 Serena DimensionsとOracle JDeveloperの使用

JDeveloperでは、Dimensionsのソース・コントロール機能を使用できます。JDeveloperでは、Dimensionsのリポジトリ管理およびファイル・アクセス機能が統合されるため、リポジトリへのアクセス、ファイルのチェックインおよびチェックアウト、およびDimensions管理下にあるファイルのチェックイン・バージョンの表示が可能になります。

Dimensionsは、大規模なコンテンツ管理およびワークフロー管理パッケージの一部であるポピュラーなバージョン管理システムです。JDeveloperには、JDeveloper IDEからDimensionsのバージョン管理機能にアクセスできる拡張機能が含まれます。

JDeveloper内からDimensionsを使用するには、複数の簡単な設定操作を完了し、Dimensionsリポジトリが使用可能で、作業用ファイルがDimensionsの管理下にあることを確認する必要があります。

これにより、JDeveloperの現在のプロジェクトをDimensionsの管理下に設定できます。

DimensionsおよびJDeveloperを設定した後、多くの場合、通常のワークフローは次の基本的な順序に従います。

- 編集するファイルのチェックアウト

- 編集の実行および他のコンテンツ開発の実行

- ファイルのリポジトリへのチェックイン

ここで説明する一般的なワークフロー以外にも、ファイルのチェックアウトを元に戻すことが役に立つ場合もあります。

6.6.1 DimensionsとJDeveloperの設定方法

JDeveloperでのバージョン管理システムとしてDimensionsを使用する前に、いくつかの初期設定操作を実行する必要があります。この設定には、Dimensionsリポジトリへの接続、切断方法の学習(必要な場合)、およびJDeveloperでの初期プロジェクトの選択が含まれます。

6.6.1.1 Dimensionsリポジトリへの接続方法

ファイルのチェックアウト、作業用コピーと共通リポジトリとの同期化、またはビルド前のファイルのチェックインを行う場合、Dimensionsに接続します。接続した後、Dimensionsでのファイル操作のほとんどは、ファイル、フォルダまたはプロジェクトのポップアップ・メニューから実行できます。

Dimensionsプロファイルを作成するには、次のようにします。

1. 「バージョニング」→「ディメンション」→「ディメンションに接続」を選択します。

2. 「プロファイル」フィールドで、作成するプロファイルの名前を入力します。後で複数のプロファイルから選択する際に識別しやすい名前を使用します。

3. このプロファイルを作成するプロジェクトのためにDimensionsサーバーにログインする際に使用するユーザー名およびパスワードを入力します。

4. サーバーのURL (myserver.mycompany.comなど)、データベース名およびデータベース接続を入力します。この情報はDimensions管理者から取得できます。

5. 「OK」をクリックします。

既存のプロファイルを使用してDimensionsセキュリティに接続するには、次のようにします。

1. 「バージョニング」→「ディメンション」→「ディメンションに接続」を選択します。

2. Dimensionsサーバーにログインする際に使用するユーザー名およびパスワードを入力します。

Dimensionsに初めて接続する場合、この接続用のプロファイルを作成する必要があります。Dimensionsを複数のプロジェクトに対して使用する場合、様々なサーバーおよびデータベースに接続するために複数のプロファイルを使用できます。

6.6.1.2 Dimensionsリポジトリからの切断方法

自社が複数のリポジトリまたは複数のバージョン管理システムを使用している場合、Dimensionsリポジトリから切断すると、別のリポジトリに接続できます。また、異なるプロファイルを使用して接続する場合も、Dimensionsから切断する必要があります。

Dimensionsリポジトリから切断するには、次のようにします。

1. 「バージョニング」→「ディメンション」→「ディメンションから切断」を選択します。

2. 「OK」をクリックします。

6.6.1.3 ファイルのDimensionsコントロールへの追加方法

プロジェクトおよびアプリケーション用の新規ファイルを作成する場合、これらをDimensionsコントロールに追加し、他のチーム・メンバーおよびビルド・システムが使用できるようにする必要があります。

Dimensionsコントロールにファイルを追加するには、次のようにします。

1. ファイルを選択し、右クリックし、「バージョニング」→「ディメンション」→「追加」を選択します。

2. JDeveloperで「項目の追加」ダイアログが表示されたら、追加する項目を選択し、コメント(オプション)を入力し、「OK」をクリックします。

6.6.1.4 Dimensionsコントロールからのファイルの削除方法

作業対象のプロジェクトに適用されていないファイルがある場合、このファイルをDimensionsコントロールから削除できます。

Dimensionsコントロールからファイルを削除するには、次のようにします。

1. アプリケーション・ナビゲータでファイルをクリックして選択します。

2. 「バージョニング」→「ディメンション」→「削除」を選択します。

3. 「OK」をクリックします。

6.6.1.5 現在のプロジェクトの設定方法

現在のプロジェクトを設定すると、Dimensionsリポジトリと一致しない変更について監視するローカル・ディレクトリをDimensionsが認識できるようになります。現在のプロジェクトを設定した後、変更が保存されていないファイルが「保留中の変更」リストに表示されるとともに、プロジェクト内のファイルがアプリケーション・リソース・ナビゲータなどで使用可能になります。プロジェクトを設定する前に、Dimensionsに接続されている必要があります。

現在のプロジェクトを設定するには、次のようにします。

1. 「バージョニング」→「現在のプロジェクトの設定」を選択します。

2. プロジェクトをローカル・ワークスペース(デフォルト・ディレクトリJDeveloper/myworkなど)から選択するには、「グローバル・プロジェクトの使用」を選択します。Dimensions管理者によって定義されたデフォルト・プロジェクトで作業している場合は、「デフォルト・プロジェクトの使用」を選択します。

3. 製品およびプロジェクトをドロップダウン選択ボックスから選択します。

4. ローカル・ファイル・システム内のこのプロジェクトのファイルのルート・ディレクトリを入力するか、「参照」をクリックしてリストから選択します。

5. 「OK」をクリックします。

6.6.2 Dimensionsでのファイルの使用方法

初期設定後、Dimensionsでの作業のほとんどにファイルが関わります。ファイルはDimensionsリポジトリに追加(および場合によってはDimensionsリポジトリから削除)する必要があります。ファイルはバージョニング・ナビゲータで参照できます。ここでは、ファイルのチェックアウト、チェックイン、または操作が可能です。また、Dimensionsでは、リポジトリ内のファイルのコピーを表示できるため、作業しているファイルのバージョンからの変更を検索できます。

6.6.2.1 ファイルのDimensionsへのインポート方法

新規JDeveloperアプリケーションを作成した場合、インポート・ウィザードを使用すると、このアプリケーションのすべてのファイルを1回の操作でDimensionsに追加できます。

Dimensionsにファイルをインポートするには、次のようにします。

1. アプリケーションを作成します(「ファイル」→「新規」→「アプリケーション」→アプリケーション・タイプの選択)。

2. アプリケーションをバージョニングします(選択したプロジェクトの右クリック→「プロジェクトのバージョニング」→「ディメンション」)。

3. ソース・コントロールへの接続を確立します(バージョニング・ナビゲータで選択したバージョン管理システムの右クリック→「新規ディメンション接続」→Dimensions接続データの入力)。これにより、ディメンションへのインポート・ウィザードが開き、「ようこそ」画面が表示されます。

4. 「ようこそ」画面で、続行する場合は「次へ」をクリックし、ディメンションへのインポート・ウィザードを次回使用するときに「インポート先」ページに進む場合は「次回にこのページを表示しない」を選択します。

6.6.2.2 ナビゲータ・アイコンのオーバーレイの使用

JDeveloperでは、表6-3に示すように、ファイル・ナビゲータ・アイコンの複数のオーバーレイを使用して、Dimensions内の関連ファイルの状態を表します。

表6-3 Dimensionsのステータス・アイコン

アイコン

説明

Dimensionsの管理下にはないファイル

ファイルはDimensionsの管理下にはありません。

複数のユーザーによって抽出されたファイル

ファイルは他のユーザーによって抽出されましたが、チェックアウトが可能です。

他のユーザーによって抽出されたファイル

ファイルは他のユーザーによって抽出され、チェックアウトは不可能です。

単一のユーザーによって抽出されたファイル

ファイルは単一のユーザーによって抽出されましたが、チェックアウトが可能です。

抽出されていないファイル

ファイルは抽出されていません。

認証されていないファイル

ユーザーはDimensionsサーバーにログインしていません。

サーバーから削除されたファイル

ローカル・ファイルはDimensionsサーバーから削除されています。

6.6.2.3 Dimensionsプロジェクトのダウンロード方法

Dimensionsで作業する上で、Dimensionsリポジトリからファイルをローカルの作業ディレクトリにダウンロードすることが重要になります。この作業は、Dimensionsに接続した後で実行できます。Dimensionsサーバーにサインインした後、バージョニング・ナビゲータを使用して、作業する内容にナビゲートします。フォルダを選択した後、フォルダの内容をローカルの作業ディレクトリにダウンロードできます(サブフォルダを開くためのオプションが用意されています)。

Dimensionsリポジトリの内容を作業ディレクトリにコピーしたら、この内容をDimensions内の現在のプロジェクトとして設定する必要があります。

Dimensionsリポジトリからダウンロードするには、次のようにします。

1. バージョニング・ナビゲータでDimensionsエントリの横にある「+」をクリックします。これにより、Dimensionsサーバーに接続する際に使用したプロファイルが表示されます。

2. プロファイル名の横にある「+」をクリックします。これにより、ユーザーのプロファイルで使用可能なDimensionsサーバー上のプロジェクトのリストが開きます。プロジェクトの数や接続速度によって、これには数分かかる場合があります。

3. 使用可能なプロジェクトを参照し、「+」をクリックしてプロジェクトのカテゴリおよびフォルダを開きます。作業する内容を識別したら、フォルダを選択し、右クリックして「ダウンロード」を選択します。

4. 次のように、ダウンロードの場所および設定を指定します。

- インポート先
ローカル作業領域の場所を入力します。「参照」ボタンを使用して、ディレクトリ・ブラウザから選択します。

- 置換変数の拡張
作業領域のダウンロード時に拡張する置換変数をプロジェクトで使用する場合、これを選択します。

- データベース・タイムスタンプの使用
Dimensionsリポジトリ内のものと同じタイムスタンプを使用してローカル・ファイルのコピーを作成する場合、これを選択します。これが選択されていない場合、ファイルをダウンロードしたときの日時を反映してタイムスタンプが作成されます。

- 再帰
ディレクトリを拡張(再帰)し、プロジェクトのすべてのディレクトリ内のすべてのファイルをチェックアウトする場合、これを選択します。

- ローカル・ファイルの上書き
作業領域内の任意のローカル・ファイルをリポジトリの内容で上書きする場合、これを選択します。ローカル・ファイルで変更が行われていても、チェックインされていなければ、その変更は失われます。

5. 「OK」をクリックします。

6.6.2.4 ファイルのチェックアウト方法

Dimensionsリポジトリからローカル作業ディレクトリにファイルをチェックアウトすると、チーム上の他のユーザーの変更に対してトラッキングされる変更を行うことができます。これを行うには、Dimensions Webクライアントを使用します。Dimensions Webクライアントにアクセスするために必要なログイン情報は、Dimensions管理者に問い合せてください。Dimensions Webクライアントにサインインした後、左側のペインを使用して、作業する内容にナビゲートします。Webクライアントでは、この内容は右側の表示ペインに表示されます。フォルダを選択すると、フォルダの内容がローカルの作業ディレクトリにチェックアウトされます(サブフォルダを開くためのオプションが用意されています)。JDeveloperでDimensions管理のファイルを開くときにファイルを自動的にチェックアウトするかどうかを制御できます。「ツール」→「プリファレンス」→「バージョニング」→「ディメンション」→「一般」を選択します。「自動的にファイルをチェックアウト」オプションを使用すると、ローカルの作業コピーを編集するときにリポジトリからファイルを自動的にチェックアウトするかどうかを指定できます。

Dimensionsリポジトリから内容をチェックアウトするには、次のようにします。

1. 「バージョニング」→「ディメンション」→「チェックアウト」を選択します。この操作により、「チェックアウト」ダイアログが開きます。

2. プロジェクト・フォルダの内容をチェックアウトというタイトルのフィールドで、ファイルのチェックアウト先のパス(デフォルトでは、JDeveloper/mywork)を入力または参照します。

3. Dimensions Webクライアントには、次のオプションが表示されます。作業しているプロジェクトに必要なオプションを選択します。

- 書込み可能な作業ファイルが存在する場合
「上書き」を選択し、作業ディレクトリ内で同じ名前を持つ書込み可能ファイルを強制的に上書きします。それ以外の場合は、「上書きしない」を選択します。

- リクエストに関連
Dimensionsによって保守されるリクエスト(ビルドの変更やバグ修正などをトラッキングするための手段)にこのチェックアウト(およびこのチェックアウトの一環として行う任意の変更)を関連付けることができます。Dimensionsバージョン管理システムは、ワークフローやバグ・トラッキングなどが統合された、より大規模なプロジェクト管理システムの一部です。詳細は、Dimensions Webクライアントのオンライン・ヘルプを参照してください。

- サブディレクトリを含む
選択した内容のみでなく、選択したフォルダ内のサブディレクトリの内容もチェックアウトする場合、これを選択します。テストおよび検証のためにローカル・ビルドを実行するため、プロジェクト内のすべてのファイルにアクセスする必要がある場合、これを選択する必要があります。

4. 「OK」をクリックします。

Dimensionsリポジトリの内容を作業ディレクトリにチェックアウトしたら、この内容をDimensions内の現在のプロジェクトとして設定する必要があります。

必要な変更を行ってこれらをローカルで編集したら、変更したファイルをチェックインできます。

6.6.2.5 ファイルのチェックアウトを元に戻す方法

基本的に、ファイルのチェックアウトを元に戻すと、リポジトリ内のファイルはそのままの状態を維持しながら、ファイルをチェックアウトしたユーザーやファイルがチェックアウトされた日時に関するレコードがリポジトリのデータベースから削除されます。この場合、ファイルは最後にチェックインしてから変更されずに維持されるのみでなく、他のチーム・メンバーによるチェックアウトも可能なままになります。基本的に、チェックアウトを元に戻すと、ファイルのチェックアウト後に行ったすべての作業が破棄されます。現在の状況においてチェックアウトを元に戻すことが最も効率的な解決策であるかどうかを自分自身で判断し、ローカル・コピーを(ローカルのDimensionsディレクトリの外部に)保存するだけの価値があるかどうかを検討してください。

ファイルのチェックアウトを元に戻すには、次のようにします。

1. 保留中変更リストでファイルを右クリックし、「チェックアウトを元に戻す」を選択します。この操作により、「チェックアウトを元に戻す」ダイアログが開きます。

2. チェックアウトを元に戻した後フィールドで、ローカル・コピーをそのままの状態で維持する方法を選択します。
作業ファイルを読取り専用のままにする
ローカル・ディレクトリ内のすべてのコピーを変更しないまま読取り専用モードにする場合、これを選択します。将来使用するために保持する必要がある変更を多数行った場合、この方法が最も安全です。

作業ファイルを最新のコピーに置換する
ローカル・ディレクトリをDimensionsリポジトリ内のすべてのファイルの最新バージョンに更新する場合、これを選択します。これにより、作業元を最新バージョンにできますが、実行した変更がすべて上書きされます。

作業ファイルの削除
チェックアウトしたファイルをすべてローカル・ディレクトリから削除する場合、これを選択します。これが、プロジェクト内のすべてのファイルを再度チェックアウトすることによって白紙の状態から開始できる最も確実な方法です。

3. 「サブディレクトリを含む」フィールドで、選択したサブディレクトリの下にあるすべてのサブディレクトリに前の選択内容を適用する(作業ファイルを読取り専用のままにする、作業ファイルを最新のコピーで置換する、または作業ファイルを削除する)かどうかを選択します。サブディレクトリの構造化方法に応じて、これを使用して、選択して元に戻すファイルおよび内容に関する精度を制御できます。

4. 「OK」をクリックします。

チェックアウトを元に戻した後、Dimensionsで再度作業を行う前に、最新の内容をチェックアウトする必要があります。

また、ローカルの作業ディレクトリ上でDimensions制御の内容のコピーを取得することもできます。

6.6.2.6 ファイルのチェックイン方法

担当している内容の変更を実行して検証した後、これをDimensionsにチェックインすることによってチームの残りのメンバーが使用できるようにします。これにより、作業がDimensionsリポジトリにアップロードされ、他のチーム・メンバーおよび自社のビルド・プロセスに対して使用可能になります。

Dimensionsにファイルをチェックインするには、次のようにします。

1. 保留中変更リストでファイルを右クリックし、「チェックイン」を選択します。この操作により、「チェックイン」ダイアログが開きます。

2. 「チェックイン」ダイアログで、チェックインする作業に適した選択を行います。
ディレクトリからチェックイン:
新規作業のチェックイン元であるローカル・ファイル・システム内のディレクトリを入力するか、フィールドの横にあるボタンをクリックしてファイル・システム・ブラウザを開きます。

サブディレクトリを含む
選択したサブディレクトリの下にあるサブディレクトリ内のファイルがチェックイン対象の作業に含まれる場合、これを選択します。

作業ファイルが変更されていない場合:
作業ディレクトリ内で変更されていない内容を処理する方法を決定する場合、これを選択します。Dimensionsリポジトリ内のタイムスタンプを更新する場合、変更されていないファイルのチェックインを選択します。または、変更されていないファイルのチェックアウトに関するレコードをDimensionsデータベースから削除する場合、チェックアウトを元に戻すことを選択します。

チェックイン後:
ローカル作業ディレクトリ内の内容をそのままで維持する方法を指定します。作業ファイルを読取り専用としてそのままにすることができます。この場合、ファイルは作業終了時のまま維持されますが、読取り専用としてマークされ、Dimensionsの管理下にないときに記録せずに変更を行うことが禁止されます。または、作業ファイルの削除を選択することもできます。この場合、ファイル(およびチェックイン対象の他のすべてのファイル)のローカル・コピーが削除されます。どちらを選択するにせよ、作業を再開する前にファイルをDimensionsから再度チェックアウトする必要があります。

説明
実行する変更の説明を入力します。この時点で実行している特定のチェックインの識別およびトラッキングに役立つバグ・トラッキング番号または他の情報を含めることができます。ただし、Dimensionsリクエスト・システムに対してファイルをトラッキングする方が、変更を監視する上でより効率的な方法です。

3. 「OK」をクリックします。

6.6.2.7 保留中の変更リストについて

保留中の変更リストには、作成または変更されたがまだDimensionsに追加されていないファイル、フォルダおよび他の要素が表示されます。次のものが含まれます。

- JDeveloperで編集したファイル

- JDeveloperで作成したがDimensionsの管理下に置いていない新規プロジェクト内のすべてのファイル

- 一部のDimensions関連アクティビティを実行する必要がある任意のファイル。

ファイルは、コピーをローカルで保存するときに保留中の変更リストに追加されます。

6.7 Rational ClearCaseとOracle JDeveloperの使用

JDeveloperでは、Rational ClearCaseリリース4.0以降(ClearCase 2002を含む)のソース・コントロール機能を使用できます。JDeveloperはClearCaseとシームレスに連携して動作するため、一度構成すると、ソース・コントロールにファイルを追加し、これらをナビゲータでチェックインおよびチェックアウトできるようになります。

JDeveloperのRational ClearCase拡張機能を使用すると、JDeveloper内でRational ClearCaseのソース・コントロール機能を使用できます。ClearCaseインストールと連携して動作するようJDeveloperをした後、ソース・コントロールにファイルを追加し、これらをナビゲータでチェックインおよびチェックアウトできるようになります。

ClearCaseで作業するには、ワークスペース、プロジェクトおよびファイルをClearCaseビューに格納する必要があります。新規プロジェクトおよびファイルがClearCaseソース・コントロールの管理下に置かれる前に、これらをClearCaseに明示的に追加する必要があります。ファイルがClearCaseビューに追加されたら、ファイルのチェックインおよびチェックアウト、バージョンの比較、ファイル履歴のレビュー、および(必要な場合は)ClearCase内のファイルの削除が可能になります。

6.7.1 Rational ClearCaseを使用するためのJDeveloperの構成方法

ClearCaseをJDeveloperと使用するには、ClearCase 4.0以降のクライアントがJDeveloperと同じマシンにインストールされている必要があります。

ClearCaseを使用するようJDeveloperを構成するには、次のようにします。

1. 「ツール」→「プリファレンス」を選択し、「バージョニング」ノード、「ClearCase」ノードの順に選択します。

2. 必要に応じてプリファレンスを設定します。ClearCaseにはプリファレンスのページが複数存在します。特定のプリファレンスに関する詳細は、[F1]を押してください。

3. 「プリファレンス」ダイアログを閉じるには、「OK」をクリックします。

自動的に接続するよう(プリファレンスで)選択していない場合、ClearCaseサーバーに接続されていることを確認し、「バージョニング」→「ClearCaseに接続」を選択します。

これで、ClearCaseと連携して動作するようJDeveloperが構成され、マウントされているClearCaseビュー内にすでに存在するファイルおよびフォルダにアクセスできるようになります。新規ファイルおよびフォルダはClearCaseビューに作成またはコピーする必要があります。

新規ファイルをClearCaseに追加するには、第6.7.2項「ファイルのClearCaseへの追加方法」を参照してください。

6.7.2 ファイルのClearCaseへの追加方法

ClearCaseで作業するには、ワークスペース、プロジェクトおよびファイルをClearCaseビューに格納する必要があります。新規プロジェクトおよびファイルがClearCaseソース・コントロールの下に置かれる前に、これらをClearCaseに明示的に追加する必要があります。「ClearCaseに追加」ダイアログのコメント・ペインを使用すると、様々なファイルのグループ用のコメントを作成できます。入力するコメントは、選択したファイルに適用されます。たとえば、すべてのファイルを選択し、グローバル・コメントを入力できます。次に、より少ない数のファイルを選択します。最初のコメントが表示され、これにコメントを追加できます。その後、このグループ内の単一のファイルを選択し、このファイルに固有の別のコメントを追加できます。

1つ以上のファイルをClearCaseに追加するには、次のようにします。

1. ナビゲータでファイルを選択し、「バージョニング」→「追加」を選択します。「ClearCaseに追加」ダイアログが表示され、選択した項目がリストされます。
ファイルに対する作業を続行する場合は、「チェックイン」ボックスの選択は解除されたままにします。このボックスを選択すると、ファイルはチェックインされ、作業するにはチェックアウトが必要になります。

2. ClearCaseソース・コントロールにリスト内のファイルを追加するには、「OK」をクリックします。フォルダをClearCaseに追加するかどうかを尋ねる1つ以上のメッセージが表示される場合があります。「はい」をクリックします。

6.7.3 ClearCaseコントロール下にあるオブジェクトのステータスのリフレッシュ方法

オブジェクトのソース・コントロール・ステータスは、アプリケーション・ナビゲータにアイコン上の記号で次のように示されます。

表6-4 ClearCaseのステータス・アイコン

アイコン

説明

オブジェクトはチェックアウトされており、変更できます。

オブジェクトはチェックインされており、変更するにはチェックアウトする必要があります。

外部のソース・コントロール・ソフトウェアを使用したオブジェクトのチェックインなど、JDeveloper外部でオブジェクトのステータスが変更されると、新規のステータスがJDeveloperに即時に表示されない場合があります。アプリケーション・ナビゲータに表示されるステータスをソース・コントロール・システム内のオブジェクトのステータスと確実に一致させるために、手動リフレッシュを実行できます。JDeveloperでオブジェクトのステータスをリフレッシュするには、「バージョニング」→「状態のリフレッシュ」を選択します。

6.7.4 ファイルのClearCaseからの削除方法

ファイルが必要なくなった場合、ClearCaseからファイルを削除できます。ファイルは、ファイルが含まれるディレクトリの現在のバージョンから削除されます。

ClearCaseからファイルを削除するには、次のようにします。

1. ナビゲータで1つ以上のファイルを選択し、「バージョニング」→「削除」を選択します。「ClearCaseから削除」ダイアログにファイルがリスト表示されます。

2. リストされているファイルをClearCaseからすべて削除するには、「OK」をクリックします。

ファイルはディレクトリの現在のバージョンから削除され、作業できなくなります。

6.7.5 ファイルのClearCaseへのチェックイン方法

ファイルに対する作業が終了したら、これをClearCaseにチェックインする必要があります。

アプリケーション・ナビゲータに表示されるファイルをチェックインするには、次のようにします。

- アプリケーション・ナビゲータでファイルを選択し、「バージョニング」→「チェックイン」を選択します。

「ClearCaseにチェックイン」ダイアログが表示され、選択したファイルがリストされます。

ファイルがClearCase内の前のバージョンと同一であってもチェックインする場合は、「ファイルが同一であっても強制的にチェックイン」ボックスを選択します。このボックスを選択しない場合、ClearCaseでこのタイプのファイルが処理される方法に応じてファイルがチェックアウトされているままである可能性があります。ファイルがチェックアウトされたままである場合、「チェックアウトを元に戻す」コマンドを使用して、前のチェックインされた状態にファイルを戻すことができます。

このチェックインに関するコメントを「コメント」ボックスに入力します。または、チェックアウト時に使用したものと同じコメントをチェックインに使用する場合は、「チェックアウトのコメントを使用」ボックスを選択します。

リストされているファイルをチェックインするには、「OK」をクリックします。リスト内のファイルがClearCaseソース・コントロールにチェックインされます。

「チェックアウト・ファイル」ウィンドウに表示されるファイルをチェックインするには、次のようにします。

1. 「チェックアウト・ファイル」ウィンドウでチェックインするファイルを選択します。「チェックアウト・ファイル」ウィンドウについて詳細を参照するには、[F1]を押してください。

2. ビューアのボタン・バーで、「チェックイン」ボタンをクリックします。

6.7.6 ファイルのClearCaseからのチェックアウト方法

ファイルに対して作業を行うには、ファイルをClearCaseからチェックアウトする必要があります。

ClearCaseプリファレンス・ページで「自動的にファイルをチェックアウト」プリファレンス(「ツール」→「プリファレンス」を選択して「ClearCase」を選択することによって使用可能)が設定されている場合、ファイルの変更を開始するとファイルは自動的にチェックアウトされます。このプリファレンスは、データファイル、ワークスペース・ファイルおよびプロジェクト・ファイルに適用されます。データファイルの場合、ソース・ビューで編集を開始するとファイルはチェックアウトされます。誤ってファイルをチェックアウトした場合は、すぐに「バージョニング」→「チェックアウトを元に戻す」を使用して元に戻します。

1つ以上のファイルを手動でチェックアウトするには、次のようにします。

1. アプリケーション・ナビゲータでファイルを選択し、「バージョニング」→「チェックアウト」を選択します。「ClearCaseからチェックアウト」ダイアログが表示され、選択した項目がリストされます。
自分よりも前に別のユーザーが同じファイルをチェックアウトしてからチェックインできないようにするには、「ユーザーにチェックアウトが予約済」ボックスを選択します。

2. このチェックアウトに関するコメントを「コメント」ボックスに入力します。

3. リストされているファイルをチェックアウトするには、「OK」をクリックします。

リスト内のファイルがClearCaseソース・コントロールからチェックアウトされ、これらに対して作業を実行できます。

チェックアウトされたファイルが「チェックアウト・ファイル」ウィンドウに表示されます。このウィンドウはファイルが初めてチェックアウトされるときに開きます。これを後で開くには、「バージョニング」→「チェックアウト・ファイルの表示」を選択します。

6.7.7 ClearCaseのチェックアウトを元に戻す方法

ファイルをチェックアウトしたがまだ何も変更していなかったり、実行した変更を破棄する場合、このファイルの最後のチェックアウトを元に戻すことができます。

警告:

チェックアウトされた後に変更されたファイルに対してこれを使用する場合、作業が失われる可能性があります。

1つ以上のファイルのチェックアウトを元に戻すには、次のようにします。

1. ナビゲータでファイルを選択し、「バージョニング」→「チェックアウトを元に戻す」を選択します。「ClearCaseのチェックアウトを元に戻す」ダイアログが表示され、選択した項目がリストされます。

2. リストされているすべてのファイルのチェックアウトを元に戻し、これらのファイルに対して行った変更を破棄するには、「OK」をクリックします。

6.7.8 ClearCaseのチェックアウトのリスト方法

ClearCaseからチェックアウトしたすべてのファイルを表示できます。これにより、たとえば、別のアクションを実行する前にチェックインが必要なファイルを確認できます。

ClearCaseのチェックアウトをリストするには、次のようにします。

- 「バージョニング」→「チェックアウト・ファイルの表示」を選択します。「チェックアウト・ファイル」ビューアが表示されます。

6.7.9 ClearCaseにチェックインされたファイルの比較方法

この操作は、ClearCaseのソース・コントロール下にあるファイルのバージョンを比較する場合に使用します。ファイルは、その直前のバージョン、ファイルの以前のリビジョン、またはファイル・システム上の他のファイルと比較できます。

どの比較ビューア(JDeveloperまたはClearCase)を使用するかを選択するには、「ツール」→「プリファレンス」で選択したClearCaseの「バージョン・ツール」プリファレンス・ページでオプションを設定します。

ファイルを直前のバージョンと比較するには、次のようにします。

- アプリケーション・ナビゲータでファイルを選択し、「バージョニング」→「前のバージョンと比較」を選択します。

差分がない場合は、メッセージが表示されます。そうでない場合は、比較ビューアが表示され、ここで差異を見つけて調整できます。

ファイルを別のリビジョンと比較するには、次のようにします。

- アプリケーション・ナビゲータでファイルを選択し、「バージョニング」→「比較」を選択します。前のファイル・リビジョン・オプションが選択されていることを確認します。

ファイルの前のバージョンが「ClearCaseファイルと比較」ダイアログに表示されます。現在のファイルと比較するバージョンを選択し、「OK」をクリックします。

差分がない場合は、メッセージが表示されます。そうでない場合は、比較ビューアが表示され、ここで差異を見つけて調整できます。

ファイルをClearCaseソース・コントロール外のファイルと比較するには、次のようにします。

- アプリケーション・ナビゲータでファイルを選択し、「ファイル」→「比較対象」→「その他のファイル」を選択します。

「比較対象のファイルを選択」ダイアログが開きます。

現在のファイルと比較するファイルを参照して選択し、「開く」をクリックします。

6.7.10 ClearCaseファイルの履歴の表示方法

この操作は、ClearCaseのソース・コントロール下にあるファイルの履歴を表示する場合に使用します。

履歴を表示するには、次のようにします。

- ナビゲータでファイルを選択し、「バージョニング」→「履歴の表示」を選択します。

6.7.11 ClearCaseファイルの説明の表示方法

この操作は、ClearCaseのソース・コントロール下にあるプロジェクトまたはファイルの説明を表示する場合に使用します。

説明を表示するには、次のようにします。

- ナビゲータでファイルを選択し、「バージョニング」→「説明の表示」を選択します。

メッセージ・ログ・ウィンドウに説明が表示されます。

6.8 Team SystemとOracle JDeveloperの使用

Oracle JDeveloperのTeam System拡張機能を使用すると、JDeveloper内でMicrosoft Visual Team Systemのソース・コントロール機能を使用できます。Team Systemと連携して動作するようJDeveloperをした後、ソース・コントロールにファイルを追加し、これらをナビゲータでチェックインおよびチェックアウトできるようになります。

Team SystemとJDeveloperの使用を開始するには、最初にTeam Systemソフトウェアを使用してワークスペースを作成してから、このワークスペースにTeam Systemサーバーの内容を移入します。ファイルはワークスペースにチェックアウトされ、ここで作業できるようになります。JDeveloper内に新しく作成されたファイルは、バージョン・コントロールに追加する必要があります。変更および新規ファイルは、Team Systemサーバーにチェックインすることによって他のユーザーが使用できるようになります。

6.8.1 Team SystemとJDeveloperの設定方法

Team SystemとJDeveloperの使用を開始する前に、実行が必要な初期ステップがいくつかあります。

1. Team Systemクライアント・ソフトウェアを設定します。第6.8.1.1項「JDeveloperと使用するためのTeam Systemの設定方法」を参照してください。

2. Team Systemと使用するためにJDeveloperを構成します。これには、Team SystemをJDeveloperによって認識されるソース・コントロール・システムにするためのプリファレンスおよび他の設定が含まれます。第6.8.1.2項「Team Systemと使用するためのJDeveloperの構成方法」を参照してください。

Team Systemは実際には(任意のバージョン管理システムと同様)、製品のライフサイクル内の位置に応じて様々な場面で使用する複数の操作で構成されています。たとえば、新規ファイルを作成する場合、これをTeam Systemコントロールに追加する必要があります。開発の段階に応じて実行できる場合がある他の操作には、次が含まれます。

- ファイルをサーバーからチェックアウトして作業できるようにします。第6.8.2.3項「ファイルのチェックアウト方法」を参照してください。

- Team Systemワークスペースに保存されたファイルを変更し、他のユーザーが使用できるようにします。第6.8.2.6項「ファイルのチェックイン方法」を参照してください。

- Team Systemのシェルブ機能を使用して、ファイルをチェックインする必要なくTeam Systemサーバーにファイルの変更を保存します。第6.8.2.12項「ファイルのシェルブおよびアンシェルブ方法」を参照してください。

- Team Systemファイルに対して自分で行った変更とチーム・メンバーによって行われた変更の間の競合を解決します。

- ファイルをTeam Systemサーバーにチェックインします。

6.8.1.1 JDeveloperと使用するためのTeam Systemの設定方法

JDeveloperと使用するためにTeam Systemを設定するには、次のようにします。

1. Team Systemサーバーをインストールします。

2. Team Systemクライアント・ソフトウェアをインストールします。

3. Team Systemクライアント・ソフトウェアをTeam Systemサーバーに接続します。

4. Team Systemクライアント・ソフトウェアを使用して1つ以上のワークスペースを作成します。

5. Team Systemクライアント・ソフトウェアを使用してTeam Systemサーバーの内容をワークスペースに移入します。

前述の作業の実行に関する指示は、Team Systemオンライン・ヘルプを参照してください。

6.8.1.2 Team Systemと使用するためのJDeveloperの構成方法

Oracle JDeveloperと使用するためにTeam Systemを設定したら、Team Systemを使用するようJDeveloperを構成できます。第6.8.1.1項「JDeveloperと使用するためのTeam Systemの設定方法」の手順以外にも、JDeveloper Team System VCS拡張機能が(Official Oracle Extensions and Updatesセンターから)すでにインストールされていることを確認してください。

Team Systemと使用するためにJDeveloperを構成するには、JDeveloperで次のアクティビティを実行します。

- プリファレンスを設定します。

- Team SystemをJDeveloperバージョニング・システムとして選択します。

- JDeveloperと使用するためのワークスペースを設定します。

- ワークスペース・ファイルを保持するためのJDeveloperプロジェクトを作成します。

- JDeveloperでワークスペース・フォルダをリフレッシュします。

Team Systemと使用するためにJDeveloperプリファレンスを設定するには、次のようにします。

1. 「ツール」→「プリファレンス」を選択し、次に「プリファレンス」ダイアログの左側のペインで「拡張機能」を選択します。

2. 右側のペインで、「バージョニング・サポートn」チェック・ボックスが選択されていることを確認して、「構成」をクリックします。

3. 「Team Systemのバージョニング・サポートn」が選択されていることを確認します。

4. 「プリファレンス」ダイアログの左側のパネルで、「バージョニング」ノード、「Team System」ノードの順に開きます。Team System設定のメイン・パネルが表示されます。その他のTeam System設定パネルは、「Team System」ノードの下の項目をクリックすると表示されます。

5. 必要に応じて設定を変更します。
特定の設定に関する詳細は、[F1]を押してください。

6. 「OK」をクリックして「プリファレンス」ダイアログを閉じます。

バージョニング・システムとしてTeam Systemを選択するには、次のようにします。

- 「バージョニング」→「バージョン・システム: [...]」→「Team System」を選択します。

JDeveloperと使用するためにワークスペースを設定するには、次のようにします。

1. 「バージョニング」→「ワークスペースの設定」を選択します。

2. リストから必要なワークスペースを選択します。

ワークスペース・ファイルを保持するためにJDeveloperプロジェクトを作成するには、次のようにします。

1. 「ファイル」→「新規」をクリックして、「新規ギャラリ」を開きます。

2. 新規ギャラリを使用して、新規アプリケーションおよびプロジェクトを作成します。

3. アプリケーション・ナビゲータで、新しく作成したプロジェクトを選択し、ツールバーで「プロジェクト・コンテンツに追加」ボタンをクリックします。
これにより、「プロジェクト・プロパティ」ダイアログの「プロジェクト・コンテンツ」ページが開きます。

4. 「Javaコンテンツ」領域の「追加」ボタンを使用して、ワークスペースの場所を追加します。
ワークスペースにJavaソースが含まれていた場合、ダイアログが表示され、これを使用して、このソースをプロジェクト内容に追加することを確認する必要があります。

混乱を避けるために、workspace以外の場所をJavaコンテンツ・リストから削除することもできます。

5. 「OK」をクリックして、「プロジェクト・プロパティ」ダイアログを終了します。

JDeveloperでワークスペース・フォルダをリフレッシュするには、次のようにします。

- 「バージョニング」→「ワークスペース・フォルダのリフレッシュ」を選択します。

6.8.2 Team Systemでのファイルの使用方法

ほとんどのバージョン管理システムで慣れ親しんでいるファイル・システムの操作(チェックインおよびチェックアウト、ファイルのリポジトリへの追加など)以外にも、Team Systemでは、個々のファイル・バージョンをサーバーから指定できます。

6.8.2.1 ファイルのバージョンのTeam Systemサーバーからの取得方法

JDeveloperでは、アプリケーション・ナビゲータ内にあるファイルのバージョンを(Team Systemサーバーから)取得できます。以前にTeam Systemクライアント・ソフトウェアで取得コマンドを使用してワークスペースにソース・ファイルが移入されている必要があります。

この手順を使用して取得できるファイルのバージョンは、最新のバージョン、前に保存した名前付き変更リストのファイル、特定の日付スタンプを持つファイル、前に作成した名前付きラベルのファイル、特定のワークスペース・バージョンのファイルです。

Team Systemサーバーから取得されたバージョンにより、現在アプリケーション・ナビゲータ内にあるバージョンが置換されます。

ファイルのバージョンをTeam Systemサーバーから取得するには、次のようにします。

1. アプリケーション・ナビゲータで、取得操作の範囲を設定するアプリケーション、プロジェクトまたはファイルを選択します。

2. 「バージョニング」→「取得」を選択します。
「取得」ダイアログが開きます。

3. ダイアログを完了します。
ダイアログの使用中に詳細を参照するには、[F1]を押します。

6.8.2.2 ファイルのTeam Systemコントロールへの追加方法

ファイルをTeam Systemソース・コントロール下に置くために使用します。ファイルはTeam Systemサーバーに追加され、ファイルを次回チェックインするときに他のユーザーが使用できるようになります。

ファイルをTeam Systemコントロールに追加するには、次のようにします。

1. アプリケーション・ナビゲータで、Team Systemコントロールに追加するファイルを選択します。

2. 「バージョニング」→「追加」を選択します。
「追加」ダイアログが開きます。

3. ダイアログを完了します。
ダイアログの使用中に詳細を参照するには、[F1]を押します。

4. ファイルをサーバーに追加し、他のユーザーが使用できるようにするには、ファイルをチェックインします。

6.8.2.3 ファイルのチェックアウト方法

ファイルをチェックアウトして作業できるようにするために使用します。ファイルがすでにTeam Systemソース・コントロール下に置かれている必要があります。

ファイルをチェックアウトするには、次のようにします。

1. アプリケーション・ナビゲータで、チェックアウトするアプリケーション、プロジェクトまたはファイルを選択します。

2. 「バージョニング」→「チェックアウト」を選択します。
「チェックアウト」ダイアログが開きます。

3. ダイアログを完了します。
ダイアログの使用中に詳細を参照するには、[F1]を押します。

6.8.2.4 ファイルのステータスの表示方法

この操作は、Team Systemのソース・コントロール下にあるファイルのステータスを確認する場合に使用します。第6.8.2.5項「ファイルのステータスのリフレッシュ方法」を参照してください。

ファイルのステータスを表示するには、次のようにします。

1. アプリケーション・ナビゲータでファイルを選択し、ポップアップ・メニューを開き、「バージョニング」→「プロパティ」を選択します。

2. 「バージョニング」タブを選択します。

表示されるステータス・ラベルは、ファイルのソース・コントロール・ステータスをTeam Systemで記述するために使用されるステータス・ラベルです。

メイン・ステータスには、次のものがあります。

- 編集済 - JDeveloperで、ファイルはチェックアウトされており、変更されている可能性があります。

- 変更なし - JDeveloperで、ファイルは現在チェックインされています。

- 追加をスケジュール済 - JDeveloperで、ファイルは追加されている(つまり、ソース・コントロール下にある)が、まだチェックインされていません。

6.8.2.5 ファイルのステータスのリフレッシュ方法

ファイルのソース・コントロール・ステータスは、次に示すように、JDeveloperナビゲータにアイコン上の記号で示されます。

表6-5 Team Systemのファイル・ステータスのアイコン

アイコン

説明

オブジェクトはチェックインされており、変更するにはチェックアウトする必要があります。

オブジェクトはチェックアウトされており、変更できます。

オブジェクトはソース・コントロール下にはありません。

ファイルはソース・コントロール下にありますが、Team Systemサーバーにはチェックインされていません。

オブジェクトは、次回チェックインされるときにTeam Systemサーバーから削除されるようスケジュールされています。

JDeveloperでファイルのステータスをリフレッシュするには、次のようにします。

- 「表示」→「リフレッシュ」を選択します。

6.8.2.6 ファイルのチェックイン方法

ファイルをTeam Systemサーバーにチェックインするために使用します。チェックインしたファイルのバージョンは、他のユーザーが表示および操作できます。

ファイルをチェックインするには、次のようにします。

1. アプリケーション・ナビゲータで、チェックインするファイルを選択します。

2. 「バージョニング」→「チェックイン」を選択します。
「チェックイン」ダイアログが開きます。

3. ダイアログを完了します。
ダイアログの使用中に詳細を参照するには、[F1]を押します。

6.8.2.7 ファイル・バージョン間の競合の解決方法

チェックインしようとしたときにファイルの自分のコピーとTeam Systemサーバー内のファイルとの間に競合がある場合は、操作を完了できないことを示すメッセージ・ボックスが表示されます。この問題を解決するには、最初にチェックイン操作を取り消してから、次のいずれかを実行する必要があります。

- 競合のないバージョンのファイルに戻します。

- Team Systemクライアント・ソフトウェアのマージ・ツールを使用して競合を解決します。

競合のないバージョンのファイルに戻すには、次のようにします。

- アプリケーション・ナビゲータでファイルを選択し、「バージョニング」→「元に戻す」を選択します。

6.8.2.8 ファイルの変更を元に戻す方法

ファイルに対する最新の変更を元に戻すために使用します。

変更を元に戻すには、次のようにします。

1. アプリケーション・ナビゲータで、最後の変更を元に戻すファイルを選択します。

2. 「バージョニング」→「元に戻す」を選択します。
「元に戻す」ダイアログが開きます。

「OK」をクリックすると、変更が元に戻されます。

6.8.2.9 ファイルとTeam Systemのベース・バージョンの置換方法

ベース・バージョンとファイルを置き換える場合には、次の手順を使用します。ベース・バージョンとは、現在作業しているバージョンの基礎となったバージョンです。

Team Systemのベース・バージョンでファイルを置き換えるには、次のようにします。

1. アプリケーション・ナビゲータで、置き換えるファイルを選択します。

2. 「ファイル」→「置換」→「ベース・バージョン」を選択します。
「ベース・バージョンとの置換」ダイアログが開きます。

3. 置換するファイルがダイアログに表示されていることを確認します。

4. 「OK」をクリックし、ファイルを置換します。

6.8.2.10 ファイルの履歴の表示方法

この操作は、履歴ビューアを開いてTeam Systemの管理下にあるファイルの履歴を表示する場合に行います。

ファイルの履歴を表示するには、次のようにします。

- アプリケーション・ナビゲータでファイルを選択し、ポップアップ・メニューから「バージョニング」→「バージョン履歴」を選択します。

履歴ビューアの使用中に詳細を表示するには、[F1]を押してください。

6.8.2.11 Team Systemでのファイルの比較方法

Team Systemの管理下にあるファイルを同じファイルの他のバージョンや他のファイルと比較するには、次の手順を使用します。

ファイルのバージョンを比較するには、次のようにします。

1. ファイルのポップアップ・メニューで、「比較」を選択します。

2. 「前のバージョン」、「最新バージョン」または「他のバージョン」を選択します。

差分がない場合は、メッセージが表示されます。差違がある場合は、「履歴」ツールに1つ以上のバージョンが表示されます。

別のファイルと比較するには、次のようにします。

1. ファイルのポップアップ・メニューで、「比較」→「その他のファイル」を選択します。
「比較対象のファイルを選択」ダイアログが開きます。

2. 比較対象のファイルを選択します。
「比較」ツールにファイルが表示されます。

2つのファイルを比較するには、次のようにします。

1. ナビゲータで2つのファイルを選択します。

2. いずれかのファイルのポップアップ・メニューで、「比較」→「相互」を選択します。

「比較」ツールにファイルが表示されます。

6.8.2.12 ファイルのシェルブおよびアンシェルブ方法

シェルブを使用すると、ファイルをチェックインする必要なくTeam Systemサーバーにファイルの変更を保存できます。シェルブ・プロセスの一環として、変更されたファイルでの作業を続行するか、これらをビューから削除して変更前のバージョンに戻すかを選択できます。

シェルブされたファイルの変更を後で使用する場合は、変更をアンシェルブできます。

シェルブされた変更を保持する必要がなくなった場合、変更を格納したシェルブセットを削除できます。

チェックインされていないファイルの変更セットをシェルブするには、次のようにします。

チェックインされていないファイルの変更セットをシェルブするには、次のようにします。

1. アプリケーション・ナビゲータで、ファイルが含まれるバージョニング済プロジェクトを選択します。

2. 「バージョニング」→「シェルブ」を選択します。
「シェルブ」ダイアログが開きます。

3. ダイアログを完了します。

ダイアログの完了中に詳細を参照するには、[F1]をクリックします。

「OK」をクリックすると、ファイルの変更がシェルブされます。

アプリケーション・ナビゲータのファイル・アイコンが変更されて新規ファイル・ステータス(存在する場合)が反映されます。

ファイルの変更セットをアンシェルブするには、次のようにします。

1. アプリケーション・ナビゲータで、ファイルの変更のアンシェルブ先のバージョニング済プロジェクトを選択します。

2. 「バージョニング」→「アンシェルブ」を選択します。
「アンシェルブ」ダイアログが開きます。

3. ファイルの変更が含まれるシェルブセットのシェルブセット名を選択します。

「OK」をクリックすると、ファイルの変更がアンシェルブされます。

シェルブセットが作成された後に削除されたファイルが回復され、アプリケーション・ナビゲータのファイル・アイコンが変更されて新規ファイル・ステータスが反映されます。

シェルブセットを削除するには、次のようにします。

1. 「バージョニング」→「シェルブセットの削除」を選択します。
「シェルブセットの削除」ダイアログ・ボックスが開きます。

2. 削除するシェルブセットの名前を選択します。

「OK」をクリックすると、シェルブセットが削除されます。

6.8.2.13 ファイルの削除方法

ファイルをワークスペースおよびTeam Systemサーバーから削除するために使用します。

ファイルを削除するには、次のようにします。

1. アプリケーション・ナビゲータでファイルを選択し、「バージョニング」→「削除」を選択します。
「削除」ダイアログが表示されて、ファイルがリストされます。

2. 「OK」をクリックします。
「保留中の変更」ウィンドウ(「バージョニング」→「保留中の変更」)の「送信」タブで、ファイルが削除可能であることが示されます。黒い斜線の十字がファイルのアイコンに追加されます。

3. ファイルの削除を完了するには、「保留中の変更」ウィンドウでファイルを選択し、「バージョニング」→「チェックイン」を選択します。
「チェックイン」ダイアログが開きます。

4. コメントがある場合は追加して、「OK」をクリックします。

ファイルはワークスペースおよびTeam Systemサーバーから削除されます。

6.8.3 インポートおよびエクスポート機能の使用方法

JDeveloperのインポートおよびエクスポート機能を使用すると、ファイルの2つのバージョン間の変更またはリビジョンのみからパッチを作成して適用できます。

6.8.3.1 パッチの作成方法

あるファイルの2つのリビジョン間の変更内容を記録し、その変更内容を3番目のファイルに適用するとします。これを実行するには、パッチを作成して適用します。

パッチを作成するには、次のようにします。

この手順により、ファイルのコントロール・リビジョンとローカル・リビジョン間の差分で構成されるパッチが生成されます。

1. JDeveloperで、パッチを作成するファイルを開きます。

2. 「履歴」タブをクリックします。
「履歴」ビューには、ファイルのすべてのリビジョンが表示されます。「履歴」ビュー下部の左ペインにはローカル・リビジョンの内容が表示され、右ペインにはコントロール・リビジョンの内容が表示されます。

3. パッチを作成するリビジョンの組合せを選択します。

4. ポップアップ・メニューから「パッチの生成」を選択します。

「パッチ・コンテキストの選択」ダイアログが開く場合があります。このダイアログの使用時にヘルプを参照するには、[F1]を押してください。「パッチの生成」ダイアログが開きます。必要に応じてダイアログを完了します。このダイアログの使用時にヘルプを参照するには、[F1]を押してください。

6.8.3.2 パッチの適用方法

あるファイルの2つのリビジョン間の変更内容を記録し、その変更内容を3番目のファイルに適用するとします。これを実行するには、パッチを作成して適用します。

パッチを適用するには、次のようにします。

1. ナビゲータで、パッチを適用するリソースを選択します。
リソースは、アプリケーション、プロジェクトまたはソース・ファイルの場合があります。

2. 「バージョニング」→「パッチの適用」を選択します。
プロジェクトにパッチを適用する場合は、「パッチ・コンテキストの選択」ダイアログが開きます。このダイアログで、プロジェクト・ファイル(.jpr)のパッチを適用するのか、またはプロジェクトの内容を更新するのかを指定する必要があります。

「パッチの適用」ダイアログが開きます。

3. 「パッチの適用」ダイアログの上部のグリッドで、ターゲット・リソースが正しく識別されていることを確認します。

4. パッチのソースを選択します。このオプションおよびこのダイアログの他のオプションの詳細は、[F1]を押してください。

5. 「プレビュー」をクリックします。これによって、「パッチの適用: プレビュー」ウィンドウが表示されます。このウィンドウで、特定の変更を受け入れることも拒否することもできます。「パッチの適用: プレビュー」ウィンドウのオプションの詳細は、[F1]を押してください。

6. パッチを適用するには、「OK」をクリックします。

6.9 WebDAVとOracle JDeveloperの使用

Web-based Distributed Authoring and Versioning (WebDAV)はHTTPへの拡張であり、ユーザーが共同でWebDAV対応サーバー上にあるファイルを編集および管理できるようにします。JDeveloperでWebDAV接続を使用すると、WebDAVサーバー上でホストされているファイルを、ローカル・ファイル・システム上のファイルを表示するのと同じ方法で表示できます。WebDAVサーバー上にあってJDeveloperでWebDAV接続を使用してアクセスするファイルは、ローカル・ファイル・システム上やLAN上に格納されているファイルと同じ方法で表示できます。

WebDAVクライアントはHTTPを使用してアクセスを提供するため、他の方法ではFTPファイル転送が防止されるファイアウォール(WebDAV拡張をサポートするように構成済)を介してファイルにアクセスできます。JDeveloperでのWebDAVの読取り専用実装では、バージョニングをサポートしていないWebDAV 1.0標準をサポートしています。WebDAVクライアントと同様に、JDeveloperではすべてのOracle Internet File Systemに直接接続できるため、データベースからWebDAVファイルの表示が可能です。

6.9.1 WebDAVサーバーの要件

JDeveloperをWebDAVクライアントとして使用するには、WebDAVサーバーを実行する必要があります。WebDAVサーバーは、次のいずれかである必要があります。

- Oracle Internet File System 8.1.7(以上)

- Apache 1.3.19 (以上)

注意:

Apacheサーバーがバージョン1.xの場合は、mod_davモジュールもインストールする必要があります。

- WebDAV 1.0標準に準拠するサーバー

注意:

ファイアウォールを介してインターネットにアクセスする場合は、WebDAVで使用する拡張HTTPコマンドを処理するように構成する必要があります。

WebサーバーがURLを別のサーバーにリダイレクトするように構成されている場合(たとえば、ApacheでJkMountを使用して特定のファイル拡張子に対するリクエストをTomcatにリダイレクトしている場合)、リダイレクト先のサーバーがそのコンテキストでWebDAVをサポートしていなければ、WebDAVは該当リソースに使用できないことに注意してください。

WebDAVの詳細は、次のWebサイトを参照してください。

- http://www.webdav.org

- http://httpd.apache.org/docs-2.1/mod/mod_dav.html

6.9.2 WebDAV接続の作成方法

JDeveloperで作成したWebDAV接続を使用し、JDeveloperプロジェクトの一部としてファイルとフォルダを表示できます。

注意:

同じJDeveloperクライアント上で複数のWebDAV接続に同じURLを使用することはできません。

JDeveloperでWebDAV接続を作成する手順は、次のとおりです。

1. 「新規ギャラリ」で、「一般」→「接続」を選択し、「OK」をクリックします。

2. 「WebDAV接続」ダイアログを使用して接続を作成します。
このダイアログの使用方法の詳細は、[F1]を押してください。

6.9.3 プロキシ・サーバーを介したWebDAV対応サーバーへのアクセス方法

プロキシ・サーバーを介してインターネットにアクセスする場合、インターネット上のWebDAV対応サーバーにアクセスする前に、JDeveloperを構成する必要があります。

プロキシ・サーバーを介してWebDAV対応サーバーにアクセスする手順は、次のとおりです。

1. プロキシ・サーバーがWebDAVに対応していることをネットワーク管理者に確認します。

2. JDeveloperで、「ツール」→「プリファレンス」の順に選択し、「プリファレンス」ダイアログ・ボックスの左ペインで「Webブラウザとプロキシ」をクリックして、「HTTPプロキシ・サーバーを使用」チェック・ボックスがチェックされていることを確認し、プロキシの詳細を入力します。

3. アクセスしようとするWebDAV対応サーバーがファイアウォール内にあり、アクセスの際にプロキシ・サーバーを経由する必要がない場合は、デフォルトのWebブラウザのプロキシ例外リストにWebDAVサーバー名を追加します。通常、これは他のプロキシ設定とともにブラウザのプリファレンス/設定ページで設定されます。

6.9.4 WebDAV接続の変更方法

WebDAV接続はアプリケーション・ナビゲータの「アプリケーション・リソース」パネルで「接続」ノードの下にリストされます。

既存のWebDAV接続を変更できます。

WebDAV接続を変更するには、次のようにします。

1. 変更するWebDAV接続を右クリックします。

2. 「プロパティ」を選択します。

3. 「WebDAV接続プロパティ」ダイアログで、WebDAV接続の詳細を変更します。
ダイアログの使用中にヘルプを参照するには、[F1]を押します。

4. 「OK」をクリックします。

6.9.5 WebDAV接続のリフレッシュ方法

WebDAV接続はアプリケーション・ナビゲータの「アプリケーション・リソース」パネルで「接続」ノードの下にリストされます。

フォルダおよびファイルにWebDAVサーバーの現在の内容が正確に反映されていることを確認するには、WebDAV接続の表示を手動でリフレッシュします。

注意:

WebDAV接続に対してリストされているすべてのフォルダおよびファイルがリフレッシュされます。フォルダおよびファイルのプロパティとその内容がリフレッシュされます。

WebDAV接続の内容全体をリフレッシュする手順は、次のとおりです。

1. リフレッシュするWebDAV接続を右クリックします。

2. 「リフレッシュ」を選択します。

6.9.6 WebDAV接続の削除方法

WebDAV接続はアプリケーション・ナビゲータの「アプリケーション・リソース」パネルで「接続」ノードの下にリストされます。

JDeveloperからWebDAV接続を削除しても、WebDAVサーバー自体のファイルやフォルダには影響しません。

WebDAV接続を削除する手順は、次のとおりです。

1. 削除するWebDAV接続を右クリックします。

2. 「削除」を選択します。

削除した接続は以降に再作成できます。その場合、接続の一部になっていたファイルとフォルダは再び接続の下に表示されます。

7 アプリケーションのビルド、実行およびデバッグ

この章では、JDeveloperのビルド、実行およびデバッグ機能の概要を説明します。これらの機能は、このガイドの後続の章で詳細に説明されています。

この章では、次の項目について説明します。

- 第7.1項「アプリケーションのビルド、実行およびデバッグについて」

- 第7.2項「アプリケーションのビルド」

- 第7.3項「アプリケーションの実行」

- 第7.4項「アプリケーションのデバッグ」

7.1 アプリケーションのビルド、実行およびデバッグについて

アプリケーション設計時の各段階を完了すると、プロジェクトのビルド、実行、デバッグが可能になります。

JDeveloperでプロジェクトをビルドするには、メイクと再ビルド、Apache Ant、Mavenの3通りの方法があります。

プロジェクトを実行すると、実行、デバッグまたはプロファイリングされるプロセスをRun Managerが管理します。このような複数のプロセスが同時にアクティブになると、Run Managerウィンドウが自動的に表示されます。プロセスが完了すると、そのプロセスはRun Managerから自動的に削除されます。

デバッガを使用すると、コードを調べて問題のある領域を特定し修正できます。ローカルとリモートの2種類のデバッグが可能です。

7.2 アプリケーションのビルド

アプリケーションをビルドするには、次の3通りの方法があります。

- メイクと再ビルド

- Apache Ant

- Apache Maven

また、アプリケーションをクリーンしてからそのJavadocを生成することもできます。

7.2.1 メイクと再ビルド

「メイク」コマンドおよび「再ビルド」コマンドは、JDeveloperでプロジェクトをコンパイルするための標準操作を実行します。

「メイク」操作によって、最後にコンパイルされてから変更されたソース・ファイルや依存性が変更されたソース・ファイルをコンパイルします。一方、「再ビルド」操作の場合、ソース・ファイルを無条件にコンパイルします。「メイク」は、個々のソース・ファイル、作業セット、またはパッケージ、プロジェクトおよびワークスペースなどのコンテナに対してメイクを起動できます。

7.2.2 Apache Ant

Apache Antは、Unixのmakeユーティリティと似た機能を持つビルド・ツールです。Antは、XML形式のビルドファイルを使用して、アプリケーションとそのコンポーネントを構築するためのプロセスを記述および制御します。Antはクロス・プラットフォームのコンパイルをサポートしており、簡単に拡張できます。Apache Antは、Apache Software Foundationの製品です。詳細は、Webサイト(http://ant.apache.org/index.html)を参照してください。

Apache Antの詳細は、第18.6.5項「Apache Antによるビルド」を参照してください。

7.2.3 Apache Maven

Apache Mavenは、ソフトウェア・プロジェクトの管理と検査のためのツールです。Mavenはプロジェクトのビルド、レポート、中心的な情報からのドキュメンテーション、プロジェクト・オブジェクト・モデル(POM)を管理できます。プロジェクトのビルドにはこのPOMと、Mavenによって全プロジェクトで共有される一連のプラグインを使用するため、統一的なビルド・システムとなります。Mavenをプラグインで拡張すれば、レポートやプロセスのビルドに様々な開発ツールを使用できます。Mavenの詳細は、http://maven.apache.org/index.htmlを参照してください。

Apache Mavenの詳細は、第18.6.6項「Apache Mavenによるビルドと実行」を参照してください。

7.3 アプリケーションの実行

JDeveloperには、アプリケーションの実行方法を監視および制御するいくつかの方法があります。実行中のプロセスはすべて、Run Managerで管理できます。

7.3.1 Run Manager

Run Managerは、実行、デバッグ、プロファイリングが行われるプロセスを追跡します。このような複数のプロセスが同時にアクティブになっている場合、「Run Manager」ウィンドウが自動的に表示されます。プロセスが完了すると、そのプロセスはRun Managerから自動的に削除されます。

Run Managerの詳細は、第19.2項「Run Managerの理解」を参照してください。

7.4 アプリケーションのデバッグ

JDeveloperには、コードを評価および修正するための包括的なデバッガが用意されています。デバッグには、ローカルとリモートの2種類があります。

ローカル・デバッグ・セッションを開始するには、ソース・ファイルにブレークポイントを設定し、デバッガを開始します。JDeveloperでサーブレットなどのアプリケーションをデバッグする際は、実行フローを完全に制御して、変数の値を表示および変更できます。また、クラス・インスタンスのカウント数とメモリー使用量を監視することによって、アプリケーションのパフォーマンスを調べることができます。JDeveloperは、アプリケーションから他のソース・ファイルへのコールに従うか、またはソース・ファイルが使用できない場合はスタブ・クラスを生成します。

リモート・デバッグでは、2つのJDeveloperプロセスが必要です。1つはデバッガ・プロセス、もう1つはデバッグ対象プロセスです。デバッグ対象プロセスは異なるプラットフォームに存在している場合があります。デバッグ対象プロセスが開始し、デバッガ・プロセスがそのデバッグ対象プロセスにアタッチされた後は、リモート・デバッグとローカル・デバッグの動作は似ています。

7.4.1 デバッガの使用方法

デバッガでは、コード内で問題のある領域を効率的に特定できるようにする特殊な目的のデバッグ・ウィンドウが、次のように数多く提供されます。

各デバッガ・ウィンドウに表示する情報のタイプを制御できます。表示する列など、各ウィンドウで使用できるオプションを確認するには、ウィンドウを右クリックして、ポップアップ・メニューから「設定」を選択します。またはメイン・メニューから「ツール」→「設定」を選択し、「デバッガ」ノードを展開して、各デバッガ・ウィンドウの設定ページを表示することもできます。また、デバッグ情報をテキスト出力ファイルまたはHTML出力ファイルとして保存することもできます。

デバッガの使用方法の詳細は、第19.7項「デバッガ・ウィンドウの使用方法」を参照してください。

7.4.2 デバッグを使用するテクノロジ

JDeveloperのデバッグ機能は、いくつものテクノロジによって使用されます。次の表では、これらのテクノロジと、そのデバッグに関するドキュメントへのリンクを示します。

表7-1 デバッグを使用するテクノロジ

テクノロジ

ドキュメントのリンク

ADFコンポーネント

第19.6.3項「ADFコンポーネントのデバッグ方法」

Javaサーブレット

第11.5.7項「サーブレットのデバッグ方法」

JSPページ

第11.4.2項「JSPのデバッグおよびデプロイ方法」

Javaプログラム

第19.6項「デバッガについて」

JavaScript

第19.6.21項「Javascriptプログラムのデバッグ方法」

Webサービス

第16.11.2項「Webサービスのデバッグ方法」

統合WebLogic Server

第9.2.3.2項「統合アプリケーション・サーバーでの実行とデバッグの方法」

PL/SQLプログラムおよびJavaストアド・プロシージャ

第29.3.3項「PL/SQLおよびJavaストアド・プロシージャのデバッグの前提条件」

拡張機能

Oracle Fusion Middleware Oracle JDeveloper Extensions開発者ガイド

8 アプリケーションの監査とプロファイリング

この章では、Oracle JDeveloperの監査とプロファイリングの機能について説明します。

この章では、次の項目について説明します。

- 第8.1項「アプリケーションの監査とプロファイリングについて」

- 第8.2項「アプリケーションの監査」

- 第8.3項「HTTPアナライザを使用したHTTPの監視」

- 第8.4項「アプリケーションのプロファイリング」

8.1 アプリケーションの監査とプロファイリングについて

JDeveloperに用意されている監査とプロファイリングのツールを使用して、作成したアプリケーションの状態とパフォーマンスを分析します。これらのツールは、コードの品質向上に効果的です。JDeveloperの監査機能を使用すると、Javaコードがプログラミング規格に準拠しているかどうかを分析できます。

プロファイラを使用して収集するプログラムに関する統計によって、より多くの時間を消費するメソッド、最も多くコールされるメソッド、メモリーの使用状況および作成中のオブジェクトの種類を識別し、ボトルネックなどのパフォーマンスの問題をより簡単に診断できます。

8.2 アプリケーションの監査

監査とは、プログラミング規格を定義している規則およびメトリックに準拠しているかどうかについてのコードの静的な分析のことです。コード監査では、コードの改善および保守を困難にしている不具合が検出されます。JDeveloperの監査ツールを使用すると、このような不具合を検出および修正できます。コンパイルが不可能または実行不可能な場合でも、コードの監査は可能です。

プロファイルを作成してカスタマイズし、使用する規則を選択して個々の規則のパラメータを設定できます。詳細は、それぞれのコード監査規則およびコード測定を参照してください。

コード監査レポートには、ルール違反および測定結果がツリーに編成されて表示されます。ツリーの各行は構成メンバーまたは違反のいずれかに対応しており、その構成メンバーまたは理論上の違反に対するすべての測定値が含まれます。構成メンバーは、メソッド、クラス、ファイル、プロジェクトまたはワークスペースです。監査ツールとコードの監査手順の詳細は、第18.9項「アプリケーションのパフォーマンスの最適化」を参照してください。

8.3 HTTPアナライザを使用したHTTPの監視

HTTPアナライザを使用すると、次のようにHTTPトラフィックを監視できます。

- Webサービス・クライアントとサービスの間のリクエスト/レスポンス・トラフィックの監視。

- JavaアプリケーションとWebリソースの間のHTTPリクエストの監視。

HTTPアナライザは、JDeveloperのコードとそのコードが通信するHTTPリソースとの間でプロキシとして機能し、送受信されるHTTPトラフィックに関連してアプリケーションをデバッグしやすくなります。

HTTPアナライザを実行すると、情報を提供する多くのウィンドウが表示されます。

8.3.1 ログ・ウィンドウの使用方法

「ツール」メニューから「Httpアナライザ」を開くと、図8-1のように「Httpアナライザ」のログ・ウィンドウが表示されます。デフォルトではJDeveloperの中央下部に、他のログ・ウィンドウと並んで表示されます。

図8-1 「Httpアナライザ」ログ・ウィンドウ

HTTPアナライザを実行すると、「Httpアナライザ」ログ・ウィンドウにリクエスト/レスポンスのメッセージが出力されます。メッセージは、グループ化と並替えが可能です。

- メッセージを並べ替えるには、「順序」タブを選択し、列ヘッダーを使用してソートします(ヘッダーのクリックでソート、ダブルクリックで2次ソート)。

- メッセージをグループ化するには、「相関」タブをクリックします。

- 列の順序を変えるには、列ヘッダーをクリックしたまま新しい位置までドラッグします。

表8-1 「Httpアナライザ」ログ・ウィンドウのツールバー・アイコン

アイコン

名前

機能

アナライザ・プリファレンス

新規リスナー・ポートを指定したり、デフォルト・プロキシを変更できるHTTPアナライザのプリファレンス・ダイアログを開く場合にクリックします。「ツール」→「プリファレンス」を選択し、「Httpアナライザ」ページを選択してHTTPアナライザに進むこともできます。詳細は次の項を参照してください。

新規リクエストの作成

ペイロード詳細の入力や、メッセージの編集および再送信を行うHTTPアナライザのテスト・ウィンドウを開く場合にクリックします。

HTTPアナライザの起動

HTTPアナライザを起動する場合にクリックします。モニターがバックグラウンドで実行され、「停止」をクリックするか、JDeveloperを終了したときにのみ停止します。複数のリスナーを定義している場合、このボタンをクリックするとすべてのリスナーが起動します。1つのリスナーのみを起動するには、下矢印をクリックして起動するリスナーを選択します。

Httpアナライザの停止

HTTPアナライザを停止する場合にクリックします。複数のリスナーを実行している場合、このボタンをクリックすると、すべてのリスナーが停止します。1つのリスナーのみを停止するには、下矢印をクリックして停止するリスナーを選択します。

リクエストの送信

リクエストの内容を変更したときに、リクエストを再送信する場合にこのボタンをクリックします。変更されたリクエストが送信され、戻されたレスポンスで変更を確認できます。

WS-Iログ・ファイルを開く

既存のWS-Iログ・ファイルにナビゲートできるアップロードするWS-Iログ・ファイルの選択ダイアログを開く場合にクリックします。詳細は第16.13項「Webサービスの監視と分析」を参照してください。

パケット・データの保存

HTTPアナライザ・ログ・ウィンドウの内容をファイルに保存する場合にクリックします。

WS-I分析

Webサービスをパケット・レベルで検証できるWS-I Analyzeウィザードを起動する場合にクリックします。詳細は第16.13項「Webサービスの監視と分析」を参照してください。

すべて選択

HTTPアナライザのログ・ウィンドウですべてのエントリを選択する場合にクリックします。

すべて選択解除

HTTPアナライザですべてのエントリの選択を解除する場合にクリックします。

選択した履歴のクリア(削除)

HTTPアナライザでエントリをクリアする場合にクリックします。

8.3.2 テスト・ウィンドウの使用方法

HTTPアナライザのログ・ウィンドウで「新規リクエストの作成」ボタンをクリックすると、空のHTTPアナライザ・テスト・ウィンドウが開きます。アプリケーション・ナビゲータでWebサービス・コンテナのポップアップ・メニューから「Webサービスのテスト」を選択、またはHTTPアナライザのログ・ウィンドウで行をダブルクリックすると、図8-2のようにリクエスト/レスポンスの詳細を示すテスト・ウィンドウが開きます。デフォルトではJDeveloperの中央、ソース・エディタが表示されるのと同じ位置に表示されます。

図8-2 HTTPアナライザのテスト・ウィンドウ

テスト・ウィンドウでは、メッセージのヘッダーとパラメータを調べることができます。サービスをテストするには、適切なパラメータを入力して「リクエストの送信」をクリックします。

テスト・ウィンドウの下部にあるタブから、メッセージの内容の表示方法を選択できます。選択できるメッセージの表示方法は、次のとおりです。

- 図8-2に示されている「SOAP構造」。

- 次のようなHTTPコード。

<?xml version="1.0" encoding="UTF-8"?>
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://annotation/">
<env:Header/>
<env:Body>
<ns1:getDeptInfo>
<arg0/>
</ns1:getDeptInfo>
</env:Body>
</env:Envelope>

- 次のようなメッセージの16進コンテンツ。

[000..015] 3C 3F 78 6D 6C 20 ... 3D 22 31    <?xml version="1
[016..031] 2E 30 22 20 65 6E ... 22 55 54    .0" encoding="UT
[032..047] 46 2D 38 22 3F 3E ... 6E 76 65    F-8"?> <env:Enve
[048..063] 6C 6F 70 65 20 78 ... 76 3D 22    lope xmlns:env="

- 次のようなRAWメッセージ。

POST http://localhost:7101/WebService-Annotation-context-root/MyCompanyPort HTTP/1.1
SOAPAction: ""
Content-Type: text/xml; charset=UTF-8
Host: localhost:7101
Content-Length: 277

<?xml version="1.0" encoding="UTF-8"?>
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://annotation/">
<env:Header/>
<env:Body>
<ns1:getDeptInfo>
<arg0/>
</ns1:getDeptInfo>
</env:Body>
</env:Envelope>

8.3.3 インスタンス・ウィンドウの使用方法

「ツール」メニューから「Httpアナライザ」を開くと、「HTTPアナライザ・インスタンス」ウィンドウが表示されます。デフォルトではJDeveloperの中央下部に、HTTPアナライザのログ・ウィンドウと並ぶタブとして表示されます。このウィンドウには、現在実行中または実行後に停止されたHTTPアナライザのインスタンスに関する情報が表示されます。インスタンスはホストとポートで識別され、ルールがあれば表示されます。このウィンドウからインスタンスの起動と停止が可能です。

図8-3 「HTTPアナライザ・インスタンス」ウィンドウ

新規インスタンスは、「新規リクエストの作成」ボタンをクリックしたときに開く「Httpアナライザ」ダイアログで作成します。

表8-2 「HTTPアナライザ・インスタンス」ウィンドウのツールバー・アイコン

アイコン

名前

機能

アナライザ・プリファレンス

新規リスナー・ポートを指定したり、デフォルト・プロキシを変更できる「Httpアナライザ」ダイアログを開く場合にクリックします。

新規リクエストの作成

ペイロード詳細の入力や、メッセージの編集および再送信を行うHTTPアナライザのテスト・ウィンドウの新しいインスタンスを開く場合にクリックします。

HTTPアナライザの起動

HTTPアナライザを起動する場合にクリックします。モニターがバックグラウンドで実行され、「停止」をクリックするか、JDeveloperを終了したときにのみ停止します。複数のリスナーを定義している場合、このボタンをクリックするとすべてのリスナーが起動します。1つのリスナーのみを起動するには、下矢印をクリックして起動するリスナーを選択します。

Httpアナライザの停止

HTTPアナライザを停止する場合にクリックします。複数のリスナーを実行している場合、このボタンをクリックすると、すべてのリスナーが停止します。1つのリスナーのみを停止するには、下矢印をクリックして停止するリスナーを選択します。

8.3.4 HTTPアナライザの実行時に行われる処理

HTTPアナライザを開始すると、JDeveloperによるすべてのJavaプロセスとアプリケーション・サーバーのアクティビティが、「Httpアナライザ」ダイアログのプロキシ設定を利用してHTTPアナライザ経由でトラフィックを送信します。このダイアログは、インスタンス・ウィンドウまたはログ・ウィンドウの「Httpアナライザの起動」ボタンをクリックして、または「プリファレンス」ダイアログの「Httpアナライザ」ページから開きます。デフォルトでは、HTTPアナライザは1つのアナライザ・インスタンス上で1つのプロキシ(デフォルトは8099)を使用しますが、必要な場合には独自のプロキシを追加できます。

各アナライザ・インスタンスには、異なるホスト/URLへのリクエストのリダイレクト、Webサービスのエミュレートなどの動作を決定する一連のルールがあります。

8.3.5 HTTPアナライザ設定の指定方法

デフォルトでは、HTTPアナライザは1つのアナライザ・インスタンス上で1つのプロキシ(デフォルトは8099)を使用しますが、必要な場合には独自のプロキシを追加できます。

HTTPアナライザのプリファレンスを設定するには、次のようにします。

1. 次のいずれかの方法でHTTPアナライザの「プリファレンス」ダイアログを開きます。

- 「HTTPアナライザ・インスタンス」ウィンドウまたはログ・ウィンドウで「Httpアナライザの起動」ボタンをクリックします。

- 「ツール」→「プリファレンス」を選択して「プリファレンス」ダイアログを開き、「Httpアナライザ」ページに移動します。

詳細は、[F1]を押すか、HTTPアナライザの「プリファレンス」ダイアログで「ヘルプ」をクリックしてください。

2. HTTPアナライザ・インスタンスに対して必要な変更を行います。たとえばホストとポート番号を変更する場合には、「プロキシの構成」をクリックして「プロキシ設定」ダイアログを開きます。

8.3.6 複数のインスタンスを使用する方法

HTTPアナライザの複数インスタンスを実行できます。それぞれが異なるホストとポートの組合せを使用し、「HTTPアナライザ・インスタンス」ウィンドウでそのサマリーを確認できます。

HTTPアナライザのインスタンスを追加するには、次のようにします。

1. 次のいずれかの方法でHTTPアナライザの「プリファレンス」ダイアログを開きます。

- 「HTTPアナライザ・インスタンス」ウィンドウまたはログ・ウィンドウで「アナライザ・プリファレンス」ボタンをクリックします。

- 「ツール」→「プリファレンス」を選択して「プリファレンス」ダイアログを開き、「Httpアナライザ」ページに移動します。

詳細は、[F1]を押すか、HTTPアナライザのプリファレンス・ダイアログで「ヘルプ」をクリックしてください。

2. 新しいリスナーとなる新しいHTTPアナライザ・インスタンスを作成するには、「追加」をクリックします。新しいリスナーがリストされてデフォルトとして選択され、値を変更できます。

8.3.7 外部Webブラウザの構成方法

外部Webブラウザを使用するとHTTPアナライザを通じてメッセージのルーティングが可能になり、Webブラウザとクライアントの間でトラフィックを確認できます。この項では、HTTPアナライザを開始してJDeveloper内からHTML、JSPまたはJSFページを実行するとき、デバッガ・プロファイルを使用する新しいFirefoxインスタンスが起動するように、Firefoxのプロファイルを使用する方法について説明します。

注意:

次の手順ではコマンドfirefoxを使用していますが、これはLinuxのコマンドです。Windowsを使用している場合は、firefox.exeに置き換えてください。

HTTPアナライザを使用するようにFirefoxプロファイルを構成するには、次のようにします。

1. まず、新しいFirefoxプロファイルを作成します。デフォルトでは、コマンドラインからFirefoxを起動すると現在開いているFirefoxインスタンスでウィンドウが開きます。したがって、別個に構成されるインスタンスを作成するには-no-remoteを使用する必要があります。コマンドラインから次のように実行してください。

firefox -no-remote -CreateProfile Debugging

2. このプロファイルを使用してFirefoxを起動します。

firefox -no-remote -P Debugging

3. 次に、このバージョンのFirefoxを起動するようにJDeveloperを構成します。メイン・メニューから、「ツール」→「プリファレンス」を選択します。

4. 「プリファレンス」ダイアログで、「Webブラウザとプロキシ」ノードを選択します。詳細は、[F1]を押すか、ダイアログ・ページ内で「ヘルプ」をクリックしてください。

5. 「ブラウザのコマンドライン」で、適切な位置を入力または参照し、firefox -no-remote -P Debuggingと入力します。これには赤い下線が付き、ダイアログを閉じるときにも「コマンド・ライン検証エラー」警告が表示されますが、これは無視してかまいません。

6. 「OK」をクリックします。HTTPアナライザを開始し、JDeveloper内からHTML、JSPまたはJSFページを実行すると、デバッガ・プロファイルを使用する新しいFirefoxインスタンスが起動します。

「OK」をクリックします。HTTPアナライザを開始し、JDeveloper内からHTML、JSPまたはJSFページを実行すると、デバッガ・プロファイルを使用する新しいFirefoxインスタンスが起動します。

8.3.8 SSLの使用

保護されたサービスまたはアプリケーション、たとえばポリシーで保護されたWebサービスに対してHTTPアナライザを使用できます。JDeveloperには、事前構成済の資格証明としてHTTPS Credentialが付属しており、これが常駐しています。HTTPS Credentialは削除も編集もできませんが、コピーして同じタイプの新しい資格証明を作成できます。

構成した資格証明は、HTTPアナライザのテスト・ウィンドウで選択できるようになります。

8.3.8.1 HTTPSキーストア

HTTPSは、送信前にHTTPメッセージを暗号化し、受信時に復号化します。信頼できる認証局によって署名された公開鍵証明書を使用します。統合アプリケーション・サーバーを初めて起動すると、マシンに固有のDemoIdentityが生成され、その中にあるキーを使用してHTTPSチャネルが設定されます。

HTTPSの構成には、クライアント・キーストア・アイデンティティが使用されます。サーバー・キーストア・アイデンティティは、HTTPアナライザがサーバーとして機能する際に使用され、リモート・サーバーへの接続時には使用されません。

キー・ストアおよびキーストア・プロバイダの詳細は、『Oracle Fusion Middleware Oracle WebLogic Serverセキュリティの理解』を参照してください。デフォルトの資格証明であるHTTPS Credentialを選択する場合には、JDeveloperとHTTPアナライザがHTTPSトラフィックを処理する際に使用するキーストアを指定する必要があります。HTTPアナライザを実行するには、2つのキーストアが必要です。

- クライアント・キーストア。外部接続時にJDeveloperとアナライザ(クライアントの信頼)によって信頼されるすべてのホストの証明書が含まれています。

- サーバー・キーストア。アナライザがコール側クライアントに対する自身の認証に使用するキーが含まれています(サーバー・キーストア)。

クライアント・キーストアが必要なのは、相互認証が必要な場合のみです。

8.3.8.2 ユーザー名トークン

ユーザー名トークンは、Basic認証情報の伝達に利用されます。認証に使用されるユーザー名/パスワードを指定します。

8.3.8.3 X509証明書

X509はシングル・サインオンのためのPKI標準であり、アイデンティティの提示と、メッセージの署名および暗号化に証明書を使用します。X509証明書の詳細を入力します。キーストアに対して有効なキーストアとパスワードを指定すると、クライアント・キー別名が移入されます。

JDeveloperに問題があってキーストアを検索できない、または開くことができない場合、エラー・メッセージが表示されます。

8.3.8.4 STS構成

セキュリティ・トークン・サービス(STS)は、HTTPS上でセキュリティ・トークンを発行し管理するWebサービスです。セキュリティ・トークン・サーバーのプロバイダURLを入力し、オプションでポリシーURLも入力します。

注意:

クライアント・トラストストアにはサーバーの公開鍵が含まれている必要があります。含まれていないと、HTTPアナライザのリクエスト時にSAMLトークンがエラーになります。

8.3.8.5 HTTPSの使用方法

別のHTTPS値を使用するようにHTTPアナライザを構成するには、次のようにします。

1. メイン・メニューから、「ツール」→「プリファレンス」を選択します。

2. 「設定」ダイアログで、「資格証明」ノードを選択します。詳細は、[F1]を押すか、ダイアログ・ページ内で「ヘルプ」をクリックしてください。

3. 使用する新しいキーストアと証明書の詳細を入力します。

8.3.8.6 Webサービス・ポリシーをテストするための資格証明の構成方法

HTTPアナライザを使用すると、ポリシーで保護されたWebサービスをテストできます。

注意:

WebLogic 9.xのポリシーで保護されているJAX-RPC Webサービスを、HTTPアナライザでテストすることはできません。WebLogic 9.xのポリシーは、JAX-RPCに対して非推奨です。

HTTPアナライザでは次のものがサポートされます。

- HTTPS。メッセージは、信頼できる認証局によって署名された公開鍵証明書を使用して、送信前に暗号化されます。受信時に復号化されます。

- ユーザー名トークン。ユーザー名/パスワードに基づくトークンを使用してBasic認証情報を伝達する手段です。

- X509.これはシングル・サインオン認証のためのPKI標準であり、アイデンティティの提示と、メッセージの署名および暗号化に証明書を使用します。

- STS。セキュリティ・トークン・サービス(STS)は、セキュリティ・トークンを発行し管理するWebサービスです。

HTTPアナライザのテスト・ウィンドウで使用する資格証明を選択します。

HTTPアナライザに認証情報を追加するには、次のようにします。

1. 「ツール」→「プリファレンス」を選択して「プリファレンス」ダイアログを開き、「資格証明」ページに進みます。詳細は、[F1]を押すか、「プリファレンス」ダイアログで「ヘルプ」をクリックしてください。

2. Webサービスに適した認証情報であることを確認します。

8.3.9 HTTPアナライザの実行方法

HTTPアナライザを使用すると、リクエストおよびレスポンスHTTPメッセージの内容を表示できます。

HTTPパケットを監視するには、次のようにします。

1. 「ツール」→「Httpアナライザ」を選択して、HTTPアナライザを開きます。HTTPアナライザのドッキングしたウィンドウが開きます。

2. 「Httpアナライザの起動」ボタンをクリックしてHTTPアナライザを起動します。デフォルトでは、ポート8098のlocalhostのホスト名でリスナーが起動します。新しいリスナーを追加し、別のホストとポートを使用する、HTTPSを構成する、またはアナライザの処理方法を決めるルールを設定できます。

3. 通常の方法で分析するクラス、アプリケーション、Webサービスなどを実行します。
リクエストとレスポンスの各パケットが、HTTPアナライザのログ・ウィンドウにリストされ、HTTPアナライザのテスト・ウィンドウに詳細に表示されます。

HTTPアナライザを使用して、JDeveloperで開発したWebサービスの動作を調べる場合は、アプリケーション・ナビゲータでWebサービスのポップアップ・メニューから「Webサービスのテスト」を選択すると、HTTPアナライザが自動的に開始されます。

8.3.10 HTTPアナライザを使用してWebページをデバッグする方法

HTML、JSPまたはJSFページなどのWebページをデバッグするときにもHTTPアナライザを使用できます。こうすると、ブラウザとの間で相互に送信されるトラフィックを直接調べることができます。

HTTPアナライザを使用してWebページをデバッグするには、次のようにします。

1. HTTPアナライザを通じてメッセージをルーティングするようにブラウザを構成し、Webブラウザとクライアントの間でトラフィックを確認できるようにします。

2. HTTPアナライザを起動します。

3. 通常の方法で分析するクラス、アプリケーションまたはWebページを実行します。
リクエストとレスポンスの各パケットが、HTTPアナライザのログ・ウィンドウにリストされ、HTTPアナライザのテスト・ウィンドウに詳細に表示されます。

8.3.11 HTTPリクエストの編集と再送信の方法

HTTPリクエストの内容を編集し、再送信できます。次に、レスポンスを検証して、予想した変更が行われたかどうかを確認できます。

リクエストを送信するには、次のようにします。

1. HTTPアナライザの「テスト」ウィンドウの「リクエスト」ペインで、パラメータ値を入力します。

2. 「リクエストの送信」ボタンをクリックします。

3. 処理された値が「レスポンス」ペインに戻されます。

リクエストを編集して再送信するには、次のようにします。

1. HTTPアナライザの「テスト」ウィンドウの「リクエスト」ペインで、「コピー・リクエスト」をクリックします。新しいテスト・ウィンドウが開き、送信する新しいパラメータを入力できます。
あるいは、HTTPアナライザのログ・ウィンドウで行をダブルクリックして新しいテスト・ウィンドウを開くこともできます。

8.3.12 ルールを使用して動作を決定する方法

HTTPアナライザがルールによって決定される動作を利用して実行するように、ルールを設定できます。1つのHTTPアナライザ・インスタンスで複数のルールを設定できます。サービスのURLがルールに一致した場合は、そのルールが適用されます。一致しない場合は、リストの次のルールがチェックされます。サービスがどのルールにも一致しない場合は、クライアントがエラーを返します。このような理由から、先行するルールによって捕捉されないメッセージが捕捉されるように、「パス・スルー・ルール」は常に、リストの最後のルールにブランク・フィルタ(単にリクエストを渡す)を設定して使用します。

次のタイプのルールがあります。

- パス・スルー・ルール

- 転送ルール

- URL置換ルール

- テープ・ルール

8.3.12.1 パス・スルー・ルールの使用

パス・スルーは、URLフィルタが一致する場合にリクエストを単純にサービスに渡します。「ルール設定」ダイアログを最初に開くと、2つのパス・スルー・ルールが定義されています。

- 1つ目はhttp://localhost:631というURLフィルタを使用し、印刷サービス・リクエストを無視します。

- 2つ目はURLがブランクのフィルタで、単純にリクエストを元のサービスに渡します。新規ルールを追加する場合には、通常このルールをリストの最後に移動する必要があります。

8.3.12.2 転送ルールの使用

転送ルールは、フィルタに一致したURLをすべて捕捉し、1つのURLにリクエストを転送します。

8.3.12.3 URL置換ルールの使用

URL置換ルールを使用すると、URL範囲の一部を置換してサービスを再ホストできます。たとえば、統合アプリケーション・サーバーとOracle WebLogic Serverの間で移動するときマシン名を置き換えることができます。

8.3.12.4 テープ・ルールの使用

テープ・ルールを使用すると、標準のWS-Iログ・ファイルをルールへの入力として、HTTPアナライザをシミュレータ・モードで実行できます。テープ・ルールを設定するときには、次のような強力なオプションを使用できます。

- ループ・テープ。テープを繰り返して実行できます。

- 一致するURLおよびメソッドにスキップ。一致するURLとHTTPリクエスト・メソッドが見つかった場合にのみ結果を返します。つまり、同じテープ・ルールでWSDLとエンドポイント・リクエストを使用できるということです。

- 「ヘッダー日付の修正」および「コンテンツ・サイズの修正」。リクエストが失敗しないように、メッセージのヘッダー日付とコンテンツ・サイズを現在の値に変更できます。

テープ・ルールを使用する例としては、外部Webサービスに対して実行されるように開発されたWebサービス・クライアントのテストなどがあります。

外部Webサービスに対して実行されるように開発されたWebサービス・クライアントをテストするには、次のようにします。

1. 外部Webサービスへのクライアントを作成します。

2. HTTPアナライザを実行してWebサービスに対してクライアントを実行し、結果をWS-Iログ・ファイルとして保存します。
WS-Iファイルを編集し、クライアントに返された値を変更します。

3. 「プリファレンス」ダイアログの「Httpアナライザ」ページで、テープ・ルールを作成します。
ルールのリストで、ブランクの「パス・スルー・ルール」の上になっていることを確認してください。

4. 「ルール設定」ダイアログで、WS-Iファイルのパスを「ルール設定」ダイアログの「テープ・パス」として使用します。
クライアントを再実行すると、外部Webサービスに対してではなく、WS-Iファイルのエントリに対して実行されます。

次の操作が可能なその他のオプションもあります。

- クライアントに返されるメッセージが正しくなるように、WS-Iログ・ファイルでエントリの時刻とサイズを修正します。

- 複数回実行されるように、テープをループさせます。

- 同じテープ・ルールでWSDLとエンドポイント・リクエストを使用できるように、一致するURLとHTTPリクエスト・メソッドをスキップします。

注意:

テープ・ルールは、失効日が設定された資格証明またはヘッダーを使用するSOAPメッセージに対しては動作しません。

8.3.13 ルールの設定方法

HTTPアナライザがルールによって決定される動作を利用して実行するように、ルールを設定できます。各アナライザ・インスタンスには、異なるホスト/URLへのリクエストのリダイレクト、Webサービスのエミュレートなどの動作を決定する一連のルールがあります。

HTTPアナライザのインスタンスにルールを設定するには、次のようにします。

1. 「ツール」→「Httpアナライザ」を選択して、HTTPアナライザを開きます。HTTPアナライザのドッキングしたウィンドウが開きます。
あるいは、アプリケーション・ナビゲータでWebサービス・コンテナのポップアップ・メニューから「Webサービスのテスト」を選択すると、HTTPアナライザが自動的に開きます。

2. 「アナライザ・プリファレンス」ボタンをクリックしてHTTPアナライザのプリファレンス・ダイアログを開き、新規リスナー・ポートを指定したり、デフォルト・プロキシを変更できます。
または、「ツール」→「プリファレンス」を選択し、「Httpアナライザ」ページに移動します。

3. 「ルールの設定」をクリックして「ルール設定」ダイアログを開き、HTTPアナライザで実行されるアクションを決定するルールを定義します。詳細は、[F1]を押すか、「ルール設定」ダイアログで「ヘルプ」をクリックしてください。

4. 「ルール設定」ダイアログで、「参照URL」としてテストする対象の参照サービスのURLを入力します。こうすると、ルールを適用するかどうかと適用方法を確認できるため、ルールの作成を開始しやすくなります。

5. クライアントを実行する対象のサービスに、1つ以上のルールを定義します。新しいルールを追加するには、「追加」の隣にある下矢印をクリックし、リストからルールのタイプを選択します。ダイアログのフィールドは、現在選択されているルールのタイプによって異なります。

6. ルールは上から下の順序で適用されます。並べ替えるには、上下の並替えボタンを使用します。ブランクの「パス・スルー・ルール」が最後のルールになるようにしてください。

8.3.14 Webサービスに対するHTTPアナライザの使用

この項では、JDeveloperで開発したWebサービスに対してHTTPアナライザを使用する方法について説明します。一般的には、HTTP間のパケットを調べるときと同じように、Webサービスのコンテンツを調べる際にHTTPアナライザを使用します。

注意:

WebLogic Server 9.xのポリシーがアタッチされているJAX-RPC Webサービスを、HTTPアナライザでテストすることはできません。WebLogic 9.xのポリシーは、JAX-RPCで非推奨になっています。

8.3.14.1 HTTPアナライザを使用したWebサービスのテスト

JDeveloperでは、HTTPアナライザを使用してWebサービスをテストし、JDeveloperで開発されたWebサービスへのプロキシ接続のネットワーク・トラフィックを調べることができます。

Webサービスをテストするには、次のようにします。

1. 統合アプリケーション・サーバー上でWebサービスを実行し、アプリケーション・ナビゲータでWebサービスのノードを右クリックして「Webサービスのテスト」を選択し、HTTPアナライザを開きます。JDeveloperが自動的に次のように動作します。

- まだ実行されていない場合には、統合アプリケーション・サーバーを起動します。

- Webサービス・アプリケーションをコンパイルして統合アプリケーション・サーバーにバインドします。これはアプリケーション・サーバー・ナビゲータに表示されます。

- 統合アプリケーション・サーバーのログ・ウィンドウを表示します(まだ開かれていない場合)。

2. HTTPアナライザ・テスト・ウィンドウの「リクエスト」ペインで、パラメータを入力してサービスをテストし、「リクエストの送信」をクリックします。
デプロイされたWebサービスからのレスポンスが、HTTPアナライザ・テスト・ウィンドウの「レスポンス」ペインに表示されます。

リクエストおよびレスポンス・パケットのHTTPヘッダーの内容を調べ、HTTPアナライザ・テスト・ウィンドウの下部にある該当のタブを選択して、SOAP構造、HTTPコンテンツ、16進コンテンツまたはRAWメッセージ・コンテンツを確認できます。

8.3.14.2 RESTful Webサービスに対するHTTPアナライザの使用

HTTPアナライザを使用して、RESTful Webサービスを操作できます。Representational State Transfer (REST)は、SOAPなどの追加メッセージング・レイヤーなしで、標準化されたインタフェース(HTTPなど)を介してデータを送信する単純なインタフェースを記述するものです。RESTには、ステートレス・サービスを作成するための一連の設計ルールが用意されており、これらはリソース(特定の情報のソース)として表示されます。それぞれのリソースは固有のURIで識別できます。クライアントがURIを使用してリソースにアクセスすると、標準化された固定のメソッド・セットと、リソースの表示が返されます。クライアントは、新しい各リソース表示を使用してステートを転送します。

HTTPプロトコルを使用してRESTfulリソースにアクセスする際は、リソース識別子がリソースのURLとなります。そのリソースに対して実行する標準操作は、HTTPメソッドの1つ(GET、PUT、DELETE、POSTまたはHEAD)です。

HTTPアナライザは、Hypermedia as the Engine of Application State (HATEOAS)をサポートしているため、HTTPアナライザを使用してRESTful Webサービスの調査とテストが可能です。

JerseyとWADL

JDeveloperでRESTful Webサービスを作成する前に、Jersey JAX-RSの参照実装(RI)をダウンロードしてプロジェクトに追加する必要があります。

Web Application Description Language (WADL)はJerseyによって作成されるXMLファイルで、サーブレットのリソースを記述します。WADLの詳細は、https://wadl.dev.java.net/を参照してください。

RESTfulサービスのテスト

WADLを使用したRESTfulサービスのテストについて、まずここで概略を示し、詳細な手順を後述します。すべてのRESTfulサービスがこのように動作するわけではありません。RESTful Webサービス用にJerseyによって作成されたWADLをHTTPアナライザが読み込んだら、HTTPアナライザのテスト・ウィンドウでWADLを調べます。WADLからは、HTTPアナライザ・テスト・ウィンドウのインスタンスをメソッドから直接開くことができ、パラメータを入力してそれをサービスにポストしてメソッドをテストできます。HTTPアナライザは新しいURLにレスポンスをリダイレクトし、表示されたそのURLをクリックするとHTTPアナライザ・テスト・ウィンドウの別のインスタンスが開いてレスポンスが表示されます。完了したら、WADLを使用してHTTPアナライザが作成した新しいリソースを検索し、サービスをテストしてから削除します。

例8-1に、POST、GET、DELETEを使用するWADLドキュメントの例を示します。

例8-1 WADLの単純な例

<?xml version = '1.0' encoding = 'UTF-8' standalone = 'yes'?>
<application xmlns="http://research.sun.com/wadl/2006/10">
<doc xmlns:jersey="http://jersey.dev.java.net/"  jersey:generatedBy="Jersey: 1.1.0-ea 04/30/2009 04:46 PM"/>
<resources  base="http://localhost:7101/RESTDemo-ContainerProject-context-root/jersey/">
<resource path="buckets">
<method name="POST" id="createNewBucket">
<request>
<representation mediaType="*/*"/>
</request>
<response>
<representation mediaType="*/*"/>
</response>
</method>
<method name="GET" id="getBuckets">
<response>
<representation  mediaType="application/buckets+xml"/>
</response>
</method>
<resource path="/{id}">
<param xmlns:xs="http://www.w3.org/2001/XMLSchema"  type="xs:int" style="template" name="id"/>
<method name="DELETE" id="delete">
<response>
<representation mediaType="*/*"/>
</response>
</method>
<method name="GET" id="getBucket">
<response>
<representation mediaType="*/*"/>
</response>
</method>
</resource>
</resource>
</resources>
</application>

REST Webサービスをテストするには、次のようにします。

REST Webサービスのテストには、次の操作が必要です。

- RESTfulサービスのテスト

- サービスのテスト

- リソースの操作

RESTfulサービスを調べるには、次のようにします。

1. 統合アプリケーション・サーバーでREST Webサービスを実行します。

2. アプリケーション・ナビゲータでWebサービスのノードを右クリックし、「Webサービスのテスト」を選択します。JDeveloperが自動的に次のように動作します。

- まだ実行されていない場合には、統合アプリケーション・サーバーを起動します。

- Webサービス・アプリケーションをコンパイルして統合アプリケーション・サーバー・インスタンスにバインドします。これはアプリケーション・サーバー・ナビゲータのIntegratedWebLogicServerノードに表示されます。

- 統合アプリケーション・サーバーのログ・ウィンドウを表示します(まだ開かれていない場合)。

3. HTTPアナライザのテスト・ウィンドウで「HTTPコンテンツ」タブをクリックします。RESTful WebサービスはSOAPを使用しないため、「SOAP構造」タブは使用しません。

4. 統合アプリケーション・サーバーの「ログ」ウィンドウで、「ターゲット・アプリケーションWADL --」の隣にあるリンクをクリックします。テスト・ウィンドウの2つ目のインスタンスが開きます。URLにWADLが表示され、メソッドがGETであることを確認してください。

5. 「リクエストの送信」をクリックします。GETメソッドはWADLのコンテンツを返すために使用されるため、「レスポンス」ペインに表示されます。
必要な場合には、左矢印を使用してペインの幅を最大化すると、コードが見やすくなります。

RESTfulサービスをテストするには、次のようにします。

1. 「レスポンス」ペインに表示されるWADLで、[Ctrl]キーを押しながらクリックして「宣言に移動」機能を使用すると、アクセス可能なHTTPメッセージの一部が表示されます。リンクとして表示されたPOSTメソッドをクリックします。これで、テスト・ウィンドウの新しいインスタンスが開きます。

2. 「リクエスト」ペインにパラメータを入力し、「リクエストの送信」をクリックします。POSTメソッドが使用され、「リクエスト」ペインには201 Created HTTPステータス・コードと、レスポンスが含まれるURLの場所が表示されます。

3. 「レスポンス」ペインのURLをクリックします。テスト・ウィンドウの次のインスタンスが開きます。URLにリダイレクトURLが表示され、メソッドがGETであることを確認してください。「リクエストの送信」をクリックすると、入力したパラメータに対するレスポンスが「リクエスト」ペインに表示されます。

注意:

WADLをクリックすると、content-typeとacceptの正しいヘッダーが生成されます。

リソースを操作するには、次のようにします。

1. WADLのテスト・ウィンドウ・インスタンスを選択し、GETメソッドに移動します。[Ctrl]キーを押しながらクリックして、テスト・ウィンドウの新しいインスタンスを開きます。URLにリダイレクトURLが表示され、メソッドがGETであることを確認してください。

2. リソースを更新するには、「メソッド」リストから「PUT」を選択し、「リクエストの送信」をクリックします。

3. このリソースを削除するには、「メソッド」リストから「DELETE」を選択し、「リクエストの送信」をクリックします。

8.3.15 WebSocketsに対するHTTPアナライザの使用

HTTPアナライザは、保護されていないWebSocketsリクエストをプロキシ経由で渡します。

リクエスト/レスポンス・ストリームの内容は、メッセージを閉じてから開きなおすとHTTPアナライザで使用できるようになります。WebSocketsメッセージは、レスポンス・コードが101のメッセージです。

8.3.16 リファレンス: HTTPアナライザのトラブルシューティング

この項では、HTTPアナライザの実行中に発生する可能性がある問題の解決方法について説明します。

8.3.16.1 他のアプリケーションの実行中にHTTPアナライザを実行

レスポンスを待っているアプリケーションがある場合は、HTTPアナライザを起動または停止しないでください。HTTPアナライザを起動または停止する前に、アプリケーションを終了してください。

8.3.16.2 プロキシ設定の変更

HTTPアナライザを使用するとき、JDeveloperのプロキシ設定の変更が必要になる場合があります。次に例を示します。

- 外部サービスをテストしており、マシンがファイアウォールの内部にある場合には、JDeveloperがHTTPプロキシ・サーバーを使用していることを確認してください。

- 統合アプリケーション・サーバーでサービスをテストしている場合、たとえば、アプリケーション・ナビゲータでWebサービス・コンテナのポップアップ・メニューから「Webサービスのテスト」を選択する場合には、JDeveloperがHTTPプロキシ・サーバーを使用していないことを確認してください。

HTTPアナライザの実行中に、次のメッセージが表示されることがあります。

500 Server Error
The following error occurred: [code=CANT_CONNECT_LOOPBACK] Cannot connect due to potential loopback problems

プロキシの除外リストに、localhost|127.0.0.1を追加する必要がある可能性があります。

HTTPプロキシ・サーバーを設定し、例外リストを編集するには、次のようにします。

1. 「ツール」→「設定」を選択し、「Webブラウザとプロキシを選択します。

2. 必要に応じて、「HTTPプロキシ・サーバーを使用」が選択または選択解除されていることを確認します。

3. 「例外」リストに適切な値を追加します。セパレータには「|」を使用してください。
Javaがプロキシとしてlocalhostを使用するためには、それが唯一のエントリである場合も含めて、「例外」リストに~localhostが存在する必要があります。

8.4 アプリケーションのプロファイリング

プロファイラは、実行中のプログラムによるプロセッサおよびメモリーのリソースの使用状況を監視し、ログに記録します。統計が収集され、パフォーマンスの問題をより容易に診断してコードの非効率な部分を修正できます。

JDeveloperには、ローカルおよびリモート・プロファイリング用に、CPUプロファイラおよびメモリー・プロファイラという2種類のプロファイラが用意されています。

- CPUプロファイラは、アプリケーションがプロセッサに及ぼす影響を分析するために使用します。CPUプロファイラを使用すると、起動、初期化、再描画およびコンパイルなどのアプリケーションの機能をテストできます。

- メモリー・プロファイラは、プログラムがJavaヒープのメモリーをどのように使用するかを視覚的かつ統計的に分析するものです。メモリー・プロファイラを使用すると、プログラムのメモリー・リークを検出して切り離すことができます。

プロファイリングと、アプリケーションおよびプロジェクトをプロファイリングする手順の詳細は、第18.10項「プロジェクトのプロファイリング」を参照してください。

9 アプリケーションのデプロイ

この章では、JDeveloperの統合アプリケーション・サーバーを使用してアプリケーションを実行およびデバッグする方法と、Oracle WebLogic Serverやサード・パーティのサーバーのようなターゲット・アプリケーション・サーバーにアプリケーションをデプロイする方法を説明します。

この章では、次の項目について説明します。

- 第9.1項「アプリケーションのデプロイについて」

- 第9.2項「統合アプリケーション・サーバーでのJava EEアプリケーションの実行」

- 第9.3項「アプリケーション・サーバーへのJava EEアプリケーションの接続とデプロイ」

- 第9.4項「Javaアプリケーションのデプロイ」

- 第9.5項「Java EEアプリケーションのデプロイ」

- 第9.6項「デプロイ後の構成」

- 9.7項「アプリケーションのテストとデプロイの検証」

- 第9.8項「コマンドラインからのデプロイ」

- 第9.9項「Java Web Startを使用したデプロイ」

- 第9.10項「Weblogic SCA Springを使用したデプロイ」

- 第9.11項「デプロイメントのトラブルシューティング」

9.1 アプリケーションのデプロイについて

デプロイは、アプリケーション・ファイルをアーカイブ・ファイルとしてパッケージ化し、ターゲット・アプリケーション・サーバーに転送するプロセスです。JDeveloperを使用して、JavaまたはJava EEアプリケーションをアプリケーション・サーバー(Oracle WebLogic ServerやIBM WebSphereなど)に直接デプロイすることも、または間接的に、つまりアーカイブ・ファイルをデプロイメント・ターゲットにしてまずそれにデプロイし、そのアーカイブ・ファイルを後からターゲット・サーバーにインストールすることもできます。アプリケーション開発では、JDeveloperを使用して、統合アプリケーション・サーバーでアプリケーションを実行することもできます。JDeveloperではサーバー・クラスタへのデプロイがサポートされていますが、JDeveloperを使用して、クラスタのメンバーである個々の管理対象サーバーにデプロイすることはできません。

Oracle® Fusion Middleware拡張機能を使用する場合、製品に固有のデプロイ情報の詳細は、適切な開発者向けガイドを参照してください。次に例を示します。

- ADF Fusion Webアプリケーションをデプロイする場合、『Oracle Fusion Middleware Oracle Application Development Framework Fusion開発者ガイド』の「Fusion Webアプリケーションのデプロイ」を参照してください。

- ADF Java EEアプリケーションをデプロイする場合、『Oracle Fusion Middleware Oracle Application Development Framework Java EE開発者ガイド』の「ADF Java EEアプリケーションのデプロイ」を参照してください。

アプリケーションは、次の方法でデプロイできます。

- アプリケーション・サーバー接続を介して直接アプリケーション・サーバーにデプロイ。

- アーカイブ・ファイルにデプロイ。デプロイメント・ターゲットとしてアーカイブ・ファイルを選択することによって、間接的にアプリケーションをデプロイできます。アーカイブ・ファイルは、ターゲットJava EEアプリケーション・サーバーに後でインストールできます。

- JDeveloper統合アプリケーション・サーバーを使用したテスト環境へのデプロイ。Java EEランタイム・サービスで、JDeveloperアプリケーションとプロジェクトをJava EEアプリケーションおよびモジュールとしてJava EEコンテナ内で実行およびテストするために使用します。

注意:

通常、JDeveloperは開発やテストの目的でアプリケーションをデプロイする場合に使用します。アプリケーションを本番用にデプロイする場合は、Enterprise Managerまたはスクリプトを使用して、本番レベルのアプリケーション・サーバーにデプロイできます。

後期テスト環境や本番環境へのデプロイの詳細は、『Oracle Fusion Middleware Oracle Application Development Framework Java EE開発者ガイド』を参照してください。

図9-1に、デプロイ処理全体を説明したフロー・ダイアグラムを示します。デプロイのためにターゲット・アプリケーション・サーバーを準備する方法は、このガイドでは扱いません。Oracle WebLogic Serverへのデプロイについては『Oracle Fusion Middleware Oracle Application Development Framework Java EE開発者ガイド』を、サード・パーティ・アプリケーション・サーバーについては適切なドキュメントをそれぞれ参照してください。

図9-1 デプロイの概要フロー・ダイアグラム

JavaおよびJava EEアプリケーションは、標準化されたモジュール型コンポーネントに基づいており、次のアプリケーション・サーバーにデプロイできます。

- Oracle WebLogic Server
Oracle WebLogic Serverは、そうしたモジュール用のサービス一式を備えており、細かいアプリケーション動作の多くを自動的に処理するため、プログラミングは必要ありません。

- Oracle GlassFish Server
Oracle GlassFish Server 3.1にデプロイできます。

- オラクル社以外のベンダーから提供される、次のサード・パーティ・アプリケーション・サーバー

- Apache Tomcat

- IBM WebSphere

- JBoss

- GlassFish Server Open Source Edition

互換性のあるサーバーのバージョンについては、JDeveloperの認定情報(http://www.oracle.com/technetwork/developer-tools/jdev/documentation/index.html)を参照してください。

JDeveloperを使用して、次の作業を実行できます。

- 統合アプリケーション・サーバーでのアプリケーションの実行
統合WebLogic Serverを使用してアプリケーションを実行およびデバッグし、その後スタンドアロンのWebLogic Serverまたはサード・パーティのサーバーにデプロイできます。

- スタンドアロン・アプリケーション・サーバーへの直接デプロイ
アプリケーションをスタンドアロン・アプリケーション・サーバーに直接デプロイするには、サーバーへの接続を作成し、そのサーバーの名前をデプロイメント・ターゲットとして選択します。

- アーカイブ・ファイルへのデプロイ
EARファイルをデプロイメント・ターゲットとして選択することで、アプリケーションを間接的にデプロイできます。アーカイブ・ファイルは、ターゲット・アプリケーション・サーバーに後でインストールできます。

デプロイは反復プロセスの場合があります。この場合は、アプリケーションに対する調整やデプロイ済アプリケーションの問題の修正のために、テスト・デプロイ環境、アーカイブ・ファイルまたはアプリケーション・サーバーへの再デプロイが必要になります。JDeveloperからアプリケーションをデプロイするプロセスには、多くのプロセスが伴います。

9.1.1 統合アプリケーション・サーバーへのアプリケーションの開発

JDeveloperには統合WebLogic Serverと呼ばれる統合アプリケーション・サーバーがバンドルされており、IntegratedWebLogicServerと呼ばれるデフォルト接続が定義されています。統合アプリケーション・サーバーは、反復的なコード開発サイクルに最適化されたデプロイメントを使用するサービスのためのJava EEランタイムです。JDeveloperアプリケーションおよびプロジェクトを、Java EEコンテナ内のJava EEアプリケーションおよびモジュールとして実行しテストするために、あるいはブラウザやテスターの起動など実行後のサービスのために使用できます。統合アプリケーション・サーバーへの接続は、JDeveloperにデフォルトで用意されているので、デプロイメント・プロファイルやデプロイメント・ディスクリプタは必要ありません。ほとんどの場合、統合アプリケーション・サーバーへのデプロイは1クリックで実行できます。たとえば、アプリケーション・ナビゲータでWebサービスの右クリック・メニューから「実行」を選択したり、JDeveloperのメイン・メニューから「実行」を選択します。

アプリケーションのデバッグに使用する機能については、第7章「アプリケーションのビルド、実行およびデバッグ」を参照してください。

9.1.2 スタンドアロン・アプリケーション・サーバーにデプロイするためのアプリケーションの開発

通常、スタンドアロン・サーバーにデプロイするためには、統合アプリケーション・サーバーでアプリケーションを実行してテストと開発を行います。その上で開発モードのスタンドアロンOracle WebLogic Server、またはサード・パーティ・アプリケーション・サーバーにデプロイして、アプリケーションをさらにテストし本番環境を細かくシミュレートします。

一般にJDeveloperでは、次の作業を行って、デプロイに向けてアプリケーションまたはプロジェクトを準備します。

- ターゲット・アプリケーション・サーバーへの接続を作成

- デプロイメント・プロファイルを作成(必要な場合)

- デプロイメント・ディスクリプタを作成(必要な場合、およびターゲット・アプリケーション・サーバーに固有の場合)

- application.xmlとweb.xmlを更新してアプリケーション・サーバーとの互換性を確保(必要な場合)

- アプリケーションレベルのセキュリティ・ポリシー・データをドメインレベルのセキュリティ・ポリシー・ストアに移行

アプリケーション・サーバーがすでにインストールされている必要があります。Oracle WebLogic Serverの場合は、Oracle 11g InstallerまたはOracle Fusion Middleware 11g Application Developer Installerを使用してインストールできます。他のアプリケーション・サーバーについては、対象アプリケーション・サーバーのドキュメントの説明に従ってサーバーを取得し、インストールしてください。

必要な場合には、データソースへの接続を必要とするアプリケーションのためにグローバルJDBCデータソースを作成して、アプリケーション・サーバーを準備します。

アプリケーションとアプリケーション・サーバーの準備が完了したら、次の作業を行うことができます。

- JDeveloperを使用して次の操作を行います。

- デプロイメント・プロファイルとアプリケーション・サーバー接続を使用して、アプリケーション・サーバーに直接デプロイします。

- デプロイメント・プロファイルを使用して、EARファイルにデプロイします。WARファイルとMARファイルはEARファイルの一部としてのみデプロイできます。

- Enterprise Manager、スクリプト、またはアプリケーション・サーバーの管理ツールを使用して、JDeveloperで作成したEARファイルをデプロイします。詳細は、Oracle Fusion Middleware Oracle Application Development Frameworkの管理者ガイドを参照してください。

9.1.3 アーカイブ形式の理解

Java EEアーカイブ・ファイルには、Java EEモジュールまたはJava EEアプリケーションが含まれています。モジュールは、デプロイ用に構成された、一般的なコンポーネント・タイプの1つ以上のJDeveloperプロジェクトで構成されます。アプリケーションは、1つ以上のモジュールで構成されます。また、アーカイブにはデプロイメント・ディスクリプタも含まれます。デプロイメント・ディスクリプタは、モジュールまたはアプリケーションの構成をサーバーに対して指定するXMLファイルであり、サーバーのタイプに固有です。デプロイメント・ディスクリプタは、サーバー固有の場合もJava EEサーバー汎用の場合もあります。

JAR、EJB JARおよびWARファイルには、それぞれ1つ以上のコンポーネントで構成されるモジュールが含まれます。エンタープライズ・アーカイブ(EARファイル)には、1つ以上のモジュールで構成されるアプリケーションが含まれます。

Webアプリケーション(サーブレット、JSP、JSFおよびADF Faces)またはEJBアプリケーションを作成し、アプリケーション・サーバー接続を介してデプロイする場合、JDeveloperによって、そのアプリケーションがWARまたはEJB JARとしてパッケージ化されます。このWARまたはEJB JARは、オプションでEARファイルにラップできます。アプリケーションが異なるタイプのコンポーネントで構成されている場合、コンポーネントは複数のモジュールにパッケージ化されるため、単独でデプロイするか、EARファイルとしてアセンブルできます。

9.1.4 デプロイメント・プロファイルの理解

デプロイメント・プロファイルは、プロジェクトまたはアプリケーションのデプロイを管理するアプリケーションまたはプロジェクトのプロパティです。デプロイメント・プロファイルでは、ソース・ファイル、デプロイメント・ディスクリプタ、およびパッケージ化される他の補助ファイル、作成されるアーカイブ・ファイルのタイプと名前、依存に関する情報、プラットフォーム固有の説明などの情報を指定します。

9.1.5 デプロイメント・ディスクリプタの理解

デプロイメント・ディスクリプタによって、デプロイ済アプリケーションの内容および構成が定義されます。アプリケーションに必要なデプロイメント・ディスクリプタ・ファイルは、アプリケーションに使用されているテクノロジおよびターゲット・アプリケーション・サーバーによって異なります。

9.1.6 デプロイメント・プランを使用したデプロイメントの構成

デプロイメント・プランを使用すると、web.xml、weblogic.xml、application.xmlおよびweblogic-application.xmlのアプリケーション・デプロイメント・ディスクリプタで構成を調整できるため、アプリケーションのデプロイ方法を制御できます。

デプロイメント・プランは、plan.xmlというディスクリプタを使用して制御されます。plan.xmlを使用してカスタマイズできるのは、WebLogicのデプロイメント・ディスクリプタ構成のみです。デプロイメントをカスタマイズする主な使用例としては、ベースのWebLogicディスクリプタを変更しないまま、デプロイ先のサーバーごとにWebLogic固有のアプリケーション構成を変更する場合があります。詳細は、『Oracle Fusion Middleware Oracle WebLogic Serverへのアプリケーションのデプロイ』のデプロイメント・プランに関する項を参照してください。

9.1.7 Java Editionからのデプロイ

Java EditionのJDeveloperを使用している場合は、コアJavaとXMLの機能しか含まれていないため、実行できるデプロイメントが次の操作に限られます。

- 手動でサーバーにデプロイできる、シンプルJARアーカイブの作成。
JDeveloperのJava Editionには、JARファイルにアプリケーションをパッケージ化する機能があります。Java Editionのデプロイメント・ダイアログでは、JAR名の指定、ファイルのグループ化、または他のデプロイメント・プロファイルへの依存性などの標準JARオプションの限定された構成のみが可能です。さらに構成が必要な任意のアプリケーションでは、JDeveloperのStudio Editionからデプロイする必要があります。

- 拡張機能を開発する一環としてのデプロイメント・プロファイルの作成。JDeveloper拡張機能の作成の詳細は、Oracle Fusion Middleware Oracle JDeveloper Extensions開発者ガイドを参照してください。

9.2 統合アプリケーション・サーバーでのJava EEアプリケーションの実行

JDeveloperは、アプリケーションのテストと開発に使用できる統合アプリケーション・サーバーである統合WebLogic Serverとともにインストールされます。開発目的では、統合アプリケーション・サーバーで十分なことがほとんどです。アプリケーションをテストする準備が整ったら、実行ターゲットを選び、メイン・メニューから「実行」コマンドを選択します。

注意:

プロジェクト、ファイル、Webサービスを実行またはデバッグして統合アプリケーション・サーバーを初めて起動すると、デフォルト・ドメイン上の管理者IDのパスワードを入力するダイアログが表示されます。「OK」をクリックすると、デフォルトのドメインが作成されます。この手順は1回のみ実行する必要があります。

アプリケーション・ターゲットを実行すると、プロジェクトとアプリケーション・ワークスペースのアーティファクトに基づいて、デプロイするJava EEモジュールのタイプが自動的に検出されます。次に、アプリケーションを統合アプリケーション・サーバーにデプロイするためのメモリー内デプロイメント・プロファイルが作成されます。プロジェクトとアプリケーション・ワークスペースのファイルは、展開EARディレクトリ構造にコピーされます。このファイル構造は、アプリケーションをEARファイルにデプロイする場合のEARファイル構造を忠実に模したものです。続いて、標準のデプロイ手順に従って、展開EARファイルが統合アプリケーション・サーバーに登録およびデプロイされます。展開EAR方式を取ることで、実際のEARファイルのパッケージ化とパッケージ化解除によって生じるパフォーマンス・オーバーヘッドが軽減されます。

要約すれば、実行ターゲットを選択して統合アプリケーション・サーバーでアプリケーションを実行すると、JDeveloperによって次のことが行われます。

- プロジェクトとアプリケーションのアーティファクトに基づいて、デプロイするJava EEモジュールのタイプを検出

- メモリーにデフォルトの(つまりカスタマイズされていない)デプロイメント・プロファイルを作成

- プロジェクトとアプリケーションのファイルを、アプリケーションの展開EARファイルをシミュレートしたファイル構造を持つ作業ディレクトリにコピー

- 模擬EARを統合アプリケーション・サーバーに登録およびデプロイするためのデプロイ・タスクを実行

- アイデンティティ、資格証明およびポリシーを自動的に移行。スタンドアロンのOracle WebLogic Serverインスタンスにアプリケーションをデプロイする予定がある場合は、このセキュリティ情報の移行が必要になります。

注意:

統合アプリケーション・サーバーでアプリケーションを実行するときには、アプリケーション用に作成されたデプロイメント・プロファイルは無視されます。

アプリケーションは、統合アプリケーション・サーバーの基本ドメインで実行されます。基本ドメインは、スタンドアロンのOracle WebLogic Serverインスタンスの基本ドメインと同じ構成になっています。つまり、この基本ドメインは、Oracle® Fusion Middleware構成ウィザードを使用して、スタンドアロンのOracle WebLogic Serverインスタンスにデフォルト・オプションで基本ドメインを作成した場合と同一です。

JDeveloperでは、JDeveloperテクノロジ拡張に基づいて、この基本ドメインが必要なドメイン拡張テンプレートで拡張されます。たとえば、JDeveloper Studioをインストールした場合、統合アプリケーション・サーバー環境がADFランタイム・テンプレート(JRF Fusion Middlewareランタイム・ドメイン拡張テンプレート)で自動的に構成されます。

デフォルト・ドメインを使用するのみでなく、アプリケーションの実行とテストに使用できる追加のデフォルト・ドメインを、統合アプリケーション・サーバーに明示的に作成できます。アプリケーション・サーバー・ナビゲータを開き、「IntegratedWebLogicServer」を右クリックして、「デフォルト・ドメインの作成」を選択します。

9.2.1 統合アプリケーション・サーバーの「ログ」ウィンドウの理解

統合アプリケーション・サーバーでアプリケーションを実行またはデバッグするときに生成される出力メッセージは、「実行中: IntegratedWebLogicServer」または「デバッグ中: IntegratedWebLogicServer」というタイトルのログ・ウィンドウに表示されます。

統合WebLogic Serverの「ログ」ウィンドウには、次の内容が表示されます。

- サーバーと、そのサーバーで実行されているアプリケーションに関するステータス・ログ・メッセージ

- 統合アプリケーション・サーバー・インスタンスのコンソールからの出力(色付き)

- アプリケーションを統合アプリケーション・サーバーにデプロイするとき生成されるメッセージ

- Java EEアーカイブ(EAR、WAR、EJB JAR)の作成中に記録されるメッセージ。ログ・ウィンドウのリンクをクリックすると、生成されたアーカイブを参照できます。

生成されたログ・ファイルは、jdeveloper-user-home/DefaultDomain/server/DefaultServer/logsにあります。

診断ログのパラメータは、logging.xmlファイルで構成できます。一時ロガーは、サーバーがデバッグ・モードで実行されている間にのみ追加できます。

weblogic.xmlのjsp-descriptor要素およびlogging要素で-verbose要素を使用すれば、ログ・ファイルに送信する情報のレベルを制御できます。詳細は、『Oracle Fusion Middleware Oracle WebLogic Server Webアプリケーション、サーブレット、JSPの開発』で、weblogic.xmlのディスクリプタ要素に関する情報を参照してください。

9.2.2 統合アプリケーション・サーバーへのデプロイを決定する規則

統合アプリケーション・サーバーへのデプロイでは、デフォルト・マッピングのプロジェクト・メタデータに依存するデフォルトのデプロイメント・プロファイルが使用されます。プロファイルのデフォルト要素はプロジェクトの依存性によって決まり、依存性には次のような規則があります。

1. プロジェクトAがプロジェクトBのビルド出力に依存する場合、プロジェクトBのビルド出力はプロジェクトAにマージされます。プロジェクトAがWebアプリケーションの場合は、プロジェクトAとプロジェクトBのビルド出力がどちらも、生成されるWARのWEB-INF/classesにコピーされることになります。
マージされるということは、特定のURIのコピーが1つしか存在できないことを意味します。WEB-INF/classesに1つしか存在しないからです。

2. プロジェクトAがプロジェクトBのデプロイメント・プロファイル、たとえばJARプロファイルに依存する場合、そのデプロイメント・プロファイルは最終的に、生成されるWARのWEB-INF/libに含まれます。

3. WEB-INF/web.xmlを含むプロジェクトはWebプロジェクトとして認識され、デフォルトのWARプロファイルが作成されます。

4. 少なくとも1つのセッションEJB Beanを含むプロジェクトはEJBプロジェクトとして認識され、デフォルトのEJB JARプロファイルが作成されます。

5. Webプロジェクト用に「デフォルトでデプロイ済」とマークされるすべてのライブラリは、Webアプリケーション・ライブラリとして(WARのWEB-INF/libに)デプロイされます。

6. EJBプロジェクト用に「デフォルトでデプロイ済」とマークされるすべてのライブラリは、アプリケーション・ライブラリとして(EARのlibに)デプロイされます。

7. EJBプロジェクトAがプロジェクトBのビルド出力に依存する場合、プロジェクトBのビルド出力(classesなど)はプロジェクトAのビルド出力にマージされ、EJB JARのルート・ディレクトリにデプロイされます。

9.2.3 統合アプリケーション・サーバーの使用

JDeveloperおよびご使用のコンピュータ・システムとインスタンスとの相互作用は、統合アプリケーション・サーバーの定義によって制御されます。

JDeveloperには統合WebLogic Serverと呼ばれる統合アプリケーション・サーバーがバンドルされており、IntegratedWebLogicServerと呼ばれるデフォルト・インスタンスが定義されています。すべてのアプリケーションは、デフォルトでIntegratedWebLogicServerにバインドされています。

アプリケーションがバインドされる統合アプリケーション・サーバーは、そのプロパティを変更できます。

注意:

統合アプリケーション・サーバーとして使用されるWebLogic Serverドメインは、JDeveloperプロセスと同じホスト上に配置される必要があります。

アプリケーションがバインドされる統合アプリケーション・サーバーのプロパティを変更するには、次のようにします。

1. アプリケーション・ナビゲータで、プロジェクトを選択します。

2. 「アプリケーション」→「アプリケーション・プロパティ」を選択します。

3. 左側のパネルから「実行を選択します。

4. 「アプリケーションのサーバー・インスタンスへのバインド」で既存の統合アプリケーション・サーバーを選択するか、「アプリケーション・サーバー・プロパティ」をクリックして「アプリケーション・サーバー・プロパティ」ダイアログを開き、統合アプリケーション・サーバーのプロパティを変更します。

5. 起動やシャットダウンのオプションなど、統合アプリケーション・サーバーのその他のオプションを定義します。詳細は、[F1]を押すか、ダイアログ内で「ヘルプ」をクリックしてください。

統合アプリケーション・サーバーの新規インスタンスを作成できます。

9.2.3.1 新しい統合アプリケーション・サーバー接続の作成方法

統合アプリケーション・サーバー接続を定義するには、次のようにします。

1. アプリケーション・サーバー・ナビゲータで、「アプリケーション・サーバー」を右クリックして、「新規アプリケーション・サーバー」を選択します。アプリケーション・サーバー接続の作成ウィザードが表示されます。詳細は、[F1]を押すか、ウィザードで「ヘルプ」をクリックしてください。

2. 「使用方法」ページで「統合サーバー」を選択します。サーバーをJDeveloper内から管理する場合は、「名前とドメイン」ページで「JDeveloperでこのサーバー・インスタンスのライフサイクルを管理します」を選択し、「ドメイン」と「サーバー・インスタンス」のディレクトリを指定します。

3. ウィザードを完了します。

9.2.3.2 統合アプリケーション・サーバーでの実行とデバッグの方法

デフォルトでは、EJB、サーブレット、HTML、Webサービス、またはJSPプロジェクトを実行またはデバッグするとき統合アプリケーション・サーバーが自動的に起動します。あるいは、「実行」メニューから「サーバー・インスタンスの起動」または「サーバー・インスタンスのデバッグ」をクリックして統合アプリケーション・サーバーを起動することもできます。

起動した統合アプリケーション・サーバーは、Java EEアプリケーションの実行を停止しても自動的には停止しません。したがって、JSPやサーブレットなどのオブジェクトをアプリケーション・ナビゲータで選択し、「実行」メニューからオプションを選択します。

ワーキング・セットを実行またはデバッグできます。ワーキング・セットとはファイルのグループであり、「実行」メニューの「現在のワーキング・セットを使用(Java EEのみ)」オプションを選択し、名前付きフィルタをプロジェクトに適用することによって作成されます。

ワーキング・セットを有効にした場合、ソース・エディタのポップアップ・メニューまたはアプリケーション・ナビゲータのノードから、「実行」または「デバッグ」を選択した際に、これが実行またはデバッグされる現在のワーキング・セットとなります。

一度に実行できる統合アプリケーション・サーバーは1つのみです。したがって、サーバーの別のインスタンスを起動しようとすると、前のインスタンスがシャットダウンされ、ナビゲータで選択したアイコンの要求タスクを実行するために、インスタンスが再起動されます。統合アプリケーション・サーバーの起動後は、複数のアプリケーションを相互に独立して実行できます。アプリケーションの実行中にそのアプリケーションを再実行すると、最新バージョンのアプリケーションが再デプロイされます。

統合アプリケーション・サーバーで実行するアプリケーションは、サーバー・インスタンスにバインドされている必要があります。JDeveloperにはWebLogicサーバー・ドメインが付属しており、DefaultServerという名前のデフォルト・サーバー・インスタンスが定義されています。この統合アプリケーション・サーバーに対して定義される一意の統合アプリケーション・サーバー接続はIntegratedWebLogicServerと呼ばれ、システム・ディレクトリ$SYSTEM_ROOT/DefaultDomainとして定義されるドメイン・ホームを持っています。すべてのアプリケーションは、デフォルトでIntegratedWebLogicServerにバインドされています。

9.2.3.3 デフォルト・ドメインの使用

統合アプリケーション・サーバーのデフォルト・ドメインを明示的に作成していない場合には、アプリケーションを実行またはデバッグしてサーバーを起動するとき、デフォルト設定で自動的に起動します。

あるいは、アプリケーション・サーバー・ナビゲータで明示的にデフォルト・ドメインを作成することもできます。

必要な場合は、作成しなおして新しい値を使用するように、既存のデフォルト・ドメインを削除できます。

統合アプリケーション・サーバーのデフォルト・ドメインを明示的に作成するには、次のようにします。

1. 必要な場合は、「表示」→「アプリケーション・サーバー・ナビゲータ」を選択して「アプリケーション・サーバー・ナビゲータ」を開きます。

2. 統合アプリケーション・サーバー接続「IntegratedWebLogicServer」を右クリックし、「デフォルト・ドメインの作成」を選択します。「デフォルト・ドメインの構成」ダイアログが開いたら、デフォルトをそのまま使用するか、別のリスニング・アドレスを選択するなど、明示的に別の値を設定します。詳細は、「デフォルト・ドメインの構成」ダイアログで「ヘルプ」をクリックするか、[F1]を押してください。

JDeveloperに拡張機能をインストールする際には、統合アプリケーション・サーバーのデフォルト・ドメインの更新が必要になる場合があります。

統合アプリケーション・サーバーのデフォルト・ドメインを更新するには、次のようにします。

1. 必要な場合は、「表示」→「アプリケーション・サーバー・ナビゲータ」を選択してアプリケーション・サーバー・ナビゲータを開きます。

2. 統合アプリケーション・サーバー接続「IntegratedWebLogicServer」を右クリックし、「デフォルト・ドメインの更新」を選択します。

デフォルト・ドメインがすでに作成されており、特定の設定を使用する必要がある場合には、既存のデフォルト・ドメインを削除して作成しなおすことができます。

統合アプリケーション・サーバーのデフォルト・ドメインを削除するには、次のようにします。

- JDeveloperを起動していないときに、ファイル・システムでJDeveloperのシステム・フォルダを探し、削除します。JDeveloperを再起動すると、統合アプリケーション・サーバーの新しいデフォルト・ドメインを作成できるようになります。

サーバーが起動したら、ナビゲータの「Run Manager」タブをクリックするか、「表示」メニューから「Run Manager」を選択すると、統合アプリケーション・サーバーのプロセスが表示されます。

注意:

実行モードのサーバーでは同時に複数のアプリケーションを実行できますが、デバッグ・モードで一度にデバッグできるアプリケーションは1つのみです。JDeveloperを非デバッグの編集モードに戻すには、統合アプリケーション・サーバーを停止する必要があります。

9.2.3.4 統合アプリケーション・サーバーでのアプリケーションの1クリック実行

アプリケーションを統合アプリケーション・サーバーで実行して、テストできます。ブレークポイントを設定し、統合アプリケーション・サーバーでデバッグ・モードでアプリケーションを実行することもできます。実行とデバッグの詳細は、第7章「アプリケーションのビルド、実行およびデバッグ」を参照してください。

統合アプリケーション・サーバーでアプリケーションを実行するには、次のようにします。

1. アプリケーション・ナビゲータで実行ターゲット、たとえばプロジェクト、Webサービス、バインドなしタスク・フロー、JSFページなどを選択します。

2. 実行ターゲットを右クリックして、「実行」または「デバッグ」を選択します。あるいは、メイン・メニューから「実行」または「デバッグ」を選択します。
アプリケーションを実行またはデバッグして統合アプリケーション・サーバーを初めて起動すると、デフォルト・ドメイン上のデフォルト・ユーザーweblogicのパスワードを入力するダイアログが表示されます。「OK」をクリックすると、デフォルトのドメインが作成されます。この手順は1回のみ実行する必要があります。

アプリケーション・レベルのデータソースとグローバルなデータソース

統合アプリケーション・サーバーにデプロイする場合は、アプリケーション・レベルのデータソースまたはグローバル・データソースを使用できます。

統合アプリケーション・サーバーへの1クリックによるデプロイの場合、JDeveloperでは、アプリケーション・リソース名を識別するために、Webアプリケーションweb.xmlまたはEJBアプリケーションejb-jar.xmlに必要な<resource-ref>エントリが含まれていることが確認されます。名前の形式はjdbc/connection-nameDSで、connection-nameはアプリケーション・リソースの名前です。

アプリケーションでは、java:comp/env/jdbc/connection-nameDSのアプリケーション固有のリソースJNDIネームスペースを使用してこのデータソースを参照します。アプリケーションでこのリソースを検出できるのは、web.xmlにjdbc/connection-nameDSの<resource-ref>エントリが含まれているためです。

統合WebLogic Serverへの1クリックによるデプロイでアプリケーション・レベルのデータソースを使用するには、「アプリケーション・プロパティ」ダイアログ(「アプリケーション」メニューから選択可能)の「WebLogic」ページで「JDeveloperでアプリケーションを実行する際にJDBC接続を自動生成」を選択します。これによって、次のようになります。

- アプリケーションのEARファイルの/META-INFディレクトリに、connection-name-jdbc.xmlというファイルが生成されます。

- このJDBCモジュールを参照するMETA-INFのweblogic-application.xmlファイルに、対応する<module>エントリが作成されます。

アプリケーションで、アプリケーション・リソースのデータベース接続が複数使用されている場合は、データベース接続ごとにconnection-name-jdbc.xmlファイルが作成され、weblogic-application.xmlファイルの<module>エントリ数は同じになります。

統合WebLogic Serverへの1クリックによるデプロイでグローバル・データソースを使用するには、「アプリケーション・プロパティ」ダイアログ(「アプリケーション」メニューから選択可能)の「WebLogic」ページで「JDeveloperでアプリケーションを実行する際にJDBC接続を自動生成」の選択を解除し、次のようにします。

1. 統合WebLogic Server管理コンソールに接続します。第9.2.3.9項「統合WebLogic Server管理コンソールへのログイン方法」を参照してください。

2. WebLogic Serverで作成するときと類似の方法で、グローバル・データソースを作成します。第9.3.6.4項「Oracle WebLogic ServerでのJDBCデータソースの設定」を参照してください。

9.2.3.5 統合アプリケーション・サーバーの起動方法

デフォルトでは、EJB、サーブレット、またはJSPプロジェクトを実行またはデバッグするとき統合アプリケーション・サーバーが自動的に起動します。したがって、ナビゲータでJSPやサーブレットなどのオブジェクトを選択し、「実行」メニューからオプションを選択できます。

注意:

プロジェクト、ファイル、Webサービスを実行またはデバッグして統合アプリケーション・サーバーを初めて起動すると、デフォルト・ドメイン上の管理者IDのパスワードを入力するダイアログが表示されます。「OK」をクリックすると、デフォルトのドメインが作成されます。この手順は1回のみ実行する必要があります。

一度に実行できる統合アプリケーション・サーバーは1つのみです。したがって、サーバーの別のインスタンスを起動しようとすると、前のインスタンスがシャットダウンされ、ナビゲータで選択したアイコンの要求タスクを実行するために、インスタンスが再起動されます。

サーバーの起動後に、ナビゲータで「Run Manager」タブをクリックすると、統合アプリケーション・サーバーのプロセスが表示されます。「Run Manager」を開くには、メイン・メニューから「表示」→「Run Manager」を選択します。

統合アプリケーション・サーバーを起動するには、次のようにします。

1. 必要な場合は、「表示」→「アプリケーション・サーバー・ナビゲータ」を選択して「アプリケーション・サーバー・ナビゲータ」を開きます。

2. 統合WebLogic Server接続を右クリックし、「サーバー・インスタンスの起動」を選択します。

あるいは、メイン・メニューから「実行」→「サーバー・インスタンスの起動」を選択します。

デバッグ・モードで統合アプリケーション・サーバーを起動するには、次のようにします。

1. 必要な場合は、「表示」→「アプリケーション・サーバー・ナビゲータ」を選択して「アプリケーション・サーバー・ナビゲータ」を開きます。

2. 統合WebLogic Server接続を右クリックし、「サーバー・インスタンスのデバッグ」を選択します。

あるいは、メイン・メニューから「実行」→「サーバー・インスタンスのデバッグ」を選択します。

9.2.3.6 実行中のデプロイメントの取消し方法

統合アプリケーション・サーバーで大きいアプリケーションを実行している場合、デプロイが完了する前に取り消すことができます。

実行中のデプロイメントを取り消すには、次のようにします。

- 「ログ」ウィンドウで「終了」ボタンをクリックし、取り消すプロファイルまたはアプリケーションを選択します。

9.2.3.7 統合アプリケーション・サーバーの終了方法

統合アプリケーション・サーバーを起動すると、統合アプリケーション・サーバーのプロセスが「Run Manager」に表示されます。詳細は、第19.2項「Run Managerの理解」を参照してください。

「Run Manager」を開くには、メイン・メニューから「表示」→「Run Manager」を選択します。

注意:

統合アプリケーション・サーバーにデプロイされたアプリケーションは、統合アプリケーション・サーバーを終了するとき自動的にアンデプロイされます。

デフォルトの動作では、すべてのアプリケーションがアンデプロイされますが、この動作は変更できます。

実行中の統合アプリケーション・サーバーを停止するには、次のようにします。

次のいずれか1つを実行します。

- メイン・メニューから「実行」→「終了」→「IntegratedWebLogicServer」(または統合アプリケーション・サーバーの接続名)を選択します。

- ツールバーの「終了」ドロップダウン・リストから統合アプリケーション・サーバー名を選択します。

- メイン・メニューから、「表示」→「Run Manager」を選択します。統合アプリケーション・サーバー名を右クリックし、「終了」を選択します。

- 「ファイル」→「終了」を選択してJDeveloperを終了します。インスタンスのプロセスを終了するように要求された場合は、「はい」をクリックします。

- アプリケーション・サーバー・ナビゲータで統合アプリケーション・サーバー接続を右クリックし、「サーバー・インスタンスの終了」を選択します。

統合WebLogic Serverを強制的に停止するには、次のようにします。

- 統合WebLogic Serverを強制的に停止するに必要がある場合には、「終了」ボタンを2回押してください。

9.2.3.8 統合アプリケーション・サーバーの起動とシャットダウンの動作を構成する方法

統合アプリケーション・サーバー接続に対して、起動と停止の動作を構成できます。

統合アプリケーション・サーバーの起動と停止の動作を構成するには、次のようにします。

1. 必要な場合は、「表示」→「アプリケーション・サーバー・ナビゲータ」を選択して「アプリケーション・サーバー・ナビゲータ」を開きます。

2. 統合アプリケーション・サーバー接続を右クリックして「プロパティ」を選択し、「アプリケーション・サーバー・プロパティ」ダイアログを開きます。作業中に詳細を参照するには、[F1]を押すか、ダイアログ内から「ヘルプ」をクリックします。
デフォルトの統合アプリケーション・サーバーのプロパティを表示している場合は、ダイアログの「構成」、「シャットダウン」、「起動設定」タブでのみ設定を変更できます。それ以外の場合は、接続名を除くすべてを編集できます。

9.2.3.9 統合WebLogic Server管理コンソールへのログイン方法

統合アプリケーション・サーバーはOracle WebLogic Serverの実装であり、サーバーの管理コンソールに接続できます。

注意:

管理コンソールにログインするには、次のような方法でJDeveloperから統合アプリケーション・サーバーを実行している必要があります。

- アプリケーション・サーバー・ナビゲータで統合WebLogic Serverを起動。

- アプリケーションを起動。

統合アプリケーション・サーバーの管理コンソールを起動してログインするには、次のようにします。

1. 必要な場合は、「表示」→「アプリケーション・サーバー・ナビゲータ」を選択して「アプリケーション・サーバー・ナビゲータ」を開きます。

2. 「IntegratedWebLogicServer」を右クリックして「管理コンソールの起動」を選択します。ブラウザ・インスタンスでログイン・ページ(http://host:port/console)が開きます。
たとえば、デフォルト構成を使用する場合、ブラウザはhttp://localhost:7001/consoleを使用します。

3. デフォルト・ドメインのユーザー名と、統合アプリケーション・サーバーを最初に起動したときに使用したパスワードを使用してログインします。

統合アプリケーション・サーバーはOracle WebLogic Serverの実装なので、統合アプリケーション・サーバーの管理コンソールについては、JDeveloperのインストールにあるWebLogic Serverのオンライン・ドキュメントから、または管理コンソールから利用できる管理コンソール・オンライン・ヘルプを参照してください。

9.3 アプリケーション・サーバーへのJava EEアプリケーションの接続とデプロイ

アプリケーションをスタンドアロンのアプリケーション・サーバーにデプロイする前に、JDeveloperで必須のタスクを実行し、デプロイに向けてアプリケーションを準備する必要があります。

図9-2に、アプリケーションをデプロイ用に準備する場合のプロセス・フローを示します。アプリケーションを作成し、アプリケーション・サーバーの準備が終わると、アプリケーションをデプロイできるようになります。

図9-2 アプリケーションのデプロイ用の準備のフロー・ダイアグラム

9.3.1 ターゲット・アプリケーション・サーバーへの接続の作成方法

JDeveloperアプリケーション・サーバー接続を介して、アプリケーション・サーバーにアプリケーションをデプロイできます。

始める前に:

- アプリケーション・サーバーがインストールされ、起動していることを確認します。

- プロキシ・サーバーの内部で作業している場合は、プロキシ・サーバーを認識するようにJDeveloperを構成する必要があります。

1. 「ツール」→「プリファレンス」を選択して、「プリファレンス」ダイアログを開きます。

2. 「HTTPプロキシ・サーバーを使用」を選択し、プロキシ・サーバーのホスト名とポートを入力します。
「例外」には、マシンから値が移入されます。SSLを使用するように構成されているOracle WebLogic Serverにデプロイする場合は、例外リストに*.company_name.comを追加する必要があります。

アプリケーション・サーバーへの接続を作成する手順:

1. アプリケーション・サーバー接続ウィザードを起動します。
次の操作を実行できます。

- アプリケーション・サーバー・ナビゲータで、「アプリケーション・サーバー」を右クリックし、「アプリケーション・サーバー接続の作成」を選択します。

- 「新規ギャラリ」で、「一般」を展開し、「接続」→「アプリケーション・サーバー接続」を選択して、「OK」をクリックします。
ウィザードの「使用方法」ページで「スタンドアロン・サーバー」が選択されていることを確認し、「次へ」をクリックします。

- リソース・パレットで、「新規」→「接続の作成」→「アプリケーション・サーバー」を選択します。

2. 「AppServer接続の作成」ダイアログの「使用方法」ページで、「スタンドアロン・サーバー」を選択します。

3. 「名前とタイプ」ページで、接続名を入力します。

4. 「接続タイプ」ドロップダウン・リストで、次を選択します。

- Oracle WebLogic Serverへの接続を作成する場合は「WebLogic 10.3」

- JBossへの接続を作成する場合は「JBoss 5.x」

- Oracle GlassFish ServerまたはGlassFish Open Source Editionへの接続を作成する場合は「GlassFish 3.1」

- Tomcatへの接続を作成する場合は「Tomcat 6.x」

- IBM WebSphere Serverへの接続を作成する場合は「WebSphere Server 7.x」

5. 「次へ」をクリックします。

6. 「認証」ページで、アプリケーション・サーバーへのアクセスを認可された管理ユーザーのユーザー名とパスワードを入力します。

7. 「次へ」をクリックします。

8. 「コンフィギュレーション」ページで、次のサーバー情報を入力します。
WebLogicの場合:

- Oracle WebLogicホスト名は、アプリケーション(.jar、.war、.ear)がデプロイされるTCP/IP DNSを含む、WebLogic Serverインスタンスの名前です。

- 「ポート」フィールドに、アプリケーション(.jar、.war、.ear)がデプロイされるOracle WebLogic Serverインスタンスのポート番号を入力します。
ポートを指定しない場合、ポート番号はデフォルトの7001になります。

- 「SSLポート」フィールドに、アプリケーション(.jar、.war、.ear)がデプロイされるOracle WebLogic ServerインスタンスのSSLポート番号を入力します。
SSLポートの指定はオプションです。デプロイメント時に確実にセキュア接続にする場合にのみ必要です。

ポートを指定しない場合、SSLポート番号はデフォルトの7002になります。

- SSLポートを使用してOracle WebLogic Serverインスタンスに接続するために、「常にSSLを使用」を選択します。

- オプションで、Oracle WebLogic Serverが管理権限のないサーバー・ノードを名前で識別するように構成されている場合のみ、WebLogicドメインを入力します。

GlassFishの場合:

- GlassFishサーバーに対するセキュアな接続を作成する場合は、「コンフィギュレーション」ページの「ホスト名に、IPアドレスではなく、localhostなどのホスト名を指定する必要があります。そうしないと接続に失敗します。これは、サーバーへの接続の作成に使用されるURL内のホスト名が、証明書のホスト名と一致する必要があるためです。

JBossの場合:

- JBossデプロイ・ディレクトリの位置を入力するか参照します。ここにアプリケーション・ファイル(.jar、.war、.ear)があります。

- JMXを使用している場合は、「この接続のJMXの有効化」を選択します(オプション)。

注意:

JMXの構成はオプションで、JBoss Application Serverへの接続には必要ありません。JMXはSOAアプリケーションのデプロイにのみ必要です。

JBossサーバーでは、Oracle JMX RMIコネクタ(oracle-jboss-remoting.sar)を使用する必要があります。標準のJBoss JMXコネクタ(jmx-remoting.sar)はJDeveloperで機能しません。

- 「ホスト名」フィールドに、ターゲット・サーバーのホスト名を入力します。デフォルトはマシン名です。

- 「RMIポート」フィールドに、JBossのRMI接続ポートのポート番号を入力します。デフォルトは19000です。

Tomcatの場合:

- 「Webappsディレクトリ」フィールドで、アプリケーション.warファイルが配置されているwebappsディレクトリの場所を入力するか参照します。

WebSphereの場合:

- 「ホスト名」フィールドに、Java EEアプリケーション(.jar、.war、.ear)がデプロイされる、TCP/IP DNSを含むWebSphereサーバーの名前を入力します。名前を入力しない場合は、デフォルトのlocalhostになります。

- 「SOAPコネクタのポート」フィールドに、ポート番号を入力します。このホスト名とポートが、デプロイ用にサーバーへの接続に使用されます。デフォルトのSOAP接続ポートは8879です。

- 「サーバー名」フィールドに、この接続のターゲット・アプリケーション・サーバーに割り当てられた名前を入力します。

- 「ターゲット・ノード」フィールドに、この接続のターゲット・ノード名を入力します。ノードとは、管理対象サーバーのグループです。デフォルトはmachineNode01で、この場合のmachineはノードが常駐するマシンの名前です。

- 「ターゲット・セル」フィールドに、この接続のターゲット・セルの名前を入力します。セルとは、ランタイム・コンポーネントをホストするプロセスのグループです。デフォルトはmachineNode01Cellで、この場合のmachineはノードが常駐するマシンの名前です。

- 「WS管理スクリプト・ファイルの場所」フィールドに、IBM WebSphereアプリケーション・サーバー接続のシステム・ログイン構成を定義するために使用するwsadminスクリプト・ファイルの場所を入力するか、参照して指定します。ORACLE_HOME/oracle_common/common/binディレクトリにあるwsadminファイルは、バージョンが正しくないため、使用しないでください。デフォルトの場所は、Unix/Linuxの場合はwebsphere-home/bin/wsadmin.sh、Windowsの場合はwebsphere-home/bin/wsadmin.batです。

9. 「次へ」をクリックします。

10. WebSphereを選択した場合は、「JMX」ページが表示されます。「JMX」ページで、JMXの情報を入力します(オプション)。

注意:

JMXの構成はオプションで、WebSphere Application Serverへの接続には必要ありません。JMXはSOAアプリケーションのデプロイにのみ必要です。

- 「この接続のJMXの有効化」を選択してJMXを有効にします。

- 「RMIポート」フィールドに、WebSphereのRMI接続ポートのポート番号を入力します。デフォルトは2809です。

- 「WebSphereランタイムJARの場所」フィールドに、WebSphereランタイムJARの場所を入力するか、参照して指定します。

- 「WebSphereプロパティの場所(セキュアなMBeanアクセス用)」フィールドに、セキュリティ構成および有効なMBeanのプロパティを含むファイルの場所を入力するか、参照して指定します。このフィールドはオプションです。

11. 「次へ」をクリックします。

12. 「テスト」ページで、「接続のテスト」をクリックして、接続をテストします。
JDeveloperにより、数種類の接続テストが実行されます。アプリケーションをデプロイできるためには、JSR-88テストに合格する必要があります。テストに不合格だった場合は、ウィザードの前のページに戻って、構成を修正します。

13. 「終了」をクリックします。

Oracle WebLogic Server管理コンソールの起動方法

Oracle WebLogic Server管理コンソールは、アプリケーション・サーバー・ナビゲータから起動し、接続できます。

注意:

コンソールにログインするには、サーバーが起動している必要があります。

1. アプリケーション・サーバー・ナビゲータでOracle WebLogic Serverインスタンスへの接続の名前を右クリックし、「管理コンソールの起動」を選択します。ブラウザ・インスタンスでログイン・ページ(http://host:port/console)が開きます。
たとえば、デフォルト構成を使用する場合、ブラウザはhttp://localhost:7001/consoleを使用します。

2. Oracle WebLogic Serverインスタンスへの接続を最初に作成したときに使用したユーザー名とパスワードを使用してログインします。統合WebLogic Serverの管理コンソールを起動する場合、デフォルト・ユーザーはweblogic、パスワードはデフォルト・ドメインを作成したときに使用したパスワードです。

統合WebLogic Server管理の詳細は、JDeveloperのインストールにあるWebLogic Serverのオンライン・ドキュメントから、または管理コンソールから利用できる管理コンソール・オンライン・ヘルプを参照してください。

9.3.2 デプロイメント・プロファイルの作成および編集方法

デプロイメント・プロファイルでは、ターゲット環境にデプロイされるアーカイブにアプリケーションがパッケージ化される方法が定義されています。デプロイメント・プロファイルには、次の役割があります。

- 作成されるアーカイブ・ファイルのフォーマットと内容を指定します。

- パッケージ対象となるソース・ファイル、デプロイメント・ディスクリプタ、およびその他の補助ファイルをリストします。

- 作成されるアーカイブ・ファイルのタイプおよび名前を記述します。

- 依存情報、プラットフォーム固有の指示、およびその他の情報を示します。

9.3.2.1 デプロイメント・プロファイルについて

アプリケーション・サーバーへのデプロイでは、デフォルト・マッピングのプロジェクト・メタデータに依存するデプロイメント・プロファイルが使用されます。プロファイルのデフォルト要素はプロジェクトの依存性によって決まりますが、デプロイメント・プロファイルをカスタマイズして変更できます。

依存性を決定する規則は、次のとおりです。

1. プロジェクトAがプロジェクトBのビルド出力に依存する場合、プロジェクトBのビルド出力はプロジェクトAにマージされます。プロジェクトAがWebアプリケーションの場合は、プロジェクトAとプロジェクトBのビルド出力がどちらも、生成されるWARのWEB-INF/classesにコピーされることになります。
マージされるということは、特定のURIのコピーが1つしか存在できないことを意味します。WEB-INF/classesに1つしか存在しないからです。

2. プロジェクトAがプロジェクトBのデプロイメント・プロファイル、たとえばJARプロファイルに依存する場合、そのデプロイメント・プロファイルは最終的に、生成されるWARのWEB-INF/libに含まれます。

3. Webプロジェクト用に「デフォルトでデプロイ済」とマークされるすべてのライブラリは、Webアプリケーション・ライブラリとして(WARのWEB-INF/libに)デプロイされます。

4. EJBプロジェクト用に「デフォルトでデプロイ済」とマークされるすべてのライブラリは、アプリケーション・ライブラリとして(EARのlibに)デプロイされます。

5. EJBプロジェクトAがプロジェクトBのビルド出力に依存する場合、プロジェクトBのビルド出力(classesなど)はプロジェクトAのビルド出力にマージされ、EJB JARのルート・ディレクトリにデプロイされます。

アプリケーション・レベルのデプロイメント・プロファイルは、次のとおりです。

- EARファイル: Java EEエンタープライズ・アーカイブ(EAR)ファイルとしてデプロイする場合に使用します。EARファイルは、アプリケーションのアセンブルされたWARファイル、EJB JARファイルおよびクライアントJARファイルで構成されます。

- MARファイル: シード・カスタマイズに対してメタデータ・アーカイブ・ファイルをデプロイする、またはアプリケーション・サーバーのMDSリポジトリにベース・メタデータをデプロイする場合に使用します。MARファイルの詳細は、使用しているOracle® Fusion Middleware製品に該当する開発者ガイドを参照してください。

プロジェクト・レベルのJava EEデプロイメント・プロファイルは、次のとおりです。

- ADFライブラリJARファイル: アプリケーションJARファイルとしてADFコンポーネントをデプロイする場合に使用します。これはADFアプリケーションで、または他のADFライブラリを構築する際に使用できます。

- ビジネス・コンポーネント・アーカイブ・ファイル: ADF Business Componentsをデプロイするためのシンプル・アーカイブ・ファイルを作成します。

- ビジネス・コンポーネントのサービス・インタフェース: ADF Business Componentsをサービス・インタフェースとしてデプロイするためのプロファイルを作成します。

- クライアントJARファイル: 標準のJava EEクライアントJARファイルをデプロイする場合に使用します。

- EJB JARファイル: Java EE EJBモジュール(EJB JAR)をデプロイする場合に使用します。EJB JARには、EJBコンポーネントとそれに対応するデプロイメント・ディスクリプタが含まれます。

- 拡張機能JARファイル: 拡張機能をJARファイルとしてデプロイするためのプロファイルを作成します。

- JARファイル: プロジェクトからシンプルJARアーカイブを作成します。

- OSGiバンドル: OSGiコンテナとしてデプロイできるOSGiバンドルを作成します。JDeveloperで拡張機能を作成するとき、これを使用します。

- RARファイル: Java EEコネクタのRARファイルをデプロイするためのプロファイルを作成します。

- 共有ライブラリJARファイル: シンプル・アーカイブをデプロイするためのプロファイルを作成します。これはファイル・システムのJARまたはZIPファイル、またはリモート・サーバーの共有ライブラリです。

- Taglib JARファイル: カスタム・タグ・ライブラリをJARファイルとしてデプロイするためのプロファイルを作成します。

- WARファイル: Java EE Webモジュール(WAR)をデプロイする場合に使用します。WARは、Webコンポーネント(JSPやサーブレット)と、それに対応するデプロイメント・ディスクリプタで構成されます。

9.3.2.2 デプロイメント・プロファイルの作成

デプロイメント・プロファイルは、次の様々な方法で作成できます。

- 「アプリケーション・プロパティ」ダイアログの「デプロイ」ページを使用します。これは次のインタフェースから開くことができます。

- JDeveloperツールバーの「アプリケーション」メニュー。

- アプリケーションのコンテキスト・メニュー。

- 「アプリケーション・ナビゲータ」ツールバーのドロップダウン・リスト。

- 「プロジェクト・プロパティ」ダイアログの「デプロイ」ページを使用します。これは次のインタフェースから開くことができます。

- アプリケーション・ナビゲータでプロジェクトを選択し、JDeveloperツールバーの「アプリケーション・ナビゲータ」から「プロジェクト・プロパティ」を選択します。

- アプリケーション・ナビゲータのプロジェクトのコンテキスト・メニュー。

- 「新規ギャラリ」の「一般」 - 「デプロイメント・プロファイル」カテゴリのウィザードの1つを使用します(「ファイル」メニューから「新規」を選択して「新規ギャラリ」を開きます)。新規のデプロイメント・プロファイルがプロジェクト・プロパティに追加されます。アプリケーション・レベルのプロファイルを作成するには、アプリケーション・レベルで「新規ギャラリ」を起動します。プロジェクト・レベルのプロファイルを作成するには、プロジェクト・レベルで「新規ギャラリ」を起動します。

- プロジェクトにweb.xmlファイルがある場合は、そのファイルを右クリックして「WARデプロイメント・プロファイルの作成」を選択できます。

- プロジェクトがEJB 3.0の場合は、Beanクラスを右クリックすると、「EJB JARデプロイメント・プロファイルの作成」を選択できます。

- プロジェクトにapplication.xmlがある場合は、そのプロジェクトを右クリックすると、「EARデプロイメント・プロファイルの作成」を選択できます。

既存のデプロイメント・プロファイルを変更するには、次の手順を実行します。

- アプリケーション・ナビゲータでプロジェクトを右クリックして「プロジェクト・プロパティ」を選択し、ウィザードのツリー構造から「デプロイメント」を選択します。次に、デプロイメント・プロファイルを選択し、「編集」を選択します。

- アプリケーション・ナビゲータでアプリケーションを右クリックして「アプリケーション・プロパティ」を選択し、ウィザードのツリー構造から「デプロイメント」を選択します。次に、デプロイメント・プロファイルを選択し、「編集」を選択します。

デプロイメント・プロファイルをアクティブにするには、次の手順を実行します。

- プロジェクト・レベルのデプロイメント・プロファイルの場合は、アプリケーション・ナビゲータでプロジェクトを右クリックし、「デプロイ」→デプロイメント・プロファイルを選択します。

- アプリケーションのデプロイメント・プロファイルの場合は、アプリケーション・ナビゲータでアプリケーションを右クリックし、「デプロイ」→デプロイメント・プロファイルを選択します。あるいは、次のようにします。

- アプリケーション・ナビゲータでアプリケーションを右クリックし、「デプロイ」→デプロイメント・プロファイルを選択します。

- アプリケーションのコンテキスト・メニューから「デプロイ」→デプロイメント・プロファイルを選択します。

- 「アプリケーション・ナビゲータ」のツールバーのドロップダウン・リストから「デプロイ」→デプロイメント・プロファイルを選択します。

プロジェクトおよびそのプロジェクトが依存するプロジェクトがコンパイルされ、パッケージ化されます。

作成したアプリケーションには、必要なデプロイメント・プロファイルがすでに含まれている場合があります。たとえば、Webベースのプロジェクトを作成する場合、必要な依存モデル・プロジェクトを含むデフォルトのWARデプロイメント・プロファイルがすでに存在します。

デプロイメント・プロファイルを作成する手順は、次のとおりです。

1. アプリケーション・レベルのデプロイメント・プロファイルの場合、アプリケーション・ナビゲータでアプリケーションを右クリックして「新規」を選択します。
プロジェクト・レベルのデプロイメント・プロファイルの場合、デプロイするプロジェクトをアプリケーション・ナビゲータで右クリックして「新規」を選択します。

2. 「新規ギャラリ」で「一般」を展開して「デプロイメント・プロファイル」を選択し、目的のデプロイメント・プロファイル・タイプを選択して「OK」をクリックします。
「カテゴリ」ツリーに「デプロイメント・プロファイル」が表示されない場合は、「すべての機能」タブをクリックします。

3. 作成するデプロイメント・プロファイルのタイプを選択し、「OK」をクリックします。たとえばEARデプロイメント・プロファイルの場合、次のようにします。

- 「アプリケーション・アセンブリ」を選択し、続いて「Java EEモジュール」リストで、デプロイメントに組み込むすべてのプロジェクト・プロファイルを選択します(WARプロファイルを含む)。

- 「プラットフォーム」を選択し、デプロイ先となるアプリケーション・サーバーを選択した後、「ターゲット接続」ドロップダウン・リストから、ターゲット・アプリケーション接続を選択します。

4. デプロイメント・プロファイルのプロパティの編集ダイアログで、プロパティ値を設定してプロファイルを構成します。たとえば、プロファイルに含まれるファイル・グループなどを変更できます。完了したら「OK」をクリックします。

デプロイメント・プロファイルは、アプリケーション・レベルのデプロイメント・プロファイルであれば「アプリケーションのプロパティ」ダイアログから、プロジェクト・レベルのデプロイメント・プロファイルであれば「プロジェクト・プロパティ」ダイアログから使用でき、それぞれ編集または削除できます。

9.3.2.3 デプロイメント・プロファイル・プロパティの表示および変更

デプロイメント・プロファイルを作成したら、そのプロパティを表示および変更できます。

デプロイメント・プロファイルを編集または削除するには、次のようにします。

1. アプリケーション・レベルのデプロイメント・プロファイルの場合、「アプリケーション」→「アプリケーションのプロパティ」を選択して、「アプリケーションのプロパティ」ダイアログを開きます。
プロジェクト・レベルのデプロイメント・プロファイルの場合、「アプリケーション」→「プロジェクト・プロパティ」を選択して、「プロジェクト・プロパティ」ダイアログを開きます。

2. 左パネルで「デプロイ」をクリックし、「デプロイ」ページを開きます。

3. 編集または削除するデプロイメント・プロファイルを選択し、次のいずれかをクリックします。

- デプロイメント・プロファイルのプロパティの編集ダイアログを開く場合は、「編集」をクリックします。

- デプロイメント・プロファイルを削除する場合は、「削除」をクリックします。

9.3.2.4 デプロイメント・プロファイルの構成

構成は、コンポーネント・ファイルからアーカイブ・ファイルをアセンブルするプロセスです。構成は、「デプロイメント・プロファイルのプロパティ」ダイアログの「ファイル・グループ」ブランチで指定します。

「ファイル・グループ」ブランチはファイル・グループのリストで構成され、各グループでコンポーネントを指定します。パッケージ化されたアーカイブは、すべてのファイル・グループを統合したものです。ファイル・グループの順序によって名前の競合が解決されます。2つのファイルに同じ名前が付けられている場合、リストの上位のファイル・グループ内のファイルが含められ、下位のファイル・グループ内のファイルが省略されます。

新規に作成されたデプロイメント・プロファイルには、1つ以上の事前定義済ファイル・グループが含まれます。ファイル・グループは追加、削除および編集できます。

ファイル・グループは、一連のフィルタで抽出されたソース元によって定義されます。ソース元はソース・ファイル、JARファイルおよびそれらを含めるために選択されたディレクトリです。フィルタは、ソース元またはソース元のコンポーネントのサブディレクトリおよびファイルに適用される規則であり、パッケージ化するセットおよびファイルを識別します。ファイル・グループには、次の3つの種類があります。

- パッケージ化ファイル・グループ・タイプでは、ソース元、プロジェクト・ディレクトリなどのディレクトリ、JARファイルおよびフィルタを選択できます。このファイル・グループは柔軟で透過的なメカニズムであり、ほとんどのプロジェクトに適しています。

- 依存性分析ファイル・グループ・タイプでは、プロジェクト・ファイルおよびそれらの依存性であるソース元を選択できます。以前のリリースから移行したプロファイルには、依存性分析ファイル・グループが含まれます。

- ライブラリ・ファイル・グループ・タイプでは、プロジェクト・ライブラリであるソース元を選択できます。ライブラリ・ファイル・グループは、WARデプロイメント・プロファイルに対して作成されます。ライブラリ・ファイル・グループは、既存のJARファイルを再パッケージ化する必要があるプロジェクトに役立ちます。

9.3.3 デプロイメント・ディスクリプタの作成および編集方法

アプリケーションのコンポーネント間でのデプロイメントの依存性は、プロジェクトのデプロイメント・プロファイルに指定されます。プロジェクトのデプロイメント・プロファイルに、直接のアップストリームであるプロジェクトのプロファイルを指定します。デプロイメント・プロファイルがデプロイメント用にアクティブになっている場合、その依存性が最初にデプロイされます。

デプロイメント・プロファイルの「プロファイルの依存性」ページで、デプロイメント・プロファイル依存性を設定します。現行ワークスペース内のデプロイメント・プロファイルのみがリストに表示され、選択できます。詳細は、「ヘルプ」をクリックしてください。次のようなプロファイル依存性を選択できます。

- プロファイルとプロファイルの依存性

- プロファイルとJARの依存性

- プロファイルとWARの依存性

- プロファイルとRAR(リソース・アーカイブ)の依存性

あるプロジェクトに含まれているプロファイルをデプロイするとき、そのプロジェクトが他のプロファイルについてプロファイルとプロファイルの依存性を持っている場合、そのプロファイルは、プロジェクトで指定されている依存性をデプロイ時に組み込みます。たとえば、Project1.jprファイルにServlet1.javaが含まれ、そのファイルがejb1.jarに依存し、project2.jprファイルにMySessionEJBとejb1.jarが含まれている場合は、最初のプロジェクトをデプロイすると、EARファイルにwebapp1.warとejb1.jarの両方が含まれます。

共通JARファイルを共有するJAR、WAR、EJB JARモジュール間のプロファイル依存性を作成するときは、META-INF/MANIFEST.MF Class-Path属性を使用して、デプロイ時にまとめてJARファイルをリンクできます。「デプロイメント・プロファイルのプロパティ」の「JARオプション」ページで、「manifestファイルを含める(META-INF/MANIFEST.MF)」を選択します。これによって、共通JARの1つの共有コピーが、EARファイルに組み込まれます。

依存プロジェクトには独自の依存性を指定できますが、循環依存を回避する必要があります。JDeveloperで循環依存が発生した場合、デプロイは試行されますが、ログ・ウィンドウに警告が表示されます。

9.3.3.1 デプロイメント・ディスクリプタについて

デプロイメント・ディスクリプタは、アプリケーションのデプロイ構成を定義するサーバー構成ファイルで、必要に応じてJava EEアプリケーションとともにデプロイされます。プロジェクトに必要なデプロイメント・ディスクリプタは、プロジェクトが使用しているテクノロジとターゲット・アプリケーション・サーバーのタイプによって異なります。デプロイメント・ディスクリプタは、ソース・ファイルとして作成および編集できるXMLファイルですが、JDeveloperは、ほとんどのディスクリプタ・タイプについて、プロパティの表示と設定に使用できるダイアログまたは概要エディタを備えています。これらのファイルを宣言的に編集できない場合、JDeveloperはその内容を編集するためにソースエディタでXMLファイルを開きます。

標準のJava EEデプロイメント・ディスクリプタ(application.xmlおよびweb.xmlなど)に加えて、ターゲット・アプリケーション・サーバーに固有のデプロイメント・ディスクリプタも使用できます。たとえば、Oracle WebLogic Serverにデプロイする場合、weblogic.xml、weblogic-application.xmlおよびweblogic-ejb-jar.xmlを使用できます。

基本ディスクリプタは、デプロイメント・プロファイルを作成するウィザードで作成します。デフォルトの動作をオーバーライドする場合にのみ他のディスクリプタを追加します。作成したディスクリプタをデプロイ時にアーカイブ・ファイルに含める場合もあります。

デプロイメント・ディスクリプタは、「新規ギャラリ」で作成することもできます。デプロイメント・ディスクリプタは、プロジェクトのアプリケーション・ソースのMETA-INFサブフォルダ、またはWebコンテンツ・フォルダのWEB-INFサブフォルダに配置されます。

Java EE標準デプロイメント・ディスクリプタは、それぞれ対応するOracle WebLogic Server固有のディスクリプタによって拡張されます。表9-1で、これらのファイルについて説明し、互いの関係を示します。

表9-1 デプロイメント・ディスクリプタ

Java EE標準ディスクリプタ

Oracle WebLogic Server固有のディスクリプタ

application-client.xml

アーカイブとしてデプロイされたJava EEアプリケーションのクライアントで使用されるEJBモジュールと他のリソースを記述します。

weblogic-appclient.xml

ファイル形式は、weblogic-appclient.xsdに定義されています。

詳細は、『Oracle Fusion Middleware Oracle WebLogic Serverスタンドアロン・クライアントのプログラミング』の「クライアント・アプリケーションのデプロイメント・ディスクリプタ要素」を参照してください。

application.xml

EJBモジュールやWebモジュールなど、Java EEアプリケーションのコンポーネントを指定します。アプリケーションの追加構成を指定することもできます。このディスクリプタは、アプリケーションのEARファイルの/META-INFディレクトリに含める必要があります。

weblogic-application.xml

ファイル形式は、weblogic-application.xsdに定義されています。

詳細は、『Oracle Fusion Middleware Oracle WebLogic Server XMLのプログラミング』を参照してください。

ejb-jar.xml

JAR内のEnterprise JavaBeansの特定の構造特性および依存性を定義し、Beanがコンテナとの相互作用をどのように実行するかに関する指示をEJBコンテナに提供します。

weblogic-ejb-jar.xml

このファイルの形式は、weblogic-ejb-jar.xsdに定義されています。

詳細は、『Oracle Fusion Middleware Oracle WebLogic Server Enterprise JavaBeansのプログラミング』を参照してください。

persistence-configuration.xml

EJB 3.0モジュールの場合。このファイルの形式は、persistence-configuration.xsdに定義されています。

詳細は、『Oracle Fusion Middleware Oracle WebLogic Server Enterprise JavaBeansバージョン3.0のプログラミング』を参照してください。

weblogic-cmp-rdbms-jar.xml

EJB 2.1モジュールの場合。このファイルの形式は、weblogic-rdbms20-persistence.xsdに定義されています。

ra.xml

RARファイルにパッケージ化されたリソース・アダプタの実装コード、構成プロパティおよびセキュリティ設定に関する情報が含まれています。

weblogic-ra.xml

このファイルの形式は、weblogic-ra.xsdに定義されています。

詳細は、『Oracle Fusion Middleware Oracle WebLogic Serverリソース・アダプタのプログラミング』を参照してください。

web.xml

静的ページ、サーブレット、JSPページなど、Java EE Webコンポーネント・セットを指定して構成します。また、Webコンポーネントがコールする可能性のあるEJBなどの他のコンポーネントも指定して構成します。複数のWebコンポーネントで独立したWebアプリケーションを形成し、スタンドアロンWARファイルでデプロイできます。

weblogic.xml

このファイルの形式は、weblogic-web-app.xsdによって定義されます。

詳細は、『Oracle Fusion Middleware Oracle WebLogic Server XMLのプログラミング』を参照してください。

なし。

module-name-jdbc.xml

デプロイ済アプリケーションで使用されるデータソースを定義します。

このファイルの形式は、weblogic-jdbc.xsdによって定義されます。

詳細は、『Oracle Fusion Middleware Oracle WebLogic Server JDBCの構成と管理』を参照してください。

plan.xml

このファイルの形式は、deployment-plan.xsdによって定義されます。

名前/値ペアのリストと、アプリケーションの様々なデプロイメント・ディスクリプタの説明が含まれます。管理者はこれを使用して、デプロイメント・ディスクリプタの値を上書きできます。

詳細は、『Oracle Fusion Middleware Oracle WebLogic Serverへのアプリケーションのデプロイ』を参照してください。

weblogic-diagnostics.xml

このファイルの形式は、weblogic-diagnostics.xsdによって定義されます。

診断アプリケーション・モジュールで診断監視を作成または変更する際に、WebLogic Server管理コンソールで使用されます。

詳細は、『Oracle Fusion Middleware Oracle WebLogic Server診断フレームワークの構成と使用』を参照してください。

weblogic-jms.xml

このファイルの形式は、weblogic-jms.xsdによって定義されます。

Oracle WebLogic ServerでJMSドライバを構成する際に使用されます。

詳細は、『Oracle Fusion Middleware Oracle WebLogic Server JMSのプログラミング』を参照してください。

weblogic-webservices.xml

このファイルの形式は、weblogic-webservices.xsdによって定義されます。

詳細は、『Oracle Fusion Middleware Oracle WebLogic Server WebLogic Webサービス・リファレンス』を参照してください。

9.3.3.2 ライブラリの依存性について

依存ライブラリとは、モジュールのコンパイルと実行に必要とされるライブラリです。ライブラリを含むプロジェクトの「プロジェクト・プロパティ」ダイアログの「ライブラリとクラスパス」ページで、依存ライブラリはエクスポート可能として表示されます。

アプリケーションでは、次のプロジェクトに依存ライブラリを配置できます。

- 現在のモジュールのプロファイルのプロジェクト。これはプロファイル・コンテナです。

- プロファイル・コンテナが依存するプロジェクト。

- このモジュールのプロファイルについて、プロファイルの依存性に関連付けられているプロジェクト(そのプロファイルとプロジェクトの依存性に対して再帰的に)。

プロジェクトの依存性(左側に矢印)とプロファイルの依存性(右側に矢印)の例を次に示します。

図9-3 プロジェクトとデプロイメント・プロファイルの間の依存性

プロジェクトの依存性は、コンパイル時に再帰的でなくてもデプロイ時に再帰的です。JavaProjectからのライブラリが依存ライブラリとみなされるのはそのためです。WebProfileはWebモジュールを表し、次の依存性ライブラリがあります。

- EjbDepLib (WebProjectに対するプロジェクトの依存性からのライブラリ)

- EjbDep.jar (WebProjectに対するプロジェクトの依存性からのライブラリ)

- JavaDepLib (JavaProjectに対する再帰的なプロジェクトの依存性からのライブラリ)

- JavaDep.jar (JavaProjectに対する再帰的なプロジェクトの依存性からのライブラリJAR)

- SampleLib (プロファイルの依存性からのライブラリ)

- Sample.jar (プロファイルの依存性からのライブラリJAR)

- OtherLib (再帰的なプロファイルの依存性からのライブラリ)

- Other.jar (再帰的なプロファイルの依存性からのライブラリJAR)

9.3.3.2.1 解決済のライブラリと未解決のライブラリ

依存ライブラリは、解決済と未解決のいずれかの状態になります。依存ライブラリは、アーカイブに追加されてクラスパスに配置されるまで未解決とみなされ、追加と配置が済むと、そのライブラリを参照する必要があるクラスでライブラリの内容を使用できるようになります。

たとえばWARプロファイルがライブラリを解決する場合は、WEB-INF\libというターゲット出力ディレクトリを持つライブラリ・ファイル・グループ要素でそのライブラリを選択します。こうすると、作成されるWARアーカイブには、そのアーカイブのWEB-INF\libディレクトリのライブラリが含まれ、WARアーカイブのクラスパスにライブラリの内容が含まれるようになります。

ライブラリがデプロイメント・プロファイルによって解決されない場合、このプロファイルは未解決のライブラリをアプリケーション階層に公開し、上位レベルで解決できるようにします。EJBプロジェクトに含まれるライブラリが、EJBプロファイルのパースペクティブから解決されないままになる状況を考えます。この情報は、このようなライブラリが、EARレベルで(EARプロファイルのライブラリ・ファイル・グループで)確実にEARプロファイルによって解決されるように公開されます。

前述の図で、WebProjectにはJavaProjectに対するプロジェクトの依存性があり、JavaProjectにはJavaDepLibと呼ばれるライブラリが含まれます。WebProjectにWARデプロイメント・プロファイルを作成するWebアプリケーションを定義できます。WARデプロイメント・プロファイルのWEB-INF\libライブラリ・ファイル・グループでライブラリを確実に選択することによって、WebモジュールでJavaDepLibが解決されます。

9.3.3.2.2 ライブラリのmanifestエントリ

ライブラリが、標準の\libまたはAPP-INF\lib以外のディレクトリにあるEARアーカイブに含まれる場合は、そのライブラリを参照するモジュールに、必要なmanifestエントリが自動的に挿入されます。

9.3.3.3 デプロイメント・ディスクリプタの作成

必要なデプロイメント・ディスクリプタの多くは、自動的に作成されます。必要なデプロイメント・ディスクリプタが存在しない場合や、追加のディスクリプタを作成する必要がある場合は、明示的な作成が可能です。

始める前に:

デプロイメント・ディスクリプタがすでに生成されているかどうかを確認します。

デプロイメント・ディスクリプタを作成する手順:

1. アプリケーション・ナビゲータで、ディスクリプタを作成するプロジェクトを右クリックし、「新規」を選択します。

2. 「新規ギャラリ」で、「一般」を展開し、「デプロイメント・ディスクリプタ」、ディスクリプタ・タイプの順に選択して、「OK」をクリックします。
目的の項目が見つからない場合は、正しいプロジェクトが選択されていることを確認してから「すべての機能」タブを選択するか、「検索」フィールドを使用してディスクリプタを検索します。項目が有効になっていない場合は、そのタイプのディスクリプタがプロジェクトにまだ存在しないことを確認します。1つのプロジェクトで使用できるディスクリプタのインスタンスは1つのみです。

デプロイメント・ディスクリプタの作成ウィザードが起動し、選択したデプロイメント・ディスクリプタのタイプに応じて、概要エディタまたはソース・エディタでファイルが開きます。

注意:

EARファイルの場合は、1つのアプリケーションまたはワークスペースに、どのような種類であっても複数のデプロイメント・ディスクリプタを作成しないでください。実行時には、アプリケーション・リソースのディスクリプタ、またはEARレベルで生成されたディスクリプタのみが使用されます。アプリケーションの複数のプロジェクトが同じデプロイメント・ディスクリプタを使用すると、起動されたプロジェクトに属するディスクリプタが他のディスクリプタより優先されます。この制約は、application.xml、weblogic-jdbc.xml、jazn-data.xmlおよびweblogic.xmlに適用されます。

アプリケーションレベルのディスクリプタの作成に最適な場所は、アプリケーション・ナビゲータの「アプリケーション・リソース」パネルの「ディスクリプタ」ノードです。アプリケーションは、確実に、正しいディスクリプタとともに作成されます。

デプロイメント・ディスクリプタのプロパティを確認または変更するには、次の手順を実行します。

1. アプリケーション・ナビゲータで、デプロイメント・ディスクリプタを選択します。

2. 右クリックして、「開く」を選択します。
ファイルは、ディスクリプタ・タイプごとに固有の概要エディタで、または「XMLエディタ」ウィンドウで開かれます。

9.3.3.4 デプロイメント・ディスクリプタ・プロパティの表示または変更

デプロイメント・ディスクリプタを作成したら、JDeveloperの各種ダイアログを使用するか、ソース・エディタでファイルを編集することで、そのプロパティを変更できます。デプロイメント・ディスクリプタは、通常「アプリケーション・ソース」ノードにあるXMLファイル(application.xmlなど)です。

デプロイメント・ディスクリプタのプロパティを表示または変更する手順:

1. アプリケーション・ナビゲータまたは「アプリケーション・リソース」パネルで、デプロイメント・ディスクリプタをダブルクリックします。

2. 概要エディタで、「概要」タブまたは「ソース」タブを選択し、プロパティ値を設定してディスクリプタを構成します。
概要エディタが使用できない場合は、ソース・エディタでファイルが開きます。

9.3.4 グローバル・デプロイメント・プリファレンスの構成方法

「プリファレンス」ダイアログの「デプロイメント」ページでグローバル・デプロイメント・オプションを設定できます。

デプロイメント設定を構成するには、次の手順を実行します。

1. メイン・メニューから「ツール」→「プリファレンス」を選択します。

2. 「デプロイメント」ノードを選択します。必要に応じて、デプロイメント・オプションを構成します。詳細は、「ヘルプ」をクリックしてください。

3. 「OK」をクリックします。

注意:

アプリケーション固有およびプロジェクト固有のデプロイメント・プロファイル・オプションは、アプリケーション・プロパティまたはプロジェクト・プロパティから設定してください。「アプリケーション・プロパティ」および「プロジェクト・プロパティ」ダイアログは「アプリケーション」メニューにあります。

9.3.5 デプロイ時にターゲット接続にオプションを渡す方法

JDeveloperでデプロイを実行するとき、コマンドライン・オプションを渡すためにターゲット・アプリケーション・サーバー接続に直接アクセスできます。たとえば、RMI-IIOPデプロイメントをサポートするために、必要なスタブとスケルトンをクライアント側に含むクライアントJARを指定できます。これらのオプションは、サーバーのデフォルト設定を上書き(つまり無視)します。

デプロイ時にターゲット・アプリケーション・サーバー接続にオプションを渡すには、次の手順を実行します。

1. まだ作成していない場合は、適切なデプロイメント・プロファイルを作成します。

2. アプリケーション・ナビゲータで、プロジェクトを右クリックし、「プロパティ」を選択します。

3. 「プロジェクト・プロパティ」ダイアログの左側のパネルで、「デプロイメント」を選択します。

4. 編集するデプロイメント・プロファイルを選択し、「編集」をクリックします。

5. コマンド・オプションを渡すターゲット接続タイプに対応したページが開きます。

6. ページを編集するか、または「デフォルトに戻す」をクリックしてターゲット・サーバーのデフォルト設定に戻します。
詳細は、「ヘルプ」をクリックしてください。

7. 「デプロイメント・プロファイルのプロパティ」の編集が終了したら、「OK」をクリックします。

9.3.6 デプロイ用にアプリケーションを構成する方法

この項では、アプリケーションを正常にアプリケーション・サーバーにデプロイするために実行する必要があるタスクについて説明します。

9.3.6.1 Oracle WebLogic Serverへのデプロイ用にアプリケーションを構成する方法

JDeveloperでアプリケーションを作成する際には、アプリケーション・サーバー接続を介して、パッケージ化されたアプリケーションをOracle WebLogic Serverにデプロイできます。パッケージ化されたアプリケーションには、デプロイするファイルの指定、それらのファイルの構成の説明、およびターゲット・サーバーの指定を行うデプロイメント・プロファイルが含まれます。ターゲットのOracle WebLogic Serverインスタンスは、ローカルでインストールするか、ネットワーク・ドライブにマップする必要があります。

Oracle WebLogic Serverへのデプロイのためにアプリケーションを構成するには、次のようにします。

1. サーバー上で、必要なJDBCデータソースを設定します。詳細は、第9.3.6.4項「Oracle WebLogic ServerでのJDBCデータソースの設定」を参照してください。

2. Oracle WebLogic Server上のEJBにアクセスするクライアントの場合、クライアントで次のコードが必要です。

env.put(Context.INITIAL_CONTEXT_FACTORY,
"weblogic.jndi.WLInitialContextFactory");
env.put(Context.SECURITY_PRINCIPAL, "system");
env.put(Context.SECURITY_CREDENTIALS, "welcome1");
env.put(Context.PROVIDER_URL, "t3://localhost:7001");

3. 2つ以上の異なるアプリケーションで同じEJBを使用している場合、Oracle WebLogic Serverへのデプロイでは、通常2つ目のデプロイでJNDI名の競合が発生します。このため、次の手順を実行して、2つ目以降のデプロイメントで使用するEJBのJNDI名を変更する必要があります。

- weblogic-ejb-jar.xmlを右クリックして、「開く」を選択します。

- 「Enterprise JavaBean」の下で、関連するModuleBM Beanを選択します。右側に「EJB」タブが表示されます。

- 「EJB」タブで、weblogic-ejb-jar.xmlのJNDI名、およびOracle WebLogic Serverにすでにデプロイされている他のEJBのJNDI名と同じにならないように、「JNDI名」フィールドを変更します。

- EJBにアクセスするアプリケーションをOracle WebLogic Serverにデプロイします。デプロイ時には、IDEによって適切なEJB参照が自動的にweblogic.xmlに埋め込まれます。

9.3.6.2 デプロイ用にクライアント・アプリケーションを構成する方法

Java EEクライアント・モジュールは、クライアントJARファイルとしてパッケージ化されます。このファイルには、1つ以上のJavaアプリケーション・コンポーネント、および1つのクライアント・デプロイメント・ディスクリプタ・ファイル(application-client.xml)が含まれています。デプロイメント・プロファイルとデプロイメント・ディスクリプタ・ファイルを作成した後は、クライアントJARをアプリケーション・サーバーにデプロイできます。

クライアント・アプリケーションをデプロイ用にパッケージ化するには、次の手順を実行します。

1. プロジェクト用のクライアントJARファイル・デプロイメント・プロファイルを作成します。
プロジェクトに、すでにプロファイルが作成されている場合があります。複数のターゲットにデプロイする場合は、ターゲットごとに個別のプロファイルを作成します。

2. application-client.xmlデプロイメント・ディスクリプタ・ファイルを作成します(プロジェクトに存在しない場合)。
通常、このファイルはアプリケーション・クライアントとともに作成されます。

9.3.6.3 デプロイ用にアプレットを構成する方法

スタンドアロン・アプレットは、Webアーカイブ(WAR)ファイルとしてパッケージ化されます。このファイルには、そのアプレット、アプレットHTMLファイル、標準のJava EE Webデプロイメント・ディスクリプタweb.xml、および場合によっては、ターゲット固有のデプロイメント・ディスクリプタも含まれています。デプロイメント・プロファイルと適切なデプロイメント・ディスクリプタ・ファイルを作成した後は、アプリケーションを、アプリケーション・サーバーにデプロイしたり、アーカイブ・ファイルとしてデプロイすることができます。

Webアプリケーションをデプロイ用に構成するには、次の手順を実行します。

1. プロジェクト用のWARファイル・デプロイメント・プロファイルを作成します。
プロジェクトに、すでにプロファイルが作成されている場合があります。複数のターゲットにデプロイする場合は、ターゲットごとに個別のプロファイルを作成します。

2. プロジェクトに、web.xmlデプロイメント・ディスクリプタを追加します(存在していない場合)。
通常、このファイルはWARファイル・デプロイメント・プロファイルとともに作成されます。

注意:

「クラスが見つかりません」というエラーが表示されるなど、Swingアプレット(JApplet)をデプロイしているときに問題が発生した場合は、JDeveloperがSwingライブラリを検出できないことを示している可能性があります。場合によっては、クライアントでSun社のJava SEブラウザ・プラグインを使用するか、JVMバージョン1.1のSwingライブラリをアプレットにバンドルする必要があります。デプロイされるアプレット・ファイルは、デプロイ済の他のWebアプリケーション・ファイルとは別の場所に配置する必要があります。

9.3.6.4 Oracle WebLogic ServerでのJDBCデータソースの設定

デプロイされたファイルにパスワードがプレーン・テキストで表示されるのを避けるため、JDeveloperではパスワードのインダイレクションが使用されます。したがって、アプリケーションが正常に実行されるためには、データソースのパスワードをサーバー上で設定する必要があります。

これを行うにはグローバル・データソースを使用し、グローバル・データソースはOracle WebLogic Server管理コンソールで「JDBC」の下にある「データソース」リンクを使用して設定します。

JDeveloperでは、アプリケーション・リソース名を識別するために、Webアプリケーションweb.xmlまたはEJBアプリケーションejb-jar.xmlに必要な<resource-ref>エントリが含まれていることが確認されます。名前の形式はjdbc/connection-nameDSで、connection-nameはアプリケーション・リソース接続の名前です。

アプリケーションでは、java:comp/env/jdbc/connection-nameDSのアプリケーション固有のリソースJNDIネームスペースを使用してこのデータソースを参照します。アプリケーションでこのリソースを検出できるのは、web.xmlにjdbc/connection-nameDSの<resource-ref>エントリが含まれているためです。

生成されるファイルにとって重要なコントロールは、「アプリケーション・プロパティ」ダイアログの「WebLogic」ページにある「デプロイ中にweblogic-jdbc.xmlディスクリプタを自動生成および同期化」フィールドです。

自動生成フィールドを選択すると、JDeveloperでは次の動作が行われます。

- アプリケーション・リソースの接続ごとにapplication-name-jdbc.xmlファイルを生成し、間接的なパスワード属性を設定します。

<jdbc-driver-params>
<use-password-indirection>true</use-password-indirection>
</jdbc-driver-params>

デプロイ時に、JDBC接続のパスワードはapplication-name-jdbc.xmlのユーザー名から決定され、Mbeanを使用してJDBC接続パスワードが移入されます。

- weblogic-application.xmlが更新され、各application-name-jdbc.xmlがモジュールとして追加されます。

- web.xml(存在する場合)には、各JDBC JNDI名へのリソース参照があります。

Oracle WebLogic Serverでグローバル・データソースを作成する方法

グローバル・データソースは、Oracle WebLogic Server管理コンソールで作成します。

グローバル・データソースを設定するには、次のようにします。

1. Oracle WebLogic Server管理コンソールにログインします。詳細は、第9.3.1項「ターゲット・アプリケーション・サーバーへの接続の作成方法」を参照してください。

2. 「JDBC」の下にある「データソース」リンクをクリックします。

3. JDBCデータ・ソースの概要ページで「新規」をクリックします。

4. 新しいJDBCデータ・ソースの作成ページで、データソースの詳細を入力します。
名前は自由に指定できます。

JNDI名はjdbc/connection-nameDSの形式にします。たとえば、アプリケーションの接続名がconnection1の場合、JNDI名はjdbc/connection1DSです。

5. データベース・タイプが「Oracle」、ドライバがOracleのサービス接続用ドライバ(シン)、バージョン9.0.1,9.2.0,10,11になっていることを確認します。

6. 「次へ」を2度クリックし、新しいJDBCデータ・ソースの作成ページに移動して接続の詳細を入力します。
データベース名はOracle SIDです。

ホスト名はデータベースのあるマシンの名前です。

デフォルト・ポートは1521です。

7. ユーザー名とパスワード、たとえば、hr/hrを入力します。

8. 「次へ」をクリックし、「構成のテスト」をクリックします。

9. 「次へ」をクリックし、ターゲットの選択ページに移動して、このデータソースのターゲットを選択します。ターゲットを選択できない場合、データソースは作成されていますがデプロイされていません。

10. 「終了」をクリックします。

Oracle WebLogic Serverで実行するためのEARファイルへのデプロイ

Oracle WebLogic Serverで実行するアプリケーションをEARファイルにデプロイする場合、次の操作を実行できます。

- 「デプロイ中にweblogic-jdbc.xmlディスクリプタを自動生成および同期化」フィールドを選択し、アプリケーション・レベルの資格証明マッピングを使用してパスワードを設定します。

- あるいは、「デプロイ中にweblogic-jdbc.xmlディスクリプタを自動生成および同期化」フィールドの選択を解除し、Oracle WebLogic Serverでグローバル・データソースを作成してパスワードを設定します。

ojdeployを使用してデプロイを行う場合:

- -nodatasourcesスイッチを使用し、次のいずれかの方法でOracle WebLogic Server上でパスワードを設定できます。

- グローバル・データソースの作成。

- アプリケーション・レベルのデータソースの手動作成。

- -nodatasourcesスイッチを使用しない場合は、アプリケーション・レベルの資格証明マッピングを使用する方法でのみパスワードを設定できます。

9.3.6.5 サード・パーティのサーバーにデプロイするアプリケーションの準備

アプリケーションをサード・パーティのサーバーで実行するために必要な、固有のタスクがあります。

Tomcatへのデプロイ:

- デプロイ後にTomcatサーバーを停止し、再起動します。

- jdeveloper_install/jdk/libに格納されているtools.jarライブラリが、Tomcatクラスパスにあることを確認します。このファイルは、Tomcatの実行に使用されるJDKと同じバージョンの必要があります。そうでない場合は、Tomcatでアプリケーションを実行するときに問題が発生することがあります。

- Webアプリケーションはtomcat_install/webapps/サブディレクトリにデプロイすることをお薦めします。このオプションは、「WARファイル」デプロイメント・プロファイルの一般ページで設定します。

- Tomcatアプリケーション・サーバーのシステム管理者は、conf/server.xmlファイルでアプリケーションへのコンテキスト・パスを割り当てる必要があります。

<DefaultContext crossContext="true"/>

詳細は、Tomcatのシステム管理ドキュメントを参照してください。

- TomcatにデプロイしたJSPアプリケーションを実行すると、次のエラー・メッセージが表示される場合があります。

Only one of the two parameters ... or ... should be defined.

Tomcatではプール後にタグがリリースされないため、定義されている互換性のない属性を同じタグに引き続き使用すると、このようなエラーが発生します。

エラーの発生を避けるには、Tomcatでのタグのプーリングを無効化する必要があります。

1. テキスト・エディタで、tomcat_home/conf/web.xmlファイルを開きます。

2. 次の要素を検索します。

<init-param>
<param-name>enablePooling</param-name>
<param-value>true</param-value>
</init-param>

<param-value>の値をfalseに変更します。

WebSphereへのデプロイ

JDeveloperで生成されたEARを含むディレクトリに空白があると、WindowsへのWebSphereのデプロイは機能しません。

9.3.7 デプロイメント・プランの使用方法

デプロイメント・プランを使用すると、デプロイメントの値を上書きできます。これを行う理由の1つは、テストを終了したアプリケーションを本番環境で実行できるように、デプロイメント・プロファイルを変更せずに設定を変更することです。

デプロイメント・プランを使用するように構成されているEAR、WARまたはEJB JARアーカイブをデプロイすると、アーカイブとデプロイメント・プランの両方がアプリケーション・サーバーに送信されます。1つのアプリケーションで複数のデプロイメント・プランを使用できます。

詳細は、『Oracle Fusion Middleware Oracle WebLogic Serverへのアプリケーションのデプロイ』の「製品デプロイ用のアプリケーションの構成」のデプロイメント・プランに関する項を参照してください。

application.earというEARのデプロイメント・プランの例を次に示します。module-name要素には、関連付けるデプロイメント・プロファイルの名前が含まれている必要があります。

例9-1 デプロイメント・プランの例

<deployment-plan xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.oracle.com/technology/weblogic/10.3/deployment-plan
http://www.oracle.com/technology/weblogic/10.3/deployment-plan/1.0/deployment-plan.xsd"
xmlns="http://www.oracle.com/technology/weblogic/10.3/deployment-plan">
<application-name>DeployPlan</application-name>
<variable-definition>
<variable>
<name>SessionDescriptor_timeoutSecs</name>
<value>888</value>
</variable>
<variable>
<name>SessionDescriptor_invalidationIntervalSecs</name>
<value>888</value>
</variable>
<variable>
<name>SessionDescriptor_cookieMaxAgeSecs</name>
<value>888</value>
</variable>
</variable-definition>
<module-override>
<module-name>application.ear</module-name>
<module-type>ear</module-type>
<module-descriptor external="false">
<root-element>weblogic-application</root-element>
<uri>META-INF/weblogic-application.xml</uri>
<variable-assignment>
<name>SessionDescriptor_timeoutSecs</name>
<xpath>/weblogic-application/session-descriptor/timeout-secs</xpath>
</variable-assignment>
<variable-assignment>
<name>SessionDescriptor_invalidationIntervalSecs</name>
<xpath>/weblogic-application/session-descriptor/invalidation-interval-secs</xpath>
</variable-assignment>
<variable-assignment>
<name>SessionDescriptor_cookieMaxAgeSecs</name>
<xpath>/weblogic-application/session-descriptor/cookie-max-age-secs</xpath>
</variable-assignment>
</module-descriptor>
</module-override>
</deployment-plan>

デプロイメント・プランを使用するように構成されているEAR、WARまたはEJB JARアーカイブをデプロイすると、アーカイブとデプロイメント・プランの両方がアプリケーション・サーバーに送信されます。1つのアプリケーションで複数のデプロイメント・プランを使用できます。

9.3.7.1 デプロイメント・プランの作成および使用方法

新規ギャラリからデプロイメント・プランを作成し、XMLエディタで編集できます。

作成したデプロイメント・プランは、EAR、WARまたはEJB JARに関連付けることができます。

または、Oracle WebLogic Serverでデプロイメント・プランを生成し、JDeveloperで使用する方法もあります。

デプロイ・プランを作成するには、次のようにします。

1. アプリケーション・ナビゲータで、デプロイメント・プランを作成するプロジェクトを選択します。

2. 「ファイル」→「新規」を選択して「新規ギャラリ」を開きます。

3. 「カテゴリ」ツリーで「General」を展開し、「デプロイメント・ディスクリプタ」を選択します。「項目」リストで「WebLogicデプロイメント・ディスクリプタ」を選択し、「OK」をクリックします。

4. 「WebLogicデプロイメント・ディスクリプタの作成」の「ディスクリプタの選択」ページで、plan.xmlを選択します。
これが、アプリケーションで作成する初めてのデプロイメント・ディスクリプタである場合、「終了」を選択して、「plan.xml」というデフォルト名のままデプロイメント・プランを作成できます。

アプリケーションにplan.xmlという名前のデプロイメント・プランがすでにある場合は、「名前の選択」ページに移動し、デプロイメント・プランの新しい名前を入力してから「終了」をクリックします。デプロイメント・プランが作成されてプロジェクトに追加され、XMLエディタ・ウィンドウに表示されます。

5. EAR、WARまたはEJB JARのデプロイメント・プロファイルのプロパティを開きます。

6. 「デプロイメント計画」フィールドに、デプロイメント・プランへのパスを入力します。

9.3.7.2 デプロイメント・プランの生成方法

デプロイメント・プランを使用すると、アプリケーションのデプロイメント構成を複数のWebLogic Server環境にエクスポートできます。

デプロイメント・プランは、JDeveloperで最初から作成できます。

または、この項で説明しているように、デプロイメント・プランを生成してJDeveloperでアプリケーションに追加し、目的に合せて編集できます。これを行うには、次の2つの方法があります。

- アプリケーションをOracle WebLogic Serverにデプロイし、管理コンソールを使用してアプリケーションに変更を加えて、生成されたデプロイメント・プランを保存します。次に、デプロイメント・プランをJDeveloperでソースにコピーし戻し、必要な場合には変更できます。詳細は、『Oracle Fusion Middleware Oracle WebLogic Serverへのアプリケーションのデプロイ』の「製品デプロイ用のアプリケーションの構成」のデプロイメント・プランに関する項を参照してください。

- weblogic.PlanGeneratorコマンドライン・ツールを使用し、EARを使用するアプリケーションにデプロイメント・プランを生成します。詳細は、『Oracle Fusion Middleware Oracle WebLogic Serverへのアプリケーションのデプロイ』の「weblogic.PlanGeneratorコマンドライン・ツール」を参照してください。

WebLogic Server管理コンソールを使用してデプロイメント・プランを生成するには、次のようにします。

1. Oracle WebLogic Serverにアプリケーションをデプロイします。

2. WebLogic Server管理コンソールを開きます。
ドメインにインストールしたアプリケーションのデプロイメント・プロパティを対話的に変更すると、WebLogic Server管理コンソールは、有効なデプロイメント・プランを自動的に生成(または更新)します。生成されたデプロイメント・プランを使用して後続のデプロイメントでアプリケーションを構成することも、デプロイメント・プロパティの編集と保存を繰り返して新しいバージョンのデプロイメント・プランを生成することもできます。

weblogic.PlanGeneratorコマンドライン・ツールを使用してデプロイメント・プランを生成するには、次のようにします。

1. コマンドラインから、install/wlserver_10.3/server/bin/に移動して、setWLSEnv.shスクリプトまたはsetWLSEnv.cmdスクリプトを実行し、WebLogic ServerクラスをマシンのCLASSPATH環境変数に追加して、PATHで正しいJDKバイナリが使用可能であることを確認します。

2. コマンドラインからEARファイルの場所に移動し、java weblogic.PlanGenerator -plan plan.xml application-name.ear -allを実行します。
スイッチ-allを指定すると、EARファイルで想定されるすべての属性の要素を含むデプロイメント・プランが生成されます。このスイッチを削除すると、生成されるデプロイメント・プランには、ディスクリプタ・ファイルに既存の属性の要素のみが含まれます。

9.4 Javaアプリケーションのデプロイ

JDeveloperは、様々なアプリケーション・サーバーに対する、様々なテクノロジを含むアプリケーションのデプロイをサポートしています。この項では、アプリケーションをファイル・システム上の実行可能JARファイルにデプロイする手順について説明します。Java EEテクノロジを含むアプリケーションをデプロイする場合や、統合アプリケーション・サーバー、Oracle WebLogic Server、またはサポート対象の他のアプリケーション・サーバーにデプロイする場合は、第9.3項「アプリケーション・サーバーへのJava EEアプリケーションの接続とデプロイ」に示す必須の構成および準備手順を完了していることを確認してください。

9.4.1 Java JARへのデプロイ

アプリケーションは、アーカイブ・ファイルをデプロイメント・ターゲットとして選択することで、間接的にデプロイできます。アーカイブ・ファイルは、ターゲットJava EEアプリケーション・サーバーに後でインストールできます。

JDeveloperには、異なるアプリケーションに対する様々なデプロイメント・モードがあります。ただし場合によっては、アプリケーションをJARファイルとしてファイル・システムに迅速かつ簡単にデプロイすることが必要になります。

注意:

実行可能なJARファイルをデプロイするためには、デプロイメント・プロファイルをあらかじめ作成しておく必要があります。

JDeveloperでシンプル・アーカイブをデプロイするには、次の手順を実行します。

1. アプリケーション・ナビゲータでプロジェクトを選択し、右クリックします。

2. 「デプロイメント・プロファイルのデプロイ」を選択します。デプロイメント・プロファイルは、前に作成したデプロイメント・プロファイルです。

3. 「デプロイ」ダイアログの「デプロイメント・アクション」ページで「JARファイルにデプロイ」を選択し、ウィザードを終了します。

シンプル・アーカイブまたはJava EEクライアント・モジュールを実行可能JARファイルにすると、javaコマンドを使用して起動できます。

注意:

実行可能なJARファイルをデプロイするためには、デプロイメント・プロファイルをあらかじめ作成しておく必要があります。

実行可能JARファイルをデプロイするには、次の手順を実行します。

1. アプリケーション・ナビゲータでプロジェクトを右クリックして、「プロジェクト・プロパティ」を選択します。

2. 「プロジェクト・プロパティ」ダイアログの「デプロイメント」セクションでプロパティの名前を選択して、「編集」をクリックします。

3. ツリーで「JARオプション」をクリックします。

4. 「manifestファイルを含める(META-INF/MANIFEST.MF)」を選択します。

5. 「メイン・クラス」フィールドに、コールするアプリケーション・クラスの完全修飾名を入力します。

6. 「OK」をクリックします。

7. コマンドラインから次のコマンドを実行し、実行可能JARファイルを起動します。

java -jar myapp.jar

ここで、myappはJARファイル名です。

9.4.2 OSGiバンドルへのデプロイ

アプリケーションはOSGiバンドルとしてデプロイでき、それをOSGiコンテナにデプロイできます。

JDeveloperには、異なるアプリケーションに対する様々なデプロイメント・モードがあります。ただし場合によっては、アプリケーションをJARファイルとしてファイル・システムに迅速かつ簡単にデプロイすることが必要になります。

注意:

OSGiバンドルをデプロイするには、デプロイメント・プロファイルをあらかじめ作成しておく必要があります。詳細は、第9.3.2項「デプロイメント・プロファイルの作成および編集方法」を参照してください。

JDeveloperでOSGiバンドルをデプロイするには、次のようにします。

1. アプリケーション・ナビゲータでプロジェクトを選択し、右クリックします。

2. 「デプロイメント・プロファイルのデプロイ」を選択します。デプロイメント・プロファイルは、前に作成したOSGiバンドルのデプロイメント・プロファイルです。

3. 「デプロイ」ダイアログの「デプロイメント・アクション」ページで「OSGiバンドルにデプロイ」を選択し、ウィザードを終了します。

9.5 Java EEアプリケーションのデプロイ

Java EEアプリケーションは、JDeveloperを使用してスタンドアロン・アプリケーション・サーバーに直接デプロイすることも、アーカイブ・ファイルを作成し、他のツールを使用してアプリケーション・サーバーにデプロイすることもできます。

9.5.1 JDeveloperからアプリケーション・サーバーへのデプロイ方法

Java EEエンタープライズ・アーカイブ(EAR)デプロイメント・プロファイルを使用すると、アプリケーション・アセンブリの処理を集中管理できます。このアセンブル・タスクでは、EARファイルに組み込む構成済のJava EEデプロイメント・プロファイルを選択します。構成済のWAR、EJB JARまたはクライアントJARのプロファイルは、同じワークスペース内のプロジェクトとして任意に組み合せることができます。アプリケーションを任意のアプリケーション・サーバー接続にデプロイする場合、JDeveloperでは、プロファイルの組合せを含む最小限のEARファイルがアセンブルされ、ターゲット・アプリケーション・サーバーにデプロイされます。

アプリケーションをJava EEエンタープライズ・アーカイブ(EARファイル)としてデプロイするには、次の手順を実行します。

1. EARファイルのデプロイメント・プロファイルを作成します。

2. ターゲット・アプリケーション・サーバーへの接続を作成します。

3. アプリケーション・ナビゲータでプロジェクトを右クリックし、「デプロイ」→デプロイメント・プロファイルを選択します。

4. 「デプロイ」ダイアログの「デプロイメント・アクション」ページで、いずれかのデプロイメント・オプションを選択します。

- アプリケーション・サーバー接続にデプロイ。WebモジュールをEARファイルとしてパッケージ化し、「デプロイ」ダイアログの「サーバーの選択」ページで選択または作成したアプリケーション・サーバー接続にデプロイします。

- EARファイルにデプロイ。WebモジュールをEARファイルとしてパッケージ化し、EARデプロイメント・プロファイルで指定された場所に保存します。

EARデプロイメント・プロファイルを後から開きなおして変更を加えるには、アプリケーション・ナビゲータのツールバーでアプリケーションを右クリックし、「アプリケーション・プロパティ」を選択します。次に、「アプリケーション・プロパティ」ダイアログの「デプロイメント」セクションでプロファイルの名前を選択し、「編集」をクリックします。

- 既存のEARファイルがある場合は、JDeveloper EARインポート機能を使用してEARを任意のプロジェクトにインポートできます。

- EARファイルに含めるJARファイルおよびWARファイルは、EARファイルのデプロイ前に作成されている必要があります。これらの従属するアーカイブを作成するには、含まれるアプリケーションのデプロイメント・ディスクリプタに対して、「デプロイ」ダイアログで「JARファイルにデプロイ」または「WARファイルへデプロイ」を選択します。

- EARファイルにはパスワードが含まれていないため、たとえばEARファイルを作成してOracle WebLogic Serverで実行する場合、データソースをサーバー上で設定する必要があります。

9.5.2 RARファイルをデプロイする方法

リソース・アダプタ・アーカイブ(RAR)ファイルに格納されているリソース・アダプタは、Java EEアプリケーションのEARファイルと同様に、すべてのJava EEサーバーにデプロイできます。RARファイルは、EARファイルに含めるか、個別ファイルとして存在させることができます。

JDeveloperでリソース・アダプタ・アーカイブをデプロイするには、次の手順を実行します。

1. デプロイメント・プロファイルを作成します。

注意:

変更を加えるために後でプロジェクト・デプロイメント・プロファイルを再オープンするには、アプリケーション・ナビゲータでそのプロジェクトを右クリックし、「プロジェクト・プロパティ」を選択します。次に、「プロジェクト・プロパティ」ダイアログの「デプロイメント」セクションでプロファイルの名前を選択し、「編集」をクリックします。

2. アプリケーション・ナビゲータでプロジェクトを右クリックし、「デプロイ」→デプロイメント・プロファイルを選択します。

3. 「デプロイ」ダイアログの「デプロイメント・アクション」ページで、「RARファイルにデプロイ」を選択します。

9.5.3 リソース・アダプタ・アーカイブ(RAR)をEARに追加する方法

JDeveloperプロジェクトでは、EARプロファイルは、リソース・アダプタ・アーカイブ・ファイル(RARまたは.rar)をサポートしています。通常、RARファイルは、JDBCドライバのようにEnterprise Intelligence Server (EIS)ベンダーによって提供されます。Java EE開発者は、RARがサポートするEISサービスを自分のJava EEアプリケーションで利用する場合、RARファイルを自分のEARファイルにパッケージする必要があります。JDeveloperでは、RARファイルの作成を直接サポートしていませんが、JARファイル・デプロイメント・プロファイルのファイル・グループ機能を使用してRARファイルをアセンブルすることはできます。

ra.xmlファイルは、J2EE Connector Architecture (JCA)対応のRARファイルのデプロイメント・ディスクリプタです。詳細は次の項を参照してください。

http://www.oracle.com/technetwork/java/javaee/tech/entapps-138775.html

RARをEARデプロイメント・プロファイルに追加するには、次の手順を実行します。

1. JDeveloperで、既存のRARファイルをプロジェクトに追加します。

2. 同じプロジェクト内に、RARファイルとしてEARデプロイメント・プロファイルを作成します。

3. アプリケーション・ナビゲータでプロジェクトを右クリックして、「プロジェクト・プロパティ」を選択します。

4. 「プロジェクト・プロパティ」ダイアログの「デプロイメント」セクションでプロパティの名前を選択して、「編集」をクリックします。

5. 「アプリケーション・アセンブリ」ノードをクリックして、現在、プロジェクトに保存されている使用可能なJava EEモジュール(WARおよびEJB JAR)をすべて表示します。

6. アセンブルしてEARファイルとともにパッケージ化するRAR (.rar)ファイルの隣にあるチェック・ボックスをチェックします。

7. 「OK」をクリックします。

8. Java EE EARをデプロイします。

デプロイ時に、EARファイルのapplication.xmlには、RARファイルに自動的に追加される<connector>要素が含まれています。

9.5.4 メタデータ・アーカイブ(MAR)をデプロイする方法

メタデータ・アーカイブ(MAR)プロファイルは、アプリケーション・レベルのデプロイメント・プロファイルで、シード・カスタマイズをパッケージ化したり、ベース・メタデータをMDSリポジトリに配置するために使用します。MARプロファイルでは、ファイル・レベルではなくパッケージ・レベルでのみ選択が行えます。

MARプロファイルには、2つの使用方法があります。

- 1つ目の使用方法は、MARプロファイルを作成することです。作成したプロファイルは、デプロイのためにアプリケーションのEARに含めることができます。

- 2つ目の使用方法は、リモート・サーバーにデプロイされるアプリケーション用に構成されたMDSリポジトリにMARの内容をエクスポートすることです。この手順は、ADFライブラリのカスタマイズ変更を、リモート・アプリケーション・サーバーのデプロイ済アプリケーションに適用するためのものです。カスタマイズを初めてMARにパッケージ化し、最終的にEARの一部とするための手順ではありません。

MARプロファイルをEARにデプロイするには、次のようにします。

1. MARデプロイメント・プロファイルを作成します。

2. 「アプリケーション」→「デプロイ」→デプロイメント・プロファイルを選択します。「プロファイルのデプロイ」ダイアログで、「MARにデプロイ」を選択します。詳細は、[F1]を押すか、「プロファイルのデプロイ」ダイアログで「ヘルプ」をクリックしてください。
「MARにデプロイ」オプションでメタデータ・アーカイブ・ファイルが作成されます。これはMARの内容を検証するときに使用できる便利なオプションです。作成したメタデータ・ファイルには、「デプロイ済アプリケーションへのエクスポート」オプションと同じMARの内容が必要です。

3. 新規EARにMARプロファイルを含めるには、MARプロファイルを作成し終わったときに表示される「アプリケーション・プロパティ」ダイアログで「新規」を作成し、アプリケーション・レベルのEARデプロイメント・プロファイルを作成します。
または、MARプロファイルを既存のEARプロファイルに追加するためEARプロファイルを開きます。

4. 「EARデプロイメント・プロファイルのプロパティの編集」ダイアログで、「アプリケーション・アセンブリ」ページに移動し、MARプロファイルが「Java EEモジュール」の下にリストされていることを確認します。

5. 「OK」をクリックします。

6. Java EE EARをデプロイします。

MARの内容をMDSリポジトリにエクスポートし、デプロイ済アプリケーションとしてリモート・サーバーにデプロイするには、次のようにします。

1. MARデプロイメント・プロファイルを作成します。

2. 「アプリケーション」→「デプロイ」→デプロイメント・プロファイルを選択します。「プロファイルのデプロイ」ダイアログで、「MARにデプロイ」を選択します。詳細は、[F1]を押すか、「プロファイルのデプロイ」ダイアログで「ヘルプ」をクリックしてください。
「MARにデプロイ」オプションでメタデータ・アーカイブ・ファイルが作成されます。これはMARの内容を検証するときに使用できる便利なオプションです。作成したメタデータ・ファイルには、「デプロイ済アプリケーションへのエクスポート」オプションと同じMARの内容が必要です。

3. MARの内容をMARプロファイルにエクスポートするには、「アプリケーション」→「デプロイ」→デプロイメント・プロファイルを選択します。「プロファイルのデプロイ」ダイアログで、「デプロイ済アプリケーションへのエクスポート」を選択します。詳細は、[F1]を押すか、「プロファイルのデプロイ」ダイアログで「ヘルプ」をクリックしてください。

4. 「プロファイルのデプロイ」ダイアログの操作を続けます。デプロイ先のサーバーを選択し、そのサーバーのデプロイ済アプリケーションを選択します。デプロイメントをコミットする前に、サンドボックス・インスタンスを使用するオプションもあります。

9.5.5 アプレットをWARファイルとしてデプロイする方法

アプレットを含むWebアプリケーション・コンポーネントは、WARファイルまたはEARファイルとしてターゲット・アプリケーション・サーバーにデプロイできます。

アプレットをWARファイルとしてデプロイするには、次の手順を実行します。

1. まだ構成していない場合は、アプレットをデプロイ用に構成します。

2. まだ作成していない場合は、アプリケーション・サーバー接続を作成します。

3. ナビゲータでプロジェクトを右クリックし、「デプロイ」→デプロイメント・プロファイルを選択します。

4. アプリケーション・サーバー接続にデプロイします。デプロイメント・プロファイルで指定されたアーカイブ・タイプを作成し、「デプロイ」ダイアログの「サーバーの選択」ページで選択または作成したアプリケーション・サーバー接続にデプロイします。

- アプリケーション・サーバー接続にデプロイ。デプロイメント・プロファイルで指定されたアーカイブ・タイプを作成し、「デプロイ」ダイアログの「サーバーの選択」ページで選択または作成したアプリケーション・サーバー接続にデプロイします。

- EARファイルにデプロイ。プロジェクトとその依存性(デプロイメント・プロファイルに指定)をEARにデプロイします。JDeveloperでは、EARファイルはデプロイメント・プロファイルに指定されているデフォルト・ディレクトリに置かれます。

- WARファイルへデプロイ。プロジェクトをWARにデプロイします。JDeveloperでは、WARファイルはデプロイメント・プロファイルに指定されているデフォルト・ディレクトリに置かれます。

注意:

デプロイされるアプレット・ファイルは、デプロイ済の他のWebアプリケーション・ファイルとは別の場所に配置する必要があります。

デプロイしたWebアプリケーションは、ブラウザを実行してテストできます。詳細は、第9.7項「アプリケーションのテストとデプロイの検証」を参照してください。

「クラスが見つかりません」というエラーの表示など、Swingアプレット(JApplet)をデプロイしているときに問題が発生する場合、JDeveloperがSwingライブラリを検出できないことを意味している可能性があります。場合によっては、クライアントでSun社のJava SEブラウザ・プラグインを使用するか、JVMバージョン1.1のSwingライブラリをアプレットにバンドルする必要があります。

9.5.6 共有ライブラリ・アーカイブをデプロイする方法

共有Java EEライブラリを使用すると、1種類以上のJava EEモジュールを複数のエンタープライズ・アプリケーション間で簡単に共有できます。共有ライブラリは、JARファイルとしてアプリケーション・サーバーにデプロイできます。

共有ライブラリ・アーカイブを作成してデプロイするには、次のようにします。

1. 共有ライブラリのデプロイメント・プロファイルを作成します。

2. 「JARデプロイメント・プロファイルのプロパティの編集」ダイアログで、ライブラリをプロファイルに追加します。「ファイル・グループ」を選択し、「新規」をクリックして「ファイル・グループの作成」ダイアログを開き、新しいファイル・グループを定義します。

3. ターゲット・アプリケーション・サーバーへの接続を作成します。

4. アプリケーション・ナビゲータでプロジェクトを右クリックし、「デプロイ」→共有ライブラリのデプロイメント・プロファイルを選択します。

5. 「共有ライブラリのデプロイ」ダイアログの「デプロイメント・アクション」ページで、Weblogicアプリケーション・サーバーへのデプロイを選択し、「次へ」をクリックします。

6. 「サーバーの選択」ページでアプリケーション・サーバー接続を選択し、「共有ライブラリとしてデプロイ」を選択します。「終了」をクリックします。

9.5.7 停止している管理対象サーバーにデプロイする方法

デプロイメントを正常に行うには、デプロイメント・プロセスを処理する関係から、WebLogic Serverドメインのアプリケーション・サーバーが起動している必要があります。停止しているサーバーにデプロイすると、デプロイメント・ログ・ウィンドウのメッセージにはサーバーが停止していると表示されますが、再起動したときにアプリケーションがインストールされます。ログ・メッセージの内容は、次のようになります。

[02:27:21 PM] ----  Deployment started.  ----
[02:27:21 PM] Target platform is  (Weblogic 10.3).
[02:27:23 PM] Retrieving existing application information
[02:27:23 PM] Running dependency analysis...
[02:27:23 PM] Building...
[02:27:26 PM] Deploying 2 profiles...
[02:27:26 PM] Wrote Web Application Module to /scratch/.../jdev/mywork/Application1/Project1/deploy/webapp1.war
[02:27:26 PM] Wrote Enterprise Application Module to /scratch/.../jdev/mywork/Application1/application1.ear
[02:27:26 PM] Deploying Application...
[02:27:27 PM] [Deployer:149195]Operation 'deploy' on application 'application1' has been deferred since   'Server-2' is unavailable
[02:27:27 PM] [Deployer:149034]An exception occurred for task [Deployer:149026]deploy application application1   on Server-2.: .
[02:27:27 PM] Application Deployed Successfully.
[02:27:27 PM] Elapsed time for deployment:  5 seconds
[02:27:27 PM] ----  Deployment finished.

デプロイメントが正常に実行されたように見えても、サーバーを再起動したときデプロイメントが正常に終了しないという場合があります。たとえば、デプロイメント・プロセスの一環である検証の一部が実行されなかった、あるいは正常なデプロイメントに必要なライブラリが欠落しているなどの原因が考えられます。この場合、サーバーを再起動しても、再開されたデプロイメントが失敗します。

停止しているサーバーには、アプリケーションを1回しかデプロイできません。停止している同じサーバーに同じアプリケーションを再度デプロイしようとすると、エラーが表示されます。

9.6 デプロイ後の構成

アプリケーションをOracle WebLogic Serverにデプロイすると、複数のOracle WebLogic Server間で移行が可能になります。

最初のデプロイ時と同じ手順の一部を実行する必要がある場合があります。

一般に、アプリケーションを別のアプリケーション・サーバーに移行する際には、次の作業を行います。

- ターゲットとなるアプリケーション・サーバーを正しいデータベース接続情報またはURL接続情報で構成します。

- セキュリティ情報、たとえばJDBCデータソースをソースからターゲットに移行します。

- 新しいサーバーにアプリケーションをデプロイします。

9.7 アプリケーションのテストとデプロイの検証

アプリケーションは、デプロイが完了したら、Oracle WebLogic Serverからテストすることができます。

デプロイメントのログ・ウィンドウには、デプロイされたWebアプリケーションのコンテキスト・ルートURLが表示されます。ブラウザにアプリケーションのURLを入力して、デプロイ済のWebアプリケーションにアクセスできます。デプロイされたWebアプリケーションのURLが、たとえば次のようにデプロイメントのログ・ウィンドウに表示されます。

[03:08:20 PM] The following URL context root(s) were defined and can be used as a starting point to test your application:
[03:08:20 PM] http://12.345.678.912:7101/Project1
[03:08:21 PM] Elapsed time for deployment: 7 seconds
[03:08:21 PM] ---- Deployment finished. ----

URLをコピーしてブラウザに貼り付ければ、デプロイされたWebアプリケーションをテストできます。

ブラウザのプロキシ設定によっては、ホスト・マシンの完全なドメイン名を指定する必要があります。サーブレット・エンジンと、デプロイ済アプリケーションの表示に使用するブラウザが同じマシン上に存在する場合、ホスト名としてlocalhostを使用できます。

9.8 コマンドラインからのデプロイ

アプリケーションまたはモジュールは、JDeveloper IDEを起動せずにJDeveloperからデプロイできます。

コマンドラインからデプロイする前に、JDeveloperを少なくとも1度実行して、「アプリケーション」メニューの「アプリケーション・プロパティ」ダイアログまたは「プロジェクト・プロパティ」ダイアログのデプロイメント・ページを選択し、いずれかのアプリケーションのデプロイメント・プロファイルを作成する必要があります。

デプロイメント・プロファイルは、アプリケーションまたはプロジェクトのプロパティの一部として格納されます。

9.8.1 コマンドラインからデプロイする方法

アプリケーションまたはモジュールは、JDeveloper IDE自体を実際に起動せずにJDeveloperからデプロイできます。ojdeployを使用したコマンドラインによるデプロイは、バッチ・ファイルや他のスクリプトを使用して既存のプロジェクトやアプリケーションをデプロイする場合に特に便利です。

ojdeployは、インプロセスでローカルにデプロイメントを実行することも、-ojserverオプションを使用して、バックグラウンド・サーバーであるOJServerに発行することもできます。

注意:

Mac OS XプラットフォームでOJDeployを使用している場合は、jdev_install/jdeveloper/jdev/bin/jdev.confファイル内の変数SetSkipJ2SDKCheckをtrueに設定する必要があります。エントリは次のようになります。

SetSkipJ2SDKCheck true

9.8.1.1 コマンドの使用方法

例9-2 ojdeployを使用したコマンドラインからのデプロイ

ojdeploy -profile <name> -workspace <jws> [ -project <name> ] [ <options> ]
ojdeploy -buildfile <ojbuild.xml> [ <options> ]
ojdeploy -buildfileschema

表9-2 ojdeployで使用できる引数

引数

説明

profile

デプロイするプロファイルの名前。

workspace

JDeveloperアプリケーション・ファイル(.jws)へのフルパス

project

デプロイメント・プロファイルを検索できる.jws内のJDeveloperプロジェクトの名前。省略すると、プロジェクトはアプリケーション内に存在しているとみなされます。

buildfile

バッチ・デプロイ用のビルドファイルへのフルパス。

buildfileschema

ビルドファイルの出力XMLスキーマ。

注意:

デプロイメント・プロファイルは、大きく2つのカテゴリに分類できます。1つは、アプリケーション(ワークスペース)・レベルで定義されるデプロイメント・プロファイルであり、もう1つは、プロジェクト・レベルで定義されるデプロイメント・プロファイルです。アプリケーション・プロファイルをデプロイする場合、ojdeployはアプリケーションの場所とプロファイルの名前を引数として取ります。プロジェクト・プロファイルをデプロイする場合、ojdeployではさらに-project引数を取ります。

表9-3 ojdeployで使用できるオプション

オプション

説明

-address

OJServerのリスニング・アドレス。デフォルトはlocalhost:2010です。-address :2001または-address fasup-pls01のように、アドレスのデフォルト部分は省略可能です。

-basedir

ベース・ディレクトリに対するアプリケーションの解析パス。組込みマクロ${base.dir}で-basedirの値が取得されます。

-clean

コンパイルの前に、プロジェクト出力ディレクトリからすべてのファイルを削除します。ファイルまたはディレクトリを削除できなかった場合、デプロイはそのプロファイルで停止します。

-define

コマンドラインで追加のマクロを定義できます。これは、XMLビルドファイルで<variable>要素を使用して実行することもできます。コマンドラインで定義されたマクロとオプションによって、ビルドファイル(使用する場合)の<defaults>セクションにあるマクロとオプションが補足または上書きされます。

-failonwarning

警告を表示してデプロイメントを停止します。

-forcerewrite

ojdeployを実行して出力ファイルの内容が変更されなかった場合でも、出力ファイルが再書込みされます。

-nocompile

ビルド・システムが起動しないようにします。これは、単にアプリケーションまたはプロジェクトをパッケージ化し、その時点でコンパイルしない場合に便利です。

-nodatasources

Java EEアプリケーションの場合に、JDeveloper IDEで検出された接続情報でweblogic-jdbc.xmlファイルが更新されないようにします。Java EEアプリケーション以外の場合、このオプションは無視されます。

-nodependents

依存プロファイルはデプロイされません。

-ojserver

OJServer上でデプロイメント・ジョブを実行します。他のオプションによって参照されるパスはすべて、サーバー上でアクセスできる必要があります。

-outputfile

プロファイルから作成されるJARファイルの別の場所を指定します。デフォルトは、プロジェクトまたはアプリケーション内部の/deployディレクトリ内です。このパラメータでファイル拡張子を指定しないと、拡張子はデプロイメント・プロファイルの元のファイル名から決定されます。

-statuslogfile

ステータス・サマリーの出力ファイルへのフルパスです。マクロは使用できません。-statuslogfileオプションによって、処理済のすべてのプロファイルと各ステータスのリストが格納されたXMLファイルが作成されます。最後のサマリー・セクションをチェックすると、スクリプト全体の終了ステータスを簡単に確認できます。

-stdout、-stderr

各プロファイルおよびプロジェクトのファイルにストリームをリダイレクトさせます。ファイルの名前またはパスでマクロを使用できます。

-timeout

1つのプロファイルのデプロイメントが中止されるまでの経過秒数を指定します。

-updatewebxmlejbrefs

web.xmlのEJB参照を更新します。

表9-4 ojdeployで使用できるマクロ

マクロ

説明

workspace.name

アプリケーションの名前(.jws拡張子を除く)。

workspace.dir

アプリケーション.jwsファイルのディレクトリ。

project.name

プロジェクトの名前(.jpr拡張子を除く)

project.dir

project.jprファイルのディレクトリ

profile.name

デプロイするプロファイルの名前

deploy.dir

プロファイルに対するデフォルトのデプロイ・ディレクトリ

base.dir

このパラメータを使用して、現在のojdeployディレクトリを上書きします。ビルド・スクリプトでbasedir属性を使用して、現在のojdeployディレクトリを上書きできます。

注意:

project.nameマクロとproject.dirマクロを使用できるのは、プロジェクト・レベルのプロファイルをデプロイする場合のみです。

例

プロジェクト・レベルのプロファイルをデプロイする場合

- ojdeploy -profile webapp1 -workspace /usr/jdoe/Application1/Application1.jws -project Project1

- ojdeploy -profile webapp1 -workspace Application1/Application1.jws -basedir /usr/jdoe -project Project1

アプリケーション・レベル・プロファイルの場合:

- ojdeploy -profile earprofile1 -workspace /usr/jdoe/Application1/Application1.jws

アプリケーションの全プロジェクトから全プロファイルをデプロイする場合

- ojdeploy -workspace /usr/jdoe/Application1/Application1.jws -project ¥* -profile ¥*

ojbuildファイルからバッチ・モードでビルドする場合

- ojdeploy -buildfile /usr/jdoe/ojbuild.xml

ojbuildファイルを使用してビルドし、デフォルトの変数をビルドファイルに渡したり上書きする場合

- ojdeploy -buildfile /usr/jdoe/ojbuild.xml -define myhome=/usr/jdoe,mytmp=/tmp

- ojdeploy -buildfile /usr/jdoe/ojbuild.xml -basedir /usr/jdoe

ojbuildファイルを使用してビルドし、defaultセクションにパラメータを設定したり上書きする場合

- ojdeploy -buildfile /usr/jdoe/ojbuild.xml -nocompile

- ojdeploy -buildfile /usr/jdoe/ojbuild.xml -outputfile '${workspace.dir}/${profile.name}.jar'

- ojdeploy -buildfile /usr/jdoe/ojbuild.xml -define mydir=/tmp -outputfile '${mydir}/${workspace.name}-${profile.name}'

その他の例:

- ojdeploy -workspace Application1/Application1.jws,Application2/Application2.jws -basedir /home/jdoe -profile app*

- ojdeploy -buildfile /usr/jdoe/ojbuild.xml -define outdir=/tmp,rel=11.1.1 -outputfile '${outdir}/built/${workspace.name}/${rel}/${profile.name}.jar'

- ojdeploy -workspace Application1/Application1.jws -basedir /home/jdoe -nocompile -outputfile '${base.dir}/${workspace.name}-${profile.name}'

- ojdeploy -workspace /usr/jdoe/Application1.jws -project * -profile * -stdout /home/jdoe/stdout/${project.name}.log

- ojdeploy -buildfile /usr/jdoe/ojbuild.xml -ojserver

9.8.1.2 ビルド・スクリプトを編集せずに上書きする方法

ビルド・スクリプトで定義したマクロ値を渡したり上書きするには、-defineオプションを使用して、新しい値を指定します。

ojdeploy -buildfile /home/jdoe/ojbuild.xml -define "mycustomdir=/tmp"

これにより、mycustomdir変数がビルド・スクリプトの<defaults>セクションに追加されます。この変数が/tmp値にすでに定義されている場合は置き換えられます。

ビルド・スクリプトに定義したパラメータ値を渡したり上書きするには、適切なパラメータ・オプションを使用します。

ojdeploy -buildfile /home/jdoe/ojbuild.xml -nocompile -nodatasources

これにより、-nocompileと-nodatasourcesパラメータがビルドファイルのdefaultセクションに追加されます。

9.8.2 コマンドラインから複数のプロファイルをデプロイする方法

コマンドライン・デプロイメントでは、1回の起動で複数のアプリケーションをデプロイできます。複雑な制御が必要な場合は、ojdeployでXMLビルド・スクリプトを指定して処理し、検出されたすべてのデプロイ・タスクを実行できます。マクロおよびワイルドカードは、コマンドラインとバッチ・モードの両方で使用できます。マクロは、まとめて連結したり、ネストすることができます。

デプロイ対象の各プロファイルは、アプリケーションとプロジェクトによって修飾されます。また、各プロファイルの出力は、異なる出力ファイルや場所に出力できます。さらに、コール側スクリプトではワークスペース内のプロジェクトを認識しないため、基準に一致する全部または一部のプロジェクトのみがデプロイされます。このような入力や基準を指定するコマンドライン構文は煩雑となり、柔軟性が失われる場合があります。

ビルドファイルはojdeployに渡すことができます。ビルドファイルには、複数の<deploy>タスクとともに、環境を設定できる共有の<defaults>セクションが含まれます。各デプロイ・タスクでは、デプロイのタイプ(前述のセット)を指定し、必要に応じてデフォルト値をカスタマイズします。各タスクでは、そのタスクのスコープに適用するパラメータ引数内で適用可能なワイルドカードも使用できます。プリプロセッサはビルドファイルを解析してojdeployに渡し、必要に応じてワイルドカードを展開して変数を置換します。

ビルドファイルの利用には、コマンドライン構文にくらべて次の利点があります。

- より多くのパラメータをojdeployに追加できます。パラメータのインプリメンタに、バッチ・ビルドの概念についての認識は不要です。

- 煩雑な場合でも、コマンドライン構文を単純にできます。

- 現在のコンテキストに基づいてパラメータを動的に評価し、プリプロセッサ・マクロの事前定義リストにアクセスできます。たとえば、OutputFileの場所をc:\temp\${profile.name}に指定すると、マクロ${profile.name}が自動的に追加されます。

サンプルのビルドファイルを次に示します。すべてのデプロイ処理を起動するためのコマンドラインはojdeploy ojdeploy-build.xmlです。ファイルは上から下へ処理されます。

<?xml version="1.0" encoding="US-ASCII" ?>
<ojdeploy-build basedir="/usr/jdoe/">
<!-- Defines default parameters for all deploy tasks.
Also defines some variables strictly for use within this file
in macros
-->
<defaults>
<parameter name="profile" value="*"/>
<parameter name="nocompile" />
<-- define a macro -->
<variable name="customdir" value="/var/projects/fin/"/>
</defaults>
<!-- Select all .jws files in location ${customdir} called absoluteFile1.jws, absoluteFile2.jws.
Open all projects.
Deploy profiles p1, p2, p3 in each project, in each workspace.
-->
<deploy>
<parameter name="workspace" value="${customdir}/absoluteFile1.jws,${customdir}/absoluteFile2.jws"/>
<parameter name="project" value="*"/>
<-- Override default profile parameter -->
<parameter name="profile" value="p1,p2,p3"/>
</deploy>
<!--
Open relativeFile1.jws in the base directory
Open all projects.
Deploy all profiles (default for "profile" parameter is "*")
-->
<deploy>
<parameter name="workspace" value="relativeFile1.jws"/>
<parameter name="project" value="*"/>
</deploy>
<!--
Open relativeFile2.jws in base directory.
Open all Projects
Deploy profiles matching the patter "web*"
-->
<deploy>
<parameter name="workspace" value="relativeFile2.jws"/>
<parameter name="project" value="*"/>
<parameter name="profile" value="web*"/>
</deploy>
</ojdeploy-build>

9.8.2.1 ワイルドカード・サンプルの使用方法

プロジェクト名とプロファイル名は、"*"、"name*"、"name1,name2,name3,..."、またはこれらの組合せとして指定できます。ワークスペース名は列挙する必要があるため、"*"は使用できませんが、"workspace1"または"workspace1,workspace2,workspace3"として指定することはできます。

次に例を示します。

- adf* (プロファイル)

- View* (プロジェクト)

- *Controller(すべてのコントローラ・プロジェクト)

アプリケーションでワイルドカードを使用する例:

<ojdeploy-build basedir= "/home/jdoe" >
<deploy>
<parameter name= "workspace" value= "Application1.jws,Application2.jws" />
<!-- above pattern gets /home/jdoe/Application1.jws and /home/jdoe/Application2.jws -->
. . .
</deploy>
/ojdeploy-build>

9.8.2.2 組込みマクロの使用方法

ビルドファイルで使用できる組込みマクロは、次のとおりです。

表9-5 ビルドファイルで使用できるマクロ

マクロ名

説明

${workspace.name}

vTファイル拡張子を除いたアプリケーションの名前。

${workspace.dir}

アプリケーション(.jws)ファイルがあるディレクトリ。

${project.name}

.jprファイル拡張子を除いたプロジェクト名。

${project.dir}

プロジェクト(.jpr)ファイルが格納されたディレクトリ。

${profile.name}

プロファイルの定義済の名前。

${deploy.dir}

デフォルトのデプロイ・ディレクトリ。通常、プロジェクト・レベルのプロファイルの場合は${project.dir}/deploy、ワークスペース・レベルのプロファイルの場合は${workspace.dir}/deployです。

${base.dir}

-basedirパラメータの値、または現在のディレクトリ。

9.8.2.3 バッチ・デプロイメントのログ・ファイルの作成方法

パラメータ-statuslogfile cを使用して、ログ・ファイルの絶対パスを指定できます。このパスにマクロを含めることはできません。

ログ・ファイルには、処理されたデプロイ・タスクと各タスクのステータスがXML形式でリストされます。ステータスはSUCCESSまたはFAILEDのいずれかで、exitcode属性が含まれます。exitcodeに指定できる値は、次のとおりです。

- 0 - 成功

- 1 - 致命的エラー(NPE、OutOfMemoryなど)

- 2 - JDeveloper構成エラー(拡張子の欠落など)

- 4 - デプロイ・エラー(コンパイル、デプロイ例外など)。すべての終了コードはビットごとにOR演算されます。

各ログの最後にあるサマリー・セクションでは、組み合されたステータスを使用できます。

例9-3 バッチ・デプロイメントのログ出力の例

<?xml version="1.0"?>
<ojdeploy-log>
<deploy-task>
<target>
<profile>webapp1</profile>
<workspace>/scratch/jdoe/jdev/mywork/Application3/Application3.jws</workspace>
<project>Project1.jpr</project>
</target>
<exception msg="**** One or more compilation errors prevented deployment from continuing.">
oracle.jdeveloper.deploy.DeployException: **** One or more compilation errors prevented deployment from continuing.
at oracle.jdevimpl.deploy.common.ModulePackagerImpl.compileDependents(ModulePackagerImpl.java:143)
at oracle.jdeveloper.deploy.common.ModulePackager.compile(ModulePackager.java:65)
at oracle.jdeveloper.deploy.common.ModulePackager.prepareImpl(ModulePackager.java:52)
at oracle.jdeveloper.deploy.common.AbstractDeployer.prepare(AbstractDeployer.java:69)
at oracle.jdevimpl.deploy.fwk.WrappedDeployer.prepareImpl(WrappedDeployer.java:32)
at oracle.jdeveloper.deploy.common.AbstractDeployer.prepare(AbstractDeployer.java:69)
at oracle.jdevimpl.deploy.fwk.WrappedDeployer.prepareImpl(WrappedDeployer.java:32)
at oracle.jdeveloper.deploy.common.AbstractDeployer.prepare(AbstractDeployer.java:69)
at oracle.jdevimpl.deploy.fwk.DeploymentManagerImpl.deploy(DeploymentManagerImpl.java:411)
at oracle.jdevimpl.deploy.fwk.DeploymentManagerImpl$1.run(DeploymentManagerImpl.java:281)

</exception>
<status exitcode="4">FAILED</status>
</deploy-task>
<deploy-task>
<target>
<profile>archive1</profile>
<workspace>/scratch/jdoe/jdev/mywork/Application3/Application3.jws</workspace>
<project>Project1.jpr</project>
</target>
<exception msg="**** One or more compilation errors prevented deployment from continuing.">
oracle.jdeveloper.deploy.DeployException: **** One or more compilation errors prevented deployment from continuing.
at oracle.jdevimpl.deploy.common.ModulePackagerImpl.compileDependents(ModulePackagerImpl.java:143)
at oracle.jdeveloper.deploy.common.ModulePackager.compile(ModulePackager.java:65)
at oracle.jdeveloper.deploy.common.ModulePackager.prepareImpl(ModulePackager.java:52)
at oracle.jdeveloper.deploy.common.AbstractDeployer.prepare(AbstractDeployer.java:69)
at oracle.jdevimpl.deploy.fwk.WrappedDeployer.prepareImpl(WrappedDeployer.java:32)
at oracle.jdeveloper.deploy.common.AbstractDeployer.prepare(AbstractDeployer.java:69)
at oracle.jdevimpl.deploy.fwk.WrappedDeployer.prepareImpl(WrappedDeployer.java:32)
at oracle.jdeveloper.deploy.common.AbstractDeployer.prepare(AbstractDeployer.java:69)
at oracle.jdevimpl.deploy.fwk.DeploymentManagerImpl.deploy(DeploymentManagerImpl.java:411)
at oracle.jdevimpl.deploy.fwk.DeploymentManagerImpl$1.run(DeploymentManagerImpl.java:281)

</exception>
<status exitcode="4">FAILED</status>
</deploy-task>
<deploy-task>
<target>
<profile>ejb1</profile>
<workspace>/scratch/jdoe/jdev/mywork/Application3/Application3.jws</workspace>
<project>Project3.jpr</project>
</target>
<status exitcode="0">SUCCESS</status>
</deploy-task>
<summary>
<start-time>2007-12-19 12:10:42 PST</start-time>
<end-time>2007-12-19 12:10:45 PST</end-time>
<total-tasks>3</total-tasks>
<failures>2</failures>
<status exitcode="4">FAILED</status>
</summary>
</ojdeploy-log>

9.8.3 Antを使用してコマンドラインからデプロイする方法

JDeveloperでのデプロイは、デプロイメント・プロファイルを基にして構築されています。一般的な実装は、JARアーカイブの構造を記述したArchiveProfileです。デプロイメント・プロファイルはプロジェクトまたはワークスペースの一部として作成できます。コマンドライン・ツールのojdeployを使用すると、JDeveloper IDEを起動せずに、ArchiveProfileのデプロイが可能になります。

コマンドライン・デプロイメントには、JDeveloperのインストールが必要ですが、このインストールはヘッドレス・モードで起動されるため、JDeveloper IDEは表示されず、ヘッドレス・モードに定義されているすべての拡張機能がロードされます。この形式のデプロイでは、JDeveloperのアプリケーションとプロジェクト、およびそのメタデータを読み込むことができます。コマンドライン・デプロイメントを起動するAntスクリプトは、手動で作成する必要があります。デプロイされたアーカイブは、使用しているJDeveloperのバージョン、およびコマンドライン・デプロイメントの起動時に有効な拡張機能によって異なります。

9.8.3.1 Antビルド・スクリプトの生成方法

コマンドライン・デプロイメント用のAntビルド・スクリプトを簡単に作成するために、JDeveloperからAntスクリプトを生成できます。

例9-4 Antビルド・スクリプトの構造

<project name="Project1" default="all" basedir=".">
<property file="build1.properties"/>
<target name="init">
<tstamp/>
<mkdir dir="${output.dir}"/>
</target>
<target name="all" description="Build the project" depends="compile,copy,deploy"/>
<target name="clean" description="Clean the project">
. . .
</target> <target name="compile" description="Compile Java source files" depends="init">
. . .
</target>
<target name="copy" description="Copy files to output directory" depends="init">
. . .
</target>
<!--- This is the additional part generated for deployment ---->

<target name="deploy" description="Deploy JDeveloper profiles"
depends="init,compile">
<taskdef name="ojdeploy"
classname="oracle.jdeveloper.deploy.ant.OJDeployAntTask"
uri="oraclelib:OJDeployAntTask"
classpath="${oracle.jdeveloper.ant.library}"/>
<ora:ojdeploy xmlns:ora="oraclelib:OJDeployAntTask"
executable="${oracle.jdeveloper.ojdeploy.path}"
ora:buildscript="${oracle.jdeveloper.deploy.dir}ojdeploy-build.xml"
ora:statuslog="${oracle.jdeveloper.deploy.dir}ojdeploy-statuslog.xml">
<ora:deploy>
<ora:parameter name="workspace"
value="${oracle.jdeveloper.workspace.path}"/>
<ora:parameter name="project"
value="${oracle.jdeveloper.project.name}"/>
<ora:parameter name="profile"
value="${oracle.jdeveloper.deploy.profile.name}"/>
<ora:parameter name="nocompile" value="true"/>
<ora:parameter name="outputfile"
value="${oracle.jdeveloper.deploy.outputfile}"/>
</ora:deploy>
</ora:ojdeploy>
</target>
<!-------------- end of deployment ---->
</project>

9.8.3.2 build.xmlファイルについて

build.propertiesファイルはbuild.xmlとともに生成され、コマンドライン・デプロイメントに必要な追加の変数を定義します。

例9-5 build.xmlファイルの例

#Fri Feb 15 10:45:22 PST 2008
#Sun Feb 24 18:47:36 PST 2008
javac.nowarn=off
javac.debug=on
build.compiler=oracle.ojc.ant.taskdefs.OjcAdapter
output.dir=classes
oracle.home=../../oracle/
javac.deprecation=off
oracle.jdeveloper.ant.library=/scratch/jdoe/oracle/jdev//lib/ant-jdeveloper.jar
oracle.jdeveloper.deploy.dir=/scratch/jdoe/Application7/Project1/deploy/
oracle.jdeveloper.ojdeploy.path=/scratch/jdoe/oracle/jdev//bin/ojdeploy
oracle.jdeveloper.workspace.path=/scratch/jdoe/Application7/Application7.jws
oracle.jdeveloper.project.name=Project1
oracle.jdeveloper.deploy.profile.name=*
oracle.jdeveloper.deploy.outputfile=/scratch/jdoe/Application

9.8.3.3 build.propertiesファイルについて

Antビルド・スクリプトは、JDeveloperの外部で実行できます。実行するには、build.xmlが格納されたディレクトリに変更してAntを実行します。AntはJDeveloper内からも実行できます。実行するには、アプリケーション・ナビゲータでbuild.xmlノードを右クリックし、「すべて」または「デプロイ」ターゲットを選択します。

例9-6 build.propertiesファイルの例

Buildfile: /scratch/jdoe/Application7/Project1/build1.xml

init:

compile:
deploy:
[ora:ojdeploy]
[ora:ojdeploy] Oracle JDeveloper Deploy 11.1.1.0.0
[ora:ojdeploy] Copyright (c) 2008, Oracle. All rights reserved.
[ora:ojdeploy]
[ora:ojdeploy] ----build file----
[ora:ojdeploy] <?xml version = '1.0' standalone = 'yes'?>
[ora:ojdeploy] <ojdeploy-build>
[ora:ojdeploy] <deploy>
[ora:ojdeploy] <parameter name="workspace" value="/scratch/jdoe/Application7/Application7.jws"/>
[ora:ojdeploy] <parameter name="project" value="Project1"/>
[ora:ojdeploy] <parameter name="profile" value="*"/>
[ora:ojdeploy] <parameter name="nocompile" value="true"/>
[ora:ojdeploy] <parameter name="outputfile" value="/scratch/jdoe/Application7/Project1/deploy/${profile.name}"/>
[ora:ojdeploy] </deploy>
[ora:ojdeploy] <defaults>
[ora:ojdeploy] <parameter name="buildfile" value="/scratch/jdoe/Application7/Project1/deploy/ojdeploy-build.xml"/>
[ora:ojdeploy] <parameter name="statuslogfile" value="/scratch/jdoe/Application7/Project1/deploy/ojdeploy-statuslog.xml"/>
[ora:ojdeploy] </defaults>
[ora:ojdeploy] </ojdeploy-build>
[ora:ojdeploy] ------------------
[ora:ojdeploy] ---- Deployment started. ---- Feb 24, 2008 6:49:51 PM
[ora:ojdeploy] Target platform is (WebLogic 10.3).
[ora:ojdeploy] Running dependency analysis...
[ora:ojdeploy] Wrote JAR file to /scratch/jdoe/Application7/Project1/deploy/archive1.jar
[ora:ojdeploy] Elapsed time for deployment: less than one second
[ora:ojdeploy] ---- Deployment finished. ---- Feb 24, 2008 6:49:51 PM
[ora:ojdeploy] ---- Deployment started. ---- Feb 24, 2008 6:49:51 PM
[ora:ojdeploy] Target platform is (Java Enterprise Edition 1.5).
[ora:ojdeploy] Running dependency analysis...
[ora:ojdeploy] Wrote WAR file to /scratch/jdoe/Application7/Project1/deploy/WindowMobile.war
[ora:ojdeploy] Elapsed time for deployment: less than one second
[ora:ojdeploy] ---- Deployment finished. ---- Feb 24, 2008 6:49:52 PM
[ora:ojdeploy] Status summary written to /scratch/jdoe/Application7/Project1/deploy/ojdeploy-statuslog.xml

BUILD SUCCESSFUL
Total time: 19 seconds

注意:

デフォルトでは、コマンドライン・デプロイメント・タスクには、タスクとして有効なnocompileオプションがあり、コンパイル・タスクに依存しています。この依存性が削除されている場合は、nocompileオプションも削除できます。

JDeveloperから、アプリケーション用の.earファイルを生成することをお薦めします。.earファイルは、デプロイに必要な適切なクラス依存性をすべて備えて生成されます。.earファイルを生成せずに直接アプリケーションを参照し、Antを使用してデプロイするには、クラスとJARファイルの依存性を手動で解決する必要がある場合があります。

9.9 Java Web Startを使用したデプロイ

JDeveloperでは、Java Web Startテクノロジの基盤になる、XMLベースのJNLP (Java Network Launching Protocol)定義の作成がサポートされています。Java Web Startを使用すると、Javaアプリケーションをデプロイしてインターネット・ブラウザから起動できます。Javaクライアント・アプリケーションおよびアプレットをWebサーバー上で管理し、ユーザーがそれをクライアント・マシンにダウンロードして実行できます。JDeveloperのJava Web Start対応の作成ウィザードを使用すると、Webサーバーで管理されるが、クライアント・マシンでダウンロードおよび実行されるアプリケーションおよびアプレットを設定できます。

注意:

JDK 7 Update 21以降から、信頼できる認証局によって署名されているアプレットを除き、Java Web Startアプレットはデフォルトのセキュリティ設定で実行されなくなりました。詳細は、Java Webサイト(http://www.oracle.com/technetwork/java/index.html)を参照してください。

Java Web Startアプリケーションを開発するプロセスは、次のように要約できます。

1. Javaアプリケーションを開発します。

2. JDeveloper IDE内のJava Web Startで、アプリケーションを実行するユーザーの体験をシミュレートします。

3. JDeveloperのJava EE Webデプロイ・プロセスを使用して、本番アプリケーションをWebサーバーに移動します。

注意:

JDeveloperのJava Web Startを使用してアプリケーションおよびアプレットを起動するには、Java Web Startソフトウェアをダウンロードしてインストールする必要があります。アプリケーションやアプレットのユーザーも、それぞれのマシンにソフトウェアをインストールする必要があります。

Java Web Startと、Java Web Startソフトウェアのダウンロードの詳細は、http://www.oracle.com/technetwork/java/javase/tech/index-jsp-136112.htmlを参照してください。

9.9.1 Java Web Startテクノロジの目的

Java Web Startとアプレットは同様のテクノロジに見えますが、いくつかの相違点があります。

- アプレットのアプローチがWebを中心にしたJavaアプリケーションのデプロイであるのに対し、Java Web StartではWebブラウザに依存せずにアプリケーションのJARファイルのダウンロードが行われます。Java Web StartではWebブラウザを介してJava Web Start JNLPディスクリプタがダウンロードされた後で、アプリケーション・リソースがダウンロードされます。JNLPディスクリプタによってJava Web Startが実際のダウンロードを起動し、実行します。

- アプリケーションのユーザーが体験するアプレットの動作は、Java Web Startと同じですが、Java Web Startではアプレットの場合のようにWebブラウザに関連付けられていません。アプリケーションが実行されたらWebブラウザは閉じることができ、アプリケーションはそのままJava Web Startで実行されます。

Java Web Startソフトウェアをクライアント・マシンにインストールした後、アプリケーション・ユーザーはWebページのリンクをクリックして、アプリケーションとアプレットを実行できます。アプリケーションがコンピュータにない場合、Java Web Startはアプリケーション・ライブラリのあるWebサーバーから必要なすべてのファイルを自動的にダウンロードします。そして、デスクトップ上のアイコンやブラウザ・リンクからいつでもアプリケーションを再起動できるように、ファイルをクライアント・コンピュータにキャッシュします。Java Web Startは必要に応じて更新を行うので、常に最新バージョンのアプリケーションがユーザーに提示されます。

9.9.1.1 Java Web Start対応の作成ウィザードによって生成されるファイル

アプリケーションをWebサーバー上で管理する一方で、アプリケーション・ユーザーはJava Web Startを使用してクライアント・マシン上でアプリケーションおよびアプレットを実行できます。Java Web StartとWebサーバーによるダウンロードをサポートするために、Java Web Start対応の作成ウィザードでは次のファイルが生成されます。

- Java Web Startでアプリケーションをダウンロードして起動するために必要なJava Network Launching Protocol (JNLP)定義。.jnlpファイルには、アーカイブ・ファイルの記述と、このインスタンスにアプレットまたはアプリケーションが含まれているかどうかの記述があります。

- Webサーバーからクライアントへのダウンロードを開始するためのURLを含んだHTMLファイル。HTMLファイルの作成はオプションですが、ファイルを手動で作成する場合を除いて、作成することを強くお薦めします。

アプリケーションをWebサーバー上で管理する一方で、ユーザーはJava Web Startを使用してクライアント・マシン上でアプリケーションおよびアプレットを実行できます。Java Web StartとWebサーバーによるダウンロードをサポートするために、Java Web Start対応の作成ウィザードでは次のファイルが生成されます。

9.9.1.2 JDeveloperにおけるWebサーバーの役割

JDeveloperでは統合WebLogic Server Webサーバーが提供されます。統合WLSを使用すると、Java Web Startで使用するWebアプリケーション・アーカイブのデプロイおよびダウンロードのプロセスをシミュレーションできます。JDeveloperでは、J2SEのデプロイメント・プロファイルの規則に従って、クライアント・マシンで実行されるコンポーネントのアーカイブ(シンプル・アーカイブ)とWebサーバーにデプロイされるコンポーネントのアーカイブ(Webアプリケーション・アーカイブ)が行われます。

Java Web Startの設定方法

1. クライアント・マシンにダウンロードされ、実行されるアプリケーションのソース・ファイルを含んだシンプルJavaアーカイブ.jarファイルを作成します。

2. JDeveloperでJava Web Start対応の作成ウィザードを起動し、アプリケーションやアプレットをクライアント・マシンでダウンロードして実行できるようにするHTMLファイルおよびJNLPファイルを作成します。

3. WebサーバーにデプロイするWebアプリケーション・アーカイブ(.war)ファイルを作成します。このファイルには、JDeveloperのmyworkフォルダにあるpublic_htmlディレクトリの内容が含まれ、JAR、HTMLおよびJNLPファイルが含まれます。

注意:

JDeveloperの組み込まれたWebサーバーを使用するためにアプリケーションをデプロイする必要はありません。JDeveloperにはデフォルトのweb.xml定義があり、それによってJDeveloperのmyworkフォルダのpublic_htmlの内容が指定されます。

Webサーバーを設定したら、生成された.htmlファイルを使用して、JDeveloperでJava Web Startソフトウェアを起動できます。Java Web StartではWebブラウザを使用して、.jnlpファイルで識別されたコンポーネントがダウンロードされます。.jnlpファイル内の別の定義では、コンポーネントをアプリケーションとして実行するのか、セキュアなアプレットで実行するのかが特定されます。Java Web Startを起動し、ダウンロードを完了したら、Webブラウザを閉じてアプリケーションやアプレットの実行を続けることができます。

9.9.2 Java Web Startファイルの作成方法

Java Network Launching Protocol定義ファイルapplication-name.jnlpは、Java Web Start対応の作成ウィザードを使用してJavaクライアントを作成し、Javaのアプリケーションやアプレットをダウンロードしてクライアント・マシンで実行するときに自動的に作成されます。ただし、application-name.jnlpのコンテンツを制御する必要がある場合は、使用する独自のファイルを手動で作成できます。

注意:

この項目がグレー表示されている場合、application-name.jnlpファイルがプロジェクトですでに作成されていることを示します。プロジェクトごとに有効な各デプロイメント・ディスクリプタ・タイプは、1つのみです。

Java Web Start (.jnlp)ファイルを手動で作成するには、次の手順を実行します。

1. 「カテゴリ」ツリーで「General」を開き、「Deployment Descriptor」を選択します。「項目」リストで、「Java Web Start (JNLP)ファイル」をダブルクリックします。

2. カテゴリまたは項目が見つからなければ、正しいプロジェクトが選択されていることを確認して、「フィルタ条件」ドロップダウン・リストの「すべてのテクノロジ」を選択します。

3. 「OK」をクリックします。

4. 新しく作成したファイルがコード・エディタで開きます。このファイルを編集し、必要に応じて構成設定を追加します。

Java Web Startの詳細は、http://www.oracle.com/technetwork/java/javase/tech/index-jsp-136112.htmlを参照してください。

9.9.3 Java Web Start用のADF Swing Webアーカイブを作成する方法

Java Web Startでアプリケーションをダウンロードして実行する前に、JDeveloperのJava EE Webデプロイメント・プロセスを使用して、Webサーバーを設定できます。

アプリケーションをWebサーバーに常駐させると、メンテナンスが非常に容易になります。Java Web Startは、ユーザーがアプリケーションを実行するたびに、アプリケーションの更新の確認およびダウンロードを行います。

Java Web Start用のADF Swing Webアプリケーション・アーカイブを作成するには、次のようにします。

1. 最新のソース・ファイルをアーカイブするには、アーカイブ・ファイルを作成する前に、次の両方を作成します。

- ビジネス・コンポーネント・プロジェクト

- ADF Swingプロジェクト

2. ADF Swing Java Web Startダイアログを実行します。アプリケーション・ナビゲータで、作業するアプリケーションまたはプロジェクトを選択します。
「ファイル」→「新規」を選択して「新規ギャラリ」を開きます。

「カテゴリ」ツリーで「クライアント層」を開き、「ADF Swing」を選択します。「項目」リストで「ADF Swing用Java Web Start(JNLP)ファイル」を選択し、「OK」をクリックします。

Java Web Startで使用するJNLPファイル、ANTビルドファイルctbuild.xml、およびデプロイメント・プロファイルがプロジェクト・プロパティに生成されます。

3. セキュリティ上の理由で、キーの保護とコードの署名に使用するパスワードと、マシン上に定義するJavaキーストアに使用するパスワードを別のものにする場合は、次の手順を実行して、指定したパスワードが参照されるようにctbuild.xmlAntビルドファイルを変更する必要があります。

- ctbuild.xmlファイルを開き、他の署名プロパティの下に、キー・パスワードのプロパティを追加します。

<!--properties related to signing-->
<property name="alias" value="ADFADF SwingTrust"/>
<property name="storepass" value="welcome"/>
<property name="keypass" value="myPassword"/>

- 次の署名ターゲットを変更します。

<target name="sign" depends="jar">
<signjar jar="${mt.jar.name}" alias="${alias}" storepass="${storepass}"/>
<signjar jar="${ct.jar.name}" alias="${alias}" storepass="${storepass}"/>
</target>

変更後は次のようになります。

<target name="sign" depends="jar">
<signjar jar="${mt.jar.name}" alias="${alias}" keypass="${keypass}" storepass="${storepass}"/>
<signjar jar="${ct.jar.name}" alias="${alias}" keypass="${keypass}" storepass="${storepass}"/>
</target>

4. クライアント側アーカイブ・ファイルを作成するには、ADF Swingプロジェクトのctbuild.xmlを右クリックし、次のとおり選択します。
「ターゲットのビルド」→「署名」を選択し、アーカイブの認証を要求します。含まれているJARファイルがこれによって署名されます。これは必須の手順です。

ビルドファイルによって、プロジェクトのpublic_htmlディレクトリに、client.jarおよびmymt.zipという2つの署名付きアーカイブ・ファイルが生成されます。これらのアーカイブは、プロジェクトのプロパティで生成されるデプロイメント・プロファイルによって参照されます。

5. (オプション) web.xmlデプロイメント・ディスクリプタを編集する場合は、アプリケーション・ナビゲータでweb.xmlファイルを右クリックし、「開く」を選択します。

6. (オプション)変更を加えるために後でプロジェクト・デプロイメント・プロファイルを再オープンするには、アプリケーション・ナビゲータでそのプロジェクトを右クリックし、「プロジェクト・プロパティ」を選択します。次に、「プロジェクト・プロパティ」ダイアログの「デプロイメント」セクションでプロファイルの名前を選択し、「編集」をクリックします。

作成したWARファイルとEARファイルをターゲット・アプリケーション・サーバーにデプロイする準備ができた後は、必ずアプリケーション・サーバー接続を作成してください。

9.9.4 Java Web Start用のJavaクライアントWebアーカイブを作成する方法

Java Web Startでアプリケーションをダウンロードして実行する前に、JDeveloperのJava EE Webデプロイメント・プロセスを使用して、サーバーを設定できます。

アプリケーションをWebサーバーに常駐させると、メンテナンスが非常に容易になります。Java Web Startは、ユーザーがアプリケーションを実行するたびに、アプリケーションの更新の確認およびダウンロードを行います。

Webサーバーへのデプロイ用のJavaクライアント・アプリケーションを作成するには、次の手順を実行します。

1. Javaクライアント・アプリケーションのシンプルJARアーカイブを作成します。

2. JavaクライアントのWeb Start JNLP定義を作成し、Java Web Startで使用するJNLPファイルおよびHTMLファイルを生成します。

3. アプリケーション・ナビゲータで、WARデプロイメント・プロファイルを作成するプロジェクトを選択します。

4. 「ファイル」→「新規」を選択して「新規ギャラリ」を開きます。

5. 「カテゴリ」ツリーで「General」を展開し、「Deployment Profiles」を選択します。「項目」リストで「WARファイル」をダブルクリックします。

6. カテゴリまたは項目が見つからなければ、正しいプロジェクトが選択されていることを確認して、「フィルタ条件」ドロップダウン・リストの「すべてのテクノロジ」を選択します。新規デプロイメント・プロファイルの名前を入力し、「OK」をクリックします。

7. 「WARデプロイメント・プロファイルのプロパティ」パネルが表示されます。必要に応じて各ページの設定を構成します。プロパティの定義の終了後に「OK」をクリックします。
新しく作成したweb.xmlデプロイメント・ディスクリプタが、アプリケーション・ナビゲータ内の指定したプロジェクトの下に表示されます。

8. Java Web Start用のJavaクライアントWebアーカイブをデプロイします。

9. (オプション) web.xmlデプロイメント・ディスクリプタを編集する場合は、アプリケーション・ナビゲータでweb.xmlファイルを右クリックし、「開く」を選択します。

10. (オプション)変更を加えるために後でプロジェクト・デプロイメント・プロファイルを再オープンするには、アプリケーション・ナビゲータでそのプロジェクトを右クリックし、「プロジェクト・プロパティ」を選択します。次に、「プロジェクト・プロパティ」ダイアログの「デプロイ」セクションでプロファイルの名前を選択し、「編集」をクリックします。

作成したWARまたはEARをターゲット・アプリケーション・サーバーにデプロイする準備ができた後は、必ずアプリケーション・サーバー接続を作成してください。

注意:

Webモジュールは、ターゲット・デプロイメント・ディレクトリにデプロイされます。

Webアプリケーション・デプロイメント・ディスクリプタが、Webアプリケーション・アーカイブ(WAR)・ファイルWEB-INF/web.xml内にあることを確認してください。

9.9.5 Javaクライアント用のJava Web Start JNLP定義を作成する方法

Java Web Start対応の作成ウィザードを使用して、Javaアプリケーションおよびアプレットをクライアント・マシンにダウンロードして実行するためにJava Web Startソフトウェアで使用されるXMLベースのJNLP (Java Network Launching Protocol)定義ファイルを作成します。

注意:

JDeveloperのJava Web Startを使用してアプリケーションおよびアプレットを起動するには、Java Web Startソフトウェアをダウンロードしてインストールする必要があります。アプリケーションやアプレットのユーザーも、それぞれのマシンにソフトウェアをインストールする必要があります。次を参照してください。

http://www.oracle.com/technetwork/java/javase/tech/index-jsp-136112.html

アプリケーションやアプレットは一連のJARファイルで配信する必要があり、イメージ、構成ファイルおよびネイティブ・ライブラリなどすべてのアプリケーション・リソースも、JARファイルに含める必要があります。リソースは、ClassLoader getResourceその他のメソッドを使用して検索する必要があります。Java Web Startでは、JARファイルのみがWebサーバーからクライアントに転送されます。詳細は、http://www.oracle.com/technetwork/java/javase/tech/index-jsp-136112.htmlを参照してください。

ウィザードでは、JNLPファイルと(オプションで)HTMLファイルがプロジェクトに追加されます。Java Web Startでは、これらの生成されたファイルを使用して、どのアプリケーション・ソースをWebサーバーにダウンロードするかが特定されます。

- Java Web Startでアプリケーションをダウンロードして起動するには、Java Network Launching Protocol (JNLP)定義が必要です。.jnlpファイルには、アーカイブ・ファイルの記述と、このインスタンスにアプレットまたはアプリケーションが含まれているかどうかの記述があります。

- HTMLファイル。HTMLファイルの作成はオプションですが、ファイルを手動で作成する場合を除いて、作成することを強くお薦めします。HTMLファイルには、Webサーバーからクライアントへのダウンロードを開始するためのURLが含まれます。

Java Web Start対応の作成ウィザードを起動してJNLPおよびHTMLファイルを作成する前に、シンプル・アーカイブ(JAR)ファイルを作成する必要があります。また、mainファンクションが存在するクラスを指定するよう要求されるため、そのクラスを確認する必要があります。

アプリケーションまたはアプレットのJNLP定義を作成するには、次の手順を実行します。

1. ナビゲータで、JNLP定義を生成するプロジェクトを選択します。「ファイル」→「新規」を選択して「新規ギャラリ」を開きます。

2. 「カテゴリ」ツリーで「クライアント層」を開き、「Swing/AWT」を選択します。「項目」リストで、「Java Web Start(JNLP)ファイル」をダブルクリックし、Java Web Start対応の作成ウィザードを開きます。
「ようこそ」ページで「次へ」をクリックします。

3. 「アプリケーション情報」ページで、ファイル名、作成したJARファイルの名前と場所およびアプリケーションの実行に使用するクラスを入力します。

4. Java Web Start対応の作成ウィザード使用の詳細なヘルプを参照するには、[F1]を押すか、ウィザード内で「ヘルプ」をクリックします。

5. オプションのHTMLファイルを作成するには、「HTMLを作成」を選択します。必要なオプションを指定した後、「次へ」をクリックします。

6. Web Startページで、JNLPファイルをドキュメント化するための情報を指定します。ウィザードを完了して「終了」をクリックします。

Java Web StartとともにJSPやサーブレットを使用することもできますが、手動でファイルを設定してコンテンツ・タイプを変更する必要があります。contentType = application/x-java-jnlp-fileを最初の行に指定したJNLPの例を次に示します。

例9-7 JNLPファイル

<%@ page contentType="application/x-java-jnlp-file" %>
<?xml version="1.0" encoding="utf-8"?>
<jnlp spec="1.0+" codebase="http://192.168.1.102:8888" href="jnlpfile.jnlp">
<information>
<title>Test</title>
<vendor>Oracle</vendor>
<homepage href="Test.html"/>
<description>Encryption Tool</description>
<icon href="images/frontpage.gif"/>
<offline-allowed/>
</information>
<security><all-permissions/></security>
<resources>
<j2se version="1.3"/>
<jar href="/apps/archive1.jar" main="true" download="eager" />
</resources>
<application-desc main-class="oracle.Ide">
</application-desc>
</jnlp>

9.9.6 Java Web Start用のADF Swing Webアプリケーション・アーカイブをデプロイする方法

ADF Swing Webアーカイブはサーバーにデプロイできます。マシンにJava Web Startソフトウェアをインストールします。Java Web Startの詳細は、http://www.oracle.com/technetwork/java/javase/tech/index-jsp-136112.htmlを参照してください。

Java Web Start用のADF Swing Webアプリケーション・アーカイブをデプロイするには、次の手順を実行します。

1. まだ作成していない場合は、Java Web Start用の署名付きADF Swing Webアーカイブを作成します。

2. まだ作成していない場合は、ターゲット・アプリケーション・サーバーへのアプリケーション・サーバー接続を作成します。

3. ADF Swingプロジェクトを右クリックし、「デプロイ」を選択すると、WARファイルが自動的に生成され、アプリケーション・コンポーネントがデプロイされます。必要なWebサーバーへの接続を選択します。

4. (オプション) web.xmlデプロイメント・ディスクリプタを編集する場合は、アプリケーション・ナビゲータでweb.xmlファイルを右クリックし、「開く」を選択します。

5. (オプション)変更を加えるために後でプロジェクト・デプロイメント・プロファイルを再オープンするには、アプリケーション・ナビゲータでそのプロジェクトを右クリックし、「プロジェクト・プロパティ」を選択します。次に、「プロジェクト・プロパティ」ダイアログの「デプロイ」セクションでプロファイルの名前を選択し、「編集」をクリックします。

9.9.7 Java Web Start用のJavaクライアントWebアプリケーション・アーカイブをデプロイする方法

Java Web Startでアプリケーションをダウンロードして実行する前に、JDeveloperの簡単なJava EE Webデプロイメント・プロセスを使用して、Webサーバーを設定できます。

アプリケーションをWebサーバーに常駐させると、メンテナンスが非常に容易になります。Java Web Startは、ユーザーがアプリケーションを実行するたびに、アプリケーションの更新の確認およびダウンロードを行います。

Javaクライアント・アプリケーションをWebサーバーにデプロイするには、次の手順を実行します。

1. まだ作成していない場合は、Java Web Start用のJavaクライアントWebアーカイブを作成します。

2. まだ作成していない場合は、アプリケーション・サーバー接続を作成します。

3. Javaクライアント・アプリケーションのシンプルJARアーカイブを作成します。

4. JavaクライアントのWeb Start JNLP定義を作成し、Java Web Startで使用するJNLPファイルおよびHTMLファイルを生成します。

5. アプリケーション・ナビゲータで、プロジェクトを選択して右クリックします。ポップアップ・メニューに次のデプロイメント・オプションが表示されます。

- 「デプロイ」→デプロイメント・プロファイル→最新のデプロイ先。以前に選択したアプリケーション・サーバーまたはアーカイブ・ファイルにプロジェクトがデプロイされます。

- 「デプロイ」→デプロイメント・プロファイル→デプロイ先のアプリケーション・サーバー接続。デプロイメント・プロファイルで指定したアーカイブ・タイプを作成して、選択したアプリケーション・サーバー接続にデプロイします。

- 「デプロイ」→デプロイメント・プロファイル→「EARファイルへ」。プロジェクトとその依存性(デプロイメント・プロファイルに指定)をEARにデプロイします。JDeveloperでは、EARファイルはデプロイメント・プロファイルに指定されているデフォルト・ディレクトリに置かれます。

- 「デプロイ」→デプロイメント・プロファイル→「WARファイルへ」。WebモジュールはWARファイルとしてパッケージ化され、デプロイメント・プロファイル設定で指定したローカル・ディレクトリに保存されます。

6. (オプション) web.xmlデプロイメント・ディスクリプタを編集する場合は、アプリケーション・ナビゲータでweb.xmlファイルを右クリックし、「開く」を選択します。

7. (オプション)変更を加えるために後でプロジェクト・デプロイメント・プロファイルを再オープンするには、アプリケーション・ナビゲータでそのプロジェクトを右クリックし、「プロジェクト・プロパティ」を選択します。次に、「プロジェクト・プロパティ」ダイアログの「デプロイメント」セクションでプロファイルの名前を選択し、「編集」をクリックします。

注意:

Webアプリケーション・デプロイメント・ディスクリプタが、Webアプリケーション・アーカイブ(WAR)・ファイルWEB-INF/web.xml内にあることを確認してください。

9.10 Weblogic SCA Springを使用したデプロイ

Oracle JDeveloper Weblogic SCA Spring拡張機能は、WebLogic SCAとオープンソースのSpringフレームワークのための統合サポートを提供します。

この拡張機能で、次のものを作成できます。

- WebLogic SCA対応のプロジェクト。JARファイルとしてデプロイでき、それをデプロイのためのEARファイルに、またはWARファイルとして含めることができます。

- Springフレームワーク・プロジェクト。

9.10.1 WebLogic SCAについて

この拡張機能では、JDeveloperでWebLogic SCAアプリケーションを作成し、それをOracle WebLogic Serverにデプロイできます。WebLogic SCAは、OASIS Service Component Architecture Springコンポーネント実装仕様のサブセットに基づいています。詳細は、https://www.oasis-open.orgを参照してください。

Service Component Architecture (SCA)は、エンタープライズ・アプリケーションとシステムを、統合および再利用の可能なモジュール型ビジネス・サービスとして構築するモデルです。WebLogic SCAは、POJO (Plain Old Java Object)を使用したSCAアプリケーションの開発とデプロイをサポートしています。SCAでは、コンポーネントと通信が別個に実装されています。WebLogic SCAでは、POJOを使用してJavaアプリケーションを記述でき、使用可能な各種のプロトコルを介して、コンポーネントをSCAサービスとして公開し、参照を介してアクセスできます。そのために、Springアプリケーション・コンテキストで構成されるSCAのセマンティクスを使用します。SCAの観点では、WebLogic Spring SCAアプリケーションは、SCAサービスと参照を適切なバインディングで宣言するSpring SCAコンテキスト・ファイルとPOJOの集合です。WebLogic Spring SCAアプリケーションは、変更なしにOracle SOAコンポジットのコンポーネントとして使用できます。

WebLogic Serverでは、WebLogic Spring SCAアプリケーションはWebLogic SCA Runtimeで実行されます。ランタイムは、アプリケーションをデプロイする前に、共有Webアプリケーション・ライブラリとしてWebLogic Serverにデプロイする必要があります。詳細は、第9.10.4.3項「WebLogic SCAアプリケーションを統合WebLogic Serverにデプロイする方法」を参照してください。

Oracle WebLogic SCAの詳細は、『Oracle Fusion Middleware Oracle WebLogic Server WebLogic SCAアプリケーションの開発』を参照してください。

9.10.2 Springについて

SpringはエンタープライズJavaアプリケーションの開発を簡単にするオープンソースのフレームワークです。Springフレームワークには、各層のモデルと、Javaアプリケーションの機能領域が含まれます。POJOの使用に重点が置かれ、制御の概念と依存性インジェクションの逆転を利用してアスペクト指向のプログラミングを実装します。

Weblogic SCA Spring拡張機能は、Java EEアプリケーションで使用できるオープンソースのSpringプロジェクトをJDeveloperで作成する機能の統合サポートを提供します。Spring JARファイルをライブラリとしてJDeveloperに追加し、Spring Bean構成ファイルを作成するウィザードと編集機能を追加します。この拡張機能によって、Spring JARファイルはSpring 2.5ライブラリとしてJDeveloperに追加されます。Spring Bean構成ファイルを作成するウィザードが追加され、関連するXSDとDTDがIDEに登録されて、Springを定義する生産性の高い編集作業が実現されます。

Springの詳細は、『Oracle Fusion Middleware Oracle WebLogic ServerでのSpringのサポート』を参照してください。

9.10.3 Weblogic SCA Spring拡張機能のインストール

Oracle JDeveloper Weblogic SCA Spring拡張機能を使用するには、ダウンロードしてインストールする必要があります。

この拡張機能で、次のものがJDeveloperに追加されます。

- 「新規ギャラリ」の「ビジネス層」に「Spring」カテゴリを追加できます。Spring Bean構成ファイルとWebLogic SCA構成を作成するオプションは、ここで使用できます。

- Spring 2.5ライブラリが、SpringフレームワークのJARファイルおよびWebLogic SCAサポートとともにJDeveloperに追加されます。

9.10.4 Oracle WebLogic SCAの使用

Weblogic SCA Spring拡張機能を使用して、WebLogic SCA対応のプロジェクトを作成できます。これはJARファイルとしてデプロイでき、それをデプロイのためのEARファイルに、またはWARファイルとして含めることができます。

9.10.4.1 WebLogic SCAプロジェクトの作成方法

WebLogic SCAプロジェクトを開発するには、まずアプリケーションの制御ファイルとして動作するWebLogic SCA構成ファイルを作成します。このプロセスの一環として、必要なライブラリがサーバーにデプロイされるように、WebLogic SCAのJARまたはWARデプロイメント・ディスクリプタが構成されます。

WebLogic SCAアプリケーションを作成するには、次のようにします。

1. Javaアプリケーションとプロジェクトを作成します。

2. 「ファイル」→「新規」→「新規ギャラリ」→「ビジネス層」→「Spring」を選択します。

3. 次のいずれかを選択します。

- JARデプロイメントのWebLogic SCA構成: デプロイのためのEARファイルに含めることができるJARファイルを含むプロジェクトを作成します。

- WARデプロイメントのWebLogic SCA構成: WARファイルを含むプロジェクトを作成します。

WebLogic SCAウィザードが行う処理

WebLogic SCA構成ウィザードを実行すると、次の処理が行われます。

- spring-context.xmlというSCA定義ファイルがMETA-INF/jscaに作成され、JDeveloperのXMLソース・エディタで開かれます。高度なXML編集フレームワークによって、編集がサポートされます。

- プロジェクトにまだweb.xmlファイルが含まれていない場合は、作成されます。

- 「新規ギャラリ」で選択したオプションによって、次のようになります。

- JARデプロイメント・ディスクリプタがプロジェクトに追加され、weblogic-sca共有ライブラリに対する依存性がアプリケーション・レベルで追加されます。

- WARデプロイメント・ディスクリプタがプロジェクトに追加され、weblogic-sca共有ライブラリに対する依存性がWebアプリケーション・レベルで追加されます。

次の手順

SCAプロジェクトを作成すると、次の操作が可能になります。

- Oracle WebLogic Serverにアプリケーションをデプロイします。

- JDeveloperの統合WebLogic Serverでアプリケーションをテストします。

9.10.4.2 Oracle WebLogic SCA定義ファイルの編集方法

WebLogic SCAプロジェクトを作成する際に作成されるSCA定義ファイルはspring-context.xmlという名前で、META-INF/jscaの中に作成され、XMLソース・エディタで開かれます。

spring-context.xmlファイルの概略は次のとおりです。

例9-8 spring-context.xmlファイルの概略

<?xml version="1.0" encoding="windows-1252" ?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:util="http://www.springframework.org/schema/util"
xmlns:jee="http://www.springframework.org/schema/jee"
xmlns:lang="http://www.springframework.org/schema/lang"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:sca="http://xmlns.oracle.com/weblogic/weblogic-sca"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-2.5.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-2.5.xsd http://www.springframework.org/schema/lang http://www.springframework.org/schema/lang/spring-lang-2.5.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd http://www.springframework.org/schema/tool http://www.springframework.org/schema/tool/spring-tool-2.5.xsd http://xmlns.oracle.com/weblogic/weblogic-sca META-INF/weblogic-sca.xsd">
<!--Spring Bean definitions go here-->

</beans>

コメントは、Bean定義を入力する場所を示します。

XMLソース・エディタの機能、「構造」ウィンドウの機能、コンポーネント・パレットおよびプロパティ・インスペクタを使用して、XMLファイルの階層を移動して編集します。

ソース・エディタの機能

ソース・エディタには、XMLファイルの編集に便利な多くの機能があります。

- 構文補完インサイトのXML固有の実装であるXMLコード・インサイト< を入力してしばらく待つと、入力場所に適したエントリ候補がポップアップ表示されます。選択したタグに必須の属性がある場合は、自動的に追加されます。

- XMLソース・エディタには、エラーに赤い飾り線の下線が付くなど多くの機能があります。

- 「使用方法の検索」などのコンテキスト・メニューからオプションを選択でき、「使用方法」ログ・ウィンドウに要素の使用方法がすべて表示されます。「使用方法の検索」は「構造」ウィンドウからも使用できます。

「構造」ウィンドウの機能

「構造」ウィンドウでは、XMLファイルの階層をすばやく移動でき、編集機能もあります。

- 「構造」ウィンドウでノードを右クリックし、コンポーネントを追加します。

- 「構造」ウィンドウにエラー・メッセージが表示されます。

コンポーネント・パレットの機能

コンポーネント・パレットでタグを選択し、ソース・エディタまたは「構造」ウィンドウに直接ドラッグ・アンド・ドロップすると、spring-context.xmlファイルを作成できます。

注意:

タグをドロップできるのは、構文上正しい場所のみです。

デフォルトでは、使用可能なすべてのタグがコンポーネント・パレットに表示されます。表示されるタグを少なくするには、「すべてのページ」をクリックし、必要なタグのタイプのみを選択してください。たとえばWebLogic SCAのバインディングを使用する場合、コンポーネント・パレットの最上部にあるオプションと、リストされるコンポーネントが「EJBバインディング」およびWebサービス・バインディングになるように選択します。

プロパティ・インスペクタの機能

プロパティ・インスペクタでは、タグのプロパティを編集できます。

- プロパティ・インスペクタでの変更は、ソース・エディタ・ビューに同期されます。

- 特定のプロパティに関連する場合、値のリストが表示されます。

9.10.4.3 WebLogic SCAアプリケーションを統合WebLogic Serverにデプロイする方法

WebLogic SCAプロジェクトを作成した後、すぐに統合WebLogic Serverにデプロイし、アプリケーションをテストできます。

統合WebLogic Serverにデプロイするには、次のようにします。

- アプリケーション・ナビゲータで、プロジェクト・ノードの下にあるspring-context.xmlを右クリックし、「実行」または「デバッグ」、あるいは「プロファイラ」オプションのいずれかを選択します。

統合WebLogic Serverでアプリケーションを実行するときに行われる処理

統合WebLogic Serverをまだ起動していない場合は、デフォルト設定でデフォルトのドメインが自動的に作成され、サーバーが起動します。

アプリケーションが統合WebLogic Serverにデプロイされ、デプロイの進行状況を示すメッセージが「ログ」ウィンドウに表示されます。

アプリケーション・サーバー・ナビゲータで、「IntegratedWebLogicServer」の下位にある「Webサービス」ノードおよび「EJB」ノードの下にデプロイされたサービスが表示されます。

9.10.4.4 WebLogic SCAアプリケーションをOracle WebLogic Serverにデプロイする方法

作成したWebLogic SCAプロジェクトは、Oracle WebLogic Serverにデプロイできます。

JARファイルとWARファイルのどちらの作成を選択するかによって、プロセスは若干異なります。

注意:

WebLogic SCAアプリケーションをOracle WebLogic Serverにデプロイする前に、サーバーにWebLogic SCAをインストールする必要があります。詳細は、『Oracle Fusion Middleware Oracle WebLogic ServerでのSpringのサポート』の「WebLogic ServerへのWebLogic SCA Runtimeのデプロイ」を参照してください。

WebLogic SCA WARファイルを含むアプリケーションをWebLogic Serverにデプロイするには、次のようにします。

- 通常どおりにアプリケーションをデプロイします。

WebLogic SCA JARファイルを含むアプリケーションをWebLogic Serverにデプロイするには、次のようにします。

1. JARファイルの場所を、libまたはAPP-INF/libに設定し、それをEARファイルにデプロイします。

注意:

EARファイルには、少なくとも1つのJava EEアーティファクト、たとえばWARファイルまたはEJB-JARファイルが含まれている必要があり、そうでない場合にはデプロイに失敗します。

2. 通常どおりにアプリケーションをデプロイします。

WebLogic Serverにアプリケーションをデプロイするときに行われる処理

必要な場合には、EARファイルが作成されます。

アプリケーションがWebLogic Server接続にデプロイされ、デプロイの進行状況を示すメッセージが「ログ」ウィンドウに表示されます。

アプリケーション・サーバー・ナビゲータで、アプリケーション・サーバーの接続ノードの下位にある「Webサービス」ノードおよび「EJB」ノードの下にデプロイされたサービスが表示されます。

9.10.5 Springの使用

Weblogic SCA Spring拡張機能は、オープンソースのSpringフレームワークのための統合サポートを提供します。この拡張機能によって、多くのライブラリがJDeveloperに追加され、Springフレームワーク・プロジェクトの作成も追加でサポートされます。

9.10.5.1 Spring Beanアプリケーションの作成方法

Weblogic SCA Spring拡張機能によって、SpringフレームワークのJARファイルを含むライブラリがJDeveloperに追加されます。Springフレームワーク・アプリケーションを開発するには、まずアプリケーションの制御ファイルとして動作するSpring Bean構成ファイルを作成します。

Spring Bean構成ファイルを作成するには、次のようにします。

1. Javaアプリケーションとプロジェクトを作成します。

2. 「ファイル」→「新規」→「新規ギャラリ」→「ビジネス層」→「Spring」→「Spring」を選択します。Spring Bean定義ファイルのファイル名とディレクトリを入力し、「OK」をクリックします。

9.10.5.2 Spring Bean構成ファイルの作成時に行われる処理

「新規ギャラリ」の「ビジネス層」で「Spring」カテゴリを選択してSpring Bean構成を作成すると、Spring 2.5とCommons Logging 1.0.4のライブラリが自動的にプロジェクトに追加されます。ライブラリ定義にアクセスするには、アプリケーション・ナビゲータでプロジェクトのコンテキスト・メニューから「プロジェクト・プロパティ」を選択し、「ライブラリとクラスパス」を選択します。

Spring Bean構成ファイルbeans.xmlがMETA-INF/jscaに作成され、XMLソース・エディタで開かれます。高度なXML編集フレームワークによって、編集がサポートされます。

9.11 デプロイメントのトラブルシューティング

アプリケーションをデプロイする際に発生する可能性のある一般的な問題が多数あります。この項では、そうした問題と解決方法について説明します。統合WebLogic ServerとOracle WebLogic Serverのどちらにデプロイするときにも発生する問題と、どちらか一方のデプロイのみに固有の問題とに分かれています。

9.11.1 デプロイ上の共通の問題

この項では、統合WebLogic ServerとOracle WebLogic Serverのどちらにデプロイするときにも発生する問題に関する情報を提供します。

9.11.1.1 [Deployer: 149164] 排他モードの別のセッションがドメインの編集ロックを所有しているため、このデプロイメント操作を続行できません。

アプリケーションのデプロイと構成の変更が一度に複数のユーザーによって実行されないように、Oracle WebLogic Serverインスタンスがドメイン編集ロックを使用しています。このメッセージは、別のデプロイが同時に進行している(一度に許可されるデプロイは1つのみ)、または有効になっていないWebLogic Server管理コンソールでなんらかの変更があった場合に表示されます。まれですが、このメッセージは統合WebLogic Serverでアプリケーションを実行しているときにも表示されることがあります。

WebLogic Server管理コンソールで変更を有効にするには、次のようにします。

1. 管理コンソールにログインします。

2. チェンジ・センターのコンソールの左上で、「変更と再起動の表示」をクリックします。

3. 「変更と再起動」セクションで、「変更リスト」タブが選択されていることを確認し、保留中の変更があれば有効にします。

4. 「再起動チェックリスト」タブを選択し、再起動するサーバーを選択して「起動」をクリックします。

ドメイン構成ロック機能を有効または無効にするには、JDeveloperのインストールにあるWebLogic Serverのオンライン・ドキュメントから、または管理コンソールから使用できる管理コンソール・オンライン・ヘルプで、ドメイン構成ロックの有効化/無効化に関する項を参照してください。

統合WebLogic Serverへのデプロイ中にエラーが発生した場合には、管理コンソールを確認して問題の原因を特定できます。

9.11.2 統合アプリケーション・サーバーへのデプロイのトラブルシューティング方法

この項では、統合アプリケーション・サーバーの実行に固有の問題について説明します。

9.11.2.1 統合アプリケーション・サーバーの停止

以前のJDeveloperセッションで作成されて実行されたまま孤立したWebLogic Serverインスタンスをクリアする場合などに、統合アプリケーション・サーバーを停止したくてもJDeveloper内で停止できない場合は、jdeveloper-user-home/DefaultDomain/binに移動し、stopWebLogic.cmd (Windowsの場合)またはstopWebLogic.sh (Linuxの場合)を実行します。これで、統合アプリケーション・サーバーが正常にシャットダウンするため、それ以降にJDeveloperから統合アプリケーション・サーバーを起動しても競合しません。

「終了」ボタンを2回押すと、JDeveloperの制御下で(つまり孤立せずに)まだ稼働中のインスタンスを強制的にシャットダウンできます。

9.11.2.2 メモリー不足

統合WebLogic Serverで複数のアプリケーションを実行する場合、メモリーが不足しjava.lang.OutOfMemoryError: PermGen space例外が現れる場合があります。この例外を回避するには、MEM_MAX_PERM_SIZEをデフォルトの128mから256m、512mまたはそれ以上に引き上げます。この設定は、jdeveloper-user-home/DefaultDomain/binにあるsetDomainEnv.cmd (Windowsの場合)またはsetDomainEnv.sh (Linuxの場合)で行います。

まず、前述のいずれかの方法で統合WebLogic Serverを停止する必要があります。

9.11.2.3 別の場所へのJDeveloperの再インストール

JDeveloperを新しい場所に再インストールする場合、ハードコードされたJDeveloperへの参照が統合アプリケーション・サーバーに使用されていることで、問題が起こる場合があります。次のいずれかの方法を実行する必要があります。

- 新しいシステム・ディレクトリが使用されるようにJDEV_USER_DIRを設定します。この詳細は、『Oracle Fusion Middleware Oracle JDeveloperインストレーション・ガイド』の「ユーザー・ホーム・ディレクトリの設定」を参照してください。

- JDeveloperによって新しいシステム・ディレクトリが再生成されるように、古いシステム・ディレクトリを削除します。

- アプリケーション・ナビゲータで、「IntegratedWebLogicServer」を右クリックして「デフォルト・ドメインの削除」を選択します。

9.11.3 Oracle WebLogic Serverへのデプロイのトラブルシューティング方法

この項では、Oracle WebLogic Serverへのデプロイに固有の問題について説明します。

9.11.3.1 ORA-01005: Nullパスワードが入力されたため、ログオンが拒否されました

通常、これはapplication-name-jdbc.xmlファイルの<encrypted-password>エントリのパスワードが空白になっているか、<encrypted-password>エントリがないことが原因で起こります。

9.11.3.2 ORA-01017: ユーザー名/パスワードが無効です。ログオンは拒否されました。

通常、これはapplication-name-jdbc.xmlファイルの<encrypted-password>エントリのパスワードが間違っていることが原因で起こります。

9.11.3.3 [Oracle JDBC Driver] Kerberos認証がリクエストされたが、Oracleサーバーでサポートされていない

この場合、ログオンが拒否されます。Oracle WebLogic Serverのデータベース・ドライバweblogic.jdbcx.oracle.OracleDataSourceが使用されていることが原因です。このドライバはOracleで認証されていないため、使用しないでください。

9.11.3.4 Oracle WebLogic Server管理コンソールからグローバル・データソースを作成した後でアプリケーションが動作しない

データソースに対してターゲット・ドメインが選択されていることを確認してください。ウィザードの最後のパネルの前に「終了」をクリックした場合は、ターゲット・ドメインが選択されていません。

また、Javaコードに参照が使用されている場合は、Javaネーミング参照コールが正しいことを確認してください。たとえば、接続名がconnection1の場合、ネーミング参照はjava:comp/env/jdbc/connection1DSとなります。

9.11.3.5 停止しているサーバーへのアプリケーションの再デプロイ

停止しているサーバーには、アプリケーションを1回しかデプロイできません。

停止している同じサーバーに同じアプリケーションを再度デプロイしようとすると、デプロイが失敗して次のようなログ・メッセージが表示されます。

[03:29:47 PM] ---- Deployment started. ----
[03:29:47 PM] Target platform is (Weblogic 10.3).
[03:29:47 PM] Retrieving existing application information
[03:29:47 PM] Running dependency analysis...
[03:29:47 PM] Building...
[03:29:50 PM] Deploying 2 profiles...
[03:29:50 PM] Wrote Web Application Module to /path/oracle/jdeveloper/jdev/mywork/Application1/Project1/deploy/webapp1.war
[03:29:50 PM] Wrote Enterprise Application Module to /path/oracle/jdeveloper/jdev/mywork/Application1/application1.ear
[03:29:50 PM] Redeploying Application...
[03:29:50 PM] [Deployer:149034]An exception occurred for task [Deployer:149026]deploy application application1 on Server-1.: [DeploymentService:290049]Deploy failed for id '1,244,759,390,503' since no targets are reachable..
[03:29:50 PM] Weblogic Server Exception: java.lang.Exception: [DeploymentService:290049]Deploy failed for id '1,244,759,390,503' since no targets are reachable.
[03:29:50 PM] See server logs or server console for more details.
[03:29:50 PM] java.lang.Exception: [DeploymentService:290049]Deploy failed for id '1,244,759,390,503' since no targets are reachable.
[03:29:50 PM] #### Deployment incomplete. ####
[03:29:50 PM] Remote deployment failed

9.11.3.6 すでに存在しないサーバーにデプロイしようとした場合

アプリケーションを正常に管理対象サーバーにデプロイすると、デプロイメント・ウィザードによってこのデプロイ操作が履歴に保存されるため、後から同じ操作を実行できます。ただし、管理対象サーバーをOracle WebLogic Serverドメインから削除した場合にデプロイ履歴上の操作を使用して後からデプロイしようとすると、デプロイが失敗して次のようなログ・メッセージが表示されます。

[02:38:40 PM] ---- Deployment started. ----
[02:38:40 PM] Target platform is (Weblogic 10.3).
[02:38:40 PM] Retrieving existing application information
[02:38:40 PM] #### Deployment incomplete. ####
[02:38:40 PM] [J2EE Deployment SPI:260013]Target array passed to DeploymentManager was null or empty.

9.11.3.7 リモート・サーバーへのデプロイがHTTPエラー・コード502で失敗する

JDeveloperにプロキシが設定されている環境で、ネットワークDNSサーバーで認識されていないマシン上で実行されているサーバーにデプロイすると、デプロイが失敗してHTTPエラー・コード502が表示されます。これは、リクエストの転送先がプロキシで認識されていないためです。これは、マシン名によって参照されているlocalhost上のサーバーにデプロイする際にも発生することがあり、一般的にはSOA開発のときに発生します。

これを回避するには、「プリファレンス」ダイアログの「Webブラウザとプロキシ」ページで、プロキシ設定の「例外」リストにマシンを追加するか、接続にHTTPプロキシ・サーバーを使用しないようにします。

9.11.3.8 資格証明マッパーのエントリが見つかりません

次のメッセージが表示された場合は通常、パスワード・インダイレクションを使用するEARに、デプロイ前にMBeanを介してインジェクトされたパスワードがないことを意味します。

weblogic.common.ResourceException: No credential mapper entry found for password indirection user=scott for data source Connection1

これは一般的に、コンソールまたはAntスクリプトから手動でEARをデプロイしようとしたときに発生します。

9.11.4 IBM WebSphereへのデプロイのトラブルシューティング方法

この項では、統合WebLogic ServerとOracle WebLogic Serverのどちらにデプロイするときにも発生する問題に関する情報を提供します。

9.11.4.1 EARに空白が含まれているときデプロイに失敗する

JDeveloperで生成されたEARを含むディレクトリに空白があると、WindowsへのWebSphereのデプロイは機能しません。

9.11.4.2 アプリケーションに管理コンソールのユーザー名が表示される

IBM WebSphereアプリケーション・サーバーにアプリケーションをデプロイし、同じマシンを使用してWebSphere管理コンソールにログインすると、アプリケーションにログインしているユーザーの名前ではなく、管理コンソールにログインしているユーザーの名前がアプリケーションに表示されることがあります。

第III部

Java EEアプリケーションの開発

ここでは、エンタープライズ・アプリケーションの起動、実行および終了に必要なフロントエンドおよびビジネス・テクノロジのすべてを含め、Oracle JDeveloperでJava EEアプリケーションを開発する方法について説明します。この部に含まれる章は次のとおりです。

- 第10章「Java EEアプリケーションの開発の開始」
この章では、Java EEアプリケーションを作成するためにサポートされているテクノロジについて説明します。

- 第11章「Webページ・ツールを使用したアプリケーションの開発」
この章では、HTML、JSF/Facelets、JSP、サーブレット、スクリプティングを使用してWebページや関連ビジネス・コンポーネントを作成するための機能を紹介し、そのためのタスクについて説明します。Webページの開発に使用できる関連ツールやテクノロジについても説明します。

- 第12章「EJBおよびJPAコンポーネントを使用した開発」
この章では、セッションBeanや永続性テクノロジを含めたEJBおよびJPAを使用してビジネス・コンポーネントを作成するための機能を紹介し、その作成方法について説明します。

- 第13章「TopLinkマッピングの開発」
この章では、リレーショナル・データ構造に基づいてオブジェクト指向プログラム上で永続性機能を構築するためのTopLinkテクノロジと、それに関連する手順について説明します。

- 第14章「セキュアなアプリケーションの開発」
この章では、セキュアなアプリケーションの開発、デプロイおよび管理に必要な機能を紹介し、そのための手順について説明します。

- 第15章「XMLを使用したアプリケーションの開発」
この章では、XMLマッピングと構成ファイルのテクノロジを紹介し、XMLファイルの作成と終了についても説明します。

- 第16章「Webサービスの開発および保護」
この章では、既存システムのWebサービスを検出および実装する機能を紹介し、新しいWebサービスをデプロイする手順について説明します。

10 Java EEアプリケーションの開発に関するスタート・ガイド

この章では、アプリケーション開発で使用可能なJava EE機能、およびOracle JDeveloperに用意されている関連するコンポーネント、ツールおよびテクノロジの概要について説明します。

この章では、次の項目について説明します。

- 第10.1項「Java EEアプリケーションの開発について」

- 第10.2項「Webページ・ツールについて」

- 第10.3項「Enterprise JavaBeansおよびJava永続性コンポーネントについて」

- 第10.4項「Oracle TopLinkについて」

- 第10.5項「セキュアなアプリケーションについて」

- 第10.6項「XMLを使用するアプリケーションについて」

- 第10.7項「Webサービスを使用するアプリケーションについて」

10.1 Java EEアプリケーションの開発について

JDeveloperには、Java EE 6アプリケーション・コンポーネントを作成および編集するためのツールと機能の完全なパッケージが用意されています。ソース・エディタとビジュアル・エディタに組み込まれたウィザード、コンポーネント・パレット、プロパティ・インスペクタ、および他の機能を使用して、Web層とビジネス・コンポーネントを作成、アセンブルおよび再利用します。様々なプラットフォーム上で効率的に動作し、簡単に維持できる強力な多層形式のインタラクティブ・アプリケーションを構築、テストおよびデプロイできます。

Java EEの詳細は、次のOracle Technology Network (OTN)のJava EEドキュメントを参照してください。
http://www.oracle.com/technetwork/java/javaee/overview/index.html

10.1.1 Java EEおよびOracle Application Developer Framework

Java EEアプリケーションのWeb層部分については、JavaServer Faces (JSF)で構築されたWebアプリケーションにAJAX対応UIコンポーネントのリッチ・ライブラリを提供するADF Facesリッチ・クライアント・フレームワーク(RCF)を利用します。

ADFレイヤーにより、統一化されたアプローチを使用して、各ユーザー・インタフェースをコード記述なしで任意のビジネス・サービスにバインドできます。Java EEアプリケーションまたはEJBプロジェクト(あるいはその両方)を構築する場合、個々のセッションBeanにADFデータ・コントロールを割り当てることができます。これにより、Beanと同じ名前のデータ・コントロール・ファイルが追加されます。

データ・コントロールには、アプリケーション・モジュールのすべての機能が含まれます。JDeveloperの「データ・コントロール」パネルに表示されたデータ・コントロールの表現を使用して、アプリケーション・モジュールに自動的にバインドされるUIコンポーネントを作成できます。

ADFデータ・コントロールのビジネス層レイヤーを使用してEJBプロジェクトに対するビジネス・サービス・アクセスを実行することにより、ビューとビジネス・サービスの同期を維持できます。たとえば、データ・コントロール参照をアプリケーション・モジュール・インスタンスにクラス・キャストして、メソッドを直接コールすることにより、モデル・レイヤーをバイパスし、アプリケーション・モジュール上でメソッドをコールできますが、この方法では、ビジネス・サービスでは変更が認識されなくなります。

詳細は、『Oracle Fusion Middleware Oracle Application Development Framework Java EE開発者ガイド』を参照してください。

10.2 Webページ・ツールについて

JDeveloperには、Java EEアプリケーションのWeb層またはフロントエンドを開発するための各種ツールが用意されています。すべてのHTMLページ、JSPページ、JavaServer Faces (JSF)/Faceletsページおよび関連ファイルを作成するためのウィザードを使用できます。

また、JDeveloperには、アプリケーションWebページを開発するために使用する多数のタスクに関するWebページ・ツールや段階的指示が用意されています。JSF/Facelets、JavaServer Pages (JSP)、Javaサーブレット、HyperText Markup Language (HTML)およびCascading Style Sheets (CSS)などの、サポートされているすべてのJava EEのWebアプリケーション・テクノロジを使用してWeb層コンポーネントを構築できます。Java EEアプリケーションのWebコンポーネントにはプレゼンテーション・ロジックが含まれており、統合サーバー上で実行されます。

詳細は、第11章「Webページ・ツールを使用したアプリケーションの開発」を参照してください。

10.3 Enterprise JavaBeansおよびJava永続性コンポーネントについて

新規ギャラリのウィザードを使用して、EJBプロジェクト、エンティティ、Java永続性ユニット、セッションBeanおよびメッセージドリブンBeanを作成できます。エンティティは、オンラインまたはオフラインのデータベース表定義から、およびアプリケーション・サーバーのデータソース接続から構築できます。

EJBアプリケーションの使用を即時開始するには、次のようにします。

- ウィザード(「ファイル」→「新規」→「一般」→「アプリケーション」)の使用から開始して、Java EEアプリケーションのフレームワークを作成します。

- ウィザードを使用して、データベース表に相当するエンティティを作成します(「ファイル」→「新規」→「ビジネス層」→「EJB」)。

- ウィザードを使用して、セッションBeanおよびファサードを作成し、永続性ユニットを構築します。(「ファイル」→「新規」→「ビジネス層」→「EJB」)。Oracle ADFには、データ・コントロールを有効にするためのコンポーネントが用意されています(「ファイル」→「新規」→「ビジネス層」→「ADF Business Components」)。

- JDeveloperの統合サーバー機能を使用して、アプリケーションをテストします。実行およびテストの詳細は、第7章の「アプリケーションの実行」を参照してください。

EJBの詳細は、第12章「EJBおよびJPAコンポーネントを使用した開発」を参照してください。

10.4 Oracle TopLinkについて

Oracle TopLinkは、オブジェクト永続性およびオブジェクト変換フレームワークであり、開発とメンテナンスの作業を削減し、エンタープライズ・アプリケーションの機能性を高める開発ツールおよびランタイム機能を提供します。

TopLinkを使用して、TopLinkディスクリプタを構成し、Javaクラス、EJBおよびJPAエンティティをリレーショナル・データベース、企業情報システム(EIS)およびXMLスキーマなど別のデータソースにマップします。TopLinkエディタを使用すると、Javaコードを作成せずにこの情報を作成できます。TopLinkエディタでは、JPA、JAXBおよびJava EEなど複数の標準がサポートされています。

詳細は、第13章「TopLinkマッピングの開発」を参照してください。

10.5 セキュアなアプリケーションについて

Java EEアプリケーションは、コンテナ管理セキュリティのみを使用して保護できます。Fusion Webアプリケーションの場合は、Oracle ADFセキュリティを使用します。Fusion Webアプリケーションは、Oracle Application Development Framework (Oracle ADF)を使用して開発するJava EEアプリケーションです。

Oracle ADFセキュリティ・フレームワークは、認証および認可サービスをFusion Webアプリケーションに提供するための推奨テクノロジです。Oracle ADFセキュリティはOracle Platform Security Services (OPSS)アーキテクチャの上に構築されます。このアーキテクチャは、重要なセキュリティ・フレームワークを提供するだけでなく、それ自体もOracle WebLogic Serverと十分に統合されています。

詳細は、第14章「セキュアなアプリケーションの開発」を参照してください。

10.6 XMLを使用するアプリケーションについて

JDeveloperには、アプリケーション内でXMLファイルを使用するために必要なツールが用意されています。XMLソース・エディタ、XMLバリデータ、およびXMLスキーマを使用するためのツールがあります。また、JDeveloperを使用してXSQLファイルを作成および編集することもできます。

JDeveloperでは、スキーマ・ドキュメントを最初から作成したり、スキーマをXMLドキュメントから(またはこの逆に)生成できます。スキーマを作成したら、XSDビジュアル・エディタおよびコンポーネント・パレットを使用して要素を管理します。

詳細は、第15章「XMLを使用したアプリケーションの開発」を参照してください。

10.7 Webサービスを使用するアプリケーションについて

JDeveloperのWebサービスには、オープン・スタンダードを使用してインターネット上でビジネス機能を公開するためのメッセージ・プロトコルとプログラミング規格のセットが用意されています。Webサービスは、プログラムによってインターネット上でアクセスされ、レスポンスを戻す、再利用可能な独立したソフトウェア・コンポーネントです。JDeveloperには、既存のWebサービスの検出と使用、および新規Webサービスの開発とデプロイに役立つツールが提供されています。

JDeveloperは、一連の標準的なJava-to-XMLタイプのマッピングもサポートしています。自動サポートの対象とならないオブジェクト型向けのカスタム・シリアライザを作成することもできます。詳細は、第16.2項「JDeveloperを使用したWebサービスの作成および使用」を参照してください。

Webサービスは、Javaクラス、EJBのリモート・インタフェース、およびEJBとしてラップされたADF Business Componentsサービス・セッションBeanから作成できます。Webサービス作成ウィザードではデプロイメント・ファイルが作成されるため、Webサービスの作成後、最後のステップではこれをアプリケーション・サーバーにデプロイします。詳細は、第16.5項「SOAP Webサービスの作成(ボトムアップ)」を参照してください。

また、Webサービスは、WSDLから始めてトップ・ダウンWebサービスとして作成できます。詳細は、第16.6項「WSDLからのSOAP Webサービスの作成(トップダウン)」を参照してください。

最後に、Representational State Transfer (REST)に基づくWebサービスを開発できます。RESTful Webサービスは、SOAPなどの追加メッセージング・レイヤーなしで、標準化されたインタフェース(HTTPなど)を介してデータを送信する単純なインタフェースです。詳細は、第16.7項「RESTful Webサービスの作成」を参照してください。

11 Webページ・ツールを使用したアプリケーションの開発

この章では、Oracle JDeveloperに含まれる最新のツールとテクノロジを利用してHTML、JSPおよびJSF/Faceletsを使用してJava EEアプリケーションのユーザー・インタフェースおよびビジネス・サービスを構築する方法について説明します。

この章では、次の項目について説明します。

- 第11.1項「Webページ・ツールを使用したアプリケーションの開発について」

- 第11.2項「JavaServer Facesを使用したアプリケーションの開発」

- 第11.3項「HTMLページを使用したアプリケーションの開発」

- 第11.4項「Java Server Pagesの使用」

- 第11.5項「Javaサーブレットを使用したアプリケーションの開発」

- 第11.6項「スクリプト言語を使用したアプリケーションの開発」

- 第11.7項「JSPおよびFaceletsタグ・ライブラリの使用」

11.1 Webページ・ツールを使用したアプリケーションの開発について

Oracle JDeveloperには、Java EEアプリケーションのフロントエンドまたはビュー・レイヤーを開発するための各種ツールが用意されています。すべてのHTMLページ、JSPページ、JSF/Faceletsページおよび関連ファイルを作成するための便利なウィザードもあります。ウィザードを使用してWebページを作成すると、構成ファイル、Beanマッピング、タグ・ライブラリおよびJARファイルが自動的に設定され、編集可能になります。

Webツールの中心には、ソース・エディタやビジュアル・エディタの他、ページとページ内の要素および関連プロパティ(ビジネス・サービスやローカライゼーション・コンポーネントを含む)を追加したり編集するために統合されたコンポーネント・ツールおよびプロパティ・ツールがあります。スタイルシートとタグ・ライブラリを作成および変更したり、コード・インサイトのコードとタグの補完ツールを使用してHTML、JSPおよびJSF/FaceletsまたはJavaソース・ファイルを効率的にコーディングできます。

この章では、Webページ・ツールについて説明するとともに、アプリケーションのWebページを開発するために使用する多くのタスクについて段階的に説明します。

11.1.1 ソース・エディタの機能について

ソース・エディタは、ほとんどのWebページを対象とした基本的なコード・エディタです。ソース・エディタを使用して、非ビジュアル・コンポーネントおよびカスタム・コーディングを追加します。また、ソース・エディタとともにビジュアル・エディタを使用すると、コンポーネントに接続し、ページを視覚的に変更できます。ソース・エディタを使用する場合、コーディング・タスクをより迅速かつ簡単にするための機能が多数用意されています。図11-3は、JSFページ用のソース・エディタを示しています。

図11-1 一般的なJSFコードが表示されたソース・エディタ

表11-1に、ソース・エディタの主な機能をリストします。

表11-1 ソース・エディタの主な機能

機能

説明

タグのクイック・ドキュメント

コーディング中にタグ定義を表示します。タグ上にカーソルを置いて[Ctrl]+[D]を押します。タグ定義の詳細が表示された小さいウィンドウがエディタの上部に表示されます。エディタで「戻る」をクリックすると、ウィンドウが閉じます。また、右クリックして「クイックTagDoc」を選択することもできます。

コード・テンプレート

コードを手動で入力するのではなく、事前に作成されたコードをソース・ファイルに挿入することにより、時間を節約します。テンプレートでは、挿入したコードが前後のコードに合せて適切に変更されます。ショートカットを使用すると、必要なテンプレートをより迅速に選択できます。

テンプレートの詳細は、第3.8.3項「ソース・エディタのコード・テンプレートをカスタマイズする方法」を参照してください。

コード・インサイト

要素オプションとパラメータ・オプションを表示およびフィルタし、コード補完を取得します。ソース・エディタには、タグ、属性名と属性値、および埋込みCSSおよびJavaScriptコード用のコード・インサイトが用意されています。

マネージドBeanへのジャンプ

WebページのソースからマネージドBeanのコードに迅速にジャンプします。ソース・エディタまたは「構造」ウィンドウで右クリックして「移動先」を選択し、このページから参照されるすべてのBeanのリストから選択肢を選択します。

エディタの分割

スプリッタを使用してコード表示とビジュアル表示を切り替えます。ファイルを水平方向に分割するには、垂直スクロール・バーのすぐ上(ウィンドウの右上隅)でスプリッタをクリックし、下にドラッグします。ファイルを垂直方向に分割するには、水平スクロール・バーのすぐ右(ウィンドウの右下隅)でスプリッタをクリックし、左にドラッグします。

11.1.2 ビジュアル編集環境での作業方法

JSP/HTMLビジュアル・エディタは、JSP、JSF、FaceletsおよびHTMLページを含むすべてのWebページをWYSIWYG編集するために使用できます。ビジュアル・エディタは、図11-2に示すように、コンポーネントをページにドラッグ・アンド・ドロップできるコンポーネント・パレットとともに表示されます。

ビジュアル・エディタを使用して、次のタスクを実行します。

- ビジュアルおよび非ビジュアルなページ要素の挿入。

- Cascading Style Sheetの適用およびテキスト・スタイルの変更。

- ページ要素の移動およびサイズ変更。

- 表およびフォームの設計。

- Webページ要素属性の変更。

- モバイル対応JSPドキュメントの参照デバイスの選択。

図11-2 一般的なJSFページが表示されたビジュアル・エディタ

JavaScript要素などの動的コンテンツを除き、ビジュアル・エディタにはすべてのWebページ要素がビジュアルに表示されるか、または構造的に表現されます。JSTLなどのJSPタグやBC4Jタグは、アイコン名とタグ名を使用してビジュアルにビジュアル・エディタに表示されます。一方、HTMLテンプレートのコンテンツはブラウザでの見た目どおりにレンダリングされます。画面を前後に切り替えたり分割することにより、デザイン時にソース・エディタを表示できます。

ビジュアル・エディタは、Javaソース・エディタ、「構造」ウィンドウ、コンポーネント・パレット、プロパティ・インスペクタおよびデータ・バインディング・パレットと統合されており、単純なドラッグ・アンド・ドロップ操作を使用した、データバインドWebページのアセンブリをサポートしています。各種ツール間で移動することにより、全般的に反映された変更を即座に表示または編集できます。

ビジュアル・エディタの主な機能は、次のとおりです。

- ファイルをビジュアル・エディタで開くと、Webブラウザと同様に、ページはHTMLでレンダリングされ、Webフォーマットに関連付けられます。編集結果は即座に表示されます。

- ビジュアル・エディタ・ウィンドウの下部に表示されるブレッドクラムを使用して、ネストしたコンポーネントを時系列で表示し、選択します。ページの要素を選択すると、プロパティ・インスペクタで要素の属性が開き、編集可能になります。

- 「構造」ウィンドウでデータの構造を表示します。構造内のダイアグラム、ナビゲータ、エディタとビューア、およびプロパティ・インスペクタのウィンドウのうちアクティブなウィンドウ内で現在選択されているドキュメント内のデータを表示できます。詳細は、第3.11.6項「「構造」ウィンドウ」を参照してください。

- コンポーネント・パレットのタグ・ライブラリ・ページには、状況に応じてページに挿入可能なコンポーネントが表示されます。

- ビジュアル・エディタ内の任意の場所を右クリックすると、コマンドのポップアップ・メニューが表示されます。

ビジュアル・エディタのウィンドウの上部にツールバーがあり、このツールバーには、Webページ上のフォントおよびパラグラフをフォーマット設定するための一般的なツールバー・アイコンが含まれます。また、図11-3に示すように、「現在のモニター解像度と一致させる」ドロップダウン・ツールを使用してビジュアル・エディタのウィンドウを目的の解像度に設定することもできます。

図11-3 「現在のモニター解像度と一致させる」ツール

「現在のモニター解像度と一致させる」ドロップダウン・リストを使用して、ビジュアル・エディタ・ウィンドウでより大きいまたはより小さいページ・ピクチャを選択します。モニター解像度を変更しても、実際のページ・サイズやブラウザ・サイズには影響せず、この編集ウィンドウ内の表示サイズのみが変更されます。デフォルトでは、ビジュアル・エディタ・ウィンドウは、使用しているモニターと同じ解像度でプレビューするよう設定されています。ビジュアル・エディタの現在のサイズに合うよう設定することもできます。

表11-2に示すように、別の編集ツールや編集機能も用意されています。

表11-2 ビジュアル・エディタのツールバー・アイコン機能

アイコン

名前

説明

リフレッシュ

2種類のリフレッシュのタイプから選択できます。「リフレッシュ」ボタンのドロップダウン・メニューを使用します。

「ページのリフレッシュ」は、ページの内部データ構造を再構築し、再度レンダリングします。このツールはインクルードされたページ(ページ・テンプレートなど)が変更され、このインクルードされたページでの効果を確認したい場合に使用します。

「完全リフレッシュ」を使用して、ページ・プロジェクトの内部デザインタイムを完全に再起動します。このとき、web.xmlのサーブレット・コンテキストとタグ・ライブラリが、またFacesプロジェクトの場合はfaces-config.xmlからのFacesコンテキストが再構築されます。「完全リフレッシュ」によって、アクティブなページの内部データ構造が再構築され、再度レンダリングされます。

コンポーネント・ステータスの表示

- コンポーネントのアクションおよびステータスに関するオプションを選択する場合に、このドロップダウン・リストを使用します。

- デフォルトの「コンポーネント・アクション」を選択すると、現在フォーカスが置かれているコンポーネントに対して矢印が表示されます。

- この矢印をクリックすると、そのコンポーネントに対して実行可能なアクション(非表示、再バインド、ページ定義への移動など)のリストが表示されます。

- コンポーネントを「警告」、「不完全」または「エラー」の各ステータスとしてマークすることを選択する場合に使用します。また、テキスト・リソースと式ビルダーの値を様々なフォームに表示したり、コンポーネント上にまったく表示しないようにすることもできます。

- EL式レンダリングの場合、「ユーザーフレンドリ値表示(バインド解決)」を選択すると、式が表示のために自動的に解決されます。デフォルトでは、これが選択されます。解決されない値は、「データ表示スタイルのフォールバック」のプリファレンスに応じてレンダリングされます。

- 式を省略する、式を表示しない、または表示のみを目的としてページにダミー・データを移入することを選択できます。また、完全な式を表示することも選択できます。

ブラウザでプレビュー

Webページがデフォルトのブラウザでどのように表示されるかを確認できます。アイコンをクリックするか、[Shift]キーを押しながら[F10]キーを押して[V]キーを選択します。

表11-3に、Webページの編集時に簡単なキーストローク・コマンドで使用可能な機能を示します。

表11-3 ビジュアル・エディタの主なコマンド機能

機能

説明

行コメントの設定

選択したブロックの各行の先頭にあるコメント・マーカーを追加または削除します。単一行を選択してこの行のみをコメント化または非コメント化します。

ブレッドクラム

ビジュアル・エディタ・ウィンドウの下部に表示されるブレッドクラムを使用して、ネストしたコンポーネントを時系列で表示し、選択します。

コンポーネントの選択

カーソルをページのコンポーネント上に置くと、このコンポーネントのアウトラインがオレンジでハイライト表示されます。

コンテナの編集

「構造」ウィンドウまたはビジュアル・エディタ・ウィンドウで、コンテナを選択します。コンテナを右クリックして、「このコンテナの設計」を選択します。このコンテナは編集するウィンドウで選択されます。この機能を使用すると、選択したコンテナ内の個々のコンポーネントの表示と編集が簡単になります。

ビジュアルEL式の表示プリファレンス

表示のために式を解決するかどうか、および解決されない式の表示方法を選択します。「表示」ツールバー機能を選択してELレンダリングのプリファレンスを選択します。または、「ツール」→「プリファレンス」→「JSP/HTMLビジュアル・エディタ」を選択することもできます。

式ビルダーとテキスト・ポップアップ

コンポーネントを選択します。ゆっくりダブルクリックするか、または[F1]を押してポップアップ・ウィンドウを表示します。この値フィールドで式またはテキストを編集します。

対応する要素の表示

ページ要素が「構造」ウィンドウに階層状に表示されます。「構造」ウィンドウでノードをダブルクリックすると、フォーカスが「プロパティ・インスペクタ」に移ります。

ビジュアル・エディタとコード・エディタの分割

ビジュアル・エディタとソース・エディタを使用してファイルを同時に編集します。同時に編集するには、2つのエディタの一方でページを開き、分割線を使用して他方のエディタでもう1つのページ・ビューを開きます。

ファイルを水平方向に分割するには、垂直スクロール・バーのすぐ上(ウィンドウの右上隅)でスプリッタをクリックし、下にドラッグします。

ファイルを垂直方向に分割するには、水平スクロール・バーのすぐ右(ウィンドウの右下隅)でスプリッタをクリックし、左にドラッグします。

簡易編集フォーカス

デフォルトでは、新しいJSPページまたはHTMLページはフォーカスのあるビジュアル・エディタで開かれます。「アプリケーション・ナビゲータ」でノードをダブルクリックすると、デフォルトのエディタが開かれるか、前面に表示されます。

現在作業しているファイルに対応するノードをアプリケーション・ナビゲータで検索するには、右クリックして「ナビゲータ内で選択」を選択します。または、キーボード・ショートカット(デフォルトのキーマップでは[Alt]+[Home])を使用します。

タグ表示

ボディ・コンテンツが埋め込まれたタグのスコープは、影付きの四角形で囲まれたタグのアイコンと名前によって構造的に表現されます。タグ・コンテナはネストされて(構造的に)表示され、たとえば表内の繰り返し行などを表します。タグをクリックするとカーソルが現れ、タグ・コンテナにコンテンツを入力できます。

HTML/JSPファイルからCSSファイルへのCSSコードの抽出

HTML/JSPファイルから新規CSSファイルにCSSブロックを抽出すると、すべての参照が自動的に更新されます。このオプションは、コード・エディタおよび「構造」ウィンドウから使用できます。

HTMLファイルにリンクしたスタイルシート

<style>または<link>タグをコンポーネント・パレットの共通タブからHTMLページにドロップするだけで、スタイルシートをHTMLファイルにリンクできます。

モバイル・デバイスの表示

モバイル対応JSPドキュメントの場合、選択したデバイス・カテゴリのビュー・ポートが設計ビューでエミュレートされます。ツールバーには、デバイス・カテゴリ・アイコンが参照デバイス・ドロップダウン・リストとともに表示されます。

11.1.2.1 コンテナ要素の展開および縮小方法

ビジュアル・エディタまたは「構造」ウィンドウでの作業中に使用できるもう1つの機能は、他の要素を含むかネストしているJSPおよびHTMLページ要素を展開または縮小できる機能です。これを行うには、マイナス(-)およびプラス(+)記号を使用して親のコンテナ要素を展開および縮小します。

たとえば、JSPコンテナ・タグはビジュアル・エディタではネストされた長方形として表示されます。<c:when>タグと<c:otherwise>タグを含むJSP<c:choose>タグを展開すると、図11-4のように表示されます。

「構造」ウィンドウでは、たとえば複数の行からなるHTML表を縮小すると、図11-5のように表示されます。

図11-4 ネストされた長方形内のコンテナ・タグ

図11-5 縮小されたHTML表

コンテナ要素を縮小するには、次のようにします。

次のいずれか1つを実行します。

- コンテナ要素のプラス(+)記号をクリックします。

- コンテナ要素を右クリックし、ポップアップ・メニューから「タグを拡張」を選択します。

11.1.2.2 ビジュアル・エディタ環境のカスタマイズ方法

ビジュアル・エディタで、デフォルトの環境設定をカスタマイズできる内容は次のとおりです。

- テキストの前景色/背景色、要素/タグの輪郭色、およびカレットの色

- ビジュアル・エディタと「構造」ウィンドウまたはソース・エディタの同期化

- エラーと警告の表示

- タグ名の表示

ビジュアル・エディタの一般環境設定を変更するには、次のようにします。

1. メイン・メニューから、「ツール」→「プリファレンス」を選択します。

2. 「設定」ダイアログで、「JSP/HTMLビジュアル・エディタ」ノードを選択します。

3. オプションを選択し、フィールドを希望する内容に設定します。

4. 「OK」をクリックします。

11.1.2.3 非表示要素の表示方法

次にあげる非表示要素の表示方法をカスタマイズできます。

- HTML名前付きアンカー、スクリプト・タグおよび改行

- JSPタグ・ライブラリ・ディレクティブおよびBeanタグ

ビジュアル・エディタでの非表示要素の表示方法を変更するには、次のようにします。

1. メイン・メニューから、「ツール」→「プリファレンス」を選択します。

2. 「プリファレンス」ダイアログで、「JSP/HTMLビジュアル・エディタ」ノードを開いて「非表示要素」ページを選択します。

3. オプションを選択し、「OK」をクリックします。プリファレンスを設定した後、ビジュアル・エディタでの作業中に非表示要素の表示を切り替えるには、メイン・メニューに移動して「設計」→「表示」を選択し、「非表示HTML要素」または「非表示JSP要素」を選択します。

11.1.2.4 JSPビジュアル・エディタでのJSPタグの実行方法

ランタイム視覚化のより正確な状態を確認するには、設計時のページ・コンテキストで使用可能なシミュレートされたJSP/サーブレット・コンテナでタグ・ライブラリを実行します。

JSPタグ・ライブラリが設計時に実行されるように設定するには、次のようにします。

1. メイン・メニューから「ツール」→「ライブラリの管理」を選択します。

2. 「ライブラリの管理」ダイアログの「JSPタグ・ライブラリ」を選択します。

3. タグを選択し、「JSPビジュアル・エディタでのタグの実行」を選択します。

4. 「OK」をクリックします。

特定のプロジェクトに対してこのオプションを設定するには、次のようにします。

1. アプリケーション・ナビゲータで、プロジェクトをダブルクリックします。

2. 「JSPタグ・ライブラリ」を選択します。

3. 「JSPビジュアル・エディタでのタグの実行」を選択します。

11.1.2.5 JSPタグの名前のみでの表示方法

JSPタグを名前のみで表示するには、埋め込まれたEL構文を省略します。このオプションを選択すると、たとえば、<c:out value="$\{Row.Deptno\}"></c:out>は$\{Row.Deptno\}ではなく単純にoutと表示されます。

JSPタグを名前のみで表示するには、次のようにします。

1. メイン・メニューから、「ツール」→「プリファレンス」を選択します。

2. 「JSP/HTMLビジュアル・エディタ」を選択します。

3. 「JSPタグ名のみ表示」チェック・ボックスを選択します。このチェック・ボックスは、デフォルトでは選択が解除されています。

11.1.2.6 キーボードのプリファレンスの変更方法

JDeveloperのキーボードまたはマウスを使用して、任意の開発タスクにナビゲートできます。デフォルトのキーマップをカスタマイズし、さらにそれぞれのキーマップで、アクセラレータの割当てを指定することもできます。

キーマップ・アクセラレータをカスタマイズするには、次のようにします。

1. メイン・メニューから、「ツール」→「プリファレンス」を選択します。

2. 「プリファレンス」ダイアログで、「アクセラレータ」を選択します。

3. 初期設定キーマップを選択し、アクセラレータに変更を加えます。

4. 「OK」をクリックします。

11.1.2.7 Webページ要素の選択方法

管理対象の単独の要素の選択、表などの子要素も含むコンテナ要素の選択、または複数の要素の選択が可能です。選択内容は点線で囲まれます。構造ウィンドウでは、選択した要素はハイライト表示されます。

要素を選択するには、次のようにします。

1. ビジュアル・エディタまたは「構造」ウィンドウで、要素上にポインタ・カーソルを置きます。

2. 要素をクリックします。子要素のある要素を選択すると、子要素もすべて選択されます。コンテナ要素をコピー、移動または削除すると、子要素も一緒にコピー、移動または削除されます。
または

要素を右クリックします。要素を右クリックして選択すると、ポップアップ・メニューにオプションが表示されます。たとえば、ページの「ソース」ビューで要素に対応するコードを選択するには、要素を右クリックして「ソースへ移動」を選択します。

注意:

要素をダブルクリックすると、そのタグ用のエディタ・ダイアログが表示されます。

テキストを選択するには、次のようにします。

ビジュアル・エディタで開いているWebページで、次のいずれかの操作を行います。

- ダブルクリックして単語を選択します。

- 単語を3回クリックし、その単語を含むテキスト文字列全体を選択します。

- 希望するテキスト範囲をカーソルでドラッグして選択します。

- 選択の開始地点をクリックして終了地点までスクロールし、[Shift]を押しながら終了地点をクリックします。

複数の要素を選択するには、次のようにします。

1. ビジュアル・エディタまたは「構造」ウィンドウで、開いているWebページの要素上にポインタ・カーソルを置きます。

2. 最初の要素をクリックします。

3. [Ctrl]キーを押したままの状態にします。

4. その他の要素をクリックします。他の要素を選択したままで1つの要素のみを選択解除するには、[Ctrl]キーを押したまま選択解除する要素を再度クリックします。削除以外の目的で隣接しない複数の要素を選択した場合、予想外の結果になることがあります。たとえばWeb階層の異なるレベルにある要素を選択し、ページ内の別の場所に移動またはコピーした場合、要素間の相対的な位置関係が失われることがあります。

隣接する要素をまとめて選択するには、次のようにします。

1. ビジュアル・エディタまたは「構造」ウィンドウで、最初の要素上にポインタ・カーソルを置きます。

2. 要素をクリックします。

3. 選択範囲の最後までスクロールし、[Shift]を押しながらクリックします。

ヒント:

JSPタグ・ライブラリでは、ある要素上にマウス・ポインタを動かすとタグ名がツールチップに表示され、要素を選択する際にクリックする場所の目印となります。

別の要素に含まれる要素のコンテナ要素を選択するには、[Ctrl]、[Shift]および[↑]を同時に押します。同じ操作を実行し、ターゲットに到達するまでネストされたコンテナを移動します。たとえば、テキストにリンクを追加する場合、リンク・ターゲットに移動するためには、[Ctrl]、[Shift]および[↑]を2回押す必要があります。

ビジュアル・エディタで選択した要素は構造ウィンドウでも選択され、その逆も同様です。選択している要素と挿入ポイントを両方のツールで確認できます。

11.1.2.8 設計ツールでの挿入ポイントの選択方法

ページ要素を挿入、コピーまたは移動する際は、ビジュアル・エディタまたは「構造」ウィンドウで、ターゲットとなるページ要素を基準にページ上の挿入ポイントを選択します。JDeveloperには、ターゲット要素の前、後あるいは内部に含まれる挿入ポイントを探す視覚的な合図があります。

ビジュアル・エディタで挿入ポイントを選択するには、次のようにします。

- JSPまたはHTML要素を挿入ポイントまでドラッグする場合は、希望する位置に縦線(|)が表示されるまでドラッグしてからマウスのボタンを放します。

- クリックして挿入ポイントを選択する場合は、次のどちらかの操作を行います。

- ページ上の希望する場所を選択します。選択した位置にはカーソルが点滅して表示されます。

- 挿入する要素を含むコンテナとなる要素を選択します。コンテナ要素が点線で表示されます。

注意:

要素を選択した状態でクリップボードから別の要素をコピーすると、選択されていた要素は新しい要素で置き換えられます。

構造ウィンドウで挿入ポイントを選択するには、次のようにします。

Webページ要素を挿入ポイントにドラッグする場合は、次のいずれかの操作を行います。

- ターゲット要素の前に挿入する場合は、その要素の上部にドラッグし、中央に上向きの矢印のある横線が表示された後、マウスのボタンを放します。

- ターゲット要素の後ろに挿入する場合は、その要素の下部にドラッグし、中央に下向きの矢印のある横線が表示された後、マウスのボタンを放します。

- 挿入する要素がターゲット要素に含まれるようにするには、要素の上にドラッグし、要素がボックスで囲まれた時点でマウスのボタンを放します。挿入する要素をターゲット要素に含めることができない場合、その要素はターゲット要素の後に挿入されます。

クリックしてターゲット位置を選択する場合には、ターゲット要素を選択します。

注意:

ドラッグ中にカーソルが通行止め(円に斜めの線)の記号に変わる場所には、要素を挿入できません。

11.1.2.9 Webページ要素の挿入方法

UIおよびデータ要素をWebページに追加するには、コンポーネント・パレットを使用します。ページ要素は、ビジュアル・エディタまたは「構造」ウィンドウで挿入できます。挿入ポイントを選択すると、もう一方のエディタでも選択されるため、挿入位置を視覚的にも階層的にも確認できます。

詳細は、第11.1.4項「コンポーネント・パレットの使用方法」を参照してください。

ページ要素を挿入するには、次のようにします。

1. ページを開いた状態で、ドロップダウン・リストからコンポーネント・パレットのパッケージまたはページを選択します。コンポーネント・パレットの内容は状況に応じて変化し、アクティブなファイルに関連するオプションのみが表示されます。

2. 次のいずれか1つを実行します。

- ビジュアル・エディタまたは「構造」ウィンドウで、ページのどの場所に要素を配置するか(挿入ポイント)を選択し、パレットで要素をクリックします。

- 要素をパレットからページ上の目的の挿入ポイントまでドラッグします。

3. 要素のタイプによっては挿入ダイアログが表示され、ファイルの選択や挿入、またはタグ属性の入力を求められます。

ページ要素を挿入すると、その要素に対するソース・コードが自動的に生成されます。要素を削除すると、コード内の該当する行も削除されます。

11.1.2.10 Webページ要素のプロパティの設定および変更方法

プロパティ・インスペクタには、ビジュアル・エディタまたは「構造」ウィンドウで選択されているWebページ要素のプロパティが表示されます。プロパティ・インスペクタでは、Webページ内の要素に対するプロパティを設定または変更します。設定済のプロパティ値には緑色のボックスが表示されます。変更を元に戻すには、メイン・メニューから「編集」→「操作を戻す」を選択します。デフォルト値のあるプロパティをデフォルトにリセットするには、「デフォルトに設定」ボタンを使用します。

詳細は、第11.1.3項「プロパティ・インスペクタの使用方法」を参照してください。

要素のプロパティを設定するには、次のようにします。

1. Webページが開いた状態で、ビジュアル・エディタまたは「構造」ウィンドウで要素を選択します。選択した要素のプロパティ値が「プロパティ・インスペクタ」に表示されます。プロパティ・インスペクタが表示されていない場合は、「表示」→「プロパティ・インスペクタ」を選択するか、ショートカット([Ctrl]+[Shift]+[I])を使用します。

2. 設定するプロパティが表示されるまでスクロールし、マウスまたは矢印キーでそれを選択します。プロパティ・インスペクタの下部にプロパティの簡単な説明が表示されます。

注意:

プロパティ・インスペクタの上部にある「検索」ボックスを使用してプロパティを検索することもできます。

3. 右側の列に、次のいずれかの方法でプロパティ値を入力します。

- テキスト・フィールドには、そのプロパティに対する文字列値(テキスト値や数値など)を入力し、[Enter]を押します。

- 値フィールドに下向きの矢印が表示されている場合、矢印をクリックし、リストから値を選択して[Enter]を押します。

- 値フィールドに省略記号(...)が表示されている場合、これをクリックしてそのプロパティ用のエディタ(色またはフォント選択ダイアログなど)を表示します。プロパティ・エディタで値を設定し、「OK」をクリックします。

要素のプロパティを設定または変更するためのエディタを表示するには、次のようにします。

- 要素をダブルクリックします。

11.1.2.11 プロパティのデータソースの設定方法

データ・コントロール・パレットでデータバインドされたUIコンポーネントを作成するかわりに、ビジュアル・エディタで表示するUIコンポーネントにADFバインディングを設定できます。

プロパティ・インスペクタでは、要素プロパティのデータソースを設定または削除します。「値バインディング」ダイアログで、オブジェクトで定義されるデータソース、またはEL式に指定するアプリケーションのADFバインディング・コンテキストを選択できます。ADFバインディングをデータソースとして指定するには、事前にバインディングを作成しておく必要があります。

要素のプロパティをデータ・バインドするには、次のようにします。

1. JSPページが開いた状態で、ビジュアル・エディタまたは「構造」ウィンドウで要素を選択します。

2. データソースを指定するプロパティが表示されるまでスクロールし、マウスまたは矢印キーで選択します。

3. 「データにバインド」ボタンをクリックします。プロパティ値のフィールドにEL式が表示され、省略記号ボタンが使用できるようになります。

4. 省略記号(...)ボタンをクリックして「値バインディング」ダイアログを表示し、データソースを選択します。

5. 「OK」をクリックします。

ヒント:

JSP要素のプロパティからデータソースを削除するには、「データにバインド」ボタンの選択を解除します。

11.1.2.12 複数の要素のプロパティの設定方法

複数の要素を選択している場合、デフォルトでは選択中の要素のプロパティがすべてプロパティ・インスペクタに表示されます。プロパティ・インスペクタ・ツールバーの「統合して表示」をクリックすると、選択した複数の要素のプロパティをすべて表示するか(統合)、選択した要素に共通のプロパティのみを表示するか(共通部分)を切り替えられます。イタリック・フォントで表示されている値は、共通のプロパティに異なる値が設定されていることを示します。

複数の要素にプロパティを設定するには、次のようにします。

次のいずれか1つを実行します。

- [Ctrl]キーを押しながら各要素を選択します。

- プロパティ・インスペクタで表示されるプロパティのリストを変更するには、プロパティ・インスペクタ・ツールバーの「統合して表示」ボタンをクリックします。

- プロパティ・インスペクタで、必要なプロパティを選択して編集します。値がイタリック・フォントで表示されている場合、選択中の要素によって値が異なります。共有プロパティの値を編集すると、選択したすべての要素が同じ値になります。

11.1.2.13 要素を管理するための基本コマンドの使用方法

ビジュアル・エディタまたは「構造」ウィンドウでWebページ要素の切取り、コピーおよび貼付けを行います。これらの操作を、同じプロジェクトまたは異なるプロジェクトのファイル間で実行できます。

1つ以上の要素を切り取るには、次のようにします。

1. ビジュアル・エディタまたは「構造」ウィンドウで、切り取るページ要素を選択します。

2. [Ctrl]を押しながら[X]を押します。右クリックして「切取り」を選択します。メイン・メニューから、「編集」→「切取り」を選択することもできます。
要素はエディタから削除され、(システム・クリップボードではなく)JDeveloperからのみアクセス可能なローカル・クリップボードに置かれます。要素を貼り付けずにJDeveloperを終了した場合、切り取った要素は失われます。

切取りコマンドは、切取り/貼付け操作の最初のステップです。要素を削除することもできます。要素を削除すると、クリップボードの内容は変更されずに要素が削除されます。

Webページ要素を削除するには、次のようにします。

1. ビジュアル・エディタまたは「構造」ウィンドウで、削除するページ要素を1つ以上選択します。

2. [Del]または[Back Space]を押します。右クリックして「削除」を選択することも、メイン・メニューから「編集」→「削除」を選択することもできます。選択した要素に組み込まれた要素がある場合、その要素を削除すると組み込まれている要素もすべて削除されます。

1つ以上の要素をコピーするには、次のようにします。

1. ビジュアル・エディタまたは「構造」ウィンドウで、コピーするページ要素を選択します。

2. [Ctrl]を押しながら[C]を押します。右クリックして「コピー」を選択することも、メイン・メニューから「編集」→「コピー」を選択することもできます。
ビジュアル・エディタでは、次の方法でもコピーできます。

- 要素を右クリックして挿入ポイントまでドラッグし、マウスを放してポップアップ・メニューから「ここにコピー」を選択します。

- [Ctrl]を押しながら選択した要素のコピーをページ上の挿入ポイントまでドラッグします。

要素を貼り付けるには、次のようにします。

1. ビジュアル・エディタまたは「構造」ウィンドウで要素を貼り付けるファイルを選択します。

2. 要素を貼り付ける挿入ポイントを選択します。

3. [Ctrl]を押しながら[V]を押します。また、右クリックして「貼付け」を選択するか、「編集」→「貼付け」を選択することもできます。

Webページ要素を移動するには、次のようにします。

1. ビジュアル・エディタまたは構造ウィンドウで、元の位置から挿入ポイントまで要素をドラッグします。

2. ビジュアル・エディタまたは「構造」ウィンドウで、元の位置から挿入ポイントまで要素を右クリックでドラッグし、ポップアップ・メニューから「ここに移動」を選択します。

HTMLページ要素のサイズを変更するには、次のようにします。

1. プロパティ・インスペクタでスタイル・サイズに移動し、サイズのプリファレンスを選択するか、ページの100パーセント幅であるデフォルトに戻ります。

2. 要素をダブルクリックし、エディタ・ダイアログでサイズのプロパティを設定し、「OK」をクリックします。また、要素を右クリックして「タグの編集」を選択し、エディタ・ダイアログでサイズのプロパティを設定して「OK」をクリックするか、要素を選択し、プロパティ・インスペクタでサイズのプロパティを設定することもできます。

11.1.2.14 データ表の使用方法

JSFアプリケーションでは、dataTableタグを使用してデータ表を表示します。データ表の作成ウィザードを使用して、JSFページにタグを挿入します。このウィザードでは、基本的な書式設定も提供されます。表を作成した後は、属性値を設定または変更して、表をさらに編集できます。また、列を追加または削除したり、列にコンポーネントまたはオブジェクトを追加することもできます。

データ表を作成および編集する手順は、次のとおりです。

1. ビジュアル・エディタでJSFページを開きます。

2. コンポーネント・パレットで、ドロップダウン・メニューから「JSF」を選択します。

3. パレットで「データ表」をダブルクリックまたはドラッグします。データ表の作成ウィザードが開きます。

4. ウィザードのステップに従います。

5. ウィザードを使用してアクセスされない属性の値を変更または設定する手順は、次のとおりです。

- 「構造」ウィンドウでh:dataTableコンポーネントを選択します。

- プロパティ・インスペクタで、値を設定する属性の横にあるフィールドをクリックします。様々な属性に関する情報は、右クリックで表示されるポップアップ・メニューの「ヘルプ」を使用してください。

データ表の列を使用するには、次のようにします。

- 単一の列を追加するには、新しい列を追加する場所の横にある既存列を右クリックし、「h:columnの前に挿入」→「列」の順に選択するか、または「h:columnの後ろに挿入」→「列」の順に選択します。選択した列の前または後に列が追加されます。新規列が選択された状態になります。

注意:

ビジュアル・エディタまたは「構造」ウィンドウでデータ表を選択することもできます。ビジュアル・エディタのドロップダウン・メニューで、「データ表の中に挿入」→「列」を選択します。

- 複数の列を追加するには、次のようにします。

- 新しい列を追加する場所の横にある既存列を右クリックし、「データ表」→「列の挿入」の順に選択します。

- ダイアログを完了します。

- 列の順序を変更するには、「構造」ウィンドウまたはビジュアル・エディタで列をドラッグ・アンド・ドロップします。

- コンポーネントや他のオブジェクトを列に追加するには(データを表示するためなど)、列を右クリックし、「列の中に挿入」を選択します。メニューを使用して、列内に配置するコンポーネントまたは他のオブジェクトを選択します。追加した後は、プロパティ・インスペクタを使用して、追加したコンポーネントに対する属性値を設定できます。

注意:

ビジュアル・エディタまたは「構造」ウィンドウで列表を選択することもできます。ビジュアル・エディタのドロップダウン・メニューで、「列の中に挿入」→「出力テキスト」を選択します。

- 列を削除するには、列を右クリックして「削除」を選択します。

11.1.2.15 パネル・グリッドの使用方法

JSFアプリケーションでは、panelGridタグを使用してHTML表を表示します。次に、パネル・グリッド内に他のコンポーネントを配置します。JDeveloperには、グリッドの作成を簡単にするPanelGridの作成ウィザードが用意されています。グリッドを作成した後は、グリッド内のコンポーネントを追加、移動および削除することによって、グリッドをさらに編集できます。

パネル・グリッドを作成および編集する手順は、次のとおりです。

1. ビジュアル・エディタでJSFページを開きます。

2. コンポーネント・パレットで、ドロップダウン・メニューから「JSF」を選択します。

3. パネル・グリッドを選択します。PanelGridの作成ウィザードが開きます。

4. ウィザードを完了します。

5. ウィザードで設定した属性値を変更するには、構造ペインで「h:panelGrid」コンポーネントをダブルクリックします。プロパティ・エディタが開きます。必要に応じて値を変更します。

6. グリッドにコンポーネントを挿入するには、構造ペインで既存のコンポーネントを右クリックし、コンポーネントを既存のコンポーネントの前に配置するか、後に配置するかを選択します。セル内にコンポーネントをネストする必要がある場合は、最初にセル内にpanelGroupタグを配置する必要があります。その後は、panelGroupタグ内に他のコンポーネントを配置できます。パネル・グリッドに行を追加することはできません。列属性を使用して列を追加できるのみです。また、コンポーネントは、構造ウィンドウ内の表示順に、1つの行の列内に配置されます。

7. コンポーネントの順序を変更するには、構造ウィンドウまたはビジュアル・エディタで列をドラッグ・アンド・ドロップします。

8. グリッドにヘッダーまたはフッターを追加します。

9. グリッドまたはグリッド内のコンポーネントを削除するには、該当するコンポーネントを右クリックして「削除」を選択します。

11.1.2.16 JSPおよびHTMLページでのマークアップ・コードの貼付け方法

ソース・コードは、同じプロジェクトまたは別々のプロジェクトのファイル間でコピーして貼り付けることができます。サンプル・コードとして貼り付ける場合など、解釈せずにソース・コードを貼り付ける場合は、「マークアップ挿入の確認」ダイアログで「いいえ」を選択してください。

マークアップ・コードを貼り付けるには、次のようにします。

1. ソース・コードをローカルのシステム・クリップボードにコピーします。

2. 「編集」→「特殊貼付け」を選択します。

11.1.2.17 WebページのHEADのコンテンツの表示および編集方法

スタイル定義やブラウザ・ウィンドウのタイトルといったHTMLの<head>コンテンツは、Webページには表示されない要素です。ビジュアル・エディタでは、<head>セクションの要素を表示および編集できます。

ページの<head>セクションの要素を表示するには、次のようにします。

ビジュアル・エディタでWebページを開き、「設計」→「表示」→「HEADのコンテンツ」を選択します。<head>セクション内の各要素に対して、ページ上段のバーにアイコンが表示されます。

<head>セクション・バーから要素を選択すると、その要素に対するソース・コードがコード・エディタで選択されます。

ページの<head>セクションの要素を編集するには、次のようにします。

1. 「設計」→「表示」→「HEADのコンテンツ」を選択し、開いているWebページに<head>セクション要素を表示します。

2. ビジュアル・エディタで次のいずれかの操作を行います。

- <head>セクション・バーの要素をクリックして選択し、プロパティ・インスペクタでその要素のプロパティを設定または変更します。

- 要素を右クリックしてポップアップ・メニューから「タグの編集」を選択し、エディタのダイアログを表示します。Cascading Style Sheetを開いて編集するには、ポップアップ・メニューから「css/filename.cssを開く」を選択します。

11.1.3 プロパティ・インスペクタの使用方法

プロパティ・インスペクタを使用して、選択したコンポーネントのプロパティを表示および編集します。

図11-6 プロパティ・インスペクタ

図11-6に示すように、プロパティ・インスペクタのタイトル・バーには、選択したコンポーネントの名前(フォームや本体など)が表示されます。インスペクタのメイン・エリアには、コンポーネントのプロパティとその値が表示されます。アクティブなツールで複数のコンポーネントを選択した場合、タイトル・バーに「複数」と表示され、選択したコンポーネント間で共有されるプロパティのみが表示されます。

プロパティ・インスペクタのメイン・エリアには、プロパティのグループが、開閉できる名前の付いたセクションに表示されます。

プロパティ・インスペクタでは、コンポーネントのプロパティがフィールド、ドロップダウン・リストまたはコンボ・ボックスとして表示されます。ブール・プロパティの場合、プロパティ名の前にあるチェック・ボックスを使用して現在値を示します。EL式を受け入れるブール・プロパティでは、現在値が式とtrue/falseの明示的値のどちらであるかによってフィールドまたはドロップダウン・リストが使用されます。

すべてのプロパティで、プロパティ名の横にアスタリスク(*)が表示され、このプロパティに値が必要であることを示します。プロパティの説明を表示するには、プロパティ名、フィールド、ドロップダウン・リストまたはコンボ・ボックスを右クリックし、ポップアップ・ウィンドウを表示します。プロパティの説明は、ポップアップ・ウィンドウの下部にある「プロパティ・ヘルプ」の下のスクロール可能なボックスに表示されます。ポップアップ・ウィンドウ内のヘルプ・ボックスの表示を切り替えるには、「+」(プラス)および「-」(マイナス)をクリックします。ポップアップ・ウィンドウのサイズを変更するには、ウィンドウの右下隅をドラッグします。ポップアップ・ウィンドウのサイズを変更すると、サイズを再変更するまでは、プロパティの後続のポップアップ・ウィンドウすべてに新規サイズが使用されます。

表11-4 プロパティ・インスペクタのツールバー・アイコン機能

アイコン

名前

説明

自動拡張の有効化/無効化

プロパティ・インスペクタの自動拡張をオンまたはオフに切り替えて、カーソルがインスペクタ上にあるときに全コンテンツを表示する場合に使用します。フォーカスがユーザー・インタフェースの他の部分に移動すると、インスペクタはデフォルトの位置に戻ります。

ADFコントロールにバインド

使用できる場合、クリックして、必要に応じてADFデータ・コントロールにプロパティをバインドまたはアンバインドします。

11.1.3.1 プロパティの編集

プロパティ値を編集するには、新しい値をフィールドに入力するか、またはドロップダウン・リストを使用して値の固定セットから値を選択します。プロパティ値を編集する場合、緑色のドット・アイコンがプロパティ名の横に表示され、プロパティがデフォルト設定から変更されたことを示します。プロパティ値を編集する他の方法は、次のとおりです。

- 一部のプロパティでは、フィールドまたはボックスの後ろにある「...」をクリックして、プロパティ・エディタまたはブラウザ・ツールを使用してプロパティに対する値を選択または入力します。

- 一部のプロパティでは、フィールドまたはボックスの後ろをクリックして、ポップアップ・ウィンドウを表示してコマンドを選択するか、プロパティ・エディタまたはビルダー・ツールを選択してプロパティに対する値を選択または入力します。

- チェック・ボックスのあるブール・プロパティの場合、チェック・ボックスを選択または選択解除して値を変更します。

- EL式の受入れが可能なブール・プロパティの場合、フィールドに式を入力するか、フィールドの後ろにある下矢印をクリックしてビルダー・ツールを使用して値を入力します。

11.1.3.2 カスタム・プロパティ・エディタの作成

独自のプロパティ・エディタを作成すると、プロパティ・インスペクタの表示内容を制御できます。プロパティ・エディタがタグをサポートする場合、インスペクタでは、そのタグが固定された一連の値としてドロップダウン・リストに表示されます。プロパティ・エディタがタグをサポートしない場合、インスペクタはエディタに問い合せて、カスタム・プロパティ・エディタをサポートするかどうかを確認します。どちらもサポートされない場合、直接入力するユーザーにはテキスト領域が表示されます。

11.1.3.3 カスタマイズ開発者の追加機能

カスタマイズ開発者ロールでは、次の追加機能を使用できます。

- プロパティ値を編集すると、オレンジのドットがプロパティ名の横に表示されます。(デフォルト・ロールで編集されたプロパティ値の場合、プロパティの横に緑色のドットが表示されます)。

- テキストのみのプロパティの横にあるプロパティ・メニューから、「カスタマイズの削除」を選択して、同じカスタマイズ・レイヤー・コンテキストで適用されていた既存のカスタマイズを削除します。

11.1.4 コンポーネント・パレットの使用方法

コンポーネント・パレットにはコンポーネント・ライブラリの要素が表示され、ドラッグ・アンド・ドロップの単純な操作を使用してユーザー・インタフェースを構築できます。パレットで使用可能なコンポーネントは、アクティブなエディタ・ウィンドウに表示されたファイルの種類に応じて異なります。たとえば、HTMLファイルを編集している場合、図11-7に示すように、パレットには共通コンポーネントのリストが表示されます。

図11-7 コンポーネント・パレットのHTMLコンポーネント

.javaファイルを編集している場合は、これとはまったく異なるコンポーネントが表示されます。

11.1.4.1 コンポーネント・パレットの機能の使用

ファイル・コンポーネントまたは・コンポーネントは、コンポーネント・パレットでページ別に整理されます。パレット上部のドロップダウン・リストから、目的のパレット・ページを選択します。

コンポーネントをアクティブ・エディタで開いているファイルに挿入するには、コンポーネントをパレットからエディタ内の挿入先にドラッグします。一部のファイル・タイプでは、パレット内のコンポーネントをクリックしてからエディタ内をクリックして、コンポーネントを挿入します。

11.1.4.2 コンポーネント・パレットの機能の概要

コンポーネント・パレットには、次の機能があります。

- コンポーネントを名前で検索するには、名前または名前の一部を双眼鏡アイコン・フィールドに入力して、緑色の実行矢印をクリックします。アクティブなエディタのパレット・ページにある名前または名前の一部に一致するコンポーネントが、「検索結果」パネルに表示されます。

- デフォルトで、コンポーネントはリスト・ビュー(アイコンと名前)で表示されます。アイコンのみのビューに表示を変更できます。ビューを切り替えるには、パレット内のコンポーネントを右クリックして、「アイコンで表示」または「一覧で表示」を選択します。

- コンポーネント・ヘルプを利用できるコンポーネント・ライブラリでは、パレット内のコンポーネントを右クリックして「ヘルプ」を選択します。

- よく使用されるコンポーネントをパレット・ページに追加して使用しやすくするには、パレット内のコンポーネントを右クリックして「お気に入りに追加」を選択します。選択したコンポーネントが「コンポーネント」パレット・ページの「お気に入り」パネルに追加され、このパレットのドロップダウン・リストから選択できるようになります。

- JSPタグ・ライブラリのあるプロジェクトでは、パレット・ドロップダウン・リストで選択できるJSPタグ・ライブラリのリストを変更するには、「タグ・ライブラリの編集」を選択し、ダイアログを使用して必要に応じてタグ・ライブラリを追加または削除します。

11.1.5 JSF構成ファイルの概要エディタの使用方法

JSF構成ファイルの概要エディタを使用して、faces-config.xmlに格納されているJSFアプリケーションの構成を視覚的に設計および編集します。図11-8に、概要エディタを示します。

図11-8 JSF構成ファイルの概要エディタ

faces-config.xmlを開くと、その内容がエディタ・グループに表示されます。このグループの下部にある「概要」タブを選択すると、概要エディタが表示されます。

概要エディタが開くと、現在選択されている要素のメタデータ子要素がプロパティ・インスペクタに表示されます。これらはプロパティ・インスペクタを使用して管理します。たとえば、プロパティ・インスペクタを使用して<description>および<display-name>子要素を設定します。

概要エディタには、次の3つのセクションがあります。

- 左側の列には、メインJSF構成要素が表示されます。

- メイン・パネルの上部の領域には、左側の要素リストで選択した要素の子要素が表示されます。

- メイン・パネルの下部の領域には、上部の領域で選択した要素の子要素が表示されます。

概要エディタを使用してJSF要素と子要素を追加、削除または編集できます。

メインJSF構成要素とその直下の子要素を操作する手順は、次のとおりです。

1. アプリケーション・ナビゲータで、JSFアプリケーションが含まれているワークスペースを開きます。

2. ワークスペースで、JSFページが含まれているプロジェクトを開きます。

3. プロジェクトで、 「WEB-INF」 ノードを開きます。

4. WEB-INFノードの下にあるfaces-config.xmlファイルをダブルクリックして開きます。

5. エディタの下部にある 「概要」 タブを選択します。

6. 左側の要素リストから要素を選択します。対応する構成可能な子要素がメイン・パネルの上部の表に表示されます。

JSF構成要素を追加、削除または編集するには、次のようにします。

- 新規の子要素を追加する方法。「新規」をクリックします。ダイアログ・ボックスが開き、要素を作成できます。新しいボタンが表示されない場合、その子要素は既存のクラスです。「参照...」をクリックしてクラスを選択できます。参照ボタンが表示されない場合、またはエントリがクラス名でない場合は、値を直接入力できます。

- 既存の子要素を削除する方法。表から要素を選択し、「削除」をクリックします。要素が表から削除されます。削除ボタンが表示されない場合は、エントリを手動で削除できます。

- 既存の子要素を編集する方法。表から要素を選択し、「編集」をクリックします。その要素のプロパティのパネルが開き、値を変更できます。

子構成要素の子要素を表示、追加、削除または編集するには、次のようにします。

- 子要素を表示する方法。左側の要素リストから要素を選択します。メイン・パネルが表示されます。メイン・パネルの上部の表から既存の子要素を選択します。設定されている子要素がメイン・パネルの下部の表に表示されます。子要素の設定が可能であり、かつ、現在は子が定義されていない場合は、子に対するリスト領域が表示されないことがあります。リスト領域を表示して子を追加するには、領域のタイトルの左側にある表示の矢印をクリックします。リスト領域を非表示にするには、非表示の矢印をクリックします。

- 新規の子要素を追加する方法。「新規」をクリックします。新規ボタンが表示されない場合で、子要素が既存のクラスであるときは、「参照...」ボタンをクリックして「クラス・エディタ」ダイアログ・ボックスを開くと、クラスを選択できます。参照ボタンが表示されない場合、またはエントリがクラス名でない場合は、値を直接入力できます。

- 既存の子要素を編集する方法。表から選択して「編集」をクリックします。その要素のプロパティのパネルが開き、値を変更できます。編集ボタンが表示されない場合は、新規クラスを選択するか(該当する場合)、またはエントリを編集できます。既存の子要素を削除するには、表から選択して「削除」を選択します。既存の子要素を削除します。表から選択して「削除」をクリックします。要素が表から削除されます。「削除」ボタンが表示されない場合は、エントリを手動で削除できます。

11.1.6 JSFナビゲーション・ダイアグラムを使用したページ・フローの計画方法

JSFナビゲーション・ダイアグラマには、JSFページおよびページ間のナビゲーションのダイアグラムを作成する機能があります。

ページはアイコンで表され、ページ間のナビゲーションは線で表されます。ナビゲーションは、アプリケーションのfaces-config.xmlファイルのナビゲーション・ケースに反映されます。

JSFナビゲーション・ダイアグラムが表示されると、コンポーネント・パレットも表示されます。コンポーネント・パレットのJSFダイアグラム・オブジェクト・ページには、JSFナビゲーション・ダイアグラムで使用できる要素のエントリが表示されます。JSFダイアグラム要素をJSFナビゲーション・ダイアグラムに追加するには、追加する要素をコンポーネント・パレットから選択します。

11.1.6.1 ナビゲーション・ダイアグラムの使用方法

最初にナビゲーション・ダイアグラムを表示したときに、ダイアグラムの詳細を保持したダイアグラム・ファイルが作成されます。このダイアグラム・ファイルは、アプリケーションに必要なすべての設定が保持された対応するJSF構成ファイルとともに保守されます。バージョニングやソース制御を使用している場合、ダイアグラム・ファイルもそれが表す構成ファイルと同様に含められます。

JSFアプリケーションに対するナビゲーション・ダイアグラムを表示する手順は、次のとおりです。

1. アプリケーション・ナビゲータで、JSFアプリケーションを開きます。

2. アプリケーションが含まれるプロジェクトを開きます。JSFが組み込まれたテンプレートを使用してアプリケーションを作成した場合、プロジェクト名は「ViewController」です。

3. プロジェクトで、WEB-INFノードを開き、JSF構成ファイルをダブルクリックして開きます。デフォルトの構成ファイル名はfaces-config.xmlです。

4. アプリケーションに対するナビゲーション・ダイアグラムが表示されていない場合は、ウィンドウの下にある「ダイアグラム」タブを選択します。

「カテゴリ別にグループ化」を使用してアプリケーション・ナビゲータを表示する場合(デフォルト)、JSF構成ファイルの単一のエントリが構成ファイルとその関連ダイアグラム・ファイルの両方を表します。「ディレクトリでグループ化」を使用してすべてのファイルを表示する場合、これらの2つのファイルが別々のノードとして表示されます。この場合、構成ファイルには完全ファイル名が使用され、ダイアグラム・ファイルには、JSF構成ファイルの名前に拡張子.jsf_diagramが付いた名前が使用されます。

JSF構成ファイルにまだ変更を加えていなくても、JSF構成ファイルを最初に開いたときには、変更があったことを示す状態で構成ファイル・ノードがアプリケーション・ナビゲータに表示されます。これは、アプリケーション・ナビゲータに表示されるノードでは、JSF構成ファイルとナビゲーション・ダイアグラム・ファイルの両方が表されるためです。したがって、JSF構成ファイルは変更されていませんが、ナビゲーション・ダイアグラム・ファイルが作成されています。同様に、レイアウトの変更など、JSF構成ファイルに影響を与えない変更をナビゲーション・ダイアグラムに加えた場合、アプリケーション・ナビゲータ内のノードは変更が加えられたことを示します。

大規模アプリケーションまたは複雑なアプリケーションの場合は、ファイルのサイズが大きくなる可能性があり、ロードにも時間がかかる場合があります。JSF構成ファイルに対するJSFダイアグラム・ファイルを作成する必要がない場合は、デフォルト・エディタとしてダイアグラムを使用しないことを選択できます。この場合、特に要求しないかぎり、ダイアグラム・ファイルは作成されません。

11.1.6.2 ページ・フローおよびナビゲーション・フローの計画方法

アプリケーション内のページおよびページ間のナビゲーション・ケースを表すダイアグラムを作成するには、JSFナビゲーション・ダイアグラムとコンポーネント・パレットを使用します。ダイアグラムに追加したナビゲーション・ケースは、JSF構成ファイルに自動的に追加されます。

JSFナビゲーション・ダイアグラムに要素を追加するには、次のようにします。

1. 対象プロジェクトのJSFナビゲーション・ダイアグラムを表示します。

2. コンポーネント・パレットの「JSFダイアグラム・オブジェクト」の「コンポーネント」ページで、「JSFページ」を選択します。

3. ダイアグラムにページを追加するには、ページを表示する場所でダイアグラムをクリックするか、JSFページをダイアグラムの表面にドラッグします。ページのアイコンがページ名のラベルとともにダイアグラム上に表示されます。最初は、新規JSFページを定義するまで、図11-9に示すように、ページがまだ作成されていないことを示すアイコンが表示されます。

図11-9 ページが作成されていないことを示すアイコン

4. ページの名前を指定するには、ダイアグラムでアイコンのラベルをクリックし、ラベルを編集します。ページを実行可能にするために名前の先頭にスラッシュが必要です。ページ名を変更するときにスラッシュを削除しても、スラッシュが復元されます。

5. 新規ページを定義するにはアイコンをダブルクリックして「JSFページの作成」ダイアログを使用します。ダイアログの使用に関するヘルプを参照するには、「ヘルプ」をクリックします。ページを作成すると、図11-10に示すように、ダイアグラム上のアイコンがページが作成されたことを示すアイコンに変わります。

6. 変更を保存します。

図11-10 ページが作成されたことを示すアイコン

JSFナビゲーション・ダイアグラムにJSFナビゲーション・ケースを追加する手順は、次のとおりです。

1. 対象プロジェクトのJSFナビゲーション・ダイアグラムを表示します。

2. まだ定義していない場合は、作成するナビゲーション・ケースのリンク元の<from-view-id>およびリンク先の<to-view-id>となるJSFページを定義します。

3. コンポーネント・パレットの「JSFダイアグラム・オブジェクト」の「コンポーネント」ページで、「JSFナビゲーション・ケース」を選択します。

4. ダイアグラム上で、リンク元JSFページのアイコンをクリックし、次にリンク先JSFページのアイコンをクリックして、ナビゲーション・ケースを1つ作成します。ナビゲーション・ケースをリンク元ページとリンク先ページの間の直線で描画するには、図11-11に示すように、リンク元ページをクリックした後でリンク先ページをクリックします。

図11-11 ナビゲーション・ケースの直線

角度のある線でナビゲーション・ケースを描画する場合は、図11-12に示すように、エディタのツールバーで「ポリライン」または「直交」を選択します。

図11-12 ナビゲーション・ケースの角度のある線

5. ナビゲーション・ケースはダイアグラム上に実線で表示され、ナビゲーション・ケースのラベルとしてデフォルトの<from-outcome>値が表示されます。<from-outcome>値を編集するには、ラベルをクリックして新しい値を入力します。

6. リンク元ページに対するナビゲーション・ルールが存在していない場合は、ナビゲーション・ルールがJSF構成ファイルに追加され、そのルールに対してナビゲーション・ケースが追加されます。

7. JSFナビゲーション・ダイアグラムに対する変更を保存し、JSF構成ファイルに対する変更を保存します。

JSFナビゲーション・ダイアグラムにノートを追加するには、次のようにします。

1. 対象プロジェクトのJSFナビゲーション・ダイアグラムを表示します。

2. コンポーネント・パレットの「JSFダイアグラム・オブジェクト」の「ダイアグラムの注釈」ページで、「ノート」を選択します。

3. ダイアグラム上のノートを追加する場所をクリックします。ダイアグラム上にノートが表示され、テキストを入力できる場所にカーソルが表示されます。

4. テキストを入力した後、ノートの外側をクリックします。

5. ノート内のテキストを選択して編集するには、ノート内の任意の場所をクリックします。ノート自体を選択するには、右上隅をクリックします。テキストを編集するには、ノートの真ん中をクリックします。

6. JSFナビゲーション・ダイアグラムに対する変更を保存します。ノートはJSFナビゲーション・ダイアグラムにのみ表示され、JSFアプリケーション構成ファイルには表示されません。

JSFナビゲーション・ダイアグラム内の要素にノートを添付する手順は、次のとおりです。

1. 対象プロジェクトのJSFナビゲーション・ダイアグラムを表示します。

2. ノートがダイアグラムに存在していない場合は、ノートを追加します。

3. コンポーネント・パレットの「JSFダイアグラム・オブジェクト」の「ダイアグラムの注釈」ページで、「ノートの添付」を選択します。

4. ダイアグラムでノートをクリックし、次にノートを添付する要素をクリックします。図11-13に示すように、点線が表示されます。この点線は選択されているページのノート添付を示しています。

図11-13 ノートの添付ダイアグラム

5. JSFナビゲーション・ダイアグラムに対する変更を保存します。ノート添付はJSFナビゲーション・ダイアグラムにのみ表示され、JSF構成ファイルには表示されません。

JSFナビゲーション・ダイアグラムに自動的に要素をレイアウトするには、次のようにします。

1. エディタのツールバー・オプションから、希望するレイアウト・スタイルを選択します。レイアウト・スタイルのリストは、表11-5を参照してください。

2. 変更を保存します。

表11-5 ナビゲーション・ダイアグラムのレイアウト・スタイル

アイコン

アイコン説明

ページ・アイコン間でナビゲーション・ケースに直線を引きます。

ページ・アイコン間でナビゲーション・ケースに角度のある線を引きます。

ページ・アイコン間でナビゲーション・ケースに直角の線を引きます。

アイコンを水平方向のレイアウトで配置します。

アイコンを垂直方向のレイアウトで配置します。ダイアグラム上の要素が、選択したパターンに従ってレイアウトされます。

JSFナビゲーション・ダイアグラムをリフレッシュして、JSF構成ファイルに対する変更を反映する手順は、次のとおりです。

1. 「ダイアグラムのリフレッシュ」を選択します。ダイアグラムのリフレッシュ速度は、ダイアグラム内のノード数およびノード間の連結数によって異なります。

2. 変更を保存します。

11.1.6.3 JSFナビゲーション・ダイアグラマを使用した複数のJSFページの操作方法

ナビゲーション・ダイアグラマを使用して、JSFページを追加、編集、名前変更および削除できます。

削除した場合

関連付けられたWebページはJSFナビゲーション・ダイアグラムに表示されなくなります。ファイルを作成している場合は、アプリケーション・ナビゲータの「ViewController」プロジェクトの下にある「Webコンテンツ」フォルダから引き続き使用可能です。

編集した場合

Webページを手動で編集すると、JDeveloperでは、JSFナビゲーション・ダイアグラムまたはJSF構成ファイルは自動的に更新されません。

名前を変更した場合

ナビゲーション・ダイアグラムでJSFページの名前を変更した場合は、元の名前のページをダイアグラムから削除し、新しい名前の新規ページを追加したことになります。そのページに下層ページがある場合は、それらのページは元の名前でファイル・システムに残ります。ダイアグラム上では、ページが存在していないことを示すアイコンでページが表されます。

作成済のJSFページがダイアグラムに表示されていて、そのページの名前をナビゲータで変更した場合も、元のファイルを削除し、新しいファイルを作成したことになります。ダイアグラムには元の名前が残り、ページが存在しないことを示すページ・アイコンが表示されます。

JSFナビゲーション・ダイアグラムでページの名前を変更すると、JSF構成ファイル上のナビゲーション・ルールとそのケースに影響します。

JSFナビゲーション・ダイアグラムからWebページを表示する手順は、次のとおりです。

表示するWebページのアイコンをダブルクリックします。適切なエディタでページが開きます。

11.1.6.4 JSFナビゲーション・ケースに対するJSFナビゲーション・ダイアグラマの使用方法

ナビゲーション・ダイアグラマを使用して、ページ間のナビゲーション・ケースを削除します。

削除した場合

関連付けられた<navigation-case>がJSF構成ファイルから削除されます。

関連付けられたWebページはダイアグラムに引き続き表示され、ページが作成されている場合は、アプリケーション・ナビゲーションの「ViewController」プロジェクトの下にある「Webコンテンツ」フォルダから引き続き使用可能です。

編集した場合

ダイアグラムでナビゲーション・ケースのラベルを編集した場合は、関連付けられた<navigation-case>がJSF構成ファイルで更新されます。

JSFナビゲーション・ダイアグラムでナビゲーション・ケースを作成した場合、そのナビゲーション・ケースのリンク先はダイアグラムでは変更できません。ダイアグラムで既存のナビゲーション・ケースのリンク先を変更するには、既存のナビゲーション・ケースを削除し、正しいリンク先に対して新規ナビゲーション・ケースを作成します。

JSFダイアグラム・ファイルのサイズが大きく、JSFナビゲーション・ダイアグラマで開くのに時間がかかる場合は、別のエディタでJSF構成ファイルを開くかどうかを尋ねられる場合があります。

JSFナビゲーション・ダイアグラムでナビゲーション・ケースのプロパティを表示する手順は、次のとおりです。

ナビゲーション・ケースはダイアグラム上に実線で表示され、<from-outcome>要素の値がラベルとして表示されます。

1. プロパティ・インスペクタが表示されていない場合は、「表示」メニューから開きます。

2. プロパティを表示するナビゲーション・ケースを選択します。ナビゲーション・ケースのプロパティがプロパティ・インスペクタに表示されます。

11.1.6.5 ダイアグラムのグラフィックとしての公開方法

ダイアグラムは、ドキュメントまたはWebページで使用するために、.jpgファイル、.pngファイル、.svgファイルまたは.svgzファイルとして保存できます。.jpg形式でイメージを保存するとファイルが最大になり、.svg形式、.png形式、.svgz形式の順に小さくなります。

ダイアグラムをグラフィックとして公開するには、次のようにします。

1. グラフィックとして公開するダイアグラム上を右クリックし、「ダイアグラムの公開」を選択します。
または

グラフィックとして公開するダイアグラム上をクリックし、「ダイアグラム」→「ダイアグラムの公開」を選択します。

2. 「場所」ドロップダウン・リストを使用して、グラフィック・ファイルの宛先フォルダを選択します。

3. ファイル名として、ファイル拡張子を含むグラフィック・ファイル名を入力します。

4. ファイル・タイプのドロップダウン・リストから、グラフィック・ファイルのファイル・タイプを選択します。

5. 「保存」をクリックします。

11.1.7 コード・インサイトを使用したWebページのコーディングの高速化方法

コード・インサイトを使用してコーディング・タスクを高速化するには、コーディング中に要素を迅速に補完および挿入するために選択できるオプションを用意します。

コード・インサイトには、構文補完インサイトおよびパラメータ・インサイトがあります。構文補完インサイトを起動するには、ピリオドを入力した後で休止するか、[Ctrl]を押しながら[Space]を押します(デフォルト・キーマップの場合)。パラメータ・インサイトを起動するには、左丸カッコを入力した後、休止するか、または[Ctrl]、[Shift]および[Space]を同時に押します(デフォルト・キーマップの場合)。いずれのタイプのインサイトも、終了する場合は[Esc]キーを押します。

ソース・エディタのWebページでコード・インサイトを使用するには、次のようにします。

1. 「ソース」タブをクリックしてソース・エディタでそのファイルを開き、タグを追加する場所にカーソルを配置します。

2. 左山カッコ(<)を入力し、そのまましばらく待つかまたは[Ctrl]を押しながら[Space]を押し(デフォルトのキーマッピングを使用している場合)、コード・インサイトを起動します。ファイルに基づいた有効な要素のリストが表示されます。タグの最初の文字を入力するか、またはタグ・ライブラリの接頭辞とコロン(例: <jsp:)を入力してリストの範囲を限定します。

3. 有効なタグのリストで、タグをダブルクリックするか、タグをハイライト表示して[Enter]を押します。選択したタグがファイルに<jsp:includeのように挿入されます。接頭辞とタグ名の間にはスペースを入れないでください。

4. 挿入したタグに属性を追加するには、タグ名の後ろにスペースを入力し、そのまましばらく待つかまたは[Ctrl]を押しながら[Space]を押して有効な属性のリストを表示します。希望する属性をダブルクリックするか、選択して[Enter]を押します。例: <jsp:include page。

5. 属性値を入力します。例: <jsp:include page="filename.jsp"。

6. 必要に応じて、他の属性と値を追加します。属性値と次の属性の間にはスペースを入力します。例: <select size="4" name="ListBox"></select>。

7. 属性と値をすべて追加したら、右山カッコ(>)を入力します。「終了タグの自動補完」機能が有効になっている場合、正しい終了タグ(例: </select>)が自動的に挿入されます。「終了タグの自動補完」機能の設定にかかわらず、左山カッコとスラッシュ文字(</)を入力してタグを閉じると常に正しい終了タグが自動的に挿入されます。
エディタで任意のタグ名を右クリックして「構造ウィンドウで選択」を選択し、そのタグを「構造」ウィンドウで選択します。編集中に発生した構文エラーもすべて「構造」ウィンドウに表示されます。エラー、要素または属性をダブルクリックすると、ソース・エディタで編集できます。

「終了タグの自動補完」機能を有効にするには、「ツール」→「プリファレンス」→「コード・エディタ」→「JSP/XML/HTML」を選択し、パネルを表示して該当するオプションを選択します。

コード・インサイトはJavaScriptおよびCSSファイルでも使用できます。

JavaScriptファイルでコード・インサイトを使用するには、次のようにします。

- 任意の<SCRIPT>タグ内にカーソルを置き、左山カッコを入力して[Ctrl]を押しながら[Space]を押します。

使用可能な構文補完のリストが表示されます。使用可能な構文補完をフィルタするには、最初の文字を入力します。たとえば、文字「d」を入力すると、「D」から始まる構文補完(「Date」、「decodeURI」など)が表示されます。

コード・インサイトでは、JavaScript固有のXML属性内でも構文補完を使用できます。

CSSファイルでコード・インサイトを使用するには、次のようにします。

- 任意の<STYLE>タグ内にカーソルを置き、左山カッコを入力して[Ctrl]キーを押しながら[Space]キーを押します。

この場合はCSSファイル内で使用可能な構文補完のリストが表示されます。使用可能な構文補完をフィルタするには、コード・インサイトを使用している要素の最初の文字を入力します。

11.2 JavaServer Facesを使用したアプリケーションの開発

この項では、Java EE内のJavaServer Faces (JSF)テクノロジを使用したユーザー・インタフェース開発向けのJDeveloperのサポートおよびツールについて説明します。

JDeveloperは、JSF 2.0仕様(http://jcp.org/aboutJava/communityprocess/final/jsr314/index.html)に準拠したJSFおよびFaceletsテクノロジを使用したユーザー・インタフェースの開発を完全にサポートしています。JSFに関するこの項の内容は、JSF開発用としてFaceletsテクノロジを使用していることを前提としています。

11.2.1 JSFアプリケーションの構築方法

JDeveloperに用意されている機能を使用してアプリケーションを最初から構築できます。最初に、Webページ用のフレームワークまたはアプリケーション・テンプレートを構築する必要があります。アプリケーション・テンプレートを使用すると作業を迅速に開始できます。新規ギャラリ・ウィザードを使用してアプリケーションを構築する際に、アプリケーションに含めるテクノロジの組合せから選択します。図11-6に示すように、選択するアプリケーションにより、作成されるプロジェクト・フォルダや、フォルダに追加されるレイアウトが決まります。

表11-6 Webアプリケーション・テンプレート

アプリケーション

説明

Fusion Webアプリケーション(ADF)

データバインドされたADF Webアプリケーションを作成します。このアプリケーションには、ビュー・コンポーネントとコントローラ・コンポーネント(ADF FacesとADFタスク・フロー)用に1つのプロジェクト、そしてデータ・モデル(ADF Business Components)用に別のプロジェクトが含まれています。

Java EEアプリケーション

データバインドされたWebアプリケーションを作成します。このアプリケーションには、ビュー・コンポーネントとコントローラ・コンポーネント(JSF)用に1つのプロジェクト、そしてデータ・モデル(EJBおよびJPAエンティティ)用にもう1つのプロジェクトが含まれています。

汎用アプリケーション

1つのプロジェクトでアプリケーションを作成します。プロジェクトはJDeveloperテクノロジで事前構成されておらず、どのテクノロジも含めるようにカスタマイズできます。

11.2.1.1 アプリケーション・フレームワークの構築方法

ウィザードを使用して、カスタマイズされたアプリケーション・フレームワークを構築します。

JSFアプリケーション用のWebアプリケーションおよびプロジェクトを作成するには、次のようにします。

1. メイン・メニューから「ファイル」→「メニュー」→「新規」→「一般」→「アプリケーション」の順に選択します。

2. 作成するアプリケーションを選択します。

3. ステップを完了します。プロジェクト・フォルダ、ModelおよびViewControllerが作成され、アプリケーション・ナビゲータの新しいアプリケーション・ノードの下にリストされます。「汎用アプリケーション」を選択した場合は、「プロジェクト」フォルダのみが表示されます。

4. 「ViewController」プロジェクトをダブルクリックして「プロジェクト・プロパティ」ダイアログを開き、「依存性」を選択します。「プロジェクトの依存性」の下に、Modelプロジェクトが選択されていることを確認します。

11.2.1.2 JSFページおよび関連ビジネス・サービスの作成方法

アプリケーションのフレームワークを作成したら、ページの構築、編集およびモデリング・ツールを使用してページを迅速に起動して実行します。

JSFアプリケーションをエンドツーエンドでクイックスタートするには、次のようにします。

1. 簡易ウィザードを使用してWebアプリケーションを構築します。第11.2.1.1項「アプリケーション・フレームワークの構築方法」を参照してください。

2. 新規ギャラリJSFウィザードを使用してJSFページを作成します。「JSFページを作成するには、次のようにします。」を参照してください。

3. ビジネス・サービスを選択します。「ビジネス・サービスの選択」を参照してください。

4. ビジネス・サービスのバッキングBeanを作成します。11.2.2.2項「マネージドBeanの使用方法」を参照してください。

5. インタフェース・コンポーネントをデータにバインドします。11.2.2.4項「JSFページへのコンポーネントのバインド方法」を参照してください。

6. アプリケーション・リソースをマネージドBeanをfaces-config.xmlに追加します。第11.2.2.12項「JSFアプリケーションの構成方法」を参照してください。

7. JSFページを実行します。第11.2.3項「JSFアプリケーションの実行およびテスト方法」を参照してください。

JSFページを作成するには、次のようにします。

1. アプリケーション・ナビゲータで、新規JSF 2.0ページまたはドキュメントのプロジェクトを選択します。JSFページはナビゲーション・モデラーでも作成できます。

2. 「ファイル」→「新規」を選択し、「新規ギャラリ」を開きます。

3. 「カテゴリ」ツリーでWeb Tierを開き、「JSF」を選択します。このウィザードで、JSF/FaceletsページまたはJSP XMLページを作成します。ADF Facesページ・テンプレートまたはクイック・スタート・レイアウトを選択します。ADF Facesページ・テンプレート(.jsfファイル)では、ページ・テンプレート定義ファイルにページ・レイアウト全体が定義され、再利用およびパラメータ化が可能になります。クイック・スタート・レイアウトは、レイアウトの外観と動作の実装に必要なADF Facesコンポーネントを自動的に挿入して構成する事前定義済のページ・レイアウトです。

ビジネス・サービスの選択

JDeveloperでは、Enterprise JavaBeans (EJB)またはJavaBeansに基づいてデータソースを処理できます。また、Oracle TopLinkを使用してJavaクラスおよびEJBをデータベース表にマップすることもできます。バックエンド・ビジネス・サービスを作成する必要はないが、既存のビジネス・サービス(EJBコンポーネント、データベースのストアド・プロシージャ、Javaまたは他の言語を記述する他のサービス)を公開する必要がある場合、Webサービスを使用できます。

アプリケーション・モデルおよびバックエンド・クラスはいずれもJSFクラスを参照しないため、同じクラスを任意のタイプのユーザー・インタフェースで使用できます。

特定のビジネス・サービスを使用する場合は、図11-7に示すように、新規ギャラリを開き、用意されているウィザードおよびダイアログを使用して、モデル・プロジェクトにエンティティを作成できます。または、Webサービスの場合は、モデル・プロジェクトにエンティティを公開できます。

表11-7 ビジネス・サービスの新規ギャラリのオプション

目的

選択する新規ギャラリのオプション

ModelプロジェクトでEnterprise JavaBeansを使用する

「ビジネス層」カテゴリのEJB

ModelプロジェクトでOracle TopLinkを使用する

「ビジネス層」カテゴリの「TopLink」

ModelプロジェクトでJavaBeansを使用する

「General」カテゴリの「JavaBeans」

レガシー・コード、ソフトウェア・コンポーネント(EJBコンポーネントなど)、またはデータベース内のPL/SQLに基づいて作成されたWebサービスを使用し、HTTPを介して迅速かつ容易にアクセスできるようにする

「ビジネス層」カテゴリの「Web Services」

ビジネス・サービスを作成するには、次のようにします。

1. Webアプリケーションおよびプロジェクトを作成します。表11-6のWebアプリケーションのオプションを参照してください。

2. アプリケーション・ナビゲータで、アプリケーション・ノードの下にある「モデル」プロジェクトを選択し、「ファイル」→「新規」の順に選択して新規ギャラリを開きます。

3. 「カテゴリ」リストでノードを開き、選択したテクノロジ・スコープに関連するカテゴリを表示します。「ビジネス層」ノードの下には、ADF Business Components、EJB、ToplinkおよびWebサービスなどのビジネス・サービスのオプションが表示されます。ビジネス・サービスを選択します。

11.2.2 JSFビジネス・コンポーネント・フレームワークの構築方法

JDeveloperには、JSFページに簡単にドラッグ・アンド・ドロップできる標準JSFコンポーネントを備えたコンポーネント・パレットが用意されています。JSFページを作成すると、バッキングBeanが作成され、ページに配置するすべてのコンポーネントおよび対応するプロパティに自動的にバインドされます。また、作業を支援するためにプロパティ・インスペクタおよび式言語機能が用意されています。

ローカライゼーションの場合、コンテンツ・コンポーネントをページに追加すると、リソース・バンドルが自動的に追加されます。リソース・バンドルを管理したり、アプリケーションのプロジェクト・プロパティ機能で新規リソース・バンドルを作成できます。

JDeveloperに用意されている多くの標準コンポーネント・オプションの中には、図11-14に示すように、プロパティ・インスペクタを介して構成可能な検証および変換用のコンポーネントや、JSFページのエラー・メッセージ出力を設定する上で役立つメッセージ・コンポーネントなどがあります。

図11-14 コンポーネント・パレットで使用可能なコアJSFコンポーネント

JSF共通コンポーネント

JSFタグ・ライブラリの完全な詳細は、タグ・ライブラリ文書(http://www.oracle.com/technetwork/java/javaee/tech/index-jsp-142185.html)を参照してください。

表11-8 標準JSFコア・タグ・ライブラリでサポートされる要素

コンポーネント・タグ

構文

説明

f:actionListener

<f:actionListener

[type]

[binding]

[for]

/>

最も近い親コンポーネントに関連付けられたUIComponentにアクション・リスナーを登録します。

f:ajax

<f:ajax

[disabled]

[event]

[execute]

[immediate]

[listener]

[oneevent]

[oneerror]

[render]

/>

ClientBehaviorHolderインタフェースを実装する1つ以上のUIComponentにAjaxBehaviorインスタンスを登録します。このタグは単一のコンポーネント内でネストされる(単一のコンポーネントに対してAjaxを有効にする)場合や、複数のコンポーネントを囲む(複数のコンポーネントに対してAjaxを有効にする)場合があります。

f:attribute

<f:attribute

[name]

[value]

/>

最も近い親UIComponentカスタム・アクションに関連付けられたUIComponentに属性を追加します。

f:convertDateTime

<f:convertDateTime

[dateStyle]

[locale]

[pattern]

[timeStyle]

[timeZone]

[type]

[binding]

[for]

最も近い親UIComponentカスタム・アクションに関連付けられたUIComponentにDateTimeConverterインスタンスを登録します。

f:converter

<f:converter

[converterID]

[binding]

[for]

/>

最も近い親UIComponentカスタム・アクションに関連付けられたUIComponentに名前付きConverterインスタンスを登録します。

f:convertNumber

<f:convertNumber

[currencyCode]

[currencySymbol]

[groupingUsed]

[integerOnly]

[locale]

[maxFractionDigits]

[minIntegerDigits]

[pattern]

[type]

[binding]

[for]

/>

最も近い親UIComponentカスタム・アクションに関連付けられたUIComponentにNumberConverterインスタンスを登録します。

f:event

<f:event

[name]

[listener]

/>

ページのコンポーネントにComponentSystemEventListenerインスタンスをインストールできます。

f:facet

<f:facet/>

最も近い親UIComponentカスタム・アクションに関連付けられたUIComponentに名前付きファセットを登録します。

f:loadBundle

<f:loadBundle

[basename]

[var]

/>

現在のビューのロケールにローカライズされたリソース・バンドルをロードし、このタグのvar属性の値によって指定されたキーの下でこのリソース・バンドルを現在のリクエストのリクエスト属性のjava.util.Mapとして公開します。マップは、マップ内に存在しないキーに対してget()コールが実行されたときにマップからリテラル文字列KEYが戻される(この場合、KEYは、スローされるリソースの欠落例外ではなく、マップで検索されるキーです)ような処理内容で動作する必要があります。リソース・バンドルが存在しない場合、JspExceptionがスローされる必要があります。

f:metadata

<f:metadata/>

このビューのメタデータ・ファセットを宣言します。これは、<f:view>の子である必要があります。このタグは、テンプレート内ではなく、指定されたviewIdの最上位のXHTMLファイル内に存在する必要があります。ファセットの子が1つのみであっても、ファセットの直系の子がUIPanelであることを確認する必要があります。UIPanelのIDは、UIViewRoot.METADATA_FACET_NAMEシンボリック定数の値に設定する必要があります。

f:param

<f:param

[binding]

[id]

[name]

[value]

[disable] />

最も近い親UIComponentカスタム・アクションに関連付けられたUIComponentに子UIParameterコンポーネントを追加します。

f:phaseListener

<f:phaseListener

[type]

[binding]

/>

このタグがネストされているUIViewRootにPhaseListenerインスタンスを登録します。

f:selectItem

<f:selectItem

[binding]

[id]

[itemDescription]

[itemDisabled]

[itemLabel]

[escape]

[itemValue]

[value]

[noSelectionOption]

/>

最も近い親UIComponentカスタム・アクションに関連付けられたUIComponentに子UISelectItemコンポーネントを追加します。

f:selectItems

<f:selectItems

[binding]

[id]

[value]

[var]

[itemValue]

[itemLabel]

[itemDescription]

[itemDisabled]

[itemLabelEscaped]

/>

最も近い親UIComponentカスタム・アクションに関連付けられたUIComponentに子UISelectItemsコンポーネントを追加します。

選択アイテムを反復する場合、string rendered属性値に対してtoString()を呼び出す必要があります。

仕様のバージョン2では、次に示す複数の新規属性が導入されます。これらは、var、itemValue、itemLabel、itemDescription、itemDisabledおよびitemLabelEscapedです。

f:setPropertyActionListener

<f:setPropertyActionListener

[value]

[target]

[for]

/>

最も近い親UIComponentカスタム・アクションに関連付けられたUIComponentにActionListenerインスタンスを登録します。このactionListenerにより、value属性によって指定される値が、target属性によって指定されるValueExpressionに設定されます。

f:subview

<f:subview

[binding]

[id]

[rendered]

これは、同じWebアプリケーションから別のページを動的に組み込む任意のカスタム・アクション(JSTLのc:importなど)またはjsp:includeを介してネストされたページで使用されるすべてのJavaServer Facesのコア・コンポーネント・アクションおよびカスタム・コンポーネント・アクションに対するコンテナ・アクションを処理します。

f:validateBean

<f:validateBean

[validationGroups}

[disabled]

[binding]

[for]

これは、ローカル値の検証をBean Validation APIに委任するバリデータです。validationGroups属性は、どのような制約を課すかをBean Validation APIに指示するフィルタとして機能します。Bean Validationから制約違反が報告されると、この値は無効とみなされます。

f:validateDoubleRange

<f:validateDoubleRange

[disabled]

[maximum]

[minimum]

[binding]

[for]

/>

最も近い親UIComponentカスタム・アクションに関連付けられたUIComponentにDoubleRangeValidatorインスタンスを登録します。

f:validateLength

<f:validateLength

[disabled]

[maximum]

[minimum]

[binding]

[for]

/>

最も近い親UIComponentカスタム・アクションに関連付けられたUIComponentにLengthValidatorインスタンスを登録します。

:validateRegex

:<validateRegex

[disabled]

[pattern]

[binding]

[for]

/>

これは、pattern属性を使用してラッピング・コンポーネントを検証するバリデータです。パターン全体がコンポーネントのString値と比較されます。一致する場合、これは有効です。

f:validateRequired

<f:validateRequired

[disabled]

[binding]

[for]

/>

これは、値が存在することを強制するバリデータです。これには、UIInputに対するrequired属性をtrueに設定することと同じ効果があります。

f:validator

<f:validator

[disabled]

[validatorId]

[binding]

[for]

/>

最も近い親UIComponentカスタム・アクションに関連付けられたUIComponentに名前付きValidatorインスタンスを登録します。

:valueChangeListener

<:valueChangeListener

[type]

[binding]

/>

最も近い親UIComponentカスタム・アクションに関連付けられたUIComponentにValueChangeListenerインスタンスを登録します。

f:verbatim

<f:verbatim

[escape]

[rendered]

/>

ネストされたボディ・コンテキストをレンダリングする、最も近い親UIComponentカスタム・アクションに関連付けられた子UIOutputコンポーネントを作成および登録します。

f:view

<f:view

[locale]

[renderKitId]

[beforePhase]

[afterPhase]

/>

ページで使用されるすべてのJavaServer Facesのコア・コンポーネント・アクションおよびカスタム・コンポーネント・アクションのコンテナ。

f:viewParam

<f:viewParam

[converter]

[converterMessage]

[id]

[required]

[requiredMessage]

[validator]

[validatorMessage]

[value]

[valueChangeListener]

[maxLength]

[for]

/>

このタグは、ビューのメタデータ・ファセットの内部で使用され、UIViewParameterを現在のビューのメタデータとしてアタッチします。UIViewParameterによってUIInputが拡張されるため、任意のUIInputタグのすべての属性およびネストされた子コンテンツもこのタグで有効になります。

11.2.2.1 JSFの標準コンポーネントのタグ属性のサポート

プロパティ・インスペクタでコンポーネント・タグ属性を表示および設定します。属性を選択すると、属性リストの下のテキスト領域に、その属性の簡単な説明が表示されます。ほとんどのJSF標準コンポーネントのタグ属性には、値バインディング式(#{expression})を使用できます。

コンポーネントをJSFページに追加すると、プロパティ・インスペクタには、そのコンポーネントのタグに対してサポートされる属性が、次のカテゴリにグループ化されて表示されます。

- 共通: id、titleのように一般的に使用されます。ローカライゼーションの場合、langおよびdirなどの言語翻訳属性があります。

- 外観: リンクやテキストなどがページ上でどのように表示されるかを定義します。

- スタイル: background、fontなどのHTMLのプレゼンテーション属性に使用されます。

- JavaScript: onclick、onkeypress、onmouseoverなど、クライアント側のスクリプトをイベントに関連付けるためのJavaScript属性に使用されます。

一般属性とコア属性

ほとんどのJSFの標準コンポーネント・タグでは、次の一般属性とCore属性がサポートされています。

- binding: コンポーネント・インスタンスをBeanのプロパティにバインドするJSF EL式です。

- id: コンポーネントの一意の識別子です。この識別子は有効なXML名である必要があります。つまり、ID名の先頭には数値または空白を使用できません。

- rendered: コンポーネントをレンダリングするかどうかを指定するブール値です。デフォルトは、trueです。

HTMLのイベント属性とスタイル属性

タグ・ライブラリにあるJSPアクションでは、対応するHTML要素に対してHTML 4.01仕様が宣言されている属性のほとんどがサポートされています。各属性はオプションで、静的な値に設定したり、JSF EL式の任意のタイプを使用できます。

サポートされるクライアント側JavaScriptのイベント処理の属性は、次のとおりです。

onblur、onchange、onclick、ondblclick、onfocus、onkeydown、onkeypress、onkeyup、onload、onmousedown、onmousemove、onmouseout、onmouseover、onmouseup、onselect、onunload

サポートされるスタイルと表現に関する属性には、background、border、cellpadding、cellspacing、font、margin、style、outlineなどがあります。

JDeveloperは、JSFの標準タグ・ライブラリをサポートしています。これには、JavaServer Facesの仕様に定義されているUIComponentとHTML RenderKitレンダラのあらゆる組合せに対するJSFコンポーネント・タグが含まれます。

サポートされるすべての属性が大カッコ([ ])内に示されます。該当する場合は、デフォルトの値が提供されます(例: [disabled="false"])。属性の後に配置されるアスタリスク(*)は、値が必要であることを意味します。該当する場合は、サポートされる子とファセットのコンポーネントも示されます。

11.2.2.2 マネージドBeanの使用方法

バッキングBeanは、JSFページのUIコンポーネントに対するロジックとプロパティが含まれているマネージドBeanです。「JSFページの作成」ダイアログの「マネージドBean」タブには、コンポーネントを自動的にバインドするオプションがあります。このオプションを選択すると、作成しているページに対してデフォルトのバッキングBeanが作成され(または選択したマネージドBeanが使用され)、ページに配置したすべてのコンポーネントが、そのBeanの対応するプロパティに自動的にバインドされます。関連するアクセッサ・メソッドも作成されます。

図11-15 JSFの作成ダイアログ - マネージドBeanの作成タブ

「JSFページの作成」ダイアログを使用してJSFページを作成する場合、自動コンポーネント・バインディングとして「新規マネージドBeanでのUIコンポーネントの自動公開」または「既存のマネージドBeanでのUIコンポーネントの自動公開」の2つのオプションから選択します。

いずれかのオプションが有効になっている場合、作成しているページのマネージドBeanが使用され、ページにドラッグ・アンド・ドロップしたコンポーネントがBean内の対応するプロパティにバインドされます。

マネージドBeanを作成するには、次のようにします。

1. JSFまたはJSPXページを作成します。

2. 「マネージドBean」タブを選択します。

3. 「新規マネージドBeanでのUIコンポーネントの自動公開」を選択します。JSFページと同じ名前でmodel.backingディレクトリに配置される新規バッキング・マネージドBeanが作成されます。

4. 必要に応じて、JSFページに対してコンポーネント・タグの追加または削除を実行します。JDeveloperでは、バッキングBeanのプロパティと対応するアクセッサ・メソッドが自動的に追加または削除されます。属性にメソッド・バインディングが必要なコンポーネント・タグの場合は、プロパティ・インスペクタを使用してメソッド・バインディング式を入力し、ページのバッキングBean内の既存メソッドから選択します(メソッドをバッキングBeanに追加する方法については、後述の手順を参照)。または、新規メソッド名を入力できます。JDeveloperでは、ページのバッキングBeanに新規スケルトン・メソッドが作成されます。ロジックをメソッドに追加します。

メソッドをマネージドBeanに追加する手順は、次のとおりです。

1. ソース・エディタでバッキングBeanを開きます。

2. エディタの上部にあるメソッド・バインディング・ツールバーで、「コンポーネント」ドロップダウン・メニューからコンポーネントを選択します。

3. 「イベント」ドロップダウン・メニューから、作成するメソッドのタイプを選択します。コンポーネントに対するスケルトン・メソッドが追加されます。

4. // Add event code here...というコメント部分を適切なビジネス・ロジックで置換します。

JSF構成エディタを使用してマネージドBeanを作成するには、次のようにします。

1. アプリケーション・ナビゲータで、「faces-config.xml」ファイルをダブルクリックします。このファイルは、Web Content/WEB_INFディレクトリにあります。

2. ウィンドウの最下部で、「概要」タブを選択します。JSF構成エディタ・ウィンドウが表示されます。

3. 左側にある要素リストで、「Managed Bean」を選択します。

4. 「新規」をクリックして、「マネージドBeanの作成」ダイアログを開きます。

5. Beanの名前および完全修飾クラス・パスを入力します。

6. スコープを選択し、「Javaファイルの生成」チェック・ボックスを選択して「OK」クリックします。

7. この手順を実行すると、publicコンストラクタ・メソッドが含まれるマネージドBean用のJavaファイルが作成されます。すべてのプロパティと他のメソッドを手動で追加します。ファイルは、「クラス」の値として設定された完全修飾クラス名を使用して名前が設定され、配置されます。新規ファイルは、アプリケーション・ナビゲータのプロジェクトの「アプリケーション・ソース」ノード内、およびシステム・ナビゲータの定義済パッケージ内に表示されます。

11.2.2.3 自動コンポーネント・バインディングの使用方法

ページを作成し、自動コンポーネント・バインディングを選択した場合は、次の処理が自動的に行われます。

- バッキングBeanの作成を選択する場合、JSFまたはJSPXと同じ名前を使用したJavaBeanが作成され、view.backingパッケージに配置されます。バッキングBeanのfaces-config.xmlファイルにもマネージドBeanのエントリが作成されます。デフォルトでは、マネージドBean名は、backing_<page_name>で、このBeanではリクエスト・スコープが使用されます。

- 新規に作成されたBeanまたは選択されたBeanで、ページに配置した各コンポーネント・タグにプロパティとアクセッサ・メソッドが追加されます。

- EL式をバインディング属性の値として使用して、コンポーネント・タグがそのプロパティにバインドされます。作成時にフォーム・コンポーネントがJSFまたはJSPXページに自動的に配置されるため、フォーム・コンポーネントに対するプロパティとアクセッサ・メソッドは自動的に作成されます。

- ページからコンポーネントを削除すると、プロパティとメソッドが削除されます。

11.2.2.4 JSFページへのコンポーネントのバインド方法

JDeveloperを使用してデフォルトのバッキングBeanを作成して構成するか、または作成しているページに対して既存のマネージドBeanを使用できます。自動コンポーネント・バインディングが有効な場合は、JDeveloperによって、ページにドロップするコンポーネントのbinding属性が制御されます。表11-9に示すように、新規ギャラリで新規ページを作成する際のコンポーネント・バインディング・オプションを選択します。

表11-9 コンポーネント・バインディング・オプション

実行する処理

方法

JSFページに対してデフォルトのマネージドBeanを使用する

新規マネージドBeanでのUIコンポーネントの自動公開。デフォルト名をそのまま使用するか、名前を入力します。

JSFページに対して選択した既存のマネージドBeanを使用する

既存のマネージドBeanでのUIコンポーネントの自動公開。次に、ドロップダウン・リストからマネージドBeanを選択します。

11.2.2.5 EL式を使用したコンポーネントのバインド方法

JavaServer Facesには、JSFページでページBeanおよびWebアプリケーション内の他のBean (セッションBeanおよびアプリケーションBeanを含む)のJavaBeansコンポーネントにアクセスするために使用可能な式言語(JSF EL)が用意されています。コンポーネントのプロパティをバインドするには、プロパティ・インスペクタで、コンポーネントをページに追加し、コンポーネントを選択し、バインドを作成します。

図11-16に示すように、「式ビルダー」ダイアログ・ボックスを使用して、コンポーネント・プロパティをバインドするJavaBeansプロパティを選択し、ツールを使用してEL式を作成できます。

図11-16 「式ビルダー」ダイアログ

JSF式言語構文には、デリミタ#{}が使用されます。式には、UIコンポーネントまたは他の値を外部データソースにバインドするための値バインディング式や、バッキングBeanメソッドを参照するためのメソッド・バインディング式があります。

JSF値バインディング式に対してサポートされている構文は、次の例外を除いて、JavaServer Pages Specification (v 2.0)に定義されている構文とほとんど同じです。

- 値バインディング式の式デリミタは、${および}ではなく、#{および}です。

- 値バインディング式は、JSP式言語関数をサポートしていません。

有効な値バインディング式の例を次に示します。

- #{Page1.name}

- #{Foo.bar}

- #{Foo[bar]}

- #{Foo[“bar”]}

- #{Foo[3]}

- #{Foo[3].bar}

- #{Foo.bar[3]}

- #{Customer.status == 'VIP'}

- #{(Page1.City.farenheitTemp - 32) * 5 / 9}

- Reporting Period: #{Report.fromDate} to #{Report.toDate}

メソッド・バインディングの式では、次のパターンのいずれかを使用する必要があります。

- #{expression.value}

- #{expression[value]}

式言語では、.演算子と[]演算子の他に、次の演算子が用意されています。

- 算術: +、-(2項)、*、/とdiv、%とmod、-(単項)

- 論理: and、&&、or、||、not、!

- 関係: ==、eq、!=、ne、<、lt、>、gt、ge、>=、le。比較は、他の値(ブール、文字列、整数、浮動小数点リテラル)に対して行われます。
empty:empty演算子は、値がnullであるか、空であるかの判別に使用できる前置演算子です。

- 条件: A ?B : C。Aの評価の結果によって、BまたはCを評価します。

JSFテクノロジを使用するEL式を作成するには、次のようにします。

1. ビジュアル・エディタでJSPページを開きます。

2. バインドするコンポーネント属性を選択します。

3. プロパティ・インスペクタで属性名を選択します。

4. 属性アクション・ダイアログで、式ビルダーを選択します。

5. 式を構築して「OK」をクリックします。プロパティ・インスペクタで、そのコンポーネント・フィールドからEL式を編集できます。フィールド内をクリックすると、長い式が表示されます。「プロパティ・インスペクタ」フィールドから「コード・インサイト」を起動するには、[Ctrl]+[Space]を押します。また、コンポーネントをクリックし、「式ビルダー」をクリックしてEL式を追加または編集することもできます。

11.2.2.6 メソッド・バインディングが可能なコンポーネントの自動コンポーネント・バインディングの使用方法

ページの自動コンポーネント・バインディングは、コマンドおよび入力コンポーネントの次の属性に対するメソッド・バインディング式の入力方法に影響を与えます。

- action

- actionListener

- launchListener

- returnListener

- valueChangeListener

- validator

図11-16に示すように、「式ビルダー」ダイアログ・ボックスを使用して、バインドするコンポーネント・プロパティを選択します。

自動コンポーネント・バインディングが無効な場合

自動コンポーネント・バインディングが無効な場合は、コンポーネント属性にメソッド・バインディング式を入力するときに、既存のマネージドBeanを選択するか、新規のバッキングBeanを作成する必要があります。新規のバッキングBeanを作成した場合は、マネージドBeanがアプリケーションのfaces-config.xmlに自動的に構成されます。

自動コンポーネント・バインディングが有効な場合

自動コンポーネント・バインディングが有効な場合は、マネージドBeanを選択する必要はありません。コンポーネント属性にメソッド・バインディング式を入力するときに、Beanにある既存のメソッドから選択できます。または新規のメソッド名を入力すると、新規のスケルトン・メソッドが自動的に作成されます。その後、メソッドにロジックを追加します。

また、バッキングBeanであるJavaファイルを編集する際、メソッド・バインディング・ツールバーがソース・エディタに表示され、選択したページのコンポーネントに適切なメソッドをバインドできます。

myfile.jspというファイル名のJSFページを作成したとします。デフォルトのマネージドBeanを自動的に作成する場合、view.backing.Myfile.javaというバッキングBeanが作成され、ViewControllerプロジェクトの¥srcディレクトリに配置されます。このバッキングBeanはアプリケーション・リソース・ファイル(faces-config.xml)でマネージドBeanとして構成され、デフォルトのマネージドBean名はbacking_myfileとなります。

自動コンポーネント・バインディングが有効な場合、ページに挿入するコンポーネントは、例11-1および例11-2に示すように、バッキングBeanのプロパティに(binding属性を介して)自動的にバインドされます。

例11-1 デフォルトのマネージドBeanを使用したJSFページ(myfile.jsf)

...
<h:form binding="#{backing_myfile.form1}">
<h:inputText binding="#{backing_myfile.inputText1}"/>
<h:commandButton value="button0"
binding="#{backing_myfile.commandButton1}"
action="#{backing_myfile.commandButton_action}"/>
...
</h:form>
...

例11-2 デフォルトのバッキングBeanのJavaファイル: Myfile.java

package view.backing;
import javax.faces.component.html.HtmlForm
import javax.faces.component.html.HtmlCommandButton
import javax.faces.component.html.HtmlInputText;

public class Myfile
{
private HtmlForm form1;
public void setForm1(HtmlForm form1)
{
this.form1 = form1;
}
public HtmlForm getForm1()
}
return form1;
}
private HtmlInputText inputText1;
public void setInputText1(HtmlInputText inputText1)
{
public HtmlInputText getInputText1()
{
return inputText1;
}
private HtmlCommandButton commandButton1;
public void setCommandButton1(HtmlCommandButton commandButton1)
{
this.commandButton1 = commandButton1;
}
return commandButton1;
}
public String commandButton_action()
{
// Add event code here...
return null;
}
}

アプリケーション・リソース・ファイル(faces-config.xml)

...
<managed-bean>
<managed-bean-name>backing_myfile</managed-bean-name>
<managed-bean-class>view.backing.Myfile</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
</managed-bean>
...

JSFページをビジュアル・エディタで編集するときは、自動バインド・オプションの有効化/無効化を切り替えたり、マネージドBeanの選択を変更できます。

- 自動バインドが有効な状態でマネージドBeanの選択を変更する場合は、既存と新規のすべてのコンポーネント・バインディングが新規のBeanに切り替えられます。

- 自動バインドを無効にした場合、そのページの既存のコンポーネント・バインディングは変更されません。

- 自動バインドを有効にした場合、新規と既存のすべてのコンポーネント・バインディングは選択したマネージドBeanにバインドされます。

自動コンポーネント・バインディングを有効または無効にするには、次のようにします。

1. ビジュアル・エディタでJSFページを開きます。

2. 「設計」→「ページ・プロパティ」を選択します。

3. 「コンポーネント・バインディング」をクリックします。

4. 「自動バインド」オプションの選択を解除するか、このオプションを選択します。

JSFページで、自動コンポーネント・バインディング用のマネージドBeanを選択するには、次のようにします。

1. ビジュアル・エディタでJSFページを開きます。

2. 「設計」→「ページ・プロパティ」を選択します。

3. 「自動バインド」オプションが選択されていることを確認します。

4. ドロップダウン矢印をクリックして既存のマネージドBeanを選択するか、「新規...」をクリックして新規のマネージドBeanを定義します。バインドされている既存のコンポーネントと、新たに挿入したコンポーネントのすべてが、選択したマネージドBeanにバインドされます。

コンポーネントをプロパティに値バインドするには、次のようにします。

1. ビジュアル・エディタでコンポーネントを選択します。

2. プロパティ・インスペクタで、適切なフィールドのドロップダウン・メニューをクリックし、「式ビルダー」を選択します。

3. Beanのプロパティまたはリソース・バンドル内の値にバインドするEL式を入力します。

コンポーネント・インスタンスをプロパティに手動でバインドするには、次のようにします。

1. ビジュアル・エディタでコンポーネントを選択します。

2. プロパティ・インスペクタで、Binding属性の横にある下矢印をクリックします。Bindingダイアログが表示されます。

3. マネージドBeanを選択するか、「新規...」をクリックして新規のBeanを作成します。

4. ドロップダウン・メニューを使用して既存のプロパティを選択するか、「プロパティ」の横にある「新規...」をクリックして新規プロパティ名を追加します。

5. 終了したら、「OK」をクリックします。新規プロパティを作成した場合は、このプロパティが選択したBeanにアクセッサ・メソッドのコードとして挿入されます。

自動コンポーネント・バインディングを使用して既存のメソッドにバインドするには、次のようにします。

1. ビジュアル・エディタで、コンポーネントを選択します。自動コンポーネント・バインディングを使用して既存のメソッドにバインドするには、該当するメソッドが、JSFページに関連付けられているバッキングBeanにすでに存在している必要があります。

2. プロパティ・インスペクタで、メソッド・バインディングを受け入れる属性の横にある列をクリックします。

3. ドロップダウン・メニューをクリックし、メソッド名を選択します。選択できるのは、適切なシグネチャのあるバッキングBeanのメソッドのみです。

自動コンポーネント・バインディングを使用して新規デフォルト・メソッドにバインドするには、次のようにします。

1. 関連付けられているバッキングBeanを開きます。

2. ソース・エディタで、メソッド・バインディング・ツールバーを使用し、「コンポーネント」ドロップダウン・メニューからコンポーネントを選択します。

3. 「イベント」ドロップダウン・メニューから適切な属性を選択します。ページの下部にデフォルト・メソッドが挿入されます。カーソルは、新規メソッドに置かれます。JSFページにはバインディング式も作成されます。

4. ソース・エディタで、メソッドのコードを入力します。

自動コンポーネント・バインディングを使用して新規メソッドにバインドするには、次のようにします。

1. ビジュアル・エディタでコンポーネントを選択します。

2. プロパティ・インスペクタで、メソッド・バインディングを受け入れる属性の横にある列をクリックします。

3. メソッド名(例: myMethod)を入力します。Action属性では文字列またはメソッドのいずれかを使用できるため、アクション・メソッドにはカッコを含める必要があります(例: myAction())。他のメソッドの場合、カッコは省略する必要があります。関連付けられたバッキングBean内にスケルトン・メソッドが作成され、JSFページにバインディング・コードが作成されます。

4. ソース・エディタで、メソッドのコードを入力します。

自動コンポーネント・バインディングを使用しないでメソッドをバインドするには、次のようにします。

1. ビジュアル・エディタでコンポーネントを選択します。プロパティ・インスペクタで、メソッド・バインディングを受け入れる属性の横にあるドロップダウン・メニューをクリックします。

2. マネージドBeanを選択するか、「新規...」をクリックして新規のマネージドBeanを作成します。

3. ドロップダウン・メニューを使用して既存のメソッドを選択するか、「メソッド」の横にある「新規...」をクリックして新規メソッド名を追加します。

4. 「OK」をクリックします。JSFページにバインディング・コードが作成されます。新規メソッドを作成した場合は、バッキングBeanにデフォルト・メソッドのコードが自動的に挿入されます。

5. ソース・エディタでBeanを開き、メソッドのコードを入力します。

11.2.2.7 JSFでのローカライズ・リソース・バンドルの使用方法

JSFアプリケーション・コンポーネントで構築するすべてのコンテンツはリソース・バンドルに格納されます。リソース・バンドルは、「デフォルト・プロジェクト・プロパティ」ダイアログで簡単にアプリケーションに追加したりアプリケーションから削除できます。

開発時に、コンポーネントを右クリックしてテキスト・リソースを選択します。プロジェクトに使用可能なリソース・バンドルが表示されます。作業対象のプロジェクトで使用可能にするリソース・バンドルを選択します。選択したリソース・バンドルに新規テキストが格納されます。

キー値文字列を割り当てることにより、リソース・バンドル内のテキスト・オブジェクトを一意に特定することもできます。デフォルトでは、表示名として入力した名前または名前の一部を使用します。この値は、ローカライズされたパートナにベース・コンテンツを関連させるためトランスレータによって使用されます。新規コンテンツを追加する場合、リソース・バンドルに前に追加した既存のコンテンツ文字列が使用可能で表示されます。既存のコンテンツ文字列を使用すると、ローカライゼーションに要する労力を最大限に活用でき、別の識別子を持つ重複文字列がすでに存在する際に一意の識別子を持つ新規コンテンツ文字列を追加しなくてすみます。リソース・バンドルを使用してプロジェクトおよびアプリケーション全体にわたってコンテンツ文字列を再利用することにより、翻訳に要する労力とコストを削減できます。

JSFアプリケーションにリソース・バンドルを追加するには、次のようにします。

プロジェクトにリソース・バンドルを追加するには、「アプリケーション」→「プロジェクト・プロパティ」→「リソース・バンドル」→「バンドル検索」を選択します。プロジェクトのリソース・バンドルを検索し、クリックしてプロジェクトに追加します。

JSFページでは、値バインディング式(例: #{bundle.key})を受け入れるどのコンポーネント・タグ属性からでもリソース・バンドル文字列を参照できます。

JSFでローカライズ・リソース・バンドルを使用する手順は、次のとおりです。

1. ローカライズ・メッセージおよびデータ文字列に対するキーと値のペアを含んだリソース・バンドルを作成します。ローカライズ・バンドルをアプリケーションのクラスパスに配置します。

2. アプリケーション・ナビゲータで、「faces-config.xml」をダブルクリックしてJSF構成エディタで開きます。必要な場合は、「概要」に切り替えます。

3. 「アプリケーション」をクリックし、右矢印をクリックして「ロケール構成」を開きます。

4. 「ロケール構成」の下にある「デフォルトのロケール」の値を入力します。「サポートされているロケール」で、「新規」をクリックして、サポートされているロケールに対するISOロケール識別子を追加します。サポートされているロケールは複数追加できます。

5. ビジュアル・エディタでJSFページを開きます。

6. コンポーネント・パレットで、ドロップダウン・リストから「JSF Core」を選択し、LoadBundleをページにドラッグ・アンド・ドロップします。リソース・バンドルのベース名、およびリクエスト・スコープで使用されるマップ変数の任意の名前を入力するためのダイアログが表示されます。

例11-3 リソース・バンドルのコード例

faces-config.xml内:

<faces-config>
<application>
<locale-config>
<default-locale>en</default-locale>
<supported-locale>en-us</supported-locale>
<supported-locale>fr</supported-locale>
<supported-locale>es</supported-locale>
</locale-config>
</application>
...
</faces-config>

JSFページ内:

...

<f:loadBundle basename="model.login.ApplicationMessages" var="loginBundle"/>
<f:view>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252"/>
<title>Sample Application</title>
<link href="css/mycompany.css" rel="stylesheet" media="screen"/>
</head>
<body>
<H2><h:outputText value="#{loginBundle.someHeadLabel}" /></H2>
<h:form id="loginForm">
<h:outputText value="#{loginBundle.useridLabel}" />
<h:inputText id="userid" value="#{login.userid}"
required="true" size="15">
<f:validateLength minimum="4" maximum="7"/>
</h:inputText>
<h:commandButton value="#{loginBundle.loginLabel}
action="someBean.someMethod"} />
...
</h:form>
</body>
</html>
</f:view>

11.2.2.8 ファセットの使用方法

ファセットは多くのコンポーネントで使用されているため、ウィザードを使用して複雑なコンポーネント(表やパネルなど)を作成すると、多くの場合、出力タグが自動的に作成されてファセット内に挿入されます。これらのコンポーネントの編集、およびファセットへの他のコンポーネントの追加は手動で実行できます。「構造」ウィンドウのポップアップ・メニューを使用してファセットの追加または削除を行うこともできます。

ファセットを使用する手順は、次のとおりです。

1. 「構造」ウィンドウで、親タグの左側にあるプラス記号をクリックし、親タグ(h:dataTableなど)を開きます。ツリーの下部にファセット・フォルダが表示されます。

2. 「+」アイコンをクリックしてファセット・フォルダを開きます。その親に関連するすべてのファセット・フォルダが表示されます。

3. ファセット・フォルダ内のコンポーネントを編集する手順は、次のとおりです。

- フォルダを開き、コンポーネントを選択します。

- プロパティ・インスペクタを使用して属性値を編集します。

4. ファセットにコンポーネントを追加する手順は、次のとおりです。

- フォルダを右クリックします。

- 「<facet-name>の中に挿入」を選択します。

- 結果のメニューを使用して、適切なオブジェクトを選択します。

- プロパティ・インスペクタを使用して属性値を設定します。

11.2.2.9 Faceletsを使用したJSFビューの構築方法

FaceletsテクノロジにはJSFカスタム・コンポーネントがネイティブに使用されているため、Faceletsを使用すると、JSFコンポーネント用のカスタム・タグを作成する必要がなくなります。JSFとFaceletsをブリッジするために必要な特別コーディングはごくわずかです。JSFコンポーネントはFaceletsのテンプレート作成言語内で直接使用できます。Faceletsを使用すると、ページに直接インクルードしたりFaceletsのタグ・ライブラリに簡単に追加できるコンポーネント・アセンブリを定義できます。また、Faceletsを使用して、サイト・テンプレート(およびこれより小さいテンプレート)を定義することもできます。さらに、FaceletsのAPIは簡単に統合可能なインタフェースを備えているため、FaceletsはカスタムJSFコンポーネント内で使用することもできます。

Faceletsテクノロジは、次の機能を提供します。

- UIの開発およびデプロイ時間の短縮

- コンパイル時間の短縮

- コンパイル時間の検証

- パフォーマンスの高いレンダリング

- カスタマイズを介したコンポーネントおよびサーバー側のテクノロジの機能拡張

- テンプレート作成コンポーネントおよびコンポジット・コンポーネントを介したコードの再利用のサポート

Faceletsのタグ・ライブラリ

JSFでは、様々なタグを使用してWebページのUIコンポーネントを表現します。Faceletsは、XMLネームスペース宣言を使用してJSFタグ・ライブラリのメカニズムをサポートしています。これらすべてのライブラリはJDeveloperに含まれます。

表11-10 JDeveloperに含まれるFaceletsのタグ・ライブラリ

タグ・ライブラリ

URI

接頭辞

例

内容

JSF UIタグ・ライブラリ

http://java.sun.com/javaee/javaserverfaces/reference/api/

ui:

ui:component

ui:insert

このタグ・ライブラリは、テンプレート作成に使用されます。

JSF HTMLタグ・ライブラリ

http://java.sun.com/javaee/javaserverfaces/reference/api/

h:

h.head

h.body

h.outputText

h.inputText

このタグ・ライブラリには、JavaServer Faces 2.0の仕様に定義されているUIComponentとHTML RenderKitレンダラのあらゆる組合せに対するJavaServer Facesコンポーネント・タグが含まれます。

JSF Coreタグ・ライブラリ

http://java.sun.com/products/jsp/jstl/reference/docs/index.html

f:

f:actionListener

f:attribute

このタグ・ライブラリには、特定のRenderKitに依存しないJavaServer Facesカスタム・アクションのタグが含まれます。

JSTL関数ライブラリ

http://java.sun.com/jsp/jstl/functions

fn:

fn:toUpperCase

fn:toLowerCase

JSTL 1.1関数タグ・ライブラリ

Faceletsは、JSP 2.1によって定義されるユニファイドEL構文に基づいてEL(式言語)をサポートします。EL式を使用して、UIコンポーネントのオブジェクトおよび値やマネージドBeanメソッドまたはマネージドBeanプロパティをバインドします。FaceletsのユニファイドELでは、${}と#{}は区別されません。

Faceletsを作成するには、次のようにします。

1. 「ファイル」→「新規」→「新規ギャラリ」→「Web層」→「JSF/Facelets」→「ページ」を選択します。

2. Faceletsのファイル名とパスを入力し、「OK」をクリックします。

Faceletウィザードの処理内容

Faceletsを作成する場合、次の方法でFaceletsテクノロジを使用するよう必要なクラスパスおよびデプロイメント・ファイルが変更されます。

- 例11-4 web.xmlに追加されるFaceletsコード

<context-param>
<param-name> Facelets.VIEW_MAPPINGS </param-name>
<param-value> *.xhtml</param-value>
</context-param>

例11-5 ADFに追加されるFaceletsコード

<context-param>
<param-name&g;torg.apache.myfaces.trinidad.FACELETS_VIEW_MAPPINGS</param-name>
<param-value>*.xhtml</param-value>
</context-param>

これが追加されることにより、デフォルトのJSPマッピングを使用せずに、Faceletsが正しく表示されるようになります。Facelets JARのjsf-Facelets.jarは、Faceletsランタイム・ライブラリを介してクラスパスに追加されます。

11.2.2.10 JSF入力データの変換および検証方法

JDeveloperには、JSF入力データの変換および検証を容易にするために様々なツールやコンポーネントが用意されています。名前付きコンバータ・インスタンスや変換番号を登録したり、コンポーネント・パレットで日時を自由に変換するためのコンバータ・コンポーネントがあります。

コンバータ・プロパティおよびバリデータ・プロパティは、faces-config.xmlファイルの概要エディタで構成できます。

提供されているタグを使用してコンポーネントにJSF標準コンバータを登録する手順は、次のとおりです。

1. ビジュアル・エディタで、標準コンバータを登録するコンポーネントを選択します。

2. コンポーネント・パレットで、ドロップダウン・リストから「JSF Core」を選択し、標準コンバータ(例: ConvertDateTime)をクリックします。

3. プロパティ・インスペクタで、コンバータに対する属性を設定します。

例11-6 登録された標準コンバータのコード例

<h:inputText id="hiredate" value="#{employee.hireDate}"
<f:convertDateTime dateStyle="full"/>
<f:convertDateTime dateStyle="full"/>
</h:inputText>

固有のタグのないJSF標準コンバータを登録する手順は、次のとおりです。

1. ビジュアル・エディタで、標準コンバータを登録するコンポーネントを選択します。

2. コンポーネント・パレットで、ドロップダウン・リストから「JSF Core」を選択し、「コンバータ」をクリックします。コンバータの登録済IDを入力するためのダイアログが表示されます。

3. ドロップダウン・リストからコンバータID (例: javax.faces.Integer)を選択します。終了後は、「OK」をクリックします。ページにf:converterタグが挿入されます。f:converterタグを使用するかわりに、プロパティ・インスペクタを使用して、コンバータIDをコンポーネントのconverter属性に入力することもできます。

例11-7 コンポーネント内のf:converterタグを使用して登録された標準コンバータのコード例

<h:inputText id="age" ...>
<f:converter converterId="javax.faces.Integer" />
</h:inputText>

例11-8 コンポーネント内のf:converter属性を使用して登録された標準コンバータのコード例

<h:inputText id="age" converter="javax.faces.Integer" />

標準タグを使用してコンポーネントにJSF標準バリデータを登録する手順は、次のとおりです。

1. ビジュアル・エディタで、標準バリデータを登録する入力コンポーネントを選択します。

2. コンポーネント・パレットで、ドロップダウン・リストから「JSF Core」を選択し、選択する標準バリデータ(例: ValidateLength)をクリックします。

3. プロパティ・インスペクタで、バリデータに対する属性を設定します。1つのコンポーネントに複数のバリデータを登録できます。JSFによって、コンポーネントに追加された順にバリデータがコールされます。

例11-9 提供されたタグを使用して登録された標準バリデータのコード例

<h:inputText id="zip" value="#{employee.zipCode}">
<f:validateLength minimum="5" maximum="9"/>
</h:inputText>

<h:inputText id="bonus" value="#{employee.bonus}">
<f:validateLongRange minimum="#{MyBean.miminum}"/>
</h:inputText>

変換または検証エラーを生成したコンポーネントの横にメッセージを表示する手順は、次のとおりです。

1. ビジュアル・エディタでページを開きます。

2. プロパティ・インスペクタを使用して、メッセージを表示するコンポーネントに一意のIDを割り当てます。

3. コンポーネント・パレットで、ドロップダウン・リストから「JSF」を選択し、「Message」をページにドラッグ・アンド・ドロップし、メッセージを表示するコンポーネントの横に配置します。一意のIDを入力するためのダイアログが表示されます。

4. IDを入力し、「OK」をクリックします。

5. プロパティ・インスペクタで、メッセージ・タグの属性を設定します。

例11-10 変換または検証エラーを生成したコンポーネントの横に表示されるメッセージのコード例

<h:form>
<h:inputText id="zip" value="#{employee.zipCode}">
<f:validateLength minimum="5" maximum="9"/>
</h:inputText>
<h:message for="zip"/>
</h:panelGrid>
<h:commandButton value="Submit" />
</h:form>

JSFアプリケーション構成ファイルでカスタムのコンバータまたはバリデータを登録する手順は、次のとおりです。

1. アプリケーション・ナビゲータで、アプリケーションの「faces-config.xml」ファイルをダブルクリックしてJSF構成エディタで開きます。エディタで、「概要」タブをクリックします。

2. 構成エディタの「概要」ページで、「コンバータ」または「バリデータ」をクリックし、「新規」をクリックします。「コンバータの作成」または「バリデータの作成」ダイアログが表示されます。表示されたダイアログで、識別子および完全修飾クラス名を入力します。カスタム・コンバータの場合は、特定のデータ型に対する識別子または完全修飾クラス名で登録できます。

3. 必要な情報を入力します。「OK」をクリックします。

4. (オプション)属性またはプロパティを追加するには、「属性」または「プロパティ」パネルの横にある「新規」をクリックします。「新規」が表示されていない場合は、右矢印をクリックしてパネルを開きます。「属性の作成」または「プロパティの作成」ダイアログが表示されます。表示されたダイアログで、カスタムのコンバータまたはバリデータに構成可能な汎用属性またはJavaBeansプロパティを指定します。

アプリケーションでカスタムのコンバータまたはバリデータ構成を編集するには、次のようにします。

1. アプリケーション・ナビゲータで、アプリケーションの「faces-config.xml」ファイルをダブルクリックしてJSF構成エディタで開きます。エディタで、「概要」タブをクリックします。

2. 構成エディタの概要ページで、「コンバータ」または「バリデータ」をクリックします。表示されたリストからコンバータまたはバリデータを選択し、「編集」をクリックします。コンバータまたはバリデータのプロパティ・ダイアログが表示されます。

3. 必要な変更を入力します。

JSFアプリケーション構成ファイルでカスタムのコンバータまたはバリデータを削除する手順は、次のとおりです。

1. アプリケーション・ナビゲータで、アプリケーションの「faces-config.xml」ファイルをダブルクリックしてJSF構成エディタで開きます。エディタで、「概要」タブをクリックします。

2. 構成エディタの概要ページで、「コンバータ」または「バリデータ」をクリックします。表示されたリストからコンバータまたはバリデータの定義を選択し、「削除」をクリックします。コンバータまたはバリデータの定義が削除されます。

コンバータ識別子を使用してコンポーネントにカスタム・コンバータを登録する手順は、次のとおりです。

1. ビジュアル・エディタで、カスタム・コンバータを登録するコンポーネントを選択します。

2. コンポーネント・パレットで、「JSF Core」ページを選択し、「コンバータ」をクリックします。アプリケーションに登録されているとおりにカスタム・コンバータIDを入力するためのダイアログが表示されます。

3. ドロップダウン・リストから登録済コンバータ識別子を選択します。選択できるのはconverterインタフェースの実装のみです。「OK」をクリックします。f:converterタグが挿入されます。プロパティ・インスペクタを使用して、登録済コンバータIDを入力できます。

例11-11 f:converterタグを使用したカスタム・コンバータのコード例

<h:inputText id="memberNumber" ... >
<f:converter converterId="customConverter"/>
</h:inputText>

例11-12 converter属性を使用したカスタム・コンバータのコード例

<h:inputText id="memberNumber" converter="customConverter"/>

値バインディング式を使用してコンポーネントにカスタム・コンバータを登録する手順は、次のとおりです。

1. ビジュアル・エディタで、登録するコンポーネントを選択します。

2. プロパティ・インスペクタで、converterプロパティを選択し、ドロップダウン矢印をクリックし、式ビルダーを選択します。

3. 式ビルダーを使用してEL式を入力します。converterプロパティを使用するかわりに、f:converterタグをコンポーネントに追加できます。式ビルダーを使用して値バインディング式を入力します。Beanプロパティは、converterインタフェースを実装するクラスのオブジェクトである必要があります。

例11-13 値バインディング式を使用したカスタム・コンバータ・インスタンスのコード例

<h:inputText id="age" converter="#{someBean.someProperty}" />

コンポーネントにカスタム・バリデータ・インスタンスを登録する手順は、次のとおりです。

1. ビジュアル・エディタで、使用する入力コンポーネントを選択します。

2. コンポーネント・パレットで、ドロップダウン・リストから「JSF Core」ページまたは「ADF Facesコア」ページを選択し、「Validator」コンポーネントをクリックします。

3. プロパティ・インスペクタで、ドロップダウン・リストから登録済バリデータ識別子を選択するか、バインディング式を入力します。「OK」をクリックします。

例11-14 登録されたカスタム・バリデータ・インスタンスのコード例

<h:inputText id="name"
value="#{MyBean.name}"
size="10" ... >
<f:validator validatorId="customValidator" />
<f:attribute name="someName" value="someValue" />
</h:inputText>

コンポーネントを新規バリデータ・メソッドにバインドする手順は、次のとおりです。

1. ビジュアル・エディタで、入力コンポーネントをダブルクリックします。「バインドValidatorプロパティ」ダイアログが表示されます。

2. 「マネージドBean」ドロップダウン・リストからマネージドBeanを選択します。新規マネージドBeanを作成する場合は「新規...」をクリックします。

3. 「メソッド」に新規メソッドの名前を入力するか、デフォルトの名前をそのまま使用します。

4. 「OK」をクリックします。バッキングBeanにデフォルトのバリデータ・メソッド・コードが挿入され、バッキングBeanの.javaファイルがソース・エディタで開きます。カーソルは、新規メソッドに置かれます。

5. ソース・エディタで、バリデータ・メソッドのコードを入力します。

例11-15 新規バリデータ・メソッドにバインドされたコンポーネントのコード例

自動コンポーネント・バインディングが無効な状態のJSFページ

<h:selectOneMenu validator="#{nonauto.validatename1}">
<f:selectItems value=""/
</h:selectOneMenu>

デフォルトのバリデータ・メソッド・コード

...
public void validatename1(FacesContext facesContext, UIComponent uiComponent, Object object)
{
// Add event code here...
}
...

自動コンポーネント・バインディングが有効な状態のJSFページ

<h:selectOneMenu binding="#{backing_auto.selectOneMenu1}"
validator="#{backing_auto.selectOneMenu_validator}">
<f:selectItems value="" binding="#{backing_auto.selectItems2}"/>
</h:selectOneMenu>

デフォルトのバリデータ・メソッド・コード

...
public void selectOneMenu_validator(FacesContext facesContext, UIComponent uiComponent, Object object)
{
// Add event code here...
}
...

JSF標準コンバータおよびバリデータのタグと構文

JDeveloperでサポートされているすべての属性を表11-11および表11-12に示します。大カッコ([ ])で囲まれている属性は必須ではありません。事前定義の受入れ可能な全属性値が縦線(|)で区切られ、デフォルト値は太字で表示されます。受け入れられる固定の値セットがない属性については、値がイタリック体で表示されます。

表11-11 JSF標準コンバータのタグ

タグ

構文

f:convertDateTime

<f:convertDateTime

[dateStyle="default|short|medium|long|full"]

[timeStyle="default|short|medium|long|full"]

[pattern="pattern"]

[type="time|date|both"]

[locale="locale"]

[timezone="timezone"]

/>

f:convertNumber

<f:convertNumber

[pattern="pattern"]

[minIntegerDigits="min"]

[maxIntegerDigits="max"]

[minFractionDigits="min"]

[maxFractionDigits="max"]

[groupingUsed="true|false"]

[integerOnly="true|false"]

[type="number|currency|percent"]

[currencyCode="currencyCode"]

[currencySymbol="currencySymbol"]

[locale="locale"]

表11-12 JSF標準バリデータのタグ

タグ

構文

f:validateDoubleRange

<f:validateDoubleRange

[maximum="max]

[minimum="min"]

/>

f:validateLength

<f:validateLength

[maximum="max"]

[minimum="min"]

/>

f:validateLongRange

<f:validateLongRange

[maximum='max"]

[minimum="min"]

/>

11.2.2.11 エラー・メッセージの表示方法

属性を定義するためのプロパティ・インスペクタおよびMessageコンポーネントを使用してエラー・メッセージを作成および定義します。

エラーを生成したコンポーネントの横に1つのエラー・メッセージを表示する手順は、次のとおりです。

1. ビジュアル・エディタでJSFページを開きます。

2. メッセージを表示するコンポーネントに一意のIDを割り当てます。IDの割当てには、プロパティ・インスペクタを使用します。

3. コンポーネント・パレットで、ドロップダウン・リストから「JSF」を選択し、Messageをページにドラッグ・アンド・ドロップし、メッセージを表示するコンポーネントの横に配置します。メッセージを表示するコンポーネントのIDを入力するためのダイアログが表示されます。

4. For*の横にある列をクリックして、コンポーネントのIDを入力します。次に、「OK」をクリックします。

5. プロパティ・インスペクタで、メッセージ・タグの属性を設定します。

例11-16 コンポーネントの横にあるエラー・メッセージのコード例

<h:panelGrid columns="3>
<h:outputLabel for="enum" value="Enter employee number: "/>
<h:inputText id="enum" converter="javax.faces.Long" >
<f:validateLength minimum="5" maximum="9"/>
</h:inputText>
<h:commandButton value="submit"/>
<h:message for="enum"/>
</h:panelGrid>

ヒント:

コンポーネントの詳細メッセージが実行時にツールチップとして表示されるようにするには、メッセージ・タグのtooltip属性をtrueに設定します。タグのshowSummaryおよびshowDetail属性もtrueに設定する必要があります。ADFデータ・コントロールを使用してJSFのフォームや表を作成している場合、デフォルトですべてのエラー・メッセージを表示するh:messagesタグが自動的に追加されます。個々のh:messageタグを手動で追加する必要はありません。

ページで生成されたすべてのエラー・メッセージを表示する手順は、次のとおりです。

1. ビジュアル・エディタでJSFページを開きます。

2. コンポーネント・パレットで、ドロップダウン・リストから「JSF」を選択し、Messagesをページにドラッグ・アンド・ドロップし、ページの最上部に配置します。

3. プロパティ・インスペクタで、Messagesタグの属性を設定します。

例11-17 すべてのエラー・メッセージの表示のコード例

<h:form>
<h:messages globalOnly="true" layout="table"/>
...
</h:form>

ヒント:

コンポーネントに関連付けられていないグローバル・メッセージのみを表示する場合は、globalOnly属性をtrueに設定します。ADFデータ・コントロールを使用してJSFのフォームや表を作成している場合、JDeveloperでは、h:messagesタグが自動的に追加されます。タグを手動で追加する必要はありません。

JSFの標準メッセージ・テキストを置換する手順は、次のとおりです。

1. 置換テキストに対するキーと値のペアを含んだプロパティ・リソース・バンドルを作成し、このバンドルをアプリケーションのクラスパスに配置します。

2. アプリケーション・ナビゲータで、「faces-config.xml」をダブルクリックしてJSF構成エディタで開きます。「概要」モードに移動します。

3. 「アプリケーション」をクリックします。

4. 「メッセージ・バンドル」で、メッセージ・リソース・バンドルの完全修飾パス(例: model.login.Resources)に追加します。

5. JSFページで、エラー・メッセージを1つ表示するにはh:messageタグを使用し、エラー・メッセージをすべて表示するにはh:messagesタグを使用します。JSFでは、JSF標準バンドルが検索される前に、登録されているリソース・バンドル内のメッセージが検索されます。この方法で、リソース・バンドルで適切なキーを使用して、JSF標準メッセージをオーバーライドできます。メッセージのリストは、JSF API javax/faces/Messages.propertiesを参照してください。

メッセージの対象のフォーム・フィールドに関する情報を追加する手順は、次のとおりです。

1. 汎用属性を取得してメッセージに追加するPhaseListener実装を作成します。

2. アプリケーション・ナビゲータで、「faces-config.xml」をダブルクリックしてJSF構成エディタで開きます。必要な場合は、「概要」モードに切り替えます。

3. 「ライフ・サイクル」をクリックし、「新規」をクリックしてカスタム・フェーズ・リスナーを追加します。

4. 「フェーズ・リスナーの作成」で、フェーズ・リスナー実装の完全修飾パスを入力するか、または「参照」をクリックしてパスを選択します。

5. JSFページを開き、対象の入力コンポーネントを探します。

6. コンポーネント・パレットで、ドロップダウン・リストから「JSF Core」を選択し、Attributeを入力コンポーネントにドラッグ・アンド・ドロップします。必要な汎用属性の情報を入力するためのダイアログが表示されます。

JSFページのエラー・メッセージの表示形式を変更する手順は、次のとおりです。

1. ビジュアル・エディタで、選択したJSFページを開きます。

2. CSSスタイルシートをページにリンクします。

3. h:messageまたはh:messagesコンポーネントを選択します。

4. プロパティ・インスペクタで、特定のタイプのメッセージに適用するCSSクラスを設定します。たとえば、重大度レベルが「ERROR」のメッセージで特定のスタイルシートを使用する場合は、CSSファイルに定義されているスタイル・クラスの名前をErrorClass属性に設定します。この手順を実行するには、プロパティ・インスペクタでErrorClassの隣の列をクリックして、スタイル・クラスを選択します。

注意:

1つ以上のインライン・スタイルを使用するには、プロパティ・インスペクタでErrorStyleを開き、指定するスタイルの横(例: background-color)に値を入力するか、または選択します。

例11-18 エラー・メッセージの表示形式の変更のコード例

In CSS file: mystyles.css:

.error {
font-style: italic;
color:red;
}

.prompt {
color:blue;
}

In the JSF file:

...
<f:view>
<html>
<head>
<link media="screen" rel="stylesheet" href="css/mystyles.css"/>
</head>
<body>
<form>
<h:inputText id="someid" value="{somebean.someproperty}"/
<h:message for="id" errorClass="error"/>
<h:outputText value="{}" styleClass="prompt"/>
...
</form>
</body>
</html>
</fview>
...

11.2.2.12 JSFアプリケーションの構成方法

マネージドBean、カスタム・バリデータ、コンバータなどのJSFアプリケーションのリソースを登録し、アプリケーション構成ファイルでナビゲーション・ルールを定義します。通常、このJSF構成ファイルの名前はfaces-config.xmlです。

JSFでは、単一のfaces-config.xmlファイルに複数の<application>要素を含めることが可能です。JSF構成ファイルの概要エディタで編集できるのは、ファイル内の最初のインスタンスのみです。他の<application>要素については、XMLソース・エディタを使用してファイルを直接編集する必要があります。

参照先Beanはfaces-config.xmlファイル内に構成します。このファイルにBeanを宣言することで、設計時ツールは、設計時には使用できないが、実行時に使用できるBean(データ・アクセスなど)を理解できます。

JSF Webアプリケーション・テンプレートのいずれかを使用してアプリケーションを作成すると、WEB-INF/faces-config.xmlファイルが自動的に作成されます。ただし、複数のJSF構成ファイルを設定することもできます。アプリケーションの別の領域に個別の構成ファイルが必要な場合は、複数の構成ファイルを設定できます。また、カスタム・コンポーネントまたはカスタム・レンダラ(あるいはその両方)を含むパッケージ化されたライブラリを使用する場合は、ライブラリごとに個別のfaces-config.xmlファイルが必要です。その場合、構成ファイルは、(WEB-INFディレクトリではなく)META-INFディレクトリに格納されます。

構成ファイルの概要エディタを使用して<application>要素を設定する手順は、次のとおりです。

1. JSF構成ファイルの概要エディタを開きます。

2. 左側の列で、「アプリケーション」を選択します。エディタのメイン領域には、構成する各子要素が表示されます。要素の値を指定しない場合は、デフォルトのJSF実装クラスが使用されます。

3. メイン領域で、テキスト・フィールドに子要素に対応するクラス名を移入します。完全修飾クラス名を値として取得するすべての要素について、「参照」ボタンを使用すると、クラス・ブラウザを起動してクラスを検索できます。フィールドを終了すると、値がXMLファイルに移入されます。

JSF構成エディタを使用して構成ファイルにBeanを追加する手順は、次のとおりです。

1. アプリケーション・ナビゲータで、「faces-config.xml」ファイルをダブルクリックします。このファイルは、Web Content/WEB_INFディレクトリにあります。

2. ウィンドウの最下部で、「概要」タブを選択します。JSF構成エディタ・ウィンドウが表示されます。

3. 左側にある要素リストから「参照先のBean」を選択します。

4. 「新規」、「編集」および「削除」ボタンを使用して、Beanを構成します。

構成ファイルにBeanを手動で追加する手順は、次のとおりです。

1. アプリケーション・ナビゲータで、「faces-config.xml」ファイルをダブルクリックします。このファイルは、Web Content/WEB_INFディレクトリにあります。

2. ウィンドウの下部にある「ソース」タブを選択します。ファイルがXMLソース・エディタで開きます。

3. 参照先Beanの要素を追加します。

新規のJSF構成ファイルを作成する手順は、次のとおりです。

1. アプリケーション・ナビゲータで、新規の構成ファイルを追加するプロジェクトを選択します。プロジェクトにはWEB-INFノードが含まれ、このノードにweb.xmlファイルが含まれています。

2. プロジェクト・ノードを右クリックし、ポップアップ・メニューから「新規」を選択します。

3. 新規ギャラリで、「カテゴリ」ツリーに進み、「Web層」ノードを開き、「JSF/Facelets」を選択します。

4. 「項目」リストで、JSFページ・フローと構成を選択します。

5. 「OK」をクリックします。JSF構成ファイルの作成ダイアログが開きます。

6. 構成ファイルの目的に従って、値を設定します。アプリケーションの構成ファイルを追加する場合:

1. 新規構成ファイルの「ファイル名」を入力します。

2. 「ディレクトリ」を確認または変更します。

3. 「参照をWeb.xmlに追加」チェック・ボックスの選択を解除します。選択すると、新規ファイル名がweb.xmlに追加され、アプリケーションの構成の一部としてJSFで読み込まれるようになります。

4. 「OK」をクリックします。これによって、入力した名前を使用して新規の構成ファイルが作成されます。

7. カスタム・コンポーネント、またはライブラリの.jarで提供された他のJSFクラスの構成ファイルを作成する場合:

1. ファイル名を「faces-config.xml」に設定します。

2. 「ディレクトリ名」を「META-INF」に変更します。

3. 「参照をWeb.xmlに追加」チェック・ボックスの選択を解除します。

4. 「OK」をクリックします。これによって、入力した名前を使用して新規の構成ファイルが作成されます。この構成ファイルは、コンポーネントまたはクラスの配布に使用する.jarファイルに含めることができます。

JSF構成ファイルの編集:

1. アプリケーション・ナビゲータで、編集する構成ファイルを検索します。デフォルトの構成ファイルはfaces-config.xmlです。このファイルは、JSFプロジェクトのWEB-INFノードにあります。

2. ファイルをダブルクリックして開きます。

3. デフォルトでは、ナビゲーション・ダイアグラマが表示されます。エディタを選択するには、エディタ・ウィンドウ下部にあるタブの1つをクリックします。次のようにします。

- JSFナビゲーション・ダイアグラマ: 「ダイアグラム」をクリックします。

- JSF構成ファイルの概要エディタ: 「概要」をクリックします。

- XMLソース・エディタ: 「ソース」をクリックします。

- 履歴ツール: 「履歴」をクリックします。

11.2.3 JSFアプリケーションの実行およびテスト方法

JDeveloperには、統合WebLogic Serverが用意されています。このサーバーを使用すると、IDEからWebアプリケーションを実行およびテストできます。特別な接続設定は必要ありません。アプリケーション・プロジェクト全体または個々のJSFページを実行します。

個々のページを実行およびテストするには、次のようにします。

1. ナビゲータまたはJSFナビゲーション・ダイアグラム(faces-config.xml)で、実行するJSFページを選択します。

2. JSFページを右クリックし、コンテキスト・メニューから「実行」を選択します。デフォルトのブラウザにJSFページが表示されます。これがドメインを実行または起動する初めての機会であるときにサーバーがまだ作成されていない場合、「デフォルト・ドメインの構成」ダイアログに新規パスワードを入力するよう求められます。

プロジェクト全体を実行およびテストするには、次のようにします。

1. ナビゲータで、アプリケーション・プロジェクト(例: ViewController)を選択します。

2. プロジェクトを右クリックし、コンテキスト・メニューから「実行」を選択します。デフォルトのブラウザでアプリケーションが起動します。

3. これがドメインを実行または起動する初めての機会であるときにサーバーがまだ作成されていない場合、「デフォルト・ドメインの構成」ダイアログが表示されます。新規パスワードを入力します。

プロジェクトを実行するには、最初にデフォルトの実行ターゲットを指定する必要があります。指定されていない場合、JDeveloperでは、最初にプロジェクトを実行するときにデフォルトの実行ターゲットを入力するようにプロンプトで要求されます。デフォルトの実行ターゲットを指定するには、プロジェクト・プロパティを編集する方法もあります。

IDEからJSFアプリケーションを実行すると、JDeveloperでは、次の処理が自動的に行われます。

- アプリケーションをコンパイルします。

- 統合WebLogic Serverプロセスを開始し、デフォルトのアドレスを使用してデフォルトのブラウザでアプリケーションを起動します。
次に例を示します。

http://127.0.0.1:8988/myproject-ViewController-context-root/faces/home.jsp

127.0.0.1はyour_machine_IP_address、8988はhttp_portです。

プロジェクト・プロパティで、デフォルトのアプリケーション名とWebコンテキスト・ルートを変更できます。

11.3 HTMLページを使用したアプリケーションの開発

JDeveloperは、HTML 4.01 W3Cの仕様(http://www.w3.org/TR/html401/)に準拠したHTMLテクノロジを使用した開発を完全にサポートしています。

JDeveloperでは、HTMLページの作成と編集用として、統合および同期化された設計ツールおよびコンポーネントの完全セットが用意されています。HTMLソース・エディタおよびビジュアル・エディタの詳細は、第11.1.1項「ソース・エディタの機能について」および第11.1.2項「ビジュアル編集環境での作業方法」を参照してください。

11.3.1 HTMLページの構築方法

HTML Webページの使用を開始するには、最初にWebアプリケーションを作成する必要があります。使用可能なアプリケーション・タイプを確認するには、表11-6「Webアプリケーション・テンプレート」を参照してください。

Webアプリケーション・フレームワークを作成したら、HTMLページの構築を開始できます。

HTMLコア・コンポーネント

HTMLページを構築する場合、コンポーネント・パレットを使用して、一般的に使用されるほとんどのタグをクリックしたりページにドラッグ・アンド・ドロップします。JDeveloperには、一般的に使用される一連のHTML要素タグや、ユーザー入力の属性および動作を追加するための一連のフォーム・タグが用意されています。

図11-17 HTML Commonのコンポーネント・パレット

表11-13 HTML Commonのコンポーネント

タグ名

説明

Anchor

名前付きアンカー<A name>非表示要素を挿入します。

Applet

Javaアプレットをページに埋め込みます。

Email Link

指定した電子メール・アドレスを使用するHTMLの<A>要素をページに挿入します。

Horizontal Rule

ページ内の現在のカーソル位置にHTMLの<hr>要素を挿入して、水平線を表示します。

Hyper Link

定義するHTML参照にリンクを挿入します。

Image

HTMLの<img>要素を追加して、イメージをページに挿入します。

Line Break

改行を挿入します。

Link

外部スタイルシートまたは他の任意の外部ドキュメントにリンクを挿入します。

NoScript

HTML<noscript>要素を使用してスクリプトが実行されない場合に代替のコンテンツを提供します。

Script

<script>要素とカスタム・コードをページに埋め込みます。VBScript、Tcl、JavaScriptなど任意のスクリプト言語のコードを使用します。

Style

内部スタイルシートをドキュメントに埋め込みます。

表

ページにスケルトンHTMLの<table>タグを挿入します。

図11-18 HTML Formsのコンポーネント・パレット

表11-14 HTML Formsのコンポーネント

タグ名

説明

Button

type属性を指定したHTMLの<button>要素を挿入して、プッシュ・ボタンを作成します。

CheckBox

type属性を指定したHTMLの<input>要素を挿入して、フォームにチェック・ボックス・コントロールを作成します。

Combo Box

オプションの選択肢のフォーム・コントロールを定義するselect要素を挿入します。

FieldSet

フォーム・コントロール・グループを定義するfieldset要素を挿入します。作成者は、関連するフォーム・コントロールをグループ化することにより、フォームをより小さく管理しやすい部分に分割し、フォーム・コントロールが多すぎるユーザーに直面した際に生じる操作性に関する問題を改善します。

File Field

type属性を指定したHTMLの<input>要素を挿入して、ファイル選択コントロールを作成します。ファイル選択コントロールでは参照ボタンとフィールドが作成されるため、ユーザーがフォームで送信するファイルを選択できます。

Form

HTML <form>タグを挿入して、フォーム処理情報をページに挿入します。

Hidden Field

type属性を指定したHTMLの<input>要素を挿入し、フォーム内に非表示コントロールを作成します。

Image Button

type属性を指定したHTMLの<input>要素を挿入して、グラフィカルな送信ボタンを作成します。

Input Button

type属性を指定したHTMLの<input>要素を挿入して、プッシュ・ボタンを作成します。プッシュ・ボタンにはデフォルトの動作はありません。

IsIndex

HTML <isindex>タグを挿入して、1行テキスト入力コントロールを作成する際に使用します。この要素は推奨されていません。作成者は<input>要素を使用してください。

ListBox

HTMLの<select>要素を使用して、<option>要素によって表示される選択メニューを作成します。

Password Field

type属性を指定したHTMLの<input>要素を挿入して、パスワード・フィールドを作成します。

Radio Button

type属性を指定したHTMLの<input>要素を挿入して、フォーム内にラジオ・ボタン・コントロールを作成します。

Reset Button

type属性を指定したHTMLの<input>要素を挿入して、リセット・ボタンを作成します。このボタンはすべてのコントロールを初期値にリセットします。

Spinner

HTMLの<select>要素を挿入して、<option>要素によって表示される選択メニューを作成します。<select>要素には、<option>要素を少なくとも1つ含める必要があります。

Submit

type属性を指定したHTMLの<input>要素を挿入して、フォームを送信するボタンを作成します。

Text Area

HTMLの<textarea>要素を挿入して、複数行テキスト入力フィールドを作成します。

Text Field

type属性を指定したHTMLの<input>要素を挿入して、テキスト・フィールドを作成します。

HTMLページを作成するには、次のようにします。

新規ギャラリ・ウィザードでは、アプリケーションのWebページ・フレームワークを構築するために必要なすべてのステップが段階的に説明されます。

1. アプリケーション・ナビゲータで、HTMLページを作成するプロジェクトを選択します。

2. 「ファイル」→「新規」を選択し、「新規ギャラリ」を開きます。

3. 図11-19に示すように、「カテゴリ」ツリーで、「Web層」を開いて「HTML」を選択します。

4. 図11-20に示すように、「ディレクトリ」フィールドは変更せず、Webアプリケーション・ファイルが検索されるディレクトリに作業内容を保存します。「ファイル名」フィールドに、生成するファイルの名前を入力し、「OK」をクリックします。単純なHTMLファイルが生成され、アクティブなプロジェクトに表示されます。デプロイメント・ディスクリプタ・ファイルweb.xmlもプロジェクトに追加されます。デプロイメント・ディスクリプタ・ファイルは、HTMLの実行時に統合WebLogic Serverで使用されます。

図11-19 新規ギャラリのHTMLページの作成オプション

図11-20 HTMLの作成ダイアログ

JSPファイルをHTMLとして保存するには、次のようにします。

ソース・エディタでJSPファイルを開き、「ファイル」→「HTMLとして保存」を選択して、JSPページをHTMLページとして保存できます。

「HTMLとして保存」オプションを使用すると、元のファイルを変更せずに、元のファイルのコピーにHTMLの拡張子を付けて保存されます。HTMLファイルではテキスト・フォーマットが維持されるため、ブラウザやブログでのコードの一部として表示する場合に、同様の表示形式で表示されます。保存したHTMLファイルをもう一度開いてHTMLとして表示できますが、コードとして解釈されなくなります。

11.3.2 Cascading Style Sheetの使用方法

複数のWebページのスタイルおよびレイアウトを制御するには、Cascading Style Sheet (CSS)を使用します。CSSスタイルを使用すると、HTMLタグの書式属性、クラス属性によって識別されるテキストの範囲、Cascading Style Sheet (CSS2)仕様に準拠した基準を満たすテキストなどを定義できます。CSSの詳細は、http://www.w3.org/TR/1998/REC-CSS2/にあるW3C Webページを参照してください。

JDeveloperには、CSSの開発用として次のツールが用意されています。

- Java対応のコード・インサイト編集機能の完全なセットを提供するCascading Style Sheetソース・エディタ。

- ADFスキンを作成および変更できるADFスキン・エディタ。ADFスキンは、ADFアプリケーションのルック・アンド・フィールを定義するCSSファイルの1つのタイプです。

- 新規HTMLページを作成するためのウィザード。

- HTMLページを編集するためのソース・エディタおよびビジュアル・エディタ。

- HTMLページまたはJSPページにCSSファイルをリンクするドラッグ・アンド・ドロップ。

- CSSセレクタのプロパティと値を設定または変更するためのプロパティ・インスペクタ。

- 編集時に使用可能なオプションを提供してコードを補完するためのコード・インサイト。

- グループ化によってCSS要素をソートおよび表示するための「構造」ウィンドウ。

表11-15に、Cascading Style Sheetソース・エディタの機能をリストします。

表11-15 CSSソース編集機能

機能

説明

CSSのコード・インサイト

カーソルの下にあるCSSファイルに対して適切な補完を選択するために、HTMLセレクタ、プロパティ、値、擬似クラスおよび擬似要素のリストを表示します。たとえば、スタイル・ルールの開きカッコの後ろにカーソルを置くと、ファイル内のその場所に入力できるすべてのプロパティのリストが表示されます。

CSSの再フォーマット

そのCSSページ上のコードを正しく再フォーマットします。CSSエディタでファイルを右クリックするか、アプリケーション・ナビゲータで「再フォーマット」を選択します。

CSSエラー処理

無効なCSSプロパティ、値および欠落しているセミコロンやカッコを強調表示します。

HTMLファイルに対するスタイルシートのリンク

コンポーネント・パレットで、HTMLパレットの「共通」ページを選択し、リンク要素をHTMLページにドロップするだけでスタイルシートをHTMLファイルにリンクできます。

もう1つのオプションとしては、コンポーネント・パレットで「CSS」を選択します。使用可能なCSSファイルのリストがコンポーネント・パレットに表示されます。これにより、任意のCSSファイルをコンポーネント・パレットからページにドラッグ・アンド・ドロップできます。

スタイルのプレビュー

コーディング時にスタイルがどのように表示されるかを確認します。

コード・カラー

プロパティ、値およびキーワードを簡単に特定できます。

CSSのリファクタ

CSSファイル、クラスおよびID属性の名前を変更する場合やファイルを移動、コピーおよび安全に削除する際にアプリケーション全体にわたってリファクタします。

CSSコード・エディタでのカッコの一致

コード・エディタでカーソルの位置に基づいて一致する中カッコ、大カッコおよび小カッコをハイライト表示します。

行コメントの設定

選択したブロックの各行の先頭にあるコメント・マーカーを追加または削除します。単一行を選択してこの行のみをコメント化または非コメント化します。

クイック・ドキュメント

W3C標準から説明を開きます。

11.3.2.1 CSS要素の選択およびグループ化方法

編集のためにCSSファイルを開くと、ファイル内のCSSセレクタが次のタイプ・アイコンで「構造」ウィンドウに表示されます。

要素

CSSセレクタで定義されたHTML要素またはタグ。プロパティと値は、コロンで区切って中カッコで囲みます。たとえば、body {color:black;.}となります。

クラス

同じタイプのHTML要素に対して定義された様々なスタイル。たとえば、p.right {text-align:right;}は右揃えの段落テキスト、p.left {text-align:left;}は左揃えの段落テキストを意味します。また、セレクタにタグ名を含めなければ、特定のクラスのHTML要素すべてで使用されるスタイルを定義できます。たとえば、.center {text-align:center;}はclass="center"が指定されたすべてのHTML要素が中央揃えになることを意味します。

ID

1つのHTML要素に固有のスタイル。たとえば、p#para1 {color:green;}はid value="para1が指定されたp要素、*#ver905 {background-color:red;}はid value="ver905"が指定された最初のHTML要素を意味します。

要素のグループ化ツール

構造ウィンドウ・ツールバーの「カテゴリ」ドロップダウン・リストを使用すると、CSSセレクタをカテゴリ別に表示できます。

カテゴリなし

CSSファイルでの出現順に表示します。デフォルト設定です。

タイプ・カテゴリ

CSSセレクタのタイプ(「要素」、「クラス」または「ID」)別に並べ替えます。

要素カテゴリ

HTML要素またはタグ別に並べ替えます。

構造ウィンドウでCSSセレクタを選択すると、そのセレクタがCSSファイル内でハイライト表示され、関連するプロパティおよび値がプロパティ・インスペクタに表示されて編集可能になります。

「構造」ウィンドウでセレクタ・カテゴリを分離またはグループ化解除するには、「グループ化したセレクタの分離」アイコンを選択します。

CSSファイル内で選択した要素をコメント・アウトするには、要素グループを選択し、右クリックして「コメント・アウト」を選択します。

11.3.2.2 CSSの基本ツールの使用方法

新規ギャラリ・ウィザードを使用してCSSスタイルシートを作成できます。作成した後、スタイルシートをWebページにドラッグ・アンド・ドロップしてスタイルシートをリンクします。ソース・エディタとともにコード・インサイトを使用して、CSSコードで変更を直接行い、プロパティ・インスペクタでセレクタ・プロパティおよび値を編集します。

注意:

「プレビュー」タブは、ソース・エディタの「ソース」タブの近くにあります。これを使用して、「ソース」タブに入力したCSSフォーマットがどのように表示されるかを確認できます。

単純なCascading Style Sheetを作成するには、次のようにします。

1. アプリケーション・ナビゲータで、新しいスタイルシートの作成先となるプロジェクトを選択します。

2. 「ファイル」→「新規」を選択して「新規ギャラリ」を開きます。

3. 「カテゴリ」ツリーで「Web層」を開き、「HTML」を選択します。

4. 「項目」リストで「CSSファイル」をダブルクリックし、「CSSファイル」ダイアログを開きます。

5. 「ディレクトリ名」フィールドは変更せず、JDeveloperがWebアプリケーション・ファイルを検索するディレクトリに作業内容を保存します。

6. 「ファイル名」フィールドに、生成するファイルの名前を入力し、「OK」をクリックします。単純なCSSファイルが生成され、「Webコンテンツ」の下にあるアクティブ・プロジェクトの中の「CSS」フォルダに表示されます。

CSSセレクタのプロパティと値を設定または変更するには、次のようにします。

1. CSSファイルの構造ウィンドウで、プロパティの設定先となるCSSセレクタ要素、クラスまたはIDを選択します。

2. プロパティ・インスペクタで、目的のプロパティが表示されるまでスクロールします。長いリストの中からプロパティを素早く見つけるには、プロパティ・インスペクタ・ツールバーの検索ボタンをクリックします。「検索」テキスト・フィールドにプロパティ名を入力し、[Enter]を押します。右側の列に、次のいずれかの方法でプロパティ値を入力します。

- プロパティの文字列値をテキスト・フィールドに入力し、[Enter]を押します。

- 値フィールドのボタンをクリックし、表示されたリストから値を選択します。

- 値フィールドをクリックし、省略記号ボタンを表示します。省略記号をクリックし、該当するプロパティのエディタを表示します。プロパティ・エディタで値を設定し、「OK」をクリックします。セレクタの値が変更され、このCSSファイルにリンクされているページにスタイルの変更が反映されます。

- テキスト・フィールドにプロパティの文字列値を入力し、[Enter]を押します。

ソース・エディタでCSSファイルを編集するには、次のようにします。

1. アプリケーション・ナビゲータでCSSファイルをダブルクリックし、デフォルトのソース・エディタ・ウィンドウで開きます。

2. 定義するCSSセレクタ(HTML要素、クラスまたはID)を入力します。

3. 左中カッコ({)を入力し、[Ctrl]を押しながら[Space]を押し(デフォルトのキーマッピングを使用している場合)、コード・インサイトを起動します。

4. 有効なプロパティのリストにあるプロパティ名をダブルクリックします。選択したプロパティがファイルに挿入され、その後にコロンとスペースが入力されます。たとえば、{background-color:となります。

5. 挿入したプロパティの値を入力するには、[Ctrl]を押しながら[Space]を押して、有効な値のリストを開き、挿入する値をダブルクリックします。選択した値が挿入され、その後にセミコロンが入力されます。たとえば、body {text: blue;となります。

6. 必要に応じて他のプロパティと値を追加します。プロパティ値と次のプロパティは必ずセミコロンで区切ってください。たとえば、p {text-align:center; color:red;となります。

7. プロパティと値をすべて追加したら、右中カッコ(})を入力します。

注意:

編集中に発生したCSS構文エラーはすべて構造ウィンドウに表示されます。

エラーまたは要素を構造ウィンドウでダブルクリックし、ソース・エディタで編集します。

11.3.3 HTML表の使用方法

ビジュアル・エディタを使用して、表を使用してHTMLページ上のデータをレイアウトします。一度表を作成すれば、表の外観と構造は簡単に変更できます。表を編集すると、テキストとイメージの追加、行と列の追加、削除、サイズ変更、並替え、分割およびマージ、色と配置に関する表、行またはセルのプロパティ変更、セルのコピーと貼付け、および表セルでの表のネストが可能になります。

表セルにテキストを追加するには、次のようにします。

1. テキストの追加先となるセルの中をクリックし、点滅するカーソルが現れたら次のいずれかの操作を行います。

- 表にテキストを入力します。入力に伴い、表セルが自動的に拡張します。

- 別のページからコピーしたテキストを貼り付けます。

2. [Tab]を押して次のセルに移動するか、[Shift]を押しながら[Tab]を押して前のセルに移動します。表の最後のセルで[Tab]を押すと、表にもう1行自動的に追加されます。

表セルを挿入ポイントとして使用し、グラフィックやその他のUIおよびデータ要素を表に追加したり、表から削除することができます。

1つ以上のセルからコンテンツを削除するにはセルを選択して、次のようにします。

- [Del]または[Back Space]を押します。
または

- メイン・メニューから「編集」→「削除」を選択します。

セル自体ではなく、セルのコンテンツのみが表から削除されます。行または列全体が選択されている場合、表の構造が変更され、選択されている行または列がセルのコンテンツとともに削除されます。

11.3.3.1 表およびセルのフォーマット方法

設計ツールを使用して、HTML表、行、列およびセルのプロパティを設定します。プロパティ・インスペクタ、「表の編集」ダイアログまたはビジュアル・エディタのツールバーを使用して、表要素プロパティを設定します。

設計ツールを使用して表の書式設定を行う際には、表全体に適用されるプロパティと、表で選択したセル、行または列のみに適用されるプロパティを定義できます。背景色や位置などのプロパティに、表全体と個々の表セルとで異なる値を設定する場合、書式設定情報には次の優先順位が適用されます。

1. 表のセル(<td>タグ)

2. 表の行(<tr>タグ)

3. 表(<table>タグ)

個々のセルに緑の背景色を指定した後、表全体の背景色を赤に設定しても、<td>タグは<table>タグより優先順位が高いため、緑のセルは赤に変わりません。

プロパティ・インスペクタを使用して表とセルのプロパティを設定するには、次のようにします。

1. ビジュアル・エディタで表、行またはセルを選択するか、「構造」ウィンドウで対応する<table>、<tr>または<td>を選択します。選択した要素のプロパティ値が「プロパティ・インスペクタ」に表示されます。プロパティ・インスペクタが表示されていない場合は、「表示」→「プロパティ・インスペクタ」を選択するか、ショートカット([Ctrl]+[Shift]+[I])を使用します。

ヒント:

長いリストの中からプロパティを素早く見つけるには、プロパティ・インスペクタ・ツールバーの検索ボタンをクリックします。「検索」テキスト・フィールドにプロパティ名を入力し、[Enter]を押します。

2. 右側の列に、次のいずれかの方法でプロパティ値を入力します。

- プロパティの文字列値をテキスト・フィールドに入力し、[Enter]を押します。

- 値フィールド内をクリックし、表示されたリストから値を選択します。

- 値フィールドをクリックし、省略記号ボタンを表示します。省略記号をクリックし、該当するプロパティのエディタを表示します。プロパティ・エディタで値を設定し、「OK」をクリックします。

ビジュアル・エディタ・ツールバーを使用して表とセルのプロパティを設定するには、次のようにします。

1. ビジュアル・エディタで表、行またはセルを選択します。また、「構造」ウィンドウで対応する<table>、<tr>、<td>を選択することもできます。

2. 標準ツールバー編集アイコンを使用して、位置合せやインデント/アウトデントなどのプロパティを設定します。

表のサイズを変更するには、次のいずれかの操作を行います。

- ビジュアル・エディタで表を選択し、サイズ変更ハンドルを使用して目的のサイズになるまで表の高さまたは幅(あるいはその両方)をドラッグします。

- ビジュアル・エディタで表を選択するか、構造ウィンドウで対応する<table>要素を選択し、プロパティ・インスペクタで表のwidth属性を設定します。

- ビジュアル・エディタで表をダブルクリックし、「表の編集」ダイアログで表の幅(ピクセル単位)またはページ幅に対する割合を設定しなおします。

- ビジュアル・エディタで表を右クリックするか、「構造」ウィンドウで対応する<table>要素を右クリックし、ポップアップ・メニューから「タグの編集」を選択して「表の編集」ダイアログを表示します。

行または列のサイズを変更するには、次のようにします。

1. ビジュアル・エディタで、行または列をサイズ変更する表を含むページを開きます。

2. ビジュアル・エディタで、行または列をサイズ変更する表を含むページを開きます。サイズ変更する行または列の枠線にカーソルを置き、水平方向の枠線ハンドルまたは垂直方向の枠線ハンドルが表示された後でクリックします。

3. 目的のサイズになるまで行または列の枠線をドラッグし、マウスを放します。

行または列を表に追加するには、次のようにします。

1. ビジュアル・エディタで表セルを選択するか、構造ウィンドウで対応する<td>要素を選択します。

2. 選択した表セルまたは要素を右クリックし、ポップアップ・メニューから「表」を選択します。

3. 次のいずれかを選択します。

- 表セルが選択されている行の上に1行追加する場合は、「行の挿入」を選択します。

- 表セルが選択されている列の前に1列追加する場合は、「列の挿入」を選択します。

- 複数の行または列を追加する場合や、行または列の追加位置を指定する場合は、「行または列の挿入」を選択して「行または列の挿入」ダイアログを表示します。次に、「OK」をクリックします。

表の行または列を削除するには、次のようにします。

1. ビジュアル・エディタで表セルを選択するか、構造ウィンドウで対応する<td>要素を選択します。

2. 選択した表セルまたは要素を右クリックし、ポップアップ・メニューから「表」を選択します。

3. 次のいずれかを選択します。

- 表セルが選択されている行を削除する場合は、「行の削除」を選択します。

- 表セルが選択されている列を削除する場合は、「列の削除」を選択します。

ビジュアル・エディタで行または列を1つ以上選択するか、「構造」ウィンドウで対応する<tr>要素を選択し、次のいずれかの操作を行うこともできます。

- [Del]または[Back Space]を押します。

- メイン・メニューから「編集」→「削除」を選択します。表の最後の行を削除すると、表全体が削除されます。

表セルをマージするには、次のようにします。

1. ビジュアル・エディタで表セルを選択するか、「構造」ウィンドウで対応する<td>要素を選択します。四角形を描くようにして、連続したセルを選択してください。

2. 選択した表セルまたは要素を右クリックし、ポップアップ・メニューから「表」を選択した後、「セルの結合」をクリックします。
または

メイン・メニューで、「設計」を選択し、「表」を選択し、「セルの結合」をクリックします。個々のセルのコンテンツがマージ後のセルに挿入されます。

表セルを分割するには、次のようにします。

1. ビジュアル・エディタで表セルを選択するか、「構造」ウィンドウで対応する<td>要素を選択します。

2. 選択した表セルまたは要素を右クリックし、ポップアップ・メニューから「表」を選択した後、「セルの分割」をクリックします。
または

メイン・メニューで、「設計」を選択し、「表」を選択し、「セルの分割」をクリックします。

3. 「セルの分割」ダイアログで、セルを行に分割するのか、列に分割するのかを選択し、行または列の数を入力します。

4. 「OK」をクリックします。

ビジュアル・エディタを使用して行、列または表セルのグループの表示順序を変更するには、次のようにします。

1. HTML表での順序を変更する行、列、または表セルのグループを選択します。四角形を描くようにして、連続したセルを選択してください。

2. 次のいずれかを実行して、行、列または表セルのグループを表の新しい位置にドラッグします。

- ターゲット行の上に挿入する場合、挿入する行またはセル・グループを上方向にドラッグして、上矢印付きの横線が表示された後でマウス・ボタンを放します。

- ターゲット行の下に挿入する場合、挿入する行またはセル・グループを下方向にドラッグして、下矢印付きの横線が表示された後でマウス・ボタンを放します。

- ターゲット列の前に挿入する場合、挿入する列またはセル・グループを左方向にドラッグして、左矢印付きの縦線が表示された後でマウス・ボタンを放します。

- ターゲット列の後に挿入する場合、挿入する列またはセル・グループを右方向にドラッグして、右矢印付きの縦線が表示された後でマウス・ボタンを放します。

構造ウィンドウを使用して行の表示順序を変更するには、次のようにします。

1. 表での順序を変更する<tr>要素を選択します。四角形を描くようにして、連続したセルを選択してください。

2. 次のいずれかを実行して、行、列または表セルのグループを表の新しい位置にドラッグします。

- ターゲット行の上に挿入する場合、挿入する行を上方向にドラッグして、上矢印付きの横線が表示された後でマウス・ボタンを放します。

- ターゲット行の下に挿入する場合、挿入する行を下方向にドラッグして、下矢印付きの横線が表示された後でマウス・ボタンを放します。

表の行または列の範囲を拡大するには、次のようにします。

1. ビジュアル・エディタで表セルを選択するか、構造ウィンドウで対応する<td>要素を選択します。

2. 「構造」ウィンドウでの要素。選択した表セルまたは要素を右クリックし、ポップアップ・メニューから「表」を選択します。

3. 次のいずれかを選択します。

- 選択したセルを1行分拡大するには、「行の高さを拡大」を選択します。

- 選択したセルを1列分拡大するには、「列の幅を拡大」を選択します。

表の行または列の範囲を縮小するには、次のようにします。

1. ビジュアル・エディタで表セルを選択するか、構造ウィンドウで対応する<td>要素を選択します。

2. 選択した表セルまたは要素を右クリックし、ポップアップ・メニューから「表」を選択します。

3. 次のいずれかを選択します。

- 選択したセルの範囲を1行分縮小するには、「行の高さを縮小」を選択します。

- 選択したセルの範囲を1列分縮小するには、「列の幅を縮小」を選択します。

11.3.4 HTMLフォーム、テキストおよびイメージの使用方法

設計ツールを使用して、JSPページまたはHTMLページ上でテキストを追加および書式設定します。コンポーネント・パレットを使用してHTMLフォームを追加し、プロパティ・インスペクタおよび「構造」ウィンドウを使用してHTMLフォームの要素の管理およびプロパティの構成を行います。

HTMLグラフィックの場合、コンポーネント・パレットを使用してグラフィックをページに簡単に追加するか、Windowsのデスクトップまたはエクスプローラからグラフィックをドラッグ・アンド・ドロップできます。イメージは、ページ、表またはフォームに挿入したり、背景として使用することができます。イメージ・サイズの設定、枠線の追加、ページまたは表セルでの位置の設定を行う場合は、イメージを変更します。ロールオーバー・イメージやナビゲーション・バーなどのインタラクティブ・グラフィックを作成するには、JavaScriptイベントをイメージに追加します。

11.3.4.1 HTMLフォームの使用方法

Webページのユーザーと対話したり、Webページのユーザーから情報を収集するには、HTMLページでHTMLフォームを使用します。フォームは次のもので構成されます。

- フォーム・タグ: フォーム処理情報を含んでいます。

- フォーム・フィールド: テキスト・フィールド、メニュー、チェックボックス、ラジオ・ボタンなどがあります。

- 送信ボタン: フォーム処理エージェントにデータを送信します。

新しいHTMLフォームを作成するには、次のようにします。

JSPファイルまたはHTMLファイルを開いておき、次のいずれかの操作を行います。

- ビジュアル・エディタまたは「構造ウィンドウ」で、フォームの表示位置となる挿入ポイントを選択し、「コンポーネント・パレット」の「HTML」ページで「フォーム」をクリックします。

- コンポーネント・パレットのHTMLページから、ページ上または構造ウィンドウ内の挿入ポイントまで、「フォーム」要素をドラッグします。スケルトン・フォームを作成するHTMLコードがHTMLファイルまたはJSPファイルに挿入されます。ビジュアル・エディタでは、フォームは点線のアウトラインとして表示されます。

スケルトン・フォームを作成したら、フォームのフィールドとボタンを追加し、フォーム処理情報を指定します。デフォルトでは、フォームの作成時にGetフォーム処理属性が指定されます。

コンポーネント・パレットのフォーム・フィールドまたはボタンがHMTLページまたはJSPページに追加されると、<form>要素が自動的に親要素として挿入されます。

フォーム要素を削除するには、次のようにします。

ビジュアル・エディタでフォームを選択するか、構造ウィンドウで対応する<form>要素を選択し、次のいずれかの操作を行います。

- [Del]または[Back Space]を押します。

- メイン・メニューから「編集」→「削除」を選択します。フォームとフォーム内のすべてのフォーム・フィールドおよびボタンが削除されます。フォームのフィールドやボタンを削除せずにフォーム要素を削除するには、フォームを右クリックして、「フォーム」→「フォーム・タグの削除」を選択します。

フォーム・フィールドまたはボタンを挿入するには、次のようにします。

1. ビジュアル・エディタでフォーム要素を含むJSPファイルまたはHTMLファイルを開いておき、次のいずれかの操作を行います。

- ビジュアル・エディタまたは「構造」ウィンドウで、フォーム上のフィールドまたはボタンの表示位置となる挿入ポイントを選択し、コンポーネント・パレットの「HTML」ページで目的の要素をクリックします。

- コンポーネント・パレットのHTMLページから、フォーム上または構造ウィンドウ内の挿入ポイントまで、フォーム・フィールドまたはボタン要素をドラッグします。先にフォームを作成せずにフォーム・フィールドまたはボタンを挿入しようとした場合、「このコンポーネントにフォーム要素を追加しますか。」というメッセージが表示されます。フィールドまたはボタンのフォーム・タグを自動的に作成するには、「はい」を選択します。このダイアログで「フォーム要素の追加の確認を非表示」を選択すると、ダイアログの自動表示が行われなくなります。表示を再開するには、メイン・メニューから「ツール」→「プリファレンス」→「JSP/HTMLビジュアル・エディタ」を選択し、「フォーム要素追加のプロンプト」を選択します。

2. フォーム・フィールドまたはボタンに必須属性が指定されている場合、表示されたエディタ・ダイアログを使用してプロパティ値を設定します。

フォーム・フィールドまたはボタンを削除するには、次のいずれかの操作を行います。

- 要素を選択して、[Del]または[Backspace]を押します。

- 要素を選択して、メイン・メニューから「編集」→「切取り」を選択します。

「フォームの編集」ダイアログを使用してフォーム処理情報を編集するには、次のようにします。

1. ビジュアル・エディタでフォームを右クリックするか、「構造」ウィンドウで対応する<form>要素を右クリックし、「編集」→「タグ」を選択します。

2. 「フォームの編集」ダイアログで、フォーム処理属性を設定します。

3. 「OK」をクリックして、フォーム処理情報をフォーム要素に追加します。たとえば、<form method="post" action="http://www.oracle.com/orderEdit.html" enctype="application/x-www-form-urlencoded" name="form1"></form>となります。

プロパティ・インスペクタを使用してフォーム処理情報を設定するには、次のようにします。

1. ビジュアル・エディタでフォームを選択するか、構造ウィンドウで対応する<form>要素を選択します。選択した要素のプロパティ値が「プロパティ・インスペクタ」に表示されます。プロパティ・インスペクタが表示されていない場合は、「表示」→「プロパティ・インスペクタ」を選択するか、ショートカット([Ctrl]+[Shift]+[I])を使用します。

2. 設定するプロパティが表示されるまでスクロールし、マウスまたは矢印キーでそれを選択します。プロパティ・インスペクタの下部にプロパティの簡単な説明が表示されます。

3. 右側の列に、次のいずれかの方法でプロパティ値を入力します。

- テキスト・フィールドにプロパティの文字列値を入力し、[Enter]を押します。

- 値フィールド内をクリックし、表示されたリストから値を選択します。

- 値フィールドをクリックし、省略記号ボタンを表示します。省略記号をクリックし、該当するプロパティのエディタを表示します。プロパティ・エディタで値を設定し、「OK」をクリックします。

ヒント:

長いリストの中からプロパティを素早く見つけるには、プロパティ・インスペクタ・ツールバーの検索ボタンをクリックします。「検索」テキスト・フィールドにプロパティ名を入力し、[Enter]を押します。

コンテキスト・メニューからフォーム・メソッドを変更するには、次のようにします。

1. ビジュアル・エディタでフォームを右クリックするか、「構造」ウィンドウで対応する<form>要素を右クリックし、「フォーム」→「メソッド」を選択します。

2. サブメニューで、「POST」または「GET」を選択してフォーム・メソッドを変更します。

11.3.4.2 HTMLテキストの使用方法

ビジュアル・エディタを使用して、HTMLファイルでテキストを追加および書式設定します。

ページのテキスト・プロパティを設定するには、ビジュアル・エディタのツールバーを使用します。「プロパティ・インスペクタ」では、ツールバーを使用して設定する属性に緑色の四角が付いています。変更を元に戻すには、メイン・メニューから「編集」→「元に戻す」アクションを選択します。テキスト・プロパティをデフォルト値にリセットするには、「プロパティ・インスペクタ」で値を選択して削除します。

テキストを追加するには、次のいずれかの操作を行います。

- ビジュアル・エディタで、テキストを挿入する位置をクリックします。点滅するカーソルが現れたら入力を開始します。

- 同じプロジェクトまたは別のプロジェクトのファイルからテキストをコピーして貼り付けます。
挿入したテキストの書式設定は、ビジュアル・エディタのツールバーを使用して行えます。ツールバーを使用すると、ページ内で手動またはインラインの書式を適用できます。次に例を示します。

<H5><EM><FONT color="#ff0000">This is a Heading 5 in italics iUse the Toolbar to:n the color red</EM></FONT></H5>

HTMLツールバーの機能

ビジュアル・エディタでページを編集する場合、書式設定を変更するためにツールバーを使用できます。

ツールバーを使用して、次を実行します。

- テキスト・ブロックのデフォルトの書式スタイル(「なし」、「Paragraph」、「Preformatted」、「Heading 1」、「Heading 2」など)を設定します。

- 選択したテキストのフォント、色および位置を変更します。

- 太字、イタリック、下線などの書式を適用します。

- 順序付けられた(番号付き)リストや順序付けられていない(黒丸付き)リストを作成します。

CSS機能を使用したテキストの書式設定

Cascading Style Sheet (CSS)を使用すると、ページ内で、または複数のWebページにわたって、テキストとページの書式を自動的に更新することもできます。CSSスタイルには、特定のクラスの全テキストに対する書式を定義したり、h2やIなど特定のタグの書式を再定義します。CSSスタイルは外部スタイルシートを使用して適用します。

CSSスタイルと手動またはオンラインのHTML書式を同じページ内で使用できます。手動のHTML書式は、CSSスタイルを使用して適用した書式より優先されます。CSSスタイルシートの詳細は、W3C Cascading Style Sheetsのホーム・ページ(http://www.w3.org/Style/CSS/)を参照してください。

テキスト・プロパティを設定するには、次のようにします。

1. 手動またはオンラインのHTMLスタイルの設定先となるテキストを選択します。

2. ツールバーを使用してテキスト・プロパティを設定します。

11.3.4.3 HTMLイメージの使用方法

JDeveloperの設計ツールは、次のグラフィック・ファイル形式をサポートしています。

- JPEG/JPG

- GIF

- PNG

イメージを挿入するには、次のようにします。

1. ビジュアル・エディタでファイルを開いておき、次のいずれかの操作を行います。

- ビジュアル・エディタまたは「構造」ウィンドウで、ページ上のイメージの表示位置となる挿入ポイントを選択し、コンポーネント・パレットのページで「イメージ」をクリックします。

- コンポーネント・パレットのページから、ページ上または「構造」ウィンドウ内の挿入ポイントまで、「イメージ」要素をドラッグします。

2. 表示された「イメージの挿入」ダイアログで、「参照」をクリックしてファイルを選択するか、イメージ・ファイルの場所を示すパスを入力します。ファイルの場所を参照すると「イメージ・ソースの選択」ダイアログが開き、現在のコンテキストに基づいたディレクトリが表示されます。イメージ・ファイルが現在のプロジェクトのHTMLルート外部にある場合は、そのファイルをアプリケーション・ナビゲータの現在のコンテキストに追加するかどうか尋ねられます。「イメージの保存」ダイアログで「はい」をクリックして、イメージをドキュメント・ルートに追加します。

3. 「イメージの挿入」ダイアログでその他のイメージ・プロパティを設定します。

4. 「OK」をクリックします。ページにイメージが表示されます。
Windowsのデスクトップやエクスプローラからページ上の目的の場所へイメージをドラッグすることもできます。アプリケーション・ナビゲータの現在のコンテキストに基づいたディレクトリにファイルを追加するかどうか尋ねられます。「イメージの保存」ダイアログで「はい」をクリックして、イメージをドキュメント・ルートに追加します。ページ上にイメージが表示されます。

イメージを削除するには、次のいずれかの操作を行います。

- イメージを選択して、[Del]または[Backspace]を押します。

- イメージを選択して、メイン・メニューから「編集」→「切取り」を選択します。

イメージのサイズを変更するには、次のいずれかの操作を行います。

- 右クリックして「プロパティ」を選択し、幅および高さのピクセルを調整します。

- イメージの下と右、および右下隅にあるサイズ変更ハンドルを選択し、イメージの幅および高さを調整します。

- 「プロパティ・インスペクタ」でイメージの幅および高さの属性を選択し、変更します。
ビジュアル・エディタで設定したイメージ・プロパティには、「プロパティ・インスペクタ」で緑色の四角が付きます。サイズ変更した要素を元のサイズに戻すには、「プロパティ・インスペクタ」の「幅」および「高さ」フィールドの値を削除するか、「サイズのリセット」ボタンをクリックします。

イメージをドラッグして移動するには、次のようにします。

ビジュアル・エディタまたは構造ウィンドウで、次のいずれかの操作を行います。

- ビジュアル・エディタまたは構造ウィンドウで、イメージを元の位置から挿入ポイントにドラッグします。

- ビジュアル・エディタまたは「構造」ウィンドウで、イメージを右クリックして元の位置から挿入ポイントにドラッグし、ポップアップ・メニューから「ここに移動」を選択します。

ビジュアル・エディタまたは構造ウィンドウで、次のいずれかの操作を行います。

- イメージを切り取ります。その後、ビジュアル・エディタまたは構造ウィンドウの別の位置に貼り付けます。

- イメージを切り取ります。次に、同じプロジェクトまたは別のプロジェクト内の他のファイルへ貼り付けます。

イメージを背景として使用するには、次のようにします。

1. 「構造」ウィンドウでページの<body>要素を選択します。選択した要素のプロパティ値が「プロパティ・インスペクタ」に表示されます。プロパティ・インスペクタが表示されていない場合は、「表示」→「プロパティ・インスペクタ」を選択するか、ショートカット([Ctrl]+[Shift]+[I])を使用します。

2. プロパティ・インスペクタで背景プロパティまでスクロールし、マウスまたは矢印キーでそれを選択します。

3. 右側の列に、次のいずれかの方法でプロパティ値を入力します。

- 値フィールド内をクリックし、表示されたリストから使用可能な背景イメージを選択します。

- 値フィールドをクリックし、省略記号ボタンを表示します。省略記号をクリックして「背景色」ダイアログを表示し、「参照」をクリックしてファイルを選択するか、イメージ・ファイルの場所を示すパスを入力します。ファイルの場所を参照すると「イメージ・ソースの選択」ダイアログが開き、現在のコンテキストに基づいたディレクトリが表示されます。イメージ・ファイルが現在のプロジェクトのHTMLルート外部にある場合は、オプションでそのファイルを「アプリケーション・ナビゲータ」の現在のコンテキストに追加するかどうか尋ねられます。「イメージの保存」ダイアログで「はい」をクリックして、イメージをドキュメント・ルートに追加します。「OK」をクリックします。イメージはページの背景イメージとして並べて表示されます。

11.4 Java Server Pagesの使用方法

この項では、Java EE内のJava Server Pages (JSP)テクノロジを使用したユーザー・インタフェース開発向けのJDeveloperのサポートおよびツールについて説明します。

JDeveloperには、http://jcp.org/aboutJava/communityprocess/final/jsr245/index.htmlで定義されているJSP 2.1の仕様に準拠したJava Server Pages (JSP)開発用の完全なユーザー・インタフェース開発環境が用意されています。

11.4.1 JSPアプリケーションの構築方法

JDeveloperに用意されている機能を使用してアプリケーションを最初から構築できます。最初に実行するのは、フレームワークまたはWebページのアプリケーション・テンプレートの構築です。アプリケーション・テンプレートを使用すると、JSPプロジェクトをすぐに開始できます。新規ギャラリ・ウィザードを使用してアプリケーションを構築する際に、アプリケーションに含めるテクノロジの組合せから選択します。図11-6に示すように、選択するアプリケーションにより、作成されるプロジェクト・フォルダや、フォルダに追加されるレイアウトが決まります。

11.4.1.1 JSPコア・コンポーネント

JDeveloperには、図11-21および表11-16に示すように、JSPページに簡単にドラッグ・アンド・ドロップできる標準JSPコンポーネントを備えたコンポーネント・パレットが用意されています。

図11-21 JSPコア・コンポーネント・パレット

表11-16 JSPコア・コンポーネント

タグ

説明

Attribute

XML属性の値ではなく、XML要素のボディにタグ属性の値を定義します。

Body

タグのボディを指定します。

Declaration

JSPページで使用されるスクリプト言語で有効なメソッドまたは変数を宣言します。

EL Expression

JavaBeansコンポーネントに保存されたアプリケーション・データに簡単にアクセスできるようにするために、JSP式言語(EL)に式を含めます。

Element

XML要素のタグの値を動的に定義します。このアクションは、JSPページ、タグ・ファイルおよびJSPドキュメントで使用できます。

Expression

JSPページで使用されるスクリプト言語で有効な式を含めます。この式は評価され、Stringに変換され、レスポンスに挿入されて、ここでJSPページに式が表示されます。

Fallback

プラグイン・ソフトウェアのダウンロードを開始するためのダイアログが失敗したときにテキスト・メッセージを表示します。要素が他の場所で使用されると、変換エラーが発生します。

Forward

1つのJSPページから別のリソースにクライアント・リクエスト情報を含むrequestオブジェクトを転送します。転送するJSPページとアプリケーション・コンテキストが同じ場合にかぎり、ターゲット・リソースはHTMLファイル、他のJSPページ、サーブレットのいずれかになります。

GetProperty

プロパティのgetterメソッドを使用してBeanプロパティ値を取得し、値をレスポンスに挿入します。

Hidden Comment

レスポンスにコメントを挿入せずにJSPページを記述します。

Include

オブジェクトに対するリクエストを送信し、結果をJSPファイルに含めます。

Include Directive

JSPページがコンパイルされている場合、翻訳時にJSPページにテキストまたはコードの静的ファイルを挿入します。

Page Directive

JSPページ全体に適用される属性を定義します。

Param

インクルードされたリソースに1つまたは複数の名前/値ペアをパラメータとして渡します。

Params

キー値情報を提供します。

Plugin

指定したプラグインでアプレットまたはJavaBeanを実行します。

Scriptlet

ページのスクリプト言語で有効なコード・フラグメントを挿入します。

SetProperty

JavaBeanに1つ以上のプロパティ値を設定します。

Taglib Directive

JSPページで使用されるカスタム・タグのタグ・ライブラリまたは接頭辞を定義します。

UseBean

特定の名前またはスコープを持つJavaBeanを検索またはインスタンス化します。

11.4.1.2 JSPページの作成方法

新規ギャラリ・ウィザードでは、アプリケーションのWebページを構築するために必要なすべてのステップが段階的に説明されます。

新規JSPページを作成するには、次のようにします。

1. アプリケーション・ナビゲータで、新規JSPを作成するプロジェクトを選択します。

2. 「ファイル」→「新規」を選択し、「新規ギャラリ」を開きます。

3. 図11-22に示すように、「カテゴリ」ツリーで、「Web層」を開いて「JSP」を選択します。単純なJSPが生成され、アクティブなプロジェクトに表示されます。デプロイメント・ディスクリプタ・ファイルweb.xmlもプロジェクトに追加されます。デプロイメント・ディスクリプタ・ファイルは、JSPの実行時に統合WebLogic Serverで使用されます。

図11-22 新規ギャラリのJSPの作成オプション

11.4.1.3 JSPページでのサーブレット・フィルタの登録方法

「新規ギャラリ」の「Web Tier」カテゴリから使用できるサーブレット・フィルタ作成ウィザードは、JavaServer Pagesとの間のリクエストやレスポンスの処理に使用できる新規フィルタを作成します。

JSPページにサーブレット・フィルタを登録するには、次のようにします。

1. アプリケーション・ナビゲータで、新規サーブレット・リスナーを作成するプロジェクトを選択します。通常、これはJSPをインクルードするプロジェクトです。

2. 「ファイル」→「新規」を選択して「新規ギャラリ」を開きます。

3. 「カテゴリ」ツリーで「Web層」を開き、「サーブレット」を選択します。

4. 「項目」リストで「サーブレット・フィルタ」をダブルクリックし、サーブレット・フィルタの作成ウィザードを開きます。これにより、実装クラスや初期化パラメータなどの指定した情報に基づいてサーブレット・フィルタを作成するサーブレット・フィルタの作成ウィザードが起動します。

5. 「ようこそ」ページが表示されたら、「次へ」をクリックします。

6. 「フィルタ名」、「フィルタ・クラス名」および「パッケージ」を入力します。「次へ」をクリックします。

7. 「サーブレットまたはJSPにマップ」を選択し、ドロップダウン・リストからJSPの名前を選択します。「次へ」をクリックします。

8. 「新規」をクリックし、各初期化パラメータの名前と値を入力します。次に、「終了」をクリックします。
新規サーブレット・フィルタが生成され、アクティブ・プロジェクトに表示されます。デプロイメント・ディスクリプタ・ファイルweb.xmlが、<filter>要素で更新されます。デプロイメント・ディスクリプタのファイルは、JSPの実行時にJDeveloperの埋込みWebサーバーで使用されます。

11.4.1.4 JSPページのフロー制御の理解

Webアプリケーションは、特定のユーザー・アクションへのレスポンスとしてWebブラウザの表示コンテンツをフォワードすることにより、フロー制御を実装します。通常、Webアプリケーション開発者は、アプリケーションが提供するタスクごとに異なるJSPページまたはページ・セットを作成します。ユーザーは、1つのページで選択を行い、リンクをクリックして選択内容をリクエスト・オブジェクトで送信します。クリックされたリンクは、アクションの処理を担当するページにリクエスト・オブジェクトをフォワードします。

JDeveloperでフロー制御を処理する方法

アプリケーションでリクエスト・オブジェクトが処理される方法を定義します。JDeveloperは、JSPページのフロー制御を実装するための様々なオプションをサポートしています。

- HTML生成コードとJavaスクリプトレット・コードを組み合せて使用し、自身にリンクしてアクションを処理するJSPページを作成できます。この場合は、アクション処理コード全体が、コンテンツの表示も行うJSPページに含まれます。そのため、HTMLとフロー制御ロジックが同じファイル内に混在します。
または

- JSPページの外部でコントローラを実装することにより、JSPページとそのアクションを明確に区別できます。

これらのアプローチで使用できる機能

次のアプローチがサポートされています。

- オール・イン・ワンのJSPページ開発では、JDeveloperは、データバインドの実装、データ処理(問合せ、参照、編集、更新など)の実行、レポートの生成などの複雑な動作をカプセル化するJSPタグを提供するタグ・ライブラリを介して、JSPページで表示されるJavaコードの量の削減を支援します。

- JSPインクルードを使用する場合、ナビゲーション、問合せ、参照、編集、スクロールなどの共通アクションを処理する一連のJSPページ・レベル・タグ(コンポーネント・タグともいう)を実装するOracleビジネス・コンポーネント・データ・タグ・ライブラリを利用できます。

- JSP表示コンテンツとJSPアクション・ハンドラ・クラスを完全に分離する場合、JDeveloperは、2つのJava EEフレームワークをサポートします。

- JavaServer Facesページのナビゲーション。

- JDeveloperでは、いずれかのフレームワークに基づくWebアプリケーション用ページ・フローの視覚的な設計が完全にサポートされます。

- Webアプリケーションを作成するときに、対話型アプリケーションのための多数のJava EEデザイン・パターンを実装するフレームワークを活用できるように、JDeveloperでOracle Application Development Framework (Oracle ADF)が提供されています。Oracle ADFの主要機能の1つはデータ・バインディング・レイヤーです。このレイヤーでは、標準宣言方式を使用して、Webサービス、EJB、JavaBeansおよびOracle ADF Business Componentsなどのビジネス・サービスからのデータを、Oracle ADF Facesコンポーネントおよび標準HTML要素などのUIコンポーネントにバインドします。

11.4.2 JSPのデバッグおよびデプロイ方法

JDeveloperは、Webアプリケーション・アーカイブ(WAR)の作成による、任意のJava EEアプリケーション・サーバーへのWebアプリケーションのデプロイをサポートします。統合WebLogic Serverへのデプロイに対する別のサポートもあります。

JSPをデバッグするには、次のようにします。

1. ナビゲータで、実行するJSPファイルを選択します。

2. 次のいずれかの方法でJSPをデバッグします。

- メイン・メニューから「デバッグ」→「<source_file>.jspのデバッグ」を選択します。

- JSPファイルを右クリックし、ポップアップ・メニューから「デバッグ」を選択します。JSPが起動します。

3. 他のJavaアプリケーションと同様にJSPをデバッグします。

JSPのデバッグ時には、次の機能が実行されます。

- JSPがサーブレットに変換され、コンパイルされます。

- 統合WebLogic Serverプロセスを開始します。

- 出力プロジェクト・ディレクトリから生成されたクラスの直接実行。

- デフォルトのWebブラウザでJSPが起動します。たとえば、ブラウザは次のように起動します。
http://<your_machine_IP_address>:<http_port>/<context_root>/<path_to_JSP>

次に例を示します。

http://127.0.0.1:8988/Project1-context-root/untitled1.jsp

Webデプロイメント・ディスクリプタを作成するには、次のようにします。

1. 「アプリケーション・ナビゲータ」で、Webデプロイメント・ディスクリプタを作成するプロジェクトを選択します。

2. プロジェクトにJSPファイルを追加します。JDeveloperでは、初めてJSPファイルを作成する際に、web.xmlファイルがWEB-INFプロジェクト・フォルダに追加されます。
また、Webデプロイメント・ディスクリプタ・ファイルを自分で追加するには、次のようにします。

「新規ギャラリ」の「カテゴリ」ツリーで、「General」を開き、「デプロイメント・プロファイル」を選択します。「項目」リストで、web.xml (Webデプロイメント・ディスクリプタ)を選択します。「OK」をクリックします。

目的の項目が有効でない場合、プロジェクトにWebデプロイメント・ディスクリプタがまだないことを確認します。1つのプロジェクトに使用できるディスクリプタのインスタンスは1つのみです。

3. Webデプロイメント・ディスクリプタが作成され、プロジェクトのWEB-INFフォルダに追加されると、XMLエディタ・ウィンドウで開きます。

Webデプロイメント・ディスクリプタのプロパティをインスペクトまたは変更するには、次のようにします。

1. 「アプリケーション・ナビゲータ」で、WEB-INFフォルダのWebデプロイメント・ディスクリプタを選択します。

2. 右クリックして「プロパティ」を選択します。

3. 左ペインで項目を選択すると、右ペインにダイアログのページが表示されます。ダイアログのページでプロパティ値を設定して、ディスクリプタを構成します。終了したら「OK」をクリックします。

Webデプロイメント・ディスクリプタをXMLファイルとして編集するには、次のようにします。

1. アプリケーション・ナビゲータで、WEB-INFフォルダのWebデプロイメント・ディスクリプタを選択します。

2. 右クリックして「開く」を選択します。XMLエディタにファイルが開きます。

11.4.3 JSPの実行方法

JSPの実行は、統合WebLogic Serverによって管理されます。JSPを構築した後、これをいくつかの簡単なステップで実行できます。

JSPを実行するには、次のようにします。

1. ナビゲータで、実行するJSPファイルを選択します。

2. 次のいずれかの方法でJSPを実行します。

- メイン・メニューから「実行」→「<source_file>.jspの実行」を選択します。

- JSPファイルを右クリックし、ポップアップ・メニューから「実行」を選択します。
JSPが起動します。

3. サーバーが作成されていないときにドメインを初めて実行または開始する場合、「デフォルト・ドメインの構成」ダイアログが表示されます。新規パスワードを入力します。

JSPの実行時には、次の機能が実行されます。

- JSPがサーブレットに変換され、コンパイルされます。

- 出力プロジェクト・ディレクトリから生成されたクラスの直接実行。

- サーブレット名およびクラス情報が含まれるように統合WebLogic Serverのweb.xmlファイルが編集されます。

- デフォルトのWebブラウザでJSPが起動します。ブラウザは次のフォーマットを使用して起動します。
http://<your_machine_IP_address>:<http_port>/<context_root>/<path_to_JSP>。例を次に示します。

http://127.0.0.1:8988/Project1-context-root/untitled1.jsp

実行時のJavaServer Pagesファイルの動的変更

統合WebLogic ServerでJSPを実行する場合、WebLogic Serverを再起動しなくても、JSPファイルの変更内容を変更および表示できます。ブラウザで変更を表示する場合、ブラウザからページをリロードすることも、JDeveloperでページを再実行することもできます。WebLogic Serverではファイルのみを変更できるため、JDeveloperから実行する方が、ブラウザからページをリロードするよりも処理が速くなります。

ADF Business Componentsアプリケーション・モジュールを使用したJSPの実行

統合WebLogic Serverとリモート・サーバー・インスタンスの両方でビジネス・コンポーネント・アプリケーション・モジュールを使用してJSPを実行しており、同じ中間層プロジェクトに依存する2つの異なるプロジェクトに2つのJSPが含まれている場合、jbo.server.in_wls=trueプロパティを使用して、中間層がWebLogic Serverインスタンスの内部で動作していることを宣言する必要があります。

ソースJSPでのタイムスタンプの使用

JSPの開発、コンパイルおよび実行時に、ソースJSPのタイムスタンプが以前のタイムスタンプに変更されると、JSPはJDeveloperまたはWebLogic Serverによって自動的に再コンパイルされなくなります。この場合、強制的に再コンパイルする必要があります。強制的に再コンパイルするには、JSPを右クリックし、「再ビルド」を選択し、「ビルド」→「再ビルド」、「ビルド」→「すべて再ビルド」、「ビルド」→「クリーン」または「ビルド」→「すべてクリーン」を使用します。

ソース・コントロール・システムを使用(旧バージョンをリストア)する場合、またはxcopyやmvなどのコピー・コマンドを保持するタイムスタンプを使用する場合、タイムスタンプは過去にさかのぼる場合があります。

11.4.4 JSPセグメントの理解

JSPフラグメントとは、別のJSPページに組み込むことができるJSPページのことです。

JSPフラグメントは、ファイル名拡張子として.jspfを使用します。デフォルトでは、JSPフラグメント・ファイルはその他の静的コンテンツとともにWebアプリケーション・フォルダに配置されます。完全なページではないJSPセグメントは常に、.jspf拡張子を使用する必要があります。

JSPセグメントは、JSP構文を使用して、SimpleTagハンドラを起動するためのタグの本体として、またはフラグメントとして宣言される属性の値を指定する<jsp:attribute>標準アクションの本体として定義します。またはTLD内のJspFragment型になるように定義します。

11.5 Javaサーブレットを使用したアプリケーションの開発

サーブレットはプラットフォームに依存しないサーバー側のJavaコンポーネントで、これを使用してWebサーバーの機能を拡張できます。サーブレットを使用すると、コンテンツ、機能およびWebページのルック・アンド・フィールを動的にカスタマイズできます。サーブレットでは、クライアント・リクエストが処理され、イメージ、XMLおよびHTMLなどのMIMEタイプがリクエスト元のクライアントに返されます。サーブレットはWebサーバー内で稼働するため、グラフィカル・ユーザー・インタフェースを必要としません。サーブレットは通常、HTMLコンテンツを動的に生成したり、その内容をリクエスト元のクライアントに表示する際に使用されます。サーブレットは、サーバー側のアプレットと考えられます。

サーブレットは、JavaSoftで定義された標準APIとプロトコルに基づいています。サーブレットを実行するにはユーザー環境に、Oracle WebLogic Server、JavaソフトウェアのJava ServerやApache Tomcatなど、JavaSoftサーブレットAPIをサポートするWebサーバーが必要です。JDeveloperでは、サーブレット・フィルタとリスナー(サーブレットAPI 2.5)がサポートされています。サーブレット・フィルタ作成ウィザードおよびサーブレット・リスナー作成ウィザードを使用すると、web.xmlがフィルタおよびリスナーのエントリで更新されます。web.xmlは、これらのエントリを含めるため、または変更するために手動で編集することもできます。

詳細は、『Oracle Fusion Middleware Oracle WebLogic Server Webアプリケーション、サーブレット、JSPの開発』を参照してください。

11.5.1 JDeveloperでのサーブレットのサポートの理解

サーブレットは、クライアントから送信されたHTTPリクエストを処理し、クライアントにデータベース問合せの結果を返すことにより、動的コンテンツを提供する際に使用されます。この種のJavaサーブレットは、HTTPサーブレットとして知られています。HTTPサーブレットの一般的な実行時のシナリオを次に示します。

- クライアントがサーブレットにHTTPリクエストを送信します。クライアントは、Webブラウザ、その他のアプリケーションまたはアプレットのいずれでもかまいません。

- サーブレットによりリクエストが処理され、レスポンスとしてクライアントにデータが返されます。HTMLサーブレットの場合、クライアントには動的HTMLコンテンツが生成され、返されます。サーブレットをこのように設計した場合、クライアントにかわってデータベース・サーバーのデータをリクエストし、結果をパッケージ化し、HTML形式でクライアントに返します。このような操作は、JDBCまたはOracle ADF Business Componentsを使用することにより実行できます。

- クライアント・ユーザーは、生成されたHTMLコンテンツを対話形式で表示して応答し、生成されたHTMLフォームを介してさらに別のリクエストを行うことができます。

11.5.1.1 サーブレット・フィルタについての注意事項

フィルタは、HTTPリクエスト、レスポンスおよびヘッダー情報の内容を変換できる再利用可能なコード部分です。フィルタは、通常はレスポンスを作成しません。かわりに、フィルタを使用してリクエストやレスポンスを変更するか、リクエストやレスポンスに基づく次のようなその他の処理を実行します。

- サーブレットをコールする前にリクエストを検証します。

- 実際のリクエスト・オブジェクトまたはレスポンス・オブジェクトをラップするカスタム・バージョンのオブジェクトを提供することにより、リクエストまたはレスポンスのヘッダーまたはデータ(あるいはその両方)を変更します。

- サーブレットが起動する前、サーブレットの完了後、またはその両方の時点で(たとえば、ロギングなどの)処理を実行します。

- サーブレットがコールされた後にサーブレットを捕捉します。

- サーブレットのコールをブロックします。

デフォルトでは、「新規ギャラリ」の「Web Tier」「Servlets」カテゴリから使用できるサーブレット・フィルタ作成ウィザードによりフィルタが作成されます。このフィルタは、リクエストおよびレスポンスを動的に捕捉し、リクエストまたはレスポンスに含まれている情報を変換または使用します。

11.5.1.2 サーブレット・リスナーについての注意事項

リスナーを使用し、ライフ・サイクル・イベントの発生時にメソッドがコールされるリスナー・オブジェクトを定義することにより、サーブレットのライフ・サイクルでイベントを監視し、そのイベントに対応できます。アプリケーション・イベント・リスナーは、1つ以上のサーブレット・イベント・リスナー・インタフェースを実装するクラスです。サーブレット・イベント・リスナーは、具体的にはServletContextオブジェクトおよびHttpSesionオブジェクトの状態変更の通知をサポートします。

- サーブレット・コンテキスト・リスナーは、アプリケーションのVMレベルで保持されるリソースまたは状態の管理に使用されます。

- HTTPセッション・リスナーは、同じクライアントまたはユーザーからWebアプリケーションに対して行われる一連のリクエストに関連付けられている状態またはリソースの管理に使用されます。

各イベント・タイプをリスニングする複数のリスナー・クラスを使用し、コンテナが各イベント・タイプのリスナーBeanを起動する順序を指定できます。

「新規ギャラリ」の「Web層」→「サーブレット」カテゴリから使用できるサーブレット・リスナーの作成ウィザードでは、サーブレットまたはその他のWebコンポーネントで使用できる新規リスナーを作成します。追加のリスナーを作成するには、このウィザードを複数回実行します。

11.5.1.3 HTTPサーブレットの生成方法

1. アプリケーション・ナビゲータで、WEB-INFフォルダのWebデプロイメント・ディスクリプタを選択します。

2. 右クリックして「開く」を選択します。XMLエディタにファイルが開きます。

1. アプリケーション・ナビゲータで、新しいサーブレットを作成するプロジェクトを選択します。

2. メイン・メニューから、「ファイル」→「新規」を選択するか、右クリックして「新規」を選択します。新規ギャラリが表示されます。

3. 「カテゴリ」ツリーで「Web層」を選択します。

4. 「項目」リストで「HTTPサーブレット」をダブルクリックし、HTTPサーブレット作成ウィザードを開きます。

このウィザードでは、サーブレットのメソッドおよびパラメータを含む、ユーザーが指定した情報に基づいてサーブレットを作成します。「ヘルプ」ボタンをクリックすると、ウィザード・パネルに状況依存ヘルプが表示されます。

単純なサーブレットが生成され、アクティブ・プロジェクトに表示されます。デプロイメント・ディスクリプタ・ファイルweb.xmlもプロジェクトに追加されます。デプロイメント・ディスクリプタ・ファイルは、サーブレットの実行時にJDeveloperの統合WebLogic Serverで使用されます。

11.5.2 HTTPサーブレットの基本メソッドの実装

HTTPサーブレット作成ウィザードを使用してHTTPサーブレットを作成すると、サーブレットのJavaクラスが作成されます。このクラスには、ウィザードの使用時にサーブレットに対して指定した初期化メソッドおよびHTTPメソッドが含まれています。サーブレットをカスタマイズするには、サーブレットのHTTPメソッドを実装する必要があります。

HTTPサーブレット作成ウィザードから指定できるメソッドは、次のとおりです。

- GET、条件付きGETおよびHEADリクエストを処理するdoGet

- POSTリクエストを処理するdoPost

- PUTリクエストを処理するdoPut

- DELETEリクエストを処理するdoDelete

- Serviceリクエストを処理するservice

JDeveloperによって、これらのメソッドのスケルトン・コードが作成されます。これらのメソッドでは、HttpServletRequestおよびHttpServletResponseという2つのオブジェクトを引数として使用します。また、追加パラメータを渡してサーブレットのJavaコード内でServletRequest.getParameterメソッドをコールし、プログラムによって取得することもできます。

11.5.2.1 HTTPServletRequestオブジェクトの使用方法

基本的なサーブレット・メソッドの1番目のHTTP引数は、HttpServletRequestオブジェクトです。このオブジェクトにより、次の要素にアクセスするためのメソッドが提供されます。

- リクエスト内のCookieを含むHTTPヘッダー・データ。

- リクエストの作成に使用されるHTTPメソッド。

- リクエストの一部としてクライアントから送信される引数。

サーブレット・メソッドを実装する際にコールするメソッドは、サーブレットが受信するHTTPリクエストの種類によって異なります。表11-17は、考えられるHTTPリクエストの種類と、それに対応するメソッドでサーブレット・メソッドを実装する際に使用されるものとの関係をまとめたものです。

表11-17 HTTPリクエストのタイプ

考えられるクライアントHTTPリクエスト

サーブレット・コードで使用する、対応するクライアント・データ・アクセス・メソッドおよび手法

任意のHTTPリクエスト

指定したパラメータの値を取得するには、getParameterメソッドを使用します。パラメータ名を取得するには、getParameterNamesメソッドを使用します。リクエストを手動で解析することもできます。getParameterメソッド、またはデータを自分で解析できるメソッドの1つを使用します。単純なリクエストでは、これらを一緒に使用できません。リクエストからCookieを取り出すには、getCookiesメソッドを使用します。

HTTPのGETリクエスト

解析対象となるStringを返すには、getQueryStringメソッドを使用します。

HTTPのPOST、PUTおよびDELETEリクエスト

一般に、テキスト・データの場合はgetReaderメソッドから返されるBufferedReaderを使用します。バイナリ・データの場合は、getInputStreamメソッドから返されるServletInputStreamを使用します。

11.5.2.2 HTTPServletResponseオブジェクトの使用方法

基本的なサーブレット・メソッドの2番目のHTTP引数は、HttpServletResponseオブジェクトです。このオブジェクトにより、サーブレットからクライアントに返される情報がカプセル化されます。このオブジェクトでは、クライアントにデータを返す際に次の方法がサポートされています。

- テキスト・データの場合、Writer (getWriterメソッドを使用)

- バイナリ・データの場合、OutputStream (getOutputStreamメソッドを使用)

また、addCookieメソッドを使用して、レスポンス時にCookieを送信することもできます。

HTTPレスポンス・タイプを変更するには、次のようにします。

デフォルトでは、HTTPサーブレット作成ウィザードにより、HTMLコンテンツ(MIMEタイプ: text/html)を動的に生成するサーブレットが作成されます。HTTPサーブレット作成ウィザードで、希望するMIMEタイプを「コンテンツ・タイプを生成」ドロップダウン・リストから選択すると、別のタイプに変更できます。setContentTypeメソッドが選択されたタイプに設定され、サーブレットのJavaファイルに追加されます。たとえば、XMLコンテンツ・タイプを選択すると、次のように生成されます。

public class HelloWorld extends HttpServlet
{
private static final String CONTENT_TYPE = "text/xml; charset=windows-1252";
private static final String DOC_TYPE;
public void init(ServletConfig config) throws ServletException
{
super.init(config);
}
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
response.setContentType(CONTENT_TYPE);
PrintWriter out = response.getWriter();
if (DOC_TYPE != null)
{
out.println(DOC_TYPE);
}
out.close();
}
}

11.5.3 サーブレット・フィルタの作成方法

「新規ギャラリ」の「Web層」→「サーブレット」カテゴリから使用できるサーブレット・フィルタの作成ウィザードは、サーブレットまたはJavaServer Pagesとの間のリクエストやレスポンスの処理に使用できる新規フィルタを作成します。

サーブレット・フィルタを作成するには、次のようにします。

1. アプリケーション・ナビゲータで、新規サーブレット・フィルタを作成するプロジェクトを選択します。通常、これはサーブレットまたはJSPを含むプロジェクトです。

2. 「ファイル」→「新規」を選択して「新規ギャラリ」を開きます。

3. 「カテゴリ」ツリーで「Web層」を開き、「サーブレット」を選択します。

4. 「項目」リストで「サーブレット・フィルタ」をダブルクリックし、サーブレット・フィルタの作成ウィザードを開きます。

サーブレット・フィルタ作成ウィザードは、実装クラスや初期化パラメータなどの指定した情報に基づいてサーブレット・フィルタを作成します。ウィザードの状況依存ヘルプを表示するには、[F1]を押すか、「ヘルプ」をクリックします。

新規サーブレット・フィルタが生成され、アクティブ・プロジェクトに表示されます。デプロイメント・ディスクリプタ・ファイルweb.xmlが、<filter>要素で更新されます。デプロイメント・ディスクリプタ・ファイルは、サーブレットまたはJSPの実行時にJDeveloperの統合WebLogic Serverで使用されます。

11.5.4 サーブレット・リスナーの作成方法

「新規ギャラリ」の「Web Tier」->「Servlets」カテゴリから使用できるサーブレット・リスナー作成ウィザードは、サーブレットまたはその他のWebコンポーネントで使用できる新規リスナーを作成します。

サーブレット・リスナーを作成するには、次のようにします。

1. アプリケーション・ナビゲータで、新規サーブレット・リスナーを作成するプロジェクトを選択します。通常、これはサーブレットまたはその他のWebコンポーネントを含むプロジェクトです。

2. 「ファイル」→「新規」を選択して「新規ギャラリ」を開きます。

3. 「カテゴリ」ツリーで「Web層」を開き、「サーブレット」を選択します。

4. 「項目」リストで「サーブレット・リスナー」をダブルクリックし、サーブレット・リスナーの作成ウィザードを開きます。

サーブレット・リスナー作成ウィザードは、実装クラスやインタフェースなどの指定した情報に基づいてサーブレット・リスナーを作成します。ウィザードの状況依存ヘルプを表示するには、[F1]を押すか、「ヘルプ」をクリックします。

新規サーブレット・リスナーが生成され、アクティブ・プロジェクトに表示されます。デプロイメント・ディスクリプタ・ファイルweb.xmlが、<listener>要素で更新されます。デプロイメント・ディスクリプタ・ファイルは、サーブレットの実行時にJDeveloperの統合WebLogic Serverで使用されます。

11.5.5 JSPページでのサーブレット・フィルタの登録

「新規ギャラリ」の「Web Tier」カテゴリから使用できるサーブレット・フィルタ作成ウィザードは、JavaServer Pagesとの間のリクエストやレスポンスの処理に使用できる新規フィルタを作成します。

JSPページにサーブレット・フィルタを登録するには、次のようにします。

1. アプリケーション・ナビゲータで、新規サーブレット・リスナーを作成するプロジェクトを選択します。通常、これはJSPをインクルードするプロジェクトです。

2. 「ファイル」→「新規」を選択して「新規ギャラリ」を開きます。

3. 「カテゴリ」ツリーで「Web層」を開き、「サーブレット」を選択します。

4. 「項目」リストで「サーブレット・フィルタ」をダブルクリックし、サーブレット・フィルタの作成ウィザードを開きます。
これにより、実装クラスや初期化パラメータなどの指定した情報に基づいてサーブレット・フィルタを作成するサーブレット・フィルタ作成ウィザードが起動します。[F1]を押すか「ヘルプ」をクリックすると、ウィザード・パネルに状況依存ヘルプが表示されます。

5. 「ようこそ」ページが表示されたら、「次へ」をクリックします。

6. 「フィルタ名」、「フィルタ・クラス名」および「パッケージ」を入力します。「次へ」をクリックします。

7. 「サーブレットまたはJSPにマップ」を選択し、ドロップダウン・リストからJSPの名前を選択します。「次へ」をクリックします。

8. 「新規」をクリックし、各初期化パラメータの名前と値を入力します。次に、「終了」をクリックします。

新規サーブレット・フィルタが生成され、アクティブ・プロジェクトに表示されます。デプロイメント・ディスクリプタ・ファイルweb.xmlが、<listener>要素で更新されます。デプロイメント・ディスクリプタ・ファイルは、JSPの実行時にJDeveloperの統合WebLogic Serverで使用されます。

11.5.6 サーブレットの実行方法

サーブレットは、Java EEアプリケーション・サーバーで実行されるJavaプログラムです。サーブレットは、サーバー側のJavaアプレットに対応するものと考えることができます。JDeveloperでは、統合WebLogic Serverを使用してサーブレットを実行します。

統合WebLogic Server内でサーブレットを実行する別の方法として、サーブレット・クラスをアプリケーションとして実行できるmain()ルーチンをサーブレットに含めることができます。この宣言は、public static void main(String[] args)です。

この方法は、Oracle WebLogic Serverでサーブレット・クラスを実行せずに、サーブレット・クラスをテストする場合に役立ちます。

サーブレットを実行するには、次のようにします。

サーブレットの構築後、次のいずれかの方法で実行コマンドを実行して、サーブレットを実行できます。

1. ナビゲータで、実行するサーブレットを含むJavaファイルを選択します。

2. 次のいずれかの方法でサーブレットを実行します。

- メイン・メニューから、「実行」を選択します。

- サーブレットを含むJavaファイルを右クリックし、ポップアップ・メニューから「<servletname>.javaの実行」(複数の実行方法がある場合は、実行方法のオプションも)を選択します。

- サーブレットを含むJavaファイルを選択し、ツールバーの「実行」ボタンをクリックします。

3. アプリケーションとして動作するようサーブレットを設定する場合、ダイアログを使用して、ターゲット・サーブレットを起動する方法を選択します。

- 「アプリケーションとして」: サーブレットは、スタンドアロンJavaアプリケーションとして起動します。

- 統合WebLogic Server内: 埋込みサーバーが起動し、サーブレットがサーバーで実行されます。

目的のオプションを選択し、「OK」をクリックします。

統合WebLogic Serverでサーブレットを実行すると、JDeveloperでは次の機能が実行されます。

- サーブレット・ソース・コードのコンパイル。

- 埋込み統合WebLogic Serverプロセスの開始。

- 出力プロジェクト・ディレクトリから生成されたクラスの直接実行。

- サーブレット名およびクラス情報が含まれるように、埋込み統合WebLogic Serverのweb.xmlファイルを編集。

- デフォルトWebブラウザでのサーブレットの起動。たとえば、ブラウザは次のように起動します。
http://<your_machine_IP_address>:<http_port>/<context_root>/servlet/<servlet_full_class_name>

次に例を示します。

http://127.0.0.1:8988/Project1-context-root/servlet/package1.Servlet1

11.5.7 サーブレットのデバッグ方法

サーブレットは、JDeveloperの埋込み統合WebLogic Serverを使用してデバッグできます。「デバッグ」コマンドでは、サーブレットを含む選択したJavaファイルのデバッグが行われます。JDeveloperでは、サーブレットのソース・コード内にブレークポイントを設定でき、デバッガはサーブレットからJavaBeansへのコールに従います。

サーブレットをデバッグする手順は、次のとおりです。

1. ナビゲータでサーブレットJavaファイルを選択し、JDeveloperのメイン・メニューから「デバッグ」→「<project_name>のデバッグ」を選択するか、「デバッグ」アイコンをクリックします。サーブレットJavaファイルを右クリックし、「デバッグ」を選択する方法もあります。
サーブレットをデバッグする場合、JDeveloperによりデフォルトのWebブラウザが開かれ、サーブレットが起動します。

2. 他のJavaアプリケーションと同じように、ブレークポイントを設定してサーブレットをデバッグします。

3. サーブレットの実行とテストを終了すると、メイン・メニューから「実行」→「終了」→統合WebLogic Serverを選択して、サーバーを終了できます。

サーブレットをデバッグする際、JDeveloperでは次の機能が実行されます。

- サーブレット・ソース・コードのコンパイル。

- 統合WebLogic Serverプロセスを開始します。

- 出力プロジェクト・ディレクトリから生成されたクラスの直接実行。

- デフォルトWebブラウザでのサーブレットの起動。たとえば、ブラウザは次のように起動します。
http://<your_machine_IP_address>:<http_port>/<context_root>/servlet/<servlet_full_class_name>

次に例を示します。

http://127.0.0.1:8988/Project1-context-root/servlet/package1.Servlet1

11.5.8 サーブレットのデプロイ方法

JDeveloperでは、Webモジュール・アーカイブ(WAR)の作成による、Java EEアプリケーション・サーバーへのサーブレット・アプリケーションのデプロイがサポートされています。

詳細は、『Oracle Fusion Middleware Oracle WebLogic Server Webアプリケーション、サーブレット、JSPの開発』を参照してください。

11.6 スクリプト言語を使用したアプリケーションの開発

JDeveloperには、JSPページおよびHTMLページを操作する際の基本的なJavaScriptのサポートをはじめとするスクリプト機能が用意されています。この項では、Oracle JDeveloperでのスクリプト言語のサポート、スクリプト言語の使用方法、およびJavaScriptコードのリファクタ方法について説明します。

11.6.1 JDeveloperでのスクリプト言語のサポート

JDeveloperは、コード・インサイト、ブレッドクラムのサポート、およびJDeveloperの構造ペインを提供することにより、スクリプト言語(特にJavaScriptおよびJSON)をサポートしています。JDeveloperのJavaScriptコード・インサイトは、スクリプト・リージョンまたはHTMLイベント・ハンドラ内で入力する際にラベル、変数、パラメータおよび関数を補完します。ブレッドクラムのサポートにより、ファイルの操作時に選択したJavaScript関数の階層内での位置が表示されます。また、構造ペインには、ファイルに定義されている関数や関数に定義されている変数の階層が表示されます。

11.6.1.1 JavaScriptコード・インサイトの使用方法

JDeveloperのJavaScriptコード・インサイトは、スクリプト・リージョンまたはHTMLイベント・ハンドラ内で入力する際にラベル、変数、パラメータおよび関数を補完します。

JavaScriptコード・インサイト機能により、特定のJavaScript関数で使用可能な補完の動的なリストが編集ペインの下部に表示されます。入力するにつれ、すでに入力した値に適した値のリストが表示されます。プロジェクトですでに使用または定義された使用可能なエントリのリストを表示するには、ドロップダウン矢印をクリックして「表示」を選択します。

JavaScriptコード・インサイトは、.html、.jspまたは.jspxソース・ファイル、あるいはユーザー定義関数および組込みJavaScript関数のインクルード済.jsファイルを編集する際に使用できます。アシスト・ウィンドウには、参照された.jsファイルや、まだインクルードされていないプロジェクト内の任意の.jsファイルが表示されます。

通常のJavaScriptコード・インサイトの起動時に、使用可能なプロパティの大規模なリストが表示される可能性があります。しかし、ソース・エディタで[Ctrl]+[Alt]+[Space]を押すことにより、JavaScriptスマート・コード・インサイトを呼び出すことができます。これにより、インサイトが呼び出されたオブジェクトのタイプの迅速な特定が試行され、これらのプロパティのみが表示されます。

JavaScriptコード・インサイト機能により、次の要素のテンプレートが作成されます。

コード・インサイトを呼び出すには、次のようにします。

JavaScript要素またはその略称を入力します。

- case

- for

- foreach

- if

- ife(if-else)

- sw(switch)

- wh(while)

- fori (範囲付きのループ)

- try

- trycf

- tryf

- al (アラート)

- fn (関数)

- fne (関数式)

- dne (do-whileループ)

JavaScriptコード・インサイトは、DOMベースでブラウザに対応しており、Internet Explorer、MozillaまたはSafari用のブラウザ・アイコンが1つ以上表示され、メソッドまたは変数に対するブラウザのサポートを示します。

11.6.1.2 ブレッドクラムのサポートの使用方法

ソース・エディタでJavaScriptファイルを編集する際に関数内にカーソルを置くと、「ソース・エディタ」ウィンドウの下マージンにブレッドクラム・トレイルが表示されます。

このブレッドクラム・トレイルには、JavaScript階層内のこの関数の位置とともに、メソッドやパラメータなどのそのサブ要素が表示されます。また、if、if-else、do、while、forおよびtry/catch/finallyのブレッドクラムも表示されます(Javaの場合と同じです)。

階層内で使用可能な関数を検索するには、次のようにします。

- ブレッドクラム・トレイルで、ドロップダウン(ファイル・レベル)をクリックし、その親内で定義されている関数に移動します。

11.6.1.3 構造ペインのサポートの使用方法

JavaScriptファイルの編集時には、構築中のプロジェクトまたはアプリケーションの構造内の位置が追跡され、これが構造ペインに表示されます。

構造ペインには、ファイルに定義されている関数や関数に定義されている変数の階層が表示されます。

構造ペインからコード・エディタ内の位置を検索するには、次のようにします。

- 構造ペイン内の要素をダブルクリックし、コード・エディタ内の対応する位置にフォーカスを設定します。ファイルにエラーがある場合、これらも構造ペインに表示されます。

11.6.2 スクリプト言語の操作

スクリプト言語の操作には、HTMLまたはJSPページ内のスクリプト要素の直接的な使用のみでなく、アプリケーション全体に関連付けられたスクリプト・ファイルへの参照の使用も含まれます。

JDeveloperコード・エディタには、スクリプトまたはスクリプト言語要素に適したコードを決定する上で役に立つ構文強調表示機能が用意されています。

スクリプト言語の操作に関する他の要素には、JavaScript Object Notation (JSON)ファイルの作成が含まれます。

11.6.2.1 スクリプトの作成方法

HTMLページまたはJSPページに挿入する(埋め込む)クライアント側スクリプトを作成できます。

JDeveloperでスクリプトを作成するには、次のようにします。

1. JSPページまたはHTMLページをまだ開いていない場合は、アプリケーション・ナビゲータでアイコンをダブルクリックして開きます。

2. コンポーネント・パレットで、ドロップダウン・リストから「HTML」パレット、「共通」ページを選択します。

3. ソース・エディタまたは「構造」ウィンドウで、スクリプトを作成する位置にカーソルを置き、スクリプト要素を選択します。または、スクリプト要素をHTMLまたはJSPページ上の目的の場所までドラッグします。

4. 「スクリプト」ダイアログで、外部スクリプト・ファイルの場所を入力するか、スクリプト言語(text/javascript、text/tcl、text/vbscript)を選択し、スクリプト・コードを入力します。詳細なヘルプを参照するには、ダイアログで[F1]を押すか、「ヘルプ」をクリックしてください。

5. 「OK」をクリックします。

外部スクリプト・ファイルを詳細するスクリプト要素は、ページに次のように埋め込まれます。

<script language="JavaScript" src="foo.js"></script>

または

スクリプトのコードがページに埋め込まれ、ソース・エディタに次のように表示されます。

<SCRIPT type="text/vbscript">

<!--

>Sub foo()

...

End Sub

' -->

</SCRIPT>

11.6.2.2 HTMLまたはJSPページへのスクリプト言語要素の追加方法

JDeveloperでは、HTMLページおよびJSPページを操作する際に基本的なJavaScriptサポートが提供されます。ドラッグ・アンド・ドラッグのサポートに加え、Javaコード・エディタでのJavaScriptコードのテキスト表示を変更したり、JDeveloperでJavaScriptファイルとして認識されるようにファイル拡張子を関連付けることができます。

JSPページまたはHTMLページにJavaScriptを挿入するには、次のようにします。

1. 「ファイル」→「新規」を選択します。

2. 「Web Tier」カテゴリを選択します。

3. 「項目」リストで、「JavaScriptファイル」を選択します。

4. 「JavaScriptファイルの作成」ダイアログで、JavaScript (.js)ファイルの名前と場所を入力します。

5. JavaScriptファイルのJavaコード・エディタで、JavaScriptコードを入力して保存します。
JavaScriptファイルは、アプリケーション・ナビゲータでHTMLまたはJSPプロジェクトの「Webコンテンツ」フォルダの下に表示されます。

6. HTMLページまたはJSPページをまだ開いていない場合は、JSP/HTMLビジュアル・エディタで開きます。

7. JavaScriptをアプリケーション・ナビゲータからページ上の適当な場所にドラッグします。JavaScriptをコンポーネント・パレットからドラッグすると、JavaScriptファイルを現在のプロジェクトのドキュメント・ルートにコピーするよう求められます。
JavaScriptファイルを参照するスクリプト要素が作成されます。

注意:

JavaScriptファイルをプロジェクトにインポートすることも可能です。

11.6.2.3 構文ハイライト表示の設定方法

構文ハイライト表示は、Java、JavaScriptおよびJSONファイルの編集時に構文要素(カッコの一致など)をより簡単に識別できるJDeveloperの機能です。

コード・エディタでのJavaScript構文ハイライト表示オプションを設定するには、次のようにします。

1. メイン・メニューから、「ツール」→「プリファレンス」を選択します。

2. 「プリファレンス」ダイアログで、「コード・エディタ」ノードを開きます。

3. 「構文の色指定」ノードを選択します。

4. 「言語」カテゴリで、「JavaScript」を選択します。
JavaScriptスタイル設定を反映してページの表示が変化します。

5. 使用可能なスタイル設定を適宜変更します。

6. 「OK」をクリックします。
各フィールドの詳細なヘルプを表示するには、[F1]を押すか、「ヘルプ」をクリックします。

Javaコード・エディタに戻ると、変更したスタイル設定に従ってJavaScript構文がハイライト表示されます。

11.6.2.4 JavaScriptファイル拡張子の関連付け方法

JDeveloperでは、デフォルトで.jsファイル拡張子を持つファイルがJavaScriptとして認識されます。その他のファイル拡張子もJDeveloperで認識されるように関連付けることができます。

JDeveloperでJavaScriptファイルとして認識されるファイル拡張子を追加または削除するには、次のようにします。

1. メイン・メニューから、「ツール」→「プリファレンス」を選択します。

2. 「プリファレンス」ダイアログで、「ファイル・タイプ」を選択します。

3. 「認識済のファイル・タイプ」リストで、「JavaScriptソース」ノードを選択します。

4. .jsファイル拡張子が関連付けられます。
JavaScriptファイル拡張子を作成するには、「追加」をクリックします。

「拡張子の追加」ダイアログで、JavaScriptファイルに関連付けるファイル拡張子を入力します。

5. ファイルの関連付けを削除するには、「削除」をクリックします。

6. 「OK」をクリックします。
各フィールドの詳細なヘルプを表示するには、[F1]を押すか、「ヘルプ」をクリックします。

このような手順で追加した拡張子を持つファイルを開くと、そのファイルはJavaScriptとして認識されます。

11.6.2.5 JSONファイルの作成方法

JDeveloperではJSON (JavaScript Object Notation)ファイルを作成できます。JSONファイルを使用すると、簡単に解読できるだけでなく多数のプログラミング言語で簡単に解釈できる軽量フォーマットで、アプリケーション間またはアプリケーション内のファイル間で構造化データを簡単に渡すことができます。

JSONファイルを作成するには、次のようにします。

1. 「ファイル」→「新規」→「Web層」→「HTML」→「JSONファイル」を選択します。

2. ファイルに関する次のデータを指定します。
ファイル名

JSONファイルの名前。デフォルトでは、これはuntitled.jsonです。.json拡張子により、他のパーサーがファイル内のデータのJSONフォーマットを読み込むことが可能になります。

ディレクトリ

JSONファイルを格納するためのローカル・ファイル・システム内のパス名。

参照

ローカル・ファイル・システム内のパスを選択するためのファイル・システム・ブラウザを開きます。

3. 「OK」をクリックします。

これで、JSONファイルをJDeveloperで編集できるようになります。JavaScriptエディタの通常の機能を使用してコンテンツを追加します。

11.6.3 JavaScriptコードのリファクタ

JDeveloperは、関数または変数への参照の名前変更をサポートしています。また、JDeveloperでは、削除操作の実行時に関数名のすべてのオカレンスが新規名に置き換えられます。このような関数名の名前変更および置換方法はリファクタと呼ばれます。

リファクタとは、プログラムの動作を変更することなくコード構造を変更する編集上の技術です。リファクタ操作は一連の簡単な編集操作で、プログラムのコードが正常にコンパイルおよび実行されるように変換します。JDeveloperには、JavaScriptコードおよびファイル用として自動リファクタ操作のコレクションが用意されています。

リファクタは、プログラムのソース・コードを変更して保持、拡張または再利用しやすくする際に使用します。この変更は一連のリファクタ・ステップとして行われます。ユーザーは、ステップの終了ごとに、プログラムを再ビルドおよび再検証して、エラーが発生していないか確認できます。

JDeveloperは、JavaScriptコードおよびファイル用として次のリファクタ操作をサポートしています。

- 関数、変数またはラベルへの参照の名前変更。関数名または変数名の各オカレンスが新しい名前で置き換えられます。

- 安全な削除。関数の定義が複製され、複製された定義に含まれる関数名のオカレンスがすべて新しい名前で置き換えられます。

11.6.3.1 コード要素の使用方法の検索

JavaScriptファイル内で関数、変数およびラベルなどのコード要素の特定の使用方法を検索できます。これにより、リファクタ時に、要素が使用されている場所を特定できるため、要素を安全に変更、または変更しないことを選択できます。

JavaScriptファイル内で関数、変数またはラベルを検索するには、次のようにします。

1. 検索する関数、変数およびラベル内にカーソルを置き、右クリックします。

2. 「使用方法の検索」を選択します。

JavaScriptファイル内で選択した要素が検索されます。

要素の検索時には、オプションの選択肢が2つ用意されています。

コメント内を検索

変数名、ラベル名または関数名についてコメント内を検索する場合、これを選択します。これが役立つのは、後でリストアする予定のコードのセクションをコメント・アウトした場合や、リファクタに含まれる要素の更新名がコメントに反映されることを単に確認する場合などです。

新規タブ

検索の結果を新規タブに表示する場合、これを選択します。これを選択しない場合、「ログ」ウィンドウに結果が表示されます。

11.6.3.2 JavaScriptコード要素の名前の変更

JavaScriptコードを操作する際に、関数または変数へのすべての参照および定義の名前を簡単に変更できます。必要に応じて、最初にプレビュー(置換する使用方法のリスト)を生成できます。プレビューを使用して、その他の使用方法の名前を変更する前に、選択した使用方法を調査、変更するかまたは除外します。

名前の変更操作の有効範囲は、プロジェクト内の要素の全範囲になります。関数の使用方法は、プロジェクト内で表示されるすべての場所で置換されます。変数はそれぞれの定義の語彙範囲のみで名前が変更され、同じ名前を持つそれ以外の要素は変更されません。

デフォルトでは、操作は、コメント(ただし、コード要素を指定するドキュメント・コメント・タグではない)および注釈を除いた、JavaScriptファイルで実行されます。あいまいではない使用方法が置換されます。

コード要素の名前を変更するには、次のようにします。

1. 名前を変更する要素を選択します。

- JavaScriptエディタで、関数名または変数名を選択します。
または

- JSPまたはHTMLページのスクリプトで、関数名または変数名を選択します。

2. コマンドを起動します。

- メイン・メニューまたはポップアップ・メニューから、「リファクタ」→「名前の変更」を選択します。
または

- [Ctrl]と[Alt]を押しながら[R]を押します。

3. 「変更後の名前」ボックスに、新しい名前を入力します。名前は有効で、まだ使用されていない必要があります。

4. 「コメント内を検索」を選択し、操作をコメント、ドキュメント・コメントの本体および注釈にまで拡張します。

5. 名前の変更操作をコミットする前に置換される使用方法をインスペクトする場合は、「プレビュー」を選択します。

6. 「OK」をクリックします。「プレビュー」を選択した場合は、プレビュー・ログ・ウィンドウからの名前の変更操作を完了します。「プレビュー」を選択しない場合、すべての使用方法が変更されます。

11.6.3.3 JavaScriptコード要素の削除

JavaScriptコードを開発する際に、関数、ラベルまたは変数の定義を安全に削除できます。要素が使用中の場合は、ユーザーの確認なしに定義の削除が実行されることはありません。

要素が使用中である場合は、使用方法を示すログが表示されます。このリストを使用して、使用方法をインスペクトおよび解決します。このため、削除を確認しても、残りの使用方法は未定義の参照としてコード内に残ります。

コード要素を削除するには、次のようにします。

1. 削除する要素を選択します。

- JavaScriptエディタで、関数名、ラベル名または変数名を選択します。
または

- JSPまたはHTMLページのスクリプトで、関数名、ラベル名または変数名を選択します。

2. コマンドを起動します。

- メイン・メニューまたはポップアップ・メニューから、「リファクタ」→「安全に削除」を選択します。
または

- [Alt]キーを押しながら[Del]キーを押します。

「安全に削除」ダイアログが開き、プロジェクト・ファイルで使用方法が検索されます。

3. ダイアログが閉じた場合、要素は削除されています。検索の実行後もダイアログが開いたままの場合、要素には未解決の使用方法があります。

- 「使用方法の表示」をクリックし、使用方法を調査および解決します。完了後、コマンドを再起動して要素を削除します。
または

- 「OK」をクリックして、要素の定義を削除します。

11.6.3.4 リファクタ操作のプレビュー方法

多くの使用方法を変更する可能性があるリファクタ操作を実行する場合、手動での変更が必要な使用方法や除外が必要な使用方法を識別する場合には、リファクタのプレビューが役に立ちます。操作をコミットする前にプレビュー・ログ・ウィンドウで使用方法を表示し、これらを調査して解決するオプションがあります。変更を確認したら、操作をコミットできます。

ログには、閉じることが可能なパッケージとJavaファイルのツリーが表示されます。各ファイルの下に、変更した使用方法が含まれるコードの行が表示されます。プレビュー・ウィンドウの詳細を参照するには、[F1]を押します。

編集ウィンドウに使用方法を表示するには、次のようにします。

- ログのエントリをダブルクリックします。

リファクタ操作から使用方法を除外するには、次のようにします。

- 使用方法を右クリックし、「対象外」を選択します。

リファクタ操作をコミットするには、次のようにします。

1. 使用方法に影響する編集を行った場合は、ログ・ツールバーの「リフレッシュ」ボタンをクリックし、使用方法の検索を再実行します。

2. ログ・ツールバーの「リファクタ実行」ボタンをクリックします。

11.6.3.5 JavaScriptコードの再フォーマット方法

JavaScriptでは、編集対象の操作の範囲や、関数の全体的な構造のどこにその操作が配置されるかに関する感覚を維持する上で、インデント、カッコおよびその他の視覚的な目印が役立ちますが、編集時には、その最初のスキームがわからなくなる場合があります。JDeveloperでは、JavaScriptコードを理解しやすいように再フォーマットすることにより、パラレル要素を整列し、編集対象の関数の各部に関する視覚的な目印を見つけやすくすることができます。また、再フォーマットにより、無関係の改行や他の余白をJavaScriptから除去し、JavaScriptをよりコンパクトにできるため、ファイル・サイズの縮小によってデプロイメントの効率を高めることができます。

JavaScriptコードのセクションを再フォーマットするには、次のようにします。

1. 再フォーマットするJavaScriptコードのセクション内にカーソルを置いて右クリックするか、再フォーマットするコードSnippetを選択します。

2. 「再フォーマット」を選択します。

選択したJavaScriptコードのセクションが再フォーマットされます。ファイルを保存すると、コードが新規フォーマットで保存されます。

11.6.3.6 コードのフォーマット・プリファレンスの変更方法

コード・エディタのルック・アンド・フィール、一般的な動作およびコード・インサイトとJavaインサイトのオプションをカスタマイズできます。

コードのフォーマット・プリファレンスを変更するには、次のようにします。

- メイン・メニューから、「ツール」→「プリファレンス」→「コード・エディタ」を選択します。

注意:

このダイアログで、Javaソース・エディタでJavaファイルを編集するためのオプションを選択することもできます。選択内容はJavaScriptとJavaファイルに適用されます。

11.6.3.7 コード折りたたみの使用方法

判読性やファイル・サイズに影響する変更を行った場合、.jsファイルをフォーマットすることもできます。また、コード折りたたみを使用すると、選択したファイルの論理要素(関数定義など)を折りたたむことによってファイルの特定の領域にのみ集中できるため、判読性を高めることができます。折りたたむと、コード要素の最初のいくつかのキーワード(定義対象の関数の名前など)のみが表示されます。残りの部分は最初のキーワードの後ろに省略記号(...)で示されます。

コード折りたたみを使用するには、次のようにします。

- JavaScriptエディタでテキストの最初の列の左側にある「-」記号をクリックします。
これにより、選択した要素のコードが折りたたまれ、「-」記号が「+」に変化します。

コードのセクションを展開するには、次のようにします。

- 「+」記号をクリックします。
すべてのJavaScriptコードのフォーマット機能やハイライト表示機能およびコード折りたたみは、JSONファイルの編集または作成時にも適用されます。

11.6.3.8 ファイルのリファクタおよび移動方法

ファイルを移動する場合、アプリケーション全体にわたってこのファイルへの参照を変更する必要があります。JDeveloperでは、リファクタ中に<script src=...>タグで参照を変更することによってこのタスクがサポートされます。

JavaScript関数をリファクタおよび移動するには、次のようにします。

1. アプリケーション・ナビゲータでリファクタおよび移動するファイルを右クリックし、「リファクタおよび移動」を選択します。

2. 関数の移動先となるファイルの新規名を入力します。

3. 「名前の変更」ログ・ウィンドウの「リファクタ実行」をクリックします。

リファクタが完了すると、リファクタの影響を受けるすべてのHTMLファイルで<script src=...>タグが更新されます。

11.7 JSPおよびFaceletsタグ・ライブラリの使用

JDeveloperは、カスタム・アクションという再利用可能なモジュールの開発を可能にする、JSP 2.0、JSP 1.2およびFacelets 2.0カスタム・タグ・ライブラリをサポートします。カスタム・アクションにより実行できるタスクの例としては、フォーム処理、データベースまたは電子メールへのアクセス、およびフロー制御があります。カスタム・アクションを起動するには、JSPページ内のカスタム・タグを使用します。カスタム・タグの集合が、カスタム・タグ・ライブラリとなります。タグ・ライブラリ・ディスクリプタ・ファイル(.tld)は、タグ・ライブラリと、その中の各タグを説明するXML文書です。

11.7.1 タグ・ライブラリとWebページの使用方法

新規JSPまたはFaceletsカスタム・タグ・ライブラリの作成、ならびに他のソースからのカスタム・タグ・ライブラリのインポートおよび登録の作業を容易にするいくつかのツールが用意されています。カスタム・タグ・ライブラリは、JDeveloperのコード(タグ)・インサイトによりサポートされ、コンポーネント・パレットに追加できます。カスタム・タグ・ライブラリを使用する場合、カスタム・タグ・ライブラリおよびタグを作成できます。Javaコード・エディタでのページの編集時に、タグのコード(タグ)・インサイトを起動するために、カスタム・タグ・ライブラリを登録します。ページの編集時に、パレット上で使用可能なタグを表示するために、パレットにカスタマイズされたページを追加します。

タグは、多くのJSPおよびFaceletsアプリケーションに共通しています。コア反復機能および制御フロー機能、テキストの組込み、国際化が可能な書式設定タグ、およびXML操作タグがサポートされます。このような標準化によって、1つのタグを複数のコンテナで使用できるようになり、コンテナ間での簡単な認識および最適化が実現されます。式言語(EL)と4つの標準タグ・ライブラリを使用することで、JSTLでは動的なJavaベースのWebサイトを開発できます。

JSTLが装備されたことにより、<jbo:showvalue>や<jbo:rowsetiterate>などのタグが不要になり、ビジネス・コンポーネント・データ・タグ・ライブラリをより簡単に使用できます。このような一般的な操作のコーディングに時間を費やすかわりに、関わっているWebアプリケーション・プロジェクト固有のタグやWebページの開発に集中できます。

タグ・ライブラリのソースの検索を含むライブラリの管理を行うには、「ツール」→「ライブラリの管理」→「JSPタグ・ライブラリ」または「Faceletsタグ・ライブラリ」に移動します。

タグのサポートには、JSPまたはFaceletsページの作成に使用可能な次のカスタム・タグ・ライブラリが含まれます。

- JSTL Core。このタグ・ライブラリは、式、フロー制御およびURLベースのリソースに対する汎用アクセス方式に関するタグを提供します。これらのリソースのコンテンツをJSPページ内に組み込んだりJSPページ内で処理できます。

- JSTL Format。このタグ・ライブラリは、I18Nとローカル書式およびローカル解析をサポートするタグを提供します。

- JSTL SQL。このタグ・ライブラリは、JSPの中からデータベースを直接アクセスできるタグを提供します。

- JSTL XML。このタグ・ライブラリは、XML文書の解析およびXSL変換を行えるタグを提供します。

- Facelets 2.0。このタグ・ライブラリは、Webページ内のUIコンポーネントを作成、管理および処理できるタグを提供します。詳細は、Faceletsタグ・ライブラリの文書(http://myfaces.apache.org/core20/myfaces-impl/tlddoc-facelets/ui/tld-summary.html)を参照してください。

- Trinidad Components 2.0。詳細は、Apache Trinidadのページ(http://myfaces.apache.org/trinidad/index.html)を参照してください。

カスタム・タグ・ライブラリを作成すると、開発中の別のアプリケーションでライブラリを再利用できます。タグ・ライブラリは、アプリケーションで使用する場合、デプロイメント・ディスクリプタの一部としてJDeveloperにインクルードされます。

プロジェクト・レベルのタグ・ライブラリを追加、削除または編集するには、次のようにします。

1. 「アプリケーション」→「デフォルト・プロジェクト・プロパティ」→「JSPタグ・ライブラリ」を選択します。

2. 必要に応じて、プロジェクトのタグ・ライブラリを追加、削除または編集します。

JSPタグ・ライブラリ・ディスクリプタ(TLD)・ファイルを参照するには、次のようにします。

1. Javaコード・エディタで、参照するTLDファイルのタグ・ライブラリ宣言内の任意の位置を右クリックします。タグ・ライブラリ宣言は、<%@ taglibで始まります。

2. ポップアップ・メニューから、「タグ・ライブラリの参照」を選択します。JSPタグ・ライブラリ・ディスクリプタ・ファイルが別のJavaコード・エディタ・ウィンドウに開きます。

11.7.2 カスタム・タグ・ライブラリの使用方法

カスタム・タグ・ライブラリを作成するには、タグ・ライブラリ・ディスクリプタ・ファイルを作成し、次に簡単なタグまたはコンポーネント・タグを作成します。タグ・ライブラリ・ディスクリプタ(TLD)・ファイルは、タグ・ライブラリと、その中の各タグを説明するXML文書です。これはコンテナによりタグの検証に使用されます。タグを作成すると、それらに属性およびスクリプト変数を追加できます。

カスタムJSPまたはFaceletsタグ・ライブラリを作成するには、次のようにします。

1. アプリケーション・ナビゲータで、新しいタグ・ライブラリを作成するプロジェクトを選択します。

2. 「ファイル」→「新規」を選択して「新規ギャラリ」を開きます。

3. 「カテゴリ」ツリーで「Web層」を開き、「JSP」または「JSF/Facelets」を選択します。

4. 「項目」リストで「JSP」または「Faceletsタグ・ライブラリ」をダブルクリックし、タグ・ライブラリ作成ウィザードを開きます。

5. 新しいタグ・ライブラリの作成に必要な情報の入力を完了した後、「終了」をクリックします。

カスタム・タグ・ライブラリをコンポーネント・パレットに追加するには、次のようにします。

プロジェクトのコンポーネント・パレットで使用可能な登録済のカスタム・タグ・ライブラリを作成するには、「アプリケーション」→「プロジェクト・プロパティ」→「JSPタグ・ライブラリ」またはFaceletタグ・ライブラリ→「追加」に移動します。「パレットのタグ・ライブラリを表示」を選択します。

新規ギャラリウィザードでFaceletsタグ・ライブラリを作成するとき、「プロジェクト・ベース」オプションを選択した場合にのみ、コンポーネント・パレットに追加されます。作成時に「デプロイ可能」のデフォルト値を選択するか、変更しない場合、次の手順を実行して、ライブラリを登録する必要があります。これによって、ライブラリが使用可能になり、「プロジェクト・プロパティ」の「タグ・ライブラリの追加」オプションを使用してプロジェクトに追加できます。

1. 新しいカスタム・タグ・ライブラリをデプロイします。

2. デプロイ済のライブラリを登録します。ライブラリの登録は、第11章のJSPまたはFaceletsカスタム・タグ・ライブラリを登録する方法に関する項を参照してください。ライブラリを登録すると、「プロジェクト・プロパティ」オプションおよび「タグ・ライブラリの追加」オプションに表示されます。

3. 「プロジェクト・プロパティ」オプションおよび「タグ・ライブラリの追加」オプションを使用して、タグ・ライブラリをプロジェクトに追加します。ライブラリがプロジェクトに追加されると、コンポーネント・パレットに表示されます。

タグ・ライブラリ・ディスクリプタ・プロパティ・エディタを使用してカスタムTLDファイルを変更するには、次のようにします。

1. 「構造」ウィンドウで、変更するTLDファイルを選択します。

2. ファイルを右クリックし、「プロパティ」を選択します。「タグ・ライブラリ・ディスクリプタ」プロパティ・エディタが表示されます。

3. 変更の完了後に、「OK」をクリックします。

XMLソース・エディタでTLDファイルを編集するには、次のようにします。

1. ナビゲータで、ファイルをダブルクリックするか、右クリックして「開く」を選択します。デフォルトで開かれていない場合、このファイルの「ソース」タブをクリックします。入力時に、<(開き山カッコ)を入力して間をおくか、[Ctrl]キーを押しながら[Space]キー(デフォルトのキーマッピングを使用している場合)を押すと、コード・インサイトを起動できます。コード・インサイトにより、文法に基づいて有効な要素のリストが表示されます。

2. 要素を選択した後にスペースを入力してから時間を置くか、[Ctrl]キーを押しながら[Space]キーを押すと、有効な属性がリスト表示され、ここから選択できます。属性値に対する左引用符を入力すると、必要な値の型または使用可能な値のリストが表示されます。

ヒント:

コンポーネント・パレットを使用してTLDファイルを編集するには、「表示」→「コンポーネント・パレット」を選択し、パレットを開き、ドロップダウン・リストから使用可能なページの1つまたは「タグ・ライブラリ」を選択します。次に、そのページから要素を選択します。

JSPまたはFaceletsカスタム・タグ・ライブラリを登録するには、次のようにします。

1. 「ツール」→「ライブラリの管理」を選択し、「ライブラリの管理」ダイアログを開きます。

2. 「JSPタグ・ライブラリ」タブまたは「Faceletsタグ・ライブラリ」タブを選択します。

3. 「新規」をクリックして新しいJSPタグ・ライブラリ・ディスクリプタ・ファイルを「JSPタグ・ライブラリ」ツリーまたは「Faceletsタグ・ライブラリ」ツリーに追加します。

4. カスタム・タグ・ライブラリ・ディスクリプタ(TLD)・ファイル、JARまたはZIPアーカイブ・ファイルの場所、URIおよび新規タグ・ライブラリの接頭辞を入力します。入力した接頭辞は、「OK」をクリックした後に「JSPタグ・ライブラリ」ツリーまたは「Faceletsタグ・ライブラリ」ツリーで更新されます。

5. 「OK」をクリックして、「ライブラリの管理」ダイアログを終了します。

タグにスクリプト変数を追加するには、次のようにします。

1. アプリケーション・ナビゲータで、Tag.javaファイルまたはWebTag.javaファイルを選択します。

2. タグを右クリックし、「スクリプト変数の追加」を選択します。「新規スクリプト変数の追加」ダイアログが開きます。

3. スクリプト変数の追加に必要な情報の入力を完了した後、「OK」をクリックします。属性を定義する新しいvariable.javaファイルが作成され、Javaコード・エディタ内で開かれます。新しいスクリプト・クラスも既存のタグ・ハンドラ・クラスに追加されます。

カスタムJSPタグ・ライブラリまたはFaceletsタグ・ライブラリをJARファイルとしてデプロイするには、次のようにします。

1. アプリケーション・ナビゲータで、デプロイするDeployファイルを選択します。

2. ファイルを右クリックし、「JARファイルにデプロイ」を選択します。デフォルトでは、タグ・ライブラリは、現行プロジェクトのディレクトリにデプロイされます。

12 EJBおよびJPAコンポーネントを使用した開発

この章では、JDeveloperツールを使用して、Enterprise JavaBeans (EJB) 3.0およびJava永続性API (JPA)コンポーネントによるJ2EEエンタープライズ・アプリケーションのビジネス層を構築する方法について説明します。

この章では、次の項目について説明します。

- 第12.1項「EJBおよびJPAコンポーネントを使用した開発について」

- 第12.2項「EJBバージョンおよび機能のサポート」

- 第12.3項「EJB 3.0アプリケーションの構築および開発プロセス」

- 第12.4項「EJBビジネス・サービス・レイヤーの使用方法」

- 第12.5項「Oracle JDeveloperでのJava EEデザイン・パターンの使用」

- 第12.6項「永続層の構築」

- 第12.7項「セッションBeanでのビジネス・プロセスの実装」

- 第12.8項「ダイアグラムでのEJB/JPAコンポーネントのモデル化」

- 第12.9項「EJBモジュールおよびJPA永続性ユニットのデプロイ」

- 第12.10項「EJB/JPAコンポーネントの実行およびテスト」

12.1 EJBおよびJPAコンポーネントを使用した開発について

JDeveloperには、EJBプロジェクト、エンティティ、永続性ユニット、セッションBeanおよびメッセージドリブンBeanを作成するための段階的ウィザードが用意されています。オンライン・データベース定義またはオフライン・データベース定義およびアプリケーション・サーバーのデータソース接続からエンティティを構築できます。また、JPAおよびTopLinkテクノロジとシームレスに統合できるため、完全な永続性パッケージを実現することもできます。

12.2 EJBバージョンおよび機能のサポート

JDeveloperは、EJB 3.0およびバージョン1.0から2.1をサポートしています。現在のJDeveloper文書(ユーザー・ガイドのこの章および埋め込まれているオンライン・ヘルプを含む)は、EJB 3.0開発タスクに焦点を当てています。

すべてのバージョンに関する完全なEJB Java Community Processの仕様および文書は、Oracle Technology Network (http://www.oracle.com/technetwork/java/docs-135218.html)を参照してください。

注意:

EJB 3.0を使用している場合、一部のデプロイ・ファイルのかわりに、注釈を使用できます。デプロイメント・ディスクリプタを含めて、注釈をオーバーライドするか、または注釈でサポートされていないオプションを指定します。

サポートされるEJB 3.0機能

EJB 3.0と以前のバージョンとの主な違いは、次のとおりです。

- EJBの簡素化 - EJB 3.0では、ホーム・インタフェースおよびコンポーネント・インタフェースが不要であり、javax.ejb.EnterpriseBeanインタフェースを実装するためのBeanクラスの要件もありません。EJB Beanクラスは完全なJavaクラス(POJO)となり、インタフェースは単純なビジネス・インタフェースとなります。このBeanクラスでは、ビジネス・インタフェースが実装されます。

- デプロイメント・ディスクリプタに代わる注釈の使用 - デプロイメント・ディスクリプタのかわりにメタデータ注釈が使用されます。注釈により、Beanタイプ、トランザクションまたはセキュリティ設定などの様々な属性、環境のO-Rマッピングとインジェクションまたはリソース参照を指定します。デプロイメント・ディスクリプタ設定により、メタデータ注釈を上書きします。

- 依存性インジェクション - EJB環境の参照と使用およびリソース参照のためのAPIが簡素化され、かわりに依存性インジェクションが使用されています。依存性インジェクションにはメタデータ注釈が使用されます。

- ライフサイクル・メソッドおよびコールバック・リスナー・クラスの拡張 - EJBの前のバージョンとは異なり、不要なコールバック・メソッドをすべて実装する必要はありません。任意のメソッドをコールバック・メソッドとして指定し、ライフサイクル・イベントに関する通知を受信できるようになりました。同じBeanクラスで定義されているコールバック・メソッドのかわりに、コールバック・リスナー・クラスが使用されます。

- インターセプタ - インターセプタは、ビジネス・メソッドのコールを捕捉するメソッドです。インターセプタ・メソッドは、ステートレス・セッションBean、ステートフル・セッションBeanまたはメッセージドリブンBeanで定義されます。Beanクラスでインターセプタ・メソッドを定義するかわりに、インターセプタ・クラスが使用されます。

- EJBのJNDI参照の簡素化 - EJBの参照が簡素化されており、EJBでcreate()メソッドを呼び出すことでクライアントはBeanインスタンスを作成する必要がなくなり、EJBでメソッドを直接呼び出すことができるようになりました。

セッションBean

- Beanの簡素化 - セッションBeanは完全なJavaクラスであり、javax.ejb.SessionBeanインタフェースは実装しません。ホーム・インタフェースはオプションです。セッションBeanには、リモートまたはローカル(あるいはその両方)のインタフェースがあり、これらのインタフェースはEJBObjectまたはEJBLocalObjectを拡張する必要はありません。

- メタデータ注釈 - メタデータ注釈は、BeanまたはインタフェースおよびセッションBeanのランタイム・プロパティを指定するために使用されます。たとえば、セッションBeanは、Beanタイプを指定するために@Statelessまたは@Statefulでマークされます。

- ライフサイクル・メソッドおよびコールバック・リスナー - コールバック・リスナーは、ステートフル・セッションBeanとステートレス・セッションBeanの両方でサポートされます。これらのコールバック・メソッドは、注釈またはデプロイメント・ディスクリプタを使用して指定されます。

- 依存性インジェクション - 依存性インジェクションは、ステートフル・セッションBeanまたはステートレス・セッションBeanから使用されます。開発者は、メタデータ注釈またはデプロイメント・ディスクリプタのいずれかを使用して、リソース、EJBコンテキストまたは環境エントリを挿入できます。

- インターセプタ - インターセプタ・メソッドまたはインターセプタ・クラスは、ステートフルとステートレスの両方のセッションBeanでサポートされます。

メッセージドリブンBean (MDB)

- Beanの簡素化 - メッセージドリブンBeanはjavax.ejb.MessageDrivenインタフェースを実装する必要がなく、javax.jms.MessageListenerインタフェースを実装します。

- メタデータ注釈 - メタデータ注釈は、BeanまたはインタフェースおよびMDBのランタイム・プロパティを指定するために使用されます。たとえば、MDBは、Beanタイプを指定するために@MessageDrivenでマークされます。

- ライフサイクル・メソッドおよびコールバック・リスナー - コールバック・リスナーは、MDBでサポートされます。これらのコールバック・メソッドは、注釈またはデプロイメント・ディスクリプタを使用して指定されます。

- 依存性インジェクション - 依存性インジェクションは、MDBから使用されます。メタデータ注釈またはデプロイメント・ディスクリプタのいずれかを使用して、MDBで使用されるリソース、EJBコンテキストまたは環境エントリを挿入します。

- インターセプタ - インターセプタ・メソッドまたはインターセプタ・クラスは、MDBで使用できます。

エンティティ - Java永続性API (JPA)

- Beanの簡素化(POJO永続性) - EJB 3.0ではエンティティBeanが大幅に簡素化され、POJO永続性モデルが標準化されます。エンティティBeanは具体的なJavaクラスであり、インタフェースは不要です。エンティティBeanクラスはポリモフィズムと継承をサポートします。エンティティには様々なタイプの関連を設定でき、コンテナ管理の関連性は開発者によって手動で管理されます。

- EntityManager API - EJB 3.0では、エンティティの作成、検索、削除および更新に使用されるEntityManager APIが導入されます。EntityManager APIは、Value Objectパターンに似たエンティティBeanインスタンスの連結解除/マージの概念を導入します。Beanインスタンスは連結解除され、クライアントによってローカルで更新された後エンティティ・マネージャに戻され、データベースとマージ/同期化されます。

- メタデータ注釈 - メタデータ注釈は、デプロイメント・ディスクリプタの要件を削除することで、エンティティの開発を大幅に簡素化します。エンティティ注釈は、エンティティBeanになるクラスを指定するために使用されます。注釈は、トランザクション属性、セキュリティ権限、コールバック・リスナーおよび注釈付き問合せを指定するために使用されます。

- 問合せ言語の強化 - EJB 3.0では、Java永続性問合せ言語(JPQL)によってエンティティの問合せ機能が大幅に向上されます。JPQLは、バルク更新と削除、JOIN操作、GROUP BY HAVING、投影、サブ問合せなどの追加操作によりEJB-QLを強化します。EJB QLを使用して動的問合せを作成することもできます。

- ライフサイクル・メソッドおよびコールバック・リスナー - コールバック・リスナーは、エンティティBeanでサポートされます。コールバック・メソッドは、注釈またはデプロイメント・ディスクリプタを使用して指定されます。

12.3 EJB 3.0アプリケーションの構築および開発プロセス

JDeveloperには、エンタープライズ・アプリケーションのEJBビジネス・レイヤーの設定するための完全機能セットが含まれます。

段階的ウィザードを使用してEJB Webアプリケーション用のフレームワークを作成し、エンタープライズ・アプリケーションのモデル・レイヤーを設定することから開始できます。次に、ウィザードを使用して、データベース表に相当するエンティティを作成できます。さらに、ウィザードを使用して、セッションBeanおよびセッション・ファサードを作成し、永続性ユニットを構築できます。Oracle ADFには、データ・コントロールを可能にするコンポーネントが用意されています。準備が整ったら、JDeveloper統合サーバー機能を使用してこれをテストできます。

12.3.1 EJB 3.0アプリケーションの開発プロセス

JDeveloperには、次の項目で説明するように、EJBアプリケーションを開発するためのツールが含まれます。

- 第12.3.1.1項「エンティティの作成」

- 第12.3.1.2項「セッションBeanおよびセッション・ファサードの作成」

- 第12.3.1.3項「EJBのデプロイ」

- 第12.3.1.4項「EJBのリモート・テスト」

- 第12.3.1.5項「Oracle ADFデータ・コントロールへのビジネス・サービスの登録」

12.3.1.1 エンティティの作成

エンティティ・ウィザードを使用して、エンティティを作成、またはオンライン、オフラインまたはアプリケーション・サーバー・データソース接続を使用して表からエンティティを作成します。エンティティBean (表ベース)ウィザードを使用して、データベース表からエンティティをリバース・エンジニアリングします。エンティティ・ウィザードでは、永続性ユニットおよびデータベース接続を選択または追加したり、エミュレートするデータベースを選択できます。また、自分のエンティティ用のデータベース表を選択することもできます。詳細は、第12.6.2項「JPAエンティティの作成方法」を参照してください。

エンティティは、既存の表から作成するか、またはJavaソース・エディタを使用して手動で作成できます。既存の表からエンティティを作成する場合、マッピングは自動的に行われます。エンティティを手動で作成すると、より自由にマッピングできますが、手動でコーディングする必要があります。ウィザードまたはEJBダイアグラムを使用して、エンティティを作成できます。

12.3.1.2 セッションBeanおよびセッション・ファサードの作成

セッションBeanを使用して、セッション・ファサード・デザイン・パターンを実装できます。セッション・ファサードはデータを集約して表示し、ビジネス・ロジックに場所を提供し、コンテナを介してトランザクション・コンテキストを設定します。詳細は、第12.7項「セッションBeanでのビジネス・プロセスの実装」および第12.7.1項「セッション・ファサードの使用」を参照してください。

ウィザードを使用してセッションBeanを作成する場合、同じプロジェクト内のすべてのエンティティのセッション・ファサード・メソッド生成を選択できます。生成するコア・トランザクション・メソッド、get()アクセッサとset()アクセッサ、およびエンティティ上のファインダ・メソッドを選択できます。新しいエンティティ、またはエンティティ上の新しいメソッドを作成する場合、既存のセッション・ファサードを更新するには、ナビゲータでそのセッション・ファサードを右クリックし、「セッション・ファサードの編集」を選択します。

12.3.1.3 EJBのデプロイ

JDeveloperには、デプロイしたEJBのコンテナとしてOracle WebLogic Serverが用意されています。デフォルトでは、JDeveloperサーバー固有のデプロイメント・プロファイルが生成されます。WebLogic固有のデプロイメント・プロファイルを作成することもできます。詳細は、第12.9項「EJBモジュールおよびJPA永続性ユニットのデプロイ」を参照してください。

12.3.1.4 EJBのリモート・テスト

JDeveloperでは、リモート・サーバーで使用するサンプル・クライアントも作成できます。サンプル・クライアントの生成方法は、リモート接続の詳細を指定する以外は、ローカル・クライアントの場合と同様です。詳細は、第12.10.2項「リモート・サーバーを使用したEJB/JPAコンポーネントのテスト方法」を参照してください。

12.3.1.5 Oracle ADFデータ・コントロールへのビジネス・サービスの登録

ADFには、エンティティのデータ・コントロールを可能にするコンポーネントが用意されています。エンティティのデータ・コントロールを手動で追加すると、Java EEアプリケーションによって選択的コンポーネントが統合されます。詳細は、『Oracle Fusion Middleware Oracle Application Development Framework Java EE開発者ガイド』のJava EE WebアプリケーションでのADFモデル・データ・バインディングの使用に関する項を参照してください。

12.4 EJBビジネス・サービス・レイヤーの使用方法

WebベースのEJB 3.0アプリケーションのためのモデル・ビジネス・サービス・レイヤーを作成します。

Webベースのアプリケーションを作成するには、次のようにします。

- 「ファイル」→「新規」→一般アプリケーションを選択します。
使用可能なアプリケーションのリストが表示されます。EJBプロジェクトの場合、カスタム・アプリケーションまたはJava EEアプリケーションを構築することを選択できます。Java EEアプリケーションにより、EJB/JPAのデータバインドされたWebアプリケーションが作成されます。

JPAエンティティを作成するには、次のようにします。

1. アプリケーション・ナビゲータで、「モデル」を選択します。

2. 「ファイル」→「新規」→「ビジネス層」→「EJB」→「エンティティ」または「表からのエンティティ」を選択します。

3. 「永続性ユニット」ページにアクセスしたら、「次へ」をクリックしてデフォルトの永続性ユニットpersistence.xmlを自動的に作成するか、「新規」をクリックして既存のMETA-INF/persistence.xmlファイル内に新規永続性グループを作成します。

4. ウィザードの残りのステップに従ってJPAエンティティを作成します。

セッション・ファサードを実装するには、次のようにします。

1. アプリケーション・ナビゲータで、「モデル」を選択します。

2. 「ファイル」→「新規」→「ビジネス層」→「EJB」→「セッションBean」を選択します。

3. ウィザードのステップに従います。
「EJBの名前とオプション」ページにアクセスしたら、「セッション・ファサード・メソッドの生成」を選択します。これにより、セッション・ファサード・メソッドがセッションBeanに自動的に追加されます。セッションBeanを右クリックして、「セッション・ファサードの編集」を選択することで、プロジェクト内のすべてのエンティティのセッション・ファサード・メソッドを作成および編集できます。JDeveloperでは、プロジェクト内の新しいエンティティおよびエンティティ上の新しいメソッドが自動的に認識されます。

データ・コントロールを使用してビジネス・サービスのモデル・プロジェクトを登録するには、次のようにします。

- ナビゲータでセッションBeanを右クリックし、「データ・コントロールの作成」を選択します。
これにより、セッションBeanを処理するようにデータ・コントロールを初期化するための情報が含まれるDataControls.dcxと呼ばれるファイルが作成されます。

アプリケーションを実行およびテストするには、次のようにします。

- WebベースのEJBアプリケーション用のモデル・レイヤーの基本フレームワークを作成しました。このフレームワークを使用して、アプリケーションを構築する過程でアプリケーションをテストします。詳細は、第12.10項「EJB/JPAコンポーネントの実行およびテスト」を参照してください。

アプリケーションをデプロイするには、次のようにします。

統合サーバーはJDeveloper内で動作します。このサーバーを使用すると、EJBの実行およびテストが可能であり、何の変更も加えずにそのEJBをデプロイできます。このサーバーを使用する場合、デプロイメント・プロファイルは不要で、初期化の必要もありません。デプロイメント・ディスクリプタ・ウィザードを使用してデプロイメント・ディスクリプタejb-jar.xmlを作成してから、アプリケーションを使用したデプロイメント用としてEJBモジュールをパッケージ化します。

12.5 Oracle JDeveloperでのJava EEデザイン・パターンの使用

Java EEデザイン・パターンは、定型的な設計に関する問題を解決するためのベスト・プラクティスをまとめたものです。各パターンは様々な問題に応用できる既成のソリューションであり、成功を収めたJava EE開発者の経験を活用しています。

JDeveloperを使用すると、EJBアプリケーションに次のJava EEデザイン・パターンを実装できます。

- MVC - MVCパターンでは、アプリケーションはモデル、ビューおよびコントローラという3つの部分に分割されます。モデルはアプリケーションのビジネス・サービスを表し、ビューはアプリケーションのうちクライアントがアクセスする部分です。コントローラはアプリケーションのフローとアクションを制御し、モデルとビューの間にシームレスな相互作用をもたらします。プロジェクトの開始時にFusion Webアプリケーション(ADF)テンプレートまたはJava EE Webアプリケーション・テンプレートを選択すると、MVCパターンが自動的に実装されます。

- セッション・ファサード - セッション・ファサード・パターンには、下位レベルEJB (通常はJPAエンティティ)が含まれており、EJB間の複雑な相互作用が集中化されます。また、アプリケーションのビジネス・サービスに対して単一のインタフェースを提供します。詳細は、第12.7項「セッションBeanでのビジネス・プロセスの実装」を参照してください。

- ビジネス委任 - ビジネス委任パターンにより、クライアントとビジネス・サービスが切り離され、ビジネス・サービスの基礎となる実装詳細が隠されます。ビジネス委任パターンは、JDeveloperの「データ・コントロール・パレット」に表示されるデータ・コントロールにより実装されます。詳細は、『Oracle Fusion Middleware Oracle Application Development Framework Java EE開発者ガイド』のJava EE WebアプリケーションでのADFモデル・データ・バインディングの使用に関する項を参照してください。

12.6 永続層の構築

永続層は、データベース内の表を表す永続性データ・オブジェクトがすべて含まれるEJBアプリケーションの一部です。EJB 3.0で導入されたエンティティ・モデルはJava永続性APIで定義されているため、これらのビジネス・コンポーネントはJPAエンティティと呼ばれます。

12.6.1 JPAエンティティおよびJava永続性APIについて

JPAエンティティは、Oracle TopLinkおよびHibernateとシームレスに動作するよう設計された軽量永続性モデルを採用しています。

JPAエンティティの主な拡張機能は、次のとおりです。

- POJOであるJPAエンティティ

- O-Rマッピングのメタデータ注釈

- 継承およびポリモフィズムのサポート

- CRUD操作のためのEntityManager APIの簡素化

- 問合せの拡張機能

12.6.1.1 POJOであるJPAエンティティ

JPAエンティティはPOJO (Plain Old Java Objects)であり、コンポーネント・インタフェースは不要です。JPAエンティティは、継承およびポリモフィズムもサポートしています。

例12-1は、単純なJPAエンティティのソース・コードを示しています。

例12-1 単純なJPAエンティティのソース・コード

@Entity
@Table(name = "EMP")
public class Employee implements java.io.Serializable
{
private int empNo;
private String eName;
private double sal;
@Id
@Column(name="EMPNO", primaryKey=true)
public int getEmpNo()
{
return empNo;
}
public void setEmpNo(int empNo)
{
this.empNo = empNo;
}
public double getSal()
{
return sal;
}
...
}

Beanクラスは、CMP 2.xエンティティBeanの場合と同様に、抽象クラスではなく具体的なクラスであることに注意してください。

12.6.1.2 O-Rマッピングのメタデータ注釈

O-Rマッピング注釈を使用すると、O-Rマッピング・メタデータを使用してエンティティを記述できます。その後、このメタデータは、エンティティの永続性および取得を定義するために使用されます。ベンダー固有のディスクリプタでO-R (オブジェクト・リレーショナル)マッピングを定義する必要はなくなります。

前述の例では、@Entity、@Tableおよび@Column注釈を使用して、これがエンティティであることをクラス・レベルで指定するとともに、エンティティの基礎となるデータベース表と列名を指定しています。例12-2に示すように、マッピング注釈を使用して、エンティティ間の関連を定義することもできます。

例12-2 マッピング注釈

@ManyToOne(cascade=PERSIST)
@JoinColumn(name="MANAGER_ID", referencedColumnName="EMP_ID")
public Employee getManager()
{
return manager;
}

12.6.1.3 継承およびポリモフィズムのサポート

継承は、様々な使用例で非常に役に立ちます。一般的に使用され、JPAエンティティ用のOracle Application Serverでサポートされる2つのタイプの継承は、次のとおりです。

- クラス階層単位の単一表

- 結合されたサブクラス方針

継承は、注釈を使用して表すことができます。結合されたサブクラス方針を使用するコード例を例12-3に示します。

例12-3 結合されたサブクラス方針

@Entity
@Table(name="EJB_PROJECT")
@Inheritance(strategy=JOINED, discriminatorValue="P")
@DiscriminatorColumn(name="PROJ_TYPE")
public class Project implements Serializable
{
...
}
@Entity
@Table(name="EJB_LPROJECT")
@Inheritance(discriminatorValue="L")
public class LargeProject extends Project
{
...
}
@Entity
@Table(name="EJB_PROJECT")
@Inheritance(discriminatorValue="S")
public class SmallProject extends Project
{
...
}

12.6.1.4 CRUD操作のためのEntityManager APIの簡素化

javax.persistence.EntityManager APIは、エンティティ・インスタンスに対するCRUD (Create、Read、UpdateおよびDelete)操作に使用されます。インスタンスを参照して操作するために、コードを記述する必要はなくなります。例12-4のように、セッションBeanにEntityManagerのインスタンスを挿入し、EntityManagerインスタンスでpersist()またはfind()メソッドを使用して、エンティティBeanオブジェクトを作成または問い合せることができます。

例12-4 セッションBean内のEntityManager

@PersistenceContext
private EntityManager em;
private Employee emp;
public Employee findEmployeeByEmpNo(int empNo)
{
return ((Employee) em.find("Employee",empNo));
}
public void addEmployee(int empNo, String eName, double sal)
{
if (emp == null) emp = new Employee();
emp.setEmpNo(empNo);
...
em.persist(emp);
}
}

12.6.1.5 問合せの拡張機能

問合せはメタデータ内で定義します。ここでは、注釈を使用して、またはデプロイメント・ディスクリプタ内で問合せを指定できます。JPAエンティティは、JPQL (Java永続性問合せ言語)を介してバルク更新および削除操作をサポートします。詳細は、第12.6.7項「EJB/JPA用のJDK 5注釈」を参照してください。

12.6.2 JPAエンティティの作成方法

JDeveloperには、JPAエンティティを作成するための簡単なウィザードが2つ用意されています。オンライン・データベースまたはオフライン・データベースからのエンティティの作成、永続性ユニットの追加、継承方針の定義、および使用可能なデータベース・フィールドからの選択が可能です。表からのエンティティ・ウィザードを使用すると、オンライン・データベースまたはエミュレートされたオフライン・データベースや、アプリケーション・サーバー・データソースからエンティティを作成できます。

エンティティを作成、または表からエンティティを作成するには、次のようにします。

1. 「ファイル」メニュー→「新規」→「ビジネス層」→「EJB」→「エンティティ」または「表からのエンティティ」を選択します。

2. ウィザードのステップに従います。

既存のモジュールにEJBを作成するには、次のようにします。

1. ナビゲータでEJBモジュールを右クリックし、「新規」→「EJB」→「エンティティ」または「表からのエンティティ」を選択します。
または、「ファイル」メニュー→「新規」→「ビジネス層」→「EJB」→「エンティティ」または「表からのエンティティ」を選択します。

2. ウィザードのステップに従います。

新規のEJBモジュールにEJBを作成するには、次のようにします。

1. 「ファイル」→「新規」→「一般」→「プロジェクト」を選択します。

2. 作成するプロジェクトのタイプを選択し、「OK」をクリックします。

3. ナビゲータで、新規プロジェクトを右クリックして「新規」を選択します。
または、モジュールを選択し、「ファイル」メニュー→「新規」→「ビジネス層」→「EJB」→「エンティティ」または「表からのエンティティ」を選択します。

12.6.3 EJB/JPA用のSDOについて

JDeveloperは、SDO (サービス・データ・オブジェクト)データ・アプリケーション開発フレームワークをサポートします。

SDO 2.0フレームワークおよびAPIを使用すると、物理的にどのようにアクセスされているかに関係なくビジネス・データを簡単に修正できます。SDOは、バックエンド・データソースをカプセル化し、静的または動的なプログラミング・スタイルの選択肢を提供し、接続されたアクセスと切断されたアクセスの両方をサポートします。SDOは、XMLパーサー操作を処理し、データ解析ロジックを自動的にアプリケーションに統合します。詳細は、『Oracle Fusion Middleware Oracle Application Development Framework Fusion開発者ガイド』のサービス対応のアプリケーション・モジュールの統合に関する項を参照してください。

JDeveloperによってサポートされるSDOアーキテクチャには、次の機能があります。

- J2EEデータ・プログラミング・モデルの簡素化

- サービス指向アーキテクチャ(SOA)内のデータの抽出

- クライアント間のデータの受渡しに関する標準的方法の作成によるデータ・アプリケーション開発の統合

- XMLのサポートおよび統合

- J2EEパターンおよびベスト・プラクティスの導入

SDOは、切断されたデータ・グラフの概念に基づくデータ・アプリケーション用の統合フレームワークです。データ・グラフは、ツリー構造またはグラフ構造のデータ・オブジェクトのコレクションです。データ・オブジェクトを操作する汎用コードまたはフレームワーク・コードの開発を実現するには、データ・オブジェクトのデータ・モデルを公開するデータ・オブジェクト・メタデータに対するイントロスペクションが可能であることが重要です。Javaリフレクションの代替策として、SDOは、EJBセッションBeanに詳述されているエンティティまたはデータ・モデル情報に基づいて、作成するXMLスキーマ定義(XSD)ファイルに格納されているメタデータにアクセスするためのAPIを提供します。

12.6.4 SOAプラットフォームへのデプロイメント用のEJB/POJOベースのADF-BCサービスの使用

JDeveloperのSDO機能は、EJBサービスまたはADF-BCサービスとして使用できます。ADF-BCサービスの使用を選択する場合、weblogic-application.xmlファイルにリスナー参照を追加する必要があります。詳細は、第12.6.5項「JPAエンティティ用のSDOサービス・インタフェースの作成方法」を参照してください。

SDOの詳細および仕様は、OSOA (Open Service Oriented Architecture) (http://www.oasis-opencsa.org/)を参照してください。

12.6.5 JPAエンティティ用のSDOサービス・インタフェースの作成方法

EJBセッションBeanまたはPOJO (Plain Old Java Objects)を介してJPAエンティティ・データにアクセスするためのサービス・インタフェースAPIを簡単に作成できます。このサービス・クラスは、JDeveloper J2EEアプリケーション内のJPAエンティティを作成、取得、更新および削除するための操作を公開します。

SDOサービス・インタフェースを作成するには、次のようにします。

1. 1つ以上のJPAエンティティに対するCRUD操作を公開するEJBセッションBeanまたは通常のJavaクラス(POJO)から開始します。
ウィザードを使用してセッションBeanを作成できます。詳細は、第12.7.2項「セッションBeanの作成方法」を参照してください。

2. 「構造」ウィンドウで、EJBセッションBeanまたはPOJOを右クリックして「サービス・インタフェースの作成」を選択します。

3. サービスAPIで使用可能にするメソッドを選択します。
デフォルトでは、セッションBeanインタフェース内のすべてのメソッドが選択されます。チェック・ボックスをクリックし、メソッドを選択するか選択を解除します。

4. このリリースでは、サービス・インタフェースを作成すると、元のセッションBeanファイルおよびリモート(またはローカル)インタフェースが変更されます。元のメソッドと一致する新規メソッドが追加されますが、これらは、JPAエンティティではなく、新しく定義されたSDOデータ・オブジェクトを参照します。これらのSDOデータ・オブジェクトは、JPAエンティティと一致し、XSDファイル(これもプロジェクトに追加されます)で定義され、これらの名前にはDeptSDOやEmployeeSDOなどのようにSDOが付けられます。「バックアップ・ファイル」を選択し、元のセッションBeanファイルのバックアップを作成します。

5. 「OK」をクリックします。

12.6.5.1 SOAプラットフォームへのデプロイメント用のEJB/POJOベースのADF-BCサービスの構成方法

SDO外部バインディングを使用してファブリック・コンポジットからEJB/POJO SDO ADF-BCサービスを使用するには、ServiceRegistryロジックを呼び出すためのWeblogicアプリケーション・デプロイメント・リスナーを設定する必要があります。これを設定するには、weblogic-application.xmlファイルにリスナー参照を追加します。

リスナー参照を追加するには、次のようにします。

デフォルトでは<workspace-directory>/src/META-INFにあるweblogic-application.xmlに例12-5のコードを追加します。

例12-5 weblogic-application.xmlに追加するコード

<listener>
<listener-class> oracle.jbo.client.svc.ADFApplicationLifecycleListener
</listener-class>
</listener>

このリスナーが追加されると、SDOサービス・アプリケーション名_JBOServiceRegistry_がcomposite.xml内のファブリック・サービス・レジストリに自動的に登録されます。

12.6.5.2 SDOアーキテクチャをサポートするために作成されるファイル・タイプ

SDOサービス・インタフェースを作成すると、サービス・インタフェースをサポートするために必要なファイルが自動的に作成されます。これらのファイルには、次のものがあります。

- SessionEJBBeanWS.wsdl - このファイルには、SOAアプリケーションへのエントリ・ポイントまたはSOAアプリケーションからの参照ポイントを提供するサービスの機能が記述されています。WSDLファイルは標準規約言語を提供するもので、サービスの機能を理解する場合に必須です。

- SessionEJBBeanWS.xsd - これは、SDOデータ型の観点からサービス・インタフェース・メソッドを定義するXMLスキーマ・ファイルです。セッションBeanインタフェースに含まれていたすべてのエンティティがこのスキーマ・ファイル内で対応するDataObject要素を持ちます。実行時には、XSDHelper.INSTANCE.define()メソッドを呼び出すことにより、これらのDataObjectにSDOランタイムが登録されます。SDOタイプごとに静的タイプ固有のDataObjectが定義されます。

12.6.6 JPAエンティティからのデータベース表の生成方法

JDeveloper統合サーバーをデプロイすると、対応する既存の表がマップされていないすべてのエンティティにデータベース表が自動的に作成されます。マップされていないJPAエンティティごとに、1つのデータベース表が生成されます。

注意:

主キー参照整合性制約が生成されますが、その他の制約は生成されない場合があります。

JPAエンティティからデータベース表を生成するには、次のようにします。

1. モデリング・ツールまたはエンティティの作成ウィザードを使用して、JPAエンティティを作成します。詳細は、第12.6.2項「JPAエンティティの作成方法」を参照してください。

2. 必要に応じてエンティティを変更し、フィールドおよび制約を追加します。

3. 表に名前を付けます。

- EJB 3.0 - Beanクラスに注釈を付けて、表名を指定してください。詳細は、Enterprise JavaBean仕様(http://www.oracle.com/technetwork/java/docs-135218.html)を参照してください。

4. 永続性ユニットをデプロイします。詳細は、第12.9項「EJBモジュールおよびJPA永続性ユニットのデプロイ」を参照してください。

12.6.7 EJB/JPA用のJDK 5注釈

注釈を使用すると、アプリケーション・コンポーネントに必要なデプロイメント・ディスクリプタの数を減らすことによってデプロイメント・タスクを簡素化できます。また、注釈を使用して、インタフェースなどのアーチファクトを生成することもできます。

注釈は、Javaソース・ファイルに追加されるメタデータ修飾子です。注釈は、コンパイル時にJavaコンパイラによってクラスにコンパイルされ、クラス、フィールド、メソッド、パラメータ、ローカル変数、コンストラクタ、列挙およびパッケージで指定できます。注釈を使用すると、コードの生成、コードの文書化、または実行時の高度なビジネスレベル・セキュリティや特別なビジネス・ロジックなどのサービスの提供のための属性を指定できます。

また、EJB/JPAクラスで使用可能な注釈のタイプはすべてXMLデプロイメント・ディスクリプタ・ファイルに追加することもできます。実行時には、XMLにより、クラス・レベルで追加された任意の注釈が上書きされます。

次のステートレス・セッションBeanのように、注釈には@記号がマークされます。

@Stateless public class MySessionBean

EJB 3.0の注釈の詳細は、http://download.oracle.com/javase/1.5.0/docs/guide/language/annotations.htmlを参照してください。

注意:

注釈はEJB 3.0の新機能であり、EJBの前のバージョンでは使用できません。

デザインタイム時には、プロパティ・インスペクタを介して使用可能な注釈のリストが表示されます。注釈機能を使用すると、任意の適切なJavaクラスをEJBまたはJPAコンポーネントに変更できます。詳細は、第12.6.8項「Javaクラスの注釈方法」を参照してください。

12.6.7.1 EJB 3.0

注釈を使用してBeanタイプを示すことができます。Beanタイプの注釈を標準クラスに追加すると、EJBになります。

次のタイプの注釈を使用できます。

- ステートレス・セッションBeanです。「True」または「False」を選択し、ステートレス・セッションBeanとしてクラスに注釈を付けます。

- ステートフル・セッションBeanです。「True」または「False」を選択し、ステートフル・セッションBeanとしてクラスに注釈を付けます。

- メッセージドリブンBeanです。「True」または「False」を選択し、メッセージドリブンBeanとしてクラスに注釈を付けます。

12.6.7.2 JPA 1.0

注釈は、新規Java永続性APIをエンティティBeanの代替手段としてサポートします。

次のタイプの注釈を使用できます。

- JPAエンティティです。「True」または「False」を選択し、JPAエンティティとしてクラスに注釈を付けます。

- JPAマップされたスーパークラスです。「True」または「False」を選択し、JPAマップされたスーパークラスとしてクラスに注釈を付けます。

- JPA埋込み可能です。「True」または「False」を選択し、JPA埋込み可能としてクラスに注釈を付けます。

標準JavaクラスをEJB/JPAコンポーネントに変換した後、またはEJB/JPAウィザードの1つを使用してコンポーネントを作成した場合、プロパティ・インスペクタには、異なるコンテキスト・オプション・セットが表示され、これを使用して、コンポーネント・クラス内の様々なメンバーの注釈を追加または編集できます。

12.6.8 Javaクラスの注釈方法

設計時には、クラスに挿入可能な注釈のリストが表示されます。これらのオプションは、使用しているクラスのタイプや選択したメンバーの内容によって異なります。

任意の標準Javaクラスに注釈を付けてEJB/JPAコンポーネントにすることができます。クラスが注釈を使用してEJB/JPAとして定義されたら、JDeveloperプロパティ・インスペクタ内で選択可能な様々なメンバー・レベルの注釈を使用してコンポーネントを簡単にカスタマイズできます。

注意:

注釈はEJB 3.0でのみ使用可能であり、EJBの前のバージョンでは使用できません。

JavaクラスにEJB/JPAコンポーネントとして注釈を付けるには、次のようにします。

1. アプリケーション・ナビゲータで、変換するクラスを選択します。

2. 「構造」ウィンドウで、クラス名をダブルクリックします。
クラスがJavaソース・エディタで開いている場合、クラス定義行にカーソルを置きます。

3. プロパティ・インスペクタを開き、「EJB/JPA」タブを開いて、作成するコンポーネントのタイプを選択します。「True」を選択します。

JavaクラスがEJB/JPAコンポーネントとして注釈を付けられると、プロパティ・インスペクタから「EJB/JPA」タブが表示されなくなり、選択したコンポーネント・タイプに固有の新規タブが表示されます。コンポーネントを標準Javaクラスに戻すには、コードから注釈を削除し、プロパティ・インスペクタに表示されているEJB/JPAコンポーネント・タイプをリセットします。

注意:

ウィザードを介して作成されたEJBまたはJPAコンポーネントには、すでにクラス・タイプの注釈が含まれます。詳細は、第12.3項「EJB 3.0アプリケーションの構築および開発プロセス」を参照してください。

クラス・レベルの注釈を使用してJavaクラスがEJB/JPAコンポーネントに変換されたら、プロパティ・インスペクタを使用して、このコンポーネント内のメンバー・フィールドまたはメソッドに対する注釈を追加または編集します。

EJB/JPAコンポーネント内の注釈を追加または編集するには、次のようにします。

1. アプリケーション・ナビゲータで、注釈を付けるクラスを選択します。

2. 「構造」ウィンドウで、注釈を付けるメンバーをダブルクリックします。
クラスがJavaソース・エディタで開いている場合、かわりに注釈を挿入する場所にカーソルを置きます。

3. プロパティ・インスペクタで、EJB/JPAタイプに対応するタブを選択します。

4. 選択した特定のメンバーで使用可能な任意の注釈から選択します。

12.6.9 エンティティ間の関連の表現

データベース表からエンティティを作成すると、外部キーはエンティティ間の関連として解析されます。これらの関連をさらに定義したり、新規関連を作成したり、JDeveloperのモデリング・ツールを使用して既存の関連を既存の表にマップできます。モデリング・ツールを使用すると、関連をエンティティ間の線で表したり、線の構成を変更することによって関連を変更できます。詳細は、第23.3項「ダイアグラムでのEJB/JPAコンポーネントのモデル化」を参照してください。

12.6.10 Java永続性問合せ言語

Java永続性問合せ言語(JPQL)では、デプロイメント・ディスクリプタに抽象スキーマ型および関連を導入することで、エンティティBeanと依存クラスの間の関連を定義する標準的な方法が提供されます。JPQLでは、抽象スキーマ名および関連を使用して、ナビゲーションに対する問合せも定義されます。

JPQLの問合せ文字列は、2つの必須句(SELECTおよびFROM)およびオプションのWHERE句から構成されます。次に例を示します。

select d from Departments d where d.department_name = ?1

JPQLを使用するメソッドには、finderメソッドとselectメソッドの2種類があります。

- ファインダ・メソッドはクライアントに公開され、1つのインスタンス、またはエンティティBeanインスタンスのコレクションのいずれかを返します。

- selectメソッドはクライアントに公開されず、cmp-field型のインスタンス、またはcmr-fieldによって表されるリモート・インタフェースを返すために内部で使用されます。

12.6.11 JPAオブジェクト・リレーショナル・マッピング

Java永続性APIを使用すると、Java EE 5アプリケーション・サーバーの内部とEJBコンテナの外部の両方で動作する標準的で移植可能な方法でJavaオブジェクトをリレーショナル・データベース表に宣言的にマップできます。このアプローチの場合、Java永続性が大幅に簡素化され、オブジェクト・リレーショナル・マッピング・アプローチが提供されます。

Oracle TopLinkでは、Javaソース・コード内のメタデータ注釈を使用してエンティティのJPA動作を構成できます。実行時に、コードは対応するJavaクラス・ファイルにコンパイルされます。

JavaクラスをJPAエンティティとして指定するには、例12-6に示すように、@Entity注釈を使用します。

例12-6 エンティティ注釈

@Entity
public class Employee implements Serializable {
...
}

注釈を選択して追加し、デプロイメント・ディスクリプタに指定されているデフォルトを上書きできます。

JPA注釈の詳細は、TopLink JPA注釈参照(http://www.oracle.com/technetwork/middleware/ias/toplink-jpa-annotations-096251.html)を参照してください。

12.6.12 Javaサービス・ファサードの使用方法

Javaサービス・ファサードは、アプリケーション・サーバーなしで実行可能な軽量テスト環境を実装します。

EJB 3.0の場合、Javaサービス・ファサードは、コンテナなしで同じ永続性ユニットのエンティティに対してファサード・メソッドを生成できるため、EJBセッション・ファサードと類似しています。

ワークフローをJavaサービス・ファサードと分離すると、参加者JPAオブジェクトにクライアントが直接依存しなくなるため、設計の柔軟性が高まります。参加者を変更するにはJavaサービス・ファサードの変更が必要になる可能性がありますが、ワークフローをファサード内で集中管理すると、このような変更をより管理しやすくなります。すべてのクライアントを変更しなくてもJavaサービス・ファサードを変更するだけですみます。また、ワークフローの職責がセッション・ファサードに委任されたため、クライアント・コードもより単純になりました。クライアントは、ビジネス・オブジェクト間の複雑なワークフロー相互作用を管理する必要がなくなっただけでなく、ビジネス・オブジェクト間の相互依存性も認識する必要はありません。

main()メソッドを使用してサンプルJavaクライアントを生成してJavaサービス・クラスを実行可能にすることを選択できます。

JDeveloperのJavaサービス・ファサード・ウィザードは、エンティティに対するサービス・ファサードとしてJavaクラスを作成する際に使用します。新規Javaサービス・ファサードを作成するには、「ファイル」メニュー→「新規」→「ビジネス層」→「EJB」→Javaサービス・ファサードを選択します。

また、サービス・ファサードからデータ・コントロールを作成することもできます。アプリケーション・ナビゲータで、サービス・ファサードの名前を右クリックして「データ・コントロールの作成」を選択します。「Beanデータ・コントロール・インタフェース・チューザ」ダイアログから、oracle.binding.*データ・コントロール・インタフェースの実装を選択できます。このインタフェースには、TransactionalDataControl、UpdatableDataControlおよびManagedDataControlがあります。詳細は、ダイアログで「ヘルプ」ボタンを選択してください。

12.7 セッションBeanでのビジネス・プロセスの実装

セッションBeanは、アプリケーション・サーバー内の単一クライアントを表します。サーバー上でデプロイされたアプリケーションにアクセスするために、クライアントはセッションBeanメソッドを呼び出します。セッションBeanは、サーバー内でビジネス・タスクを実行することによってクライアントに複雑な処理が及ばないようにしながら、クライアントのために処理を実行します。セッションBeanは、インタラクティブ・セッションと類似しています。インタラクティブ・セッションに関わることができるのは1人のユーザーのみであるのと同じように、セッションBeanは共有されず、1つのクライアントのみが関わります。インタラクティブ・セッションの場合と同様、セッションBeanはデータをデータベースに保存しないため、永続的ではありません。クライアントが終了すると、セッションBeanは終了したように見え、クライアントとは関係なくなります。

JDeveloperのセッションBeanウィザードを使用してセッションBeanおよびセッションBeanファサードを作成します。詳細は、第12.7.2項「セッションBeanの作成方法」を参照してください。

セッションBeanには2種類あります。

- ステートフル。ステートフル・セッションBeanは、クライアントのかわりに対話状態を維持します。対話状態は、セッションBeanフィールド値とセッションBeanフィールドから到達可能なすべてのオブジェクトとして定義されます。ステートフル・セッションBeanは、永続的なデータ・ストアのデータを直接表すものではなく、クライアントのかわりにデータにアクセスしてデータを更新します。通常、ステートフル・セッションBeanの存続期間はクライアントの存続期間と同じです。

- ステートレス。ステートレス・セッションBeanは厳密には、サーバー側の動作を提供することを目的として設計されています。これは、ユーザー固有のデータを含まないため、無名です。EJBアーキテクチャは、単一のステートレス・セッションBeanが多くのクライアントのニーズに応じて処理を実行する手段を提供します。クライアントによって呼び出されたメソッドに応じた処理にかかわらない場合、ステートレス・セッションBeanインスタンスはすべて同等です。ステートレスという用語は、特定のクライアントに関するステート情報を持たないことを意味します。ただし、ステートレス・セッションBeanは、オープン・データベース接続など、クライアント固有ではないステートを持つ場合があります。

12.7.1 セッション・ファサードの使用

JDeveloperでは、セッションBeanウィザードを介してセッションBeanを作成する場合は常に、セッション・ファサード・メソッドの自動生成を選択できます。これにより、ビジネス・ワークフローのセッション・ファサードとして機能するセッションBeanが作成されます。詳細は、第12.7.2項「セッションBeanの作成方法」を参照してください。

セッション・ファサードはセッションBeanとして実装されます。セッションBeanファサードは、アプリケーションのビジネス・サービスに対して単一のインタフェースを提供することにより、ワークフローに参加するビジネス・オブジェクト間の複雑な相互作用をカプセル化します。セッション・ファサードは、多数のBusinessObjects間の関連を管理し、クライアントに対して高度な抽象化を提供します。

セッション・ファサードにはステートフルとステートレスのいずれかがあります。これらは、ウィザードでセッション・ファサードを作成する際に定義します。

セッション・ファサードの詳細は、Oracle Technology Network (http://www.oracle.com/technetwork/java/sessionfacade-141285.html)を参照してください。

ウィザードを使用して、セッションBeanの作成時にセッション・ファサードを自動的に実装して、実装するメソッドを選択します。EJBエンティティを作成すると、同じプロジェクト内で作成するセッションBeanは、公開するエンティティおよびメソッドを認識します。

12.7.2 セッションBeanの作成方法

セッションBeanウィザードを使用して、新規のセッションBeanまたはセッション・ファサードBeanを作成します。また、モデリング・ツールを使用してセッションBeanを作成することもできます。

ウィザードを使用してセッションBeanまたはセッション・ファサードを作成するには、次のようにします。

1. ナビゲータで、「ファイル」→「新規」を選択します。

2. 「新規ギャラリ」で、「EJB」フォルダの下にある「ビジネス層」カテゴリから「セッションBean」を選択します。

3. Beanをセッション・ファサードにするには、「EJBの名前とオプション」ページで「セッション・ファサード・メソッドの生成」を選択します。

注意:

セッション・ファサードBeanを生成するには、永続性ユニットがすでに作成されている必要があります。永続性ユニットを生成するには同じステップに従いますが、「セッションBean」ではなく「JPA永続性ユニット」を選択します。

4. ウィザードの残りのステップを完了します。

セッションBeanファサード・メソッドを追加または削除するには、次のようにします。

1. アプリケーション・ナビゲータで、編集するセッションBeanを選択します。

2. 右クリックして「セッション・ファサードの編集」を選択します。

3. 「セッション・ファサード・オプションの指定」ダイアログで、メソッドを選択してメソッドがファサードを介して公開されるようにするか、メソッドの選択を解除してメソッドが公開されないようにします。

セッション・ファサードの詳細は、コアJ2EEパターン・カタログ(http://www.oracle.com/technetwork/java/sessionfacade-141285.html)を参照してください。

セッションBeanとエンティティ間のローカル参照を作成して、セッション・ファサードを手動で作成することもできます。

ローカル参照を作成するには、次のようにします。

1. まだ作成していない場合は、セッションBeanを作成します。

2. Bean間にローカル参照を作成します。

- Beanクラスの場合 - EJB 3.0を使用している場合は、Beanクラスに注釈を付けて参照を作成します。

- EJBモジュール・エディタを使用する場合 - EJB 2.1 (および以前のバージョン)を使用している場合は、アプリケーション・ナビゲータで「EJB」ノードを選択し、構造ペインで「メソッド」をダブルクリックし、「EJBモジュール・エディタ」を開きます。「EJBローカル参照」を選択します。

EJBダイアグラムでセッションBeanを作成するには、次のようにします。

1. EJBダイアグラムを開きます。
EJBダイアグラムがない場合は、「ファイル」→「新規」を選択し、「ビジネス層」カテゴリから「EJBダイアグラム」を選択します。

2. コンポーネント・パレットで「セッションBean」をクリックします。
コンポーネント・パレットが表示されていない場合、「表示」メニューから「コンポーネント・パレット」を選択します。

3. EJBダイアグラムの中をクリックします(ドラッグ・アンド・ドロップしないでください)。

12.7.3 モジュールでのセッションBeanまたはメッセージドリブンBeanの作成方法

新規モジュールと既存のモジュールの両方でEJBを作成できます。

既存のモジュールにEJBを作成するには、次のようにします。

1. ナビゲータでEJBモジュールを右クリックし、新規EJBセッションまたは「メッセージドリブンBean」を選択します。
または、モジュールを選択し、「ファイル」メニュー→「新規」→「ビジネス層」→EJBセッションまたは「メッセージドリブンBean」を選択します。

2. ウィザードのステップに従います。

新規のEJBモジュールにEJBを作成するには、次のようにします。

1. ナビゲータで、「ファイル」→「新規」→「一般」→「プロジェクト」を選択します。

2. 「新規ギャラリ」で、作成するプロジェクトのタイプを選択し、「OK」をクリックします。

3. ナビゲータで、新規プロジェクトを右クリックして「新規」を選択します。

4. 「新規」ダイアログで、「ビジネス層」カテゴリを開きます。

5. 「EJB」をクリックし、「セッションBean」または「メッセージドリブンBean」を選択します。
または、モジュールを選択し、「ファイル」メニュー→「新規」→「ビジネス層」→EJBセッションまたは「メッセージドリブンBean」を選択します。

6. 「OK」をクリックします。

7. ウィザードのステップに従います。

12.7.4 EJBメソッドの追加、削除および編集方法

プロジェクトにEJBが追加された後、そこに含まれるメソッドを追加、削除または編集できます。次で説明するようにメソッドを追加すると、定義時に変更がリモート・インタフェースとホーム・インタフェースで同期化されます。

メソッドを追加するには、次のようにします(EJB 2.1)。

1. アプリケーション・ナビゲータで、EJBを選択します。

2. 構造ペインで、「メソッド」ノードを右クリックし、「新規EJBメソッド」を選択し、作成するメソッドのタイプを選択します。

3. 「メソッドの詳細」ダイアログで、必要に応じて詳細を追加します。

4. 終わったら、「OK」をクリックします。

メソッドを追加するには、次のようにします(EJB 3.0)。

1. アプリケーション・ナビゲータで、EJBを選択します。

2. 構造ペインでEJBを右クリックし、「Enterprise Java Bean (EJB)」→「新規メソッド」を選択します。

3. 「Beanメソッドの詳細」ダイアログで、必要に応じて詳細を追加します。

4. 終わったら、「OK」をクリックします。

メソッドを削除するには、次のようにします(EJB 2.1)。

1. アプリケーション・ナビゲータで、EJBを選択します。

2. 構造ペインで「メソッド」ノードを開きます。

3. 削除するメソッドを右クリックします。複数を削除する場合、[Ctrl]または[Shift]を押しながらクリックしてそれらを選択し、選択内容を右クリックします。

4. 「メソッドの削除...」を選択します。

5. 「はい」をクリックして確認します。

メソッドを削除するには、次のようにします(EJB 3.0)。

1. アプリケーション・ナビゲータで、EJBを選択します。

2. 構造ペインで、メソッドをダブルクリックしてソース・ファイル内で検索します。

3. ソース・ファイルで、メソッドを削除します。

メソッドを編集するには、次のようにします(EJB 2.1)。

1. アプリケーション・ナビゲータで、EJBを選択します。

2. 構造ペインで「メソッド」ノードを開きます。

3. 編集するメソッドを右クリックし、「プロパティ」を選択します。

4. 「メソッドの詳細」ダイアログで、必要に応じて詳細を編集します。

5. 終わったら、「OK」をクリックします。

メソッドを編集するには、次のようにします(EJB 3.0)。

1. アプリケーション・ナビゲータで、EJBを選択します。

2. 構造ペインで、EJBを右クリックし、「Enterprise Java Bean (EJB)」→「プロパティ」を選択します。

3. 「Beanメソッドの詳細」ダイアログで、必要に応じて詳細を編集します。

4. 終わったら、「OK」をクリックします。

12.7.5 EJBへのフィールドの追加方法

EJBダイアグラムまたはEJBモジュール・エディタを介して、EJBにフィールドを追加できます。

EJBダイアグラム上でフィールドを追加するには、次のようにします(EJB 2.1)。

1. ダイアグラム内のEJB上のフィールド・コンパートメント(最初のコンパートメント)をクリックします。

2. フィールドの名前とタイプを入力します。

EJBモジュール・エディタを使用してフィールドを追加するには、次のようにします(EJB 2.1)。

1. アプリケーション・ナビゲータで、フィールドを追加するEJBを右クリックし、「プロパティ」を選択します。

2. EJBモジュール・エディタで、EJBをクリックして開き、「フィールド」を選択します。

3. 「追加」をクリックします。

4. 「フィールド詳細」ダイアログで、必要に応じて詳細を追加します。

フィールドを追加するには、次のようにします(EJB 3.0)。

1. アプリケーション・ナビゲータで、EJBを選択します。

2. 構造ペインで、EJBを右クリックし、「Enterprise Java Bean (EJB)」ノード→「新規フィールド」を選択します。

3. 「フィールド詳細」ダイアログで、必要に応じて詳細を追加します。

4. 終わったら、「OK」をクリックします。

12.7.6 EJBからのフィールドの削除方法

次に示すように、フィールドをEJBから削除できます。

EJBダイアグラム上のフィールドを削除するには、次のようにします。

1. EJB上のフィールド・コンパートメント(最初のコンパートメント)をクリックします。

2. フィールドをハイライトして[Del]キーを押します。

EJBモジュール・エディタを使用してフィールドを削除するには、次のようにします(EJB 2.1)。

1. アプリケーション・ナビゲータで、フィールドを追加するEJBのノードを右クリックし、「プロパティ」を選択します。

2. EJBモジュール・エディタで、EJBをクリックして開き、「フィールド」を選択します。

3. 削除するフィールドを選択します。

4. 「削除」をクリックします。

フィールドを削除するには、次のようにします(EJB 3.0)。

1. アプリケーション・ナビゲータで、EJBを選択します。

2. 構造ペインで、フィールドをダブルクリックしてソース・ファイル内で検索します。

3. ソース・ファイルで、フィールドを削除します。

12.7.7 EJB環境エントリを使用したビジネス・ロジックのカスタマイズ

環境エントリは、Beanのビジネス・ロジックをカスタマイズできる名前と値のペアです。環境エントリはエンタープライズBeanのデプロイメント・ディスクリプタに格納されるため、ソース・コードを変更せずにBeanのビジネス・ロジックを変更できます。

たとえば、注文を計算するEJBは、受注数量や特定のステータス(シルバー、ゴールド、プラチナ)に応じて、あるいは販売促進のために、割引きを行うことがあります。Beanのアプリケーションをデプロイする前に、特定の割引率を指定できます。アプリケーションを実行すると、メソッドは環境エントリをコールして割引値を調べます。別のデプロイメントについてその割引率を変更する場合、ソース・コードを変更する必要はなく、デプロイメント・ディスクリプタの環境エントリの値を変更するだけです。

ソース・コードで環境エントリに注釈を付けます。

完全なEJB 3.0 Java Community Processの仕様および文書は、http://www.oracle.com/technetwork/java/docs-135218.htmlを参照してください。

12.7.8 クライアントへのデータの公開

クライアントにデータを公開する方法は、アプリケーションの開発方法に応じて異なります。

- Oracle ADFフレームワークを使用している場合、クライアントに対するデータ公開の推奨方法は、セッション・ファサードのデザイン・パターンを実装し、セッションBeanをデータ・コントロール・パレットに挿入することです。このオプションは、データ統合を大幅に簡素化し、JDeveloper Studioリリースでのみ使用できます。詳細は、第12.7項「セッションBeanでのビジネス・プロセスの実装」および第12.7.1項「セッション・ファサードの使用」を参照してください。

- Oracle ADFフレームワークを使用していない場合は、通常はマネージドBeanを作成してJSF/JSPページへの接続を調整します。詳細は、第11.2項「JavaServer Facesを使用したアプリケーションの開発」を参照してください。

12.7.9 リソース参照の識別方法

リソース参照は、リソースに対するコンポーネントのコード名を識別するデプロイメント・ディスクリプタ内の要素です。リソース参照は、コネクタおよびデータベース接続を取得するため、ならびにJMS接続ファクトリ、JavaMailセッションおよびURLリンクにアクセスするために使用されます。

EJB 3.0リソース参照を追加または変更するには、次のようにします。

ソース・コードに移動し、リソース参照に注釈を付けます。

12.7.10 エンティティの主キーの定義方法

主キーは、1つ以上の持続属性を持つ一意の識別子です。これは、同じタイプの他のすべてのインスタンスからクラスの1つのインスタンスを識別します。主キーは、リレーションシップの定義および問合せの定義に使用します。

JPAエンティティ・インスタンスごとに1つの主キーが必要です。データベース・スキーマに応じて、永続フィールドからシンプル主キーを定義したり、複数の永続フィールドからコンポジット主キーを定義できます。また、自動主キー値生成を定義し、JPAエンティティ実装を簡素化することもできます。

シンプル主キーを指定する最も簡単な方法は、単一のプリミティブに対する注釈を使用するか、JDKオブジェクト・タイプ・エンティティ・フィールドを主キーとして使用することです。また、デプロイメントXMLを使用してデプロイメント時にシンプル主キーを指定することもできます。

注釈を使用してシンプル主キーを構成するには、次のようにします。

1. JPAエンティティ実装で、例12-7に示すように、@Id注釈を使用して主キー・フィールドに注釈を付けます。

例12-7 注釈を使用した主キーの構成

import javax.ejb.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Column;

@Entity
@Table(name = "EMP")
public class Employee implements java.io.Serializable {
private int empNo;
private String eName;
private String birthday;
private Address address;
private int version;

public Employee() {
{

@Id
@Column(name="EMPNO")
public int getEmpNo() {
return empNo;
}
...
}

2. アプリケーションをパッケージ化し、デプロイします。

デプロイメントXMLを使用してシンプル主キーを構成するには、次のようにします。

1. JPAエンティティ実装で、例12-8に示すように、主キー・フィールドを実装します。

例12-8 デプロイメントXMLを使用した主キーの構成

public class Employee implements java.io.Serializable {
private int empNo;
private String eName;
private String birthday;
private Address address;
private int version;

public Employee() {
{

public int getEmpNo() {
return empNo;
}
...
{

12.7.11 ADFバインディングの主キーの指定方法

特定のADF Faces機能では、主キーを指定する必要があります。たとえば、af:tableSelectManyコンポーネントを使用するADF Faces表がある場合、ソートを実装するために主キーを指定する必要があります。EJB/JPAエンティティを表から(EJB 3.0を使用して)作成する場合、デフォルトでは主キーが指定されます。しかし、主キーを指定する必要がある場合は、次を実行します。

属性を主キーとして指定するには、次のようにします。

1. エンティティごとにXML定義を作成するためにADFデータ・コントロールをまだ作成していない場合は、この作業を行う必要があります。詳細は、『Oracle Fusion Middleware Oracle Application Development Framework Java EE開発者ガイド』のJava EE WebアプリケーションでのADFモデル・データ・バインディングの使用に関する項を参照してください。

2. アプリケーション・ナビゲータで、EJBエンティティのXMLファイルを選択します。

3. 構造ペインで、エンティティ属性を選択し、「表示」メニューから「プロパティ・インスペクタ」を選択します。

4. プロパティ・インスペクタで、主キーとして使用する属性を検索し、「PrimaryKey」値を「True」に設定します。

12.7.12 EJBのADFデータ・コントロールの使用方法

JDeveloperでは、ADF Fusion Webアプリケーションを構築する際にデータ・コントロール・コンポーネントの完全セットが自動的に提供されます。Java EEアプリケーションまたはEJBプロジェクト(あるいはその両方)を構築する場合、個別セッションBeanでADFデータ・コントロールを割り当てます。これにより、Beanと同じ名前のデータ・コントロール・ファイルが追加されます。

EJBのADFデータ・コントロール使用の完全な詳細は、『Oracle Fusion Middleware Oracle Application Development Framework Java EE開発者ガイド』のJava EE WebアプリケーションでのADFモデル・データ・バインディングの使用に関する項を参照してください。

12.8 ダイアグラムでのEJB/JPAコンポーネントのモデル化

ダイアグラムでのEJBおよびJPAコンポーネントのモデル化の詳細は、第23.3項「ダイアグラムでのEJB/JPAコンポーネントのモデル化」を参照してください。

12.9 EJBモジュールおよびJPA永続性ユニットのデプロイ

EJBモジュールは、1つ以上のEJB、永続性ユニットおよびオプションのEJBデプロイメント・ディスクリプタで構成されるソフトウェア・ユニットです。1つのJDeveloperプロジェクトに含まれるのは、1つのEJBモジュールのみです。デプロイ時には、モジュールはejb.jarファイルとしてパッケージ化されます。

エンティティBeanは以前、セッションBeanおよびメッセージドリブンBeanとともにEJB JARファイルにパッケージ化されていました。現在では、JPAエンティティおよび永続性ユニットのテクノロジを使用して、これらはデプロイ時に独自のJARファイルpersistenceunit.jarにパッケージ化されます。

現在、エンティティBean (JPAエンティティ)は、persistence.xmlファイルが含まれるJPA永続性アーカイブJARに個別に格納されます。JPA永続性ユニットはEJBモジュール・パッケージの一部である必要はなく、the ejb.jarファイル内にバンドルできます。

12.9.1 EJBモジュールについて

1つのJDeveloperプロジェクトに含まれるのは、1つのEJBモジュールのみです。プロジェクト内で最初のセッションBeanまたはメッセージドリブンBeanを作成する場合、モジュールが存在しなければ、モジュールは自動的に作成されます。新規EJBモジュールのEJBバージョンと永続性マネージャは選択できます。

プロジェクトをデプロイする場合、セッションBeanおよびメッセージドリブンBeanとデプロイメント・ディスクリプタの集合を、アプリケーション・サーバーへのデプロイメントまたはアーカイブ・ファイルとしてのデプロイメントの準備が整っているEJB JARファイル(.jarファイル)に変換します。永続性ユニットを独自のJARファイルに限定することにより、永続性ユニットを他のアプリケーションで簡単に再利用できるようになります。詳細は、第9.1項「アプリケーションのデプロイについて」を参照してください。

12.9.2 JPA永続性ユニットについて

JPA永続性ユニットは、persistence.xmlファイル、1つ以上のオプションのorm.xmlファイル、および永続性ユニットに属する管理対象エンティティ・クラスで構成されています。永続性ユニットは、エンティティ・マネージャ、データソース、永続管理対象クラスおよびマッピング・メタデータの論理グループです。永続性ユニットは、エンティティ・マネージャ・プロバイダ、構成プロパティおよび永続管理対象クラスなどの詳細を論理的にグループ化することにより、エンティティ・マネージャの構成を定義します。

各永続性ユニットには名前を指定する必要があります。特定のEJB-JAR、WAR、EARまたはアプリケーション・クライアントJAR内に存在できるのは特定の名前を持つ1つの永続性ユニットのみです。永続性ユニットを独自の永続性アーカイブにパッケージ化し、Java EEモジュールによるアクセスが必要な任意の対象にこのアーカイブを含めることができます。

persistence.xmlファイルにはセクションまたはグループが含まれます。これらのグループは、エンティティおよびエンティティに関連するランタイム・データに対応します。エンティティ・ウィザードを使用して新規エンティティを作成するときに、プロジェクト内に既存の永続性ユニットがある場合、エンティティはpersistence.xml内の独自のセクションに挿入されます。既存の永続性ユニットがない場合は、エンティティ定義のために含まれるセクションとともに永続性ユニットが作成されます。

META-INFディレクトリにpersistence.xmlファイルが含まれるJARファイルまたはディレクトリは、永続性ユニットのルートと呼ばれます。エンティティを使用するEJB 3.0アプリケーションには、明示的に、またはOC4Jのデフォルトの永続性ユニットを使用して少なくとも1つの永続性ユニットのルートを定義する必要があります。永続性ユニットをデプロイすると、persistenceunit.jarと呼ばれるJARファイルが作成されます。詳細は、第9.1項「アプリケーションのデプロイについて」を参照してください。

12.9.3 JPA永続性ユニットの作成方法

JDeveloperの永続性ユニット・ウィザードを使用すると、エンティティの永続性ユニットを簡単に作成できます。また、JPAエンティティを作成する場合、デフォルトの永続性ユニットがまだない場合はこれが作成されます。

JPA永続性ユニットを作成するには、次のようにします。

1. アプリケーション・ナビゲータで、プロジェクトを選択します。

2. 「ファイル」メニュー→「新規」→「ビジネス層」→「EJB」→「JPA永続性ユニット」を選択します。

3. ウィザードのステップを完了します。

12.9.4 モジュール内のEJBの削除方法

EJBモジュールからEJBを削除するには、システム・ナビゲータでEJBを選択し、「削除」を押します。

12.9.5 JDeveloperへのEJBのインポート方法

JARファイルまたはデプロイメント・ディスクリプタから既存のEJBをインポートできます。

EJBモジュール、またはEJBモジュール内のEJBのサブセットをプロジェクトにインポートするには、次のようにします。

1. 「ファイル」メニューから「インポート」を選択します。

2. 「インポート」ダイアログで「EJB JARファイル(.jar)」を選択します。

3. ウィザードのステップに従います。

EJBデプロイメント・ディスクリプタ・ファイル(ejb-jar.xml)をインポートするには、次のようにします。

1. 「ファイル」メニューから「インポート」を選択します。

2. 「インポート」ダイアログで「EJBデプロイメント・ディスクリプタ・ファイル(ejb-jar.xml)」を選択します。

3. ウィザードのステップに従います。

注意:

このウィザードを使用してデプロイメント・ディスクリプタをインポートした後、同じウィザードで他のファイルをインポートすると、最後に使用したディスクリプタ・ファイル、JARファイルおよびIDE設定ファイル内のディスクリプタ・ソース・ディレクトリがキャッシュされるので便利です。これにより、たとえば、EJBモジュールを複数のモジュールに分割する、同じディレクトリ内にある複数のJARファイルをインポートする、などのタスクが容易になります。

WebLogicデプロイメント・ディスクリプタ・ファイル(weblogic-ejb-jar.xml)をインポートするには、次のようにします。

1. 「ファイル」メニューから「インポート」を選択します。

2. 「インポート」ダイアログで「EJBデプロイメント・ディスクリプタ・ファイル(ejb-jar.xml)」を選択します。

3. ウィザードのステップに従います。

4. ウィザードの完了後に、ナビゲータで「weblogic-ejb-jar.xml」を右クリックして「OC4Jにエクスポート」を選択します。

既存のモジュールに同じ名前のEJBがすでに存在している場合、競合を避けるため、そのEJBはインポートされません。

12.9.6 WebSphereアプリケーション・サーバーにデプロイするためのEJB/ADFアプリケーションの変更方法

注意: ヘルプ・センターではこのトピックにアクセスできませんでした。

12.10 EJB/JPAコンポーネントの実行およびテスト

EJBをテストするには、EJBインスタンスを作成または検索し、そのリモート・インタフェース・メソッドをコールできるクライアント・プログラムを実行する必要があります。JDeveloperには、迅速にクライアントを作成できるサンプル・クライアント・ユーティリティが用意されています。EJBの実行およびテストには、統合サーバーまたはリモート・サーバーを使用しますが、どちらの場合にもサンプル・クライアント・ユーティリティを使用してクライアントを作成できます。

12.10.1 統合サーバーを使用したEJB/JPAコンポーネントのテスト方法

統合Oracle WebLogic ServerはJDeveloper内で動作します。このサーバーを使用すると、EJBの迅速かつ簡単な実行およびテストが可能であり、何の変更も加えずにそのEJBをデプロイできます。このサーバーを使用する場合、デプロイメント・プロファイルは不要で、初期化の必要もありません。

統合Oracle WebLogic Serverでサンプル・クライアントを実行するには、次のようにします。

1. アプリケーション・ナビゲータで、EJBを右クリックして「実行」を選択します。
「メッセージ」ペインではOracle WebLogic Serverは起動しています。

2. EJBを右クリックし、ポップアップ・メニューから「サンプルJavaクライアントの作成」を選択します。

3. デフォルトで、統合Oracle WebLogic Serverに対してクライアントを作成するオプションが選択されているので、「OK」をクリックします。
クライアントが作成され、コード・エディタで開かれます。

セッションBeanがJPAエンティティに対するファサードとして機能する場合、問合せメソッドをインスタンス化するためのコードが生成されます。Beanに対してメソッドを公開した場合、生成されたクライアントには、非コメント化して呼び出すことができるメソッドが含まれます。

4. EJBがアプリケーション・ナビゲータから正常に起動されたら、サンプル・クライアントを右クリックして「実行」を選択します。

12.10.2 リモート・サーバーを使用したEJB/JPAコンポーネントのテスト方法

リモート・サーバー上でEJBをテストするには、EJBをデプロイしてからサンプル・クライアントを作成する必要があります。最初にデプロイを行うと、デプロイされたアプリケーションがフレームワークによって取得され、それがクライアントの選択リストに移入されます。

警告:

同じモジュールで異なるEJBバージョンを組み合せることはできません。

リモート・サーバーを使用してサンプル・クライアントを実行するには、次のようにします。

1. 必要に応じて、実行しているアプリケーション・サーバーに対する接続を作成します。詳細は、「ターゲット・アプリケーション・サーバーへの接続の作成方法」を参照してください。

2. プロジェクトレベルのEJB JARデプロイメント・プロファイルを作成します。

1. アプリケーション・ナビゲータで、プロジェクト・ノードを右クリックし、「デプロイ」→「新規デプロイメント・プロファイル」を選択します。

2. 「デプロイメント・プロファイルの作成」ダイアログで、EJB JARファイルのプロファイル・タイプを選択し、そのプロファイルの名前を入力します。「OK」をクリックすると、「EJB JARデプロイメント・プロファイルのプロパティの編集」ダイアログが表示されます。デフォルトを受け入れて「OK」をクリックします。

3. アプリケーションレベルのEARタイプのデプロイメント・プロファイルを作成します。

1. 「アプリケーション」→「デプロイ」→「新規デプロイメント・プロファイル」の順に選択します。

2. 「デプロイメント・プロファイルの作成」ダイアログで、JARファイルのプロファイル・タイプを選択し、そのプロファイルの名前を入力します。「OK」をクリックすると、「EARデプロイメント・プロファイルのプロパティの編集」ダイアログが表示されます。

4. 新しいEJB JARプロファイルをEARプロファイル・ファイルに追加します。

1. 「EARデプロイメント・プロファイルのプロパティの編集」ダイアログのナビゲーション・ペインで、「アプリケーション・アセンブリ」を選択します。

2. 「Java EEモジュール」ツリーを展開し、手順2で作成したEJB JARプロファイルを選択して「OK」をクリックします。

5. アプリケーション・サーバー接続にアプリケーションをデプロイします。「アプリケーション」→「「application-deployment-profileのデプロイ」の順に選択します。

6. 「デプロイ」ダイアログ・ボックスで「アプリケーション・サーバーへのデプロイ」を選択し、「次へ」をクリックします。

7. 「サーバーの選択」ページでアプリケーション・サーバー接続を選択し、「終了」をクリックします。「デプロイメント」ログ・ウィンドウで詳細を追跡できます。

8. アプリケーション・ナビゲータで、EJBを右クリックして「新規のサンプルJavaクライアント」を選択します。

9. ダイアログ・ボックスで、「アプリケーション・サーバー接続」に接続するように選択します。リストされているデプロイ済Java EEアプリケーションのいずれかを選択し、「OK」をクリックします。

10. アプリケーション・ナビゲータで、新しいクライアントを右クリックし、「実行」を選択します。
「メッセージ」ペインに実行の出力が表示されます。

12.10.3 JUnitを使用したEJBユニットのテスト方法

JDeveloperでは、EJBに対するJUnit回帰テストがサポートされています。JUnitは、JDeveloperのオプション機能として用意されているオープン・ソースのJava回帰テスト用のフレームワークです。この機能を使用するには、JUnit拡張機能をインストールする必要があります。

JUnitを使用して、コードを検証するテストを記述および実行します。JUnit拡張機能をインストールした後、シンプル・ウィザードを使用してセッションBeanまたはJavaクラス・ファイルを選択し、これらのファイル内でテストするメソッドを選択し、JUnitテストを開始できます。

EJBに対してJUnitテストを実行するには、次のようにします。

1. JDeveloperの「ヘルプ」メニューからJUnit拡張機能をインストールします。詳細は、第18.12.1項「JUnitのインストール方法」を参照してください。

2. アプリケーション・ナビゲータでEJBセッションBeanまたは通常のJavaクラス(POJO)を選択します。また、ウィザード内でこれにナビゲートすることもできます。

3. 「ファイル」メニュー→「新規」→「ビジネス層」→「EJB」→「EJB JUnit TestCase」をクリックします。

4. JUnitウィザードを起動します。

5. ウィザードのステップを完了します。

13 TopLinkマッピングの開発

この章では、Oracle JDeveloper内でTopLinkマッピングを開発する方法について説明します。TopLinkエディタを使用して、TopLinkディスクリプタや、Javaクラス、EJBおよびJPAエンティティからデータソース要素(データベース表またはXMLスキーマ要素など)へのマッピングを迅速かつ簡単に構成できます。TopLinkエディタを使用すると、Javaコードを作成せずにこの情報を作成できます。

この章では、次の項目で、TopLinkマッピングの作成およびJDeveloperプロジェクトへのTopLinkマッピングの統合に関する一般的なプロセスを説明します。

- 第13.1項「TopLinkマッピングの開発について」

- 第13.2項「TopLink JPAプロジェクトの開発」

- 第13.3項「TopLinkリレーショナル・プロジェクトの開発」

- 第13.4項「TopLink XMLプロジェクトの開発」

- 第13.5項「TopLink EISプロジェクトの開発」

- 第13.6項「TopLinkセッションの開発」

- 第13.7項「TopLinkアプリケーションの開発」

詳細は、次の項を参照してください。

- 第10章「Java EEアプリケーションの開発の開始」

- 第11章「Webページ・ツールを使用したアプリケーションの開発」

- 第12章「EJBおよびJPAコンポーネントを使用した開発」

13.1 TopLinkマッピングの開発について

Oracle TopLinkは、オブジェクトの永続性およびオブジェクト・トランスフォーメーションのための高度なフレームワークを提供します。開発やメンテナンスのコストを軽減し、エンタープライズ・アプリケーションの機能を向上させる開発ツールおよびランタイム機能が用意されています。

JDeveloper内のTopLinkエディタを使用して、Javaコードを使用せずに、Javaクラス、EJBおよびJPAエンティティを構成し、リレーショナル・データベース、企業情報システム(EIS)およびXMLスキーマなど別のデータソースにマップします。TopLinkエディタでは、JPA、JAXBおよびJava EEなど複数の標準がサポートされています。

TopLinkは、オブジェクト指向のプログラムをリレーショナル・データ構造にリンクします。TopLinkを使用すると、リレーショナル・データベースに永続オブジェクト指向データを格納する、パフォーマンスの高いアプリケーションを作成できます。オブジェクト指向データは、リレーショナル・データまたはXML文書に変換されます。TopLinkを使用すると、効率的で柔軟性が高く実証済であるソリューションを利用して、プライマリ・ドメインの問題に焦点を置いたまま、永続性とオブジェクト変換をアプリケーションに統合できます。

13.1.1 インピーダンス・ミスマッチについて

TopLinkを使用すると、インピーダンス・ミスマッチと呼ばれる、Javaソースとデータソース間の差異に対応できます。オブジェクト・リレーショナル・データベースは表、行、列、主キーおよび外部キーなどの要素で構成されていますが、JavaおよびJava EEにはエンティティ・クラス(標準JavaクラスまたはEnterprise JavaBean (EJB)エンティティBean)、ビジネス・ルール、複合リレーションおよび継承があります。非リレーショナル・データ・ソースでは、JavaエンティティをEISレコードまたはXML要素とスキーマに一致させる必要があります。これらの不一致(図13-1に示されています)は、オブジェクトと永続データのインピーダンス・ミスマッチとして知られています。

図13-1 オブジェクトと永続データのインピーダンス・ミスマッチの解決

13.1.2 TopLinkアプリケーションの設計

TopLinkを使用すると、次を含む、Javaを使用するエンタープライズ・アーキテクチャに対して様々な永続性およびデータ変換機能を実行できます。

- Java EE

- Spring

- Java Webサーバー(Tomcatなど)

- Javaクライアント(Java SE、Webブラウザなど)

13.1.3 アプリケーション設計でのTopLinkの使用

TopLinkは、次の方法で使用できます。

- リレーショナル・データベースの使用: TopLinkを使用すると、JDBCを使用してアクセスされる、SQLデータ・タイプをサポートするリレーショナル・データベースに、Javaオブジェクトを永続化できます。

- Oracle XML Database (XDB)の使用: TopLinkでダイレクトXMLタイプ・マッピング機能を使用して、Oracle XMLデータベースにXML文書を永続化できます。

- 企業情報システム(EIS)の使用: TopLinkで、JCAアダプタを使用してJavaオブジェクトをEISデータソースに永続化できます。このシナリオでは、JCAアダプタがEISとのインタラクションを受信することで、アプリケーションがEISデータ・ソースによって定義された操作を起動します。操作により、EISレコードが取得されたり返されます。TopLink EISディスクリプタとマッピングを使用して、JCAアダプタとEISデータ・ソースによってサポートされるEISレコード・タイプに、Javaオブジェクトを容易にマップできます。この使用方法は、レガシー・データソースに接続するアプリケーションでは一般的であり、Webサービスにも適用できます。

- XMLの使用: TopLinkで、XML文書およびJAXBをベースにしたXMLスキーマ(XSD)を使用して、インメモリーの非永続JavaオブジェクトをXMLにトランスフォーメーションできます。TopLink JAXBコンパイラをXSDとともに使用して、JAXB固有の生成物(コンテンツと要素のインタフェース、実装クラス、オブジェクト・ファクトリ・クラスなど)とTopLink固有の生成物(セッション、プロジェクトXMLファイルなど)を両方とも生成できます。

13.1.4 TopLinkメタデータの作成

TopLinkのメタデータは、アプリケーションの開発とデプロイされたランタイム環境の間の橋渡しをします。次を使用してメタデータを取得できます。

- TopLinkランタイム環境に渡すTopLinkのsessions.xmlおよびproject.xmlファイルを作成するJDeveloperマッピング・エディタ。

- JPAの注釈、persistence.xml、orm.xml、TopLink JPAの注釈およびTopLinkプロパティの拡張機能。TopLink JPA永続性プロバイダでは、これらのメタデータのメタデータ・ソースを解釈して、実行時にインメモリーのTopLinkセッションおよびプロジェクトが作成されます。

- JavaおよびTopLink API(この方法は最も労力が必要とされます)。

メタデータを使用すると、構成情報をランタイム環境に渡すことができます。ランタイム環境では、この情報を永続クラス(Javaオブジェクト、JPAエンティティまたはEJBエンティティBean)、およびTopLink APIを使用して記述されたコードとともに使用して、アプリケーションが完成します。

TopLink JPAを使用すると、JPAおよびEntityManagerを使用して永続クラスにアクセスしている間に、TopLinkのsessions.xmlおよびproject.xmlを使用してメタデータを指定することもできます。

TopLinkメタデータ・アーキテクチャにより、次のような多くの重要な利点が提供されます。

- メタデータを使用することにより、TopLinkはオブジェクト・モデルまたはデータベース・スキーマに介入しません。

- 開発者は、特定の設計を強引に通すことなく、必要に応じてオブジェクト・モデルを設計できるようになります。

- DBAは、特定の設計を強引に通すことなく、必要に応じてデータベースを設計できるようになります。

- コード生成(設計、実装、メンテナンスなどの重大な問題の原因になる可能性がある)に依存しません。

- 非介入型です。TopLinkに適合するようにオブジェクト・モデルまたはデータベース・スキーマを設計することを開発者に要求するのではなく、TopLinkメタデータ自らがオブジェクト・モデルおよびデータベース・スキーマに適応します。

TopLink JPAを使用する場合、標準JPAの注釈、デプロイメントXML、またはこの両方を使用して永続性メタデータを柔軟に公開できます。必要に応じて、TopLink JPAの注釈および永続性ユニットの拡張機能を利用することもできます。

13.1.5 プロジェクト・メタデータの作成

TopLinkプロジェクトには、TopLinkランタイムがオブジェクトをデータ・ソースへマップするために使用するマッピング・メタデータが含まれています。プロジェクトは、TopLinkランタイムが使用するプライマリ・オブジェクトです。プロジェクト・メタデータの最も重要な内容には、次が含まれます。

- ディスクリプタ

- マッピング

- データ・ソース・ログイン情報

TopLinkランタイムは、JPAを使用して、採用されている注釈、persistence.xml、orm.xmlおよびTopLink JPAの拡張機能に基づき、インメモリー・プロジェクトを構成します。

13.1.6 セッション・メタデータの作成

TopLinkセッション構成ファイル(sessions.xml)を使用すると、特定のプロジェクトのすべてのセッションを簡単に管理できます。データソース・ログイン情報、JTAトランザクション使用方法およびキャッシングを含む各セッションに関する情報を完全にカスタマイズできます。

TopLinkのセッションには、特定のproject.xmlファイルへの参照とデータ・ソースへのアクセスに必要な情報が含まれています。セッションは、TopLinkランタイムの機能にアクセスするためにアプリケーションが使用するプライマリ・オブジェクトです。

セッション・メタデータの作成およびアクセスを担当するエージェントは、CMPプロジェクトを作成するかどうかに応じて異なります。POJOプロジェクトでは、アプリケーションはセッションを直接取得してアクセスします。CMPプロジェクトでは、アプリケーションは、TopLinkランタイムによって内部的に取得されたセッションに間接的にアクセスします。

TopLinkランタイムは、TopLink JPAを使用して、JPAの注釈、persistence.xml、orm.xml、TopLink JPAの注釈およびpersistence.xmlのプロパティの拡張機能の任意の組合せに基づき、インメモリー・セッションを構成します。sessions.xmlファイルの使用はオプションです。

13.1.7 TopLinkディスクリプタの使用

TopLinkでは、ディスクリプタを使用して、あるデータソースによって特定クラスがどのように表現されるかを定義した情報を格納します。ディスクリプタには、クラスのインスタンス変数を、データ・ソースおよび、値の格納と取得に使用されるトランスフォーメーション・ルーチンに関連付けるマッピングを含めます。それによって、ディスクリプタは、Javaオブジェクトとそのデータ・ソース表現を接続する役目を果します。

2つのオブジェクト、つまり、ソース(親、すなわち所有側)オブジェクトとターゲット(子、すなわち所有される側)オブジェクトは、両者間に厳密な1対1の関係がある場合、集約によって関連付けられ、ターゲット・オブジェクトのすべての属性は、ソース・オブジェクトと同じデータソース表現から取得できます。つまり、ソース・オブジェクトが存在すればターゲット・オブジェクトも存在する必要があり、ソース・オブジェクトが破棄されればターゲット・オブジェクトも破棄されるということです。

JDeveloperを使用すると、次のタイプのTopLinkディスクリプタを作成できます。

- リレーショナル・ディスクリプタ

- EISディスクリプタ

- XMLディスクリプタ

13.1.7.1 リレーショナル・ディスクリプタ

リレーショナル・ディスクリプタには、リレーショナル・データベース内の表にマップするJavaオブジェクトを記述します。リレーショナル・プロジェクトでリレーショナル・ディスクリプタを使用すると、リレーショナル・マッピングを構成できます。リレーショナル・プロジェクトでは、ディスクリプタを集約として指定できるため、ターゲット・オブジェクト内のデータ・メンバーをソース・オブジェクトの基礎となるデータベース表のフィールドと関連付ける集約マッピングを構成できます。

リレーショナル・ディスクリプタを集約ディスクリプタとして定義する場合、TopLinkではターゲット・クラスのフィールドごとに1つのマッピング・タイプを指定できますが、フィールドとデータベース表の関連付けは、ソース・ディスクリプタで集約オブジェクト・マッピングを構成した後で可能になります。つまり、ターゲット・クラス・ディスクリプタは各ターゲット・クラス・フィールドがマップされる方法を定義し、ソース・クラス・ディスクリプタは各ターゲット・クラス・フィールドがマップされる場所を定義する、ということです。この仕組みにより、異なる表にマップされた多数の親ディスクリプタ間で同一の集約オブジェクトを共有することができます。

13.1.7.2 EISディスクリプタ

JCAアダプタを介してEISデータ・ソースにマップするJavaオブジェクトを記述します。EISディスクリプタを使用すると、EISプロジェクトの作成時にEISマッピングを構成できます。

13.1.7.3 XMLディスクリプタ

XMLスキーマ・ドキュメント(XSD)に定義されているXML文書内の複合型へのインメモリー・マッピングを行うJavaオブジェクトを記述します。XMLディスクリプタをXMLプロジェクトで使用すると、XSDに定義されているXML要素へのXMLのマッピングをメモリー内に構成できます。

13.1.8 TopLinkマッピングの使用

TopLinkは、オブジェクトの表現からデータソースに固有の表現にデータを変換します。この変換はマッピングと呼ばれ、TopLinkプロジェクトの中核をなすものです。マッピングはそれぞれ、ドメイン・オブジェクトの単一データ・メンバーに対応しています。マッピングによって、オブジェクト・データ・メンバーをそのデータソース表現と関連付け、オブジェクトとデータソースの間の双方向変換を実行する手段を定義します。TopLinkマップは、アプリケーションがTopLinkの機能にアクセスする際に経由するファサードであるTopLinkセッションに属します。使用可能なマッピングのタイプは、TopLinkマップおよびTopLinkディスクリプタによって異なります。

13.1.8.1 リレーショナル・マッピングのタイプ

リレーショナル・マッピングは、オブジェクトのデータ・メンバー・タイプを、サポートされているリレーショナル・データベースの対応するリレーショナル・データベース表現に変換します。これらを使用して、プリミティブを含む単純なデータ・タイプ(intなど)、JDKクラス(Stringなど)およびラージ・オブジェクト(LOB)の値をマップします。また、これらを使用して、データ・ソース表現にオブジェクト・アイデンティティの維持(順序付けおよび後方参照など)が必要な関連付けによって、他のドメイン・オブジェクトを参照するオブジェクト・データ・メンバーを変換し、多重度および誘導可能性の様々なタイプを持たせることもできます。適切なマッピング・クラスは、主にリレーションシップのカーディナリティによって選択されます。

表13-1は、方向性、トランスフォーマ、コンバータおよびEJB 2.n CMPリレーショナル・マッピングというTopLinkの概念を使用したリレーショナル・マッピングのタイプのビルド・マップを示しています。

表13-1 リレーショナル・マッピングのタイプ

マッピング・タイプ

説明

フィールドへ直接

Java属性をデータベース・フィールドに直接マップします。

XMLタイプへ直接

Java属性をOracleデータベースのXMLType列にマップします。

1対1

他の永続Javaオブジェクトへの参照をデータベースにマップします。

可変1対1

インタフェースへの参照をデータベースにマップします。

1対多

永続オブジェクトのJavaコレクションをデータベースにマップします。

多対多

関連表を使用して、永続オブジェクトのJavaコレクションをデータベースにマップします。

ダイレクト・コレクション

ディスクリプタを持たないオブジェクトのJavaコレクションをマップします。

ダイレクト・マップ

ダイレクト・マップ・マッピングでは、java.util.Mapを実装するインスタンスが格納されます。

集約オブジェクト

オブジェクトが両方とも同じデータベース行に存在する必要がある、厳密な1対1マッピングを作成します。

トランスフォーメーション

カスタム・マッピングを作成し、1つ以上のフィールドを使用して属性に格納するオブジェクトを作成できるようにします。

13.1.8.2 EISマッピングのタイプ

TopLink企業情報システム(EIS)マッピングでは、Java EE Connector Architecture (JCA)アダプタを介した、レガシー・データ・ソースおよびエンタープライズ・アプリケーションへのアクセスをサポートします。TopLink EISマッピングでは、JCA Common Client Interface (CCI)を使用し、そのリソース・アダプタを介してEISにアクセスします。これにより、既存のJavaオブジェクト・モデルを直接トランザクション・データ・ソース(フラット・ファイル/階層データを持つメインフレームなど)にマップできるようになります。EISマッピングでは、オブジェクトのデータ・メンバーをオブジェクトのディスクリプタで定義されたEISレコード形式に変換します。

表13-2は、TopLinkが提供するEISマッピングのタイプを示しています。

表13-2 EISマッピングのタイプ

マッピング・タイプ

説明

ダイレクト・マッピング

単純なオブジェクト属性を直接EISレコードにマップします。

コンポジット・ダイレクト・コレクション・マッピング

Java属性のコレクションを直接EISレコードにマップします。

コンポジット・オブジェクト・マッピング

Javaオブジェクトを私有の1対1リレーションシップでEISレコードにマップします。コンポジット・オブジェクト・マッピングは、2つのクラス間のリレーションシップを表します。

コンポジット・コレクション・マッピング

JavaオブジェクトのMapまたはCollectionを私有の1対多リレーションシップでEISレコードにマップします。

1対1マッピング

1つのソース・オブジェクトと1つのマップ済永続Javaオブジェクトの間のリレーションシップを表す、参照マッピングを定義します。

1対多マッピング

1つのソース・オブジェクトとマップ済永続Javaオブジェクトのコレクションの間のリレーションシップを表す、参照マッピングを定義します。

トランスフォーメーション・マッピング

カスタム・マッピングを作成し、1つ以上のEISレコード・フィールドを使用してJavaクラスの属性に格納するオブジェクトを作成できるようにします。

13.1.8.3 XMLマッピングのタイプ

XMLマッピングは、オブジェクトのデータ・メンバーを、構造がXMLスキーマ・ドキュメント(XSD)により定義されているXML文書のXML要素に変換します。様々なXMLマッピング・タイプを使用して、XMLの単純および複合型の組合せにJavaオブジェクトの属性をマップできます。TopLinkでは、クラスのディスクリプタに各クラスのXMLマッピングを格納します。TopLinkでは、ディスクリプタを使用してXML文書からマップされたオブジェクトをインスタンス化し、新規または変更済のオブジェクトをXML文書として格納します。

表13-3は、XMLの単純および複合型の組合せにJavaオブジェクトの属性をマップするために使用可能なXMLマッピングのタイプを示しています。

表13-3 XMLマッピングのタイプ

マッピング・タイプ

説明

XMLダイレクト・マッピング

単純なオブジェクト属性をXML属性またはテキスト・ノードにマップします。

XMLコンポジット・ダイレクト・コレクション・マッピング

単純なオブジェクト属性のコレクションをXML属性またはテキスト・ノードにマップします。

XMLコンポジット・オブジェクト・マッピング

シングル・オブジェクトを含む任意の属性をXML要素にマップします。TopLinkランタイムでは、参照されたオブジェクトのディスクリプタを使用してその要素の内容を移入します。

XMLコンポジット・コレクション・マッピング

オブジェクトの同種のコレクションを含む属性を、複数のXML要素にマップします。TopLinkランタイムでは、参照されたオブジェクトのディスクリプタを使用してそれらの要素の内容を移入します。

XML任意オブジェクト・マッピング

XML任意オブジェクトのマッピングは、XMLコンポジット・オブジェクトのマッピングと類似しています。ただし、参照オブジェクトが異なるタイプ(Stringなど)である場合もあり、必ずしも継承や共通インタフェースを介して相互に関連付けられていない点が異なります。

XML任意コレクション・マッピング

XML任意コレクションのマッピングは、XMLコンポジット・コレクションのマッピングと類似しています。ただし、参照オブジェクトが異なるタイプ(Stringなど)である場合もあり、必ずしも継承や共通インタフェースを介して相互に関連付けられていない点が異なります。

XMLトランスフォーメーション・マッピング

カスタム・マッピングを作成し、1つ以上のXMLノードを使用してJavaクラスの属性に格納するオブジェクトを作成できるようにします。

13.1.9 TopLinkエディタの理解

TopLinkエディタを使用して、Javaクラスを構成して、コードを使用せずに様々なデータソース(リレーショナル・データベース、企業情報システム(EIS)、XMLスキーマなど)にマッピングできます。TopLinkエディタは、EJB 3.0 JPAなどの複数のマッピング標準をサポートしています。

TopLinkエディタには、アプリケーション・ナビゲータまたは「構造」ビューで選択した要素に固有の情報またはプロパティが表示されます。たとえば、アプリケーション・ナビゲータでTopLinkマップやセッション構成ファイル(sessions.xml)などのTopLinkプロジェクト要素を選択すると、TopLinkエディタでそのプロパティを構成できるようになります。同様に、「構造」ビューでTopLinkマップ、ディスクリプタ、マップされた属性、およびマップされていない属性を選択すると、それぞれのプロパティがTopLinkエディタに表示されます。

13.1.9.1 TopLinkマップの管理

TopLinkマップには、クラスをデータベース表またはXMLスキーマにどのようにマップするかに関する情報が含まれています。TopLinkエディタを使用して、次のようなマッピングの各コンポーネントを編集します。

- ドライバ、URL、ログイン情報などのデータベース情報

- アイデンティティ・マップ・オプション、キャッシュ・オプションなどのマッピングのデフォルト設定

TopLinkマップを構成するには、TopLinkマップ(tlMapなど)の「アプリケーション・ナビゲータ」ポップアップ・メニューの「開く」、またはTopLinkマップの「構造」ビューを選択します。TopLinkエディタに、リレーショナルやEISなどのタイプに応じて、オブジェクト・マップのプロパティが表示されます。リレーショナル・オブジェクト・マップに対してTopLinkエディタを使用すると、たとえば順序付けのポリシーを構成できます。TopLinkエディタの詳細は、『Oracle Fusion Middleware Oracle TopLink開発者ガイド』を参照してください。

TopLinkマッピングでは、ディスクリプタを使用して、データソース内で特定のクラスのインスタンスをどのように表現できるかに関する情報を格納します。マップのディスクリプタを構成するには、tlMapの「構造」ビュー・ディスクリプタを選択します。たとえば、エディタを使用すると、名前付き問合せを作成してアプリケーションのパフォーマンスを改善したり、ロック・ポリシーを構成してユーザーが互いの作業を上書きすることを回避できます。

TopLinkマッピングでは、データソース内でオブジェクトの属性がどのように表現されるかを定義します。「構造」ビューを使用してディスクリプタの属性のマッピングを構成するには、tlMapの「構造」ビュー・ディスクリプタ属性ポップアップ・メニューの「マップ」マッピング・タイプを選択します。

13.1.9.2 TopLinkセッションの管理

TopLinkセッション構成ファイル(sessions.xml)を使用すると、特定のプロジェクトのすべてのセッションを管理できます。TopLinkセッションの詳細は、『Oracle Fusion Middleware Oracle TopLink開発者ガイド』を参照してください。

TopLinkエディタでは、sessions.xmlの「構造」ビューの「開く」を選択することで、各セッションの情報(データソースのログイン情報、JTAトランザクションの使用、キャッシングなど)を完全にカスタマイズできます。また、TopLinkエディタでは、個々のセッションおよびそれらを管理するセッション・ブローカを作成および構成できます。セッション・ブローカを管理するには、sessions.xmlの「構造」ビュー・セッション・ブローカを選択します。

13.1.9.3 永続性構成の管理

TopLinkエディタを使用すると、TopLink JPAプロジェクト内のエンティティをパッケージ化するpersistence.xmlファイルを構成できます。永続性ユニットを作成するには、persistence.xmlのアプリケーション・ナビゲータの「開く」を選択します。

「構造」ウィンドウには、JPAディスクリプタおよび永続性ユニットが表示されます。永続ユニットを構成するには、persistence.xmlの「構造」ビュー永続性ユニットを選択します。

13.1.9.4 TopLinkの「構造」ビューのツールバー

「構造」ビューには、アプリケーション・ナビゲータまたはTopLinkエディタで選択されているTopLink要素に関する詳細情報が表示されます。次に例を示します。

- EJBまたはJavaクラスを使用している場合、「構造」ビューには、関連のTopLinkディスクリプタおよびそのマッピンク属性が表示されます。

- TopLinkセッション構成ファイルを使用している場合、「構造」ビューには、セッションおよびセッション・ブローカが表示されます。

- 永続性構成を使用している場合、「構造」ビューには、JPAディスクリプタおよび永続性ユニットが表示されます。

「構造」ビューには、ディスクリプタ、マッピング、セッション、および永続性ユニットを変更するためのアクセスを提供するツールバーがあります。このツールバーは状況に依存するため、「構造」ビューで選択されている要素によって表示されるボタンは変わります。

表13-4 TopLinkの「構造」ビューのツールバーのアイコン

アイコン

名前

機能

ディスクリプタの追加または削除

TopLinkマップからディスクリプタを追加または削除します。

自動マップ

選択したディスクリプタまたは属性を同じ名前のデータベース・フィールドに自動マップしようとします。

集約ディスクリプタ

ディスクリプタ・タイプを集約ディスクリプタに変更します。つまり、表、主キーおよび他のオプションに関するディスクリプタの定義が所有ディスクリプタのものになります。

クラス・ディスクリプタ

ディスクリプタ・タイプをクラス・ディスクリプタに変更します。

マップ

選択した属性のマッピング・タイプを選択します。

新規の永続性ユニット

新規永続性ユニットを作成する場合、クリックします。

新規データベース・セッションまたはサーバー・セッションを作成します

セッション構成ファイル内でセッションを作成する場合、クリックします。

セッション・ブローカの作成

新規のセッション・ブローカを作成する場合、クリックします。

新規の名前付き接続プールを作成します

新規の名前付き接続プール(使用目的は任意ですが、通常はセキュリティ目的の接続プール)を作成する場合、クリックします。

シーケンス接続プールを追加します

順序付けに特化して使用される接続プールを追加する場合、クリックします。TopLinkでは、新規オブジェクトに識別子を割り当てる必要があるときは常にシーケンス接続プールが使用されます。

13.1.9.5 アプリケーション・ナビゲータのTopLinkプロジェクト要素

アプリケーション・ナビゲータには、TopLinkマップ、デプロイメント・ディスクリプタおよびセッション構成情報を含む、TopLinkプロジェクトに関連付けられた各要素が表示されます。

アプリケーション・ナビゲータのTopLinkプロジェクト要素には、次を含めることができます。

- 「TopLink」フォルダ

- セッション構成ファイル(sessions.xml)

- TopLinkマップ(tlMap)

13.1.9.6 エディタ・ウィンドウのTopLinkエディタ・タブ

TopLinkエディタには、TopLinkマッピング情報が表示されます。このエディタに表示される情報は、アプリケーション・ナビゲータまたは「構造」ビューで選択したTopLink要素によって異なります。

13.1.9.7 「構造」ビューのTopLinkプロジェクト要素

「構造」ビューには、アプリケーション・ナビゲータまたはTopLinkエディタで選択されているTopLink要素に関する詳細情報が表示されます。

- EJBまたはJavaクラスを使用している場合、「構造」ビューには、関連のTopLinkディスクリプタおよびそのマッピンク属性が表示されます。

- TopLinkセッション構成ファイルを使用している場合、「構造」ビューにはセッションおよびセッション・ブローカが表示されます。

- 永続性構成を使用している場合、「構造」ビューにはJPAディスクリプタおよび永続性単位が表示されます。

「構造」ビューで項目を選択すると、TopLinkエディタに次のプロパティが表示されます。

- TopLinkマップ(tlMap)

- ディスクリプタ

- マップされたJava属性(1対1マッピング)

- アンマップ属性

項目について特定の機能を実行するには、アプリケーション・ナビゲータで項目を選択してから次のようにします。

- 「構造」ビューでオブジェクトを右クリックし、機能をポップアップ・メニューから選択します。

- 「構造」ビューでオブジェクトを選択し、「構造」ツールバーのボタンをクリックします。

13.1.9.8 TopLink「構造」ビューのツールバーの使用

TopLinkエディタの「構造」ビューには、ディスクリプタとマッピングを簡単に変更できるツールバーがあります。このツールバーは状況に依存するため、「構造」ビューで選択されている要素によって実際に表示されるボタンは変わります。

13.1.9.9 TopLinkマッピングのメッセージ・ログでのステータス・レポート

TopLinkエディタのエラー・メッセージおよびステータス・メッセージは、「TopLinkの問題」ウィンドウに表示されます。

13.1.9.10 TopLinkのプリファレンスの構成

使用する永続性プロバイダ、使用するJPQLエディタ、および問合せタイプとフォーマットを構成できます。

TopLinkエディタのプリファレンスを構成するには、次のようにします。

1. 「ツール」→「プリファレンス」の順に選択します。

2. 「カテゴリ」リストで、「TopLinkのカスタマイズ」を開きます。

3. JPAオプションおよびマッピング・オプションを構成します。

4. 各フィールドを完了し、「OK」をクリックします。

13.1.9.11 TopLinkマッピング・プロジェクトの作成方法

JDeveloperでは、TopLinkディスクリプタ(詳細は第13.1.7項「TopLinkディスクリプタの使用」を参照)およびマッピング(詳細は第13.1.8項「TopLinkマッピングの使用」を参照)はTopLinkマップ(.mwpファイル)に格納され、セッションはsessions.xmlファイルに格納されます。TopLinkマップには、クラスがデータベース表にどのようにマップされるかに関する情報が含まれています。TopLinkエディタを使用して、次のようなマッピングの各コンポーネントを編集します。

- ドライバ、URL、ログイン情報などのデータベース情報

- キャッシュ・オプションなどのマッピングのデフォルト設定

TopLinkマップ(またはTopLinkマップの要素)を選択すると、その属性がTopLinkエディタに表示されます。

TopLinkは、開発者がJDeveloperマッピング・エディタで作成したディスクリプタとマッピングを使用して、アプリケーションの永続エンティティをデータベースにマップします。マッピング・エディタは、次のようなプロジェクト開発に対するアプローチをサポートしています。

- マッピング用のクラスと表のインポート

- クラスのインポート、および表とマッピングの生成

- 表のインポート、およびクラスとマッピングの生成

- クラス定義と表定義の作成

JDeveloperマッピング・エディタには、アプリケーションの永続エンティティまたはリレーショナル・モデル・コンポーネントを生成するための機能がいくつか用意されていますが、これらのユーティリティの目的はアプリケーションのラウンドトリップ開発を完了することではなく、短期間の初期開発方法を支援することのみです。

新規TopLink対応プロジェクトを作成するには、次のようにします。

1. 「ファイル」→「新規」の順に選択します。

2. 「カテゴリ」リストで、「一般」→「プロジェクト」を選択します。

3. 「項目」リストで、「TopLinkプロジェクト」を選択します。

4. 「OK」をクリックします。
「新規TopLink対応プロジェクト」ダイアログが表示されます。

5. 各フィールドを完了し、「OK」をクリックします。
オブジェクト・マップを含む新規プロジェクトが作成されます。

既存のJDeveloperプロジェクトにTopLinkマップを追加するには、次のようにします。

1. アプリケーション・ナビゲータで既存のプロジェクトを右クリックし、「新規」を選択します。

2. 「カテゴリ」リストで、「ビジネス層」→「TopLink/JPA」を選択します。

3. 「項目」リストで、「TopLinkオブジェクト・マップ」を選択します。

4. 各フィールドを完了し、「OK」をクリックします。
既存のプロジェクトにTopLinkマップ・ファイルが作成されます。

13.1.9.12 コンバータ・マッピングの使用方法

TopLinkでは、次のダイレクト・マッピング・タイプは使用されません。

- タイプ変換

- オブジェクト・タイプ

- シリアライズ・オブジェクト

かわりに、TopLinkでは特殊なコンバータによって、フィールドへ直接マッピングを使用します。下位互換性のあるデプロイXMLファイルを生成するには、「TopLinkマップ」オプションの「一般」ページの「推奨されないダイレクト・マッピングの生成」オプションを使用します。

13.1.9.13 TopLinkディスクリプタの自動マップ方法

TopLinkの自動マップ・ウィザードでは、Javaクラス属性を同様の名前のデータベース・フィールドに自動的にマップできます。自動マップ・ウィザードでは、マップされていない属性に対するマッピングのみ作成されます。すでに定義されているマッピングは変更されません。

自動マップ・ウィザードは、プロジェクト全体または特定のクラス、あるいはディスクリプタに対して使用できます。

TopLinkディスクリプタを自動マップするには、次のようにします。

1. アプリケーション・ナビゲータで、「TopLinkマップ」を選択します。
「構造」ウィンドウにTopLinkマップ(およびその属性)が表示されます。

2. 「構造」ウィンドウで、TopLinkマップ(または特定のJavaクラスまたはTopLinkディスクリプタ)を右クリックし、「自動マップ」を選択します。
自動マップ・ウィザードが表示されます。ウィザードの各ページを完了します。

13.1.9.14 データ・ソース・ログイン情報

TopLinkマッピングの場合、データソースへのアクセスに必要な情報を指定するセッション・メタデータでセッション・ログインを構成できます。

13.2 TopLink JPAプロジェクトの開発

Plain Old Java Object (POJO)に基づいてJavaオブジェクトを永続化するためにTopLink JPA (Java永続性API)プロジェクトを使用します。

Java永続性APIは、POJOに基づくJava永続性のための軽量フレームワークです。JPAは、EJB 3.0仕様の一部です。JPAは、移植性のある標準的な方法でJavaオブジェクトをリレーショナル・データベース表にマップする方法を宣言して定義できるオブジェクト・リレーショナル・マッピング方法を提供します。また、このAPIを使用すると、EJB 3.0準拠のコンテナ内と標準のJava SE 5およびJava SE 6環境内の両方で、軽量Javaオブジェクト全体にわたって作成、削除および問合せを行うことが可能です。

JPAのTopLink実装は、EclipseLinkによって提供されます。詳細は、http://wiki.eclipse.org/EclipseLinkを参照してください。

TopLink JPAを使用したオブジェクト・リレーショナル・マッピングは、次の方法によって行うことができます。

表13-5 TopLink JPAを使用したオブジェクト・リレーショナル・マッピングの実行方法

方法

説明

メタデータ注釈の使用

注釈は、JPA永続性プロバイダが永続動作を管理するために実行時に解釈できるように、対応するJavaクラス・ファイルにコンパイルされるメタデータを使用してJavaソース・コードを装飾するための簡単な表現手段です。注釈を使用すると、エンティティの永続動作を構成できます。

XMLの使用

XMLマッピング・メタデータは、単独で使用したり、注釈メタデータと組み合せて使用できます。また、XMLマッピング・メタデータを使用して、注釈メタデータを上書きすることもできます。

デフォルト・プロパティ

各注釈には、デフォルト値があります。永続性エンジンにより、アプリケーションの大半に適用されるデフォルトが定義されます。デフォルト値を上書きする場合、適切な値を指定するのみですみます。構成値は必須ではなく、このルールの例外です。これは、例外による構成と呼ばれます。

エンティティの構成

エンティティのアイデンティティ、およびエンティティのロック技術や順序生成を構成できます。

基本プロパティ・マッピングの宣言

シンプルJavaタイプは、エンティティの即時状態の一部としてそのフィールドまたはプロパティにマップされます。シンプルJavaタイプのマッピングは、基本マッピングと呼ばれます。デフォルトでは、TopLink永続性プロバイダにより、シンプル・タイプの基本マッピングは自動的に構成されます。

関連のマッピング

TopLink永続性プロバイダでは、関連を明示的にマップする必要があります。このような注釈を@OnetoOne、@ManytoOne、@OnetoMany、@ManytoMany、@Mapkeyおよび@Orderbyとして使用して、データベースによる関連の実装方法の微調整を行うエンティティ関連のタイプおよび特性を指定します。

継承のマッピング

デフォルトでは、TopLink永続性プロバイダでは、すべての永続性フィールドが単一のエンティティ・クラスによって定義されることが想定されます。エンティティ・クラスによって1つ以上のスーパークラスから一部またはすべての永続フィールドが継承される場合、@Inheritance、@MappedSuperclass、@DiscriminatorColumnおよび@DiscriminatorValue注釈を使用します。

埋込みオブジェクトのマッピング

埋込みオブジェクトには、独自の永続アイデンティティはありません。これは、そのアイデンティティとしてエンティティに依存します。デフォルトでは、TopLink永続性プロバイダでは、すべてのエンティティがそれ自体の表にマップされることが想定されます。他のエンティティが所有するエンティティのこの動作を上書きするには、次の注釈を使用します。

- @Embeddable

- @Embedded

- @AttributeOverride

- @AttributeOverrides

- @AssociationOverride

- @AssociationOverrides

13.2.1 JPA永続性ディスクリプタ(persistence.xml)の作成および構成方法

永続性構成ファイル(persistence.xml)を使用して、エンティティをパッケージ化します。

永続性構成を作成するには、次のようにします。

1. 「ファイル」→「新規」の順に選択します。

2. 「カテゴリ」リストで、「ビジネス層」→「TopLink/JPA」を選択します。

3. 「項目」リストで、「JPA永続性ディスクリプタ」を選択します。

4. 「OK」をクリックします。
「新規のJPA永続性ディスクリプタ」ダイアログが表示されます。

5. 各フィールドを完了し、新規のJPA永続性ディスクリプタ・ファイル(persistence.xml)のデフォルトの永続性ユニットを作成し、「OK」をクリックします。
例13-1に、永続性構成の例を示します。

例13-1 永続性構成(persistence.xml)の例

<?xml version="1.0" encoding="windows-1252" ?>
<persistence xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"
version="1.0" xmlns="http://java.sun.com/xml/ns/persistence">
<persistence-unit name="myPersistenceUnit">
<properties>
<property name="toplink.target-database" value="Oracle11g"/>
<property name="toplink.target-server" value="WebLogic_10"/>
</properties>
</persistence-unit>
<persistence-unit name="myPersitenceUnitName">
...
</persistence-unit>
</persistence>

永続性構成(persistence.xml)ファイルを構成するには、次のようにします。

1. アプリケーション・ナビゲータで「persistence.xml」ノードを選択します。

2. 「構造」ウィンドウで、「JPA永続性ディスクリプタ」を選択します。

3. 「JPA永続性ディスクリプタ」(persistence.xml)ページで「一般」および「メタデータ・プリファレンス」タブを完了します。

13.2.2 永続性ユニットの作成方法

永続性ユニットを作成するには、次のようにします。

1. アプリケーション・ナビゲータまたは「構造」ウィンドウで、永続性構成ファイル(persistence.xml)をダブルクリックします。

2. 「一般」ページで、「新規の永続性ユニットの作成」をクリックし、新規の永続性ユニットを作成します。

3. 「新規の永続性ユニット」ダイアログで各フィールドを完了します。

4. 「メタデータ・プリファレンス」ページで、新規マッピング・メタデータを永続化する方法を指定します。注釈またはJPAマッピング・ディスクリプタを指定できます。この選択を行うには、少なくとも1つのorm.xmlマッピング・ディスクリプタ・ファイルを最初に作成する必要があります。(第13.2.4項「JPAディスクリプタの作成方法」を参照。)
例13-2に、永続性ユニットの例を示します。

例13-2 永続性ユニットの例

...
<persistence-unit name="myPersitenceUnitName"
transaction-type="RESOURCE_LOCAL">
<mapping-file>META-INF/orm.xml</mapping-file>
<exclude-unlisted-classes/>
<properties>
<property name="eclipselink.jdbc.driver"
value="oracle.jdbc.OracleDriver"/>
<property name="eclipselink.jdbc.url"
value="jdbc:oracle:thin:@localhost:1521:XE"/>
<property name="eclipselink.jdbc.user" value="scott"/>
<property name="eclipselink.jdbc.password"
value="3E20F8982C53F4ABA825E30206EC8ADE"/>
<property name="eclipselink.target-database" value="Oracle11g"/>
<property name="eclipselink.logging.level" value="FINER"/>
<property name="eclipselink.jdbc.native-sql" value="true"/>
<property name="eclipselink.target-server" value="WebLogic_10"/>
</properties>
</persistence-unit>
...

13.2.3 永続性ユニットの構成方法

「永続性ユニット」ページ(最初にアプリケーション・ナビゲータでpersistence.xmlを選択してから「構造」ビューでJPAディスクリプタを展開することによってアクセス)のタブを使用して、永続性ユニットを構成できます。

永続性ユニットの構成には、次の構成のような多くのステップが含まれます。

- 一般情報

- 接続情報

- TopLink情報

- スキーマ生成情報

- プロパティ

- メタデータ情報

JPA永続性ユニットの一般情報を構成するには、次のようにします。

1. アプリケーション・ナビゲータでJPA永続性ディスクリプタ(persistence.xml)を選択します。

2. 「構造」ウィンドウで永続性ユニットを選択します。
「永続性ユニット」ページが表示されます。

3. 「一般」タブでフィールドを完了し、永続性ユニットがアプリケーション・サーバーおよびデータベースに接続する方法を指定します。

JPA永続性ユニットの接続情報を構成するには、次のようにします。

1. アプリケーション・ナビゲータでJPA永続性ディスクリプタ(persistence.xml)を選択します。

2. 「構造」ウィンドウで永続性ユニットを選択します。
「永続性ユニット」ページが表示されます。

3. 「接続」タブでフィールドを完了し、永続性プロバイダを選択し、一般プロパティ(JPAマッピング・ディスクリプタ、Javaアーカイブおよびマップされたクラスなど)を構成します。

JPA永続性ユニットに関するTopLinkセッション固有の情報を構成するには、次のようにします。

1. アプリケーション・ナビゲータでJPA永続性ディスクリプタ(persistence.xml)を選択します。

2. 「構造」ウィンドウで永続性ユニットを選択します。
「永続性ユニット」ページが表示されます。

3. 「TopLinkのカスタマイズ」タブでフィールドを完了し、永続性ユニットに関するTopLink固有の情報を指定します。

DDL生成オプションを構成するには、次のようにします。

ほとんどのJPA永続性プロバイダではこのサポートが提供されていますが、これらのオプションはTopLink固有のものです。

1. アプリケーション・ナビゲータでJPA永続性ディスクリプタ(persistence.xml)を選択します。

2. 「構造」ウィンドウで永続性ユニットを選択します。
「永続性ユニット」ページが表示されます。

3. 「スキーマ生成」タブでフィールドを完了し、TopLinkでDDLスクリプトを生成する方法を指定します。

永続性ユニットに関するTopLink固有でないプロパティを構成するには、次のようにします。

1. アプリケーション・ナビゲータでJPA永続性ディスクリプタ(persistence.xml)を選択します。

2. 「構造」ウィンドウで永続性ユニットを選択します。
「永続性ユニット」ページが表示されます。

3. 「プロパティ」タブでフィールドを完了し、TopLink固有でない一般プロパティを指定します。

永続性ユニットのメタデータ上書きを構成するには、次のようにします。

1. アプリケーション・ナビゲータでJPA永続性ディスクリプタ(persistence.xml)を選択します。

2. 「構造」ウィンドウで永続性ユニットを選択します。
「永続性ユニット」ページが表示されます。

3. 「メタデータ・プリファレンス」タブでフィールドを完了し、マッピング・ディスクリプタに関する情報を指定します。
このタブが使用可能なのは、永続性ユニットにJPAマッピング・ディスクリプタが含まれる場合のみです。

13.2.4 JPAディスクリプタの作成方法

JPAマッピング・ディスクリプタは、注釈の代替手段として使用されます。JPAマッピング・ディスクリプタとして追加する情報により、Java注釈が上書きされます。

新規のJPAマッピング・ディスクリプタを作成するには、次のようにします。

1. アプリケーション・ナビゲータで永続性構成(persistence.xml)を選択します。

2. 「一般」タブを選択します。

3. 「JPAマッピング・ディスクリプタ」領域で、「新規のJPAマッピング・ディスクリプタの作成」ボタンをクリックします。

4. ダイアログのフィールドを完了し、「OK」をクリックします。
マッピング・ディスクリプタ(orm.xml)がプロジェクトに追加されます。

5. ORM (orm.xml)ページでJPAディスクリプタごとに次のタブを完了します。

- 一般

- 永続性ユニットのデフォルト

- ジェネレータ

- 問合せ

JPAマッピング・ディスクリプタの一般情報を構成するには、次のようにします。

1. アプリケーション・ナビゲータでJPAマッピング・ディスクリプタ(orm.xml)を選択します。

2. 「構造」ウィンドウでディスクリプタを選択します。
ORM (orm.xml)ページが表示されます。

3. 「一般」タブでフィールドを完了し、永続性プロバイダを選択し、一般プロパティ(マップされたクラス、開発データベースおよび他のデフォルトなど)を構成します。

13.2.4.1 永続性ユニットのデフォルトの構成方法

このマッピング・ディスクリプタが含まれる永続性ユニットおよび関連エンティティに適用される設定を構成できます。これらの値は、永続性ユニット・レベルの任意の構成設定によって上書きされます。

永続性ユニットのデフォルトを構成するには、次のようにします。

1. アプリケーション・ナビゲータでJPAマッピング・ディスクリプタ(orm.xml)を選択します。

2. 「構造」ウィンドウでディスクリプタを選択します。
ORM (orm.xml)ページが表示されます。

3. 「永続性ユニットのデフォルト」タブでフィールドを完了し、アクセス・タイプ、エンティティ・リスナーおよび他のデフォルトを構成します。

13.2.4.2 ジェネレータの構成方法

このマッピング・ディスクリプタによって使用されるジェネレータを定義できます。

ジェネレータを構成するには、次のようにします。

1. アプリケーション・ナビゲータでJPAマッピング・ディスクリプタ(orm.xml)を選択します。

2. 「構造」ウィンドウでディスクリプタを選択します。
ORM (orm.xml)ページが表示されます。

3. 「ジェネレータ」タブでフィールドを完了し、データベース順序および表ジェネレータを構成します。

13.2.4.3 問合せの構成方法

関連する永続性ユニットで使用するためにこのマッピング・ディスクリプタでJPQLおよびネイティブ問合せを定義できます。

問合せを構成するには、次のようにします。

1. アプリケーション・ナビゲータでJPAマッピング・ディスクリプタ(orm.xml)を選択します。

2. 「構造」ウィンドウでディスクリプタを選択します。
ORM (orm.xml)ページが表示されます。

13.2.5 JPAマッピングの使用

Oracle TopLinkには、完全なJPA 2.0準拠のJPA実装が用意されています。これは、すべての必須機能、多くのオプション機能、および一部の追加機能に完全に準拠しています。

TopLinkは、EJB 3.0コンテナの内外でのデプロイメントをサポートしています。これには、Webコンテナ、他のEJB 3.0以外のJava EEコンテナ、およびJava SE環境が含まれます。

TopLinkは、プラガブル永続性機能を介して、任意のEJB 3.0準拠コンテナで永続性プロバイダとして機能します。

13.2.6 TopLink拡張機能の使用

Java Enterprise Edition 5 (Java EE 5) EJB 3.0仕様の一部であるJava永続性API (JPA)では、Javaの永続性が大幅に簡略化されています。このAPIには、オブジェクト・リレーショナル・マッピング・アプローチが用意されています。このアプローチを使用すると、Java EE 5アプリケーション・サーバーの内部とJava Standard Edition (Java SE) 5アプリケーションのEJBコンテナの外部で動作する標準的で移植可能な方法で、Javaオブジェクトをリレーショナル・データベース表にマッピングする方法を宣言的に定義できます。

TopLink JPAは、JPA仕様による定義内容に対して拡張機能を提供します。これらの拡張機能は、永続性ユニット・プロパティ、問合せヒント、注釈、TopLink独自のXMLメタデータおよびカスタムAPIの形式で提供されます。

13.3 TopLinkリレーショナル・プロジェクトの開発

TopLinkエディタは、JDBCを使用してアクセスされる従来型のリレーショナル・データベースにJavaオブジェクトをマップするリレーショナル・プロジェクトの作成を完全にサポートします。従来のリレーショナル・データベース、またはオブジェクト記憶域に特化されたデータ型をサポートするオブジェクト・リレーショナル・データベース(どちらのデータベースも、JDBCを使用してアクセスします)に対するJavaオブジェクトのトランザクション永続性を可能にするために、TopLinkリレーショナル・プロジェクトを使用します。

オブジェクト・リレーショナル・データベースに対するリレーショナル・プロジェクトを作成するには、Javaコードを使用してプロジェクトを作成する必要があります。オブジェクト・ストレージ用に特化されたデータ・タイプをサポートする、JDBCを使用してアクセスされるオブジェクト・リレーショナル・データベース( Oracle Databaseなど)に対するJavaオブジェクトのトランザクション永続性を可能にする、リレーショナル・プロジェクトを作成できます。

13.3.1 リレーショナル・プロジェクトおよびオブジェクト・マップの作成方法

オブジェクト・リレーショナル・データベースに対するリレーショナル・プロジェクトを作成するには、Javaコードを使用してプロジェクトを作成する必要があります。オブジェクト・ストレージ用に特化されたデータ・タイプをサポートする、JDBCを使用してアクセスされるオブジェクト・リレーショナル・データベース( Oracle Databaseなど)に対するJavaオブジェクトのトランザクション永続性を可能にする、リレーショナル・プロジェクトを作成できます。

新規リレーショナル・プロジェクトを作成するには、次のようにします。

1. 「ファイル」→「新規」の順に選択します。

2. 「カテゴリ」リストで、「一般」→「プロジェクト」を選択します。

3. 「項目」リストで、「TopLinkプロジェクト」を選択します。

4. 「OK」をクリックします。
「新規TopLink対応プロジェクト」ダイアログが表示されます。

5. ダイアログでフィールドを完了し、プロジェクト名、プロジェクトの場所、およびTopLinkマップを指定します。

6. 「データソース」領域で、「データベース」を選択し、特定のデータベース情報を指定します。

7. 「OK」をクリックします。
TopLinkマップおよびTopLinkセッション構成ファイル(sessions.xml)が含まれる新規プロジェクトが作成されます。

リレーショナル・プロジェクトの新規TopLinkオブジェクト・マップを作成するには、次のようにします。

1. 「ファイル」→「新規」の順に選択します。

2. 「カテゴリ」リストで、「ビジネス層」→「TopLink/JPA」を選択します。

3. 「項目」リストで、「TopLinkオブジェクト・マップ」を選択します。

4. 「OK」をクリックします。
「新規TopLinkオブジェクト・マップ」ダイアログが表示されます。

5. ダイアログでフィールドを完了し、TopLinkマップを指定します。

6. 「データソース」領域で、「データベース」を選択し、特定のデータベース情報を指定します。

7. 「OK」をクリックします。
TopLinkマップおよびTopLinkセッション構成ファイル(sessions.xml)が含まれる新規プロジェクトが作成されます。

13.3.2 リレーショナル・ディスクリプタの作成方法

リレーショナル・ディスクリプタには、リレーショナル・データベース内の表にマップするJavaオブジェクトを記述します。リレーショナル・プロジェクトでは、ディスクリプタをクラス・ディスクリプタまたは集約ディスクリプタとして指定できます。

クラス・ディスクリプタは任意の永続オブジェクトに適用できますが、集約オブジェクトには適用できません。クラス・ディスクリプタを使用すると、集約コレクション・マッピングおよび集約オブジェクト・マッピングを除く任意のリレーショナル・マッピングを構成できます。

集約オブジェクトは、所有オブジェクトに厳密に依存するオブジェクトです。集約ディスクリプタでは、表、主キー、または多くの標準ディスクリプタ・オプションは所有ディスクリプタから継承されるため、これらは定義されません。集約マッピングを構成し、ターゲット・オブジェクト内のデータ・メンバーを、ソース・オブジェクトの基礎となるデータベース表のフィールドと関連付けるには、ターゲット・オブジェクトのディスクリプタを集約として指定する必要があります。

ディスクリプタの継承は集約として構成できますが、この場合、継承ツリー内のすべてのディスクリプタが集約である必要があります。集約ディスクリプタとクラス・ディスクリプタは、同じ継承ツリーに置くことはできません。

クラス・ディスクリプタを集約ディスクリプタに変更したり、リレーショナル・ディスクリプタから集約指定を削除してデフォルトのタイプに戻すこともできます。詳細は、第13.3.3項「リレーショナル・ディスクリプタの構成方法」を参照してください。

注意:

クラス・ディスクリプタを集約ディスクリプタに変更する場合、ディスクリプタの既存の情報は永久的に失われます。ディスクリプタをクラス・ディスクリプタに戻す場合、これを再構成する必要があります。

新規TopLinkディスクリプタを作成するには、次のようにします。

1. アプリケーション・ナビゲータでTopLinkマップを右クリックし、「ディスクリプタの追加または削除」を選択します。

2. TopLinkディスクリプタの作成元のパッケージおよびクラスを選択し、「OK」をクリックします。
「構造」ウィンドウでTopLinkマップにディスクリプタが追加されます。

13.3.3 リレーショナル・ディスクリプタの構成方法

リレーショナル・ディスクリプタはクラス・タイプまたは集約タイプとして構成できます。デフォルトでは、Javaクラスをリレーショナル・プロジェクトに追加すると、このためのリレーショナル・クラス・ディスクリプタが自動的に作成されます。

クラス・ディスクリプタは集約ディスクリプタに変更できます。

TopLinkリレーショナル・クラス・ディスクリプタを集約ディスクリプタに構成するには、次のようにします。

1. アプリケーション・ナビゲータでTopLinkマップを選択します。

2. 「構造」ウィンドウでディスクリプタを右クリックし、「ディスクリプタ・タイプ」サブメニューで「集約」を選択します。
これで、選択したディスクリプタが集約ディスクリプタになります。

3. 集約ディスクリプタをクラス・ディスクリプタに変換するには、ディスクリプタを右クリックし、「ディスクリプタ・タイプ」サブメニューで「クラス」を選択します。

13.4 TopLink XMLプロジェクトの開発

XMLプロジェクトを使用すると、JavaオブジェクトからXMLへのマッピングを制御する注釈を定義するJava Architecture for XML Binding (JAXB)を使用して、JavaオブジェクトとXML文書間で非トランザクション型の変換を行うことができます。

TopLinkランタイムは、1つ以上のXMLスキーマに基づいてXMLデータ変換を行います。XMLプロジェクトでは、TopLinkエディタが配布XMLのスキーマを直接参照し、指定したスキーマに関して構成されたマッピングをエクスポートします。

TopLinkは、JAXBの上部に追加の機能レイヤーを提供します。特に、TopLinkには、JAXB固有のファイルとTopLink固有のファイルの両方を生成するTopLink JAXBコンパイラが用意されています。

JAXBコンパイラは、XSD内の名前属性のコンテンツ、要素または実装に従って名前が付けられた実装クラスを生成します。生成された実装クラスは、各JAXBプロパティのプライベート属性を持つシンプル・ドメイン・クラスです。public getおよびpublic setメソッドは、属性値を戻すか設定します。

JAXBコンパイラは、TopLinkプロジェクト・ファイル、session.xmlファイル、およびTopLinkプロジェクトXMLファイルを生成します。任意の実装クラスに、型保証列挙へのマッピングが含まれる場合、TopLink JAXBコンパイラは、DescriptorAfterLoadsという名前の単一クラスを生成します。

TopLinkは、実装クラスを生成するために使用されたXMLスキーマに対して、完全なオブジェクト・ツリーとサブツリーの両方を検証できます。さらに、TopLinkは、オブジェクトの実装クラスを生成するために使用されたスキーマに対して、ルート・オブジェクト(XML文書のルート要素に対応するオブジェクト)と非ルート・オブジェクトの両方を検証できます。

JAXBは、標準JavaオブジェクトとXMLの間の変換用APIを提供します。JAXBは、JavaオブジェクトからXMLへのマッピングを制御する注釈を定義します。詳細は、http://www.oracle.com/technetwork/java/index-jsp-137051.htmlを参照してください。

JAXBは、TopLinkがオブジェクトのセットをXMLにマーシャリングしたりXML文書をオブジェクトにアンマーシャリングするために使用するマッピングのデフォルト・セットも定義します。TopLinkは、JAXBの上部に追加の機能レイヤーを提供します。このレイヤーにより、JAXBオブジェクト・モデルを再コンパイルしなくても、既存のオブジェクト・モデルからTopLinkマッピングを作成し、それを引き続き操作できるようになります。

13.4.1 XMLプロジェクトの作成方法

新規XMLプロジェクトを作成するには、次のようにします。

1. 「ファイル」→「新規」の順に選択します。

2. 「カテゴリ」リストで、「一般」→「プロパティ」→「TopLink」を選択します。

3. 「項目」リストで、「TopLinkプロジェクト」を選択します。

4. 「OK」をクリックします。
新規TopLink対応マップ・ダイアログが表示されます。

5. ダイアログでフィールドを完了し、プロジェクト名、プロジェクトの場所、およびTopLinkマップを指定します。

6. 「データソース」領域で、「データベース」を選択し、特定のデータベース情報を指定します。

7. 「OK」をクリックします。
TopLinkマップおよびTopLinkセッション構成ファイル(sessions.xml)が追加されます。

13.4.2 XMLオブジェクト・マップの作成方法

新規TopLinkオブジェクト・マップを作成するには、次のようにします。

1. 「ファイル」→「新規」の順に選択します。

2. 「カテゴリ」リストで、「ビジネス層」→「TopLink/JPA」を選択します。

3. 「項目」リストで、「TopLinkオブジェクト・マップ」を選択します。

4. 「OK」をクリックします。
新規TopLink対応マップ・ダイアログが表示されます。

5. ダイアログでフィールドを完了し、プロジェクト名、プロジェクトの場所、およびTopLinkマップを指定します。

6. 「データソース」領域で、「XML」を選択します。

7. 「OK」をクリックします。
TopLinkマップおよびTopLinkセッション構成ファイル(sessions.xml)が追加されます。

13.4.3 XMLディスクリプタの作成方法

XMLプロジェクトの新規TopLinkディスクリプタを作成するには、次のようにします。

1. アプリケーション・ナビゲータでTopLinkマップを右クリックし、「ディスクリプタの追加または削除」を選択します。

2. TopLinkディスクリプタの作成元のパッケージおよびクラスを選択し、「OK」をクリックします。
「構造」ウィンドウでTopLink要素にディスクリプタが追加されます。

3. 「XMLディスクリプタ」ページでフィールドを完了し、ディスクリプタを構成します。

13.4.4 XMLスキーマの追加方法

既存のデータ・モデル(XMLスキーマ文書)はあるが、対応するオブジェクト・モデル(ドメイン・オブジェクトに対するJavaクラス)がない場合は、次の手順を使用してTopLinkプロジェクトを作成し、対応するオブジェクト・モデルを自動生成します。

XMLスキーマを追加するには、次のようにします。

1. アプリケーション・ナビゲータでTopLinkマップを選択します。

2. 「構造」ウィンドウでスキーマ要素を右クリックし、「スキーマのインポート」を選択します。

3. ダイアログでフィールドを完了し、インポートするXMLスキーマを指定します。

4. 「OK」をクリックします。
TopLinkマップにスキーマ(tlmap)が追加されます。

TopLink JAXBコンパイラでは、必要なJAXBファイルおよびTopLinkファイルがともにXMLスキーマ(XSD)文書から自動生成されるため、TopLinkによるJAXBアプリケーション開発が容易になります。生成後は、JAXBオブジェクト・モデルを再コンパイルしなくても、XMLマッピングを微調整できます。

13.5 TopLink EISプロジェクトの開発

Java EE Connector Architecture (JCA)アダプタおよびEISレコードを使用してアクセスされる非リレーショナル・データソースに対して、Javaオブジェクトのトランザクション永続性を可能にするTopLink EISプロジェクトを使用します。

EISプロジェクトを使用して、レガシーまたは非リレーショナルのデータ・ソースとTopLinkを統合することをお薦めします。TopLinkは、TopLinkマッピングを使用してJ2Cを介した、JavaオブジェクトからEISのマップ済レコード、索引付きレコードおよびXMLレコードへのマッピングをサポートしています。J2Cにより、非リレーショナルEISにアクセスするためのCommon Client Interface (CCI) APIが提供されます。このAPIにより、JDBCによってリレーショナル・データ・ソースへのアクセスに提供されるインタフェースに類似した、非リレーショナル・データ・ソースへのインタフェースが実現されます。

EISには、レガシー・データ・ソース、エンタープライズ・アプリケーション、レガシー・アプリケーションおよびその他の情報システムが含まれます。これらのシステムにはCustomer Information Control System (CICS)、Virtual Storage Access Method (VSAM)、Information Management System (IMS)、ADABASEデータベースおよびフラット・ファイルなどのソースが含まれます。EISプロジェクトを使用して、レガシーまたは非リレーショナルのデータ・ソースとTopLinkを統合することをお薦めします。EISデータ・ソースにアクセスするその他の方法には、次のものがあります。

- EISシステムがリレーショナル・データベースであるかのようにEISシステムに接続できる特別なJDBCドライバを使用します。これらのドライバとともにTopLinkリレーショナル・プロジェクトを使用できます。

- Oracleデータベースなどのリレーショナル・データベースにあるEISデータとリンクまたは統合します。

- プロプラエタリのAPIを使用してEISシステムにアクセスします。この場合、JCA CCIインタフェースでAPIをラップして、TopLink EISプロジェクトとともに使用できるようにすることもできます。

13.5.1 EISプロジェクトの作成方法

Java EE Connector Architecture (JCA)アダプタおよびEISレコードを使用してアクセスされる非リレーショナル・データソースに対して、Javaオブジェクトのトランザクション永続性を可能にするEISプロジェクトを使用します。

EISプロジェクトを作成するには、次のようにします。

1. 「ファイル」→「新規」の順に選択します。

2. 「カテゴリ」リストで、「一般」→「プロジェクト」を選択します。

3. 「項目」リストで、「TopLinkプロジェクト」を選択します。

4. 「OK」をクリックします。

5. ダイアログでフィールドを完了し、プロジェクト名、プロジェクトの場所、およびTopLinkマップを指定します。

6. 「データソース」領域で、「EIS」を選択し、特定のEISプラットフォームを指定します。

7. 「OK」をクリックします。
TopLinkマップおよびTopLinkセッション構成ファイル(sessions.xml)が含まれる新規プロジェクトが作成されます。

13.5.2 EISオブジェクト・マップの作成方法

EISマッピングでは、オブジェクトのデータ・メンバーをオブジェクトのディスクリプタで定義されたEISレコード形式に変換します。

EISプロジェクトの新規TopLinkオブジェクト・マップを作成するには、次のようにします。

1. 「ファイル」→「新規」の順に選択します。

2. 「カテゴリ」リストで、「ビジネス層」→「TopLink/JPA」を選択します。

3. 「項目」リストで、「TopLinkオブジェクト・マップ」を選択します。

4. 「OK」をクリックします。

5. ダイアログでフィールドを完了し、TopLinkマップを指定します。

6. 「データソース」領域で、「EIS」を選択し、特定のEISプラットフォームを指定します。

7. 「OK」をクリックします。
TopLinkマップがプロジェクトに追加されます。

13.5.3 EISディスクリプタの作成方法

EISディスクリプタには、JCAアダプタを介してEISデータ・ソースにマップするJavaオブジェクトを記述します。

EISディスクリプタを作成するには、次のようにします。

1. 「構造」ウィンドウでTopLinkマップを選択します。

2. 「ディスクリプタの追加または選択済TopLinkマップからの削除を行います」ボタンをクリックします。

3. EISディスクリプタの作成元のクラスを選択し、「OK」をクリックします。
「構造」ウィンドウにEISディスクリプタが追加されます。

4. EISディスクリプタのプロパティ・タブを完了します。

13.5.4 EISデータソースの使用

各EISプロジェクトに対して、これから使用するJCAデータ・ソース・プラットフォームを次の中から指定する必要があります。

- Oracle AQ

- Attunity Connect

- IBM MQSeries

このプラットフォーム構成は、セッション・ログインによりオーバーライドされます(構成されている場合)。

13.6 TopLinkセッションの開発

各TopLinkマップはTopLinkセッションに属します。セッションとは、アプリケーションがTopLink機能へのアクセスに使用するファサードです。セッションにより、データ・ソース・プラットフォーム情報、データ・ソース・ログイン情報および特定のアプリケーションのマッピング・メタデータが関連付けられます。マッピング・メタデータは、各種セッションを定義することにより、様々なアプリケーションで再利用できます。

TopLinkセッションは、TopLinkランタイムにアクセスするための主要手段となります。TopLinkセッションを使用すると、アプリケーションは永続オブジェクトが含まれるデータソースに対して永続データ操作を実行できます。セッションにより、データ・ソース・プラットフォーム情報、データ・ソース・ログイン情報および特定のアプリケーションのマッピング・メタデータが関連付けられます。マッピング・メタデータは、各種セッションを定義することにより、様々なアプリケーションで再利用できます。

TopLinkには様々なセッション・タイプが用意されており、それぞれ異なる設計要件およびデータ・アクセス方法に向けて最適化されています。同一のアプリケーション内で様々なセッション・タイプを使用することができます。

TopLinkエディタには、次のTopLinkセッションがあります。

- サーバー・セッションおよびクライアント・セッション - サーバー・セッションでは、データベースやEISの各プラットフォームを使用する3層アーキテクチャの複数クライアント用に、単一のデータソース(共有オブジェクトや接続プールなど)に対するセッション管理を提供します。これは最も柔軟かつスケーラブルで、最もよく使用されるセッションです。実行時にサーバー・セッションからクライアント・セッションを取得して、クライアントごとに単一データ・ソースにアクセスします。

- データベース・セッション - データベース・セッションは、1つの接続で1ユーザーのすべてのデータソース・リクエストを処理する単純なスタンドアロン・アプリケーションでのクライアント・アプリケーションに、単一のデータソース接続を提供します。

- セッション・ブローカおよびクライアント・セッション - セッション・ブローカは、2つ以上のサーバー・セッションを集約することで、複数クライアントの複数データソースに対するセッション管理を提供します(データベース・セッションで使用することもできます)。
実行時にセッション・ブローカからクライアント・セッションを取得して、クライアントごとにセッション・ブローカによって管理されているすべてのデータ・ソースにアクセスします。

他のセッション・タイプは、Javaコードで直接構成できます。セッション・タイプの詳細は、『Oracle Fusion Middleware Oracle TopLink開発者ガイド』を参照してください。

13.6.1 新規セッション構成ファイルの作成方法

各TopLinkセッション構成(sessions.xmlファイル)には、複数のセッションとセッション・ブローカを含めることができます。また、含めたすべてのセッションに適用される各セッション構成のクラスパスを指定できます。

新規セッション構成ファイルを作成するには、次のようにします。

1. 「ファイル」→「新規」の順に選択します。

2. 「カテゴリ」リストで、「ビジネス層」→「TopLink/JPA」を選択します。

3. 「項目」リストで、「TopLinkセッション構成」を選択します。

4. 「OK」をクリックします。
「TopLinkセッション構成の作成」ダイアログが表示されます。

5. ダイアログの各フィールドを完了し、「OK」をクリックします。
アプリケーション・ナビゲータで、sessions.xmlファイルが作成元のフォルダに追加され、デフォルトのセッションが「構造」ビューのセッション構成ノードに追加されます。

13.6.2 セッションの作成方法

TopLinkセッションは、TopLinkランタイムにアクセスするための主要手段となります。TopLinkセッションは、アプリケーションが永続オブジェクトが含まれるデータ・ソースに対してあらゆる永続データ操作を実行するための手段となります。

セッションにより、データ・ソース・プラットフォーム情報、データ・ソース・ログイン情報および特定のアプリケーションのマッピング・メタデータが関連付けられます。マッピング・メタデータは、各種セッションを定義することにより、様々なアプリケーションで再利用できます。

新規TopLinkセッションを作成するには、次のようにします。

1. アプリケーション・ナビゲータで、TopLinkセッション構成ファイルを右クリックし、「開く」を選択します。
TopLinkエディタにTopLinkセッション構成ファイルが表示され、このセッション構成ファイル内の既存のセッションおよびセッション・ブローカが表示されます。

2. 「新規セッションの作成」をクリックします。

3. 「新規セッション」ダイアログの各フィールドを完了し、「OK」をクリックします。
「構造」ビューでセッション構成ノードに新規セッションが追加されます。

13.6.3 実行時におけるセッションの取得

セッションの作成および構成後は、実行時にTopLinkセッション・マネージャを使用してセッション・インスタンスを取得できます。TopLinkセッション・マネージャを使用すると、単一のエンティティの下で保持される一連のセッションを構築できます。セッション・マネージャは、静的ユーティリティ・クラスです。TopLinkのセッションをsessions.xmlファイルからロードし、名前によってセッションをメモリーにキャッシュし、各TopLinkセッションに対して1つのアクセス・ポイントを提供します。

セッション・マネージャには、2つの主な機能があります。すなわち、セッションのインスタンスを作成することと、各名前付きセッションの1つのインスタンスのみがセッション・マネージャの任意のインスタンスに対して存在することを保証することです。

セッション・マネージャでは、次のようにセッションをインスタンス化します。

- クライアント・アプリケーションが名前を使用してセッションを要求します。

- セッション・マネージャは、sessions.xmlファイル内のセッション名を検索します。セッション名が存在する場合、セッション・マネージャは、指定されたセッションをインスタンス化します。それ以外の場合は、例外が発生します。

- インスタンス化の後、セッションは、アプリケーションが停止されるまで実行可能です。

セッション・インスタンスの設定後は、それを使用して特別タスク用にセッションの追加タイプを取得できます。セッション・マネージャは、EJBアプリケーションでは特に便利です。Enterprise Beanがセッション・マネージャを取得でき、そこから目的のセッションを取得できるためです。

13.6.4 セッション・ブローカの作成方法

セッション・ブローカは、クライアント・アプリケーションが単一のTopLinkセッションで複数のデータベースに透過的にアクセスできるようにするメカニズムです。セッション・ブローカには、サーバー・セッションとデータベース・セッションの両方が含まれる場合があります。セッション・ブローカはサーバー・セッションと使用することをお薦めします。これは、サーバー・セッションが最もスケーラブルなセッション・タイプであるためです。

サーバー・セッションを指定してセッション・ブローカを作成、構成した後は、実行時にセッション・ブローカからクライアント・セッションを取得して、各クライアントについてセッション・ブローカによって管理されているすべてのデータ・ソースへの専用接続を提供できます。

新規セッション・ブローカを作成するには、次のようにします。

1. アプリケーション・ナビゲータで、セッション構成ファイル(sessions.xml)を開きます。
セッション構成がTopLinkエディタに表示されます。

2. 「新規セッション・ブローカの作成」をクリックします。

3. ダイアログの各フィールドを完了し、セッション・ブローカに追加するセッションを選択し、「OK」をクリックします。

13.6.5 データソース・ログインの作成方法

TopLinkセッション構成ファイル(sessions.xml)により、TopLinkマップ内で指定したすべてのログイン情報が上書きされます。リレーショナル・データベースまたはEISデータソースに対してデータソース・ログインを作成できます。

データソースを作成する手順は、次のとおりです。

1. アプリケーション・ナビゲータでTopLinkセッション構成(sessions.xml)を選択します。

2. sessions.xml「構造」ビューで「セッション」ノードを展開し、TopLinkセッションを選択します。
TopLinkセッション情報がTopLinkエディタに表示されます。

3. 「ログイン」タブを選択します。

4. 接続情報を完了します。

13.6.6 接続プールの作成方法

接続プールは、1つ以上のクライアントのかわりにデータソース接続の共有コレクション(プール)を作成および保持するサービスです。接続プールは、リクエストに基づいてプロセスに接続を提供し、プロセスが接続の使用を終了すると、接続をプールに返します。接続は、プールに返されると、他のプロセスで使用できます。

データ・ソースへの接続の確立には時間がかかるため、接続プールのこのような接続を再使用してパフォーマンスを向上できます。TopLinkは、接続プールを使用して、サーバーおよびクライアント・セッションで使用される接続を管理および共有します。単一のデータソースへの接続を再利用することにより、必要な接続数が減り、アプリケーションで多くのクライアントをサポートできるようになります。

新規接続プールを作成するには、次のようにします。

1. アプリケーション・ナビゲータでTopLinkセッション構成(sessions.xml)を選択します。

2. sessions.xml「構造」ウィンドウで「セッション」ノードを展開し、TopLinkセッションを選択します。

3. セッションを右クリックし、ポップアップ・メニューの「新規」→「名前付き接続プール」を選択します。

4. 接続プールの名前を入力し、「OK」をクリックします。
「構造」ウィンドウに接続プールが追加されます。

5. 新しく作成された接続プールを選択します。
そのプロパティが「エディタ」ウィンドウの「接続プール」ページに表示されます。

13.7 TopLinkアプリケーションの開発

Oracle TopLinkは、オブジェクトの永続性およびオブジェクト・トランスフォーメーションのための高度なフレームワークを提供します。開発やメンテナンスのコストを軽減し、エンタープライズ・アプリケーションの機能を向上させる開発ツールおよびランタイム機能が用意されています。

13.7.1 TopLinkキャッシュの使用

TopLinkキャッシュは、クラスと主キーの値に基づいて最近読み取られたり書き込まれたオブジェクトが格納される、インメモリー・リポジトリです。

TopLInkでは、次の目的でこのキャッシュが利用されます。

- 最近読み取られたり書き込まれたオブジェクトを保持し、メモリー内でそれらにアクセスしてデータベースへのアクセスを最小限にすることで、パフォーマンスを向上させます。

- ロックと分離レベルを管理します。

- オブジェクト・アイデンティティを管理します。

TopLinkでは、次の2種類のキャッシュが使用されます。

- セッション・キャッシュ - 特定のセッションにアタッチされたクライアントに対してサービスを提供する共有キャッシュ。クライアント・セッションがデータソースに対してオブジェクトの読取りや書込みを行うと、親サーバー・セッションのキャッシュにオブジェクトのコピーが保存され、このコピーがセッション内のその他すべてのプロセスからアクセスできるようになります。
TopLinkでは、オブジェクトが次の場所からセッション・キャッシュに追加されます。

- データ・ストア: 読取り操作が実行された場合。

- 作業ユニット・キャッシュ: 作業ユニットがトランザクションを正常にコミットした場合。

- 作業ユニット・キャッシュ - 作業ユニット内の操作にサービスを提供します。作業ユニット・キャッシュは、オブジェクトを保持してセッション・キャッシュから分離し、作業ユニットが変更内容をデータ・ソースにコミットした後、変更されたオブジェクトまたは新規オブジェクトをセッション・キャッシュに書き込みます。TopLinkは、作業ユニットがデータソースにコミットすると、セッション・キャッシュを更新します。

13.7.1.1 オブジェクト・アイデンティティ

TopLinkは、順序付けによって割り当てられる場合と割り当てられない場合がある、永続エンティティの主キー属性を使用して、キャッシュを介してオブジェクト・アイデンティティを保持します。オブジェクト・アイデンティティは、常に保持することをお薦めします。オブジェクト・アクティビティを無効化するのは、読取り専用オブジェクトの場合など、絶対に必要な場合のみにしてください。

13.7.1.2 問合せとキャッシュ

共有セッション・キャッシュに対して実行される問合せは、インメモリー問合せと呼ばれます。

デフォルトでは、主キーに基づいてシングル・オブジェクトを検索する問合せは、必要なオブジェクトをまずキャッシュから取得し、オブジェクトがキャッシュに存在しない場合にのみ、データ・ソースで検索を行います。その他すべての問合せタイプの場合は、デフォルトでデータベースを最初に検索します。特定の問合せを、メモリー内キャッシュ、データベース、その両方のうち、いずれに対して実行するかを指定できます。

13.7.1.3 失効したデータの処理

失効したデータは、データ・ソースにコミットされた最新バージョンでないオブジェクトをキャッシュした結果として発生します。

13.7.1.4 明示的な問合せのリフレッシュ

複数のオブジェクトが最新の状態である必要があるシステムの場合、分散キャッシュ・コーディネーションを行うほどの負荷をかけずに、これらのオブジェクトをデータベースから明示的にリフレッシュするよう指定できます。これには、次のようにします。

1. 必要なオブジェクトをリフレッシュする一連の問合せを構成します。

2. 適切なリフレッシュ・ポリシーを設定します。

3. 必要に応じて問合せを起動し、オブジェクトをリフレッシュします。

13.7.1.5キャッシュの無効化

キャッシュの無効化ポリシーを使用して、キャッシュされたオブジェクトが無効になる方法とタイミングを指定します。キャッシュ無効化の使用により、失効したデータがアプリケーションで使用されないようにします。特定の時刻にオブジェクトを無効化したり、オブジェクトが読み込まれてから指定した時間が経過したらオブジェクトを無効としてマークするようキャッシュを構成できます。または、オブジェクトを明示的にのみ無効化する無効化ポリシーを設定することもできます。無効化ポリシーを設定する場合、すべてのオブジェクトに適用するにはプロジェクト・レベルで構成し、特定のオブジェクトに適用するにはディスクリプタ・レベルで構成し、問合せから戻された結果に適用するには問合せレベルで構成します。

13.7.1.6 キャッシュ・コーディネーション

キャッシュ・コーディネーションでは、データソースへのアクセスを回避することでパフォーマンスが向上します。セッションのインスタンスが相互にオブジェクト変更をブロードキャストすることにより、各セッションのキャッシュが最新の状態に保たれるか、次回読み取るデータソースを基にオブジェクトを更新する必要があることが通知されるため、失効したデータも削減されます。また、キャッシュ・コーディネーションにより、分散環境でのオプティミスティック・ロック例外の数は減少し、アプリケーションで失敗するトランザクションや繰り返されるトランザクションの数も減少します。読取りベースであり、同じオブジェクトを定期的にリクエストおよび更新し、複数の分散セッションを持つ単一のJavaアプリケーションによって実行された変更があるアプリケーションに対してキャッシュ・コーディネーションを使用します。

キャッシュ・コーディネーションのかわりに、アイデンティティ・タイプ、キャッシュ無効化またはキャッシュ分離を使用してread-only、read-mostlyおよびwrite-mostlyクラスごとにTopLinkキャッシュをチューニングすることもできます。このチューニングは、キャッシュ・コーディネーションの前に実行できます。

13.7.1.7 キャッシュの分離

独立クライアント・セッションには、共有サーバー・セッション・キャッシュを無効化するメカニズムがあります。独立クラスとしてマークされたクラスは、すべてクライアント・セッションのライフ・サイクルを基準としてオブジェクトをキャッシュします。これらのクラスは、共有サーバー・セッション・キャッシュを使用しません。このメカニズムでは、キャッシュを一部のクラスに許可し、一部のクラスに禁止するようクラス単位で構成できるため、キャッシュの抑制に最適です。

13.7.1.8 キャッシュのロックとトランザクションの分離

TopLinkでは、デフォルトで、読取りまたは書込み操作中のキャッシュ・ロックを最小限に抑えるために同時実行性が最適化されます。非常に明確な理由があって変更する場合を除き、TopLinkのトランザクション分離構成はデフォルトのまま使用してください。

13.7.2 TopLinkキャッシュの構成方法

JDeveloperでは、特定のTopLinkマップに対してTopLinkキャッシュを構成できます。キャッシュ・オプションは、すべてのディスクリプタに対してグローバルに適用されます。マップ・レベルのキャッシュ構成を上書きするには、ディスクリプタ・レベルでキャッシュ構成を定義します。

TopLinkマップ・レベルでTopLinkキャッシュを構成するには、次のようにします。

1. アプリケーション・ナビゲータでTopLinkマップを選択します。

2. 「構造」ウィンドウで、TopLinkマップを選択します。

3. 「デフォルト」タブでキャッシュ・ファイルを完了します。

TopLinkキャッシュは、クラスと主キーの値に基づいて最近読み取られたり書き込まれたオブジェクトが格納される、インメモリー・リポジトリです。

ディスクリプタ・レベルでTopLinkキャッシュを構成するには、次のようにします。

1. アプリケーション・ナビゲータでTopLinkマップを選択します。

2. 「構造」ウィンドウで、TopLinkマップを選択します。

3. 「キャッシュ」タブでキャッシュ・ファイルを完了します。

13.7.3 問合せの使用

TopLinkを使用すると、リレーショナルや非リレーショナルのデータ・ソースに対して、Java EEおよびJava EE以外のアプリケーションの両方で問合せを使用して、永続オブジェクトまたはデータを作成、読取り、更新および削除できます。問合せの詳細は、『Oracle Fusion Middleware Oracle TopLink開発者ガイド』を参照してください。

データソースの問合せとは、データソースの内容に対する操作の実行、データソースの内容との相互作用を意味します。そのための手順は、次のとおりです。

- 問い合せるデータ・ソースのネイティブな構文で操作を定義します。

- 制御された方法で操作を適用します。

- 操作によって結果が返された場合は、それを管理します。

また、TopLinkでは、問合せがTopLinkキャッシュにどのような影響を与えるのかも考慮する必要があります。

13.7.3.1 TopLink問合せ言語

TopLinkを使用すると、次の問合せ言語のいずれかを使用して問合せを表現できます。

- SQL問合せ

- EJBQL問合せ

- JPQL問合せ

- XML問合せ

- EISインタラクション

- 例による問合せ

- TopLinkの式

13.7.3.2 TopLink問合せのタイプ

- 名前付き問合せ - 前に作成されて準備された場所であるディスクリプタのDescriptorQueryManagerまたはセッションに名前別に格納されるDatabaseQueryのインスタンス。その後、この問合せは、名前を使用して繰り返し実行することができます。

- コール問合せ - 作成した後、データのみに限定されたデータソース・アクションを実行するための特別なセッションAPIを使用して直接実行するか、DatabaseQueryのコンテキストで間接的に実行するコールのインスタンス。TopLinkは、カスタムSQL、ストアド・プロシージャおよびEISインタラクションに対するコール・インスタンスをサポートしています。

- ディスクリプタ問合せマネージャ - DescriptorQueryManagerでは、各基本データソース操作(作成、読取り、更新および削除)のデフォルトのDatabaseQueryを定義します。また、DatabaseQueryまたはそのコールのいずれかをカスタマイズするために使用できるAPIを提供します。

- EJB 2.n CMPファインダ - Enterprise Beanを戻すEnterprise Beanのホーム・インタフェースで定義される問合せ。JPAQLCall、EJBQLCall、JPA/EJB QLをとるコールを含め、任意のTopLink問合せタイプを使用してファインダを実装できます。

ほとんどの場合、特定の問合せ言語で問合せを直接構成できます。可能であれば、適切なコールを使用してDatabaseQueryを構成し、TopLink式を使用して選択基準を指定することをお薦めします。SQLで問合せを直接構成する方法が最も簡単な方法(つまり、簡単な操作またはアンマップ・データに対する操作)であるように思われますが、DatabaseQueryを使用した方法の場合、問合せをドメイン・オブジェクト・モデルに限定し、データソース・スキーマ実装の詳細に依存しなくてすむという大きな利点があります。

13.7.4 問合せの作成方法

問合せには、渡された引数に基づいて暗黙的に作成され、ワン・ステップで実行されるもの(たとえば、セッション問合せ)と、ユーザーが明示的に作成、構成および実行するもの(たとえば、データベース問合せ)があります。

問合せを作成するには:

1. アプリケーション・ナビゲータでTopLinkマップを選択します。

2. 「構造」ウィンドウでディスクリプタを選択します。

3. 「問合せ」タブで、目的の問合せを作成します。
「問合せ」タブを使用すると、TopLinkディスクリプタに関連する問合せを作成および管理できます。「名前付き問合せ」セクションで名前付き問合せを作成したり、「カスタム・コール」セクションでカスタム問合せを作成できます。

13.7.5 基本問合せAPIの使用

TopLink基本問合せAPIには、最も一般的に使用される次の問合せのサポートが含まれます。

- セッション問合せ

- DatabaseQuery問合せ

- 名前付き問合せ

- SQLコール

- EJBQLコール

- EISインタラクション

- コレクション問合せの結果

- レポート問合せの結果

13.7.6 詳細問合せAPIの使用

TopLink問合せAPIを使用すると、より詳細な次の問合せAPIコールおよび手法を使用することもできます。

- リダイレクト問合せ

- 履歴問合せ

- フェッチ・グループ

- 読取り専用問合せ

- インタフェース

- 継承階層

- その他の結合式

- EJBファインダ

- カーソルとストリームの問合せ結果

詳細な問合せAPIの詳細は、『Oracle Fusion Middleware Oracle TopLink開発者ガイド』を参照してください。

13.7.6.1 リダイレクト問合せ

リダイレクト問合せは、名前付き問合せで、問合せの実行制御をアプリケーションに委譲します。リダイレクト問合せを使用すると、問合せの実装をstaticメソッドとしてコードで定義できます。複雑な操作を実行する場合、問合せのリダイレクタをTopLinkの問合せフレームワークと組み合せることができます。

13.7.6.2 履歴問合せ

時間に関する問合せを作成するには、TopLinkで問合せに追加するAsOfClauseを指定します。AsOfClauseクラスは、履歴スキーマがタイムスタンプに基づいている場合に使用し、AsOfSCNClauseクラスは、履歴スキーマがデータベース・システムの変更数に基づいている場合に使用します。履歴セッションを取得する際にAsOfClauseを指定することにより、TopLinkですべての問合せに対して同じ句が追加されるようにするか、問合せごとにAsOfClauseを指定できます。

13.7.6.3 フェッチ・グループ

フェッチ・グループは、ReadObjectQueryまたはReadAllQueryとともに使用できます。問合せを実行すると、TopLinkによりフェッチ・グループ内の属性のみが取得されます。除外された属性のいずれかに関するgetterメソッドをコールすると、TopLinkでは、このサブセットから除外されたすべての属性をフェッチする問合せが自動的に実行されます。

13.7.6.4 読取り専用問合せ

データが読取り専用であることがわかっている場合は、問合せを読取り専用として指定することでパフォーマンスを向上できます。これにより、問合せによって返されるオブジェクトが不変であることがTopLinkに通知されます。

オブジェクト・レベルの読取り問合せを読取り専用として構成できます。このような問合せをUnitOfWorkのコンテキストで実行すると、読取り専用の未登録オブジェクトがTopLinkによって返されます。読取り専用オブジェクトは登録や変更の確認をする必要がないため、この方法で読取り専用データを問い合せると、パフォーマンスを向上できます。

13.7.6.5 インタフェース

インタフェースのディスクリプタを定義して問合せを有効にした場合、TopLinkではインタフェースに対する問合せが次のようにサポートされます。

- インタフェースのインプリメンタが1つしかない場合、問合せでは具象クラスのインスタンスが返されます。

- インタフェースのインプリメンタが複数ある場合、問合せでは実装するすべてのクラスのインスタンスが返されます。

13.7.6.6 継承階層

継承階層の一部であるクラスに対して問合せを行うと、セッションによりディスクリプタがチェックされ、次のようにクラスのタイプが特定されます。

- サブクラスを読み取るようにディスクリプタを構成(デフォルト構成)すると、問合せではクラスとそのサブクラスのインスタンスが返されます。

- サブクラスを読み取らないようにディスクリプタを構成すると、問合せでは問合せ対象となるクラスのインスタンスのみが返されます。サブクラスのインスタンスは返されません。

- サブクラスを外部結合するようにディスクリプタを構成すると、問合せではクラスとそのサブクラスのインスタンスが返されます。

- サブクラスを外部結合するようにディスクリプタを構成すると、問合せではクラスとそのサブクラスのインスタンスが返されます。

13.7.6.7 その他の結合式

あるクラスで実行する各問合せに自動的に式を追加するよう、問合せマネージャを設定することができます。たとえば、特定のクラスの有効なインスタンスに対してデータベースをフィルタ処理する式を追加できます。これは、次の目的で使用します。

- 論理的に削除されたオブジェクトをフィルタ処理する場合

- 2つの別々のクラスが継承を使用せずに単一の表を共有できるようにする場合

- オブジェクトの履歴バージョンをフィルタ処理する場合

13.7.6.8 EJBファインダ

TopLink問合せフレームワークを使用するエンティティBeanに対してファインダを作成するには、ファインダの定義、宣言および構成が必要です。事前定義されたファインダの場合、ファインダを明示的に作成する必要はありません。デフォルトのファインダの場合、ファインダのメソッドのみを作成する必要があります。

13.7.6.9 カーソルとストリームの問合せ結果

カーソルとストリームは、大きな結果セットを効率的に扱うことのできる関連メカニズムです。ストリームとはコレクションのビューであり、ファイル、デバイス、Vectorなどです。ストリームを使用すると、コレクションの要素に一度に1つずつ順にアクセスできます。これにより、1つのコレクションの全オブジェクトが同時にストリームに含まれることのないストリーム・クラスの実装が可能になります。

大きな結果セットは、収集して処理する際に、リソースを大量に消費します。パフォーマンスを向上させ、クライアントが返された結果をより確実に制御できるようにするには、カーソルまたはストリームを使用するようTopLink問合せを構成します。カーソルとストリームは、DataReadQueryおよびReadAllQueryのすべてのサブクラスでサポートされています。

13.7.7 TopLink式の作成方法

TopLinkの式を使用すると、ドメイン・オブジェクト・モデルに基づいて問合せの検索基準を指定できます。問合せを実行する際、TopLinkではこれらの検索基準を、使用しているプラットフォームに適した問合せ言語に変換します。

TopLinkは、式をサポートする次の2種類のパブリック・クラスを提供します。

- Expressionクラスは、単純な定数からブール・ロジックを伴う複雑な句まで、あらゆる式を表します。式の操作、グループ化および統合を行うことができます。

- ExpressionBuilderクラスは、新しい式を構成するためのファクトリです。選択基準は、DatabaseQueryのメソッドsetSelectionCriteriaを使用してExpressionとして指定したり、Expressionを取るファインダに指定できます。

通常、単純な式は次の部分で構成されています。

- 属性: 永続クラスの問合せキーまたはマップされた属性を表します。

- 演算子: GreaterThan、EqualまたはLikeなどのブール・ロジックを実装する式メソッドです。

- 定数または比較: オブジェクトの選択に使用される値を参照します。

名前付き問合せで使用する基本式を作成するには、次のようにします。

1. アプリケーション・ナビゲータでTopLinkマップを選択します。

2. 「構造」ウィンドウでディスクリプタを選択します。

3. 名前付き問合せを選択し、「選択基準」領域で式を編集します。

13.7.8 TopLinkトランザクションの概要

データベース・トランザクションは、単一操作として成功または失敗した一連の操作(作成、更新または削除)です。失敗したトランザクションは破棄されるかロールバックされ、データベースは元の状態のままにされます。トランザクションには、内部トランザクション(TopLinkによって提供されるもの)または外部トランザクション(アプリケーション・サーバーなどのアプリケーションの外部のソースによって提供されるもの)があります。

TopLinkでは、トランザクションは作業ユニット・オブジェクトに含まれます。作業ユニットをセッションから取得し、そのAPIを使用すると、直接、またはJava Transaction API (JTA)などのJava 2 Enterprise Edition (Java EE)アプリケーション・サーバー・トランザクション・コントローラを使用して、トランザクションを制御できます。

トランザクションがコミットされるたびに、データベースではデータに加えられたすべての変更のログが記録されます。トランザクション内の操作がすべて成功した場合は、データベースが変更されますが、トランザクションの一部が失敗した場合は、ログを使用して変更内容がロールバックされます。

トランザクションは、独自のコンテキスト(論理領域)の中で、他のトランザクションやデータベース操作から独立して実行されます。トランザクション・コンテキストには境界が設定されています。つまり、トランザクション・コンテキストは次のものを含む定義済の構造を持ちます。

- トランザクション内の操作が開始される開始ポイント。トランザクションは、このポイントで操作の実行を開始します。

- 操作が完了し、トランザクションが変更内容をデータベースに正式に反映しようとする、コミット・ポイント。

同じデータに対する同時(並列)トランザクションが相互作用できる度合いは、構成されているトランザクション分離のレベルによって決まります。ANSI/SQLでは、4つのレベルのデータベース・トランザクション分離が定義されています。どのレベルでも、パフォーマンスと次のような望ましくない動作による悪影響の間でトレードオフが発生します。

- 内容を保証しない読取り: トランザクションが同時トランザクションによって書き込まれた未コミット・データを読み取ります。

- 非リピータブル・リード: トランザクションがデータを再度読み取り、最初の読取り操作後にコミットされた他のトランザクションによってデータが変更されていることを検出します。

- 非リピータブル・リード: トランザクションがデータを再度読み取り、最初の読取り操作後にコミットされた他のトランザクションによってデータが変更されていることを検出します。

13.7.9 TopLinkトランザクションおよび作業ユニット

作業ユニットは、トランザクション内で行われた変更を、その変更がデータベースに正常にコミットされるまで、他のスレッドから分離します。その他のトランザクション・メカニズムとは異なり、作業ユニットはトランザクション内のオブジェクトに対する変更、変更の順序および他のTopLinkのキャッシュを無効にする可能性がある変更を自動的に管理します。作業ユニットは、最小のチェンジ・セットを計算し、参照整合性規則に準拠してデッドロックを回避するようにデータベース・コールを順序付けし、変更されたオブジェクトを共有キャッシュにマージして、これらの問題を管理します。クラスタ化環境では、作業ユニットはコーディネート・キャッシュ内の他のサーバーと変更を同期化することもできます。

通常のトランザクションと同様に、作業ユニット・トランザクションは次のものを提供します。

- 作業ユニット・トランザクションのコンテキスト - 作業ユニット操作は、書込みがコミット時までデータベースから分離される作業ユニットのコンテキスト内で行われます。作業ユニットは、独自の内部キャッシュ内でオブジェクトのコピーまたはクローンに対して変更を実行し、成功した場合、データベースおよびセッション・キャッシュ内のオブジェクトに変更を適用します。

- 作業ユニット・トランザクションの境界設定 - TopLinkアプリケーションでは、作業ユニットを使用してトランザクションの境界が設定されます。アプリケーションにコンテナ管理トランザクションを提供するJava EEコンテナが含まれている場合、アプリケーション・サーバーでは、独自のトランザクション・サービスを使用して、トランザクションの境界が設定されます。TopLinkの外部トランザクション・コントローラを指定することで、コンテナのトランザクション・サービスと統合するように、TopLinkを構成できます。

- 作業ユニット・トランザクションの分離 - 作業ユニットは、データベース・トランザクションの分離と直接の関係はありません。作業ユニットでは問合せがデータベース・トランザクション外部で実行される場合があるため、データベースはこれら外部のデータとその可視性を制御できません。ただし、デフォルトでは、TopLinkは、基礎となるデータベースに構成されたデータベース・トランザクション分離とは無関係のトランザクション分離レベルを提供します。各作業ユニット・インスタンスは、登録されているオブジェクトの独自のコピー(クローン)に対して実行されます。この場合、作業ユニットでは、オブジェクトの変更に対する問合せを1つの作業ユニット内で実行できるAPIにより、読取りコミット操作を行います。変更がデータベースにコミットされるのは、作業ユニットのコミット・メソッドがコールされる場合のみです。

14 セキュアなアプリケーションの開発

この章では、Oracle JDeveloperでセキュアなJava EEアプリケーションを開発、デプロイおよび管理する方法について説明します。

この章では、次の項目について説明します。

- 第14.1項「セキュアなアプリケーションの開発について」

- 第14.2項「フェーズでのアプリケーションの保護」

- 第14.3項「WebアプリケーションのセキュリティとJDeveloperのサポートについて」

- 第14.4項「Webアプリケーションでのユーザー認証の処理」

- 第14.5項「Webアプリケーション内のアプリケーション・リソースの保護」

- 第14.6項「アプリケーション・レベルのポリシー・ストアの構成」

- 第14.7項「ポリシー・ストアの移行」

- 第14.8項「JDBCを使用した開発の保護」

14.1 セキュアなアプリケーションの開発について

Fusion Middleware Suiteでは、セキュアなアプリケーションを開発、デプロイおよび管理できます。Java EEアプリケーションは、コンテナ管理セキュリティのみを使用して保護できます。Fusion Webアプリケーションの場合は、Oracle ADF Securityを使用できます。Fusion Webアプリケーションは、Oracle Application Development Framework (Oracle ADF)を使用して開発するJava EEアプリケーションです。

14.1.1 Java EEアプリケーションおよびOracle Platform Security Services for Java (OPSS)の理解

Java EEアプリケーションは、OPSSを使用するよう拡張できます。このシナリオでは、JDeveloperの宣言エディタを使用してユーザーおよびロールを構成します。アプリケーション・リソースは、Java EEコンテナ管理のセキュリティを使用して保護します。

14.1.2 Fusion WebアプリケーションおよびADFセキュリティの理解

このシナリオは、ADFセキュリティを追加してOracle ADFリソースに対するきめ細かなセキュリティ・ポリシーを有効にする、完全な宣言実装です。JDeveloperの宣言エディタを使用してファイルベースのアイデンティティ・ストア、ポリシー・ストアおよび資格証明ストアを構成します。アプリケーションでOracle ADFが使用されるため、ウィザードを実行してADFタスク・フローやADFページ定義などのADFリソースに関連付けられているWebページのセキュリティを構成し、jazn-data.xmlポリシー・エディタを使用してセキュリティ・ポリシーも定義します。

14.1.3 コンテナ管理セキュリティの理解

Java EEセキュリティ・モデルは、コンテナ管理のセキュリティに基づくロールベースの宣言型モデルであり、ユーザーに割り当てられたロールによりリソースが保護されます。このモデルを使用すると、アプリケーション・デプロイメント・ディスクリプタのアプリケーション・ロジックとは別個にセキュリティを指定できるため、基礎となるセキュリティ・インフラストラクチャからアプリケーションを切り離すことができます。アプリケーションが実行されるコンテナは、デプロイメント・ディスクリプタの仕様に応じてアプリケーションのセキュリティを提供します。このモデルでは、デプロイメント・ディスクリプタ内で参照できるアプリケーション・コードにセキュリティ・データ(注釈)を埋め込むこともできます。

コンテナ管理セキュリティの詳細は、『Oracle Fusion Middlewareセキュリティ・ガイド』を参照してください。

14.1.4 追加機能

Oracle ADFセキュリティ・フレームワークは、認証および認可サービスをFusion Webアプリケーションに提供するための推奨テクノロジです。主な理由は、Oracle ADF Securityが、Oracle Platform Security Services(OPSS)アーキテクチャの上部で構築され、このアーキテクチャにより重要なセキュリティ・フレームワークが実現され、Oracle WebLogic Serverと緊密に統合されていることです。

Oracle ADF Securityの詳細は、Oracle Fusion Middleware ADF開発者ガイドのFusion WebアプリケーションでのADFセキュリティの有効化に関する項を参照してください。

OPSSの詳細は、『Oracle Fusion Middlewareアプリケーション・セキュリティ・ガイド』を参照してください。

14.2 フェーズでのアプリケーションの保護

JDeveloperでセキュアなアプリケーションを開発する場合、一般に、開発とデプロイメント(本番環境への)をそれぞれ異なるニーズを持つ別個のフェーズと考えることが有用です。これは、開発時およびテスト時、JDeveloperはOracle Platform Security Services (OPSS)との統合を通じて、管理が容易なファイルベースのセキュリティをサポートしているためです。

JDeveloperは、セキュリティに関するアプリケーション開発ライフサイクルを簡易化し、データのフラット・ファイルへの格納を可能にすることで開発を容易にします。jazn-data.xmlファイルは、OPSSと統合するための、JDeveloperのデフォルトのファイルベース・セキュリティ・プロバイダです。jazn-data.xmlファイルには、Oracle Application Development Framework (Oracle ADF)およびOracle ADF Securityを使用して構築されたFusion Webアプリケーションに定義するユーザー、グループ、ロールおよびポリシーが格納されます。JDeveloperには、セキュリティ・データ・ストアの作成を容易にするこのファイル専用のエディタが用意されています。

OPSSの機能は、本番環境のエンタープライズ・ロールで定義されたユーザーをアプリケーションの機能に固有のアプリケーション・ロールに抽出することです。開発時、アプリケーション開発者はアプリケーション・ロールおよびアプリケーション・ロールを使用するセキュリティ・ポリシーをjazn-data.xmlファイルのポリシー・ストアに追加します。その後、テストを簡易化するために、開発者は少数のユーザーをアイデンティティ・ストアに追加し、これらのテスト・ユーザーをアプリケーション・ロールに割り当てることができます。このため、アプリケーションをテストするために、jazn-data.xmlをアイデンティティ・ストアとしても使用できます。

開発時、アプリケーションは本番環境で定義されているエンタープライズ・ロールを認識する必要はありません。開発後、管理者はOracle Enterprise Manager Fusion Middleware Controlを使用して本番レベルのエンタープライズ・ロールをアプリケーションのポリシー・ストアのアプリケーション・ロールにマップします。このマッピングにより、任意のエンタープライズ・ロールのメンバーであるユーザーは、関連するアプリケーション・ロールからアクセス可能なリソースにアクセスできます。

アプリケーションを完了した後、ポリシー・ストアをOracle WebLogic Server上の本番環境プロバイダに移行します。この時点で、テスト・ユーザー・アイデンティティ・ストアを、Oracle WebLogic Server組込みLDAPサーバーで構成済のエンタープライズ・ユーザーに置き換えます。LDAPサーバーは、jazn-data.xmlファイルとは異なり、本番環境で使用可能な分散アプリケーション・サーバー構成をサポートしています。LDAPサーバーの詳細は、『Oracle Fusion Middleware Oracle WebLogic Serverの保護』を参照してください。

このため、JDeveloperでファイルベース・プロバイダおよびOPSSを使用すると、次のようにして本番環境での要求を分離できます。

- テスト・ユーザーおよびアプリケーション・ロールを宣言によって定義する

- Oracle ADFリソースのセキュリティ・ポリシーを宣言によって定義する

- デプロイ時にアプリケーション・レベルのセキュリティ・プロバイダからsystem-jazn-data.xmlセキュリティ・プロバイダに容易に移行する

- デプロイまでエンタープライズ・ロールのマッピングを見送る

14.3 WebアプリケーションのセキュリティとJDeveloperのサポートについて

Oracle WebLogic Serverでは、Java EE宣言セキュリティはOracle Platform Security Services (OPSS) (OracleのJAAS標準の実装)とともに実装されます。OPSSは、Java EEセキュリティを拡張することにより、アプリケーション開発者、システム・インテグレータ、セキュリティ管理者および独立系ソフトウェア・ベンダーに、Java SEおよびJava EEアプリケーション用の移植可能で統合された包括的なセキュリティ・プラットフォーム・フレームワークを提供します。

OPSSおよびその機能の詳細は、『Oracle Fusion Middlewareセキュリティ・ガイド』を参照してください。

JDeveloperには、Webアプリケーション用のJava EEセキュリティの構成、およびセキュアなWebアプリケーションのアプリケーション・サーバー・インスタンスへのデプロイをサポートするツールが用意されています。開発者は、アプリケーション開発時にウィザードおよびエディタを介して、JDeveloperからOPSSサービスを構成できます。

JDeveloperには、Oracle Platform Security構成(jps-config.xml)、JAAS構成(jazn-data.xml)およびWebアプリケーション・デプロイメント・ディスクリプタ(web.xml)を作成および編集する固有のエディタがあります。JDeveloperでは、Webアプリケーションのアプリケーション・サーバーへの直接デプロイメントもサポートされています。詳細は、第14.2項「フェーズでのアプリケーションの保護」を参照してください。

Webアプリケーションを開発する場合、Oracle Application Development Framework (Oracle ADF)を使用してユーザー・インタフェース内のデータ対応のコンポーネントを操作することを選択できます。ユーザー・インタフェースにADFタスク・フローやADFページ定義などのADFリソースが含まれる場合、ADFセキュリティ・フレームワークを介してこれらのリソースに依存するWebページを保護するオプションも用意されています。JDeveloperツールはセキュリティの繰返し型開発をサポートしているため、ADFリソース用として作成するセキュリティ・ポリシーを簡単に作成、テストおよび編集できます。JDeveloperでテスト・ユーザーの作成に進み、統合WebLogic Serverでアプリケーションを実行し、エンドユーザーがセキュアなリソースにアクセスする方法をシミュレートできます。詳細は次の項目を参照してください。第14.5.2項「Fusion WebアプリケーションのADFセキュリティを使用したADFリソースの保護方法」。

Webアプリケーション・セキュリティの詳細は、『Oracle Fusion Middleware Oracle WebLogic Serverセキュリティのプログラミング』を参照してください。

14.4 Webアプリケーションでのユーザー認証の処理

ユーザーが保護されたWebアプリケーション領域を要求すると、宣言セキュリティでの認証が強制されます。

14.4.1 認証タイプの選択肢について

ユーザーが保護されたWebアプリケーション領域を要求すると、宣言セキュリティでの認証が強制されます。ユーザーがこれまで認証されていない場合、コンテナはユーザーから資格証明を取得します。ユーザーはサーバー・セッション中、認証されたままです。

サポートされている認証タイプは、FORMベース認証、BASIC認証およびCLIENT-CERT認証です。認証タイプは、<login-config>要素を使用してweb.xmlデプロイメント・ディスクリプタで指定されます。

14.4.1.1 BASIC認証

BASIC認証では、ユーザーがユーザー名とパスワードを入力できるようにブラウザのログイン・ダイアログが使用されます。このダイアログ・フォームはカスタマイズできないため、使用するブラウザに応じてルック・アンド・フィールが異なります。ユーザー資格証明は認証済レルムのブラウザ・セッションに格納されます。レルムは、認証されたユーザーの一連の権限が含まれるリポジトリです。Oracle Platform Security Servicesのデフォルトのレルムは、jazn.comです。

例14-1のコードSnippetは、BASIC認証をweb.xmlファイルに指定する方法を示しています。

例14-1 web.xmlファイルに指定されたBASIC認証

<login-config>
<auth-method>BASIC</auth-method>
<realm-name>jazn.com</realm-name>
</login-config>

14.4.1.2 FORM認証

FORMベース認証では、アプリケーション開発者はカスタム・ログイン・ダイアログを指定できます。usernameパラメータの名前はj_usernameで、パスワード・フィールドの名前はj_passwordである必要があります。要求を認証するJava EEコンテナのログイン・フォーム・アクションの値はj_security_checkである必要があります。

例14-2のコードSnippetは、FORM認証をweb.xmlファイルに指定する方法を示しています。

例14-2 web.xmlファイルに指定されたFORM認証

<login-config>
<auth-method>FORM</auth-method>
<form-login-config>
<form-login-page>loginform.jsp</form-login-page>
<form-error-page>error.jsp</form-error-page>
</form-login-config>
</login-config>

14.4.1.3 CLIENT-CERT認証

CLIENT-CERT認証では、X.509証明書を使用してユーザーを認証します。このタイプの認証は、公開鍵の暗号化とも呼ばれます。

認証タイプの選択の詳細は、『Oracle Fusion Middlewareセキュリティ・ガイド』を参照してください。

Oracle WebLogic Serverを使用する認証タイプの詳細は、『Oracle Fusion Middleware Oracle WebLogic Serverセキュリティのプログラミング』を参照してください。

14.4.2 ターゲット・ドメインのパスワードの暗号化

パスワード暗号化はWebLogic Serverドメインに固有であるため、weblogic-jdbc.xmlファイルに手動でパスワード処理を追加する必要があります。パスワードを暗号化するには、デプロイ先ドメインの暗号化ユーティリティ(weblogic.security.Encrypt)を使用します。

注意:

パスワードはドメイン固有であるため、異なるドメインにデプロイするたびにターゲット・ドメインのパスワードを再暗号化する必要があります。

weblogic-jdbc.xmlに追加する必要があるXMLコードは、次のようなコードです。

<password-encrypted>toystore</password-encrypted>

タグ間にはクリアテキストのパスワードまたは暗号化されたパスワード文字列を入力できます。この要素は、<jdbc-driver-params>要素(概要エディタを使用して編集済の場合はweblogic-jdbc.xmlにすでに存在)の内部に配置されます。

14.4.2.1 weblogic.security.Encrypt

weblogic.security.Encryptユーティリティは、WebLogic Serverで使用されるクリアテキスト文字列を暗号化します。このユーティリティは、現在のディレクトリの暗号化サービスまたは指定されたWebLogic Serverドメイン・ルート・ディレクトリの暗号化サービスを使用します。

注意:

暗号化文字列は、使用するWebLogic Serverドメインの暗号化サービスで暗号化する必要があります。そうでない場合、サーバーで文字列を復号化できません。

weblogic.security.Encryptユーティリティは、WebLogic Serverドメイン内の少なくとも1つのサーバー・インスタンスを持つマシンでのみ実行できます。クライアントからは実行できません。表14-1は、weblogic.security.Encryptユーティリティの引数を定義しています。

注意:

ユーティリティは、管理サーバー・ドメイン・ディレクトリから、または管理サーバーをホストしてドメイン・ルート・ディレクトリを指定するマシンで実行することをお薦めします。

構文

java [ -Dweblogic.RootDirectory= dirname ]
[ -Dweblogic.management.allowPasswordEcho=true ]
weblogic.security.Encrypt [ password ]

表14-1 weblogic.security.Encryptユーティリティの引数

引数

定義

weblogic.RootDirectory

オプション。暗号化文字列を使用するWebLogic Serverドメイン・ディレクトリ。指定されていない場合、デフォルトのドメイン・ルート・ディレクトリが現在のディレクトリになります(ユーティリティが実行されているディレクトリ)。

weblogic.management.
allowPasswordEcho

オプション。コマンドラインに入力された文字のエコーを可能にします。weblogic.security.Encryptは非表示が有効であることを想定しています。非表示が有効でない場合は、このプロパティをtrueに設定します。

password

オプション。暗号化するクリアテキスト文字列。コマンドラインにない場合、パスワードの入力を求められます。

例

ユーティリティは、現在のディレクトリにあるドメインの暗号化サービスを使用して、暗号化文字列を返します。

java weblogic.security.Encrypt xxxxxx {3DES}Rd39isn4LLuF884Ns

ユーティリティは、指定されたドメインの場所の暗号化サービスを使用して、暗号化文字列を返します。

java -Dweblogic.RootDirectory=./mydomain weblogic.security.Encrypt xxxxxx {3DES}hsikci118SKFnnw

ユーティリティはパスワードをエコーせずに、現在のディレクトリで暗号化文字列を返します。

java weblogic.security.Encrypt Password: {3DES}12hsIIn56KKKs3

14.4.3 アイデンティティ・ストアの作成方法

アイデンティティ・ストアは、ユーザー、エンタープライズ・ロール(ユーザー・グループ)およびログイン資格証明のデータ・ストアです。資格証明は、認証時に検証され、ユーザーのアプリケーション機能へのアクセスを認証するために使用されます。

ユーザー、ロール、およびレルムの理解

ユーザーとはサービスにアクセスするエンド・ユーザーのことで、個人の場合やソフトウェア・コンポーネントの場合もあります。エンタープライズ・ロールは、同じ権限セットを付与することを目的としてグループ化するユーザーのコレクションです。レルムとは、認証ユーザーおよび認証エンタープライズ・ロールのコレクションです。

ユーザー、エンタープライズ・ロールおよびレルムの詳細は、『Oracle Fusion Middlewareセキュリティ・ガイド』を参照してください。

JDeveloperのアイデンティティ・ストアの理解

JDeveloperでセキュアなアプリケーションを開発する際、ファイルベース・データ・ストアを使用してログオンを許可するユーザーを定義します。jazn-data.xmlファイルを介してファイルベースのアイデンティティ・ストアを定義する利点は、system-jazn-data.xmlファイルへの移行を介して本番環境へのデプロイメントとの互換性を維持しながら、簡易なテストをサポートする点です。さらに、LDAPベース・アイデンティティ・ストア用のOracle Internet Directoryサービスを設定および保守する複雑さを排除できます。

Oracle ADFを使用してFusion Webアプリケーションを作成すると、ADFセキュリティの構成ウィザードの実行時にアイデンティティ・ストアが自動的に作成されます。

注意:

LDAPベースのアイデンティティ・ストアはJDeveloperの設計時機能であり、実行時には使用できません。LDAPアイデンティティ・ストアの構成はすべて、JDeveloperの統合WebLogic Serverにより上書きされます。

アイデンティティ・ストアの詳細は、『Oracle Fusion Middlewareセキュリティ・ガイド』を参照してください。

アイデンティティ・ストアを作成する手順は、次のとおりです。

1. アプリケーション・ナビゲータの「アプリケーション・リソース」パネルで、「ディスクリプタ」→「META-INF」フォルダ内のjps-config.xmlファイルをダブルクリックします。

2. jps-config.xml概要エディタで「アイデンティティ・ストア」タブを選択します。

3. ページの上部にある「新規アイデンティティ・ストアの追加」アイコンをクリックします。「アイデンティティ・ストアの作成」ダイアログが表示されます。

4. 必要なタイプのアイデンティティ・ストア・オプションを選択します。

- ファイル・ベースのアイデンティティ・ストアを作成する場合は、「XMLベースのアイデンティティ・ストア」を選択し、ストアの名前を入力します。デフォルトで、ファイル名はidstore.xmlです。

- LDAPベースのアイデンティティ・ストアを作成する場合は、「LDAPベースのアイデンティティ・ストア」を選択し、ストアの名前を入力します。デフォルトで、ファイル名はidstore.oidです。
注意: LDAPベースのアイデンティティ・ストアはJDeveloperの設計時機能であり、実行時には使用できません。LDAPアイデンティティ・ストアの構成はすべて、JDeveloperの統合WebLogic Serverにより上書きされます。

5. 作業が完了した後、「OK」をクリックしてダイアログを閉じます。

14.4.4 アイデンティティ・ストアへのテスト・ユーザーの追加方法

アイデンティティ・ストアは、ユーザーとエンタープライズ・ロールを格納するXMLファイルであり、ユーザーの認証時に使用されます。アイデンティティ・ストアはドメイン・レベルまたはアプリケーション・レベルで使用できます。

ユーザーをアイデンティティ・ストアに追加する手順は、次のとおりです。

1. アプリケーション・ナビゲータで、アプリケーションを開きます。

2. 「アプリケーション」→「保護」→「ユーザー」を選択し、jazn-data.xmlファイルの概要エディタを開きます。

3. 「ユーザー」ページで、「新規ユーザー」アイコンをクリックします。

4. 新規ユーザー名およびパスワードを入力します。

5. 「ユーザー」リストからユーザーを選択し、表示名や説明などの詳細を入力します。

6. jazn-data.xmlファイルへの変更内容を保存します。

14.4.5 アイデンティティ・ストアへのエンタープライズ・ロールの追加方法

エンタープライズ・ロールは、同じ権限を付与することを目的としてグループ化するユーザー・セットです。エンタープライズ・ロールはアイデンティティ・ストアに追加します。アプリケーション・ロールはポリシー・ストアに追加します。

注意:

エンタープライズ・ロールにユーザーを追加する前に、アイデンティティ・ストアにユーザーが作成されていることを確認してください。

ロールをアイデンティティ・ストアに追加する手順は、次のとおりです。

1. アプリケーション・ナビゲータで、アプリケーションを開きます。

2. 「アプリケーション」→「保護」→「グループ」を選択し、jazn-data.xmlファイルの概要エディタの「エンタープライズ・ロール」ページを開きます。

3. 「エンタープライズ・ロール」で、「新規ロール」アイコンをクリックします。「エンタープライズ・ロール」リストに新規ロールが表示されます。

4. 「エンタープライズ・ロール」リストからロールを選択し、表示名や説明などの詳細を入力します。

エンタープライズ・ロールに割り当てられたユーザーを管理するには、次のようにします。

1. jazn-data.xmlファイルの概要エディタの「エンタープライズ・ロール」ページを開きます。

2. 「エンタープライズ・ロール」リストからロールを選択し、「メンバー」タブをクリックします。

3. 「メンバー」セクションで、他のメンバーまたはロールを追加または削除します。

割り当てられたエンタープライズ・ユーザーを表示するには、次のようにします。

1. jazn-data.xmlファイルの概要エディタの「エンタープライズ・ロール」ページを開きます。

2. 「ロール」リストからロールを選択し、「割当済ロール」タブをクリックします。

14.4.6 資格証明ストアの作成方法

資格証明ストアは、データベースなどの外部システムとの接続時にOracle Platform Security Services (OPSS)で必要とされるシステム資格証明を格納するウォレットベース・ファイルです。JDeveloperでは、資格証明ストアはcwallet.ssoファイルです。このファイルにはOPSSベースのすべての資格証明が含まれ、Oracle ADF Securityに定義する資格証明を格納するために使用されます。このファイルは通常、直接は編集されません。

JDeveloperは資格証明ストア・サービス・インスタンスの存在をチェックして、ユーザーが最初に接続(データベース接続など)を作成する際に、アプリケーション・ナビゲータの「アプリケーション・リソース」パネルにストアを作成します。

資格証明ストアの詳細は、『Oracle Fusion Middlewareセキュリティ・ガイド』を参照してください。

資格証明ストアを作成する手順は、次のとおりです。

1. アプリケーション・ナビゲータの「アプリケーション・リソース」パネルで、「ディスクリプタ」→「META-INF」フォルダ内のjps-config.xmlファイルをダブルクリックします。

2. jps-config.xml概要エディタで「資格証明ストア」タブを選択します。

3. ページの上部にある「資格証明ストアを追加します。」アイコンをクリックします。「資格証明ストアの作成」ダイアログが表示されます。

4. 資格証明ストア・ファイルの名前を入力し、「OK」をクリックします。

注意:

1つのアプリケーションに対して1つの資格証明のみ作成できます。

14.4.7 ログイン・モジュールの追加方法

ログイン・モジュールは、ユーザーを認証し、サブジェクトにプリンシパルを移入するコンポーネントです。ログイン・モジュールはプラグイン可能で、アプリケーション・コードを変更せずに使用できます。1つのアプリケーションに複数のログイン・モジュールを使用できます。

ログイン認証プロセスは、次の2つのフェーズで発生します。

1. ログイン・モジュールは、ユーザー・リクエスト、必要に応じて名前およびパスワード、またはその他の資格証明データを認証しようとします。このフェーズが成功した場合のみ、2つ目のフェーズが開始します。

2. ログイン・モジュールは、関連するプリンシパルをサブジェクトに割り当て、最終的にそれを使用して権限があるアクションが実行されます。

ドメイン内のすべてのログイン・モジュールは、次の要素を使用してファイルjps-config.xml内で構成されます。

- serviceProvider - ログイン・モジュールのサービス・プロバイダの定義

- serviceInstance - サービス・プロバイダの1つ以上のインスタンスの定義

- jpsContext - 使用するインスタンスの指定

JDeveloperでは、アプリケーションの事前定義済ログイン・モジュールを選択するか、または新規のカスタム・ログイン・モジュールを作成できます。表14-2には、JDeveloperで使用可能な事前定義済ログイン・モジュールが含まれます。

表14-2 事前定義済ログイン・モジュール

モジュール

説明

saml.loginmodule

SAMLトークン・アサーションに使用され、oracle.security.jps.internal.jaas.module.saml.JpsSAMLLoginModule
クラスを実装します。

krb5.loginmodule

Kerberosトークン・アサーションに使用され、com.sun.security.auth.module.Krb5LoginModuleクラスを実装します。

wss.digest.loginmodule

WSS Digest仕様に基づくダイジェスト・ベースのユーザー名トークンの認証に使用され、oracle.security.jps.internal.jaas.module.digest.WSSDigestLoginModuleを実装します。これは、JSEユースケースでのみサポートされます。

certificate.authenticator.
loginmodule

X509証明書の割当てに使用され、oracle.security.jps.internal.jaas.module.x509.X509LoginModuleクラスを実装します。

user.authentication.
loginmodule

有効なユーザー名およびパスワードに基づくユーザー認証に使用され、oracle.security.jps.internal.jaas.module.authentication.JpsUserAuthenticationLoginModuleクラスを実装します。

user.assertion.loginmodule

有効なユーザー名およびパスワードに基づくユーザー認証に使用され、oracle.security.jps.internal.jaas.module.assertion.JpsUserAssertionLoginModuleクラスを実装します。

idstore.loginmodule

JSEベースのユースケースの認証に使用され、oracle.security.jps.internal.jaas.module.idstore.IdStoreLoginModule
クラスを実装します。

ログイン・モジュールの詳細は、『Oracle Fusion Middlewareセキュリティ・ガイド』を参照してください。

ログイン・モジュールを追加する手順は、次のとおりです。

1. アプリケーション・ナビゲータの「アプリケーション・リソース」パネルで、「ディスクリプタ」→「META-INF」フォルダ内のjps-config.xmlファイルをダブルクリックします。

2. jps-config.xmlの概要エディタで「ログイン・モジュール」タブを選択します。

3. ページの上部にある「事前定義済ログイン・モジュールのリストから選択」アイコンをクリックします。「ログイン・モジュールの追加」ダイアログが表示されます。

4. 追加するログイン・モジュールのチェックボックスを選択します。1つのアプリケーションで複数のログイン・モジュールを選択できます。

5. 終了したら「OK」をクリックします。

14.4.8 カスタム・ログイン・モジュールを介した認証方法

ログイン・サービスは、Oracle Platform Securityのキー・コンポーネントです。概念的には、ログイン・サービスはJAASログイン・モジュールSPI (javax.security.auth.spi.LoginModule)をOracle Platform Security for Javaフレームワーク(OPSS)に結合するアダプタです。

ログイン・サービスの主な役割は、OPSSでのJAASログイン・モジュール実装の構成および使用を可能にすることです。

カスタム・ログイン・モジュールを追加する手順は、次のとおりです。

1. アプリケーション・ナビゲータの「アプリケーション・リソース」パネルで、「ディスクリプタ」→「META-INF」フォルダ内のjps-config.xmlファイルをダブルクリックします。

2. jps-config.xmlの概要エディタで「ログイン・モジュール」タブを選択します。

3. ページ上部で「新規ログイン・モジュールの作成」をクリックします。

4. 「ログイン・モジュール名」を入力して「OK」をクリックします。

5. ログイン・モジュールのクラス名を入力します。プロジェクトで使用可能な既存のクラス名を検索するには、「検索」ボタンをクリックします。

6. 「ログイン制御フラグ」を選択します。REQUISITE、REQUIRED、SUFFICIENTまたはOPTIONALを選択できます。

7. 「ログ・レベル」を選択します。FINE、FINER、FINEST、CONFIG、INFO、WARNING、SEVEREを選択できます。

8. 「デバッグ」をクリックして、ログイン・モジュールでデバッグ・メッセージを出力するかどうかを定義します。

9. 「すべてのロールの追加」を選択して、ログイン・モジュールを使用して認証後にユーザーのすべての直接または間接付与ロールをサブジェクトに追加するかどうかを定義します。

10. ログイン・モジュールで必要なその他のプロパティすべての、名前と値を入力します。

14.4.9 キーストアの追加方法

キーストアは、秘密鍵およびデジタル証明書のリポジトリです。

キーおよび証明書を持ち、アプリケーションのセキュア・サービスにそれらを使用する場合、JDeveloperでは、Java Key Store、Oracle Wallet (*.ssoファイルまたは*.p12ファイル)、またはPCKS12ファイル(*.p12ファイル)をインポートできます。JDeveloperでキーストアを作成することはできません。

キーストアおよびキーストア・プロバイダの詳細は、『Oracle Fusion Middleware Oracle WebLogic Serverセキュリティの理解』を参照してください。

キー・ストアを追加する手順は、次のとおりです。

1. アプリケーション・ナビゲータの「アプリケーション・リソース」パネルで、「ディスクリプタ」→「META-INF」フォルダ内のjps-config.xmlファイルをダブルクリックします。

2. jps-config.xmlの概要エディタで「キーストア」タブを選択します。

3. ページの上部にある「キー・ストアを追加します。」アイコンをクリックします。「キー・ストアの追加」ダイアログが表示されます。

4. キー・ストア・ファイルをインポートし、必須フィールドに入力します。キーストアとしてJava Key Store (*.jksファイル)、Oracle Wallet (from a *.ssoまたは*.p12ファイル)、またはPCKS12 (*.p12ファイル)ファイルをインポートできます。

5. 終了したら「OK」をクリックします。

14.4.10 無名プロバイダの有効化方法

無名プロバイダとは、パブリック・ページの代替です。ここでは、未認証ユーザーにパブリック・ページ全体に対するアクセス権を許可するのではなく、よりきめの細かい権限を割り当てることができます。

無名プロバイダを有効にすることで、無名サービス・インスタンスと無名ログイン・モジュールを含む無名JpsContextを作成できます。アプリケーション・ユーザーが未認証の場合は、実行時に無名資格証明が使用され、認証なしで一部のリソースへのアクセスが許可されます。

無名プロバイダの詳細は、『Oracle Fusion Middlewareセキュリティ・ガイド』を参照してください。

Webアプリケーションに対して無名プロバイダを有効にする手順は、次のとおりです。

1. アプリケーション・ナビゲータの「アプリケーション・リソース」パネルで、「ディスクリプタ」→「META-INF」フォルダ内のjps-config.xmlファイルをダブルクリックします。

2. jps-config.xmlの概要エディタで「無名プロバイダ」タブを選択します。

3. 「無名プロバイダの有効化」を選択します。

4. 「セキュリティ・コンテキスト」タブを選択し、無名が無名プロバイダとして自動的に選択されていることを確認します。

14.4.11 アイデンティティ・ストアでのユーザーへの資格証明の追加方法

資格証明にはユーザーの認証パスワードが含まれます。資格証明は、デフォルトで不明瞭化されたフォームで表示されます。アイデンティティ・ストアに資格証明を追加する前に、最初にアイデンティティ・ストアのメンバー・ユーザーを定義する必要があります。

アイデンティティ・ストアで資格証明をユーザーに追加する手順は、次のとおりです。

1. アプリケーション・ナビゲータで、アプリケーションを開きます。

2. 「アプリケーション」→「保護」→「ユーザー」を選択し、jazn-data.xmlの概要エディタの「ユーザー」ページを開きます。

3. 「ユーザー」リストでユーザーを選択し、資格証明を「パスワード」フィールドに追加します。

14.4.12 Webアプリケーションの認証タイプの選択方法

ユーザーが保護されたWebアプリケーション領域を要求すると、宣言セキュリティでの認証が強制されます。ユーザーがこれまで認証されていない場合、コンテナはユーザーから資格証明を取得します。ユーザーはサーバー・セッション中、認証されたままです。

サポートされている認証タイプは、FORMベース認証、BASIC認証およびCLIENT-CERT認証です。認証タイプは、<login-config>要素を使用してweb.xmlデプロイメント・ディスクリプタで指定されます。

認証タイプの詳細は、第14.4.1項「認証タイプの選択肢について」を参照してください。

Webアプリケーションの認証タイプを選択する手順は、次のとおりです。

1. アプリケーション・ナビゲータでアプリケーションのweb.xmlをダブルクリックします。

2. web.xml概要エディタの「セキュリティ」タブをクリックします。

3. 「ログイン認証」セクションを展開し、必要な認証タイプを選択します。

14.5 Webアプリケーション内のアプリケーション・リソースの保護

WebアプリケーションのWebページおよび他のリソースは、保護する必要があります。アプリケーションのタイプに応じて、次の2つのいずれかの方法でアプリケーションを保護できます。

- Java EE Webアプリケーションの場合、Oracle Platform Security Services (OPSS)を使用してWebアプリケーションを保護します。

- Oracle Application Development Framework (ADF)を使用して開発されたアプリケーションの場合、Oracle ADF Securityを使用してアプリケーションを保護します。

OPSSセキュリティの使用

次のタスクは、Java EEセキュリティを使用したアプリケーションの保護プロセスの概要を示しています。

1. ユーザーに対する認証メカニズムを指定します。

2. レルム内のユーザーおよびグループを管理します。

3. アプリケーションのセキュリティ・ロールを作成します。

4. ユーザーおよびグループにロールをマップします。

Oracle ADF Securityの使用

Oracle ADF Securityフレームワークを使用して、Fusion Webアプリケーションに認証と認可のサービスを提供できます。

Oracle ADF Securityの詳細は、Oracle Fusion ADF開発者ガイドのFusion WebアプリケーションでのADFセキュリティの有効化に関する項を参照してください。

14.5.1 jazn-data.xmlの概要エディタを使用したアプリケーション・リソースの保護方法

JDeveloperを使用すると、アプリケーションのリソース・タイプを保護できます。リソース・タイプは把握(つまり、JDeveloperによる認識)が可能です。また、独自のリソース・タイプを作成することもできます。

リソース・タイプは、フロー、ジョブ、Webサービスなどのセキュア・アーティファクトのタイプを表し、基本的には特定のタイプのリソースを作成するためのテンプレートです。すべてのリソースは、タイプが関連付けられており、タイプに応じてフィルタまたはグループ化されます。

アプリケーションのリソースを保護するには、次のようにします。

1. アプリケーション・ナビゲータで、アプリケーションを開きます。

2. メイン・メニューで、「アプリケーション」→「保護」→「リソース権限」を選択し、jazn-data.xmlファイルの概要エディタの「リソース権限」ページを開きます。

3. 「リソース・タイプ」ドロップダウン・リストで、保護するリソース・タイプ(「タスク・フロー」など)を選択します。リストには、選択したプロジェクトで使用可能なすべてのリソース・タイプが表示されます。また、新規リソース・タイプを作成することもできます。

4. 「ソース・プロジェクトの選択」アイコンを選択し、ソース・プロジェクトを選択します。選択したソース・プロジェクトから選択したリソース・タイプのインスタンスが「リソース」リストに表示されます。

5. リソース権限を付与する権限受領者(アプリケーション・ロール、エンタープライズ・ロールまたはコード・ソース)を追加します。リソース権限は、ユーザー、アプリケーション・ロール、エンタープライズ・ロールまたはコード・ソースに付与できます。「付与先」リストの「権限受領者の追加」アイコンをクリックし、権限受領者を追加します。

6. 「アクション」リストで、リソースに対して許可するアクションを選択します。

7. jazn-data.xmlファイルへの変更内容を保存します。

14.5.2 Fusion WebアプリケーションのADFセキュリティを使用したADFリソースの保護方法

Fusion Webアプリケーションで定義するセキュリティ・ポリシーは、ADFタスク・フローおよびADFページ定義などのADFセキュリティ対応リソースに対するきめ細かなアクセス制御をサポートします。ADFセキュリティ・ポリシーを有効にするには、まずユーザー・インタフェース・プロジェクトでADFセキュリティの設定ウィザードを実行します。

ADF Securityを有効にしたら、ユーザーにアクセス権を付与する必要があります。これによってユーザーは、Fusion WebアプリケーションのWebページを表示できるようになります。ユーザーに付与するアクセス権は、ページのADFセキュリティ対応リソース用に指定するセキュリティ・ポリシーとして知られています。タスク・フローの入力やWebページの表示を行うユーザー権限を制御するのは、最終的にはADFリソースにおけるセキュリティ・ポリシーになります。

- バインドされたタスク・フローの個々のWebページに対してはセキュリティ・ポリシーを定義しないでください。ユーザーがバインド・タスク・フローにアクセスする場合、すべてのページのセキュリティはタスク・フローに付与する権限により管理されます。また、デフォルトで、(ページ定義が関連付けられている)個々のWebページにはアクセスできないため、ADFセキュリティによりユーザーはタスク・フローの各ページに直接アクセスすることはできません。これにより、タスク・フローの明確なセキュリティ・モデルがサポートされ、すべてのユーザーに単一エントリ・ポイントを強制します。

- Webページがバインドされたタスク・フローの構成要素ではない場合のみ、個々のページに対してセキュリティ・ポリシーを定義してください。ページが直接アクセスされる場合、またはページがバインドされていないタスク・フローでアクセスされる場合のみ、ページ定義バインド・ファイルが関連付けられたページに対してページ・レベルのセキュリティがチェックされます。

ADFセキュリティ・ポリシーは、ファイルベースのjazn-data.xmlポリシー・ストアで保守されます。JDeveloperでのADFセキュリティ・ポリシーの定義および更新は、このファイルの概要エディタによってサポートされます。作成された宣言ADFセキュリティ・ポリシーは容易に読み取ることができます。

Oracle ADFリソースを保護するための詳細ステップは、Oracle Fusion ADF開発者ガイドのFusion WebアプリケーションでのADFセキュリティの有効化に関する項を参照してください。

ADFリソースのセキュリティ・ポリシーを定義する手順は、次のとおりです。

1. ADFセキュリティの構成ウィザードを実行して、アプリケーションに対してADFセキュリティを強制します。

2. ポリシー・ストアにアプリケーション・ロール名を追加します。

3. ADFバインド・タスク・フローに含まれる一連のWebページ全体に対する権限を付与します。

4. ADFページ定義ファイルに関連付けられていてバインド・タスク・フローには関連付けられていない最上位Webページに対する権限を付与します。
データ対応コンポーネントが含まれていないためにADFリソースに関連付けられていない最上位レベルのWebページがアプリケーションに含まれる場合、必要に応じて、これらのページを保護することもできます。

5. 必要に応じて、ADFエンティティ・オブジェクトにより定義されているデータの行に対する権限を付与します。

6. セキュリティをテストするためにログインするユーザーを追加して、アイデンティティ・ストアをプロビジョニングします。

7. 作成したテスト・ユーザーを1つ以上のアプリケーション・ロールに関連付けます。

14.6 アプリケーション・レベルのポリシー・ストアの構成

Webアプリケーション・リソースのセキュリティ・ポリシーは、アプリケーション・レベルのポリシー・ストアに格納されます。

14.6.1 ポリシー・ストアについて

ポリシー・ストアとは、アプリケーションおよびエンタープライズ・ポリシーのリポジトリです。ポリシーは、特定の場所から実行されるコードに付与される権限を指定します。

アプリケーション・ポリシー・ストアは、アプリケーション・ポリシーのリポジトリであるとともに、アプリケーション・ロール、アプリケーション・ポリシー、プリンシパル、および権限のリポジトリです。アプリケーション・ロールには、アプリケーション・ユーザーとアプリケーション・ロール、およびアプリケーション固有のロール(管理ロールなど)を含むことができます。ポリシーでは、これらのロールまたはユーザーをプリンシパルとして使用できます。同様に、システム・ポリシー・ストアは、システム・ポリシー、プリンシパル、および権限のリポジトリです。システム・ポリシー・ストアにロールは含まれません。

Oracle ADFを使用してFusion Webアプリケーションを作成すると、ADFセキュリティの構成ウィザードの実行時にポリシー・ストアが自動的に作成されます。

アプリケーション・ポリシー・ストアとシステム・ポリシー・ストアの違いは、その範囲にあります。アプリケーション・ポリシー・ストアは1つのアプリケーション内に制約されてそのアクセシビリティが制限されますが、システム・ポリシー・ストアにはオープンにアクセスできます。

ポリシー・ストアの詳細は、『Oracle Fusion Middlewareセキュリティ・ガイド』を参照してください。

プリンシパルとは、エンティティ(ユーザーまたはロール)に割り当てられたアイデンティティです。権限とは、エンティティのグループに対して許可された一連の操作で、エンティティはプリンシパルである場合もあります。付与またはカスタム・ポリシーには、権限およびプリンシパルが含まれます。JDeveloperでは、付与を作成せずにプリンシパルおよび権限を作成できません。

14.6.2 プリンシパル、権限および付与について

プリンシパルとは、エンティティ(ユーザーまたはロール)に割り当てられたアイデンティティです。権限とは、エンティティのグループに対して許可された一連の操作で、エンティティはプリンシパルである場合もあります。付与またはカスタム・ポリシーには、権限およびプリンシパルが含まれます。JDeveloperでは、付与を作成せずにプリンシパルおよび権限を作成できません。

14.6.3 アプリケーション・ポリシー・ストアへのアプリケーション・ロールの追加方法

アプリケーション・ロールはアプリケーションに固有で、アプリケーション・ポリシー・ストアで定義されます。アプリケーション・ロールはアプリケーションで直接使用され(Java SEまたはJava EEアプリケーションで)、Java EEコンテナに認識される必要はありません。jazn-data.xmlファイルのファイルベース・ポリシー・ストアでは、これらのアプリケーション・ロールは<policy-store>の<app-role>要素で定義され、デプロイ時にドメイン・レベルでsystem-jazn-data.xmlに書き込まれます。

アプリケーション・ポリシー・ストアにアプリケーション・ロールを追加する手順は、次のとおりです。

1. アプリケーション・ナビゲータで、アプリケーションを開きます。

2. 「アプリケーション」→「保護」→「アプリケーション・ロール」を選択し、jazn-data.xmlファイルの概要エディタの「アプリケーション・ロール」ページを開きます。

3. 「追加」アイコンをクリックし、現在選択されているロールのピアまたは子として新規アプリケーション・ロールを作成するか、新規ロール・カテゴリを作成します。「ロール」リストに新規アプリケーション・ロールまたはカテゴリが表示されます。

4. 「名前」、「表示名」および「説明」フィールドにロールまたはロール・カテゴリの詳細を入力します。

5. jazn-data.xmlファイルへの変更内容を保存します。

詳細は、『Oracle Fusion Middleware Oracle WebLogic Serverロールおよびポリシーによるリソースの保護』ガイドを参照してください。

14.6.4 アプリケーション・ロールへのメンバー・ユーザーまたはエンタープライズ・ロールの追加方法

デプロイメント・ユーザーおよびロールは、使用するセキュリティ・プロバイダで定義されます。ファイルベース・プロバイダの場合、デプロイメント・ユーザーおよびロールはjazn-data.xmlファイルで定義されます。

注意:

メンバー・ユーザーまたはメンバー・ロールをアプリケーション・ロールに追加する前に、まずアイデンティティ・ストアのメンバー・ユーザーおよびメンバー・ロールを定義する必要があります。

アプリケーション・ロールにユーザーまたはエンタープライズ・ロールを追加するには、次のようにします。

1. アプリケーション・ナビゲータで、アプリケーションを開きます。

2. 「アプリケーション」→「保護」→「アプリケーション・ロール」を選択し、jazn-data.xmlファイルの概要エディタの「アプリケーション・ロール」ページを開きます。

3. 「アプリケーション・ロール」リストからアプリケーション・ロールを選択し、「メンバー」タブをクリックします。

4. ユーザーを追加するには、「メンバー・ユーザーとロール」で、「ユーザーまたはロールの追加」アイコンをクリックし、「ユーザーの追加」を選択します。

5. エンタープライズ・ユーザーを追加するには、「メンバー・ユーザーとロール」で、「ユーザーまたはロールの追加」アイコンをクリックし、「エンタープライズ・ロールの追加」を選択します。

6. jazn-data.xmlファイルへの変更内容を保存します。

14.6.5 カスタム・リソース・タイプの作成方法

カスタム・リソース・タイプを作成し、これらをjazn-data.xmlファイルに指定できます。

リソース・タイプは、フロー、ジョブ、Webサービスなどのセキュア・アーティファクトのタイプを表し、基本的には特定のタイプのリソースを作成するためのテンプレートです。すべてのリソースは、タイプが関連付けられており、タイプに応じてフィルタまたはグループ化されます。

カスタム・リソース・タイプを作成するには、次のようにします。

1. アプリケーション・ナビゲータで、アプリケーションを開きます。

2. 「アプリケーション」→「保護」→「リソース権限」を選択し、jazn-data.xmlファイルの概要エディタの「リソース権限」ページを開きます。

3. 「リソース権限」ページで、「リソース・タイプ」フィールドの横にある「新規リソース・タイプ」アイコンをクリックします。

4. 「リソース・タイプの作成」ダイアログで、名前、表示名および関連付けられたアクションなどのリソースのプロパティを指定します。「リソース・タイプの作成」ダイアログの「アクション」リストを使用して、このタイプのリソースの「リソース権限」ページでチェック可能な項目リストを移入します。

5. jazn-data.xmlファイルを保存します。

14.6.6 アプリケーション・ポリシー・ストアへのリソース権限の追加方法

jazn-data.xmlの概要エディタの「リソース権限」ページを更新することにより、アプリケーション・リソース権限をアプリケーション・ポリシー・ストアに追加できます。

リソースは、具体的なリソースを表すリソース・タイプのインスタンスであり、ポリシーで保護できるアプリケーション・リソースを定義します。このリソースには、URL、EJB、JSPのようにコンテナで管理するソフトウェア・コンポーネントや、レポート、トランザクション、収益チャートなどのアプリケーション・ビジネスがあります。

アプリケーション・ポリシー・ストアにリソース権限を追加するには、次のようにします。

1. アプリケーション・ナビゲータで、アプリケーションを開きます。

2. 「アプリケーション」→「保護」→「リソース権限」を選択し、jazn-data.xmlファイルの概要エディタの「リソース権限」ページを開きます。

3. セキュリティ・ポリシーを定義するには、「セキュリティ・ポリシー」フィールドで項目を選択します。デフォルトでは、アプリケーション・セキュリティ・ポリシーが選択されています。グローバル・リソース権限を定義するには、「グローバル」を選択します。

4. 「リソース・タイプ」ドロップダウン・メニューからリソース・タイプを選択するか、「新規リソース・タイプ」アイコンをクリックしてリソース・タイプを作成します。

5. プロジェクトによってフィルタされるリソース・タイプの場合、「ソース・プロジェクト」セレクタが有効です。目的のリソースを検索するためにソース・プロジェクト選択を変更する必要がある場合があります。

6. 選択したリソース・タイプに属するリソースは「リソース」リストに表示されます。

7. 「付与先」リストの「権限受領者の追加」アイコンをクリックし、リソース権限が付与されているエンティティを管理します。アプリケーション・ロール、ユーザー、エンタープライズ・ロールまたはコード・ソースに対して付与できます。

8. 「アクション」リストでリソースに許可されているアクションを表示および選択します。

14.6.7 アプリケーション・ポリシー・ストアへの資格付与の追加方法

jazn-data.xmlの概要エディタの「資格付与」ページを使用すると、一連のリソース権限を定義し、各権限を各アプリケーション・ロールに個別に付与する必要なく、これらの権限を複数のアプリケーション・ロールに付与できます。

資格は、権限のコレクションです。通常、これによって、特定のビジネス機能またはタスクを実行するために必要な権限のリストがカプセル化されます。

アプリケーション・ポリシー・ストアに資格付与を追加するには、次のようにします。

1. アプリケーション・ナビゲータで、アプリケーションを開きます。

2. メイン・メニューで、「アプリケーション」→「保護」→「資格付与」を選択し、jazn-data.xmlファイルの概要エディタの「資格付与」ページを開きます。

3. 資格付与を追加するには、「資格」リストの「資格の追加」アイコンをクリックします。

4. メンバー・リソースを追加するには、「リソース」をクリックし、「メンバー・リソース」リストで「メンバー・リソースの追加」アイコンをクリックします。

5. 資格を付与するアプリケーション・ロールを選択するには、「付与」を選択し、「ロール付与の追加」アイコンをクリックします。「アプリケーション・ロールの選択」ダイアログで、アプリケーション・ロールを選択するか、新規アプリケーション・ロールを作成できます。

6. jazn-data.xmlファイルを保存します。

ヒント:

- 「付与先」列の「資格から付与を表示」アイコンをクリックすると、「リソース権限」ページで資格グループのメンバーであるリソースに対する権限を表示できます。このオプションは、デフォルトで選択されています。

- 「リソース権限」ページのポップアップ・メニューでメンバー・リソースを新規資格または既存の資格に追加することもできます。

14.6.8 カスタムJAAS権限クラスの作成方法

新規権限クラスは、保護対象の論理アーティファクト・タイプに対して独自のJAAS権限を作成する場合に便利です。たとえば、Oracle ADFではすでに、セキュリティを強制するアーティファクト用のビルトイン権限クラス(タスク・フロー、ページ定義、エンティティ・オブジェクトおよびエンティティ属性など)が提供されていますが、ユーザー・インタフェースで保護する一連のUIコンポーネント用にカスタム権限クラスを作成できます。このクラスを作成すると、Java、式言語(EL)、またはGroovy式を使用した強制チェックを追加でき、その後jazn-data.xmlファイルを直接編集してアプリケーション・ロールに新しいカスタム権限クラスを付与できます。たとえば、セキュリティ・ポリシーを定義してアプリケーションに表示されるメニューへのアクセスを制限し、その後、コンポーネントのrenderedプロパティ上のEL値userGrantedPermissionを使用して、メニュー表示と付与されたユーザーのカスタム権限を関連付けることができます。

カスタムJAAS対応権限クラスを作成するには、次のようにします。

1. アプリケーション・ナビゲータで、アプリケーションを開きます。

2. メイン・メニューから「ファイル」→「新規」を選択して「新規ギャラリ」を開きます。

3. 「新規ギャラリ」の「カテゴリ」で、「ビジネス層」→「セキュリティ」を選択します。

4. 「項目」で、「JAAS権限」を選択します。

5. JAAS権限の作成ダイアログで、カスタム権限クラスの詳細を入力します。ダイアログ内でヘルプを参照するには、「ヘルプ」をクリックするか[F1]を押します。

14.6.9 システム・ポリシー・ストアへの付与の追加方法

現在、このリリースには、システム権限付与をシステム・ポリシー・ストアに追加するためのエディタがありません。jazn-data.xmlのソース・コードで付与を手動で追加する必要があります。

システム・ポリシーへの付与を追加する手順は、次のとおりです。

1. アプリケーション・ナビゲータで、アプリケーションを開きます。

2. アプリケーション・ナビゲータで、jazn-data.xmlをダブルクリックし、概要エディタを開きます。

3. 「ソース」をクリックし、ソース・エディタを開きます。

4. ソース・コードで、<jazn-data>要素内に<jazn-policy>要素を作成します。

5. <jazn-policy>要素内で、目的のアプリケーション・ロールを持つ<grantee>、権限クラスの完全修飾クラス名を持つ<permission>、付与のターゲットとして使用する名前、およびアプリケーション・ロール・プリンシパルに付与するアクションを定義する<grant>要素を作成します。

6. jazn-data.xmlファイルへの変更内容を保存します。

14.7 ポリシー・ストアの移行

JDeveloperはデフォルトで、アプリケーションを実行するたびにアプリケーション・リポジトリから統合WebLogic Serverにセキュリティ・オブジェクトをデプロイするよう構成されています。この動作は、「アプリケーション・プロパティ」ダイアログでのセキュリティ・デプロイメント・オプションの選択により、次のように変更できます。

- ドメイン・レベル・ポリシーをアプリケーションのjazn-data.xmlファイル内のポリシーにより上書きするかどうかを決定します。

- システム資格証明をアプリケーションのcwallet.ssoファイルにより上書きするかどうかを決定します。

- jazn-data.xmlファイルのアイデンティティ・ストアの一部をドメイン・レベル・アイデンティティ・ストアに移行するかどうかを決定します。

デプロイ設定を変更しない場合、アプリケーションを実行するたびに、JDeveloperはドメイン・レベルのセキュリティ・ポリシーおよびシステム資格証明を上書きします。また、テスト目的で作成した新しいユーザー・アイデンティティを移行し、統合WebLogic Serverがそのアイデンティティ・ストアで使用する埋込みLDAPサーバー内の既存のユーザー・パスワードを更新します。ただし、統合WebLogic Server内の既存のセキュリティ・オブジェクトを更新せずにアプリケーションを実行する場合には、このオプションを選択できます。

14.7.1 ポリシー・ストアの移行方法

スタンドアロンOracle WebLogic Serverにアプリケーションをデプロイする準備ができている場合、同じ構成設定を使用して、JDeveloperでセキュリティ・オブジェクトの移行を処理する方法を制御できます。

セキュリティ・オブジェクトのデプロイを構成する手順は、次のとおりです。

1. 「アプリケーション」→「保護」→「セキュリティ・デプロイメントの構成」を選択し、「アプリケーション・プロパティ」ダイアログを開きます。

2. 「アプリケーション・プロパティ」ダイアログの「セキュリティ・デプロイメント・オプション」の下で、アプリケーションでデプロイするセキュリティ・オブジェクトを選択します。
デフォルトで、アプリケーションを実行するたびに、JDeveloperではドメイン・レベルのアプリケーション・ポリシーおよび資格証明がアプリケーションのアプリケーション・ポリシーおよび資格証明により上書きされます。これらのリポジトリを上書きしない場合、「アプリケーション・ポリシー」または「資格証明」の選択を解除します。選択を解除すると、新規ポリシーまたは資格証明のみがドメイン・レベルのストアにマージされます。詳細は、後述のセクションを参照してください。

デフォルトでは、アプリケーションを実行するたびに、テスト目的で作成する新規ユーザーのアイデンティティがJDeveloperによって移行され、統合WebLogic Serverでアイデンティティ・ストア用に使用される埋込みLDAPサーバーにある既存のユーザー・パスワードが更新されます。「ユーザーとグループ」の選択を解除して、アプリケーションのアイデンティティ・ストアの移行を無効にできます。詳細は、後述のセクションを参照してください。

3. 「OK」をクリックします。

14.7.2 アプリケーション・ポリシーの移行

Oracle WebLogic Server環境のサーバーにアプリケーションをデプロイする際、jazn-data.xmlで指定したアプリケーション・ポリシーをドメイン・ポリシー・ストアに移行できます。必要に応じて、アプリケーションがアンデプロイされる際、またはアプリケーションが再デプロイ時に更新される際に、ドメイン・ポリシー・ストアからポリシーを削除することもできます。

「アプリケーション・プロパティ」ダイアログで「アプリケーション・ポリシー」が選択されている場合、JDeveloperによるアプリケーションのデプロイ時、パッケージ化されたweblogic-application.xmlでjps.policystore.migrationプロパティはOVERWRITEに設定されます。「アプリケーション・ポリシー」が選択されていない場合、jps.policystore.migrationの設定はパッケージ化されたweblogic-application.xmlに追加されず、すでに存在する場合には削除されます。これによりOracle WebLogic Serverではデフォルトの操作MERGEが使用されます。ポリシーが存在しない場合、アプリケーションが初めてデプロイされるときのみマージによりポリシーが移行されます。アプリケーションのポリシーがすでに存在する場合、再移行は行われません。

アプリケーション・ポリシーの自動および手動による移行の詳細は、『Oracle Fusion Middlewareセキュリティ・ガイド』を参照してください。

14.7.3 資格証明の移行

アプリケーション・ポリシーを移行する際、資格証明も移行する必要がある場合があります。WebLogic環境で管理されたサーバーにアプリケーションをデプロイまたは再デプロイする際に、cwallet.ssoで指定されたアプリケーションの資格証明をドメイン資格証明ストアに移行できます。したがって、資格証明の移行には、JDeveloper内で作成されたすべての接続(Webサービス用に作成された接続を含む)のパスワードが含まれます。(これは、jazn-data.xmlファイルのアイデンティティ・ストアで指定したユーザー資格証明には関連しません。アイデンティティ・ストアの移行の詳細は、次の第14.7.4項「ユーザーおよびグループの移行」を参照してください)。

「アプリケーション・プロパティ」ダイアログで「資格証明」が選択されている場合、JDeveloperによるアプリケーションのデプロイ時、パッケージ化されたweblogic-application.xmlでjps.policystore.migrationプロパティはOVERWRITEに設定されます。「資格証明」が選択されていない場合、jps.policystore.migrationの設定はパッケージ化されたweblogic-application.xmlに追加されず、すでに存在する場合には削除されます。これによりOracle WebLogic Serverではデフォルトの操作MERGEが使用されます。資格証明が存在しない場合、アプリケーションが初めてデプロイされるときのみマージにより資格証明が移行されます。アプリケーションの資格証明がすでに存在する場合、再移行は行われません。

資格証明を移行できるのは、サーバーが開発モードで実行中の場合のみです。本番モードでは、資格証明を上書きできません。アプリケーション資格証明の移行は、JDeveloperの外部のツールを使用したデプロイ時に手動で行う必要があります。

14.7.4 ユーザーおよびグループの移行

WebLogic環境のサーバーにアプリケーションをデプロイする際、jazn-data.xmlで指定したユーザーおよびロールをドメイン・アイデンティティ・ストアに移行できます。

「アプリケーション・プロパティ」ダイアログで「ユーザーとグループ」が選択されている場合、アプリケーションをデプロイしてアプリケーションのjazn-data.xmlユーザーおよびロールに関連するOracle WebLogic Serverのユーザーおよびグループを作成すると、JDeveloperではコールが作成されます。ドメイン・ストアにユーザーがすでに存在する場合は、説明およびパスワードのみがデプロイ時に再移行されます。jazn-data.xmlファイル内のロールと同じ名前でグループがドメイン・ストア内に存在する場合、それは完全に置き換えられます。「ユーザーとグループ」が選択されていない場合、アイデンティティ・ストアのjazn-data.xmlアプリケーションからの移行は試行されません。

注意:

ドメイン・アイデンティティ・ストアが上書きされないよう、ユーザーとグループを移行する前には、管理ロール(admin)およびユーザー(weblogic)がアプリケーションのjazn-data.xmlファイル内で使用されていないことを確認してください。アプリケーションを本番環境にデプロイする準備ができたら、jazn-data.xmlファイルからアイデンティティを削除するか、「アプリケーション・プロパティ」ダイアログで「ユーザーとグループ」の選択を解除して、アイデンティティの移行を無効にしてください。

14.8 JDBCを使用した開発の保護

JDeveloperでJDBCデータベース接続を作成すると、マシンにインストールされているデータベース・クライアントから暗号化プロパティが導出されます。JDBCを使用してセキュアな接続を作成するには、次のようにします。

- クライアント・マシンのsqlnet.oraファイルでパラメータを設定し、OCIドライバによる暗号化サポートを構成します。

- JDBCシン・ドライバを使用し、JDeveloperにセキュアなJDBC接続を作成します。データベース接続の作成ウィザードのステップ3 (「接続」ページ)で、「カスタムJDBC URLの入力」を選択し、例14-3に示すように、暗号化パラメータをカスタムJDBC URLの一部として入力します。

例14-3 暗号化パラメータ

jdbc:oracle:thin:@(description
=(address=(protocol=tcp)(host=myhost)(port=1521))(connect_data=
(sid=ORCL)(SQLNET.ENCRYPTION_CLIENT=REQUIRED)(SQLNET.ENCRYPTION_TYPES_
CLIENT=DES40)(SQLNET.CRYPTO_CHECKSUM_CLIENT=REQUESTED)
(SQLNET.CRYPTO_CHECKSUM_TYPES_CLIENTMD5=MD5) ))

15 XMLを使用したアプリケーションの開発

この章では、JDeveloperによって提供されるXMLツールおよびエディタを使用してアプリケーションを作成および更新する方法について説明します。

この章では、次の項目について説明します。

- 第15.1項「XMLを使用したアプリケーションの開発について」

- 第15.2項「XMLエディタの使用」

- 第15.3項「Oracle JDeveloperでのXMLファイルの作成」

- 第15.4項「Oracle JDeveloperでのXMLファイルの編集」

- 第15.5項「XMLスキーマの使用」

- 第15.6項「XSQLサーブレットを使用したデータバインドXMLページの開発」

15.1 XMLを使用したアプリケーションの開発について

JDeveloperには、アプリケーション内でXMLファイルを使用するために必要なツールが用意されています。XMLソース・エディタ、XMLバリデータ、およびXMLスキーマを使用するためのツールがあります。また、JDeveloperを使用してXSQLファイルを作成および編集することもできます。これには、アプリケーション内で多くの各種タイプのXMLファイルを作成および編集できる強力なXML編集環境が用意されています。

JDeveloperを使用すると、XMLスキーマを簡単に開発できます。スキーマ文書を最初から作成したり、スキーマをXML文書から(またはこの逆から)生成できます。スキーマを作成したら、XSDビジュアル・エディタおよびコンポーネント・パレットを使用して要素を管理します。詳細は、第15.5項「XMLスキーマの使用」を参照してください。

また、XSQLファイルを最初から作成することも、既存のファイルを編集することもできます。JDeveloperには、XSQLサーブレットを使用してデータ・バインドされたXMLページの作成を簡略化する完全な開発環境が用意されています。詳細は、第15.6項「XSQLサーブレットを使用したデータバインドXMLページの開発」を参照してください。

15.2 XMLエディタの使用

JDeveloperには、XMLファイルを使用するために3つの異なるエディタが用意されています。

- XMLエディタは、XSQL、XSL、XSD、XHTML、およびWSDLファイルを含むXML言語の編集に特化したスキーマ・ドリブンのエディタです。

- 概要エディタを使用すると、XMLファイルを表示および編集できます。これには、フィルタ、セキュリティおよびリファレンスなどの開発関連のXMLファイルの各側面が視覚的に表示されます。詳細は、第11章「Webページ・ツールを使用したアプリケーションの開発」を参照してください。

- XSDビジュアル・エディタを使用すると、XMLスキーマを作成または編集できます。これには、XML文書の構造、内容、およびセマンティクスが表示されます。詳細は、第15.5.3項「XSDビジュアル・エディタでのXSDコンポーネント表示の理解」を参照してください。

15.2.1 XML編集機能の理解

表15-1は、XMLファイルを使用する際に使用可能な編集機能の概要です。

表15-1 XML編集機能

機能

用途

コード・インサイト

入力時に、< (開き山カッコ)を入力して間をおくか、[Ctrl]キーを押しながら[Space]キー(デフォルトのキーマッピングを使用している場合)を押すと、コード・インサイトを起動できます。コード・インサイトには、構文に基づいて有効な要素がリスト表示されます。要素を選択した後、空白を入力してから間をおくか、[Ctrl]キーを押しながら[Space]キーを押し、選択可能な属性のリストを表示します。属性値に対する左引用符を入力すると、必要な値の型または使用可能な値のリストが表示されます。

XML検証

開いているXMLソース・エディタ・ウィンドウ、またはアプリケーション・ナビゲータで、XMLファイルを右クリックして「XMLの検証」を選択します。「XMLの検証」コマンドは、XMLファイルで定義されているJDeveloperに登録されているスキーマに対してXMLを検証します。スキーマをJDeveloperに登録するには、「ツール」→「設定」→「XMLスキーマ」を選択します。XMLファイルでXMLネームスペースが定義されていない場合、ポップアップ・メニューのこのコマンドは使用できません。

クイック・フォーム・チェック

ファイルの整形式をチェックするには、XMLファイルを右クリックして「メイク」を選択します。

XMLスキーマ・プリファレンス

「プリファレンス」ダイアログの「XMLスキーマ」ページのオプションを使用して、現在登録されているすべてのXMLスキーマの表示、その他のネームスペースおよび要素のサポートのための新規スキーマの追加、ユーザー定義スキーマの削除、およびメモリーからのスキーマのアンロードを実行します。

「プリファレンス」ダイアログにアクセスするには、「ツール」→「プリファレンス」→「XMLスキーマ」の順に選択します。

XMLプリファレンス

これらの機能は、XMLのプリファレンス・ページでカスタマイズできます。「ツール」→「プリファレンス」→「コード・エディタ」→「XMLおよびJSP/HTML」の順に選択し、XMLプリファレンスを表示します。

「必須属性の自動挿入」が選択されている場合、要素の必須属性も挿入されます。

「終了タグの自動補完」が選択されている場合、開始タグを閉じると終了タグが自動的に挿入されます。たとえば、<fooと入力した後に>と入力すると、</foo>が自動的に追加されます。

コンポーネント・パレット

「表示」→「コンポーネント・パレット」を選択してパレットを開き、ドロップダウン・リストから使用可能なページを1つ選択できます。たとえば、XSDファイルを編集している場合は、パレットのXMLスキーマ・ページから要素を選択できます。

プロパティ・インスペクタ

プロパティ・インスペクタには、ファイルの要素の属性が表示されます。プロパティ・インスペクタで属性の値を編集し、ファイルを更新します。

「構造」ウィンドウ

ファイルの要素は、構造ウィンドウに階層化されて表示されます。このウィンドウには、入力および編集の際に検出されたXML構文エラーも表示されます。要素またはエラーをダブルクリックすると、XMLエディタで編集できます。

XMLの検証

開いているXMLエディタ・ウィンドウ、またはアプリケーション・ナビゲータで、XMLファイルを右クリックして「XMLの検証」を選択します。このコマンドを選択すると、XMLファイルで定義されたスキーマに基づいてXMLが検証されます。XML制約および定義は検証されますが、XSDは検証されません。XMLファイルでXMLネームスペースが定義されていない場合、コンテキスト・メニューのこのコマンドは使用できません。

[F2]キー

XMLスキーマを作成した後、「構造」ウィンドウで要素を選択し、[F2]を押します。これで、要素のフォーカスはXMLデザイン・エディタに設定されます。要素の新規テキストはXMLデザイン・エディタに自動的に入力できます。

属性の展開/縮小

complexType要素の下に表示される属性を展開または縮小できます。これは、要素の下に表示される属性のリストが大きくなる場合があるため便利な機能です。

15.2.2 XMLエディタのツールバーの理解

表15-2に、XMLエディタのツールバーに表示されるアイコンを示します。

表15-2 XMLエディタのツールバーのアイコン

アイコン

名前

説明

検索([Ctrl]+[F])

XMLエディタに検索テキストを入力します。下矢印をクリックすると、追加パラメータ(大/小文字を区別する検索を実行する場合は「大/小文字の区別」、完全に一致する単語のみを検索する場合は「完全一致」、一致する場所を示すためにシェーディングを使用する場合は「発生を強調表示」など)を表示して設定できます。

次を検索([F3])

指定したパラメータに一致する次の箇所をファイル内で検索する場合にクリックします。

前を検索([Shift]+[F3])

指定したパラメータに一致する前の箇所をファイル内で検索する場合にクリックします。

15.3 Oracle JDeveloperでのXMLファイルの作成

新規ギャラリには、表15-3に示すように、XMLファイル・タイプの様々なオプションが用意されています。新規XMLファイルを作成するには、「ファイル」メニュー→「新規」→「一般」→「XML」を選択します。

表15-3 XMLファイル・タイプ

ファイル・タイプ

説明

XML文書

上部に<?xml version="1.0"?>行のみが含まれる新規XMLファイルを作成します。

XMLスキーマからのXML文書

既存のXMLスキーマからXML文書を生成します。

XMLローカライゼーション・ファイル(XLIFF)

.xlf拡張子付きのXMLベースのローカライゼーション・ファイルを作成します。詳細は、第15.3.1項「XMLを使用したローカライズ」を参照してください。

XMLスキーマからのXML文書

XMLスキーマからXML文書を生成します。

XQueryファイル

.xq拡張子付きのXQueryファイルを作成します。詳細は、第15.4.2項「XMLを使用したXQueryの使用」を参照してください。

XSLマップ

.xsl拡張子付きのXSLマップ・ファイルを作成します。

XSLスタイルシートからのXSLマップ

XSLスタイルシートから.xsl拡張子付きのXSLマップ・ファイルを作成します。

XSLスタイルシート

.xsl拡張子付きのXSLスタイルシートを作成します。詳細は、第15.6.12項「XSQLファイルからのXMLスタイルシートの作成方法」を参照してください。

XSQLファイル

.xsql拡張子付きのXSQLファイルを作成します。詳細は、第15.6.2項「XSQLファイルの作成方法」を参照してください。

15.3.1 XMLを使用したローカライズ

JDeveloperには、XMLベースのXLIFFテクノロジに基づいてアプリケーションに対する完全なローカライゼーションをサポートするツールがあります。XLIFFは、アプリケーションを国際化する際に翻訳者およびベンダーによって使用されるデータを保持するタグおよび属性を提供することにより、完全なローカライゼーション・プロセスをサポートしています。

15.3.1.1 新規XLIFFファイルの作成方法

新規XMLFFファイルは、JDeveloperの新規ギャラリでXMLノードの下に作成します。

新規XLIFFファイルを作成するには、次のようにします。

「ファイル」メニュー→「新規」→「一般」→「XML」→XMLローカライゼーション・ファイルを選択します。

XLIFFの詳細は、OASISオープン標準のWebサイト(http://www.oasis-open.org/home/index.php)を参照してください。

15.3.1.2 XLIFFファイルについての注意事項

XLIFFファイルの主な要素は、trans-unit要素です。これらの要素には、ローカライゼーション・テキストとその翻訳が格納されます。これらの要素は、セグメント(通常は、独立して適切に翻訳できるソース・ファイル内のセンテンス)を表します。trans-unit要素には、source、target、alt-trans、およびいくつかの他の要素が含まれます。

この他にも、レビュー・コメント、個別文字列の翻訳ステータス、およびソース・センテンスの文字数などのメトリック用の要素があります。XLIFFファイルは、1つ以上のファイル要素で構成されます。これらにはそれぞれ、ヘッダー・セクションと本体セクションがあります。ヘッダーには、連絡先情報、プロジェクト・フェーズ、参考資料へのポインタ、およびスケルトン・ファイル上の情報などのプロジェクト・データが含まれます。

JDeveloperでは、リソース・バンドルを使用して、XLIFFファイルを含むすべてのローカライゼーション情報を保持します。JSFページのコンテンツを作成すると、リソース・バンドルはこのプロジェクト内で自動的に作成されます。

15.3.2 XMLスキーマのインポートおよび登録方法

「設定」ダイアログでXMLスキーマ・ページのオプションを使用して、現在登録されているすべてのXMLスキーマの表示、その他の名前空間と要素をサポートするための新しいスキーマの追加、ユーザー定義のスキーマの削除、およびスキーマのメモリーからの削除を行います。

XMLスキーマをインポートおよび登録するには、次のようにします。

1. メイン・メニューから、「ツール」→「プリファレンス」を選択します。

2. 「XMLスキーマ」ノードを選択します。

3. 「追加」をクリックし「スキーマの追加」ダイアログを開きます。このダイアログで、新しいスキーマを指定してユーザー・スキーマ・リストに追加します。

4. 追加するXMLスキーマ・ファイルの名前と場所を「ファイルシステムもしくはURLからスキーマを追加」フィールドに入力します。

5. ファイル拡張子を「拡張子」フィールドに入力し、特定のファイル・タイプに対してスキーマを登録します。JDeveloperでは、この拡張子を使用してメモリーにスキーマを効率的にロードし、スキーマ内の項目に基づいて自動生成したコンポーネント・パレット・ページを表示します。

6. 「OK」をクリックします。
スキーマの追加時にJDeveloperによる自動検証が行われます。

7. 新しいスキーマが「ユーザー定義のXMLスキーマ」リストに追加されたかどうかを確認して「OK」をクリックします。

ヒント:

「削除」ボタンで削除できるのは、ユーザー定義のスキーマのみです。

スキーマが変更された場合は、「キャッシュのクリア」ボタンを使用して、現在ロードされているすべてのスキーマをメモリーから削除する必要があります。その後、変更されたスキーマを含むすべての必要なスキーマが再ロードされます。

15.3.3 XML要素のパレットへの追加方法

JDeveloperのコンポーネント・パレットにページを追加して、登録済のスキーマから要素を組み込んだり、既存のページに要素を追加することができます。パレットに要素を追加すると、パレットから要素を選択して編集中にXMLファイルに挿入できるようになります。

コンポーネント・パレットにXML要素を追加するには、次のようにします。

1. メイン・メニューから、「ツール」→「パレットの設定」を選択して「コンポーネント・パレットの設定」ダイアログを開きます。
新規のページを追加しない場合は、ステップ4に進みます。

2. 「ページ」リストの下の「追加」をクリックし、「新規パレット・ページ」ダイアログを開きます。

3. 「新規パレット・ページ」ダイアログで、新規ページの名前を入力し、ドロップダウン・リストから適切なタイプを選択して「OK」をクリックします。
「コンポーネント・パレットの設定」ダイアログの「ページ」リストの最下部に、新しいページ名が追加されます。

4. 「ページ」リストで新規ページ名を選択し、「コンポーネント」リストの下の「追加」をクリックして「XML要素」ダイアログを開きます。
「XML要素」ダイアログに「登録済のスキーマ」が表示されます。

5. 該当するスキーマ・ノードを開き、パレットに追加可能な要素を表示します。

6. 要素を1つずつ追加するには、ツリーでその要素を選択します。複数の要素をまとめて追加するには、[Ctrl]または[Shift]を押しながらクリックしてそれらの要素を選択します。次に、「OK」をクリックします。
「OK」をクリックする前に、「デフォルト・アイコンの使用」または「アイコンの選択」をクリックし、パレット上で個々の要素に表示するアイコンを選択することもできます。

7. XML要素を追加した後、「OK」をクリックして「コンポーネント・パレットの設定」ダイアログを閉じます。

パレットのドロップダウン・リストに、追加したページ名が表示されます。デフォルトのアイコンを受け入れた場合、追加したタグはすべて山カッコ(<>)付きで表示されます。パレットに要素名が表示されない場合は、パレット内を右クリックして「一覧で表示」を選択します。

15.3.4 JAXBを使用したXMLスキーマからのJavaクラスの生成方法

JDeveloperでは、JAXB (Java Architecture for XML Binding)を使用して、XMLスキーマからJavaクラスを生成できます。JAXBを使用すると、XMLを知らなくてもXMLデータおよび処理機能をJavaアプリケーションに簡単に組み込むことができます。必要な注釈を含むJAXB 1.0または2.0コンテンツ・モデルをXMLスキーマから生成できます。

XMLスキーマに対してJAXBバインディング・コンパイラを実行すると、JAXBパッケージ、クラスおよびインタフェースが生成されます。生成されたJAXBパッケージおよびJAXBユーティリティ・パッケージをバインディング・フレームワークで使用すると、XMLコンテンツをアンマーシャリング、マーシャリングおよび検証できます。

JAXBを使用してXMLスキーマからJavaクラスを生成するには、次のようにします。

1. メイン・メニューから「ファイル」→「新規」→「ビジネス層」→「TopLink/JPA」を選択し、JAXB 1.0またはXMLスキーマからの2.0コンテンツ・モデルを選択し、コンパイル・ダイアログを開きます。

2. スキーマ・ファイルおよび必要に応じて使用するJAXBカスタマイズ・ファイル、および生成されたクラスの追加先のパッケージを選択します。
JAXBパッケージと生成されたクラスがApplication Resourcesフォルダに追加されます。

15.4 Oracle JDeveloperでのXMLファイルの編集

JDeveloperのXMLソース・エディタは、XSD、WSDL、XSQL、XHTMLおよびXSLファイルなど、XML言語の編集に特化したスキーマ・ドリブンのエディタです。

XMLソース・エディタでXMLファイルを編集するには、次のようにします。

1. ナビゲータで、ファイルを右クリックして「開く」を選択します。

2. デフォルトで開かれていない場合、このファイルの「ソース」タブをクリックします。

3. 入力時に、左山カッコ(<)を入力してから時間を置くか、(デフォルトのキー割当てを使用している場合) [Ctrl]キーを押しながら[Space]キーを押すと、コード・インサイトを起動できます。コード・インサイトには、スキーマに基づいて有効な要素がリスト表示されます。

4. 要素を選択した後、空白を入力してから間をおくか、[Ctrl]キーを押しながら[Space]キーを押し、選択可能な属性のリストを表示します。属性値に対する左引用符を入力すると、ヒント・インサイトで必要な値の型が表示されます。

ヒント:

コンポーネント・パレットを使用してXMLドキュメントを編集するには、「表示」→「コンポーネント・パレット」を選択してパレットを開き、ドロップダウン・リストから使用可能なページのいずれかを選択します。次に、そのページから要素を選択します。

15.4.1 XMLエディタの編集オプションの設定方法

XMLエディタでXMLファイルを編集する場合、2つの編集オプションを設定できます。

XMLエディタの編集オプションをカスタマイズするには、次のようにします。

1. 「ツール」→「プリファレンス」を選択します。

2. 「コード・エディタ」ノードを開きます。

3. 「XML」ノードを選択します。

4. 「XML」ノードを選択します。「XML」プリファレンス・ページで、「必須属性の自動挿入」または「終了タグの自動補完」を選択して、適切なオプションを有効にします。

5. 「OK」をクリックします。

15.4.2 XMLを使用したXQueryの使用

JDeveloperでXMLベースのXQueryファイルを作成および編集できます。XQueryには、XML文書またはXMLとして表示可能な任意のデータソース(リレーショナル・データベースやOfficeドキュメントなど)からデータを抽出して操作するための手段が用意されています。

15.4.2.1 新規XQueryファイルの作成方法

新規XQueryファイルは、JDeveloperの新規ギャラリでXMLノードの下に作成します。

新規XQueryファイルを作成するには、次のようにします。

「ファイル」メニュー→「新規」→「一般」→「XML」→「XQueryファイル」を選択します。

XQueryの詳細は、W3CのWebサイト(http://www.w3.org/TR/xquery/)を参照してください。

15.4.2.2 XPath式の構文についての注意事項

XQueryでは、XPath式の構文を使用してXML文書の特定の部分を処理します。この処理は、結合を実行するためのSQLのようなFLWOR式によって補足されます。FLWOR式は、FOR、LET、WHERE、ORDER BY、RETURNの5つの句で構成され、これらの頭文字を取って名前が付けられています。

この言語は、XML文書の情報内容のツリー構造モデルに基づいています。この言語には、文書ノード、要素、属性、テキスト・ノード、コメント、処理の指示、およびネームスペースの7種類のノードが含まれます。

15.5 XMLスキーマの使用

JDeveloperには、XML文書の構造、内容およびセマンティクスが視覚的に表示されるXSDビジュアル・エディタが用意されています。

15.5.1 XSDビジュアル・エディタの属性の使用

XSDビジュアル・エディタを使用して、XMLスキーマの属性を作成し、プロパティおよびファセットを設定できます。図15-1は、XSDビジュアル・エディタの「設計」タブ内のXMLスキーマの例を示しています。

図15-1 XSDビジュアル・エディタ内のスキーマ

属性エディタでattribute2の属性を編集できます。これは、図15-1ではunion要素として表示されています。このエディタでは、次を実行できます。

- 要素の下にある使用可能な属性をすべて表示します。詳細の表示と非表示を切り替えるには、属性の横にあるプラスまたはマイナス記号をクリックします。

- 属性ノード内の属性表示のファセットおよびタイプ詳細をすべて表示します。

- 属性ノードを右クリックしたときにデフォルトの「中に挿入」メニューを有効なスキーマ・コンポーネント(unionなど)とともに表示します。

- 内部の属性ノードを展開し、listやunionなどの子ノードが含まれるサブツリーを表示します。

15.5.2 XSDビジュアル・エディタでXMLスキーマを作成したときの処理内容

XSDビジュアル・エディタでXMLスキーマを作成すると、「設計」タブ内のXMLソースが自動的に更新されるとともに、「構造」ウィンドウの内容が更新されます。例15-1には、図15-1に表示されているexample.xsdファイルのソースが含まれます。

例15-1 XMLソース

<?xml version="1.0" encoding="windows-1252" ?>
xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"  xmlns="http://www.example.org"
targetNamespace="http://www.example.org"    <elementFormDefault="qualified">
<xsd:complexType name="UnionTest">
<xsd:sequence>
<xsd:element name="element1">
<xsd:complexType>
<xsd:attribute name="attribute1">
</xsd:attribute>
</xsd:complexType>
</xsd:element>
<xsd:element name="element2">
<xsd:complexType>
<xsd:attribute name="attribute2">
<xsd:simpleType>
<xsd:restriction>
<xsd:simpleType>
<xsd:union/>
</xsd:simpleType>
<xsd:pattern value="abcd"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>

15.5.3 XSDビジュアル・エディタにおけるXSDコンポーネントの表示の理解

JDeveloper XSDビジュアル・エディタには、XML文書の構造、内容およびセマンティクスが視覚的に表示されます。XSDビジュアル・エディタを使用して、新しいXMLスキーマを記述するか、既存のXMLスキーマを編集します。

15.5.3.1 XSDコンポーネントの選択

エディタでコンポーネントまたは属性を選択すると、選択項目が青くハイライト表示されます。図15-2で選択されているsimpleTypeコンポーネントは、単純型を定義しています。この要素を使用して、属性またはテキストのみのコンポーネントの値に関する制約と情報を指定します。ここでは、string型を制限しています。

図15-2 simpleTypeコンポーネント

15.5.3.2 XMLスキーマ・コンポーネント

XMLスキーマ・コンポーネントは、図15-3に示すように、XSDファイルの上部に表示されます。要素を右クリックして「プロパティ」を選択すると、スキーマ・ネームスペースを構成するためのダイアログが表示されます。

図15-3 XMLスキーマ・コンポーネント

15.5.3.3 choiceコンポーネント

choiceコンポーネントでは、図15-4に示すように、コンテナ・コンポーネント内に存在する<choice>宣言に含まれているコンポーネントのいずれか1つのみが許可されます。親の選択肢から複数の項目を使用するには、属性maxOccursを>1に設定します。

図15-4 choiceコンポーネント

15.5.3.4 allコンポーネント

図15-5に示すallコンポーネントでは、子コンポーネントを任意の順序で表示できること、および各子コンポーネントが0回または1回出現することを指定します。

図15-5 allコンポーネント

15.5.3.5 sequenceコンポーネント

図15-6に示すsequenceコンポーネントでは、子コンポーネントを順番に表示することを指定します。各子コンポーネントは、0回以上何度でも出現できます。

図15-6 sequenceコンポーネント

15.5.3.6 カーディナリティと順序性

図15-7に示すカーディナリティの例では、コンポーネントは次の属性で表示されます。

- 必須コンポーネント(minOccurs=">0")は、実線で表示されます。

- オプション・コンポーネント(minOccurs="0")は、点線で表示されます。

- 無限コンポーネント(maxOccurs="unbounded")は、コンポーネント・スタック数に無限大の記号が表示されます。複数回出現する可能性のあるコンポーネントは、コンポーネントのスタックとして表示されます。コンポーネントの左側の数では、コロンの前の数がそのコンポーネントの最低出現回数(minOccurs)を示し、コロンの後の数がそのコンポーネントの最高出現回数(maxOccurs)を示します。次の図では、最高出現回数が無限のコンポーネントに無限大の記号が表示されています。

- コンポーネントの範囲は、コンポーネント・スタック数で示されます。次の図のコンポーネントの場合、インスタンス文書内に少なくとも2回出現しますが、最高で7回となります。

図15-7 cardinalityコンポーネント

15.5.3.7 complexTypeコンポーネント

図15-8のcomplexTypeコンポーネントは、ベース型を拡張したもので、ベース型から属性と子を継承しています。黄色の背景色は、スキーマの別の部分で定義されている(complexTypeコンポーネントの下にある)baseTypeへの参照を示しています。コンポーネント属性は、次のように表示されます。

- 継承属性には、四角い記号が付きます。

- オプション属性には、四角い記号が付きます。

- 必須属性には、オレンジ色のアスタリスクが付きます。

- 禁止属性には、オレンジ色のXが付きます。

図15-8 complexTypeコンポーネント

15.5.3.8 属性グループ・コンポーネント

属性グループ・コンポーネントは、一連の属性宣言をグループ化し、これらを複合型の定義にグループとして組み込めるようにします。

図15-9には、3つの属性グループが表示されています。

図15-9 属性グループ・コンポーネント

複数のattributeGroupsがある要素をスキーマに追加する場合、要素の属性をクリックしてドロップダウン・リストから選択することにより、要素の1つ以上のattributeGroupsを選択して追加できます。

15.5.3.9 unionコンポーネント

unionコンポーネントでは、指定された単純データ型の値のコレクション(共用体)として単純型を定義します。図15-10では、unionは、iで始まる文字列すべてを表しています。

図15-10 unionコンポーネント

15.5.3.10 listコンポーネント

listコンポーネントでは、指定したデータ型の値のリストとして単純型のコンポーネントを定義します。図15-11では、このコンポーネントは、一連のshortコンポーネントの値オブジェクトを表しています。

図15-11 listコンポーネント

15.5.4 XMLスキーマのXML文書からの生成方法

新規ギャラリのXMLウィザードを使用すると、業界標準のW3C XMLスキーマ(.xsd)をXML (.xml)文書から簡単に生成できます。逆に、XML文書をXMLスキーマから生成することもできます。

XMLスキーマをXML文書から生成するには、次のようにします。

1. 「ファイル」メニュー→「新規」→「一般」→「XML」→「XMLドキュメントからのXMLスキーマ」を選択します。

2. 指示に従って情報を入力します。

XML文書をXMLスキーマから生成するには、次のようにします。

1. 「ファイル」メニュー→「新規」→「一般」→「XML」→「XMLスキーマからXMLドキュメント」を選択します。

2. 指示に従って情報を入力します。

15.5.5 XSDファイルのDTDファイルからの生成方法

XMLスキーマ文書(XSD)ファイルをDTD (Document Type Definition)ファイルから生成できます。

XSDファイルをDTDから生成するには、次のようにします。

1. メイン・メニューで、「ツール」をクリックします。

2. 「ツール」メニューで、「DTDのXSDへの変換」をクリックします。

15.5.6 編集を目的としたXSDファイルの表示方法

編集するスキーマ・ファイル(.xsd)は、XSDビジュアル・エディタまたはXMLソース・エディタで開きます。デフォルトでは、新しいスキーマ・ファイルは、XSDビジュアル・エディタでフォーカスのある状態で開かれます。アプリケーション・ナビゲータでファイルをダブルクリックすると、デフォルトのエディタが開くか、「設計」タブで前面に表示されます。「ソース」タブをクリックすると、XMLソース・エディタでファイルが開きます。いずれかのエディタで加えた変更は、もう一方のエディタに自動的に反映されます。

スキーマ・ファイル(.xsd)は、ビジュアル・エディタとソース・エディタで同時に編集できます。同時に編集するには、2つのエディタの一方でページを開き、分割線を使用して他方のエディタでもう1つのページ・ビューを開きます。

2つのエディタにスキーマ・ファイルを表示するには、次のようにします。

- ファイルを水平方向に分割するには、垂直スクロール・バーのすぐ上(ウィンドウの右上隅)でスプリッタをクリックし、下にドラッグします。

- ファイルを垂直方向に分割するには、水平スクロール・バーのすぐ右(ウィンドウの右下隅)でスプリッタをクリックし、左にドラッグします。

15.5.7 XSDビジュアル・エディタの「設計」タブのイメージの作成方法

XSDビジュアル・エディタの「設計」タブはイメージとして作成できます。これにより、このイメージをファイルまたは出力として他のユーザーと共有できます。

サポートされているイメージ・フォーマットは、.svg、.svgz、.jpgおよび.pngです。

1. アプリケーション・ナビゲータで、XSDビジュアル・エディタに表示する.xsdファイルをダブルクリックします。

2. XSDビジュアル・エディタで「設計」タブをクリックします。
図15-12に示すような.xsdファイルの設計ビューが表示されます。

図15-12 XSDビジュアル・エディタの「設計」タブ

3. 「設計」タブの任意の場所を右クリックし、「ダイアグラムの公開」を選択します。

4. 名前、ダイアグラムを保存する場所のパス、および使用するイメージ・タイプを入力します。

注意:

保存しようとするダイアグラムが大きすぎる場合、イメージを.svgフォーマットで保存する必要があることを示すメッセージが表示されます。

XSDビジュアル・エディタ内でノードを右クリックすると、現在のノードとその子ノードのみがイメージとして保存されます。

15.5.8 XSDビジュアル・エディタでのグラブ・スクロールによるナビゲート方法

XSDビジュアル・エディタでは、グラブ・スクロール操作を使用して、スクロールバー付きで表示されているXMLスキーマ内を簡単に移動できます。グラブ・スクロールでは、小さな手の形のカーソルを使用してXMLスキーマ・ページをつかみ、エディタ・ウィンドウ内部でドラッグします。

グラブ・スクロールを使用してXMLスキーマ内を移動するには、次のようにします。

1. XSDビジュアル・エディタで、[Space]を押したままの状態にします。
カーソルが、開いた手の形に変化します。

2. マウスの左ボタンを押したままの状態にします。
手が閉じて、XMLスキーマ・ページをつかみます。

3. マウスを使用して、エディタ・ウィンドウ内部でXMLスキーマ・ページを移動します。

4. マウスの左ボタンを放すと、XMLスキーマ・ページも放れます。

5. グラブ・スクロールを終了するには、[Space]を放します。

15.5.9 XSDコンポーネント表示の展開および縮小方法

XSDビジュアル・エディタまたは設計構造ウィンドウを使用している場合、XSDコンポーネントを展開または折りたたんで子コンポーネントの表示を切り替えることや、コンテナ・コンポーネントを折りたたんで上位レベルのスキーマ・ビューを作成できます。

親コンポーネントの1つ下のレベルを展開するには、次のようにします。

親コンポーネントのプラス記号(+)をクリックします。

親コンポーネントの下のすべてのレベルを折りたたむには、次のようにします。

親コンポーネントのマイナス記号(-)をクリックします。

スキーマのすべての親コンポーネントを展開するには、次のようにします。

[Ctrl]キーを押しながら[*]を押します(キーボードのテンキーにある[*]を使用します)。

注意:

このビューは大きくなる可能性があります。

15.5.10 XSDビジュアル・エディタでのズーム・インおよびズーム・アウト方法

ズーム操作を使用すると、XSDビジュアル・エディタのXMLスキーマの表示を拡大(ズーム・イン)または縮小(ズーム・アウト)できます。

ズーム・インするには、次のようにします。

1. 拡大表示するXMLスキーマの領域にカーソルを置きます。

2. [Ctrl]キーを押しながら[+]キーを押します。

注意:

キーボードのテンキーにある[+]を使用します。

ズーム・アウトするには、次のようにします。

1. 縮小表示するXMLスキーマの領域にカーソルを置きます。

2. [Ctrl]キーを押しながら[-]キーを押します。

注意:

キーボードのテンキーにある[-]を使用します。

15.5.11 XSDコンポーネントの選択方法

XSDビジュアル・エディタまたは構造ウィンドウ(設計またはソース・ビュー)で最もよく行う操作の1つは、作業対象のコンポーネントの選択です。コンポーネントを選択する理由には、次のようなものがあります。

- コンポーネントのプロパティの編集

- コンポーネントの移動

- コンポーネントの削除

- 別のコンポーネントを挿入するターゲット位置の選択

子を含まない単一のコンポーネント、子を含む単一のコンポーネントおよび複数のコンポーネントを選択できます。

1つのコンポーネントを選択するには、次のようにします。

- コンポーネントをクリックします。
子コンポーネントを含むコンポーネントを選択すると、子コンポーネントもすべて選択されます。親要素をコピー、移動または削除すると、その子要素もすべてコピー、移動または削除されます。

ヒント:

XSDビジュアル・エディタでXSDコンポーネントをダブルクリックすると、コンポーネントのプロパティ・エディタが表示されます。

複数のコンポーネントを選択するには、次のようにします。

1. 最初のコンポーネントをクリックします。

2. [Ctrl]キーを押したままの状態にします。

3. その他の選択するコンポーネントをクリックします。他のコンポーネントは選択したまま1つのみ選択を解除するには、[Ctrl]キーを押したままそのコンポーネントをもう一度クリックします。
削除以外の目的で隣接しない複数のコンポーネントを選択した場合、予想外の結果になることがあります。たとえばスキーマ階層の異なるレベルにあるコンポーネントを選択し、スキーマ・ページ内の別の場所に移動またはコピーした場合、コンポーネント間の相対的な位置関係が失われる可能性があります。

XSDビジュアル・エディタでは、コンテナ・コンポーネントをその子も含めて選択した上で、さらに1つ以上の子を個別に選択できます。この場合、明示的に選択した子要素は、2回選択したことになります。このようにして選択したコンポーネントをコピー・アンド・ペーストすると、二重に選択された子はコピーされた親の子として1回、親に対する同レベルのコンポーネントとして1回、合計2回貼り付けられます。

15.5.11.1 XSDビジュアル・エディタでコンポーネントが選択されたときに行われる処理

XSDビジュアル・エディタでコンポーネントが選択されると、そのコンポーネントは青色で表示されます。コンテナ・コンポーネントが選択され、その子コンポーネントも明示的に選択されると、該当するすべてのコンポーネントが青色で表示されます。

「構造」ウィンドウ(設計ビューまたはソース・ビュー)で選択すると、コンポーネントがハイライト表示されます。ただし、子コンポーネントを含むコンポーネントを選択した場合、名前が選択されていなくてもその子コンポーネントは選択されています。親コンポーネントを削除または移動すると、子コンポーネントもすべて削除または移動されます。

コンポーネントを選択すると、別のコンポーネントを挿入できる位置も選択することになります。詳細は、第15.5.12項「XSDコンポーネントのターゲット位置の選択方法」を参照してください。

ヒント:

マウスのポインタをコンポーネント上に移動すると、コンポーネント名がツールチップに表示されます。これはコンポーネントを選択する際にクリックする場所の目印となります。

XSDビジュアル・エディタで選択したコンポーネントは、構造ウィンドウの設計ビューおよびソース・ビューでも選択されます。またその逆も同様です。これにより、両方のツールで選択項目を確認できるため、選択内容と挿入位置を判別しやすくなります。

JDeveloperのステータス・バーには、選択したコンポーネントの挿入ポイントが明示的に表示されます。

15.5.12 XSDコンポーネントのターゲット位置の選択方法

XSDビジュアル・エディタまたは構造ウィンドウ(設計またはソース・ビュー)でXSDコンポーネントを挿入、コピーまたは移動する場合、その操作の対象となるノードに関連するターゲット位置を選択する必要があります。ノードに対して選択できるターゲット位置は、前、後ろおよび内側です。

ターゲット位置を選択するには、次のようにします。

次のいずれかのオプションを選択します。

- 操作の対象となるノードをクリックし、ターゲット位置を選択します。

- ターゲット位置にコンポーネントをドロップする際に、次のいずれかの操作を行います。

- ターゲット・ノードの前にコンポーネントを挿入するには、実線の横線が表示されるまで(ビジュアル・エディタの場合)、または上矢印付きの横線が表示されるまで(構造ウィンドウの場合)そのコンポーネントをノードの上部にドラッグしてマウス・ボタンを放します。

- ターゲット・ノードの後にコンポーネントを挿入するには、実線の横線が表示されるまで(ビジュアル・エディタの場合)、または下矢印付きの横線が表示されるまで(構造ウィンドウの場合)そのコンポーネントをノードの下部にドラッグしてマウス・ボタンを放します。

- 挿入するコンポーネントがターゲット・ノードに含まれるようにするには、ノードの上にドラッグし、ノードがボックスで囲まれた時点でマウスのボタンを放します。このターゲット位置は、子ノードを含むことが可能なノードでのみ使用できます。

- ポップアップ・メニューを使用してターゲット位置を選択する場合は、ターゲット・ノードを右クリックし、オプションを選択してからコンポーネントを選択します。オプションは次のとおりです。

- <component>の前に挿入 - 選択したノードの前にコンポーネントが挿入されます。

- <component>の中に挿入 - 選択したノードの内側(下)にコンポーネントが挿入されます。

- <component>の後ろに挿入 - 選択したノードの後ろにコンポーネントが挿入されます。

すべてのオプションを常に使用できるわけではありません。オプションを選択するとサブメニューが表示されるため、そこからコンポーネント・リストを選択し、さらにリストから目的のコンポーネントを選択します。選択したノードによっては、そのノードの内側に挿入できる1つ以上のコンポーネントがサブメニューに表示されます。

注意:

「構造」ウィンドウの設計またはソース・ビューで選択したターゲット位置はXSDビジュアル・エディタでも選択され、その逆も同様です。これにより、視覚的にも階層的にも挿入位置を確認できます。選択内容は、JDeveloperウィンドウ一番下のステータス・バーにも明示的に表示されます。

15.5.13 XSDコンポーネントの挿入方法

XSDビジュアル・エディタおよび構造ウィンドウ(設計またはソース・ビュー)では、コンポーネント・パレットからドラッグするかまたはポップアップ・メニューを使用してXSDコンポーネントを挿入できます。コピーまたはカット・アンド・ペーストでもXSDコンポーネントを挿入できます。カット・アンド・ペーストでは、複数のコンポーネントを一度に挿入できます。詳細は、第15.5.16項「XSDコンポーネントの切取り、コピーおよび貼付け方法」を参照してください。

注意:

XMLスキーマ階層の異なる場所からコピーした複数のコンポーネントを貼り付けた場合、予想外の結果になることがあります。

コンポーネント・パレットを使用してXSDコンポーネントを挿入するには、次のようにします。

1. XSDビジュアル・エディタまたは構造ウィンドウで、コンポーネントを挿入する場所を選択します。構造ウィンドウでは、目的のノードを見つけるためにノードを開くことが必要になる場合があります。

2. コンポーネント・パレットで、ドロップダウン・リストからXSDコンポーネントのリストを選択し、リストから目的のコンポーネントをドラッグし、XSDビジュアル・エディタまたは構造ウィンドウの目的のターゲット位置へドロップします。

または、ビジュアル・エディタまたは構造ウィンドウでターゲット位置を選択してから、コンポーネント・パレットで目的のコンポーネントをクリックすることもできます。

ヒント:

リスト内のコンポーネント名にカーソルを置くと、そのコンポーネントの簡単な説明が表示されます。詳しいヘルプを表示するには、リストからコンポーネントを右クリックして「ヘルプ」を選択します。

ポップアップ・メニューを使用してXSDコンポーネントを挿入するには、次のようにします。

1. XSDビジュアル・エディタまたは構造ウィンドウで、目的のノードを右クリックしてポップアップ・メニューを表示します。目的のノードを見つけるには、ノードを開くことが必要になる場合があります。

2. ポップアップ・メニューからオプションを選択し、次にコンポーネントを選択します。オプションは次のとおりです。

- <component>の前に挿入 - 選択したノードの前にコンポーネントが挿入されます。

- <component>の中に挿入 - 選択したノードの内側(下)にコンポーネントが挿入されます。

- <component>の後ろに挿入 - 選択したノードの後ろにコンポーネントが挿入されます。

ポップアップ・メニューのすべてのオプションを常に使用できるわけではありません。オプションを選択するとサブメニューが表示されるため、そこからコンポーネント・リストを選択し、さらにリストから目的のコンポーネントを選択します。選択したノードによっては、そのノードの内側に挿入できる1つ以上のコンポーネントがサブメニューに表示されます。

15.5.14 XSDコンポーネントのプロパティの設定および変更方法

プロパティ・インスペクタには、XSDビジュアル・エディタまたは「構造」ウィンドウ(設計ビューまたはソース・ビュー)で選択したXSDコンポーネントのプロパティが表示されます。プロパティ・インスペクタを使用すると、XMLスキーマの各コンポーネントのプロパティ値を設定または変更できます。設定済のプロパティ値には緑色のボックスが表示されます。

変更を元に戻すには、メイン・メニューから「編集」→「元に戻す」アクションを選択します。デフォルト値(ある場合)に設定されているプロパティをリセットするには、「デフォルトに設定」ボタンを使用します。

コンポーネントのプロパティを設定するには、次のようにします。

1. XMLスキーマを開いた状態で、ビジュアル・エディタまたは「構造」ウィンドウでコンポーネントを選択します。
選択したコンポーネントのプロパティ値がプロパティ・インスペクタに表示されます。プロパティ・インスペクタが表示されていない場合は、「表示」→「プロパティ・インスペクタ」を選択するか、ショートカット([Ctrl]+[Shift]+[I])を使用します。

2. 設定するプロパティが表示されるまでスクロールし、マウスまたは矢印キーでそれを選択します。
プロパティ・インスペクタの下部にプロパティの簡単な説明が表示されます。

ヒント:

長いリストの中からプロパティを素早く見つけるには、プロパティ・インスペクタ・ツールバーの検索ボタンをクリックします。「検索」テキスト・フィールドにプロパティ名を入力し、[Enter]を押します。

3. 右側の列に、次のいずれかの方法でプロパティ値を入力します。

- テキスト・フィールドには、そのプロパティに対する文字列値(テキスト値や数値など)を入力し、[Enter]を押します。

- 値フィールドに下向きの矢印が表示されている場合、矢印をクリックし、リストから値を選択して[Enter]を押します。

- 省略記号(...)付きの値フィールドの場合、省略記号をクリックしてそのプロパティのエディタを表示します。プロパティ・エディタで値を設定し、「OK」をクリックします。

ヒント:

XSDコンポーネントをダブルクリックするか、XSDコンポーネントを右クリックして「プロパティ」を選択すると、そのコンポーネントのプロパティ・エディタが表示されます。

プロパティ・エディタで属性を選択すると、エディタの下のステータス領域に簡単な説明が表示されます。

コンポーネント・リファレンスのトピックへのリンクを表示するには、プロパティ・エディタの「ヘルプ」をクリックします。

15.5.15 複数コンポーネントのプロパティの設定方法

複数のコンポーネントを選択している場合、デフォルトでは選択中のコンポーネントのプロパティがすべてプロパティ・インスペクタに表示されます。プロパティ・インスペクタの「統合して表示」ボタンをクリックすると、選択中のコンポーネントのプロパティすべてを表示するオプションと、選択中のコンポーネントに共通なプロパティのみを表示するオプションを切り替えることができます。イタリック・フォントで表示されている値は、共通のプロパティに異なる値が設定されていることを示します。

複数コンポーネントのプロパティを設定するには、次のようにします。

1. [Ctrl]キーを押しながら各コンポーネントを選択します。

2. プロパティ・インスペクタで表示されるプロパティのリストを変更するには、プロパティ・インスペクタ・ツールバーの「統合して表示」ボタンをクリックします。

- ボタンを選択した状態では、選択したコンポーネントのすべてのプロパティが表示されます。

- ボタンを選択していない状態では、選択したコンポーネント間に共通のプロパティのみが表示されます。

3. プロパティ・インスペクタで、必要なプロパティを選択して編集します。
値がイタリック・フォントで表示されている場合、選択中のコンポーネントによって値が異なります。共有プロパティの値を編集すると、選択した全コンポーネントの値が同じになります。

15.5.16 XSDコンポーネントの切取り、コピーおよび貼付け方法

XSDビジュアル・エディタまたは構造(設計またはソース)ウィンドウでXSDコンポーネントの切取り、コピーおよび貼付けを行うことができます。これらの操作を、同じプロジェクトまたは異なるプロジェクトのファイル間で実行できます。

15.5.16.1 コンポーネントの切取り

コンポーネントを切り取ると、エディタから削除され、(システム・クリップボードではなく) JDeveloperからのみアクセス可能なローカル・クリップボードに置かれます。コンポーネントを貼り付けずにJDeveloperを終了した場合、切り取ったコンポーネントは失われます。

コンポーネントの削除では、内容を変更せずにコンポーネントが削除されます。切取りコマンドを使用してアイテムを永久に削除する習慣がある場合、間違ってクリップボードの保存しておきたい内容を置換してしまう可能性があります。詳細は、第15.5.18項「XSDコンポーネントの削除方法」を参照してください。

1つ以上のコンポーネントを切り取るには、次のようにします。

1. ビジュアル・エディタまたは構造ウィンドウで、切り取るXSDコンポーネントを選択します。

2. 次のいずれか1つを実行します。

- [Ctrl]キーを押しながら[X]キーを押します。

- 右クリックして「切取り」を選択します。

- メイン・メニューから、「編集」→「切取り」を選択します。

15.5.16.2 コンポーネントのコピー

ビジュアル・エディタまたは「構造」ウィンドウでXSDコンポーネントをコピーできます。

1つ以上のコンポーネントをコピーするには、次のようにします。

1. ビジュアル・エディタまたは構造ウィンドウで、コピーするXSDコンポーネントを選択します。

2. 次のいずれか1つを実行します。

- [Ctrl]キーを押しながら[C]キーを押します。

- 右クリックして「コピー」を選択します。

- メイン・メニューから、「編集」→「コピー」を選択します。

- [Ctrl]を押しながら、選択したコンポーネントのコピーをターゲット位置までドラッグします。

15.5.16.3 要素の貼付け

XSDビジュアル・エディタや構造ウィンドウから切り取った要素またはコピーした要素は、JDeveloperの他のXSDファイルに貼り付けることができます。詳細は、第15.5.12項「XSDコンポーネントのターゲット位置の選択方法」を参照してください。

要素を貼り付けるには、次のようにします。

1. XSD要素を貼り付けるファイルをビジュアル・エディタまたは構造ウィンドウで開きます。

2. 要素を貼り付ける挿入ポイントを選択します。

3. 次のいずれか1つを実行します。

- [Ctrl]キーを押しながら[V]キーを押します。

- 右クリックして「貼付け」を選択します。

- 「編集」→「貼付け」を選択します。

15.5.17 XSDコンポーネントの移動方法

XSDビジュアル・エディタまたは構造(デザイン・ビューまたはソース・ビュー)ウィンドウでは、ドラッグまたは切取りおよび貼付けでXSDコンポーネントを新しい挿入ポイントに移動できます。ビジュアル・エディタまたは構造ウィンドウのどちらかでコンポーネントを移動することも、同時に使用して2つのエディタ間でコンポーネントを移動することも可能です。切取りおよび貼付けで、同じプロジェクトまたは異なるプロジェクト内の他のファイルの有効な挿入ポイントに、XSDコンポーネントを移動します。詳細は、第15.5.11項「XSDコンポーネントの選択方法」を参照してください。

一度に1つまたは複数のコンポーネントを移動できます。ただし、隣接していない複数のコンポーネント、またはスキーマ階層内の別々のレベルにある複数のコンポーネントを選択して移動した場合、予想外の結果になることがあるため注意してください。

ドラッグしてコンポーネントを移動するには、次のようにします。

ビジュアル・エディタまたは「構造」ウィンドウで、次のいずれかの操作を行います。

- ビジュアル・エディタまたは構造ウィンドウで、元の位置からターゲット位置までコンポーネントをドラッグします。詳細は、第15.5.12項「XSDコンポーネントのターゲット位置の選択方法」を参照してください。

- ビジュアル・エディタまたは構造ウィンドウで、元の位置から挿入ポイントまでコンポーネントを右クリックでドラッグし、ポップアップ・メニューから「ここにあるノードの移動」を選択します。

カット&ペーストでコンポーネントを移動するには、次のようにします。

ビジュアル・エディタまたは「構造」ウィンドウで、次のいずれかの操作を行います。

- コンポーネントを切り取ります。次に、ビジュアル・エディタまたはスキーマ構造ウィンドウの別の場所へ貼り付けます。

- コンポーネントを切り取ります。次に、同じプロジェクトまたは別のプロジェクト内の他のファイルへ貼り付けます。

注意:

選択したコンポーネントとその子コンポーネントすべてが、新しいターゲット位置へ移動します。

15.5.18 XSDコンポーネントの削除方法

XSDビジュアル・エディタまたは構造(設計ビューまたはソース・ビュー)ウィンドウでXMLスキーマからコンポーネントを削除できます。コンポーネントを削除すると、ソース・コードから該当する行が削除されます。

1つ以上のXSDコンポーネントを削除するには、次のようにします。

1. ビジュアル・エディタまたは構造ウィンドウで削除する1つ以上のXSDコンポーネントを選択します。詳細は、第15.5.11項「XSDコンポーネントの選択方法」を参照してください。

2. 次のいずれか1つを実行します。

- [Del]キーを押します。

- [Ctrl]キーを押しながら[X]キーを押します。

- 右クリックして「削除」を選択します。

- メイン・メニューから、「編集」→「削除」を選択します。

15.6 XSQLサーブレットを使用したデータバインドXMLページの開発

JDeveloperには、XSQLサーブレットを使用してデータ・バインドされたXMLページの作成を簡略化する完全な開発環境が用意されています。

15.6.1 XSQLサーブレット・クライアントのサポート

JDeveloperでは、次の機能を使用してXSQLサーブレットのサポートを提供しています。

- コンポーネント・パレットでXSQLタグを提供します。

- XSQLページを自動的に作成します。

- XSQLライブラリをインクルードします。

- クラスパスでXSQLConfig.xmlを提供します。必要に応じて変更できます。

- XSQLページでビジネス・ロジック層を使用してデータにアクセスできるように、ビジネス・コンポーネント・アクション・ハンドラ・タグを提供します。

15.6.1.1 XSQLサーブレットとは

XSQLサーブレットを使用すると、XSQLページをクライアントとして作成および使用できます。これらのページは、埋込みSQL問合せおよびその他のデータ操作言語(DML)文を使用してXMLで作成されます。アクション・ハンドラを使用して、ファイルへのXMLデータの書込みなど、SQLよりも多くの機能を提供することもできます。

アクション・ハンドラは、XSQLページ内からJavaクラスをコールできるようにするアプリケーションです。データベースまたはBusiness Components for Java (BC4J)と直接対話できる事前定義済のアクション・ハンドラを使用することも、独自のアクション・ハンドラを作成して使用することもできます。

XSQLサーブレット・アプリケーションには、次の3つの論理レイヤーがあります。

- クライアント - XSQLページは、SQLが埋め込まれたXMLを使用して、データの問合せおよび取得を処理します。データを表示するには、HTML、Wireless Markup Language (WML)などの別の形式にXMLデータを変換する必要があります。XMLをこれらの言語に変換するためのXSLスタイルシートを作成できます。

- Webサーバー内のXSQLサーブレット - サーブレットはXML SQLユーティリティを使用してデータベースと対話します。

- ビジネス・ロジック層 - Business Components for Java層を使用して、データへのアクセスおよび変更を行うこともできます。

- データベース - JDBC 2.0ドライバをサポートするすべてのデータベースを使用できます。

15.6.1.2 XSQLサーブレットの使用方法

XSQLサーブレットでは、単純かつ生産的な方法で、データベースとXMLをやり取りできます。単純なスクリプトを使用することで、開発者は次の操作を実行できます。

- 単純または複雑なXML文書の生成

- XSLスタイルシートの適用によるテキスト形式の生成

- XML文書の解析とデータベースへのデータの格納

- 複雑な動的Webアプリケーションの作成(コードのプログラミングなし)

例15-2のemp.xsqlはその例です。

例15-2 emp.sqlファイル

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="emp.xsl"?>
<FAQ xmlns:xsql="urn:oracle-xsql" connection = "scottDS">
<xsql:query doc-element="EMPLOYEES" row-element="EMP">
select e.ename, e.sal, d.dname as department
from dept d, emp e
where d.deptno = e.deptno
</xsql:query>
</FAQ>

例15-3でXMLを生成します。

例15-3 XMLファイル

<EMPLOYEES>
<EMP>
<ENAME>Scott</ENAME>
<SAL>1000</SAL>
<DEPARTMENT>Boston</DEPARTMENT>
</EMP>
<EMP>
...
</EMP>
</EMPLOYEES>

JDeveloperを使用すると、XSQLファイルを簡単に作成して実行できます。結果のページを表示するには、組込みのWebサーバーとデフォルトのWebブラウザを使用します。

XSQLサーブレットの詳細は、Oracleデータベース文書を参照してください。

15.6.2 XSQLファイルの作成方法

JDeveloperを使用すると、XSQLファイルを簡単に作成して実行できます。結果のページを表示するには、組込みのWebサーバーとデフォルトのWebブラウザを使用します。

XSQLファイルを作成するには、次のようにします。

1. ナビゲータで、新しいXSQLページを作成するプロジェクトを選択します。

2. 「ファイル」→「新規」を選択し、「新規ギャラリ」を開きます。

3. 「カテゴリ」ツリーで、「General」を開いて「XML」を選択します。

4. 「項目」リストでXSQLページをダブルクリックします。

これにより、XMLエディタで開くuntitled#.xsqlという名前のスケルトンXSQLファイルがプロジェクトに追加されます。このエディタでコードを入力し、「コンポーネント・パレット」からタグを選択して追加し、独自のスタイルシート情報を使用してファイルを変更できます。

15.6.3 XSQLタグを使用したXMLファイルの編集方法

JDeveloperのXMLエディタでは、構文のハイライト表示、構造ウィンドウ表示およびプロパティ・インスペクタがサポートされています。編集中に、「コンポーネント・パレット」からタグを選択してページに挿入することもできます。

XMLエディタを使用してXSQLファイルを編集するには、次のようにします。

1. ナビゲータでXSQLファイルを右クリックして、「XMLエディタ」を選択します。

2. 「表示」→「コンポーネント・パレット」を選択してコンポーネント・パレットを開き、パレットのドロップダウン・リストから「XSQL」タグ・ページを選択します。その後、パレットからXSQLタグを選択できます。

3. 入力時に、左山カッコ(<)を入力してから時間を置くか、(デフォルトのキー割当てを使用している場合) [Ctrl]キーを押しながら[Space]キーを押すと、コード・インサイトを起動できます。コード・インサイトにより、有効なタグのリストが表示されます。

4. タグを選択した後にスペースを入力してから時間を置くか、[Ctrl]キーを押しながら[Space]キーを押すと、有効な属性がリスト表示され、ここから選択できます。属性値に対する左引用符を入力すると、ヒント・インサイトで必要な値の型が表示されます。

5. 編集中または編集後、ファイル内で右クリックして「XMLの自動インデント」を選択すると、ファイルを正しくインデントできます。

6. 任意のタグを右クリックして「構造ウィンドウ内で検索」を選択し、「構造」ウィンドウでそのタグをハイライトすることもできます。

15.6.4 XSQLタグの追加方法

次に説明するように、すべてのXSQLタグを挿入するには、コンポーネント・パレットからXSQLタグを選択します。XSQLタグをファイルに入力して挿入することもできます。XSQLタグにはコード・インサイトを使用できます。

ファイルにXSQLタグを追加する手順は、次のとおりです。

1. ナビゲータで、タグを追加するXSQLファイルを選択して右クリックし、「XMLエディタ」を選択して、ソース・ファイルを開きます。

2. <page xmlns:xsql="urn:oracle-xsql">タグの後の空白行にカーソルを置きます。

3. 「表示」→「コンポーネント・パレット」を選択して、パレットを開きます(表示されていない場合)。

4. パレットのドロップダウン・リストからXSQLタグを選択します(表示されていない場合)。

5. パレットから適切なタグを選択します。
タグに属性がない場合は、ただちにXSQLページに表示されます。タグに1つ以上の属性がある場合は、ダイアログが表示されます。

6. 表示されるダイアログで、必須の属性とオプションの属性を入力します。XSQLタグと属性のヘルプを表示するには、[F1]を押すか、「ヘルプ」をクリックします。

7. 属性を入力した後、「次へ」をクリックして次のダイアログを表示するか、「終了」をクリックします(有効になっている場合)。
表示されるボタンの種類とダイアログの数は、選択したタグによって異なります。入力したタグと属性がXSQLページに表示されていることを確認します。

8. 必要に応じて、ソース・ファイルに別の行を追加し、コンポーネント・パレットから別のタグを選択します。

9. タグの追加が完了した後、これまでの作業内容をすべて保存する場合は、「ファイル」→「すべて保存」を選択します。

タグを追加した後、RAW XMLデータを表示したり、スタイルシートを使用してXMLデータの書式を設定できます。

15.6.5 XSQLファイルの構文のチェック方法

XSQLファイルをチェックして、エラーを検索するために、ファイルが製形式のXML文書かどうかを確認できます。

XSQLファイルの構文をチェックする手順は、次のとおりです。

ナビゲータまたは開いている「XMLエディタ」ウィンドウで、XSQLファイルを右クリックし、「XML構文のチェック(&X)」を選択します。

結果が「ログ」ウィンドウに表示されます。

注意:

XMLファイルにXMLネームスペースが定義されていない場合、このポップアップ・メニューの「XMLの検証」コマンドは無効になります。

15.6.6 データベースにアクセスするXSQLサーブレット・クライアントの作成方法

XSQLタグを使用して、XSQLサーブレット用のXMLベース・クライアントを作成できます。XSQLサーブレットを使用すると、XML形式でデータベースとデータを簡単にやり取りできます。次の手順は、XSQL Queryタグを使用してデータを表示する方法を示しています。

データベースに直接アクセスするXSQLサーブレット・クライアントを作成する手順は、次のとおりです。

1. ナビゲータでワークスペースを選択し、「ファイル」→「新規」を選択して「新規ギャラリ」を開くことで、ビジネス・コンポーネント・プロジェクトを含むワークスペースで新しいプロジェクトを作成します。

2. 「カテゴリ」ツリーで、「一般」を開いて「プロジェクト」を選択します。

3. 「項目」リストで「空のプロジェクト」をダブルクリックし、「新規プロジェクト」ダイアログを開きます。

4. 「新規プロジェクト」ダイアログを完了し、「OK」をクリックして、空のプロジェクトをワークスペースに追加します。

5. ナビゲータで新規プロジェクトを選択し、「ファイル」→「新規」を選択します。

6. 「カテゴリ」リストで、「一般」を選択し、「XML」を選択します。

7. 「項目」リストでXSQLページをダブルクリックします。
これにより、untitled#.xsqlという名前のスケルトンXSQLファイルがプロジェクトに追加されます。

8. ナビゲータで新規XSQLファイルを右クリックし、「XMLエディタ」を選択して、ソース・ファイルを開きます。

9. <page xmlns:xsql="urn:oracle-xsql">タグの後の空白行にカーソルを置きます。

10. 「表示」→「コンポーネント・パレット」を選択して、パレットを開きます(表示されていない場合)。

11. パレットのドロップダウン・リストからXSQLタグを選択します(表示されていない場合)。

12. パレットからXSQLファイルにQuery (XSQL)タグをドラッグします。
QueryタグによりSQL文が実行され、結果セットがXML形式でインクルードされます。

13. 表示されるダイアログで、属性の値を入力したり、デフォルト値を変更できます。[F1]を押すか、ダイアログで「ヘルプ」をクリックして、タグおよびその属性に関するヘルプを表示します。

14. 属性を入力した後、「次へ」をクリックします。

15. 「接続の選択内容」ダイアログで、接続を選択するか、新規データベース接続を作成し、「次へ」をクリックします。

16. 「問合せ」ダイアログで、実行するSQL文を入力し、「次へ」をクリックします。
たとえば、select * from customerと入力すると、入力した属性に基づいて、customerデータベースのすべてのレコードが表示されます。

17. 「終了」をクリックします。
入力したQueryタグと属性は、XSQLページに表示されます。

18. 「ファイル」→「すべて保存」の順に選択して、作業内容を保存します。

19. ナビゲータでXSQLファイルを右クリックし、「filename.xsqlの実行」を選択して、WebブラウザのRAW XMLデータを表示します。

スタイルシートを使用してXMLデータの書式を設定できます。メッセージ・サービスを介してXMLデータを別のアプリケーションに渡すこともできます。

15.6.7 ビジネス・コンポーネント用XSQLサーブレット・クライアントの作成

XSQLサーブレットを使用して、ビジネス・コンポーネント用にXMLベースのクライアントを作成できます。XSQLサーブレットを使用すると、データベースからXML形式でデータを入力および出力することが容易になります。次の手順では、ViewObject Showタグを使用して作成したビジネス・コンポーネント・プロジェクトに、XSQLクライアントをバインドして、XML形式でビュー・オブジェクトのデータを表示する方法を説明します。ViewObject Updateタグを使用して、ビュー・オブジェクトを挿入、更新および削除することもできます。

ビジネス・コンポーネント用XSQLサーブレット・クライアントを作成するには、次のようにします。

1. ナビゲータでワークスペースを選択し、「ファイル」→「新規」を選択して「新規ギャラリ」を開くことで、ビジネス・コンポーネント・プロジェクトを含むワークスペースで新しいプロジェクトを作成します。

2. 「カテゴリ」ツリーで、「一般」を開いて「プロジェクト」を選択します。

3. 「項目」リストで「空のプロジェクト」をダブルクリックし、「新規プロジェクト」ダイアログを開きます。

4. 「新規プロジェクト」ダイアログを完了し、「OK」をクリックして、空のプロジェクトをワークスペースに追加します。

5. ナビゲータで新規プロジェクトを選択し、「ファイル」→「新規」を選択します。

6. 「カテゴリ」リストで、「一般」を選択し、「XML」を選択します。

7. 「項目」リストでXSQLページをダブルクリックします。
これにより、untitled#.xsqlという名前のスケルトンXSQLファイルがプロジェクトに追加されます。

8. ナビゲータで新規のXSQLファイルを右クリックし、ソース・ファイルが開いていない場合は、「XMLエディタ」を選択してファイルを開きます。

9. <page xmlns:xsql="urn:oracle-xsql">タグの後の空白行にカーソルを置きます。

10. 「表示」→「コンポーネント・パレット」を選択して、パレットを開きます(表示されていない場合)。

11. パレットのドロップダウン・リストからXSQLタグを選択します(表示されていない場合)。

12. パレットからViewObject Showタグを選択します。
ViewObject Showタグには、XML形式のビュー・オブジェクトのデータが表示されます。ViewObject Updateでは、オプションで変換されたXMLドキュメントに基づいたビュー・オブジェクトに対して、挿入、更新および削除の処理を行います。

13. 「ビュー・オブジェクトの選択内容」ダイアログで適切なビュー・オブジェクトを選択し、「次へ」をクリックします。

14. 属性のデフォルト値を変更するか、受け入れます。[F1]を押すか、ダイアログで「ヘルプ」をクリックして、タグおよびその属性に関するヘルプを表示します。属性を入力した後、「次へ」をクリックします。

15. 「終了」をクリックします。
入力したタグと属性がXSQLページに表示されていることを確認します。

16. 「ファイル」→「保存」の順に選択して、これまでの作業内容をすべて保存します。

17. ナビゲータでXSQLファイルを右クリックし、「filename.xsqlの実行」を選択して、WebブラウザのRAW XMLデータを表示します。

スタイルシートを使用してXMLデータの書式を設定できます。メッセージ・サービスを介してXMLデータを別のアプリケーションに渡すこともできます。

注意:

XSQLエラーJBO-27122が表示された場合は、ViewObject Show [F1]ヘルプ・トピックの「循環ビュー・リンク・アクセッサを使用してビュー・オブジェクトを問い合せる際の注意点」を参照してください。

15.6.7.1 ビジネス・コンポーネントXSQLアクション・ハンドラについての注意事項

XSQLページをビジネス・コンポーネントのXSQL処理ハンドラとともに使用するには、希望する接続モードを基にしたすべてのJBOライブラリに加えて、XSQLランタイムおよびJBO HTMLライブラリをプロジェクトのクラスパスに含める必要があります。これらは、JDeveloperによって自動的にクラスパスに含められます。

15.6.8 XSQLのカスタム・アクション・ハンドラの作成方法

XSQLページのアクション・ハンドラは、特定のタスクを実行するために起動されるJavaクラスです。Cookieの設定、スタイルシートの適用、データベースに対する問合せの実行など、様々なタスクの事前作成済アクション・ハンドラがあります。ただし、組込みのアクション・ハンドラが提供していない操作を実行する場合、カスタム・アクション・ハンドラを作成できます。カスタム・アクション・ハンドラは、事前定義済のアクション・ハンドラと同じように簡単にXSQLページから起動できるJavaクラスです。

アクション・ハンドラを作成するには、次のようにします。

1. プロジェクトにXSQL構成ファイルを追加します。

2. XSQL構成ファイルで、要素名とハンドラ・クラスを指定して、新しいアクション・ハンドラを登録します。

3. XSQLファイルで、新しい要素とその属性を追加します。

4. XSQLファイルで、<page>タグに接続情報を追加します。

5. プロジェクトにJavaファイルを追加します。

6. Javaファイルで、XSQLActionHandlerImplクラスを拡張するクラスを作成します。

BC4JのXSQLアクション・ハンドラは、JDeveloperのJBO HTMLライブラリの一部としてパッケージ化されており、関連する<JdevHome>/BC4J/jlib/bc4jhtml.jarアーカイブがビルドに含まれます。

例15-4 XSQLのアクション・ハンドラ

// Copyright (c) 2000, 2009, Oracle and/or its affiliates. All
rights reserved. import oracle.xml.xsql.*;
import org.w3c.dom.Node;
import java.util.Date;
/**
* A Class class.
* <P>
* @author Pas Apicella
public class JavaDate extends XSQLActionHandlerImpl
{
public void handleAction (Node root)
{
addResultElement(root, "CURRENTDATE", (new Date()).toString());
}
}

15.6.9 XSQLサーブレット・クライアントの実行およびデプロイ方法

XSQLファイルが完了した後、XSQL問合せを統合WebLogic Serverで実行することによってテストできます。このサーバーには、IDE内でWebアプリケーションを開発、テストおよびデバッグするために必要な機能がすべて用意されています。詳細は、第9.2項「統合アプリケーション・サーバーでのJava EEアプリケーションの実行」を参照してください。

XSQLサーブレット・ファイルを実行するには、次のようにします。

1. ナビゲータでXSQLファイルを右クリックし、「XML構文のチェック(&X)」を選択します。
JDeveloperでは、XML構文エラーを検索するXSQLファイルがスキャンされ、結果が「ログ」ウィンドウに表示されます。

2. XML構文エラーがない場合は、XSQLファイルを右クリックして「filename.xsqlの実行」を選択します。
JDeveloperにより、サーブレットがコンパイルされます。次に、統合WebLogic Serverが起動されます。統合WebLogic Serverを初めて起動する場合、ダイアログが表示され、デフォルト・ドメイン上のデフォルト・ユーザーweblogicのパスワードを入力する必要があります。この手順は1回のみ実行する必要があります。

デフォルトのWebブラウザが起動して、サーブレットの出力がブラウザに表示されます。

XSQLファイルが統合WebLogic Serverで正常に実行された後、これが含まれるアプリケーションをOracle WebLogic Serverなどの外部アプリケーション・サーバーにデプロイできます。

XSQLアプリケーションをデプロイするには、次のようにします。

1. XSQL実行のためJDeveloperとOracle WebLogic Serverによって実行される構文は異なるため、XSQLソース・ファイルで接続情報を次のように変更する必要があります。次の文字列を

connection="java:comp/env/jdbc/database-connection-nameDS"

次の文字列で置き換えます。

connection="jdbc/database-connection-nameDS"

注意:

アプリケーションを統合WebLogic Serverで実行するには、接続情報を元に戻す必要があります。

2. アプリケーションをデプロイするには、最初にデプロイメント・プロファイルを作成し、これにアプリケーションをデプロイする必要があります。ナビゲータで、XSQLサーブレットが含まれるプロジェクトを右クリックして、「新規」を選択します。「新規ギャラリ」で「General」を展開し、「デプロイメント・プロファイル」を選択します。

3. WARデプロイメント・プロファイルなどのプロファイルを選択し、「OK」をクリックし、デプロイメント・プロファイルの作成を続行します。詳細は、第9.3.2項「デプロイメント・プロファイルの作成および編集方法」を参照してください。

4. アプリケーションをデプロイメント・プロファイルにデプロイするには、XSQLサーブレット・ファイルが含まれるプロジェクトを右クリックして、「デプロイ」→「profile」を選択します。「profile」は、作成したデプロイメント・プロファイルの名前です。
「デプロイ」ダイアログで、「WARにデプロイ」(または、別のタイプのデプロイメント・プロファイルを選択した場合は適切なオプション)を選択し、「終了」をクリックします。

5. これで、Oracle WebLogic Serverなどのアプリケーション・サーバーにアプリケーションをデプロイできるようになります。実行する必要のある手順は次のとおりです。

- XSQLファイル内の接続情報を使用してターゲット・アプリケーション・サーバー上でデータソースを作成します。詳細は、第9.3.6.4項「Oracle WebLogic ServerでのJDBCデータソースの設定」を参照してください。

- アプリケーション・サーバーへの接続を作成します。詳細は、第9.3.1項「ターゲット・アプリケーション・サーバーへの接続の作成方法」を参照してください。

- XSQLサーブレット・ファイルが含まれるプロジェクトを右クリックして、「デプロイ」→「profile」を選択し、アプリケーションをデプロイします。「profile」は、作成したデプロイメント・プロファイルの名前です。
「デプロイ」ダイアログで、「アプリケーション・サーバーへのデプロイ」を選択し、次のページでアプリケーション・サーバー接続を選択し、「終了」をクリックします。

アプリケーションがデプロイされたら、http://targethost:port/web-context-root/filename.xsqlにナビゲートすることにより、ブラウザ・ウィンドウで問合せの結果を表示できます。

15.6.10 実行中のXSQLファイルからのRAW XMLデータとしての出力の表示方法

XSQLファイルを作成してタグを追加した後、RAW XMLデータを表示するか、スタイルシートを使用してXMLデータを書式設定します。

XSQLファイルをRAW XMLデータとして表示するには、次のようにします。

ナビゲータでXSQLファイルを選択し、「filename.xsqlの実行」を選択してWebブラウザでソース・ファイルを開きます。

JDeveloperにより統合WebLogic Serverが開始され、デフォルトのWebブラウザが起動して、XSQLサーブレットがXSQLページを処理した後に生成されたRAW XMLデータが表示されます。

15.6.11 スタイルシートを使用したXMLデータの書式設定方法

XSQLファイルを作成してタグを追加した後、XSLスタイルシートを使用してXMLデータの書式を設定したり、RAW XMLデータを表示できます。以前に作成したスタイルシートを使用することも、JDeveloperで新規のスタイルシートを作成して適用することもできます。スタイルシートを適用することで、HTML、またはWireless Markup Language (WML)などの他のマークアップ言語にXMLデータを変換できます。

スタイルシートを使用してXMLデータの書式を設定する手順は、次のとおりです。

1. ナビゲータで、スタイルシートを追加するXSQLファイルを選択して右クリックし、「XMLエディタ」を選択して、ソース・ファイルを開きます。

2. xml-stylesheet行と次のようなコメントを探します。

<!--
Uncomment the following processing instruction and replace
the stylesheet name to transform output of your XSQL Page using XSLT
<?xml-stylesheet type="text/xsl" href="YourStylesheet.xsl" ?>
-->

3. <?xml-stylesheet ?>行を-->閉じ大カッコの下に移動して、コメントを解除します。

4. この行で、YourStyleSheet.xslをスタイルシートの名前に置換します。たとえば、stylesheet1.xslという名前のスタイルシートを指定します。
次に、このプロジェクトの外部で作成したファイルを使用する場合は、指定したファイルをプロジェクトに追加します。

5. ナビゲータでプロジェクトを選択し、「プロジェクト」→「プロジェクトproject nameに追加」を選択します。「プロジェクトに追加」ダイアログで、ディレクトリに移動し、指定したスタイルシート・ファイルを選択します。

6. 「開く」をクリックします。

7. 「ファイル」→「すべて保存」の順に選択して、すべての変更を保存します。
追加したファイルがナビゲータに表示され、XMLエディタで開きます。開いているファイルを閉じることもできます。

8. ナビゲータでXSQLファイルを選択して右クリックし、「filename.xsqlの実行」を選択してWebブラウザでファイルを開きます。
書式設定されたXMLデータをブラウザで表示できます。

15.6.12 XSQLファイル用XSLスタイルシートの作成方法

JDeveloperでは、データをHTML、WMLまたは他の出力で書式設定するため、XSQLファイルに適用できるXSLスタイルシートを作成できます。XSLスタイルシートを作成すると、選択したXSQLプロジェクトに追加されます。

XSLスタイルシートを作成するには、次のようにします。

1. ナビゲータで、新しいXSLファイルを作成するプロジェクトを選択します。

2. 「ファイル」→「新規」を選択し、「新規ギャラリ」を開きます。

3. 「カテゴリ」ツリーで、「General」を開いて「XML」を選択します。

4. 「項目」リストで「XSLスタイル・シート」をダブルクリックし、新規XSLファイルダイアログを開きます。

5. 「ディレクトリ名」フィールドは変更せず、JDeveloperがWebアプリケーション・ファイルを検索するディレクトリに作業内容を保存します。「ファイル名」フィールドに、生成するファイルの名前を入力します。
スケルトンXSLファイルが生成され、アクティブなプロジェクトに表示されます。

XMLエディタを編集して、独自のカスタム・スタイルシートを作成できます。XMLデータをワイヤレス・マークアップ・ランゲージ (WML)に変換するXSLスタイルシートの例は、後述します。完了すると、XSQLファイルのスタイルシート名を指定して、RAW XMLデータを書式設定できます。

XSLスタイルシートの例

例15-5のスタイルシートは、XMLからWMLへの変換を示しています。BC4JアプリケーションでデフォルトのDeptViewを使用します。

例15-5 XMLからWMLへの変換

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<!-- Root template -->
<xsl:output type="wml" media-type="text/x-wap.wml"
doctype-public="-//WAPFORUM//DTD WML 1.1//EN"
doctype-system="http://www.wapforum.org/DTD/wml_1.1.xml"
indent="yes" />

<xsl:template match="* >/"><xsl:apply-templates/></xsl:template>
<xsl:template match="text()>@*"><xsl:value-of select="."/></xsl:template>
<xsl:template match="/">

<wml>
<card id="C1">
<p mode="nowrap">
<big>DEPTLIST</big>
</p>
<xsl:for-each select="page/DeptView/DeptViewRow">
<p>
<strong><xsl:value-of select="Deptno"/>&nbsp;</strong>
xsl:value-of select="Dname"/>&nbsp;
<xsl:value-of select="Loc"/>
</p>
</xsl:for-each>
</card>
</wml>

</xsl:template>
</xsl:stylesheet>

15.6.13 XSQL構成ファイルの変更方法

XSQL構成ファイルXSQLConfig.xmlは、クラスパス上に存在するため、XSQLページから常にアクセスできます。接続情報は、JDeveloperで新規接続を作成すると、XSQLConfig.xmlファイルに追加されます。XSQLConfig.xmlはシステム・ディレクトリにあり、XSQLファイルを含むプロジェクトがコンパイルされると、WEB-INFディレクトリにコピーされます。カスタム・アクション・ハンドラを登録するなどの変更が必要な場合は、プロジェクトにファイルを追加することもできます。

注意:

XSQLプロジェクトをJDeveloperに移行しても、XSQLConfig.xmlファイルは更新されません。プロジェクトの移行後、接続を再作成したり、JDeveloperで既存の接続を編集することで接続を更新できます。

プロジェクトのXSQL構成ファイルを変更するには、次のようにします。

1. ナビゲータでプロジェクトが選択された状態で、「プロジェクト」→「プロジェクトproject nameに追加」を選択します。

2. JDeveloperインストール・ディレクトリのシステム・ディレクトリにナビゲートしてXSQLConfig.xmlを選択し、「開く」をクリックします。

3. XMLエディタで変更または追加します。

4. 「ファイル」→「保存」の順に選択して、修正したファイルを保存します。

15.6.14 XSQLファイルでのXMLメタデータ・プロパティの使用

表15-4に示すカスタム・プロパティは、ビュー・オブジェクトまたは行のwriteXMLメソッドを使用する際、XMLの生成に影響します。

表15-4 メタデータ・プロパティ

プロパティ名

値

有効な対象

XML_ELEMENT

有効な要素名

ビュー・オブジェクトおよびビュー属性

XML_ROW_ELEMENT

有効な要素名

ビュー・オブジェクト

XML_CDATA

任意の値(空でない)

ビュー属性

XML_EXPLICIT_NULL

任意の値(空でない)

ビュー・オブジェクトおよびビュー属性

15.6.14.1 XML_ELEMENTの使用

XML_ELEMENTカスタム・プロパティがビュー・オブジェクトに存在する場合、その値は、writeXMLメソッドを使用した生成時や、readXMLメソッドによる使用時に、XMLのビュー・オブジェクトに対するXML要素名として使用されます。

XML_ELEMENTカスタム・プロパティがビュー属性に存在する場合、その値は、writeXMLメソッドを使用した生成時や、readXMLメソッドによる使用時に、XMLの属性に対するXML要素名として使用されます。

たとえば、Salという名前の属性を使用したDeptViewという名前のビュー・オブジェクトの場合、設定は次のようになります。

- ビュー・オブジェクト・プロパティのXML_ELEMENT="Departments"

- Salのビュー属性プロパティのXML_ELEMENT="Salary"

また、次のようなXMLを生成します。

<Departments>
<DeptViewRow>
<Empno>1010</Empno>
<Ename>Steve</Ename>
<Salary>1234</Salary>
</DeptViewRow>
</Departments>

デフォルトでは、次のようになります。

<DeptView>
<DeptViewRow>
<Empno>1010</Empno>
<Ename>Steve</Ename>
<Sal>1234</Sal>
</DeptViewRow>
</DeptView>

15.6.14.2 XML_ROW_ELEMENTの使用

XML_ROW_ELEMENTカスタム・プロパティがビュー・オブジェクトに存在する場合、その値は、writeXMLメソッドを使用した生成時や、readXMLメソッドによる使用時に、XMLのビュー・オブジェクトにより生成された問合せ結果の各行に対するXML要素名として使用されます。

たとえば、Salという名前の属性を使用したDeptViewという名前のビュー・オブジェクトの場合、設定は次のようになります。

- ビュー・オブジェクト・プロパティのXML_ELEMENT="Departments"

- ビュー・オブジェクト・プロパティのXML_ROW_ELEMENT="Department"

- Salのビュー属性プロパティのXML_ELEMENT="Salary"

また、次のようなXMLを生成します。

<Departments>
<Department>
<Empno>1010</Empno>
<Ename>Steve</Ename>
<Salary>1234</Salary>
</Department>
</Departments>

デフォルトでは、次のようになります。

<DeptView>
<DeptViewRow>
<Empno>1010</Empno>
<Ename>Steve</Ename>
<Sal>1234</Sal>
</DeptViewRow>
</DeptView>

15.6.14.3 XML_CDATAの使用

XML_CDATAカスタム・プロパティがビュー属性に対して空でない値に設定されると、その値はプレーン・テキストとしてではなく、CDATAセクションとして出力されます。

15.6.14.4 XML_EXPLICIT_NULLの使用

XML_EXPLICIT_NULLカスタム・プロパティがビュー属性に対して空でない値に設定されると、NULL値を持つすべての属性で、次のようなXML要素が生成されます。

<AttributeName null="true"/>

デフォルトの場合は、XML結果から<AttributeName>要素が省略されます。

XML_EXPLICIT_NULLがビュー属性に対して空でない値に設定されると、指定した属性がNULL値を持つ場合は、システムにより次のようなXML要素が生成されます。

<AttributeName null="true"/>

デフォルトの場合は、XML結果から<AttributeName>要素が省略されます。

16 Webサービスの開発および保護

この章では、既存のWebサービスを検出して使用し、新規のWebサービスを開発およびデプロイする上で役に立つ、JDeveloperが備える強力なツールについて説明します。

この章では、次の項目について説明します。

- 第16.1項「Webサービスの開発および保護について」

- 第16.2項「JDeveloperを使用したWebサービスの作成および使用」

- 第16.3項「UDDIレジストリのWebサービスの使用」

- 第16.4項「Webサービス・クライアントの作成」

- 第16.5項「SOAP Webサービスの作成(ボトム・アップ)」

- 第16.6項「WSDLからのSOAP Webサービスの作成(トップ・ダウン)」

- 第16.7項「RESTful Webサービスの作成」

- 第16.8項「WSDLの管理」

- 第16.9項「ポリシーとWebサービスの使用」

- 第16.10項「Webサービスの編集および削除」

- 第16.11項「Webサービスのテストおよびデバッグ」

- 第16.12項「Webサービスのデプロイ」

- 第16.13項「Webサービスの監視と分析」

16.1 Webサービスの開発および保護について

Webサービスは、一連のメッセージ・プロトコルとプログラミング規格で構成され、オープン・スタンダードを使用してインターネット上でビジネス機能を公開します。Webサービスは、プログラムによってインターネット上でアクセスされ、レスポンスを戻す、再利用可能な独立したソフトウェア・コンポーネントです。

Webサービス・クライアントを作成することにより、既存のWebサービスにアクセスできます。アプリケーション内でWebサービスを使用する場合、次のように、Webサービスを下から上へ(Javaから開始)、および上から下へ(WSDLから開始)作成できます。

- Webサービスを開発および実行するためにJDeveloperを構成します。

- 次のタスクを1つ以上実行してWebサービス・クライアントを作成します。

- UDDIレジストリでWebサービスを検索します。

- 既存のWebサービスにアクセスし、これをアプリケーションに組み込むために、クライアントおよびプロキシ・クラスを作成します。

- 次のタスクを1つ以上実行してWebサービスを作成します。

- 基礎となるJava実装からSOAP Webサービスを作成します(ボトム・アップ)

- WSDLからWebサービスを作成します(トップ・ダウン)。

- RESTful Webサービスを作成します。

- ポリシーを使用してWebサービスを保護します。

- Webサービスをテストおよびデバッグします。

- 統合WebLogic ServerまたはOracle WebLogic ServerにWebサービスをデプロイします。

- UDDIレジストリにWebサービスを公開します。

デプロイした後、Webサービスは他のアプリケーションでアクセスおよび使用できるようになります。

16.1.1 Webサービスの検出および使用

既存のWebサービスをアプリケーションで使用するためのクライアントが簡単に作成できます。アプリケーション内のすべてのWebサービスは、アプリケーション・ナビゲータの「Webサービス」フォルダに表示できます。

また、JDeveloperにはUDDIブラウザが組み込まれており、社内のUDDIレジストリなどへの接続を定義できます。詳細は、第16.3項「UDDIレジストリのWebサービスの使用」を参照してください。

16.1.2 Webサービスの開発およびデプロイ

Webサービスは、JavaクラスおよびEJBのリモート・インタフェースから作成できます。Webサービス作成ウィザードではデプロイメント・ファイルが作成されるため、Webサービスの作成後、最後のステップではこれをアプリケーション・サーバーにデプロイします。詳細は、第16.5項「SOAP Webサービスの作成(ボトム・アップ)」を参照してください。

また、Webサービスは、WSDLから始めてトップ・ダウンWebサービスとして作成できます。詳細は、第16.6項「WSDLからのSOAP Webサービスの作成(トップ・ダウン)」を参照してください。

最後に、Representational State Transfer (REST)に基づくWebサービスを開発できます。RESTful Webサービスは、SOAPなどの追加メッセージング・レイヤーなしで、標準化されたインタフェース(HTTPなど)を介してデータを送信する単純なインタフェースです。詳細は、第16.7項「RESTful Webサービスの作成」を参照してください。

JDeveloperは、一連の標準的なJava-to-XMLタイプのマッピングもサポートしています。自動サポートの対象とならないオブジェクト型向けのカスタム・シリアライザを作成することもできます。詳細は、第16.2項「JDeveloperを使用したWebサービスの作成および使用」を参照してください。

16.2 JDeveloperを使用したWebサービスの作成および使用

Webサービスについて理解を深める情報を提供し、JDeveloperを使用したWebサービスの作成、構成および使用方法を説明します。

- 第16.2.1項「プロキシ設定およびJDeveloperの使用方法」

- 第16.2.2項「Webサービスのコンテキスト・ルートの設定方法」

- 第16.2.3項「Webサービスとともに使用する接続の構成方法」

- 第16.2.4項「型マッピングの使用方法」

- 第16.2.5項「PL/SQL Webサービスおよび型の使用方法」

- 第16.2.6項「デプロイメント・プラットフォームの選択方法」

- 第16.2.7項「Webサービスのコード・インサイトの使用方法」

- 第16.2.8項「JAX-RPC 10.1.3 Webサービスの移行方法」

16.2.1 プロキシ設定およびJDeveloperの使用方法

デフォルトでは、JDeveloperでは、同じマシン上のデフォルト・ブラウザのプロキシ設定が使用されます。JDeveloperと同じマシン上にあるアプリケーション・サーバーへの接続など、JDeveloperからの接続に問題がある場合は、使用するプロキシ・サーバーの設定を変更する必要があります。

たとえば、プロキシ・サーバーを経由してIPアドレスに接続し、マシンも同じプロキシ・サーバーを経由している場合は、Webプロキシ設定で、接続先のIPアドレスを除外していることを確認します。

HTTPアナライザを使用する場合、アナライザ自身がプロキシであり、これにより監視されるトラフィックは、通常のプロキシ・サーバーのようにアナライザでルーティングされます。JDeveloperにプロキシを設定してある場合、アナライザでは、トラフィックが元のプロキシに届く前に、確実にアナライザを通過するようにします。

IPアドレスを除外するには、次のようにします。

1. 「ツール」→「プリファレンス」を選択し、「Webブラウザとプロキシ」を選択します。
詳細を参照するには、「Webブラウザとプロキシ」ダイアログで[F1]または「ヘルプ」をクリックします。

2. IPアドレスを「例外」リストに追加します。

ブラウザ・プロキシ・サーバーの使用を次のようにオフにします。

1. 「ツール」→「プリファレンス」を選択し、「Webブラウザとプロキシ」を選択します。
詳細を参照するには、「Webブラウザとプロキシ」ダイアログで[F1]または「ヘルプ」をクリックします。

2. 「HTTPプロキシ・サーバーを使用」の選択を解除します。

16.2.2 Webサービスのコンテキスト・ルートの設定方法

コンテキスト・ルートは、生成されるWebサービスのWebサービス・エンドポイントの一部となります。このため、適切な値に設定することが重要です。コンテキスト・ルートはプロジェクト・レベルで設定します。

Webサービスのコンテキスト・ルートは、WebサービスURLのhost:port部分の後に使用される文字列です。たとえば、WebLogic WebサービスのデプロイされたWSDLがhttp://hostname:7001/financial/GetQuote?WSDLであるとします。

このセルフサービスのコンテキスト・パスは、financialです。

コンテキスト・ルートを設定するには、次のようにします。

1. アプリケーション・ナビゲータで、プロジェクトを右クリックし、「プロジェクト・プロパティ」を選択し、「プロジェクト・プロパティ」ダイアログを開きます。
詳細を参照するには、「プロジェクト・プロパティ」ダイアログで[F1]または「ヘルプ」をクリックします。

2. 「プロジェクトのソース・パス」を展開し、「Webアプリケーション」を選択します。

3. デフォルトの「HTMLルート・ディレクトリ」のままにするか、新しい値を入力します。
ローカル・ディレクトリを参照するには、「参照」をクリックします。

16.2.3 Webサービスとともに使用する接続の構成方法

統合WebLogic Serverを使用してテストできる単純なWebサービスを開発できます。ただし、複雑なWebサービスの開発およびWebサービスのデプロイには、適切な接続が必要になります。

- WebサービスをOracle WebLogic Serverにデプロイするには、第16.12項「Webサービスのデプロイ」に示すように、アプリケーション・サーバー接続が必要です。

- Universal Description, Discovery and Integration (UDDI)レジストリを使用してWebサービスを検索するには、レジストリへの接続を作成する必要があります。詳細は、第16.3.1項「UDDIレジストリ接続の定義方法」を参照してください。

16.2.4 型マッピングの使用方法

Webサービスとの間で受け渡しが可能なオブジェクトは、XML型にシリアライズしたり、また元の型にデシリアライズできる必要があります。自動的に処理されるオブジェクトは、Javaプリミティブ型および特定のJava標準型です。自動的にシリアライズされないオブジェクトを使用してWebサービスを作成するには、独自のカスタム・シリアライザを記述します。

Webサービスとの間で受け渡しができるオブジェクトは、JavaBeanの規則に準拠しているオブジェクトです。Webサービスを目的とする場合、JavaBeanは、次の制限に準拠する任意のJavaクラスになります。

- publicデフォルト(ゼロ引数)コンストラクタを含んでいること。

- アクセッサとして関心のある属性をすべて表示する必要があること。

- プロパティのアクセッサ(setMethod()とgetMethod())の順序が重要でないこと。

- アクセッサは大/小文字混合で1文字目は小文字であること。たとえば、属性がnameの場合、アクセッサはgetNameおよびsetNameとなります。

Webサービスでは、各オブジェクトのプロパティはJava型の1つで、XMLスキーマの単純な型にマップされる必要があります。これらは次の表のとおりで、Webサービス向けにパラメータと戻り値によってサポートされるプリミティブXMLスキーマ型およびプリミティブXMLスキーマ型の配列です。また、サービス・メソッドによって、org.w3c.dom.Elementとして渡される単一のXML要素データを受け取り、戻すことができます。

表16-1 XMLスキーマ型からJava型へのマッピング

XMLスキーマ型

Java型

string

java.lang.String

boolean

java.lang.Boolean

decima

java.lang.Double

float

java.lang.Float

double

java.lang.Double

dateTime

java.util.Date

time

java.util.Date

date

date java.util.GregorianCalendar

base64Binary

java.lang.Byte[]

normalizedString

java.lang.String

integer

java.lang.Integer

long

java.lang.Long

int

java.lang.Integer

short

java.lang.Short

byte

java.lang.Byte

JAX-WS Webサービスでは、Java Architecture for XML Binding (JAXB) (http://jcp.org/en/jsr/detail?id=222を参照)を使用して、すべてのデータ・バインディング・タスクを管理します。特に、JAXBでは、Javaメソッド・シグネチャとWSDLメッセージおよび操作がバインドされるため、ランタイム変換を自動的に処理しながらマッピングをカスタマイズできます。これにより、XMLに精通していなくても、Javaテクノロジに基づいてXMLデータおよび処理機能をアプリケーションに組み込むことができます。

16.2.5 PL/SQL Webサービスおよび型の使用方法

この項では、特定の状況下でPL/SQL Webサービスを作成できない制限事項について説明します。

- オーバーロードされたプログラム・ユニット

- BFILE型

- BCLOB型

- OUTおよびIN-OUTパラメータ

- PL/SQLレコードからのPL/SQL Webサービスの作成

- 複数のスキーマからアクセスできる同じ名前のストアド・プロシージャ

- 戻り型Refカーソル

- SYSスキーマ

- パッケージ仕様部で宣言される型

- PL/SQLネスト表

オーバーロードされたプログラム・ユニット

同じパッケージ内の他のプログラム・ユニットと名前を共有するプログラム・ユニットが、オーバーロードされたプログラム・ユニットです。実行時に、同じ名前を持つプログラム・ユニットが複数存在する場合、WSDLプロセッサはどのプランニング・ユニットを実行する必要があるかを判断できません。このため、PL/SQLプランニング・ユニットをWebサービスとしてデプロイできません。

オーバーロードされたプログラム・ユニットの問題は、要件に応じて調整して回避できます。次のプログラムを含むPL/SQLパッケージに関する次の例について考えてみます。

-- promotes an employee to the specified rank
PROCEDURE promote_emp(empno IN NUMBER, rank IN NUMBER);

-- promotes an employee to the rank above their current rank
PROCEDURE promote_emp(empno IN NUMBER);

次のいずれかの方法で、型のオーバーロードに対処できます。

- 既存のパッケージを変更できる場合は、この後に示す2つのプロシージャをパッケージに追加し、新しいプロシージャからWebサービスを公開できます。
または

- この後に示す2つのプロシージャを新規パッケージに追加し、新しいパッケージからWebサービスを公開できます。

2つのプロシージャを次に示します。

-- promotes an employee to the specified rank
PROCEDURE promote_emp_to_rank(empno IN NUMBER, rank IN NUMBER)
IS
BEGIN
promote_emp(empno, rank);
END;

-- promotes an employee to the rank above their current rank
PROCEDURE promote_emp_to_next_rank(empno IN NUMBER) IS
BEGIN
promote_emp(empno);
END;

BFILE型

PL/SQLのBFILE型は、OUT引数またはファンクション戻り値としてのみ使用されます。

BCLOB型

PL/SQL型のBCLOBはサポートされていません。

OUTおよびIN-OUTパラメータ

OUTまたはIN-OUTパラメータのあるプログラム・ユニットを公開すると、OUTまたはIN-OUTパラメータのそれぞれに属性が1つある戻り型の構造でコール元に戻されます。たとえば、次のシグネチャを持つサービスの場合、

PROCEDURE a_proc(val1 IN VARCHAR2, val2 IN OUT NUMBER, val3 OUT INTEGER)

生成された結果のクラスにval2およびval3という最終値を返します。生成されたクラスでは、アクセッサ・メソッドを使用してこれらの値にアクセスできます。

PL/SQLレコードからのPL/SQL Webサービスの作成

JDeveloperでは、PL/SQLレコードを使用するPL/SQLパッケージからWebサービスを直接作成することはできません。旧バージョンのOracleデータベースから移行したPL/SQLパッケージを使用している場合、パッケージでやり取りされるパラメータがオブジェクト型ではなくレコード型であるために、機能のWebサービスとしての公開を試行しても実行できない場合があります。

レコード型を含むパッケージではOracle JPublisherを使用できます。詳細は、第28.3.1項「JPublisherの使用方法」を参照してください。

生成されるSQLファイルをデータベースに対して実行すると、オブジェクト型を含む同じ内容のパッケージが作成されます。この新しいパッケージを使用すると、通常どおりにPL/SQL Webサービスを作成できます。

複数のスキーマからアクセスできる同じ名前のストアド・プロシージャ

Oracle9i Databaseリリース2 (9.2)では、同じ名前とパッケージ名を持つストアド・プロシージャまたはストアド・ファンクションに複数のスキーマからアクセスできる場合、PL/SQL Webサービスの公開中に起動されたSQLJトランスレータは異常終了します。

この問題を解決するには、公開するパッケージが1つのスキーマのみで認識されるようにし、他のスキーマのパッケージで同じ名前を使用しないようにしてください。

戻り型Refカーソル

次の例のように、戻り型にrefカーソルを使用しているパッケージから、Webサービスを作成することはできません。

PACKAGE TEST AS
type EmpCurType is ref cursor;
function EmpData return TEST.EmpCurType;
END;

SYSスキーマ

任意のユーザーがSYS権限を引き継ぐことを防ぐため、中間層からはSYS権限のある接続を特定できません。つまり、SYSスキーマ内のパッケージからはWebサービスを作成できません。

たとえば、JDeveloper内にWebサービスを作成するために、中間層からSYSスキーマ内のPL/SQLパッケージにアクセスする必要がある場合には、SYSとしてデータベースにログオンし、自分の使用するユーザーにパッケージのEXECUTE権限を付与し、JDeveloperデータベース接続を作成します。

パッケージ仕様部で宣言される型

PL/SQLパッケージは、パッケージ仕様部で型を宣言できますが、このようなパッケージはWebサービスとして公開できません。これを回避するには、パッケージのスコープ外で型を作成します。

PL/SQLネスト表

JDeveloperでは、PL/SQLネスト表を使用するPL/SQLパッケージからWebサービスを直接作成することはできません。

16.2.6 デプロイメント・プラットフォームの選択方法

Webサービス・ウィザードを使用してWebサービスを作成する場合、表16-2に示すように、デプロイメント・プラットフォームを選択できます。選択するプラットフォームにより、ウィザードで使用可能なオプションや、デプロイメント用としてWAR/EARファイルに追加されるライブラリが決まります。

表16-2 デプロイメント・プラットフォーム

デプロイメント・プラットフォーム

説明

J2EE 1.4 JAX-RPC (WebLogic Server 10.3のサポート付き)

Oracle WebLogic Server 10.3にデプロイするために構成されるJAX-RPC Webサービスを生成します。

Java EE 1.5 (JAX-WS注釈のサポート付き)

Java EE 1.5の一部としてリリースされるJAX-WS WebサービスAPIを利用するWebサービスを生成します。このオプションでは、JAX-WS注釈仕様を使用したJava注釈により、WebLogic Server 10.3へのデプロイがサポートされています。

Java EE 1.5 (JAX-WS RIのサポート付き)

Sun JAX-WS参照実装をサポートする任意のコンテナをデプロイするためのJAX-WS Webサービスを生成します。

16.2.7 Webサービスのコード・インサイトの使用方法

Webサービスのコード・インサイトは、Javaクラスの入力時に注釈を完了し、XMLエディタでWSDL文書用として使用できます(つまり、「ソース」タブでの入力時)。コード・インサイトが反応する速度を構成できます。JDeveloperで「コード・インサイト」ページにアクセスするには、「ツール」メニュー→「プリファレンス」→「コード・エディタ」→「コード・インサイト」を選択します。

注意:

コード・インサイトは、JAX-RPC WebサービスのJavaクラスとは連携して機能せず、JAX-WS WebサービスのJavaクラスとのみ連携して機能します。

ソース・エディタで注釈を追加してJavaクラスからJAX-WS Webサービスを作成する場合、コード・インサイト機能であるクイック修正とコード・アシストを使用すると便利です。

たとえば、@WebService注釈を手動で追加してJavaクラスからWebサービスを作成する場合、注釈の下に波線が表示されます。監査修正アイコンをクリックし、「Webサービス用にプロジェクトを構成する」を選択します。

「デプロイメント・プラットフォームの選択」ダイアログで、サービスに対して次のいずれかのJAX-WSプラットフォームを選択します。

- Java EE 1.5 (JAX-WS注釈のサポート付き)。この場合、次が追加されます。

- クラスに対するimport javax.jws.WebService;文

- プロジェクトに対するweb.xmlファイル

- Java EE 1.5 (JAX-WS RIのサポート付き)。この場合、次が追加されます。

- クラスに対するimport javax.jws.WebService;文

- プロジェクトに対するsun-jaxws.xmlおよびweb.xmlファイル

他の例は、次のとおりです。

- ポリシー注釈をJAX-WS Webサービスに追加し、JDeveloperを使用して必要なポリシーを完了できます。たとえば、@Polを入力し、[Alt]キーを押しながら[Enter]キーを押すと、単一のポリシーに@Policyを使用するか、複数のポリシーに@Policiesを使用するかを選択できます。適切なインポート文もクラスに追加されます。

- ソース・エディタでWSDL文書を使用している場合、コード補完を使用すると、スキーマ要素を入力しやすくなります。たとえば、<と入力して1秒待つと、ポップアップが表示され、必要なエントリを選択できます。

- WSDLとWebサービスのソース・ファイルが同期しなくなった場合、Webサービスをソースから再生成できます。

- JavaクラスまたはWSDLでJavaクラスの名前を変更する場合、監査修正アイコンをクリックし、不一致を調整する方法を選択します。

16.2.8 JAX-RPC 10.1.3 Webサービスの移行方法

JDeveloper 10.1.3.nでJ2EE 1.4 JAX-RPC Webサービスとして作成したWebサービスを移行できます。

注意:

EJB 2.1 Webサービスは、JDeveloperのこのバージョンでは推奨されていないため、移行できません。JMS Webサービスは、Oracle固有のものであり、現在はサポートされていないため、移行できません。

アップグレード時には、次の処理が行われます。

- JAX-RPC 10.1.3 Webサービス・ライブラリを削除し、JAX-RPC 11g Webサービス・ライブラリに置き換えます。

- Oracle WebLogic Serverと互換性のあるJAX-RPC WebサービスとしてWebサービスを再生成します。詳細は、第16.5.6項「ソースからのWebサービスの再生成方法」を参照してください。

WSDLは変更されません。アップグレードの実行後、「Webサービスの編集」ダイアログを使用して、追加の変更を行うことができます。

移行したサービスの制限は、次のとおりです。

- JDeveloperのこのバージョンのJAX-RPC WebサービスはSOAP 1.1のみをサポートしているため、SOAP 1.2に対するサポートは削除されます。

- アタッチされているポリシーはすべて削除されます。新規ポリシーをアタッチするには、Webサービスを編集し、適切なOracle WebLogic Serverポリシーを適用します。詳細は、第16.9.3項「Webサービスへのポリシーのアタッチ方法」を参照してください。

注意:

JAX-RPC Webサービスでは、Oracle WebLogic Serverセキュリティ・ポリシーのみが使用可能です。

- 前のバージョンのステートフル・サービスに対するサポートは削除されます。現在のバージョンのステートフル・サービスに対するサポートは、「Webサービスの編集」ダイアログで構成できます。詳細は、第16.10項「Webサービスの編集および削除」を参照してください。

- RESTに対するサポートは削除されます。

- サポートされていないコレクション戻り型があるメソッドは、実装では無効です。

Webサービスを移行するには、次のようにします。

1. アプリケーション・ナビゲータで、ドロップダウン・リストから「アプリケーションを開く」を選択します。Webサービスが含まれるアプリケーションを開きます。
移行ウィザードが自動的に呼び出され、アプリケーションおよびプロジェクトを移行できます。詳細は、[F1]を押すか、ウィザード内で「ヘルプ」をクリックしてください。

2. 移行ウィザードの「Webapp 2.5移行」ページで、「Webapp 2.5へ移行」の選択を解除します。JAX-RPCは、web.xmlのバージョン2.5ではなくバージョン2.4と互換性があります。

3. Webサービスをアップグレードするには、アプリケーション・ナビゲータでWebサービス・コンテナを右クリックし、「WebサービスをWLS JAX-RPC構成にアップグレード」を選択します。

4. 「アップグレードの確認」メッセージを確認し、「はい」をクリックします。JAX-RPC 11g Webサービス・ライブラリを使用するようWebサービスがアップグレードされ、再生成されます。

5. 必要に応じて、Webサービスを編集して追加の変更を行います。

16.3 UDDIレジストリのWebサービスの使用

Universal Description, Discovery and Integration (UDDI)は、Webサービスを支える標準およびプロトコルの1つです。これによって、Webサービスに関する情報を公開および検出するための共通の標準が提供されます。また、UDDIブラウザが付属しており、指定した検索基準を使用してUDDIレジストリを検索し、Web Services Description Language (WSDL)により記述されたWebサービスを検出できます。UDDIの仕様を含む詳細は、UDDI OASIS標準(http://uddi.xml.org/)を参照してください。

次の項では、UDDIレジストリのWebサービスの使用方法について説明します。

- 第16.3.1項「UDDIレジストリ接続の定義方法」

- 第16.3.2項「UDDIレジストリ接続のビューの構成方法」

- 第16.3.3項「UDDIレジストリのWebサービスの検索方法」

- 第16.3.4項「UDDIレジストリのWebサービスを使用するためのプロキシの生成方法」

- 第16.3.5項「UDDIレジストリのWebサービスのレポートの表示方法」

- 第16.3.6項「UDDIレジストリへのWebサービスの公開方法」

16.3.1 UDDIレジストリ接続の定義方法

UDDIレジストリへの接続を定義することで、たとえば、社内のUDDIレジストリを参照できます。また、定義したUDDIレジストリ接続はすべて、どのワークスペースまたはプロジェクトからでもアクセスできます。

UDDIの仕様を含む詳細は、UDDI OASIS標準(http://uddi.xml.org/)を参照してください。

後続の項では、UDDIレジストリ接続の定義方法について説明します。

- 第16.3.1.1項「UDDIレジストリ接続の作成」

- 第16.3.1.2項「UDDIレジストリ接続の名前の編集」

- 第16.3.1.3項「UDDIレジストリ接続のビューの変更」

- 第16.3.1.4項「UDDIレジストリ接続のリフレッシュ」

- 第16.3.1.5項「UDDIレジストリ接続の削除」

16.3.1.1 UDDIレジストリ接続の作成

パブリックまたはプライベート(社内)であるUDDIレジストリに対する新規接続を作成できます。UDDIレジストリ接続は、「接続」パネルのリソース・パレットにリストされます。

新規接続を作成するには、次のようにします。

1. アプリケーション・ナビゲータでプロジェクトを選択します。

2. 「ファイル」→「新規」を選択して「新規ギャラリ」を開きます。

3. 「カテゴリ」ツリーで、「ビジネス層」を開いて「Webサービス」を選択します。

4. 「項目」リストで「UDDIレジストリ接続」をダブルクリックし、UDDIレジストリ接続の作成ウィザードを起動します。
詳細を参照するには、UDDIレジストリ接続の作成ウィザードで[F1]を押すか、「ヘルプ」をクリックします。

また、第6.9項「WebDAVとOracle JDeveloperの使用」に示すように、リソース・パレットで接続を直接作成することもできます。

16.3.1.2 UDDIレジストリ接続の名前の編集

既存のUDDIレジストリ接続を編集して、接続の名前を変更したり、照会エンドポイントのURLを変更できます。

レジストリの照会エンドポイントを変更するには、次のようにします。

1. メイン・メニューで、「表示」→「リソース・パレット」を選択します。デフォルトでは、リソース・パレットは「JDeveloper」ウィンドウの右側に表示されます。

2. リソース・パレットで、「UDDIレジストリ」を開きます。

3. 編集するUDDIレジストリ接続のポップアップ・メニューから「プロパティ」を選択します。
再入可能なUDDIレジストリ接続ウィザードが起動します。

詳細を参照するには、UDDIレジストリ接続の作成ウィザードで[F1]を押すか、「ヘルプ」をクリックします。

16.3.1.3 UDDIレジストリ接続のビューの変更

WebサービスがUDDIレジストリにリストされる順序は、カテゴリ・ビューからビジネス・ビューへ、またはビジネス・ビューからカテゴリ・ビューからへ変更できます。詳細は、第16.3.2項「UDDIレジストリ接続のビューの構成方法」を参照してください。

レジストリのビューを変更するには、次のようにします。

1. メイン・メニューで、「表示」→「リソース・パレット」を選択します。デフォルトでは、リソース・パレットは「JDeveloper」ウィンドウの右側に表示されます。

2. リソース・パレットで、「UDDIレジストリ」を開きます。

3. 編集するUDDIレジストリ接続のポップアップ・メニューから「レンダー・ビジネス・パースペクティブ」または「レンダー・カテゴリ・パースペクティブ」を選択します。

16.3.1.4 UDDIレジストリ接続のリフレッシュ

接続の下に格納されている情報を最新にするために、UDDIレジストリ接続をリフレッシュできます。

接続をリフレッシュするには、次のようにします。

1. メイン・メニューで、「表示」→「リソース・パレット」を選択します。デフォルトでは、リソース・パレットは「JDeveloper」ウィンドウの右側に表示されます。

2. リソース・パレットで、「UDDIレジストリ」を開きます。

3. 対象となるUDDIレジストリ接続のポップアップ・メニューから「リフレッシュ」を選択します。

16.3.1.5 UDDIレジストリ接続の削除

UDDIレジストリ接続は、不要になったらリソース・パレットから削除できます。

接続を削除するには、次のようにします。

1. メイン・メニューで、「表示」→「リソース・パレット」を選択します。デフォルトでは、リソース・パレットは「JDeveloper」ウィンドウの右側に表示されます。

2. リソース・パレットで、「UDDIレジストリ」を開きます。

3. 削除するUDDIレジストリ接続のポップアップ・メニューから「削除」を選択します。

4. 接続の削除を確認するメッセージが表示されます。「はい」をクリックします。

16.3.2 UDDIレジストリ接続のビューの構成方法

第16.3.1項「UDDIレジストリ接続の定義方法」に示すように、接続を作成する場合、レジストリのWebサービスをビジネス・ビューとカテゴリ・ビューのどちらに表示するか尋ねられます。選択するビューにより、レジストリのサービスを検索する方法が決まります。

16.3.2.1 ビジネス・ビューの選択

UDDIレジストリには、Webサービスの情報を分類するための次の4種類のデータ構造が含まれます。

- businessEntity: Webサービスを提供するビジネスの情報を含む最上位レベルのデータ構造を定義します。Webサービスが見つかると、リソース・パレットでビジネスがUDDIブラウザに追加されます。

- businessService: サービス・ファミリの説明的な情報が含まれます。名前や簡単な説明およびカテゴリ情報があります。

- bindingTemplate: Webサービス・エントリ・ポイント、およびインタフェース仕様への参照に関する情報が含まれます。

- tModel: Webサービスの技術仕様を表します。Webサービスの検索ウィザードでWebサービスが見つかると、そのtModelと互換性を持つWebサービスが他にも表示されます。

ビジネス・ビューを選択すると、サービスは「ビジネス・エンティティ」および「ビジネス・サービス」の下にリストされます。

16.3.2.2 カテゴリ・ビューの選択

カテゴリ・ビューを選択すると、次の1つ以上のカテゴリを使用してWebサービスを検索できます。

- UDDIタイプ: UDDIタイプを使用して検索します。

- NAICS: 産業の種類を指定します。

- ISO 3166: 場所を使用して検索します。

- UNSPSC: サービスのタイプを使用して検索します。

名前で検索するときは、名前全体または名前の一部を入力でき、ワイルドカードも使用できます。名前が検索基準と一致するtModelが結果として返されます。同じtModelを含むWebサービスが複数ある場合は、それらがウィザードに表示されるので、要件に最も適したサービスを選択できます。

16.3.3 UDDIレジストリのWebサービスの検索方法

Webサービスのリソース・パレットでUDDIレジストリ接続を検索できます。

注意:

トップ・ダウンWebサービスを作成する場合、Webサービスの検索ウィザードを使用して、WSDLからJava Webサービスを作成ウィザードからUDDIレジストリ接続を検索できます。

UDDIレジストリのWebサービスを検索するには、次のようにします。

1. 必要に応じて、UDDIレジストリ接続を作成します。詳細は、第16.3.1項「UDDIレジストリ接続の定義方法」を参照してください。

2. リソース・パレットで、Webサービスを検索します。詳細は、3.7項「リソース・パレットの操作」を参照してください。

16.3.4 UDDIレジストリのWebサービスを使用するためのプロキシの生成方法

リソース・パレットでUDDIレジストリ接続のWebサービスに対するプロキシを作成できます。

注意:

Webサービスに対するプロキシを作成できるのは、サービスにWSDLリンクが使用される場合のみです。これを確認するには、Webサービス・ポートを開き、レポートの「tModelインスタンス」セクションの「サマリーの説明」がwsdl linkであることを確認します。

プロキシを生成するには、次のようにします。

1. リソース・パレットを開きます。
メイン・メニューで、「表示」→「リソース・パレット」を選択します。デフォルトでは、リソース・パレットは「JDeveloper」ウィンドウの右側に表示されます。

2. 目的のWebサービスへ移動するか、これを検索します。

3. サービスに移動します。

4. サービスを右クリックし、「Webサービス・プロキシの生成」を選択してWebサービス・プロキシ・ウィザードを起動します。
詳細は、[F1]を押すか、ウィザード内で「ヘルプ」をクリックしてください。

16.3.5 UDDIレジストリのWebサービスのレポートの表示方法

UDDIレジストリのWebサービスのレポートを表示できます。

サービスのレポートを表示するには、次のようにします。

1. リソース・パレットで、UDDIレジストリ接続を開き、サービスのエンドポイントにナビゲートします。

2. サービスを右クリックして「レポートの表示」を選択します。
ソース・エディタにWebサービスのレポートが表示されます。

16.3.6 UDDIレジストリへのWebサービスの公開方法

アプリケーション・サーバー・ナビゲータでレジストリへの接続を介してUDDIレジストリにWebサービスを公開できます。UDDIレジストリにサービスを公開する前に、リソース・カタログにレジストリへの接続がすでに存在する必要があります。詳細は、第16.3.1.1項「UDDIレジストリ接続の作成」を参照してください。

UDDIレジストリにWebサービスを公開するには、次のようにします。

1. Oracle WebLogic ServerにWebサービスをデプロイします。

注意:

Webサービスを統合WebLogic Serverにデプロイする場合、公開先のUDDIレジストリは統合WebLogic Serverに対してローカルである必要があります。

2. アプリケーション・サーバー・ナビゲータで、アプリケーション・サーバー・ノードを開きます。

3. Webサービス・ノードを開き、公開するWebサービスのノード(WSDLを表すノード)を検索します。

4. WSDLノードを右クリックし、「UDDIにWSDLを公開」を選択して「WSDLをUDDIレジストリに公開します」ダイアログを起動します。
詳細を参照するには、「WSDLをUDDIレジストリに公開します」ダイアログで[F1]を押すか、「ヘルプ」をクリックします。

16.4 Webサービス・クライアントの作成

JDeveloperでは、Webサービス・クライアントおよびプロキシの作成ウィザードを使用してWebサービスにアクセスするためのクライアントおよびプロキシ・クラスを作成することにより、アプリケーションでのWebサービスの使用が容易になります。このウィザードは、Webサービスを検索または作成するときに起動できます。または直接ウィザードを起動して、WebサービスのURLを入力したりWebサービスの検索ウィザードを使用してUDDIレジストリ内のWebサービスを検索することもできます。

RPCまたはドキュメント・スタイルのWebサービスについては、適切なタイプのプロキシが自動的に生成されます。

注意:

JAX-WS Webサービスは、RPCスタイルをサポートしていません。

詳細は、次のリソースを参照してください。

- Webサービス・クライアントの開発は、『Oracle Fusion Middleware Oracle WebLogic Server JAX-WS Webサービス・スタート・ガイド』のWebサービスの起動に関する項を参照してください。

- Webサービスおよびクライアントの保護と管理は、『Oracle Fusion Middleware Webサービスのためのセキュリティおよび管理者ガイド』を参照してください。

次の項では、Webサービス・クライアントを作成および使用する方法について説明します。

- 第16.4.1項「クライアントおよびプロキシ・クラスの作成方法」

- 第16.4.2項「Webサービス・クライアントおよびプロキシ・クラスの使用方法」

- 第16.4.3項「Webサービス・クライアントの作成に使用されたWSDLの表示方法」

- 第16.4.4項「実行時のWebサービスWSDLの更新方法」

- 第16.4.5項「Webサービス・クライアントおよびプロキシ・クラスの再生成方法」

- 第16.4.6項「Webサービス・クライアントの管理方法」

- 第16.4.7項「@WebServiceRef注釈を使用したWebサービスの参照方法」

16.4.1 クライアントおよびプロキシ・クラスの作成方法

JDeveloperを使用して、Webサービスにアクセスしてそのメソッドをアプリケーションで呼び出すために、クライアントおよびプロキシ・クラスを自動的に作成します。ウィザードを使用して、必要に応じて、非同期メソッドを生成し、ポリシーをアタッチすることもできます。

Webサービス・クライアントおよびプロキシの作成ウィザードを使用して、Webサービスにアクセスするためのクライアントおよびプロキシ・クラスを作成できます。公開されているポートごとに新規サービス・クラス(JAX-WS)またはスタブ(JAX-RPC)およびサービス・インタフェースが生成され、これらがアプリケーション・ナビゲータにリストされます。生成されたクライアント・ファイルport-nameClient.javaはソース・エディタで開かれます。生成後は、アプリケーションでメソッドを呼び出すことができます。

注意:

場合によっては、インターネット上でアクセスするWebサービス用として作成したか、UDDIレジストリを使用して作成したWebサービス・クライアントを実行すると、エラーが発生する可能性があります。Webサービス標準は常に進化しているため、検索したWebサービスが最新の標準に準拠していない場合や、これらが準拠する標準が、クライアントが実行されているサーバーでサポートされている標準と互換性がない場合があります。JDeveloperで作成したWebサービス・クライアントによってエラーが返された場合は、エラー・メッセージを確認し、同じサービスを提供するがサーバーと互換性があり問題なく動作する別のWebサービスに対してクライアントを作成することを検討してください。

Webサービス・クライアントおよびプロキシの作成ウィザードにアクセスするには、次のいずれかの方法を使用します。ウィザードの操作のヘルプを参照するには、ウィザード内で[F1]を押すか「ヘルプ」をクリックします。

Webサービスにアクセスするためのクライアントおよびプロキシ・クラスを作成するには、次のようにします。

1. アプリケーション・ナビゲータで、使用するプロジェクトを選択します。

2. 「ファイル」→「新規」を選択して「新規ギャラリ」を開きます。

3. 「カテゴリ」リストで、「Webサービス」を選択します。

4. 「項目」リストで「Webサービス」をダブルクリックし、Webサービス・クライアントおよびプロキシの作成ウィザードを起動します。
詳細を参照するには、Webサービス・クライアントおよびプロキシの作成ウィザードで[F1]を押すか、「ヘルプ」をクリックします。

JDeveloperで定義されたWebサービスにアクセスするためのクライアントおよびプロキシ・クラスを作成するには、次のようにします。

1. アプリケーション・ナビゲータでWebサービス・コンテナを右クリックし、次を選択します。

- JAX-WS Webサービスの場合は「Webサービス注釈のクライアントの作成」

- JAX-RPC Webサービスの場合は「Webサービス・プロキシの生成」

2. Webサービス・クライアントおよびプロキシの作成ウィザードが開き、選択したWebサービス・プロジェクトが移入されます。

注意:

JavaBeanパラメータを使用するEJB Webサービスのクライアントおよびプロキシ・クラスを作成する場合は、JavaBeanにjava.io.Serializableインタフェースを実装する必要があります。

16.4.2 Webサービス・クライアントおよびプロキシ・クラスの使用方法

JDeveloperでは、Webサービスに対するプロキシを定義する多数のファイルが生成されます。生成されたファイルを使用して、次のタイプのWebサービス・クライアント・アプリケーションを開発できます。

- スタンドアロン・クライアント・アプリケーション

- Java Standard Edition (SE)クライアント・アプリケーション

- Oracle WebLogic ServerにデプロイされるJava EEコンポーネント

注意:

次の手順以外にも、Webサービス・インジェクション(@WebServiceRefメソッドを使用)を使用して、Webサービスの参照を定義し、Webサービス・クライアントでインジェクション・ターゲットを識別できます。詳細は、第16.4.7項「@WebServiceRef注釈を使用したWebサービスの参照方法」を参照してください。

16.4.2.1 スタンドアロン・クライアント・アプリケーションの使用方法

スタンドアロン・クライアント・アプリケーションは、その最もシンプルな形式において、Javaコマンドを使用して呼び出すMain publicクラスを持つJavaプログラムです。これは、WebLogic Serverからは完全に独立して動作します。

スタンドアロン・クライアントで生成されたクライアント・プロキシ・クラスを使用するには、次のようにします。

1. port_nameClient.javaと呼ばれるクライアント・プロキシ・クラスをソース・エディタで開きます。
このファイルは、Webサービス・クライアント・プロキシを最初に作成するときに自動的に開きます。クラスを再度開くには、クライアント・プロキシ・コンテナを右クリックし、「クライアント・クラスに移動」を選択するか、アプリケーション・ナビゲータでそのままファイルをダブルクリックします。

2. mainメソッド内のtry-catchブロック内にある「// ここに独自のコードを追加してください。」というコメントを検索し、Webサービスの呼出しに適したコードを追加します。

3. クライアントを実行します。

16.4.2.2 Java Standard Edition (SE)クライアント・アプリケーションの使用方法

生成されたプロキシ・クラスをJava Standard Edition (SE)アプリケーションの一部として組み込み、これらを参照してリモートWebサービスにアクセスします。

JSEコンポーネントで生成されたクライアント・プロキシ・クラスを使用するには、次のようにします。

1. 生成されたクライアント・プロキシ・クラスをJSEアプリケーション・ソース・ディレクトリにコピーします。

2. port_nameClient.javaと呼ばれるメイン・クライアント・プロキシ・クラスをガイドとして使用し、アプリケーションからWebサービスへのアクセスに適したメソッドを追加します。

3. アプリケーションを実行します。

16.4.2.3 WebLogic ServerにデプロイされたJava EEコンポーネント・クライアント・アプリケーションの使用方法

この場合、Webサービスは、EJB、サーブレット、または他のWebサービスなど、WebLogic ServerにデプロイされたJavaプラットフォーム、Enterprise Edition (Java EE)バージョン5コンポーネント内で動作します。したがって、このタイプのクライアント・アプリケーションはWebLogic Serverコンテナ内で動作します。

Java EEコンポーネントで生成されたクライアント・プロキシ・クラスを使用するには、次のようにします。

1. port_nameClient.javaと呼ばれるメイン・クライアント・プロキシ・クラスをソース・エディタで開きます。
このファイルは、Webサービス・クライアント・プロキシを最初に作成するときに自動的に開きます。クラスを再度開くには、クライアント・プロキシ・コンテナを右クリックし、「クライアント・クラスに移動」を選択するか、アプリケーション・ナビゲータでそのままファイルをダブルクリックします。

2. Webサービスにアクセスして必要な操作を行うための独自のメソッドにメイン・メソッドを置き換えます。メイン・メソッドで生成されたコードをガイドとして使用できます。

3. JDeveloperで生成されたクライアント・モジュール・クラスの完全なセットをデプロイします。

4. Java EEアプリケーションでクライアント・プロキシ・クラスを参照します。

16.4.3 Webサービス・クライアントの作成に使用されたWSDLの表示方法

次の状況において、Webサービス・クライアントの生成に使用されたWSDLを表示できます。

- 可能な場合、WSDLファイルのローカル・コピーが表示されます。Webサービス・クライアントを生成する場合、ソースWebサービスのWSDLをローカル・ディレクトリにコピーできます。第16.4.1項「クライアントおよびプロキシ・クラスの作成方法」を参照してください。

注意:

ほとんどの場合、WSDLのローカル・コピーはリモートWebサービスのWSDLと一致します。リモートWebサービスが変更されると、ローカルWSDLがリモートWSDLと同期しなくなる可能性があります。Webサービス・クライアントがリモートWebサービスにアクセスできることを確認するには、必要に応じて、リモートWSDLを使用してローカルWSDLを再生成します。第16.4.5項「Webサービス・クライアントおよびプロキシ・クラスの再生成方法」を参照してください。

- ローカル・バージョンが使用できない場合、リモートWSDLが表示されます。

クライアントWSDLを表示するには、次のようにします。

1. アプリケーション・ナビゲータ内でWebサービス・クライアントを右クリックします。

2. ポップアップ・メニューで「WSDLに移動」を選択します。
WSDLが表示されます。

16.4.4 実行時のWebサービスWSDLの更新方法

場合によっては、Webサービスの説明の一部であるソースとは異なるソースからインポートされたXMLリソース(WSDLやXSDなど)を参照するため、アプリケーションを更新する必要がある可能性があります。パフォーマンスを向上させたりアプリケーションがローカル環境で正しく動作することを確認するために、XMLリソースをこのようにリダイレクトすることが必要な場合があります。

たとえば、WSDLはクライアントの生成時にアクセス可能であるが、クライアントの実行時にはアクセスできない場合があります。ネットワークを介して使用可能なリソースではなく、アプリケーションに対してローカルであるかアプリケーションにバンドルされたリソースを参照することが必要な場合があります。

次のいずれかのメソッドを使用すると、実行時にWebサービスによって使用されるWSDLの場所を変更できます。

- XMLカタログ・ファイル

- Webサービス・インジェクション(@WebServiceRef)およびデプロイメント・プラン

16.4.4.1 XMLカタログ・ファイルの使用方法

Webサービス・クライアントを作成または再生成すると、jax-ws-catalog.xmlファイルがMETA-INFディレクトリに自動的に作成されます。このファイルは、Oasis XMLカタログの仕様(https://www.oasis-open.org/committees/download.php/14809/xml-catalogs.html)で説明されているように、OASIS XMLスキーマに準拠しています。

WebサービスWSDLを更新するには、jax-ws-catalog.xmlファイルの<system>要素のuri属性を変更します。指定した値は実行時に使用されます。

次の例は、リモートWSDLのXMLカタログ(jax-ws-catalog.xml)ファイルを示しています。

<catalog xmln="urn:oasis:names:tc:entity:xmlns:xml:catalog"
prefer="system">
<system systemId="http://foo.org/hello?wsdl"
uri="http://foo.org/hello?wsdl" />
</catalog>

次の例は、ローカルWSDLのXMLカタログ(jax-ws-catalog.xml)ファイルを示しています。

<catalog xmln="urn:oasis:names:tc:entity:xmlns:xml:catalog"
prefer="system">
<system systemId="http://foo.org/hello?wsdl"
uri="../org/foo/HelloService.wsdl" />
</catalog>

前述の例で、各要素の意味は次のとおりです。

- <catalog>ルート要素は、XMLカタログ・ネームスペースを定義し、prefer属性をsystemに設定してシステムとの一致が優先されるよう指定しています。

- <system>要素は、URI参照をsystem識別子に関連付けています。

注意:

同じエンドポイントを共有するローカル・システム上で複数のWebサービスに対してクライアントおよびプロキシ・クラスを作成することにより、jaxws-catalog.xmlファイルでWebサービスごとにURLが一意であるようにすると、サービスQNameがアンカー・テキストとして追加されます。次に例を示します。

http://foo.org/helloworld?wsdl

これは次のようになります。

http://foo.org/helloworld#%7Bhttp%3A%2F%2Fexample.com%2F%7DHelloService?wsdl

16.4.4.2 Webサービス・インジェクション(@WebServiceRef)およびデプロイメント・プランの使用方法

このメソッドには、次の手順が含まれます。

1. @WebServiceRef注釈を使用して、Webサービスへの参照を定義し、インジェクション・ターゲットを識別します。

2. デプロイメント・プランを更新し、実行時に参照されるWebサービスWSDLの値を変更します。

ステップ1: @WebServiceRef注釈の使用

@WebServiceRef注釈は、web.xmlファイルに定義されているWebサービス・インタフェースのエンドポイントをインジェクトします。次の例は、@WebServiceRef注釈を使用して、Webサービスへの参照を定義し、インジェクション・ターゲットを識別する方法を示しています。

@WebService
public class LoansApprover {
/**
** Credit rating service injected from web.xml
**/
@WebServiceRef(name = "CreditRatingService")
CreditRating creditRating;

/**
** @return Loan application with approval code if approved.
**/
public LoanApprovalReponse approveLoan(LoanApplication la) {
...
}
}

次の例に示すように、CreditRatingServiceのWebサービス・クラスはweb.xmlファイルにハードコード化されています。

<?xml version = '1.0' encoding = 'windows-1252'?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee">
...
<service-ref>
<service-ref-name>CreditRatingService</service-ref-name>
<service-interface>
com.somecreditrating.xmlns.rating.CreditRating_Service
</service-interface>
</service-ref>
</web-app>

ステップ2: デプロイメント・プランの更新

実行時に使用されるWSDLの値を変更するため、デプロイメント・プランを生成および更新できます。

デプロイメント・プランは、特定のWebLogic Server環境にデプロイするアプリケーションの構成に使用するオプションのXML文書です。デプロイメント・プランは、通常はアプリケーションのWebLogic Serverデプロイメント・ディスクリプタに定義されるデプロイメント・プロパティ値を定義または上書きします。アプリケーションの構成を更新するには、デプロイメント・プランの変数を追加または更新し、WebLogic Serverディスクリプタ・プロパティの場所とプロパティに割り当てる値の両方を定義します。詳細は、『Oracle Fusion Middleware Oracle WebLogic Serverへのアプリケーションのデプロイ』を参照してください。

次の例は、CreditRatingService WebサービスWSDLの値を上書きするデプロイメント・プランを示しており、各要素の意味は、次のとおりです。

- variable-definition要素は、CreditRatingService変数とこの変数に割り当てる値を定義します。

- LoanApplication-LoanApprover-context-root.warのmodule-overrideの一部として、variable-assignment要素は、CreditRating Service変数、およびプロパティが上書きされるディスクリプタ内の正確な場所を定義します。

<?xml version='1.0' encoding='UTF-8'?>
<deployment-plan xmlns="http://www.bea.com/ns/weblogic/deployment-plan"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.bea.com/ns/weblogic/deployment-plan
http://www.bea.com/ns/weblogic/deployment-plan/1.0/deployment-plan.xsd"
global-variables="false">
<application-name>production</application-name>
<variable-definition>
<variable>
<name>CreditRatingService</name>
<value>http://www.somecreditrating.com/xmlns/rating?WSDL</value>
</variable>
</variable-definition>
<module-override>
<module-name>production.ear</module-name>
<module-type>ear</module-type>
<module-descriptor external="false">
<root-element>weblogic-application</root-element>
<uri>META-INF/weblogic-application.xml</uri>
</module-descriptor>
<module-descriptor external="false">
<root-element>application</root-element>
<uri>META-INF/application.xml</uri>
</module-descriptor>
<module-descriptor external="true">
<root-element>wldf-resource</root-element>
<uri>META-INF/weblogic-diagnostics.xml</uri>
</module-descriptor>
</module-override>
<module-override>
<module-name>
LoanApplication-LoanApprover-context-root.war
</module-name>
<module-type>war</module-type>
<module-descriptor external="false">
<root-element>weblogic-web-app</root-element>
<uri>WEB-INF/weblogic.xml</uri>
</module-descriptor>
<module-descriptor external="false">
<root-element>web-app</root-element>
<uri>WEB-INF/web.xml</uri>
<variable-assignment>
<name>CreditRatingService</name>
<xpath>
/web-app/service-ref/[service-ref-name="CreditRatingService"]/wsdl-file
</xpath>
<operation>add</operation>
</variable-assignment>
</module-descriptor>
<module-descriptor external="true">
<root-element>weblogic-webservices</root-element>
<uri>WEB-INF/weblogic-webservices.xml</uri>
</module-descriptor>
<module-descriptor external="false">
<root-element>webservices</root-element>
<uri>WEB-INF/webservices.xml</uri>
</module-descriptor>
<module-descriptor external="true">
<root-element>webservice-policy-ref</root-element>
<uri>WEB-INF/weblogic-webservices-policy.xml</uri>
</module-descriptor>
</module-override>
<config-root>
D:\prom-demo\jdeveloper\mywork\LoanApplication\deploy\production\.\plan
</config-root>
</deployment-plan>

16.4.5 Webサービス・クライアントおよびプロキシ・クラスの再生成方法

Webサービス・クライアントおよびプロキシ・クラスは再生成が必要な場合があります。

注意:

Webサービス・クライアントおよびプロキシ・クラスを再生成すると、クライアントが最後に生成されてからクラス、WSDLまたはサポート・ファイルに対して行った変更がすべて破棄されます。

Webサービス・クライアントおよびプロキシ・クラスを再生成するには、次のようにします。

1. アプリケーション・ナビゲータで、再生成するWebサービス・クライアント・ノードを右クリックして、ポップアップ・メニューから「プロパティ」を選択します。
Webサービス・クライアントおよびプロキシ・エディタ・ウィザードが表示されます。

2. 「Webサービス記述」を選択します。(デフォルトで選択されています。)

3. 元の場所にあるWSDLを使用してローカルWSDLをリフレッシュするには、「元のWSDLの場所からコピーしたWSDLをリフレッシュ」を選択します。

4. 「OK」をクリックします。
WSDLのローカル・コピーがリフレッシュされ、Webサービス・クライアントおよびプロキシ・クラスが再生成されます。

Webサービス・クライアントおよびプロキシ・クラスを再生成するには、次のようにします。

次のように、Webサービス・クライアントおよびプロキシ・エディタ・ウィザードに最後に定義された一連のプロパティや現在ローカルに格納されているWSDLを使用して、Webサービス・クライアントおよびプロキシ・クラスを迅速かつ簡単に再生成できます。

- アプリケーション・ナビゲータで、再生成するWebサービス・クライアント・ノードを右クリックして、ポップアップ・メニューから「Webサービス・プロキシの再生成」を選択します。
Webサービス・クライアント・クラス、WSDLおよびサポート・プロキシ・ファイルが再生成されます。

16.4.6 Webサービス・クライアントの管理方法

JDeveloperには、Webサービス・クライアントの編集機能と削除機能の両方が用意されています。

Webサービス・クライアントを編集するには、次のようにします。

Webサービス・クライアントはWebサービス・クライアントおよびプロキシ・エディタを使用して編集できます。Webサービス・クライアントおよびプロキシ・エディタにアクセスするには、次のようにします。

1. アプリケーション・ナビゲータ内でクライアントをダブルクリックします。

2. アプリケーション・ナビゲータ内でクライアントを右クリックし、「プロパティ...」を選択します。
ウィザードの操作のヘルプを参照するには、ウィザード内で[F1]を押すか「ヘルプ」をクリックします。

Webサービス・クライアントを削除するには、次のようにします。

1. アプリケーション・ナビゲータで、Webサービス・クライアントのプロキシ・ファイルpackage.proxyを含むノードを開き、ファイルを選択します。

2. 「ファイル」→「ディスクから削除」を選択します。JDeveloperで検出される使用状況はすべて無視できます。

3. Webサービス・プロキシのランタイム・ファイルpackage.proxy.runtimeを含むノードを開いて、ファイルを選択します。

4. 「ファイル」→「ディスクから削除」を選択します。
ファイルは永久に削除されます。

16.4.7 @WebServiceRef注釈を使用したWebサービスの参照方法

javax.xml.ws.WebServiceRef注釈を使用する場合、Webサービスへの参照を任意のコンテナ管理のJavaクラスに挿入できます。

@WebServiceRef注釈をJavaクラスに迅速かつ簡単に追加するには、Javaクラス・エディタ内でWebサービス参照を挿入する場所を右クリックし、次のいずれかのオプションを選択します。

- ポップアップ・メニューで「プロキシの作成および参照の挿入」を選択します。
このコマンドにより、Webサービス・クライアントおよびプロキシの作成ウィザードが起動し、Webサービス・クライアントおよびプロキシ・クラスを生成できます。次に、javax.xml.ws.WebServiceRefおよびWebサービスのプロキシ・クラスが自動的にインポートされ、選択したWebサービスへの参照が指定した場所に挿入されます。

- ポップアップ・メニューから「プロキシ参照の挿入」を選択し、ドロップダウン・リストから既存のWebサービス・プロキシを選択します。
次に、javax.xml.ws.WebServiceRefおよびWebサービスのプロキシ・クラスが自動的にインポートされ、選択したWebサービスへの参照が指定した場所に挿入されます。Webサービスのプロキシ・クラスが現在使用可能ではない場合、このオプションはグレー表示されます。

次の抜粋は、Javaクラスに自動的に追加されるコードの例を示しています。

import java.xml.ws.WebServiceRef;
import ratingservice.CreditRatingService;
...
/**
** Injectable field for service WebServiceClient
**/
@WebServiceRef
CreditRatingService creditRatingService1;
...

詳細は、GDの@WebServiceRef注釈を使用したWebサービス参照の定義に関する項を参照してください。

16.5 SOAP Webサービスの作成(ボトム・アップ)

Webサービスは、トップ・ダウンとボトム・アップという2つの開発方式を使用して作成できます。ボトム・アップ開発とは、基礎となるJava実装からSOAPを使用してWebサービスを開発するプロセスを表します。WSDLから開始するトップ・ダウン開発の詳細は、第16.6項「WSDLからのSOAP Webサービスの作成(トップ・ダウン)」を参照してください。

次の各項では、様々なタイプのWebサービスをボトム・アップ方式で生成する方法について説明します。

- 第16.5.1項「Java Webサービスの作成方法」

- 第16.5.2項「JSR-181注釈の使用方法」

- 第16.5.3項「PL/SQL Webサービスの作成方法」

- 第16.5.4項「TopLinkデータベースWebサービス・プロバイダの作成方法」

- 第16.5.5項「Webサービスの原子性トランザクションの使用方法」

- 第16.5.6項「ソースからのWebサービスの再生成方法」

- 第16.5.7項「ハンドラの使用方法」

- 第16.5.8項「JAX-RPCのスーパークラス・メソッドの公開方法」

- 第16.5.9項「オーバーロードのメソッドの処理方法」

- 第16.5.10項「JAX-RPCマッピング・ファイル・エディタを使用したJavaメソッドとWSDL操作間のマッピングの設定方法」

16.5.1 Java Webサービスの作成方法

J2EE Webサービスは、次のものから作成できます。

- Javaクラス

- EJBのリモート・インタフェース

Webサービス作成公開ウィザードによってデプロイメント・ファイルは自動的に作成されるため、Webサービスの作成が済んだら、後はこれをデプロイするだけです。

始める前に:

コンテキスト・ルートをまだ設定していない場合は、Webサービスの適切なコンテキスト・ルートを設定します。詳細は、第16.2.2項「Webサービスのコンテキスト・ルートの設定方法」を参照してください。

Webサービスを作成する手順は、次のとおりです。

1. アプリケーション・ナビゲータで、Webサービスの作成元のJavaクラスまたはEJBが含まれるプロジェクトを選択します。

2. 「ファイル」→「新規」を選択して「新規ギャラリ」を開きます。

3. 「カテゴリ」リストで「ビジネス層」を開き、「Webサービス」を選択します。「項目」リストで「Java Webサービス」をダブルクリックして、Java Webサービスの作成ウィザードを起動します。
ウィザードの操作の詳細なヘルプを参照するには、ウィザード内で[F1]を押すか、「ヘルプ」をクリックします。

注意:

「デプロイメント・プラットフォームの選択」ページが表示されるのは、プロジェクトでWebサービスが初めて作成される場合のみです。その後、同じプロジェクトで追加されるWebサービスにはすべて同じバージョンが使用されます。

16.5.2 JSR-181注釈の使用方法

JSR-181はWebサービスのメタデータを規定したもので、これにより、アノテーションを宣言的に使用して簡単にWebサービスを作成および管理することが可能になります。アノテーションは、メソッドおよびクラスでWebサービスのエンドポイントとしてメソッドを公開するために使用します。

JSR-181注釈は、手動でクラスに追加するか、JDeveloperを使用してWebサービスの作成時にクラスに追加するか、または「Webサービスの編集」ダイアログを使用してWebサービスの編集時に追加できます。

注意:

「Webサービスの編集」ダイアログを使用して注釈を削除すると、手動で入力した注釈もすべて削除されます。

注釈を追加するには、次のようにします。

1. ソース・エディタでJavaクラスを開きます。

2. 正しい行で@とタイプして2から3秒待機します。
「コード・インサイト」に可能な値が表示されます。詳細は、第16.2.7項「Webサービスのコード・インサイトの使用方法」を参照してください。

詳細は、次のリファレンスを参照してください。

- JSR-181仕様: http://jcp.org/en/jsr/detail?id=18

- JAX-WS仕様: http://jcp.org/aboutJava/communityprocess/mrel/jsr224/index2.html

- WebLogic Serverで使用可能なJWS注釈の詳細は、『Oracle Fusion Middleware Oracle WebLogic Server WebLogic Webサービス・リファレンス』のJWS注釈リファレンスに関する項を参照してください。

16.5.3 PL/SQL Webサービスの作成方法

PL/SQL Webサービスの作成ウィザードを使用すると、オブジェクト型を使用するPL/SQLパッケージまたはJavaストアド・プロシージャからWebサービスを生成する操作が容易になります。PL/SQL Webサービス・ウィザードでは、これらはパッケージと同様に処理されます。

注意:

作成できるのはJAX-RPC PL/SQL Webサービスのみです。詳細は、第16.2.6項「デプロイメント・プラットフォームの選択方法」を参照してください。

PL/SQL Webサービスは、Oracle WebLogic Serverにデプロイできます。PL/SQL Webサービスの作成ウィザードでは、PL/SQLをJavaでラップするOracle JPublisherの機能を使用して、サービスを公開します。詳細は、第28.3.1項「JPublisherの使用方法」を参照してください。

次のいずれかの方法が可能です。

- アプリケーション・ナビゲータのプロジェクトからWebサービスを作成する方法。この場合、データベース接続とWebサービスを生成するPL/SQLパッケージを選択します。

- データベース・ナビゲータまたはリソース・パレットのデータベース接続ノードの下でPL/SQLパッケージからWebサービスを作成する方法。この場合、Webサービスについて生成されるファイルのデプロイ先となるプロジェクトを選択する必要があります。

次の点に注意する必要があります。

- PL/SQL Webサービスの編集は、データベース接続が存在している間に行わないと、エラー・メッセージが表示されます。データベース接続が削除されている場合は新規に作成し、削除前と同じ名前を付けます。

- Webサービスが作成できない場合もあります。制限の詳細は、第16.2.5項「PL/SQL Webサービスおよび型の使用方法」を参照してください。

- PL/SQL Webサービスのデプロイは、他のJ2EE Webアプリケーションのデプロイと似ています。詳細は、第16.12項「Webサービスのデプロイ」を参照してください。

プロジェクトからPL/SQL Webサービスを作成するには、次のようにします。

1. アプリケーション・ナビゲータでプロジェクトを選択します。

2. 「ファイル」→「新規」を選択して「新規ギャラリ」を開きます。

3. 「カテゴリ」リストで「ビジネス層」を開き、「Webサービス」を選択します。「項目」リストで「PL/SQL Webサービス」をダブルクリックして、PL/SQL Webサービスの作成ウィザードを起動します。
ウィザードの操作の詳細なヘルプを参照するには、ウィザード内で[F1]を押すか、「ヘルプ」をクリックします。

PL/SQLパッケージからWebサービスを作成するには、次のようにします。

1. データベース・ナビゲータまたはリソース・パレットで、データベース接続ノード、スキーマ・ノード、「パッケージ」ノードの順に開き、さらにそのパッケージのノードを開きます。

2. PL/SQLパッケージの本体を右クリックして、「Webサービスとして公開」を選択し、PL/SQLサービスの作成ウィザードを起動します。

16.5.4 TopLinkデータベースWebサービス・プロバイダの作成方法

TopLink DB Webサービス・プロバイダの作成ウィザードを使用すると、TopLinkデータベース用のJAX-WS Webサービス・プロバイダを構築し、次のいずれかタスクを実行できます。

- ストアド・プロシージャおよびファンクションへのアクセス

- SQL問合せの実行

- 表に対するCRUD操作の実行

選択したサービスのタイプに基づいて、Oracle WebLogic Serverなどのアプリケーション・サーバーにデプロイできるWebサービス・プロバイダおよびWSDL文書がウィザードによって生成されます。TopLink Webサービス・プロバイダのデプロイは、他のJ2EE Webアプリケーションのデプロイと似ています。詳細は、第16.12項「Webサービスのデプロイ」を参照してください。

次の点に注意する必要があります。

- JAX-WS Webサービス・プロバイダが生成されます。

- TopLink Webサービス・プロバイダを編集する場合、データベース接続が存在することを確認してください。存在しない場合、エラー・メッセージが表示されます。データベース接続が削除されている場合は新規に作成し、削除前と同じ名前を付けます。

- 場合によっては、TopLink Webサービス・プロバイダを生成できない可能性があります。制限の詳細は、第16.2.5項「PL/SQL Webサービスおよび型の使用方法」を参照してください。

プロジェクトからTopLink Webサービス・プロバイダを作成するには、次のようにします。

1. アプリケーション・ナビゲータでプロジェクトを選択します。

2. 「ファイル」→「新規」を選択して「新規ギャラリ」を開きます。

3. 「カテゴリ」リストで「ビジネス層」を開き、「Webサービス」を選択します。「項目」リストで「TopLink DB Webサービス・プロバイダ」をダブルクリックして、TopLink Webサービス・プロバイダの作成ウィザードを起動します。
ウィザードの操作の詳細なヘルプを参照するには、ウィザード内で[F1]を押すか、「ヘルプ」をクリックします。

16.5.5 Webサービスの原子性トランザクションの使用方法

WebLogic Webサービスは、次の仕様のサポートを通じて、Websphere、JBoss、Microsoft .NETなどの他の外部トランザクション処理システムとの相互運用を可能にします。

- WS-AtomicTransaction (バージョン1.0、1.1および1.2): http://docs.oasis-open.org/ws-tx/wstx-wsat-1.2-spec-cs-01/wstx-wsat-1.2-spec-cs-01.html

- WS-Coordination (バージョン1.0、1.1および1.2): http://docs.oasis-open.org/ws-tx/wstx-wscoor-1.2-spec-cs-01/wstx-wscoor-1.2-spec-cs-01.html

これらの仕様は、一連の参加者の間で分散アクティビティを調整するための拡張可能なフレームワークを定義します。コーディネータは中央のコンポーネントで、トランザクションの状態(調整コンテキスト)を管理し、WebサービスおよびWebクライアントを参加者として登録することを可能にします。Webサービスの原子性トランザクションの詳細は、『Oracle Fusion Middleware Oracle WebLogic Server JAX-WS Webサービスの高度な機能のプログラミング』のWebサービスの原子性トランザクションの使用に関する項を参照してください。

Webサービス実装の原子性トランザクションをクラス・レベルまたは同期メソッド(双方向メソッドの場合のみ)で有効にするには、次のいずれかの方法を使用します。

- @weblogic.wsee.wstx.wsat.Transactional注釈をJavaクラスに直接追加します。この場合、JDeveloperコード・インサイト機能が役に立ちます。詳細は、第16.2.7項「Webサービスのコード・インサイトの使用方法」を参照してください。

- 次のように、プロパティ・インスペクタを使用します。

Webサービス・クライアントの原子性トランザクションを有効にするには、次のいずれかの方法を使用します。

- @WebServiceRef注釈またはWebサービスのインジェクション可能なターゲットを右クリックし、メニューから「トランザクションの追加」を選択し、@Transactional注釈を追加します。

- Webサービス・プロキシまたはWebサービス・ディスパッチの作成時のパラメータとしてweblogic.wsee.wstx.wsat.TransactionalFeatureを渡します。詳細は、『Oracle Fusion Middleware Oracle WebLogic Server JAX-WS Webサービスの高度な機能のプログラミング』のWebサービスの原子性トランザクションの使用に関する項を参照してください。

Webサービスの原子性トランザクションを有効にする場合、次の情報を構成します。

- バージョン: Webサービスおよびクライアントで使用されるWebサービスの原子性トランザクションの調整コンテキストのバージョン。クライアントでは、送信メッセージでのみ使用されるバージョンを指定します。指定した値は、トランザクション全体で整合している必要があります。有効な値は、WSAT10、WSAT11、WSAT12およびDEFAULTです。WebサービスのDEFAULT値は3つのバージョンすべてです(インバウンド・リクエストによって決定します)。Webサービス・クライアントのDEFAULT値は、WSAT10です。

- フロー・タイプ: 調整コンテキストがトランザクション・フローとともに渡されるかどうかを指定するフラグ。次の表は、有効な値およびWebサービスおよびクライアントでのそれらの意味の概要を示します。また、@TransacationAttribute注釈を使用するEJB型のWebサービス用にWebサービスの原子性トランザクションを構成する場合の有効な値の組合せの概要を示します。

表16-3 トランザクション構成

値

Webサービス・クライアント

Webサービス

EJB @TransactionAttributeの有効な値

NEVER

JTAトランザクションがある場合: トランザクションの調整コンテキストをエクスポートしません。

JTAトランザクションがない場合: トランザクションの調整コンテキストをエクスポートしません。

トランザクション・フローが存在する場合: トランザクションの調整コンテキストをインポートしません。CoordinationContextヘッダーにmustunderstand="true"が含まれている場合は、SOAPフォルトがスローされます。

トランザクション・フローがない場合: トランザクションの調整コンテキストをインポートしません。

NEVER、NOT_SUPPORTED、REQUIRED、REQUIRES_NEW、SUPPORTS

SUPPORTS(デフォルト)

JTAトランザクションがある場合: トランザクションの調整コンテキストをエクスポートします。

JTAトランザクションがない場合: トランザクションの調整コンテキストをエクスポートしません。

トランザクション・フローが存在する場合: トランザクション・コンテキストをインポートします。

トランザクション・フローがない場合: トランザクションの調整コンテキストをインポートしません。

SUPPORTS、REQUIRED

MANDATORY

JTAトランザクションがある場合: トランザクションの調整コンテキストをエクスポートします。

JTAトランザクションがない場合: 例外がスローされます。

トランザクション・フローが存在する場合: トランザクション・コンテキストをインポートします。

トランザクション・フローがない場合: サービス側の例外がスローされます。

MANDATORY、REQUIRED、SUPPORTS

JavaクラスでWebサービスの原子性トランザクションを有効にするには、次のようにします。

1. ソース・エディタでWebサービス・クラスを開きます。

2. JDeveloperコード・インサイトを使用すると便利です。
@Transactionalのように、注釈の入力を開始します。中断するか[Ctrl]キーと[Shift]キーを押しながら[Space]キーを押すと、ポップアップが表示され、文を正しく完成するためのエントリを選択できます。

3. 次のようにバージョンおよびフロー・タイプ値を指定できます。

@Transactional(version=Transactional.Version.[WSAT10|WSAT11|WSAT12|DEFAULT],
value=Transactional.TransactionFowType.[MANDATORY|SUPPORTS|NEVER])

プロパティ・インスペクタでWebサービスの原子性トランザクションを有効にするには、次のようにします。

1. ソース・エディタでWebサービス・クラスが開かれた状態で「表示」→「プロパティ・インスペクタ」を選択し、プロパティ・インスペクタを開きます。
詳細を参照するには、プロパティ・インスペクタ内で[F1]を押すか、「ヘルプ」をクリックします。

2. publicクラス@WebServiceまたはクラスの双方向メソッド行にカーソルを置いた状態で、プロパティ・インスペクタのWebサービス拡張機能ノードにナビゲートします。

3. 「トランザクションの追加」を選択します。
プロパティ・インスペクタがリフレッシュされ、フロー・タイプおよびバージョンを設定するためのオプションが表示されます。構成オプションの詳細は、表16-3を参照してください。

4. 「フロー・タイプ」ドロップダウン・リストから、フロー・タイプを選択します。有効な値は、Supports、NeverおよびMandatoryです。このフィールドのデフォルトはSupportsです。

5. 「バージョン」ドロップダウン・リストから、バージョンを選択します。有効な値は、WS-AT 1.0、WS-AT 1.1、WS-AT 1.2およびDefaultです。WebサービスのDefault値は3つのバージョンすべてです(インバウンド・リクエストによって決定します)。Webサービス・クライアントのDefault値は、WS-AT 1.0です。

Webサービス・クライアントのインジェクション可能なターゲットでWebサービスの原子性トランザクションを有効にするには、次のようにします。

1. ソース・エディタでWebサービス・クライアントを開きます。

2. @WebServiceRef注釈またはインジェクション可能なターゲットを右クリックし、メニューから「トランザクションの追加」を選択します。
@Transactional注釈がWebサービス・クライアントに追加されます。

3. 次のようにバージョンおよびフロー・タイプ値を指定できます。

@Transactional(version=Transactional.Version.[WSAT10|WSAT11|WSAT12|DEFAULT],
value=Transactional.TransactionFowType.[MANDATORY|SUPPORTS|NEVER])

構成オプションの詳細は、表16-3を参照してください。

16.5.6 ソースからのWebサービスの再生成方法

Webサービスは再生成が必要な場合があります。たとえば、サービスの最初の生成元のソースが変更された場合などです。

注意:

Webサービスを再生成すると、最後に生成されてからWSDLに対して行った変更がすべて破棄されます。

Webサービス・クライアントを再生成した後、Webサービスに対してクライアントを再生成する必要がある場合があります。そうしない場合、コンパイル・エラー(クライアントがWebサービスと同じプロジェクトにある場合)や、ランタイム・エラー(クライアントがWebサービスと別のプロジェクトにある場合)が発生する場合があります。

注釈を使用していないときに基礎となるクラスのメソッドの名前を変更する場合、サービスを再生成すると、メソッドが選択されていないというエラー・メッセージが表示されます。これは、メソッドがネームスペースにより追跡され、ネームスペースを変更するとJDeveloperで再生成の対象を決定できなくなるためです。このエラーを修正するには、Webサービス・コンテナをダブルクリックしてWebサービス・エディタを開き、「メソッド」ページに移動してWebサービスの基にするメソッドを選択する必要があります。

ソースからWebサービスを再生成するには、次のようにします。

1. アプリケーション・ナビゲータで、再生成するWebサービス・コンテナを右クリックします。

2. ポップアップ・メニューから「ソースからWebサービスを再生成」を選択します。
サービスが自動的に再生成され、最後にサービスを生成した後にWSDLに加えた変更はすべて失われます。

16.5.7 ハンドラの使用方法

JDeveloperでは、ハンドラ・クラスを指定してWebサービス・メッセージを処理できます。ハンドラは、初期設定済パラメータ、SOAPロールまたはSOAPヘッダーを使用できます。

ハンドラを定義するには、次のようにします。

1. Webサービスを作成します。詳細は、第16.5.1項「Java Webサービスの作成方法」を参照してください。
または

Webサービス・エディタを開きます。詳細は、第16.10項「Webサービスの編集および削除」を参照してください。

2. 「ハンドラ詳細」ページで、使用する値を入力します。
作業中に詳細を参照するには、[F1]を押すか、ダイアログ内から「ヘルプ」をクリックします。

16.5.8 JAX-RPCのスーパークラス・メソッドの公開方法

注意:

JAX-WS Webサービスの場合、スーパークラス・メソッドは常に公開されます。

JAX-RPCのスーパークラス・メソッドを公開する場合、次の2つの例を検討してください。

package mypackage;
public class Shape {
public void area() {
}
}

および

package mypackage;
public class Circle extends Shape {
public Circle() {
}
public void callParentMethod() {
super.area();
}
}

Shapeを拡張するクラスCircleに、親クラスのメソッドareaをコールする責任を持つpublicメソッドcallParentMethod()があります。スーパークラス・メソッドarea()をコールするには、publicメソッドcallParentMethod ()を使用してCircleクラスを基にJ2EE Java Webサービスを作成します。

16.5.9 オーバーロードのメソッドの処理方法

Webサービスの基として使用するJavaクラスにオーバーロード・メソッドが含まれている場合、JDeveloperではそのメソッドが自動処理されます。ただし、J2EE 1.4 Webサービスを作成する場合で、サービスの基になるクラスを変更して既存のメソッドがオーバーロード・メソッドとなる場合は、マッピング・ファイルを更新する必要があります。

オーバーロード・メソッドを処理する手順は、開発するWebサービスのタイプ(JAX-WSまたはJAX-RPC)によって異なります。

JAX-WS Webサービスのオーバーロード・メソッドの処理

JAX-WS Webサービスの場合、@WebMethod注釈を使用してオーバーロード・メソッドの名前を変更できます。次に例を示します。

public class SimpleImpl {
@WebMethod(operationName="sayHelloOperation")
public String sayHello(String message) {
System.out.println("sayHello:" + message);
return "Here is the message: '" + message + "'";
}
...
}

この例では、SimpleImpl JWSファイルのsayHello()メソッドがWebサービスのパブリック操作として公開されています。ただし、operationName属性は、WSDLファイル内の操作のパブリック名がsayHelloOperationであることを指定しています。

@WebMethodの詳細は、『Oracle Fusion Middleware Oracle WebLogic Server JAX-WS Webサービス・スタート・ガイド』のパブリック操作としてのJWSメソッドの公開の指定(@WebMethodおよび@OneWay注釈)に関する項を参照してください。

JAX-RPC Webサービスのオーバーロード・メソッドの処理

JAX-RPC Webサービスの場合、オーバーロード・メソッドを処理する方法は2通りあります。

- マッピング・ファイルを手動で変更します。

- マッピング・ファイルを削除してWebサービスを再作成します。

マッピング・ファイルを手動で変更するには、次のようにします。

Javaクラスを基にWebサービスを作成した後、オーバーロード・メソッドをクラスに追加します。

マッピング・ファイルを削除してWebサービスを再作成するには、次のようにします。

1. アプリケーション・ナビゲータで、「Webコンテンツ」およびWEB-INFを開きます。

2. <web_service>-java-wsdl-mapping.xmlを右クリックして「削除」を選択します。

3. Webサービス・エディタを開きます。詳細は、第16.10項「Webサービスの編集および削除」を参照してください。

4. 「OK」をクリックして閉じ、サービスを再生成します。

16.5.10 JAX-RPCマッピング・ファイル・エディタを使用したJavaメソッドとWSDL操作間のマッピングの設定方法

JAX-RPCでは、Java型とWSDL定義がマップされます。ただし、サポートの必要なタイプがJSR-109仕様に含まれていない場合、またはWebサービスに必要な機能を提供するために異なるマッピングを使用する必要がある場合は、JAX-RPCマッピング・ファイル・エディタを使用して既存のマッピング・ファイルを変更したり、独自のマッピング・ファイルを作成することができます。

JAX-RPCマッピング・ファイル・エディタはスキーマ駆動の専用エディタで、J2EE 1.4 Webサービス用のJSR-109準拠のマッピング・ファイルの作成に役立ちます。このマッピング・ファイルがJava-WSDLマッピングを標準化するので、通常、JSR-109のデフォルトのマッピング規則が満たされない場合にのみ完全なマッピングを提供する必要があります。

次の各機能が、JAX-RPCマッピング・ファイル・エディタの使用時に利用できます。

- 入力時に、「<」(左角括弧)を入力した後一時休止するか、または[Ctrl]キーを押しながら[Space]キーを押すと(デフォルトのキー・マッピングを使用している場合)コード・インサイトを起動できます。コード・インサイトには、スキーマに基づいて有効な要素がリスト表示されます。

- 「表示」→「コンポーネント・パレット」を選択してパレットを開き、ドロップダウン・リストから使用可能なページを1つ選択できます。

- マッピング・ファイルの要素が構造ウィンドウに階層表示され、構造ウィンドウには入力および編集時に見つかったXML構文エラーも表示されます。要素またはエラーをダブルクリックして、JAX-RPCマッピング・ファイル・エディタで編集することができます。

- エディタ内でXML要素を右クリックして「構造ウィンドウ内で検索」を選択し、「構造」ウィンドウを開いて要素の表示と選択を行うことができます。編集中に、開いたファイルを右クリックして「XMLの自動インデント」を選択すると要素を適切にインデントできます。

- 開いた「JAX-RPCマッピング・ファイル・エディタ」ウィンドウ、またはアプリケーション・ナビゲータで選択されたWebサービスの「構造」ウィンドウで、マッピング・ファイルを右クリックして「WSDLの検証」を選択します。「WSDLの検証」コマンドを使用すると、登録済のスキーマと比較してXMLが検証されます。

16.6 WSDLからのSOAP Webサービスの作成(トップ・ダウン)

JDeveloperでは、トップ・ダウンWebサービスを開発(つまり、WSDLから開始)できます。JDeveloperにより、サービス実装とそのデプロイメント・ディスクリプタが生成されます。ファイル・システムのWSDLを参照したり、Webサービスの検索ウィザードを使用して、リソース・パレットでUDDIレジストリ内のWebサービスを検索できます。

WSDLからSOAP Webサービスを作成(トップ・ダウン)するには、次のようにします。

1. アプリケーション・ナビゲータで、Webサービスを作成するプロジェクトを選択します。

2. 「ファイル」→「新規」を選択して「新規ギャラリ」を開きます。

3. 「カテゴリ」リストで「ビジネス層」を開き、「Webサービス」を選択します。「項目」リストで「WSDLからJava Webサービス」をダブルクリックして、WSDLからJava Webサービスを作成ウィザードを起動します。
ウィザードの操作の詳細なヘルプを参照するには、ウィザード内で[F1]を押すか、「ヘルプ」をクリックします。

SOAP Webサービスが作成され、Java実装クラスがエディタで自動的に開かれます。

16.7 RESTful Webサービスの作成

Representational State Transfer (REST)は、SOAPなどの追加メッセージング・レイヤーなしで、標準化されたインタフェース(HTTPなど)を介してデータを送信する単純なインタフェースを記述するものです。RESTには、ステートレス・サービスを作成するための一連の設計ルールが用意されており、これらはリソース(特定の情報のソース)として表示されます。それぞれのリソースは固有のURIで識別できます。クライアントがURIを使用してリソースにアクセスすると、標準化された固定のメソッド・セットと、リソースの表示が返されます。クライアントは、新しい各リソース表示を使用してステートを転送します。

HTTPプロトコルを使用してRESTfulリソースにアクセスする際は、リソース識別子がリソースのURLとなります。そのリソースに対して実行する標準操作は、HTTPメソッドの1つ(GET、PUT、DELETE、POSTまたはHEAD)です。

次の項では、RESTful Webサービスおよびクライアントを作成する方法について説明します。

- 第16.7.1項「プロジェクトへのJersey JAX-RS参照実装の追加方法」

- 第16.7.2項「JAX-RS Webサービスおよびクライアントの作成方法」

16.7.1 プロジェクトへのJersey JAX-RS参照実装の追加方法

JDeveloperでRESTful Webサービスを作成する前に、Jersey JAX-RSの参照実装(RI)をダウンロードしてプロジェクトに追加する必要があります。Jersey JAX-RS RIは、http://jersey.java.netから入手できます。Jersey RIに関する情報を参照し、関連するライブラリJARファイルを含むZIPファイルをダウンロードするには、「ダウンロード」をクリックします。ダウンロードしたら、Jersey RIをプロジェクトに追加する必要があります。

注意:

Jersey RI 1.1.5.1 (jersey-archive-1.1.5.1)バージョン以降は、JDeveloperのこのリリースと互換性があります。

Jersey JAX-RS RIをプロジェクトに追加するには、次のようにします。

1. アプリケーション・ナビゲータでプロジェクトを選択し、「プロジェクト・プロパティ」ダイアログを開きます。
ダイアログを表示するには、「プロジェクト」フォルダをダブルクリックするか、「編集」→「プロパティ」を選択します。

2. 「ライブラリとクラスパス」ノードを選択します。

3. 「ライブラリとクラスパス」ページで「ライブラリの追加」をクリックします。

4. 「ライブラリの追加」ダイアログで、「新規」をクリックします。

5. 「ライブラリの作成」ダイアログで、新規ライブラリの名前(JAX-RSなど)を入力し、その場所を選択します。

6. 「デフォルトでデプロイ済」を有効にします。

注意:

このチェック・ボックスを選択しない場合、RESTful Webサービスおよびクライアントのデプロイ時にエラーが表示されます。

7. 「クラスパス」を選択し、「エントリの追加」をクリックします。

8. 「パス・エントリの選択」ダイアログで、Jerseyアーカイブのlibディレクトリにナビゲートします。たとえば、c:\mylibraries\jersey-archive-1.1.5.1\libなどです。

9. libディレクトリ内のすべてのJARファイルを選択し、「選択」をクリックします。

注意:

RESTful Webサービスのみを開発する(つまり、RESTfulクライアントは開発しない)場合、jersey-client-1.1.5.1.jarを含める必要はありません。同様に、RESTful Webサービス・クライアントのみを開発する場合、jersey-server-1.1.5.1.jarを含める必要はありません。

10. ソース・ファイルをダウンロードした場合、ソース・ファイルを指し示すよう「ソースパス」を設定できます(前のステップでクラスパスを定義した方法と同じ)。

11. 「ライブラリの作成」ダイアログで、「OK」をクリックします。

12. 「ライブラリの追加」ダイアログで、「OK」をクリックします。

13. ライブラリとクラスパス・ページで作業が完了した後、「OK」をクリックします。

Jersey JAX-RS RIをプロジェクトに追加したら、JAX-RS Webサービスおよびクライアントを作成できます。

16.7.2 JAX-RS Webサービスおよびクライアントの作成方法

Jersey JAX-RS RIをプロジェクトに追加したら、JDeveloperを使用してJAX-RS Webサービスおよびクライアントの作成を開始できます。コード・インサイトやインポート・アシスタンスなどの標準Javaソース・エディタのすべての機能がJAX-RSコールと連携して機能するようになります。

JAX-RSおよびサンプルの詳細は、Jersey RIドキュメント(https://wikis.oracle.com/display/Jersey/Main)を参照すると役に立ちます。

RESTful Webサービスを作成したら、HTTPアナライザを使用してこれらをテストできます。詳細は、第16.13.4項「HTTPアナライザを使用したWebサービスの調査方法」を参照してください。

注意:

RESTful Webサービスおよびクライアントのデプロイ時にエラーが発生した場合は、Jersey JAX-RS RIをプロジェクトに追加する際に「デフォルトでデプロイ済」チェック・ボックスを選択していることを確認してください。

簡単なHello Worldの例

例16-1は、非常に簡単なRESTful Webサービスの例を示しています。

例16-1 RESTful Webサービス

package samples.helloworld;

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;

// Specifies the path to the RESTful service
@Path("/helloworld")
public class helloWorld {

// Specifies that the method processes HTTP GET requests
@GET
@Path("sayHello")
@Produces("text/plain")
public String sayHello() {
return "Hello World!";
}
}

例16-2は、前に定義したRESTful Webサービスをコールする簡単なRESTfulクライアントを示しています。この例では、明確にJersey JAX-RS RIによって提供されるクラスを使用しています。これらのクラスはJAX-RS標準の一部ではありません。

例16-2 RESTfulクライアント

package samples.helloworld.client;

import com.sun.jersey.api.client.Client;
import com.sun.jersey.api.client.WebResource;

public class helloWorldClient {
public helloWorldClient() {
super();
}

public static void main(String[] args) {
Client c = Client.create();
WebResource resource = c.resource(
"http://localhost:7101/RESTfulService-Project1-context-root/
jersey/helloWorld");
String response = resource.get(String.class);
}
}

web.xmlファイルについて

JDeveloperでは、サーブレット・クラスはweb.xmlファイルに自動的には追加されません。かわりに、JAX-RSメソッドをコードからコールするときに追加するかどうか確認するよう求められます。たとえば、図16-1を参照してください。

図16-1 更新を確認するプロンプト

注意:

web.xmlファイルはなぜ自動的に更新されないのでしょうか。将来、Java EE 6.0コンテナをデプロイするときに、web.xmlの更新が必要になります。したがって、これはオプションのアクティビティとして設定されています。

web.xmlを更新するには、次のようにします。

web.xmlを更新するには、次のように、「web.xmlをJersey JAX-RS Webサービス用に構成します」を選択します。

<?xml version = '1.0' encoding = 'windows-1252'?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
version="2.5" xmlns="http://java.sun.com/xml/ns/javaee">
<servlet>
<servlet-name>jersey</servlet-name>
<servlet-class>
com.sun.jersey.spi.container.servlet.ServletContainer
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>jersey</servlet-name>
<url-pattern>/jersey/*</url-pattern>
</servlet-mapping>
</web-app>

16.8 WSDLの管理

JDeveloperには、次の各項に示すように、WebサービスのWSDLを管理する方法が多数用意されています。

- 第16.8.1項「WSDL文書の作成方法」

- 第16.8.2項「Webサービス・プロジェクトへのWSDLの追加方法」

- 第16.8.3項「WebサービスのWSDLの表示方法」

- 第16.8.4項「ローカル・ディレクトリへのWSDLの保存方法」

16.8.1 WSDLドキュメントの作成方法

WSDLドキュメントを作成することにより、たとえば、トップ・ダウンWebサービスを作成できます。

WSDLを作成するには、次のようにします。

1. アプリケーション・ナビゲータで、Webサービスの作成元のJavaクラスまたはEJBが含まれるプロジェクトを選択します。

2. 「ファイル」→「新規」を選択して「新規ギャラリ」を開きます。

3. 「カテゴリ」リストで「ビジネス層」を開き、「Webサービス」を選択します。「項目」リストで、「WSDLドキュメント」をダブルクリックして「WSDLドキュメントの作成」ダイアログを開きます。
ウィザードの操作の詳細なヘルプを参照するには、ダイアログ内で[F1]を押すか、「ヘルプ」をクリックします。

16.8.2 Webサービス・プロジェクトへのWSDLの追加方法

Webサービス用のWSDLファイルを生成し、次に示す手順を使用してこれをプロジェクトに追加できます。WSDLファイルは自動的に生成され、プロジェクト内のWebアプリケーション用のWEB-INF/wsdlディレクトリおよびEJBアプリケーション用のMETA-INF/wsdlディレクトリに追加されます。また、ローカルWSDLの場所を参照するためにwsdlLocation属性を使用して@WebService注釈が更新されます。次に例を示します。

@WebService(wsdlLocation="WEB-INF/wsdl/CreditRatingService.wsdl")

注意:

WSDLファイルがWEB-INF/wsdlまたはMETA-INF/wsdlディレクトリにすでに存在する場合は、既存のWSDLファイルを上書きするかどうかを尋ねられます。

WSDLをWebサービス・プロジェクトに追加するには、次のようにします。

アプリケーション・ナビゲータで、WSDLを追加するWebサービスを右クリックし、ポップアップ・メニューから「WSDLを生成し、プロジェクトを追加します」を選択します。WSDLが自動的に生成され、WEB-INF/wsdlディレクトリでプロジェクトに追加されます。

16.8.3 WebサービスのWSDLの表示方法

WebサービスのWSDLを表示できます。WSDLファイルは、Webサービスに定義されている注釈に基づいて一時ディレクトリに生成され、表示されます。

Webサービス・プロジェクトにWSDLを表示するには、次のようにします。

アプリケーション・ナビゲータで、WSDLを表示するWebサービスを右クリックし、ポップアップ・メニューから「Webサービス注釈のWSDLの表示」を選択します。

WSDLファイルが一時ディレクトリに生成され、表示されます。

16.8.4 ローカル・ディレクトリへのWSDLの保存方法

WebサービスのリモートWSDLを表示する場合、WSDLをローカル・ディレクトリに保存できます。

注意:

WSDLをWebサービス・プロジェクト内で使用する場合、プロジェクト・ディレクトリ(たとえば、Webアプリケーションの場合はWEB-INF/wsdl、EJBアプリケーションの場合はMETA-INF/wsdl)によってアクセスされる場所にこれをコピーし、WSDLの場所を参照するように@WebService注釈を更新します。

ローカル・ディレクトリにWSDLを保存するには、次のようにします。

1. WebサービスのWSDLファイルを表示します。

2. 「ツール」→「WSDLをローカルでコピー」を選択します。

3. 「WSDLの移動先を選択」ダイアログで、WSDLを保存する場所にナビゲートするか、「ディレクトリ名」テキスト・ボックスに場所を入力し、「選択」をクリックします。
WSDLが指定した場所に保存されます。

16.9 ポリシーとWebサービスの使用

この項では、JDeveloperで作成されたWebサービスとともにポリシーを使用する方法について説明します。次のタイプのポリシーを使用できます。

- Oracle Web Service Manager (Oracle WSM)ポリシー: セキュリティ・ポリシーをJAX-WS Webサービスに対してのみアタッチします。

- Oracle WebLogic Webサービス・ポリシー: JAX-WSまたはJAX-RPC Webサービスにアタッチします。

2つのタイプのポリシーを同じWebサービスに混在させることはできないため、計画段階でどちらを使用するかを決定する必要があります。1つのタイプのポリシーをWebサービスに追加したら、現在アタッチされているポリシーを削除せずに他のタイプに切り替えることはできません。たとえば、Oracle WSMポリシーを構成した後、Oracle WebLogic Webサービス・ポリシーを使用する必要がある場合、Oracle WebLogic Webサービス・ポリシーをアタッチする前にOracle WSMポリシーを削除する必要があります。

次の項では、Webサービスとともにポリシーを使用する方法について説明します。

- 第16.9.1項「Oracle WSMポリシーについての注意事項」

- 第16.9.2項「Oracle WebLogic Webサービス・ポリシーについての注意事項」

- 第16.9.3項「Webサービスへのポリシーのアタッチ方法」

- 第16.9.4項「Webサービス・クライアントへのOracle WSMポリシーのアタッチ方法」

- 第16.9.5項「WebLogic Webサービス・ポリシーを使用して保護されたWebサービスの呼出し方法」

- 第16.9.6項「Webサービスのポリシーの編集および削除方法」

- 第16.9.7項「カスタムWebサービス・ポリシーの使用方法」

- 第16.9.8項「異なるOracle WSMポリシー・ストアの使用方法」

始める前に:

ポリシーを使用するために実行する必要のあるすべてのタスクについて、詳細な検討はこのガイドの範囲外ですが、一般的に実行が必要なステップは、次のとおりです。

1. 使用するポリシーを決定します。詳細は、『Oracle Fusion Middleware Webサービスのためのセキュリティおよび管理者ガイド』の使用するセキュリティ・ポリシーの決定に関する項を参照してください。

2. クラスまたはサービスにポリシーをアタッチします。詳細は、第16.9.3項「Webサービスへのポリシーのアタッチ方法」を参照してください。

3. 正しいキーストアおよびポリシーによる処理が必要な他の情報を使用してサーバーを構成し、サーバーにWebサービスをデプロイします。詳細は、『Oracle Fusion Middleware Webサービスのためのセキュリティおよび管理者ガイド』のポリシーの構成に関する項を参照してください。

4. Webサービスをテストし、ポリシーが予想どおりに動作することを確認します。詳細は、第16.11.1項「ブラウザでのWebサービスのテスト方法」を参照してください。

16.9.1 Oracle WSMポリシーについての注意事項

Oracle WSMポリシーは、ポート・レベルでJAX-WS Webサービスにアタッチできます。現在、JDeveloperではOracle WSMセキュリティ・ポリシーのみをサポートしています。

JDeveloperは、次の方法でアクセスする「プリファレンス」ダイアログの「WSポリシー」ページにあるデフォルトの場所で設定されたポリシー・ストアを使用するよう事前構成されています。

- 「ツール」メニュー→「プリファレンス」→「WSポリシー・ストア」
または

- 「アプリケーション」メニュー→「アプリケーションのプロパティ」→「WSポリシー・ストア」

自社のOracle WSMカスタム・ポリシーを使用するために別のポリシー・ストアの場所を指定できます。詳細は、第16.9.8項「異なるOracle WSMポリシー・ストアの使用方法」を参照してください。

Oracle WSMポリシーの詳細は、『Oracle Fusion Middleware Webサービスのためのセキュリティおよび管理者ガイド』を参照してください。

ポリシーの注釈

Javaクラスでweblogic.wsee.jws.jaxws.owsm.SecurityPolicy注釈を使用して単一のポリシーをアタッチできます。次はその例です。

@SecurityPolicy(uri = "oracle/wss11_message_protection_service_policy")

複数の@SecurityPolicy要素が含まれる@SecurityPoliciesを使用して、複数のポリシーをコンポジットとしてアタッチできます。次はその例です。

@SecurityPolicies( {
@SecurityPolicy(uri = "oracle/wss_http_token_service_policy"),
@SecurityPolicy(uri = "oracle/wss_oam_token_service_policy")
} )

注意:

有効なポリシーのリストを表示するには、[Ctrl]キーと[Alt]キーを押しながら[Enter]キーを押し、コード・アシスト機能を呼び出します。

16.9.2 Oracle WebLogic Webサービス・ポリシーについての注意事項

Oracle WebLogic Webサービス・ポリシーは、ポート・レベルまたは操作レベルでJAX-WSおよびJAX-RPC Webサービスにアタッチできます。Oracle WebLogic Webサービス・ポリシーを使用すると、ポリシーの使用方向を指定できます。つまり、インバウンド(リクエスト)メッセージまたはアウトバウンド(レスポンス)メッセージ、あるいはその両方に適用できます。

自社のOracle WebLogicのカスタムWebサービス・ポリシーを使用するようJDeveloperを構成できます。詳細は、第16.9.7項「カスタムWebサービス・ポリシーの使用方法」を参照してください。

詳細は、『Oracle Fusion Middleware Oracle WebLogic Server WebLogic Webサービスの保護』を参照してください。

ポリシーの注釈

Javaクラスでweblogic.jws.Policy注釈を使用して単一のポリシーをアタッチできます。次はその例です。

@Policy(uri = "policy:Wssp1.2-2007-Https-UsernameToken-Plain.xml")

複数の@Policy要素が含まれる@Policiesを使用して複数のポリシーをコンポジットとしてアタッチできます。次はその例です。

@Policies( {
@Policy(uri = "policy:Wssp1.2-2007-Https-BasicAuth.xml"),
@Policy(uri = "policy:Wssp1.2-2007-Https-UsernameToken-Plain.xml")
} )

注意:

有効なポリシーのリストを表示するには、[Ctrl]キーと[Alt]キーを押しながら[Enter]キーを押し、コード・アシスト機能を呼び出します。

16.9.3 Webサービスへのポリシーのアタッチ方法

JDeveloperでは、Oracle Web Service Manager (Oracle WSM)ポリシーまたはOracle WebLogic Webサービス・ポリシーをWebサービスにアタッチできます。

Webサービスにポリシーをアタッチした後、ポリシーを構成する必要があります。詳細は、『Oracle Fusion Middleware Webサービスのためのセキュリティおよび管理者ガイド』のポリシーの構成に関する項を参照してください。

Webサービスにポリシーをアタッチする方法は、次のとおりです。

- 新規Webサービスの作成時にWebサービス・ウィザードでアタッチするポリシーを選択するか、すでに存在するWebサービスの更新時にWebサービス・エディタでアタッチするポリシーを選択します。

- Javaクラスで直接ポリシー注釈を追加します。この場合、コード・インサイト機能が役に立ちます。詳細は、第16.2.7項「Webサービスのコード・インサイトの使用方法」を参照してください。

- プロパティ・インスペクタを使用します。

Webサービス・ウィザードまたはWebサービス・エディタでポリシーをアタッチするには、次のようにします。

Java Webサービスの作成ウィザードまたはWebサービス・エディタで、「ポリシーの構成」ページにナビゲートします。作業中に詳細を参照するには、[F1]を押すか、ダイアログ内から「ヘルプ」をクリックします。

Oracle WSMポリシーをアタッチする場合、次の方法により、ポリシーおよびそのアサーションに関する詳細を表示できます。

- 「説明の表示」チェック・ボックスをクリックし、各ポリシーの説明を表示します。

- 「表示」をクリックし、ポリシー・ファイル内のポリシー・アサーションをレビューします。

- 「選択されたポリシーの表示」チェック・ボックスをクリックし、現在選択されているポリシーのみを表示します。

Javaクラスでポリシー注釈をアタッチするには、次のようにします。

1. ソース・エディタでWebサービス・クラスを開きます。

2. コード・インサイトを使用すると役に立ちます。
注釈(@Policiesなど)の入力を開始します。中断するか[Ctrl]キーと[Shift]キーを押しながら[Space]キーを押すと、ポップアップが表示され、文を正しく完成するためのエントリを選択できます。

ポリシー注釈の使用の詳細は、『Oracle Fusion Middleware Oracle WebLogic Server WebLogic Webサービスの保護』の@Policyおよび@Policies注釈を使用したJWSファイルの更新に関する項とSecurityPolicyおよびSecurityPolicies注釈に関する項を参照してください。

プロパティ・インスペクタでポリシーに注釈をアタッチするには、次のようにします。

1. ソース・エディタでWebサービス・クラスが開かれた状態で「表示」→「プロパティ・インスペクタ」を選択し、プロパティ・インスペクタを開きます。
詳細を参照するには、プロパティ・インスペクタ内で[F1]を押すか、「ヘルプ」をクリックします。

2. クラスのpublic classまたは@WebService行にカーソルがある状態で、Oracle WSMポリシーまたはOracle WebLogic Webサービス・ポリシーの使用を選択できるWebサービス拡張機能ノードにナビゲートします。

3. 「OWSMポリシーで保護」または「WLSポリシーで保護」を選択します。
プロパティ・インスペクタがリフレッシュされ、選択したポリシー・タイプ(Oracle WSMまたはWLS)に対して単一のポリシーまたは複数のポリシーを選択するオプションが表示されます。

4. 「プロパティの編集: 複数ポリシー」ダイアログで複数のポリシーをアタッチする場合は「...」をクリックします。または、「単一ポリシー」リストから単一のポリシーを選択します。
「プロパティの編集: 複数ポリシー」ダイアログを使用して複数のOracle WSMポリシー・ファイルをアタッチする場合、「表示」をクリックしてポリシー・ファイル内のポリシー・アサーションをレビューします。

同じWebサービスで両方のタイプのポリシーを使用することはできません。間違ったタイプを選択した場合は、JAX-WSクラスからポリシー文が含まれる行を削除し、再度選択できるようにしてください。

16.9.4 Webサービス・クライアントへのOracle WSMポリシーのアタッチ方法

JDeveloperでは、Oracle Web Service Manager (Oracle WSM)をWebサービス・クライアントにアタッチできます。

Webサービス・クライアントにOracle WSMポリシーをアタッチした後、ポリシーを構成する必要があります。詳細は、『Oracle Fusion Middleware Webサービスのためのセキュリティおよび管理者ガイド』のポリシーの構成に関する項を参照してください。

注意:

WebLogic Webサービス・ポリシーを使用するWebサービスを起動するためのクライアント・アプリケーションの更新の詳細は、『Oracle Fusion Middleware Oracle WebLogic Server WebLogic Webサービスの保護』のメッセージ保護付きWebサービスを起動するためのクライアント・アプリケーションの更新に関する項を参照してください。

Webサービス・クライアントにOracle WSMポリシーをアタッチする方法は、次のとおりです。

- 新規Webサービス・クライアントの作成時にWebサービス・クライアントおよびプロキシの作成ウィザードでアタッチするOracle WSMポリシーを選択するか、すでに存在するWebサービス・クライアントの更新時にWebサービス・クライアントおよびプロキシの作成エディタでアタッチするOracle WSMポリシーを選択します。Webサービス・クライアントおよびプロキシの作成ウィザードまたはエディタで、「ポリシー」ページにナビゲートします。

- Oracle WSMポリシーをアタッチする場合、次の方法により、ポリシーおよびそのアサーションに関する詳細を表示できます。

- 「説明の表示」チェック・ボックスをクリックし、各ポリシーの説明を表示します。

- 「表示」をクリックし、ポリシー・ファイル内のポリシー・アサーションをレビューします。

- 「選択されたポリシーの表示」チェック・ボックスをクリックし、現在選択されているポリシーのみを表示します。

- 「選択用に互換性のあるクライアント・ポリシーのみ表示。」チェック・ボックスをクリックし、関連するWebサービスと互換性のあるポリシーを表示します。
作業中に詳細を参照するには、[F1]を押すか、ダイアログ内から「ヘルプ」をクリックします。

- 手動でweblogic.wsee.jws.jaxws.owsm.SecurityPolicyFeatureクラスを使用して単一のポリシーをアタッチするか、weblogic.wsee.jws.jaxws.owsm.SecurityPoliciesFeatureを使用して複数のポリシーをアタッチします。
詳細は、『Oracle Fusion Middleware Oracle WebLogic Server WebLogic Webサービスの保護』を参照してください。

16.9.5 WebLogic Webサービス・ポリシーを使用して保護されたWebサービスの呼出し方法

WebLogic Webサービス・ポリシーを通知するWSDLからWebサービス・クライアントを作成または編集する場合、Webサービスを呼び出すための資格証明を構成できます。

WebLogic Webサービス・ポリシーを使用して保護されたWebサービスを呼び出すWebサービス・クライアントの資格証明を構成するには、次のようにします。

1. 次のタスクのいずれかを実行します。

- Webサービス・クライアントを作成します。詳細は、第16.4.1項「クライアントおよびプロキシ・クラスの作成方法」を参照してください。

- Webサービス・クライアントを編集します。詳細は、第16.4.6項「Webサービス・クライアントの管理方法」を参照してください。

2. ウィザードの「資格証明の選択」ページにナビゲートします。

3. ドロップダウン・リストから既存の資格証明セットを選択するか、「新規」をクリックして新規の資格証明セットを定義します。
ウィザードの操作のヘルプを参照するには、ウィザード内で[F1]を押すか「ヘルプ」をクリックします。

4. ウィザードを完了します。

クライアント・クラスが更新され、クライアント資格証明を設定するためのメソッドが組み込まれます。追加された後、資格証明値は必要に応じて変更できます。

次の例は、生成されてクライアント・クラスに組み込まれるコードを示しています。

@Generated("Oracle JDeveloper")
public static void setPortCredentialProviderList(
Map<String, Object> requestContext) throws Exception
{
// Values used from credential preference: TestCredential
String username = "weblogic";
String password = "weblogic1";
String clientKeyStore = "/C:/temp/ClientIdentity.jks";
String clientKeyStorePassword = "ClientKey";
String clientKeyAlias = "identity";
String clientKeyPassword = "ClientKey";
String serverKeyStore = "/C:/temp/ServerIdentity.jks";
String serverKeyStorePassword = "ServerKey";
String serverKeyAlias = "identity";
List<CredentialProvider> credList = new ArrayList<CredentialProvider>();

// Add the necessary credential providers to the list
credList.add(getUNTCredentialProvider(username, password));
credList.add(getBSTCredentialProvider(clientKeyStore, clientKeyStorePassword,
clientKeyAlias, clientKeyPassword, serverKeyStore,
serverKeyStorePassword, serverKeyAlias, requestContext));
credList.add(getSAMLTrustCredentialProvider());
requestContext.put(WSSecurityContext.CREDENTIAL_PROVIDER_LIST, credList);
}

WebLogic Webサービス・ポリシーを使用して保護されたWebサービスを呼び出すようWebサービス・クライアントをプログラミングする方法の詳細は、『Oracle Fusion Middleware Oracle WebLogic Server WebLogic Webサービスの保護』のメッセージ保護付きWebサービスを起動するためのクライアント・アプリケーションの更新に関する項を参照してください。

16.9.6 Webサービスのポリシーの編集および削除方法

次のいずれかの方法を使用して、ポリシーを編集したりWebサービスからポリシーを完全に削除できます。

- Webサービス・エディタ

- ソース・エディタ

- プロパティ・インスペクタ

Webサービス・エディタを使用してポリシーを変更または削除するには、次のようにします。

1. アプリケーション・ナビゲータでWebサービスを右クリックして、「Webサービス・プロパティ」を選択します。
作業中に詳細を参照するには、[F1]を押すか、ダイアログ内から「ヘルプ」をクリックします。

2. 「ポリシーの構成」ページにナビゲートします。ここで、選択したポリシー・タイプのポリシーを変更したり、別のタイプのポリシーを使用するよう変更(たとえば、Oracle WSMポリシーからOracle WebLogic Webサービス・ポリシーに変更)したり、「ポリシーなし」を選択できます。Webサービスは、エディタのこのページを終了するときに変更されます。

Javaクラスで注釈を使用してポリシーを変更または削除するには、次のようにします。

- ソース・エディタでWebサービス・クラスを開きます。ここでは、コード・インサイト機能が役立ちます。詳細は、第16.2.7項「Webサービスのコード・インサイトの使用方法」を参照してください。必要に応じて、注釈を追加または削除します。

プロパティ・インスペクタを使用してポリシーを変更または削除するには、次のようにします。

1. ソース・エディタでJAX-WS Webサービス・クラスが開かれた状態で「表示」→「プロパティ・インスペクタ」を選択し、プロパティ・インスペクタを開きます。
詳細を参照するには、プロパティ・インスペクタ内で[F1]を押すか、「ヘルプ」をクリックします。

2. クラスのpublic classまたは@WebService行にカーソルがある状態で、Webサービス拡張機能ノードにナビゲートします。

- 複数のポリシーを変更するには、「...」をクリックし、「プロパティの編集: 複数ポリシー」ダイアログを開きます。

- 単一のポリシーを変更するには、「単一ポリシー」リストから名前を削除し、別の名前を選択します。

- ポリシーのタイプを他のタイプに変更するには、すべてのポリシーを削除して最初から再度実行できるようにします。

16.9.7 カスタムWebサービス・ポリシーの使用方法

JDeveloper内でカスタム・ポリシーを使用できます。次の項で説明するように、このプロセスは、Oracle Web Service Manager (Oracle WSM)カスタム・ポリシーとOracle WebLogic Webサービス・ポリシーのどちらを使用するかによって異なります。

- 第16.9.7.1項「Oracle WSMカスタム・ポリシーの使用」

- 第16.9.7.2項「Oracle WebLogicカスタムWebサービス・ポリシーの使用」

16.9.7.1 Oracle WSMカスタム・ポリシーの使用

Oracle Web Service Manager (Oracle WSM)カスタム・ポリシーを使用するには、次のいずれかのステップを実行します。

- カスタム・ポリシーを次のデフォルトのポリシー格納場所に追加します。
JDEV_USER_HOME\system11.1.1.2.x.x.x\DefaultDomain\oracle\store\gmds。設定されていない場合、

JDEV_USER_HOMEは、C:\Documents and Settings\user-dir\Application Data\JDeveloperにデフォルト設定されます。

このディレクトリ内で、次のディレクトリ構造のいずれかを使用してポリシーを格納する必要があります。

- 事前定義済Oracle WSMポリシー: owsm/policies/oracle/policy_file

- カスタム・ユーザー・ポリシー: owsm/policies/policy_file

注意:

JDeveloperで使用するためにポリシー・ファイルをOracle WSMリポジトリからエクスポートする場合、このディレクトリ構造は維持されません。エクスポートされたポリシーをJDeveloper環境に追加する場合は、必ず前述の要求されるディレクトリ構造を使用する必要があります。そうしないと、ポリシーはJDeveloper環境で使用できなくなります。Oracle WSMリポジトリからのポリシーのエクスポートの詳細は、『Oracle Fusion Middleware Webサービスのためのセキュリティおよび管理者ガイド』のポリシーのインポートおよびエクスポートの様々なメカニズムの理解に関する項を参照してください。

- 異なるポリシー・ストアを指定します。詳細は、第16.9.7.2項「Oracle WebLogicカスタムWebサービス・ポリシーの使用」を参照してください。
リモート・アプリケーション・サーバーでのポリシー・ストア使用を選択する場合、Fusion Middleware ControlまたはWLSTを使用してOracle WSMカスタム・ポリシーをリモート・アプリケーション・サーバー上のMDSリポジトリにインポートできます。

リモート・アプリケーション・サーバー上のOracle WSM MDSへのポリシーのインポートの詳細は、『Oracle Fusion Middleware Webサービスのためのセキュリティおよび管理者ガイド』のポリシーのインポートおよびエクスポートの様々なメカニズムの理解に関する項を参照してください。

カスタム・ポリシーの作成の詳細は、Oracle Web Services Manager拡張ガイドのカスタム・アサーションの作成に関する項を参照してください。

16.9.7.2 Oracle WebLogicカスタムWebサービス・ポリシーの使用

Oracle WebLogicカスタムWebサービス・ポリシーを使用するには、次のいずれかのステップを実行します。

- カスタム・ポリシーJARをクラスパスに配置し、WebLogic Serverのプロパティweblogic.wsee.policy.LoadFromClassPathEnabledをtrueに設定します。

- カスタム・ポリシーJARをWEB-INF/policies (Webアプリケーション)またはMETA-INF/policies (EJB)に配置します。

- カスタム・ポリシーXMLファイルをWEB-INF (Webアプリケーション)またはMETA-INF (EJB)に配置します。

ポリシーにアクセスするには、次のようにします。

- @Policy注釈を使用する場合、policy接頭辞を追加することを確認します(policy:mypolicy.xmlなど)。

- Java Webサービス・エディタの「ポリシーの構成」ページで「カスタム・ポリシーの追加」ボタンをクリックし、「カスタム・ポリシー・ファイルの選択」ダイアログ・ボックスを使用してカスタム・ポリシー・ファイルを選択します。

カスタム・ポリシーの作成の詳細は、Oracle Web Services Manager拡張ガイドのカスタム・アサーションの作成に関する項を参照してください。

16.9.8 異なるOracle WSMポリシー・ストアの使用方法

Oracle Web Service Manager (Oracle WSM)ポリシー・ストアは、JDeveloperの一部としてインストールされます。異なるポリシー・ストアを使用すると、たとえば、共有ポリシー・ストアを使用できます。ローカル・ファイル・ストアやリモート・アプリケーション・サーバーで使用可能なポリシー・ストアも使用できます。

異なるポリシー・ストアの場所を指定するには、次のようにします。

1. 「ツール」→「プリファレンス」を選択して「プリファレンス」ダイアログを開き、「WSポリシー・ストア」ページにナビゲートします。
詳細は、[F1]を押すか、「プリファレンス」ダイアログ内で「ヘルプ」をクリックしてください。

2. ローカル・ファイル・ストア内にあるポリシーを指定するには、「ファイル・ストア」をクリックし、「オーバーライド場所」テキスト・ボックスにポリシー・ストアの場所を入力するか、「参照」をクリックしてその場所を参照します。

3. リモート・アプリケーション・サーバーでポリシー・ストアを構成するには、「アプリケーション・サーバー接続」をクリックし、ドロップダウン・リストからリモート・アプリケーション・サーバー接続を選択します。
新規のリモート・アプリケーション・サーバー接続を追加するには、「新規」をクリックします。

注意:

選択するリモート・アプリケーション・サーバーは、Oracle WSMポリシー・マネージャを使用して構成する必要があります。Oracle WSMポリシー・マネージャが正しく構成されていることを確認するには、URLとしてhttp://<host:<port/wsm-pm/validatorを使用します。求められたら、サーバーのユーザー名およびパスワードを入力します。Oracle WSMポリシー・マネージャが使用可能な場合、事前定義済ポリシーのリストが説明とともに表示されます。Oracle WSM Policy Managerのトラブルシューティングの詳細は、『Oracle Fusion Middleware Webサービスのためのセキュリティおよび管理者ガイド』の問題の診断に関する項を参照してください。

16.10 Webサービスの編集および削除

JDeveloperで作成したWebサービスを編集または削除して、公開するメソッドやファイルの場所などを変更できます。

Webサービスを編集するには、次のようにします。

1. アプリケーション・ナビゲータで、Webサービス・コンテナを右クリックして「プロパティ」を選択します。リエントラントなWebサービスのウィザードが表示されます。

2. Webサービスを変更します。「OK」をクリックします。Webサービス・ファイルが再生成されます。
ウィザードの操作の詳細なヘルプを参照するには、ウィザード内で[F1]を押すか、「ヘルプ」をクリックします。

Webサービス・ファイルを編集した後、Webサービスを再デプロイする必要があります。詳細は、第16.12項「Webサービスのデプロイ」を参照してください。

Webサービスを編集すると、以前に生成されたWSDLファイルは上書きされるため、それまでに行った変更はすべて失われます。Webサービスがすでにデプロイされているときにこれを編集する場合、これを再デプロイする必要があります。

PL/SQL Webサービスの編集は、データベース接続が存在している間に行わないと、エラー・メッセージが表示されます。データベース接続が削除されている場合は新規に作成し、削除前と同じ名前を付与します。

Webサービスを削除するには、次のようにします。

- アプリケーション・ナビゲータで、Webサービス・コンテナを右クリックして「Webサービスの削除」を選択します。削除されるファイルを示した「Webサービスの削除」ダイアログが表示されます。「OK」をクリックします。
ファイルが削除され、サービスweb.xmlへの参照がすべて削除されます。

JDeveloperからWebサービスを削除すると、Webサービス・コンテナとそれに含まれるファイル(WSDLファイル、および場合によってはインタフェース)が削除されます。Webサービスのエントリはweb.xmlから削除されますが、ファイル自体は削除されません。WebServices.deployファイルは、他のWebサービスでも使用される場合があるため、変更されません。

16.11 Webサービスのテストおよびデバッグ

JDeveloperには、Webサービスをテストする方法がいくつか用意されています。デバッガを使用すると、Webサービスをデバッグできます。デバッグ可能なWebサービスは、統合WebLogic Serverでローカルで作成したもの、およびOracle WebLogic Serverでリモートで作成したものです。また、統合WebLogic ServerにデプロイされたWebサービスをブラウザ内で実行して、期待した結果が戻されることを確認することもできます。

この項で説明するトピック以外にも、HTTPアナライザを使用して、他のパケット情報の調査と同じように、HTTPを介してWebサービスの内容を調査できます。詳細は、第16.13.4項「HTTPアナライザを使用したWebサービスの調査方法」を参照してください。

次の各項では、Webサービスのテストおよびデバッグ方法について説明します。

- 第16.11.1項「ブラウザでのWebサービスのテスト方法」

- 第16.11.2項「Webサービスのデバッグ方法」

16.11.1 ブラウザでのWebサービスのテスト方法

Webサービスを作成してデプロイすると、ブラウザ内でそのサービスを実行して予期した応答が得られるかどうかを確認できます。

Webサービスをテストするために使用するプロセスは、WebLogic WebサービスとOracle Infrastructure Webサービス(ADFビジネス・コンポーネントなど)のどちらをテストするかによって異なります。

- ブラウザでのWebLogic Java EE Webサービスのテスト

- ブラウザでのOracle Infrastructure Webサービスのテスト

ブラウザでWebLogic Java EE Webサービスをテストするには、次のようにします。

1. ブラウザでhttp://IP_address:port/wls_utcを開きます。

2. WSDLのURLを入力し、「テスト」をクリックします。
例: http://IP_address:port/Project1-context-root/MyWebService1?WSDL

ブラウザに、サービスに対して使用できる操作をリストした簡単なページが表示されます。

3. 各パラメータの値を入力し、「operation-name」ボタンをクリックし、リクエスト詳細をレビューします。

ブラウザでのOracle Infrastructure Webサービスのテスト

Oracle Infrastructure Webサービス(ADFビジネス・コンポーネントなど)の場合、ブラウザで次にデプロイされたWebサービスをテストできます。

- 統合WebLogic Server

- Oracle WebLogic Server

統合WebLogic Serverにデプロイされたサービスをテストするには、次のようにします。

1. Oracle Infrastructure Webサービスを統合WebLogic Serverにデプロイする場合、ログ・ウィンドウの内容を調査します。次の内容を含んだ行を検索します。
次のコンテキスト・ルートを使用してWebアプリケーションをテストします: http://IP_address:port/Project1-context-root/MyWebService1

2. URLをコピーしてブラウザに貼り付けます。ブラウザに、サービスに対して使用できる操作をリストした簡単なページが表示されます。

3. パラメータを入力して[Enter]キーを押します。Webサービスからの結果が表示されます。

Oracle WebLogic Serverにデプロイされたサービスをテストするには、次のようにします。

1. Oracle Infrastructure WebサービスをOracle WebLogic Serverにデプロイする場合、ログ・ウィンドウの内容を調査します。次の行を検索します。
アプリケーションには次の場所でアクセスできます: http://IP_address:port/Project1-context-root

このURLは、Webサービスのコンテキスト・ルートの内容のみを示しています。

2. URLをコピーしてブラウザに貼り付け、Webサービスの名前を末尾に追加してサービスの完全な場所を示します。
http://IP_address:port/Project1-context-root/MyWebService1

ブラウザに、サービスに対して使用できる操作をリストした簡単なページが表示されます。

3. パラメータを入力して[Enter]キーを押します。Webサービスに対して入力したパラメータを含むSOAPメッセージが表示されます。

4. 「起動」をクリックします。Webサービスからの結果が表示されます。

16.11.2 Webサービスのデバッグ方法

デバッグ・ツールを使用すると、Webサービス・ウィザードで作成したWebサービスをデバッグできます。Webサービスのデバッグは、Javaプログラムのデバッグと似ています。そのため、サービスに対してデバッグ・モードでクライアントを実行することにより、ローカルまたはリモートでWebサービスをデバッグできます。Webサービスに対するプロキシであるクライアントにブレークポイントを設定し、サービスの機能を調べることができます。

PL/SQL Webサービスのデバッグは可能ですが、実際にデバッグするのは、JDeveloperによって生成されるJavaクラスです。このJavaクラスをデバッグすることで、PL/SQLをデプロイメント用にWebサービスとしてラップします。したがって、想定したとおりにPL/SQL Webサービスを実行するには、PL/SQLからWebサービスを作成する前に、PL/SQLをデバッグします。詳細は、第29.3項「PL/SQLプログラムおよびJavaストアド・プロシージャのデバッグ」を参照してください。

HTTPアナライザを使用すると、HTTPリクエスト/レスポンス・パケットを検証および監視できます。これは、JDeveloperのコードとコードの通信対象であるHTTPリソースの間のプロキシとして機能し、送受信されるHTTPトラフィックの観点からアプリケーションをデバッグする上で役に立ちます。詳細は、第16.13.4項「HTTPアナライザを使用したWebサービスの調査方法」を参照してください。

JDeveloperでは、統合WebLogic Serverでローカルに実行されるWebサービスや、リモートでデプロイされるWebサービスをデバッグできます。

Webサービスのローカル・デバッグ

Webサービスが統合WebLogic Serverで実行されたら、Webサービス・プロキシに対してプロキシ・クライアントを作成できます。このクライアントには、Webサービスで公開されている各メソッドに対して実行するメソッドが含まれます。また、独自のコードを追加したり、ブレークポイントを設定してWebサービスの実行状況を調べることができます。

JDeveloperで作成したWebサービスは、ローカルですぐにデバッグできます。これを行うには、次の2つの方法があります。

- ブレークポイントをWebサービス・クラスに設定し、これに対してプロキシ・クライアントを実行します。これにより、サービス・クラス自体をデバッグできます。

- ブレークポイントをクライアントに設定します。

Webサービスをローカル・デバッグする前に、プロキシ設定をオフにする必要があります。デバッグが完了したら、必ずプロキシ設定をオンに戻してください。

Webサービスをローカルでデバッグするには、次のようにします。

1. 最初に、プロキシ設定をオフにします。「ツール」→「プリファレンス」を選択し、「Webブラウザとプロキシ」を選択します。

2. 「HTTPプロキシ・サーバーを使用」の選択を解除します。

3. デバッグ・モードでWebサービスを実行します。ナビゲータで、Webサービス・コンテナを右クリックし、「デバッグ」を選択します。
統合WebLogic Serverがデバッグ・モードで起動し、このサーバーにWebサービスがデプロイされます。結果はログ・ウィンドウに表示されます。

4. 「Webサービス・クライアントの作成」で説明されているように、Webサービス・クライアントを作成します。
プロキシ・コンテナが生成されてナビゲータに表示され、web_serviceSoapHttpPortClient.javaというJavaクラスがソース・エディタに表示されます。

5. ソース・エディタで、// Add your own code hereに移動してなんらかのコードを入力します。

6. Webサービスに対するクライアントをデバッグする場合、1つ以上のブレークポイントを追加し、右クリックして「デバッグ」を選択します。
また、Webサービス・クラスにブレークポイントを設定した場合は、ポップアップ・メニューから「デバッグ」または「実行」を選択します。

すべてのJavaクラスに関して、デバッガが動作します。詳細は、第19章「Javaプログラムの実行およびデバッグ」を参照してください。

Webサービスのリモート・デバッグ

JDeveloperを使用すると、リモートでデプロイされたWebサービスをデバッグできます。

Webサービスは、ローカル・マシン上のOracle WebLogic Serverで実行される場合、またはリモート・マシン上のサービスで実行される場合があります。いずれの場合も、サーバーに接続し、サーバーをデバッグ・モードで実行する必要があります。

Webサービスをリモートでデバッグする場合、サーバーをデバッグ・モードで起動し、サーバーにWebサービスをデプロイする必要があります。これにより、サービスに対するクライアントを作成し、クライアントにブレークポイントを設定し、クライアントをデバッグ・モードで起動できるようになります。

Webサービスをリモートでデバッグするには、次のようにします。

1. リモート・サーバーをデバッグ・モードで実行します。

2. Webサービスをデプロイします。詳細は、第16.12項「Webサービスのデプロイ」を参照してください。

3. Webサービスに対するクライアントを作成します。

4. ソース・エディタで、// Add your own code hereに移動してなんらかのコードを入力します。

5. 1つ以上のブレークポイントを追加し、右クリックして「デバッグ」を選択します。
すべてのJavaクラスに関して、デバッガが動作します。詳細は、第19章「Javaプログラムの実行およびデバッグ」を参照してください。

16.12 Webサービスのデプロイ

JDeveloperには、Webサービスを作成してOracle WebLogic Serverにデプロイするときに役立つツールが用意されています。Oracle WebLogic Serverでは、WebサービスはJava EEコンテナ内で動作します。次の操作を実行できます。

- Webサービスを統合WebLogic Serverにデプロイします。第16.12.1項「統合WebLogic ServerへのWebサービスのデプロイ方法」を参照してください。

- WebサービスをOracle WebLogic Serverにデプロイします。第16.12.2項「Oracle WebLogic ServerへのWebサービスのデプロイ方法」を参照してください。

- Webサービスをアーカイブ・ファイルにデプロイします。詳細は、第9.4.1項「Java JARへのデプロイ」を参照してください。

- Webサービスをアンデプロイします。第16.12.3項「Webサービスのアンデプロイ方法」を参照してください。

また、別のWebLogic Serverドメインを統合WebLogic Serverとして定義し、ここでWebサービスを実行することもできます。詳細は、第9.2項「統合アプリケーション・サーバーでのJava EEアプリケーションの実行」を参照してください。

16.12.1 統合WebLogic ServerへのWebサービスのデプロイ方法

JDeveloperで生成されたWebサービスを統合WebLogic Serverにデプロイできます。

Webサービスを統合WebLogic Serverにデプロイするには、次のようにします。

1. アプリケーション・ナビゲータで、Webサービスが含まれるプロジェクトを右クリックし、「デプロイ」→「Webサービス」を選択します。
アプリケーションまたはWebサービスの実行またはデバッグによって統合WebLogic Serverを初めて起動する場合、ダイアログが表示され、ここでデフォルト・ドメインの管理者IDのパスワードを入力します。「OK」をクリックすると、デフォルトのドメインが作成されます。この手順は1回のみ実行する必要があります。

2. Webサービスのデプロイ・ダイアログの「デプロイメント・アクション」ページで、「アプリケーション・サーバーへのデプロイ」を選択し、「次へ」をクリックします。

3. 「サーバーの選択」ページで、「IntegratedWebLogicServer」を選択し、「次へ」をクリックして「サマリー」ページを表示するか、「終了」をクリックしてWebサービスをデプロイします。

16.12.2 Oracle WebLogic ServerへのWebサービスのデプロイ方法

JDeveloperで生成されたWebサービスをOracle WebLogic Serverにデプロイできます。

Webサービスの作成ウィザードの1つを使用してJava EE Webサービス用のファイルを生成した場合、WebServices.deployというデプロイメント・プロファイルを含め、必要なファイルはすべてウィザードにより自動的に作成されます。WebServices.deployファイルはプロジェクト・レベルで作成されます。デプロイメント・プロファイルにWARファイルとEARファイルが含まれます。

注意:

PL/SQL Webサービスをデプロイする場合、アプリケーション・レベルでのデプロイメント・プロファイルであるEARを作成し、EARファイルをデプロイする必要があります。データベース接続情報はEARに含まれるが、パスワード・インダイレクションが使用されるため、Oracle WebLogic ServerでJDBCデータソースも設定する必要があります。

Webサービスをデプロイするには、次のようにします。

- ナビゲータで、Webサービスが含まれるプロジェクトを右クリックし、「配布先」→「接続」を選択します。使用可能な接続のリストから、Webサービスの作成時に指定したアプリケーション・サーバー接続を選択します。

PL/SQL Webサービスをデプロイするには、次のようにします。

1. アプリケーション・レベルのEARデプロイメント・プロファイルを作成し、このプロファイルにWebサービスを追加します。

2. Oracle WebLogic Serverに対するアプリケーション・サーバー接続にEARをデプロイします。

3. Oracle WebLogic Serverに対するEARのデプロイに関する情報に従って、Oracle WebLogic Serverでデータベース接続の詳細を設定します。

詳細は、第9.4.1項「Java JARへのデプロイ」を参照してください。

Webサービス・デプロイメント・プロファイルの内容を調査するには、次のようにします。

1. Webサービス・デプロイメント・プロファイルの内容を調査するには、次のようにします。

2. 「ファイル・グループ」→「WEB-INF/classes」→「フィルタ」ノードを順に選択し、Webサービスの.javaファイルおよび.wsdlファイルのリストを表示します。

16.12.3 Webサービスのアンデプロイ方法

Webサービスを統合WebLogic Serverにデプロイした場合、統合サーバーが起動されるたびにサーバー自体が新規のアプリケーションおよびプロジェクトにリセットされるため、Webサービスをアンデプロイする必要はありません。

アプリケーション・サーバー接続を使用してサーバーにデプロイしたWebサービスの場合は、リソース・パレットからアンデプロイできます。

Webサービスをアンデプロイするには、次のようにします。

1. アプリケーション・サーバー・ナビゲータで、使用していたアプリケーション・サーバー接続を選択して「Webサービス」を開きます。

2. 「application-name_project-name_ws」を右クリックして「アンデプロイ」を選択します。

16.13 Webサービスの監視と分析

WS-I Basic Profile 1.1に準拠しているかどうかを確認したり、SOAPパケットの内容を調査するなどの方法を使用して、多面的にWebサービスを分析できます。

Oracleなどの主要企業によって設立されたWeb Services-Interoperability Organization (WS-I)は、各種プラットフォーム、オペレーティング・システム、およびプログラミング言語間でのWebサービス技術の相互運用推進を目的としています。JDeveloperには、WebサービスがWS-I Basic Profile 1.1に準拠しているかどうかを確認することにより、そのWebサービスが相互運用性を持つかどうかをテストできるツールが提供されています。WS-Iの詳細は、「The Web Services-Interoperability Organization (WS-I)」のWebサイト(http://www.ws-i.org)を参照してください。

WebサービスをWS-I Basic Profileに照らして監視したり、サービスの監視の結果得られたログ・ファイルを分析するには、WS-I準拠のアナライザをダウンロードしておく必要があります。

ユーザーはWebサービスがWS-I規格に準拠しているかどうかを分析できます。分析できるWebサービスは、アプリケーション・ナビゲータに表示されているユーザー作成のWebサービスか、UDDIレジストリを使用して検索し、リソース・パレットに表示されたWebサービスです。デプロイ済のWebサービスについても、クライアントおよびプロキシ・クラスを作成してアクセスしてHTTPアナライザでログ・ファイルを作成すれば、WS-I規格に準拠しているかどうかを分析できます。

Webサービスを分析するWS-I準拠のアナライザを使用するには、マシンにダウンロードした上で、JDeveloperに登録する必要があります。

WS-Iアナライザをダウンロードして登録するには、次のようにします。

1. http://www.ws-i.orgからWS-Iアナライザをダウンロードしてインストールします。

2. JDeveloperで、「ツール」→「プリファレンス」を選択し、「WS-Iテスト・ツール」を選択します。

3. WS-I準拠のアナライザをインストールする場所の詳細を入力します。
ダイアログ使用の詳細なヘルプを参照するには、ダイアログ内で[F1]を押すか、「ヘルプ」をクリックします。

次の各項では、Webサービスを監視および分析する方法について説明します。

- 第16.13.1項「ナビゲータでのWebサービスの分析方法」

- 第16.13.2項「Webサービス・ログの作成および分析方法」

- 第16.13.3項「統合サーバーで実行中のWebサービスの分析方法」

- 第16.13.4項「Httpアナライザを使用したWebサービスの調査方法」

16.13.1 ナビゲータでのWebサービスの分析方法

アプリケーション・ナビゲータに示されたWebサービスや、UDDIレジストリを使用して検索しリソース・パレットに示されたWebサービスのレポートを生成して、そのWebサービスがWS-I Basic Profile 1.1規格に準拠しているかどうかを確認できます。そのためには、あらかじめ使用マシンにWS-I準拠のアナライザをダウンロードし、JDeveloperでの登録を実行しておく必要があります。

Webサービスとクライアントとの間でやり取りされるメッセージの内容を確認するWS-I Basic Profileの機能は、Webサービスに対してクライアントが実行されないかぎり使用できません。WS-Iアナライザをナビゲータから起動した場合は、WSDLドキュメントのサービス記述のみが分析できます。

Webサービスを分析するには、次のようにします。

1. ナビゲータでWebサービスを選択し、ポップアップ・メニューから「WS-I WSDLの分析」を選択します。

2. WS-I Webサービス分析ウィザードが表示されます。
ウィザードの使用時に詳細なヘルプを参照するには、ウィザード内で[F1]を押すか、「ヘルプ」をクリックします。

3. ウィザードの実行を開始すると、JDeveloperに分析レポートwsi-report.htmlが表示されます。このレポートが表示されるまでにある程度の時間がかかる場合がありますが、その長さは、分析対象がローカルWebサービスであるか、Web上のどこか他の場所にデプロイされたWebサービスであるかによって異なります。

16.13.2 Webサービス・ログの作成および分析方法

HTTPアナライザを使用すると、Webサービス・クライアントの実行中のログを生成できます。また、ダウンロードおよびJDeveloperでの登録が済んでいるWS-I準拠のアナライザを使用して、WebサービスがWS-I規格に準拠しているかどうかを確認することもできます。

アナライザはWebサービスのクライアントに対して実行するため、サービスの検出、説明およびメッセージがレポート対象となります。

注意:

ファイアウォール内で作業する場合は、Webサービスの実行に使用しているマシンのIPアドレスが、プロキシ・サーバー例外に含まれないようにする必要があります。

Webサービスを作成および分析するには、次のようにします。

1. 分析するWebサービスに対するクライアントを作成します。

- 外部Webサービスに対して。
または

- 作成したWebサービスが、Oracle WebLogic Serverにデプロイ済である場合は、クライアント・スタブまたはクライアント・プロキシを作成します。
または

- JDeveloperで作成済のWebサービスについては、Webサービスのポップアップ・メニューから「実行」を選択して、埋込みサーバーで実行可能な状態になっていることを確認します。ナビゲータで、Webサービス・コンテナのポップアップ・メニューから「Webサービス・プロキシの生成」を選択します。WSDLのWebサービス・エンドポイントと、生成プロキシの_endPoint変数は、完全に同じである必要があります。

2. Httpアナライザを起動します。「表示」→「Httpアナライザ」を選択し、モニターで「開始」ボタンをクリックします。

3. クライアントを実行します。次のいずれかの操作を行います。

- ソース・エディタで、クライアントのポップアップ・メニューから「実行」を選択します。
または

- ナビゲータで、クライアントのポップアップ・メニューから「実行」を選択します。

4. Webサービスから予期した応答が得られた後、「停止」ボタンをクリックしてHTTPアナライザを停止します。

5. 「WS-I分析」ボタンをクリックしてWS-I分析ウィザードを起動し、ウィザードの指示に従います。メッセージ・ログに進行状況が記録され、HTTPアナライザに結果が表示されます。

16.13.2.1 Webサービスの実行および分析についての注意事項

Webサービスの分析を実行すると、問題の発生する原因が多数見つかります。その中にはJDeveloperドキュメントで説明されていないものもありますが、次の2つの問題が発生する可能性があります。

- wsi-report.htmlのメッセージ・セクションからすべての入力項目が消去される場合

- wsi-report.htmlの検出セクションからすべての入力項目が消去される場合

wsi-report.htmlのメッセージ・セクションからすべての入力項目が消去される場合

外部WebサービスのWSDLのエンドポイントに含まれているマシン名が大文字のみまたは大文字小文字混合で記述されているのに対し、JDeveloperで生成されたクライアントの_endPoint変数のマシン名が小文字で記述されている場合に、このような現象が発生することがあります。これと類似する事例を、第16.13.3項「統合サーバーで実行中のWebサービスの分析方法」で説明しています。

対処方法としては、JDeveloperにWSDLをインポートしてナビゲータに表示し、WSDLのマシン名を小文字に編集します。これにより、クライアント(および関連するプロキシ・クラス)を生成してHTTPアナライザの実行中にそのクライアントを実行できます。

WSDLをナビゲータにインポートするには、次のようにします。

1. デフォルト値を使用して新規WSDLドキュメントを作成します。

2. ブラウザでWSDLドキュメントを開きます。ドキュメントのソースを表示して、WSDLのXMLソースをコピーします。

3. ここで作成したWSDLドキュメントの内容を、使用するWebサービスのWSDLドキュメントのソースで置き換えます。

wsi-report.htmlの検出セクションからすべての入力項目が消去される場合

wsi-report.htmlの検出セクションでは、UDDIレジストリから検索するWebサービスで使用されるREGDATA結果についてレポートします。UDDIレジストリを使用しても検索されなかったWebサービスのレポートを作成した場合、検出セクションのInputsがすべて消去されます。

16.13.3 統合サーバーで実行中のWebサービスの分析方法

WS-I準拠のアナライザは、一連の標準アサーションに対するログ・ファイル内のメッセージと相互関係があります。特に、WSDLドキュメント内のservice要素のsoap:addressの下位要素は、wsi-log.xml messageEntryのsenderHostAndPortまたはreceiverHostAndPortと厳密に一致する必要があります。一致しない場合、そのメッセージのWS-I互換性は分析されません。

16.13.3.1 エンドポイント・アドレスの変更

Webサービスを統合サーバーで実行し(Webサービスのポップアップ・メニューから「実行」を選択)、Webサービスに対して生成済クライアントを実行中にHTTPアナライザを実行してログを作成する場合は、WSDLのWebサービスのエンドポイントや生成済クライアントの_endPoint変数を変更してから、実行中のクライアントのログ・ファイルを作成する必要があります。

Webサービスのエンドポイントがプロキシの_endPoint変数に一致していることを確認するには、次のようにします。

1. 次のいずれかの方法に従って、WebサービスのWSDL文書を編集します。

- ナビゲータでWebサービス・コンテナをダブルクリックし、「Webサービスの編集」ダイアログの「エンドポイント」ページに移動し、「Webサービス・エンドポイント」を編集します。

- ナビゲータでWebサービス・コンテナを選択し、「構造」ウィンドウでWSDL文書をダブルクリックします。soap:address下位要素にナビゲートし、エンドポイントを編集します。

2. Webサービスのエンドポイントを次のいずれかに変更します。

- IP_address:integrated_port_no (デフォルトの統合ポート番号は8988です)

- hostname (小文字)

3. JAX-RPC Webサービスの場合、EmbeddedStub.javaファイルをダブルクリックして開き、_endPoint変数に移動します。Webサービス・エンドポイントがプロキシ内の_endPoint変数と同じであることを確認した後、Webサービス・ログを作成および分析できます。詳細は、第16.13.2項「Webサービス・ログの作成および分析方法」を参照してください。

16.13.3.2 WSDLの変更なしでのエンドポイント・アドレスの変更(JAX-WSのみ)

JAX-WS Webサービスの場合、次の例に示すように、WSDLを変更せずにエンドポイント・アドレスを変更できます。

import java.net.URI;
import java.net.URL;
import java.util.Map;
import javax.xml.ws.BindingProvider;
import javax.xml.ws.WebServiceRef;
import project2.proxy.Hello;
import project2.proxy.HelloService;

public class HelloPortClient
{
@WebServiceRef
private static HelloService helloService;

public static void main(String [] args) {
helloService = new HelloService();
Hello hello = helloService.getHelloPort();
setEndpointAddress(hello, "http://some.new.addr/endpoint");
hello.sayHello("Bob");
}

public static void setEndpointAddress(Object port, String newAddress) {
assert port instanceof BindingProvider :
"Doesn't appear to be a valid port";
assert newAddress !=null :"Doesn't appear to be a valid address";

//
BindingProvider bp = (BindingProvider)port;
Map <String, object> context = bp.getRequestContext();
Object oldAddress = context.get(
BindingProvider.ENDPOINT_ADDRESS_PROPERTY);
context.put(
BindingProvider.ENDPOINT_ADDRESS_PROPERTY, newAddress);
}
}

16.13.4 HTTPアナライザを使用したWebサービスの調査方法

HTTPアナライザの次の機能を使用して、Webサービスに接続するクライアントのネットワーク・トラフィックを調べることができます。詳細は、第8.3項「HTTPアナライザを使用したHTTPの監視」を参照してください。これにより、次が可能です。

- WebサービスのTCPのリクエスト・パケットとレスポンス・パケットの詳細な内容を調べることができます。

- リクエスト・パケットの編集と再送信、およびレスポンス・パケットの内容の確認ができます。

結果を使用して、ローカルまたはリモートにデプロイされているWebサービスをデバッグできます。

注意:

HTTPアナライザを使用する場合、プロキシ設定を変更する必要が生じることがあります。詳細は、第16.2.1項「プロキシ設定およびJDeveloperの使用方法」を参照してください。

Webサービスのクライアントによって送受信されるパケットを調べるには、次のようにします。

1. Webサービスを作成します。

2. ナビゲータでWebサービス・コンテナを右クリックし、「web_serviceの実行」を選択して、Webサービスを実行します。
または

Oracle WebLogic ServerでWebサービスをデプロイおよび実行します。詳細は、第16.12項「Webサービスのデプロイ」を参照してください。

3. 「表示」→「Httpアナライザ」を選択してHTTPアナライザを起動します。アナライザは、JDeveloper内の専用ウィンドウで開きます。

4. 「Httpアナライザの起動」をクリックしてHTTPアナライザを実行します。

5. Webサービスのクライアント・プロキシを実行します。リクエスト・パケットとレスポンス・パケットのペアが、Httpアナライザに表示されます。

6. リクエスト・パケットとレスポンス・パケットのペアの内容を調べるには、「履歴」タブでペアを選択して「データ」タブをクリックします。

7. 「次へ」メッセージ・ボタンまたは「前へ」メッセージ・ボタンをクリックすると、前後のペアに簡単に切替えできます。

第IV部

Javaアプリケーションの開発

ここでは、Oracle JDeveloperによるJavaアプリケーションの開発方法について説明します。JDeveloperでは、JavaBeansを使用してJavaアプレットおよびクライアント・アプリケーションをビルドおよびアセンブルでき、SwingおよびAWTコンポーネントを使用して対話型のデスクトップベースのGUIアプリケーションをビルドおよびアセンブルできます。JDeveloper IDEでJava Web Startを備えたJavaクライアント・アプリケーションを作成および実行することもできます。

- 第17章「Javaアプリケーションの開発に関するスタート・ガイド」
この章では、Javaアプリケーションの開発に役立つJDeveloperのツールと機能について説明します。Javaソース・エディタ、ツールバー・アイコン、コード・インサイトなどがあります。

- 第18章「Javaでのプログラミング」
この章では、Javaアプリケーションの作成方法について説明します。ダイアグラムでクラスを定義する方法を説明します。クラスのメンバー、継承およびコンポジット関係はすべて、それらのクラスのJavaソース・コードから直接導出されます。

- 第19章「Javaプログラムの実行およびデバッグ」
この章では、Javaプログラムの実行およびデバッグの方法について説明します。JDeveloperには、Javaプログラムの実行方法を監視および制御するいくつかの方法があります。Javaプログラムを実行するとき、JDeveloperは実行、デバッグおよびプロファイリングされるプロセスを常時追跡します。

- 第20章「Java Swingユーザー・インタフェースの実装」
この章では、Java Swingインタフェースの開発方法について説明します。ここでは、コンポーネントとJDeveloperのUI設計ツールを使用してユーザー・インタフェースを作成する際に実行する基本的なタスクについて説明します。

17 Javaアプリケーションの開発に関するスタート・ガイド

この章では、Javaアプリケーションの開発を支援するためにJDeveloperが提供するツールおよび機能の概要について説明します。

この章では、次の項目について説明します。

- 第17.1項「Javaアプリケーションの開発について」

- 第17.2項「Javaソース・エディタについて」

- 第17.3項「Javaソース・エディタの機能の理解」

- 第17.4項「Javaソース・エディタのプリファレンスの設定」

- 第17.5項「ツールバー・オプションの使用」

- 第17.6項「「クイック・アウトライン」ウィンドウの使用」

- 第17.7項「Java UIビジュアル・エディタについて」

17.1 Javaアプリケーションの開発について

JDeveloperでは、JavaBeansを使用してJavaアプレットおよびクライアント・アプリケーションをビルドおよびアセンブルでき、SwingおよびAWTコンポーネントを使用して対話型のデスクトップベースのGUIアプリケーションをビルドおよびアセンブルできます。JDeveloper IDEでJava Web Startを備えたJavaクライアント・アプリケーションを作成および実行することもできます。

JDeveloperには、Javaコードを編集、最適化、実行およびデバッグするためのリソースが用意されています。

- Javaソース・ファイルの編集 - ソース・エディタでは、いくつかのJava対応編集機能がサポートされています。詳細は、第18.3項「Javaコードの編集」を参照してください。

- Apache Antの構築 - 「メイク」コマンドおよび「再ビルド」コマンド、またはApache Antを使用して、プロジェクトをコンパイルします。詳細は、第18.6項「Javaプロジェクトのビルド」を参照してください。

- Javaプログラムの実行 - 実行、デバッグまたはプロファイリングされるプロセスを追跡します。詳細は、第19章「Javaプログラムの実行およびデバッグ」を参照してください。

- Javaプログラムのデバッグ - ローカル・デバッグおよびリモート・デバッグ用のツール。詳細は、第19.6項「デバッガについて」を参照してください。

- JavaBeansコンポーネント - JavaBeansコンポーネント・テクノロジにより、Javaオブジェクトのデータ取得、永続性および操作に対して独自のフレームワークを実装できます。詳細は、第18.7項「JavaBeansの使用」を参照してください。

- Javaプロジェクトのリファクタ - プログラムの動作を変更しないでコード構造を変更する一連の自動リファクタ操作。詳細は、第18.8項「Javaプロジェクトのリファクタ」を参照してください。

- アプリケーションのパフォーマンスの最適化 - Javaコードの品質およびパフォーマンスを分析するためのツール。詳細は、第18.9項「アプリケーションのパフォーマンスの最適化」を参照してください。

- Javaクラスのモデル化 - Javaクラスおよびインタフェースを視覚的に作成するための、または既存のJavaクラスおよびインタフェースをグラフィカルに表示するためのツール。詳細は、第18.11項「Javaクラスのモデリング」を参照してください。

- JUnitのユニット・テスト - オープン・ソースのJUnitフレームワークを使用して、Javaコードを検証するテストを記述および実行するためのツール。詳細は、第18.12項「JUnitによるユニット・テスト」を参照してください。

17.2 Javaソース・エディタについて

Javaソース・エディタではJavaソース・ファイルが表示され、Javaコードを編集できます。Javaソース・エディタはJDeveloperに用意されている特殊な形式の汎用ソース・エディタで、XML、JSPおよびHTMLなど、複数のテクノロジ間でソース・コードを編集できます。

Javaソース・エディタのJava固有の機能に加えて、すべてのドメイン間でコーディングを拡張するためにJDeveloperに用意されている共通機能セットも使用できます。これらの機能は、ポップアップ・メニューまたは「ソース」メニューを介して使用できます。

アプリケーション・ナビゲータでノードをダブルクリックすると、デフォルトのエディタが開かれるか、前景に表示されます。ソース・エディタでファイルを開くと、対応する要素が「構造」ウィンドウに階層形式で表示されます。「構造」ウィンドウでノードをダブルクリックすると、ソース・エディタに表示されているその要素の定義にフォーカスが移動します。

Javaソース・エディタの動作は、「プリファレンス」ダイアログでプリファレンスを指定することでカスタマイズできます。

17.3 Javaソース・エディタの機能の理解

Javaソース・エディタには、コード間を簡単かつ迅速に移動できるようにする機能があります。

17.3.1 コード・インサイトの使用

Javaコード・インサイトでは、最上位のパッケージ、インポートしたクラス、デフォルトのオブジェクト・メソッド、推奨されていない項目など、有益でないと思われる情報をフィルタを使用して除外できます。また、ローカル変数、ローカルで宣言したメンバー、オーバーロードされたメソッドなど、フォーカスを当てる情報を強調できます。

また、メンバー・インサイト、およびコード・インサイトの構文補完インサイトのJava固有の実装を構成し、コード・インサイトのパラメータ・インサイト・ウィンドウに、推奨されていないメンバーを表示するかどうかを選択できます。

メンバー・インサイトは、特定のコンテキストからアクセス可能なインスタンスおよび静的なメンバー(フィールド、メソッド、内部クラス)を示すリストを提供します。たとえば、これにより特定のメソッドからコール可能なメソッドがわかります。

コード・インサイトを使用すると、コード作成のプロセスにかかる時間を短縮できます。コード・インサイトには、構文補完インサイトおよびパラメータ・インサイトの2種類があります。それぞれの機能を個別に使用可または使用不可にしたり、該当する挿入ポイントにカーソルを置いてからポップアップが表示されるまでの遅延時間(秒単位)もそれぞれ設定できます。

構文補完を起動するには、ピリオドを入力した後で休止するか、[Ctrl]キーを押しながら[Space]キーを押します(デフォルト・キーマップの場合)。パラメータ・インサイトを起動するには、左丸カッコを入力した後、休止するか、または[Ctrl]キー、[Shift]キーおよび[Space]キーを同時に押します(デフォルト・キーマップの場合)。いずれのタイプのインサイトも、終了する場合は[Esc]キーを押します。キーマップを変更すると、これらのキーボード・アクセラレータは変わる場合があります。構文補完インサイト・リストの右下にある「QuickDoc」をクリックすると、現在選択されている要素のJavadocを表示できます。

構文補完インサイトによってメソッドが構文補完された後、メソッド・コードに基づいてパラメータが自動的に入力されます。これらのパラメータは、タブ移動し、手動で編集したりパラメータ・インサイトを使用して編集できます。クラスへの未解決の参照の完全一致が1つのみ検出できた場合は、インポートが自動的に追加されます。この機能のプリファレンスは、「プリファレンス」ダイアログで設定できます。

コード・インサイトの設定を変更するか、アクセラレータを表示または変更するには、メイン・メニューで「ツール」→「プリファレンス」を選択して「プリファレンス」ダイアログを開き、該当のページを表示します。詳細は、第17.4.1項「Javaソース・エディタのコード・インサイト・オプションの設定方法」を参照してください。

17.3.1.1 Javaコードへの注釈の追加

コード・インサイト機能を使用して、Javaコードに注釈をすばやく追加します。注釈は、プログラム要素に情報を関連付けるために使用されます。注釈は、クラス、フィールド、メソッド、パラメータ、ローカル変数、コンストラクタ、列挙およびパッケージで使用できます。Javaコードに注釈を追加するには、注釈を宣言し、機能を作成し、注釈を追加します。

注釈の追加を開始すると、文コンテキストに基づいて、「メンバー・インサイト」([Ctrl]+[Space])にオプション(フィールド、メンバー、クラス)のリストが表示されます。「パラメータ・インサイト」([Ctrl]+[Shift]+[Space])には、注釈タイプの要素の名前、デフォルト値、作成された値など、注釈に関する情報が表示されます。また、ここでは、注釈内で現在カーソルの下にある要素が強調表示されます。

詳細は、第18.5項「Javaソース・エディタのJavadocオプションのカスタマイズ方法」を参照してください。

17.3.2 コード・ピークの使用

[Shift]キーを押しながらマウスを変数またはメソッドの上に置くと、その定義をゴースト・ウィンドウに表示できます。この機能は、現在のコードからカーソルのフォーカスを移動せずにコードをすばやく表示できるので便利です。

17.3.3 スクロール・ヒントの使用

垂直スクロール・バーのドラッグ中、バーの横に小さなヒント・ウィンドウが表示され、全部または一部が表示可能なメソッドが画面に表示されます。これにより、クイック・スクロール中にどのメソッドが表示されるかが、より容易にわかります。先頭がその時点で表示されていないメソッドの名前もわかります。

17.3.4 インクリメンタル検索

インクリメンタル検索を実行するには、メイン・メニューから「検索」→「次をインクリメンタル検索」または「検索」を選択し、「前をインクリメンタル検索」を選択します。表示されるダイアログで検索する内容を入力します。入力すると、入力した特定の文字の組合せに該当する、前方または後方の次のインスタンスにカーソルが移動します。この検索機能ではワイルドカードはサポートされません。

17.3.5 ショートカット・キーの使用

ショートカット・キー(アクセラレータ)とはキーの組合せであり、マウスではなくキーボードを使用して、移動またはなんらかの操作を実行するために使用できます。様々な事前定義済のキーマップから選択するか、または独自のアクセラレータを定義できます。

既存のアクセラレータの表示または変更、新規アクセラレータの定義、初期設定キーマップのロードを実行するには、メイン・メニューから「ツール」→「プリファレンス」を選択して「プリファレンス」ダイアログを開き、「ショートカット・キー」ページに移動します。エディタのアクセラレータを表示または変更するには、「カテゴリ」リストから「コード・エディタ」を選択します。

ブロック・コメントは、「行コメントの設定」によって指定されます。デフォルト・キーマップでは、[Ctrl]+[Shift]+[/]または[Ctrl]+[/]として定義されています。

17.3.6 ブックマーキング

コードのブックマーキング時に、次の作業が可能です。

- 「ブックマーク」ウィンドウで、作成したすべてのブックマークのリストを表示できます。このウィンドウは、「ブックマークに移動」アイコンをクリックすると表示されます。このウィンドウには、ブックマークを含む行番号とメソッド名も表示されます。

- キーボード・ショートカット[Ctrl]+[Shift]-[数字]を使用すると、番号付きのブックマークを作成できます。[Ctrl]+[数字]を使用すると、そのブックマークにすばやくナビゲートできます。

17.3.7 Javaソースの参照

開いているJavaファイルの識別子のソースにナビゲートするには、参照する識別子を右クリックし、「宣言に移動」を選択します。[Ctrl]キーを押しながら識別子をクリックして、そのソースに移動することもできます。ソースが使用不可である場合、クラス・ファイルがリバース・エンジニアリングされます。インポートされたクラス、インタフェース、メンバー・フィールド、メソッドおよびローカル変数を参照できます。メソッドまたはコンストラクタのコールを参照している場合、この宣言の検索により型を解決して、適切なメソッドまたはコンストラクタのコールを決定します。たとえば、例17-1のコードの場合、SetTextで宣言検索が取り消されます。javax.swing.JButtonのソース・コードが呼び出され、setText()メソッドが表示されます。

例17-1 宣言検索の取消し

import javax.swing.JButton
...
JButton b1 = new JButton();
...
b1.SetText: ('OK');

識別子を参照できない、またはカーソル位置に何もない場合、コンテキスト依存メニューのこの検索コマンドは無効になります。適切な移動先が見つからない場合や、アクセス制約(プライベート・メンバーなど)のために識別子を参照できない場合、Javaソース・エディタのステータス・バーには、その旨を示すメッセージが表示されます。

17.3.8 コード・テンプレートの使用

コード・テンプレートは、コードを手動で入力しなくてすむようにソース・ファイルに挿入できる事前作成済のコードのセクションです。テンプレートでは、挿入されたコードは前後のコードに合うように適切に変更でき、コード・テンプレートに必要なインポートが自動的にインポートされます。ショートカットを使用すると、必要なテンプレートを迅速に選択できます。ソース・ファイル内の任意の位置で[Ctrl]キーを押しながら[Enter]キーを押すと、選択可能なコード・テンプレートのリストが表示されます。このリストに表示されるテンプレートはコンテキストに応じて決定され、現在の位置に適したテンプレートのみが表示されます。このリストの右下隅にある「QuickDoc」をクリックすると、選択したコード・テンプレートの構造が表示されます。たとえば、forループ用として既存のテンプレートを使用している場合は、「for」と入力し、[Ctrl]キーを押しながら[Enter]キー(デフォルト・キーマップの場合)を押します。テンプレートの内容は、次のようになります。

for (;;)

コード・テンプレートの完全なリストは、コード・エディタの「ヘルプ」にあります。コード・テンプレートを編集または作成するか、アクセラレータを表示または変更するには、メイン・メニューで「ツール」→「プリファレンス」を選択して「プリファレンス」ダイアログを開き、該当のページを表示します。

詳細は、第18.3.9項「コード・テンプレートの使用方法」を参照してください。

17.4 Javaソース・エディタのプリファレンスの設定

「プリファレンス」ダイアログを使用して、Javaソース・エディタの動作をカスタマイズできます。

また、「プリファレンス」ダイアログを使用して、一般的なソース編集環境の設定を指定できます。

17.4.1 Javaソース・エディタのコード・インサイト・オプションの設定方法

様々なインサイト・オプションを使用して、必要な処理を設定できます。

Javaに適用されるコード・インサイトのオプションを設定するには、次のようにします。

1. メイン・メニューから、「ツール」→「プリファレンス」を選択します。

2. 「プリファレンス」ダイアログで、「コード・エディタ」ノードを開きます。

3. 「Java」ノードを開いて、コード・インサイトを選択します。

4. Javaインサイト・ページで、必要なオプションを設定します。

5. 「OK」をクリックします。

17.4.2 Javaソース・エディタのコメントおよびカッコの一致オプションの設定方法

JDeveloperでは、Javaソース・エディタのコメントおよびカッコの一致オプションを設定できます。

ソース・エディタでJavaコメントおよびカッコの一致オプションを設定するには、次のようにします。

1. メイン・メニューから、「ツール」→「プリファレンス」を選択します。

2. 「プリファレンス」ダイアログで、「コード・エディタ」ノードを開きます。

3. 「表示」ノードを選択します。

4. 表示ページで、自動カッコの一致を有効または無効にして、遅延時間を設定できます。

5. 「OK」をクリックします。

6. 「プリファレンス」ダイアログを再び開き、「コード・エディタ」ノードを開いて「Java」ノードを選択します。

7. Javaページで、コメントおよびカッコの一致の属性を使用して、必要な処理を設定します。

8. 「OK」をクリックします。

ブロック・コメントは、アクセラレータの機能です。デフォルト・キーマップで、[Ctrl]+[Shift]+[/]または[Ctrl]+[/]を使用して、Javaコードをブロック・コメント処理します。

17.4.3 Javaソース・エディタの自動Import Assistanceの有効化方法

Javaソース・エディタでimport文を編成できるアシスタンスを表示できます。

import文を自動的に追加できるようにするには、次のようにします。

1. メイン・メニューから、「ツール」→「プリファレンス」を選択します。

2. 「プリファレンス」ダイアログで、「コード・エディタ」ノードを開きます。

3. 「Java」ノードを開いて、「インポート」を選択します。

4. 「インポート」ページで、「Import Assistanceで自動ポップアップを有効にする」を選択します。

5. 「OK」をクリックします。

17.4.4 Javaソース・エディタのimport文ソート・オプションの設定方法

Javaソース・エディタでimport文をソートするオプションを設定できます。

import文をソートするオプションを設定するには、次のようにします。

1. メイン・メニューから、「ツール」→「プリファレンス」を選択します。

2. 「プリファレンス」ダイアログで、「コード・エディタ」ノードを開きます。

3. 「Java」ノードを開いて、「インポート」を選択します。

4. インポート・ページで属性を使用して、エディタのimport文のソートの際に必要な処理を設定します。

5. 「OK」をクリックします。

17.5 ツールバー・オプションの使用

Javaソース・エディタではJavaソース・ファイルが表示され、Javaコードを編集できます。表17-1に示すように、様々な機能を実行するアイコンは、Javaソース・エディタの上部にあります。

表17-1 ツールバー・オプション

アイコン

名前

説明

クイック・アウトライン

現在のクラスおよびそのスーパー・クラスの使用可能なメソッドおよびフィールドのツリーを表示する場合にクリックします。

このアイコンをクリックすると、「クイック・アウトライン」ウィンドウが表示されます(詳細は、第17.6項「「クイック・アウトライン」ウィンドウの使用」を参照)。このウィンドウはコードのすぐ上に浮かび、現在のクラスおよびそのスーパー・クラスの使用可能なメソッドおよびフィールドのツリーが表示されます。表示されるアイテムを減らすために、フィルタ・フィールドへの入力をすぐに開始できます。これによって、目的の場所に移動するための選択を迅速かつ簡単に行うことができます。

コード強調表示

カーソルが現在置かれているコード・コンポーネントのインスタンスをすべて強調表示する場合にクリックします。

すべての強調表示をクリア

すべての強調表示を取り消す場合にクリックします。

アクセッサの生成

「アクセッサの生成」ダイアログを使用してgetメソッドとsetメソッドをクラスに挿入する場合にクリックします。

メソッドのオーバーライド

フォーカスされているクラスの継承メソッドをオーバーライドする場合にクリックします。

インタフェースの実装

「インタフェースの実装」ダイアログを使用して、1つ以上のインタフェースを実装するようにターゲット・クラスを変更する場合に、またはターゲット・インタフェースを1つ以上の他のインタフェースに拡張する場合にクリックします。

再フォーマット

コードにソース・フォーマットを適用する場合にクリックします。

囲む

「コードを囲む」ダイアログを使用して、Javaソース・エディタに記述されている文字列の現在選択されているブロックをコーディング構成メンバーで囲む場合にクリックします。

ブックマークの設定

現在フォーカスされているコードの行でブックマークを挿入または削除する場合にクリックします。

次のブックマークに移動

次のブックマークにカーソルを置く場合にクリックします。

前のブックマークに移動

前のブックマークにカーソルを置く場合にクリックします。

選択した要素のみを表示

エディタで特定の1つの要素のみを表示する場合にクリックします。この機能を使用すると、メソッド、クラス、内部クラスまたはフィールド宣言に厳密なフォーカスを置くことができます。ファイル最下部のメッセージは、選択した要素の表示モードが現在アクティブであることを示します。

ブロック着色

ブロック着色を有効にする場合にクリックします。この機能を使用して、コードのブロックを強調表示して読みやすくすることができます。着色プリファレンスは、「プリファレンス」ダイアログを使用して設定できます。

17.6 「クイック・アウトライン」ウィンドウの使用

「検索」フィールドのすぐ右側にある「クイック・アウトライン」ツールバー・アイコンをクリックすると、図17-1に示すように、「クイック・アウトライン」ウィンドウが表示されます。このウィンドウはコードのすぐ上に浮かび、現在のクラスおよびそのスーパー・クラスの使用可能なメソッドおよびフィールドのツリーが表示されます。表示されるアイテムを減らすために、フィルタ・フィールドへの入力をすぐに開始できます。これによって、目的の場所に移動するための選択を迅速かつ簡単に行うことができます。

図17-1 「クイック・アウトライン」ウィンドウ

表17-2は、使用可能なアイコンとオプションを示しています。

表17-2 クイック・ツールバーのアイコン

アイコン

名前

説明

メソッドを表示

メソッドおよびコンストラクタを表示する場合にクリックします。デフォルトでは、メソッド、フィールドおよびstaticメンバーがすべて表示されます。

フィールドを表示

フィールドを表示する場合にクリックします。デフォルトでは、メソッド、フィールドおよびstaticメンバーがすべて表示されます。

staticメンバーを表示

staticメンバーを表示する場合にクリックします。デフォルトでは、メソッド、フィールドおよびstaticメンバーがすべて表示されます。

publicメンバーのみを表示

publicメンバーのみを表示する場合にクリックします。デフォルトでは未選択です。

継承メンバーの表示

継承メンバーのみを表示する場合にクリックします。

アルファベット順でソート

アルファベット順でクラス・メンバーをソートする場合にクリックします。デフォルトでは未選択です。

タイプでソート

まずクラス・メンバーをタイプでソート(コンストラクタ、メソッド、フィールド、内部クラスの順)し、次にカテゴリ内でアルファベット順にソートする場合にクリックします。デフォルトで選択されています。

「アルファベット順でソート」の横にある下矢印をクリックし、オプションを表示します。

アクセスでソート

まずアクセス修飾子でクラス・メンバーをソートし、次にカテゴリ内でアルファベット順にソートする場合にクリックします。デフォルトでは未選択です。

「アルファベット順でソート」の横にある下矢印をクリックし、オプションを表示します。

17.7 Java UIビジュアル・エディタについて

Java UIビジュアル・エディタには、ユーザー・インタフェースのビジュアル・コンポーネントが編集モードで表示されます。注意: Javaビジュアル・エディタはSwing/AWTアプリケーションに対してのみ使用できます。

Javaビジュアル・エディタが開いている場合、対応する要素が「構造」ウィンドウに階層表示されます。プロパティ・インスペクタが開いている場合、「構造」ウィンドウまたはJavaビジュアル・エディタで要素を選択すると、インスペクタの選択内容も変更されます。

Javaビジュアル・エディタにはGUI階層が表示されます。メニュー項目がある場合と、メニュー以外の項目がある場合では、階層の表示方法が異なります。使用している編集モードが異なるように、表示のモードも異なります。詳細は、第18.2.9項「クラスまたはインタフェースの階層の表示方法」を参照してください。

ナビゲータでノードを選択すると、そのGUI構造も「構造」ウィンドウに表示されます。このオブジェクトのメニュー以外のGUI項目はすべて、UIというラベルが付いたノードの下に表示されます。メニュー項目は、Menuというラベルが付いたノードの下に表示されます。GUI以外の項目は、Otherというラベルが付いたノードの下に表示されます。オブジェクトのJavaビジュアル・エディタをナビゲータで開いた後、メニュー以外のGUI要素とメニュー要素の表示を切り替えるには、「構造」ウィンドウで、これらのUIノードまたはMenuノードの下のノードをクリックします。

Javaビジュアル・エディタでの表示はGUI階層に基づいているため、「構造」ウィンドウで(すべてのGUIオブジェクトの)ノードをクリックすると、ルート・ノードおよびその子の視覚的な表現がエディタにロードされます。階層で選択したノードに関係なく、階層全体が開きます。エディタに表示される内容は、完全なGUI階層を反映します。選択した特定の要素は、ウィンドウで選択した特定のノードを反映します。「構造」ウィンドウとJavaビジュアル・エディタの選択内容は同期化されます。

「構造」ウィンドウに孤立したノードがある場合、そのノードおよび子が階層全体を構成し、孤立したノードが階層のルートになります。Java UIの表示はこれを反映します。たとえば、親のないコントロールがあり、そのコントロールのノードを選択した場合、そのコントロールおよび子はコンテナなしでエディタに表示されます。ただし、そのコントロールに変更を加えると、コードが生成されます。

Javaビジュアル・エディタ内の任意の場所を右クリックすると、コマンドのポップアップ・メニューが表示されます。ポップアップ・メニューは、メニュー以外の項目またはメニュー項目のどちらを編集しているかによって異なります。また、ポップアップ・メニュー内で使用できるコマンドは、選択したオブジェクトによって異なります。

17.7.1 Java SwingおよびAWTコンポーネント

SwingおよびAWT JavaBeansコンポーネントを使用して、Javaアプリケーションまたはアプレットのユーザー・インタフェース(UI)をアセンブルします。Javaビジュアル・エディタで、ボタン、テキスト領域、リスト、ダイアログ、メニューなどのJavaBeansをコンポーネント・パレットから選択してUIを構成します。次に、コンポーネント・プロパティの値を設定し、コンポーネント・イベントにイベント・ハンドラ・コードをアタッチします。Javaクラスを視覚的に設計およびプログラミングして、新規の複合コンポーネントまたは複雑なコンポーネントを生成できます。

詳細は、第20.1項「Java Swingユーザー・インタフェースの実装について」を参照してください。

18 Javaでのプログラミング

この章では、JDeveloperで提供されるツールや機能を使用して、Javaアプリケーションを作成する方法について説明します。ダイアグラムでクラスを定義する方法を説明します。クラスのメンバー、継承およびコンポジット関係はすべて、それらのクラスのJavaソース・コードから直接導出されます。

この章では、次の項目について説明します。

- 第18.1項「Javaでのプログラミングについて」

- 第18.2項「Javaコードでのナビゲート」

- 第18.3項「Javaコードの編集」

- 第18.4項「ドキュメント・コメントの追加」

- 第18.5項「Javaソース・エディタのJavadocオプションのカスタマイズ方法」

- 第18.6項「Javaプロジェクトのビルド」

- 第18.7項「JavaBeansの使用」

- 第18.8項「Javaプロジェクトのリファクタ」

- 第18.9項「アプリケーションのパフォーマンスの最適化」

- 第18.10項「プロジェクトのプロファイリング」

- 第18.11項「Javaクラスのモデリング」

- 第18.12項「JUnitによるユニット・テスト」

18.1 Javaでのプログラミングについて

JDeveloperでは、JavaBeansを使用してJavaアプレットおよびクライアント・アプリケーションをビルドおよびアセンブルでき、SwingおよびAWTコンポーネントを使用して対話型のデスクトップベースのGUIアプリケーションをビルドおよびアセンブルできます。JDeveloper IDEでJava Web Startを備えたJavaクライアント・アプリケーションを作成および実行することもできます。

JDeveloperには、Javaドメインで次のタスクを実行するためのリソースが用意されています。

- Javaクラスのモデル化 - Javaクラスおよびインタフェースを視覚的に作成するための、または既存のJavaクラスおよびインタフェースをグラフィカルに表示するためのツール。

- Javaソース・ファイルの編集 - ソース・エディタでは、いくつかのJava対応編集機能がサポートされています。

- Javaプロジェクトのリファクタ - プログラムの動作を変更しないでコード構造を変更する一連の自動リファクタ操作。

- Apache Antの構築 - 「メイク」コマンドおよび「再ビルド」コマンド、またはApache Antを使用して、プロジェクトをコンパイルします。

- Javaプログラムの実行: 実行、デバッグまたはプロファイリングされるプロセスを追跡します。

- Javaプログラムのデバッグ - ローカル・デバッグおよびリモート・デバッグ用のツール。

- アプリケーションのパフォーマンスの最適化 - Javaコードの品質およびパフォーマンスを分析するためのツール。

- JUnitによるユニット・テスト: オープン・ソースのJUnitフレームワークを使用して、Javaコードを検証するテストを記述および実行するためのツール。

18.2 Javaコードでのナビゲート

JDeveloperでは、プロジェクトのクラスとインタフェースおよびそのメンバーのソース・コードを検索し、その場所に移動するためのJava対応機能がサポートされています。

18.2.1 クラスおよびインタフェースの参照方法

JDeveloperでの作業中、UIまたはJavaソース・エディタで開いているファイルから、Java要素を直接参照できます。

Java要素をUIから直接参照するには、次のようにします。

1. メイン・メニューから「ナビゲート」→「Javaタイプに移動」を選択します。または、キーボード・ショートカットの[Ctrl]+[-]も使用できます。

2. 「Javaタイプに移動」ダイアログで、検索するJavaタイプの名前を入力します。このフィールドでテキストの入力を開始すると、テキストに一致するJavaエンティティのリストが表示されます。

3. リストでエンティティをダブルクリックすると、エンティティがソース・エディタに開きます。

エディタで現在開いているファイルのクラスまたはインタフェースを参照するには、次のようにします。

1. エディタでファイルを開いた状態で、エディタにフォーカスがあることを確認します。

2. ソース・ファイルでクラス名またはインタフェース名を選択し、右クリックして「宣言に移動」を選択します。
Javaソース・エディタにソース・ファイルが開きます。

18.2.2 変数、クラスまたはメソッドの宣言の検索方法

Javaソース・エディタでの作業中、任意の識別子の宣言を簡単に検索できます。

コード要素の宣言に移動するには、次のようにします。

- コード要素を右クリックし、「宣言に移動」を選択します。または、

- [Ctrl]を押しながら、コード要素を左クリックします。

選択した要素のソース・コードが開き、宣言文がハイライト表示されます。

18.2.3 クラスまたはインタフェースの使用方法の検索方法

Javaソース・エディタでの作業中、クラスやインタフェースへの参照およびそのメンバーを簡単に検索できます。デフォルトでは、現在のプロジェクトおよび依存プロジェクトの使用方法が報告されます。ライブラリのソース・ファイルにアクセス可能な場合は、検索対象をライブラリにまで拡大できます。

「使用方法の検索」コマンドは、個々のメソッドとフィールド、およびローカル変数とパラメータにも適用できます。

クラスの使用方法を検索するには、次のようにします。

1. 次のいずれかの方法で、クラスまたはインタフェースを選択します。

- Javaソース・エディタで、名前を選択します。

- ナビゲータまたは構造ウィンドウで、クラスまたはインタフェースを選択します。

2. 次のいずれかの方法で、コマンドを起動します。

- 「検索」→「使用方法の検索」を選択します。

- 右クリックして「使用方法の検索」を選択します。

- [Ctrl]キーと[Alt]キーを押しながら[U]キーを押します。
「<オブジェクト>の使用方法」ダイアログが開きます。

3. 「検索」ボックスで、検索で返される参照のタイプを選択します。

4. 「条件」ボックスで、検索対象とするオプションの追加領域を定義します。

5. 検索の出力を設定します。「新規タブ」を選択して、新規使用方法ログに出力します。選択しないと、使用方法に対する直前の検索の結果が存在する場合は破棄されます。

6. 「OK」をクリックします。
検索が開始され、結果が使用方法ログ・ウィンドウに表示されます。

18.2.4 メソッドの使用方法の検索方法

このダイアログを使用すると、Javaソース・エディタで作業するとき、メソッドへの参照を迅速に検索できます。

検索によって、メソッドが定義されているクラスまたはインタフェースのインスタンスへのメソッドのアプリケーション、およびメソッドを継承するサブクラスやサブインタフェースが存在する場合はそのインスタンスのメソッドのアプリケーションが示されます。

また、「使用方法の検索」コマンドをクラスとインタフェース、フィールドおよびローカル変数とパラメータに適用できます。

メソッドの使用方法を検索するには、次のようにします。

1. 次のいずれかの方法で、メソッドを選択します。

- Javaソース・エディタで、名前を選択します。

- 「構造」ペインでフィールドを選択します。

2. 次のいずれかの方法でコマンドを起動します。

- 「検索」→「使用方法の検索」を選択します。

- 右クリックして「使用方法の検索」を選択します。

- [Ctrl]キーと[Alt]キーを押しながら[U]キーを押します。
「<メソッド>の使用方法」ダイアログが表示されます。このダイアログには、使用方法を検索するために指定できる様々なオプションがあります。

- ダイアログでオプションを指定し、「OK」をクリックして検索を開始します。

18.2.5 フィールドの使用方法の検索方法

Javaソース・エディタでの作業中、フィールドへの参照を簡単に検索できます。

検索によって、フィールドが定義されているクラスまたはインタフェースのインスタンス内のフィールドの参照、およびフィールドを継承するサブクラスやサブインタフェースが存在する場合は、そのインスタンスのフィールドの参照が示されます。

「使用方法の検索」コマンドは、クラス、インタフェース、メソッド、ローカル変数およびパラメータにも適用できます。

フィールドの使用方法を検索するには、次のようにします。

1. 次のいずれかの方法で、フィールドを選択します。

- Javaソース・エディタで、名前を選択します。

- 「構造」ペインでフィールドを選択します。

2. 次のいずれかの方法でコマンドを起動します。

- 「検索」→「使用方法の検索」を選択します。

- 右クリックして「使用方法の検索」を選択します。

- [Ctrl]キーと[Alt]キーを押しながら[U]キーを押します。

3. 「<オブジェクト>の使用方法」ダイアログに入力し、「OK」をクリックします。検索を他の領域に拡張するオプションの指定、検索範囲の定義およびオプションで結果をログ・ウィンドウの新しいタブに表示する指定を行うことができます。
検索が開始され、結果が「<オブジェクト>の使用方法」の「ログ」ウィンドウに表示されます。

18.2.6 ローカル変数またはパラメータの使用方法の検索方法

Javaソース・エディタでの作業中、メソッド本体のローカル変数またはパラメータへの参照を簡単に検索できます。

「使用方法の検索」コマンドは、クラス、インタフェース、メソッドおよびフィールドにも適用できます。

ローカル変数またはパラメータの使用方法を検索するには、次のようにします。

1. Javaソース・エディタで変数名またはパラメータ名を選択します。

2. 次のいずれかの方法でコマンドを起動します。

- 「検索」→「使用方法の検索」を選択します。

- 右クリックして「使用方法の検索」を選択します。

- [Ctrl]キーと[Alt]キーを押しながら[U]キーを押します。
検索が開始され、結果が使用方法ログ・ウィンドウに表示されます。

18.2.7 オーバーライドされるメソッド定義の検索方法

Javaソース・エディタでの作業中、スーパークラスの定義をオーバーライドするメソッドを簡単に特定できます。オーバーライドする定義には、Javaソース・エディタのマージンに「オーバーライド」の上矢印アイコンが付きます。

オーバーライドされたメソッド定義を表示するには、マージンの「オーバーライド」アイコンをクリックします。

オーバーライドに移動した後、前のビューに戻るには、「戻る」ツールバー・ボタンをクリックします。

18.2.8 実装されたメソッド宣言の検索方法

Javaソース・エディタでの作業中、スーパークラスの定義をオーバーライドするメソッドを簡単に特定できます。オーバーライドする定義には、Javaソース・エディタのマージンに「実装」の下矢印アイコンが付きます。

オーバーライドされたメソッド定義を表示するには、マージンの「実装」アイコンをクリックします。

オーバーライドに移動した後、前のビューに戻るには、「戻る」ツールバー・ボタンをクリックします。

18.2.9 クラスまたはインタフェースの階層の表示方法

Javaソース・エディタでの作業中、クラスまたはインタフェースのサブタイプおよびスーパータイプの階層をインスペクトできます。階層ウィンドウには、選択したクラスまたはインタフェースの階層が表示されます。

Javaソース・エディタでクラスまたはインタフェースの階層を表示するには、次のようにします。

1. クラスまたはインタフェースを選択し、右クリックして「タイプ階層」を選択するか、「ナビゲート」→「タイプ階層」を選択します。
階層ウィンドウが開き(まだ開かれていない場合)、サブタイプまたはスーパータイプのツリーが表示されます。

2. サブタイプおよびスーパータイプの表示と非表示を切り替えるには、「サブタイプ階層」ボタンまたは「スーパータイプ階層」ボタンをクリックします。

Javaビジュアル・エディタで最初に階層を開くには、次のようにします。

1. ナビゲータでノードを選択します。

2. 右クリックして「編集」をクリックするか、「ビュー」メニューを使用します。
このノードのGUI階層全体がエディタに表示されます。表示の方法は、この階層がメニュー項目またはメニュー以外の項目のどちらで構成されるかによって異なります。

18.2.10 クラスのメンバーのステップ実行

キーボード・アクセラレータを使用すると、Javaソース・エディタで、クラス定義内でメンバー間を移動できます。

- 現在のJavaソース・ビューの次のメンバー定義または宣言に移動するには、[Alt]+[↓]キーを押すか、または「ナビゲート」→「次のメンバーに移動」を選択します。

- 現在のJavaソース・ビューの1つ前のメンバー定義または宣言に移動するには、[Alt]+[↑]キーを押すか、または「ナビゲート」、「前のメンバーに移動」の順に選択します。

次の追加のコードのステップ・コマンドも定義されていますが、デフォルトではアクセラレータは割り当てられていません。

- 次のクラスに移動

- 次のフィールドに移動

- 次のメソッドに移動

- 前のクラスに移動

- 前のフィールドに移動

- 前のメソッドに移動

これらのコマンドは、「プリファレンス」ダイアログのショートカット・キー・ページの「ナビゲート」カテゴリにリストされます。アクセラレータは追加または変更できます。

18.3 Javaコードの編集

JDeveloperには、生産性の向上に役立つJava対応編集機能が数多く用意されています。グラフィカル・ユーザー・インタフェースを開発する場合は、テキスト編集のかわりにJava Visual Editorを使用できます。ソース・エディタとビジュアル・エディタは同期しているため、片方を変更すると、ただちにもう一方に反映されます。これらのJava編集機能によって、あらゆるテクノロジのコーディングをサポートする汎用ソース編集機能が強化されています。

18.3.1 Javaビジュアル・エディタでのコードの編集

Javaビジュアル・エディタには、ユーザー・インタフェースのビジュアル・コンポーネントが「編集」モードで表示されます。

Javaビジュアル・エディタが開いている場合、対応する要素が「構造」ウィンドウに階層表示されます。プロパティ・インスペクタが開いている場合、「構造」ウィンドウまたはJavaビジュアル・エディタで要素を選択すると、インスペクタの選択内容も変更されます。

Javaビジュアル・エディタにはGUI階層が表示されます。メニュー項目がある場合と、メニュー以外の項目がある場合では、階層の表示方法が異なります。使用している編集モードが異なるように、表示のモードも異なります。

Javaビジュアル・エディタで最初に階層を開くには、ナビゲータでノードを選択して右クリックし、「編集」をクリックするか、「表示」メニューを使用します。このノードのGUI階層全体がエディタに表示されます。表示の方法は、この階層がメニュー項目またはメニュー以外の項目のどちらで構成されるかによって異なります。

ナビゲータでノードを選択すると、そのGUI構造も「構造」ウィンドウに表示されます。このオブジェクトのメニュー以外のGUI項目はすべて、UIというラベルが付いたノードの下に表示されます。メニュー項目は、Menuというラベルが付いたノードの下に表示されます。GUI以外の項目は、「その他」というノードの下に表示されます。オブジェクトのJavaビジュアル・エディタをナビゲータで開いた後、メニュー以外のGUI要素とメニュー要素の表示を切り替えるには、「構造」ウィンドウで、これらのUIノードまたはMenuノードの下のノードをクリックします。

Javaビジュアル・エディタでの表示はGUI階層に基づいているため、「構造」ウィンドウで(すべてのGUIオブジェクトの)ノードをクリックすると、ルート・ノードおよびその子の視覚的な表現がエディタにロードされます。階層で選択したノードに関係なく、階層全体が開きます。エディタに表示される内容は、完全なGUI階層を反映します。選択した特定の要素は、ウィンドウで選択した特定のノードを反映します。「構造」ウィンドウとJavaビジュアル・エディタの選択内容は同期化されます。

「構造」ウィンドウに孤立したノードがある場合、そのノードおよび子が階層全体を構成し、孤立したノードが階層のルートになります。Java UIの表示はこれを反映します。たとえば、親のないコントロールがあり、そのコントロールのノードを選択した場合、そのコントロールおよび子はコンテナなしでエディタに表示されます。ただし、そのコントロールに変更を加えると、コードが生成されます。

Javaビジュアル・エディタ内の任意の場所を右クリックすると、コマンドのポップアップ・メニューが表示されます。ポップアップ・メニューは、メニュー以外の項目またはメニュー項目のどちらを編集しているかによって異なります。また、ポップアップ・メニュー内で使用できるコマンドは、選択したオブジェクトによって異なります。

18.3.2 Javaビジュアル・エディタを開く

変更するJavaファイルをナビゲータで右クリックして「開く」を選択し、「設計」タブをクリックします。

ソース・コードがコード・エディタ内でアクセス可能になります(ナビゲータでファイルを右クリックして「開く」を選択すると、ソース・コードが表示されます)。これにより、UI設計と並行してソース・コードを表示および編集できます。Javaビジュアル・エディタまたはプロパティ・インスペクタで行った変更は即時にソース・コードに反映され、ソース・コードに対する変更はJavaビジュアル・エディタまたはプロパティ・インスペクタに即時に反映されます。

Javaビジュアル・エディタのツールバーを使用すると、容易にコンポーネントを操作し、選択したコンポーネントについて表示されるポップアップ・メニューから選択できるコマンドを複製できます。次のようなコンポーネント操作があります。

- 制約: コンポーネントのスペース配分、最大化、アンカーの位置、余白および空間を指定できます。

- 位置合せ: 各コンポーネントを他のコンポーネントに対する相対位置にすばやく配置できます。

- Z順序: 重なり合ったコンポーネントの順序を変更できます。

18.3.3 Javaビジュアル・エディタのプロキシ・クラスの理解

JDeveloperは軽量(JFC)アプリケーションです。そのため、重量(AWT)コントロールをJavaビジュアル・エディタで直接使用すると、予期せぬ動作が発生します。重量コンポーネントは、軽量JDeveloper環境(コード・エディタおよびUMLモデラーなど)を含めて軽量コンポーネントを常に混乱させます。

Javaビジュアル・エディタにはプロキシ・メカニズムが組み込まれており、Javaビジュアル・エディタでインスタンス化する重量コントロールを表す軽量プロキシを登録できます。JDeveloperには、デフォルトですべての標準AWTコントロールの軽量プロキシが組み込まれています。

18.3.4 Javaビジュアル・エディタへのカスタム・コンポーネントのプロキシの登録

JDeveloperでは、Javaビジュアル・エディタで使用できるように登録した重量コンポーネントの軽量ビューをサポートしています。

プロキシ・クラスを登録するには、次のようにします。

例18-1のように、Developer\lib\addins.xmlファイルのoracle.jdevimpl.uieditor.UIEditorAddinセクションにキー値の定義を追加します。

例18-1 キー値の定義

<property>
<key>PREFIX.CLASS_NAME</key>
<value>PROXY_CLASS_NAME</value>
</property>

これらの意味は、次のとおりです。

- PREFIXはjdeveloper.concreteProxyです。

- CLASS_NAMEは、プロキシを登録する重量コンポーネントの完全修飾クラス名です。

- PROXY_CLASS_NAMEは、登録するプロキシ・クラスの完全修飾クラス名です。

たとえば、oracle.jdevimpl.uieditor.proxy.Componentプロキシ・クラスを使用してjdeveloper.concreteProxy.java.awt.Componentという仮定の重量コンポーネント実装を登録する場合、追加するプロパティは例18-2のようになります。

例18-2 重量コンポーネント

<property>
<key>jdeveloper.concreteProxy.java.awt.Component</key>
<value>oracle.jdevimpl.uieditor.proxy.Component</value>
</property>

Javaビジュアル・エディタのプロキシ・クラスをコンポーネント・パレットに追加できるようにIDEで使用可能にするには、プロキシ・クラスをレイアウト・アシスタントがプロパティ・インスペクタのJDeveloper¥bin¥jdev.confファイル内でIDEClasspathにディレクティブとして追加する必要があります。次に例を示します。

AddJavaLibFile <myUiProxies.jar>

myUiProxies.jarは、Javaビジュアル・エディタのプロキシ実装のコンパイル済クラス・ファイルが含まれているjarです。

18.3.5 新規Javaクラスの作成方法

新規クラスを作成する前に、まずアプリケーションおよびプロジェクトを作成しておく必要があります。作成したクラスは、アクティブなプロジェクトに即時に追加されます。

新規クラスを作成し、プロジェクトに追加するには、次のようにします。

1. 「アプリケーション・ナビゲータ」で、クラスを追加するプロジェクトを選択します。

2. 右クリックして「新規」を選択します。

3. 「新規ギャラリ」で、「一般」カテゴリの「Java」を選択します。

4. 「項目」で、「クラス」を選択します。

5. 「Javaクラスの作成」ダイアログで、クラス名、パッケージ名および新しいクラスが拡張するスーパークラスを入力します。必要に応じて属性を選択します。

6. 「OK」をクリックします。
アクティブなプロジェクトに新規クラスが表示されます。

18.3.6 新規Javaインタフェースの作成方法

新規インタフェースを作成する前に、まずアプリケーションおよびプロジェクトを作成しておく必要があります。作成したインタフェースは、アクティブなプロジェクトにすぐに追加されます。

新規インタフェースを作成し、プロジェクトに追加するには、次のようにします。

1. 「アプリケーション・ナビゲータ」で、クラスを追加するプロジェクトを選択します。

2. 右クリックして「新規」を選択します。

3. 「新規ギャラリ」で、「一般」カテゴリの「Java」を選択します。

4. 「項目」で、「インタフェース」を選択します。

5. 「Javaインタフェースの作成」ダイアログで、インタフェース名、パッケージ名および新しいクラスが拡張するスーパークラスを入力します。必要に応じて属性を選択します。

6. 「OK」をクリックします。
アクティブなプロジェクトに新規クラスが表示されます。

18.3.7 Javaインタフェースの実装方法

ソース・エディタでは、フレームワーク・コードを追加し、インタフェースを実装するターゲット・クラスを変更したり、ターゲット・インタフェースを別のインタフェースに簡単に拡張できます。

implements句またはextends句がターゲット・クラスまたはターゲット・インタフェースの宣言に追加され、import文がファイルに追加されます。ターゲットがクラスである場合には、実装されるインタフェースの各メソッドについてスタブ定義がクラスまたはインタフェースの本体に追加されます。

インタフェースを実装するには、次のようにします。

1. Javaソース・ファイルを開きます。

2. メイン・メニューから「ソース」→「インタフェースの実装」を選択します。

3. 「検索」タブまたは「階層」タブで、インタフェースの実装先となるクラスを検索し、実装するインタフェースの名前を選択します。

4. オーバーライドされるメソッドからドキュメント・コメントを組み込む場合は、「Javadocのコピー」を選択します。

5. 「OK」をクリックします。

18.3.8 メソッドのオーバーライド方法

ソース・エディタでは、スーパークラスから継承したメソッドをオーバーライドするためのスタブ定義をクラスに迅速に追加できます。

メソッドをオーバーライドするには、次のようにします。

1. Javaソース・ファイルを開きます。

2. メイン・メニューから「ソース」→「メソッドのオーバーライド」を選択します。

3. 「メソッド」リストで、オーバーライドするメソッドを選択します。
リストには、すべてのスーパークラスから継承されるメソッドが表示されます。abstractメソッドは太字で表示されます。

4. オーバーライドされるメソッドからドキュメント・コメントを組み込む場合は、「Javadocのコピー」を選択します。

5. 「OK」をクリックします。
スタブ・メソッド定義がクラスに追加されます。

6. スタブ定義を編集します。

18.3.9 コード・テンプレートの使用方法

JDeveloperでは、事前定義済のコード・テンプレートを使用できます。コード・テンプレートは、一般的によく使用される文のテキストを挿入することで、より迅速かつ効率的にコードを記述するのに役立ちます。たとえば、Iterate over a list (itli)テンプレートでは、次のコードが挿入されます。

for (int i = 0; i < unknown.size(); i++) {
Object object = (Object) unknown.get(i);
}

注意:

テンプレートに変数が含まれている場合、変数はハイライト表示されています。各変数を編集して、テンプレートを完成できます。[Tab]を押すと、カレットが次のテンプレート変数に移動します。

JDeveloperで提供されるテンプレート以外に、独自のコード・テンプレートを定義することもできます。「プリファレンス」ダイアログの「コード・エディタ」→コード・テンプレート・ページを使用します。

定義済のコード・テンプレートを起動するには、次のようにします。

1. エディタでファイルを開き、テンプレートを挿入する位置にカーソルを置きます。

2. テンプレートに対応するショートカットを入力し、[Ctrl]を押しながら[Enter]を押します。
テンプレート内に定義されているコードがソース・ファイルに挿入されます。テンプレートに必要なimport文がある場合は、ファイルの先頭に挿入されます。

注意:

[Ctrl]+[Enter]は、デフォルトのキーマップで割り当てられているアクセラレータです。別のキーを割り当てることもできます。

18.3.10 事前定義済のコード・テンプレートの使用

この項では、事前定義済のコード・テンプレートをリストします。それぞれについて、テンプレートで導入されるショートカットとコードを示します。

Array Iterator

ai
for (int $i$ = 0; $i$ < $array$.length; $i$++)
{
$type$ $var$ = $array$[$i$];
$end$
}

Data Action Event Handler

daev
public void on$end$(PageLifecycleContext ctx)
{
}

for loop

for
for ($end$ ; ; )
{
}

if statement

if
if ($end$)
{
}

if else statement

ife
if ($end$)
{

} else
{

}

integer based loop

fori
for (int $i$ = 0; $i$ < $lim$; $i$++)
{
$end$
}

integer based loop

forn

int $n$ = $lim$;
for (int $i$ = 0; $i$ < $n$; $i$++)
{
$end$
}

instanceof + cast

iofc
if ($var$ instanceof $type$)
{
$type$ $casted$ = ($type$) $var$;
$end$
}

Instantiate a BC4J application module

bc4jclient

String amDef = "test.TestModule";
String config = "TestModuleLocal";
ApplicationModule am =
Configuration.createRootApplicationModule(amDef,config);
ViewObject vo = am.findViewObject("TestView");
$end$// Work with your appmodule and view object here
Configuration.releaseRootApplicationModule(am,true);

Iterate over array

itar

for (int $i$ = 0; $i$ < $array$.length; $i$++)
{
$type$ $var$ = $array$[$i$];
$end$
}

Iterate over a collection

itco

for(Iterator $iter$ = $col$.iterator();$iter$.hasNext();)

{
$type$ $var$ = ($type$) $iter$.next();
$end$
}

Iterate over a list

itli
for (int $i$ = 0; $i$ < $list$.size(); $i$++)
{
$type$ $var$ = ($type$) $list$.get($i$);
$end$
}

Iterate over map keys

itmk

Iterator $iter$ = $map$.keySet().iterator();
while ($iter$.hasNext())
{
$type$ $var$ = ($type$) $iter$.next();
$end$
}

Iterate over map values

itmv

Iterator $iter$ = $map$.values().iterator();
while ($iter$.hasNext())
{
$type$ $var$ = ($type$) $iter$.next();
$end$
}

JDBC Connection

conn

public static Connection getConnection() throws SQLException
{
String username = "$end$scott";
String password = "tiger";
String thinConn = "jdbc:oracle:thin:@localhost:1521:ORCL";
Driver d = new OracleDriver();
Connection conn =
DriverManager.getConnection(thinConn,username,password);
conn.setAutoCommit(false);
return conn;
}

List to array

ltoar

$type$ $var$ = new $typeelem$[$list$.size()];
$var$ = ($type$) $list$.toArray($var$);
$end$

main method

main

public static void main(String[] args)
{
$end$
}

out.println()

outp

out.println($end$);

private ArrayList

pral

private ArrayList _$end$ = new ArrayList();

private boolean

prb

private boolean _$end$;

private HashMap

prhm

private HashMap _$end$ = new HashMap();

private int

pri

private int _$end$;

private String

prs

private String _$end$;

public static final

pusf

public static final $end$;

public static final boolean

pusfb

public static final boolean $end$;

public static final int

pusfi
public static final int $end$;

public static final String

pusfs

public static final String $end$;

Reverse array iterator

ritar

for (int $i$ = $array$.length; --$i$ >= 0 ;)
{
$type$ $var$ = $array$[$i$];
$end$
}

Reverse iteration over a list

ritli

for (int $i$ = $list$.size(); --$i$ >= 0 ; )
{
$type$ $var$ = ($type$) $list$.get($i$);
$end$
}

System.err.println

sep
System.err.println($end$);

System.out.println

sop

System.out.println($end$);

switch statement

sw

switch ($end$)
{
case XXX:
{
}
break;
default;
{
}
break;
}

try statement

try

try
{
$end$
} catch (Exception ex)
{
ex.printStackTrace();
} finally
{
}

Insert a tag

tag

<$tag$>
$end$
</$tag$>

while statement

wh

while ($end$)
{

}

18.3.11 選択したテキストを拡張または縮小する方法

「選択の拡大」または「選択の縮小」オプションを使用すると、Java構文に基づいて、選択したコード・ブロックを連続して拡大または縮小できます。

選択したコードを拡大するには、次の手順を実行します。

1. エディタでファイルを開いた状態で、エディタにフォーカスがあることを確認します。

2. 選択を拡大する位置にカーソルを置くか、またはコードの一部を選択します。

3. メイン・メニューから「ソース」→「選択の拡大」を選択するか、[Ctrl]と[Shift]を押しながら[=]キーを押します。
前に選択した要素または前にカーソルを置いた要素を含む最小論理単位が含まれるように、選択が拡大されます。

このオプションを連続して適用すると、適用するたびに、開始位置に基づいて、Javaの階層で上にある次の論理ステップが含まれるように、選択が拡大されます。このことは、ファイル全体が選択されるまで行われます。たとえば、メソッド名、修飾されたメソッド・コール、割当て、定義などです。

「選択の縮小」オプションを使用すると(または、[Ctrl]および[Shift]を押しながら[-]を押すと)、選択したコードは同様に連続して縮小されます。

18.3.12 コーディング構造でコードを囲む方法

Javaソース・エディタでは、コーディング構造を使用して簡単にJavaの文およびブロックを囲むことができます。

コーディング構造でコード・ブロックを囲むには、次のようにします。

1. エディタでファイルを開いた状態で、文内で右クリックするか、またはコード・ブロックを選択してから、「囲む」を選択します。または、ソース・エディタのツールバーの「囲む」({ }) アイコンをクリックします。

注意:

このアイコンは、選択したコードが「コードを囲む」機能を適用できる有効なコード・ブロックである場合にのみ有効です。

2. 「コードを囲む」ダイアログで、コーディング構造を選択します。

18.3.13 import文の追加

Javaソース・エディタでの作業中に、必要なimport文を追加できます。ソース・エディタでの入力中に、まだインポートされていないクラスへの参照を導入すると、そのクラスの下に波線が表示されます。インポートが必要であることを示すポップアップが開き、クラスの完全修飾名が表示されます。クラスへの未解決の参照の完全一致を1つのみ検出できた場合は、JDeveloperによってインポートが自動的に追加されます。

クラスへの未解決の参照の完全一致を1つのみ検出できた場合は、JDeveloperによってインポートが自動的に追加されます。Import Assistanceによって一致の可能性が複数検出された場合は、クラス・パスからすべての一致の可能性を表示するポップアップ・リストが表示されます。ユーザーは適切なインポートを選択でき、そのimport文が自動的に追加されます。

Import Assistanceのポップアップは、[Alt]を押しながら[Enter]を押すことで、いつでもトリガーできます。

左余白をベースとするコード・アシスタンスを使用して、import文を追加できます。エディタによってクラスが認識されない場合は、行がハイライト表示されたときに電球が左余白に表示され、様々なインポート・オプションが表示されます。

Import Assistanceを構成するか無効にするには、Javaソース・エディタでimport文オプションを設定できます。

18.3.14 import文の編成方法

Javaソース・エディタでは、簡単にimport文を編成できます。「設定」ダイアログで、import文を編成するためのオプションを必要に応じて設定します。次のオプションがあります。

- パッケージ名およびクラス名でアルファベット順にimport文をソートおよびグループ化します。

- パッケージ用のtype-import-on-demand文を個々のクラス用のsingle-type-import文に置き換えて、インポートを縮小します。

- ある共通パッケージのクラスの2つ以上のsingle-type-import文をそのパッケージの1つのtype-import-on-demand文に置き換えて、インポートを拡大します。

- 参照されないクラスに対するimport文を削除します。

インポート編成オプションを設定または無効にできます。詳細は、第17.4.3項「Javaソース・エディタの自動Import Assistanceの有効化方法」を参照してください。

ソース・ファイルでimport文を編成するには、次のようにします。

エディタでファイルを開いた状態で、右クリックして「インポートの編成」を選択します。

18.4 ドキュメント・コメントの追加

JDeveloperの編集コマンドを使用して、ドキュメント・コメントを作成および保守できます。

18.4.1 ドキュメント・コメントの追加方法

Javaソース・エディタでは、ソース・ファイルにドキュメント・コメントを追加できます。

ソース・ファイルにドキュメント・コメントを追加するには、次のようにします。

- コメントを追加するクラス宣言、フィールドまたはメソッドのすぐ上にカーソルを置き、ドキュメント・コメントの開始(/**)を入力してから[Enter]を押します。

- 「構造」ウィンドウでコード要素を選択した状態で右クリックし、「Javadocコメントの追加」を選択します。

ドキュメント・コメント用のテンプレートがファイルに挿入されます。このテンプレートにコード要素の情報を追加してください。

18.4.2 ドキュメント・コメントの編集方法

Javaコード・エディタでは、ドキュメント・コメント・タグの使用をカスタマイズできます。カスタム・タグを定義したり、ドキュメント・コメントの作成時にどのタグを自動的に含めるかを選択できます。ここで選択した内容は、すべてのプロジェクトに適用されます。

カスタム・タグを定義するには、次のようにします。

1. メイン・メニューから、「ツール」→「プリファレンス」を選択します。

2. 「プリファレンス」ダイアログで、「コード・エディタ」→「Java」→「Javadoc」ページを選択します。

3. 「追加」をクリックします。デフォルト名newのタグがリストに追加されます。

4. 「タグのプロパティ」ボックスで、タグの名前を変更し、その他のプロパティを設定します。

5. 終わったら、「OK」をクリックします。

18.4.3 ドキュメント・コメントの更新方法

Javaソース・エディタでは、ドキュメント・コメントを更新できます。

ソース・ファイルのドキュメント・コメントを更新するには、次のようにします。

1. 構造ウィンドウで、コメントを更新する要素の上にカーソルを置きます。

2. 右クリックして、「Javadocコメントの追加」を選択します。
ドキュメント・コメントに対するタグが追加または削除されて、要素に加えた変更が反映されます。新しいタグに関する説明を追加します。

18.4.4 ドキュメント・コメントの監査方法

ソース・ファイルに記載されているドキュメント・コメントを検証できます。監査を実施すると、書式設定エラー、欠落しているタグまたは余分なタグが報告されます。

ソース・ファイルのドキュメント・コメントをチェックするには、次のようにします。

1. アプリケーション・ナビゲータで、チェックするファイルを選択します。

2. メイン・メニューから「ビルド」→「コード監査 <ファイル名>」を選択します。

3. 「コード監査」ダイアログで、「プロファイル」ドロップダウン・リストから「Javadocルール」を選択します。

4. 検索または無視するエラーのタイプを選択できるようにコード監査を設定する場合には、「編集」をクリックします。
「監査プロファイル」ダイアログが開きます。

5. 「実行」をクリックします。
コード監査の結果は、ログ・ウィンドウに表示されます。

18.5 Javaソース・エディタのJavadocオプションのカスタマイズ方法

新しいJavadocタグを追加して、既存のタグの属性をカスタマイズできます。カスタム・タグを作成する場合、タグをコード要素に関連付けて、必須かどうかを定義し、デフォルト値を割り当てて、タグ・リストでの順序を指定できます。

Javaソース・エディタのJavadocのオプションをカスタマイズするには、次のようにします。

1. メイン・メニューから、「ツール」→「プリファレンス」を選択します。

2. 「設定」ダイアログで、「コード・エディタ」ノードを開きます。

3. 「Java」ノードを開いて、「Javadoc」を選択します。

4. 「Javadoc」ページで、「タグ」リストの項目を選択すると、項目の属性が右側に表示されます。太字で表示されるタグは、カスタマイズ可能です。

5. タグを追加するには、「追加」をクリックして、情報を入力します。

6. 「タグ」リスト内でのタグの位置を変更するには、タグを選択して、上矢印ボタンまたは下矢印ボタンをクリックします。
マウスを使用せずにこの操作を実行するには、[Tab]キーでボタンに移動し、[Space]キーを押します。

7. タグを削除するには、「タグ」リストからタグを選択して、「削除」をクリックします。

8. 終わったら、「OK」をクリックします。

18.5.1 ドキュメント・コメントの追加方法

Javaソース・エディタでは、ソース・ファイルにドキュメント・コメントを追加できます。

ソース・ファイルにドキュメント・コメントを追加するには、次のようにします。

- コメントを追加するクラス宣言、フィールドまたはメソッドのすぐ上にカーソルを置き、ドキュメント・コメントの開始(/**)を入力してから[Enter]を押します。

- 「構造」ウィンドウでコード要素を選択した状態で右クリックし、「Javadocコメントの追加」を選択します。

ドキュメント・コメント用のテンプレートがファイルに挿入されます。このテンプレートにコード要素の情報を追加してください。

18.5.2 プロジェクトのJavadocプロパティの設定方法

作成するすべてのプロジェクトは、JDeveloperプロジェクトのデフォルト設定か、またはワークスペース共通ですべてのプロジェクトに対してユーザーが指定した設定になります。これらのデフォルト設定は、プロジェクトごとに置き換えることもできます。これらのプロパティの設定方法はどちらの場合でも同じであり、情報の場所および適用対象のみが異なります。

個々のプロジェクトのJavadocプロパティを設定するには、次のようにします。

1. アプリケーション・ナビゲータでプロジェクトを選択します。

2. メイン・メニューから、「アプリケーション」→「プロジェクト・プロパティ」を選択するか、右クリックして「プロジェクト・プロパティ」を選択します。
「プロジェクト・プロパティ」ダイアログ・ボックスが表示されます。

3. 必要に応じて、プロジェクト・プロパティを変更します。

4. 完了後、「OK」をクリックして「プロジェクト・プロパティ」ダイアログを閉じます。

18.5.3 クイックJavadocを使用してコード要素のJavadocを表示する方法

Javaソース・エディタでの作業中、クイックJavadoc機能を使用すると、コード要素(クラス、インタフェースまたは個々のメンバー)のJavadoc生成ドキュメントに簡単にアクセスできます。

クイックJavadoc機能は、選択したエンティティをソースパスで参照し、ポップアップ・ウィンドウで入力されたJavadocコメントを表示します。コード要素に対してJavadocコメントが存在しない場合には、空のJavadocコメントが表示されます。次のいずれかが満たされる場合には、ソース・コードを使用できます。

コード要素のJavadocを表示するには、次のようにします。

1. コード要素を選択します。

2. メイン・メニューから、「ソース」→「クイックJavadoc」を選択するか、エディタ内で右クリックして「クイックJavadoc」を選択します。
その要素のドキュメントを表示するポップアップ・ウィンドウが開きます。そのウィンドウ以外の任意の場所をクリックしてウィンドウを閉じます。

クイックJavadoc機能は、選択したソース・コードが次の条件を満たしている場合に使用できます。

- このプロジェクトのソースパスにある。

- 現在のプロジェクトが依存しているプロジェクトのソースパスにある。

- このプロジェクトに割り当てられたライブラリに使用できる。

- 使用中のJDKの一部である。

18.5.4 ドキュメント・コメントのプレビュー方法

単一のソース要素のJavadocを表示するときと同じ方法で、ソース・ファイルのドキュメント・コメントをプレビューできます。

特定のクラス、メンバーまたはメソッド・コールのドキュメント・コメントを表示するには、次のようにします。

1. コード要素の名前を選択します。

2. 右クリックして「クイックJavadoc」を選択します。
指定した要素のJavadocのみを含むポップアップ・ウィンドウが表示されます。ブラウザと同じように、このウィンドウから別のJavadocにリンクで移動できます。

18.6 Javaプロジェクトのビルド

JDeveloperには、プロジェクトを構築するための次の機能が用意されています。

- 「メイク」/「再ビルド」オプション

- Ant

- Apache Maven

18.6.1 「メイク」コマンドおよび「再ビルド」コマンドによるビルド

「メイク」コマンドおよび「再ビルド」コマンドは、JDeveloperでプロジェクトをコンパイルするための標準操作を実行します。

- 「プロジェクトのメイク」では、プロジェクトが依存しているすべてのプロジェクトを(再帰的に)メイクしてから、プロジェクトをメイクします。

- 「プロジェクトのメイク」では、プロジェクトをメイクしますが、依存しているプロジェクトはメイクしません。

- 「プロジェクトの再ビルド」では、プロジェクトが依存しているすべてのプロジェクトを(再帰的に)再ビルドしてから、プロジェクトを再ビルドします。

- 「プロジェクトのみ再ビルド」では、プロジェクトを再ビルドしますが、依存しているプロジェクトは再ビルドしません。

18.6.1.1 メイクによるコンパイル

「メイク」操作によって、最後にコンパイルされてから変更されたソース・ファイルや依存性が変更されたソース・ファイルをコンパイルします。一方、「再ビルド」操作の場合、ソース・ファイルを無条件にコンパイルします。「メイク」は、個々のソース・ファイル、作業セット、またはパッケージ、プロジェクトおよびワークスペースなどのコンテナに対してメイクを起動できます。

より選択的にコンパイルする場合、Antビルドファイルをプロジェクトに追加したり、追加ターゲットを定義できます。また、Antを実行してこれらのターゲットを作成できます。

現在進行中のコンパイルを取り消すには、メイン・ツールバーの「ビルドの取消」アイコンをクリックします。このアイコンをクリックすると、「コンパイラ - ログ」ウィンドウの最上部の行にエラー・メッセージが出力されます。

ソース・ファイルを作成するには、次のようにします。

- ファイルのソース・エディタ・ウィンドウで、右クリックして「メイク」を選択します。

- ナビゲータで1つ以上のプロジェクトを選択し、ツールバーで「メイク」をクリックします。

- ナビゲータで1つ以上のプロジェクトを選択し、「ビルド」メニューから「メイク」の項目を選択します。

- ナビゲータで1つ以上のプロジェクトを選択し、右クリックして「メイク」を選択します。

18.6.1.2 再ビルドによるコンパイル

「再ビルド」操作によって、プロジェクトまたはワークスペース内のすべてのソース・ファイルをコンパイルします。変更されたソース・ファイルまたは依存性が変更されたソース・ファイルのみを再コンパイルする「メイク」操作とは異なり、「再ビルド」操作には、条件はありません。

より選択的にコンパイルする場合、Antビルドファイルをプロジェクトに追加したり、追加ターゲットを定義できます。また、Antを実行してこれらのターゲットを作成できます。

現在進行中のコンパイルを取り消すには、メイン・ツールバーの「ビルドの取消」アイコンをクリックします。このアイコンをクリックすると、「コンパイラ - ログ」ウィンドウの最上部の行にエラー・メッセージが出力されます。

ソース・ファイルを再構築するには、次のようにします。

- ナビゲータでソース・ファイルを1つ以上選択し、右クリックして、「再ビルド」(1つのファイルの場合)または「選択されたものを再ビルド」(複数のファイルの場合)をクリックします。

- ナビゲータで1つ以上のプロジェクトまたはワークスペースを選択し、ツールバーで「再ビルド」をクリックします。

- ナビゲータで1つ以上のプロジェクトまたはワークスペースを選択し、「ビルド」メニューから「再ビルド」の項目を選択します。

- ナビゲータで1つ以上のプロジェクトまたはワークスペースを選択し、右クリックして「再ビルド」を選択します。

18.6.1.3 依存性チェックの理解

JDeveloperでは、ビルド時に依存性を分析することにより、コンパイルを高速かつ完全に行うことができます。依存性チェックにより、相互に依存するソース・ファイルの不要なコンパイルを減らし、編集およびコンパイルのサイクルを高速化できます。

JDeveloperを使用してコンパイルを行う際に、「メイク」を使用してコンパイルする場合は、常に依存性チェックが実行されます。「メイク」では、JDeveloper内で自動的に作成される依存性ファイルが使用されます。

コマンドラインからコンパイルする場合は、次のパラメータを指定して依存性ファイルを作成または使用します。

javac -make <makedepfile>

18.6.1.4 コンパイルするプロジェクトの設定方法

「プロジェクト・プロパティ」でオプションを設定すると、プロジェクトごとに、Javaコンパイラを構成できます。たとえば、コンパイラで次のようなメッセージが表示されないようにしたい場合があります。

例18-3 コンパイラ・メッセージ

Note: Some input files use unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.

プロジェクト・プロパティをコンパイル用に設定するには、次のようにします。

1. ナビゲータでプロジェクトを右クリックし、ポップアップ・メニューから「プロジェクト・プロパティ」を選択します。
アプリケーション・ナビゲータで、プロジェクト・ノードをダブルクリックすることもできます。

2. 「プロジェクト・プロパティ」ダイアログで、「コンパイラ」ノードを開きます。

3. Javacノードを開きます。

4. オプションで、「警告」ノードを開きます。
オプションとしてまずここをクリックすると、どのオプションがデフォルトでオンになるかを確認できます。たとえば、「-Xlint:all」がオンになっている場合、すべての-Xlint警告がオンになります。

図18-0で示されている「-Xlint:unchecked」メッセージを表示しないようにするには、「プロジェクト・プロパティ」ダイアログの個別のメッセージをオフ・セクションに進みます。これで、特定のXlintメッセージのみ表示をオフにし、他のメッセージはデフォルトで表示するようにできます。

5. オプションで、個別のメッセージをオフ・ノードを開きます。

6. 「-Xlint Unchecked」チェック・ボックスを選択します。

7. すべてのダイアログを閉じて再コンパイルします。

注意:

コンパイル前にすべてのプロジェクト・ファイルを自動的に保存するには、「プリファレンス」ダイアログの「環境」ページで指定します。

18.6.1.5 コンパイル用のネイティブ・エンコーディングの指定方法

コンパイラによるマルチバイト文字の解釈方法を制御するコード体系を指定できます。指定しない場合、プラットフォームのデフォルトのネイティブ・エンコーディング・コンバータが使用されます。

テキスト文字は、様々なコード体系を使用して表現されます。これらは、Windows環境ではコード・ページ、Javaではネイティブ・エンコーディングと呼ばれます。データをあるコード体系から別のコード体系に移動する場合、変換が必要です。各体系の拡張キャラクタ・セットは異なる場合があるので、変換によってデータが失われないようにする必要があります。

JDeveloperソース・エディタを含むほとんどのテキスト・エディタでは、動作しているプラットフォームのネイティブ・エンコーディングが使用されます。たとえば、日本語のWindowsではシフトJISが使用されます。ソース・コードがシフトJISを使用してエンコードされている場合、これを米語のWindows環境でコンパイルするには、ソースが正しく読み込まれるようにコンパイラに対してシフトJISエンコーディングを指定する必要があります。

JDeveloperは、現在インストールされているJ2SEに含まれている文字コード体系をサポートしています。

エンコーディング・オプションを設定するには、次のいずれかを実行します。

1. JDeveloperで、「アプリケーション」→「プロジェクト・プロパティ」を選択します。「プロジェクト・プロパティ」ダイアログで、「コンパイラ」ノードを選択します。

2. コマンドラインで、javacコマンドと-encodingオプションを使用し、その後ろにエンコーディング名を入力します。

3. 次のいずれかの方法で、エンコーディング名を選択します。

- 「文字コード」ドロップダウン・リストから名前を選択します。

- 使用環境のデフォルト・エンコーディングを使用する場合は、「文字コード」ドロップダウン・リストから「default」を選択します。

Java SDKでサポートされるエンコーディングの一覧は、次を参照してください。
http://download.oracle.com/javase/6/docs/technotes/guides/intl/encoding.doc.html

18.6.2 アプリケーションおよびプロジェクトのコンパイル

JDeveloperは、Javaコンパイラ(Javac)を使用してJavaソース・コード(.javaファイル)をJavaバイトコード(.classファイル)にコンパイルします。生成されるバイトコードは、Java Virtual Machine (JVM)のマシン・コードです。Javaソース・ファイルのコンパイルにより、各クラス宣言およびインタフェース宣言に対して個別のクラス・ファイルが生成されます。生成されたJavaプログラムを特定のプラットフォームで実行すると、そのJVMによってclassファイルに含まれるバイトコードが実行されます。

Javacでは、指定されたJavaファイルの他に、対応するクラス・ファイルのないインポート・ファイルがコンパイルされます。(-makeオプションを使用して)依存性チェックを指定しないかぎり、すべてのターゲットJavaファイルがコンパイルされます。詳細は、第18.6.1.3項「依存性チェックの理解」を参照してください。

JDeveloper内部で操作する場合、コンパイラとしてJavacが使用されます。コンパイラのオプションは、「プロジェクト・プロパティ」→「コンパイラ」→「Option」で設定できます。

次のコマンドライン・オプションがサポートされています。

-classpath path

クラスの検索に使用するパス。デフォルトのCLASSPATHまたはCLASSPATH環境変数より優先されます。ディレクトリはセミコロンで区切ります。たとえば、myclassesディレクトリ内のクラスfoo.javaを検索するには、次のように入力します。

javac -classpath c:\mydir;c:\jdeveloper\myclasses foo.java (Windows)
javac -classpath ~/mydir;/usr/jdeveloper/myclasses foo.java (UNIX)

Java 2プラットフォームを使用している場合(デフォルトのターゲットはJDK 1.6)、CLASSPATHの前にSYSTEM CLASSPATHが追加されます。前述の例では、SYSTEMCLASSPATHは次のようになります。

Windows

%JAVAHOME%\jre\lib\rt.jar; %JAVAHOME%\jre\lib\i18n.jar; %JAVAHOME%\jre\lib\sunrsasign.jar;
%JAVAHOME%\jre\lib\jsse.jar; %JAVAHOME%\jre\lib\jce.jar; %JAVAHOME%\jre\lib\charsets.jar;
%JAVAHOME%\jre\lib\classes; c:\mydir; c:\jdeveloper\myclasses

UNIX

$JAVA_HOME/lib/rt.jar;
$JAVA_HOME/lib/i18n.jar;
$JAVA_HOME/lib/sunrsasign.jar;
$JAVA_HOME/lib/jsse.jar;
$JAVA_HOME/lib/jce.jar;
$JAVA_HOME/lib/charsets.jar;
$JAVA_HOME/lib/classes;
~/mydir;
/usr/jdeveloper/myclasses

JAVAHOMEが定義されていない場合は、jdev.conf内のSetJavaHomeで定義されたJDKが使用されます。JAVAHOMEが存在しない場合は、<jdev_install>/jdeveloper/jdk内のJDK (存在する場合)が使用されます。

ターゲットJDKが1.6 (-target 1.6を使用)の場合、CLASSPATHにSYSTEM CLASSPATHが追加されます。前述の例では、次のようになります。

Windows

c:\mydir;
c:\jdeveloper\myclasses
%JAVAHOME%\lib\classes.zip
%JAVAHOME%\classes

UNIX

~/mydir;
~/usr/jdeveloper/myclasses
$JAVAHOME/lib/classes.zip;
$JAVAHOME/classes

SYSTEMCLASSPATHを変更するには、-sysclasspathオプションまたは-bootclasspathオプションを使用します。

-sourcepath pathlist

必要なJavaファイルの検索に使用するパスのセミコロンで区切られたリスト。

-sysclasspath pathlist

システム・クラス・ファイルの検索に使用するパスのセミコロンで区切られたリスト。

-bootclasspath pathlist

-sysclasspathと同等。

-d outdir

クラス(宛先)ファイル階層のルート・ディレクトリ。次に例を示します。

javac -d C:\JDeveloper\myclasses JavaBean.java (Windows)

javac -d ~/usr/jdeveloper/myclasses JavaBean.java (Unix)

この場合、JavaBean.javaに、MyPackageというパッケージ文が含まれていると仮定すると、JavaBean.javaソース・ファイルで定義されたクラスのclassファイルは、C:¥JDeveloper¥myclasses¥MyPackageディレクトリに保存されます。

Javaファイルは、SOURCEPATHから読み取られ、クラス・ファイルはCLASSPATHディレクトリに書き込まれます。宛先ディレクトリは、CLASSPATHに含まれる場合もあります。デフォルトの宛先は、ソース・ファイルのパッケージ構造と一致し、ソースのルート・ディレクトリから始まります。

-deprecation:self

推奨されていないタイプ、フィールドおよびメソッドがクラスに定義されている場合に、それらの使用方法を検出します。

-encoding name

ネイティブ・エンコーディング名(またはコード・ページ名)を指定して、コンパイラがASCIIキャラクタ・セット以外の文字を解釈する方法を制御できます。デフォルトでは、プラットフォームのデフォルトのネイティブ・エンコーディング・コンバータが使用されます。詳細は、第18.6.1.5項「コンパイル用のネイティブ・エンコーディングの指定方法」を参照してください。

たとえば、次のように指定します。

javac -encoding SJIS JavaBean.java

この場合、JavaBean.java、およびクラス・ファイルのない直接インポートしたJavaファイルがコンパイルされます。ソース・ファイルの文字は、日本語の場合すべてシフトJISキャラクタ・セットとして解釈されます。

-endorseddirs pathlist

Sun社が提供するデフォルト推奨規格のJDKクラスjava.endorsed.dirsのデフォルト値をオーバーライドできます。pathlistでは、パス名をセミコロンで区切ります。

-extdirs pathlist

コンパイラが拡張機能を検索する場所をオーバーライドするパスのセミコロンで区切られたリスト。

-g

クラス・ファイルにデバッグ情報を生成します。クラスのデバッグ中にローカル変数などの情報にアクセスする場合に必要です。

-g:none

クラス・ファイルにデバッグ情報を生成しないように指定します。

-g:source,lines,vars

クラス・ファイルに選択的なデバッグ情報を生成します。

-help
-?

コンパイラのオプションを表示します。

-make depfilename

依存性チェックに指定の依存性ファイルを使用します。指定したファイルが見つからない場合は作成されます。

-msglimit:#

出力に書き込まれるエラーおよび警告の最大数です。無制限にするには、-1を使用します。デフォルトは1000です。

-noquiet

コンパイルされているファイルの名前を表示します。

-nowarn:<id>

引数を付けて指定すると、ユーザーが入力した番号に関連付けられている警告を抑止します。

-nowarn:486

未使用のimport文を抑止します。

-nowarn:487

部分使用のimport文を抑止します。

-nowarnと-warnを次のように組み合せることもできます。

-nowarn -warn:487

警告487のみ出力します。

-nowrite

クラス・ファイルを出力せずにプログラムをコンパイルします。

-p packagename(s)

指定したパッケージ内で見つかったソース・ファイルをすべてコンパイルします。

-rebuild

依存性に関係なく、指定されたファイルを再ビルドします。-makeオプションが使用されていないかぎり、再ビルドになります。

-recurse [level]

コンパイラに、ワイルド・カードを含むファイル名指定を展開する際、ディレクトリ内を再帰検索するように指定します。

次に例を示します。

javac -recurse foo/*java

これは、次のように入力することと同じです。

javac foo/bar/*java foo/lish/*java foo/lish/lee/*java

[level]オプションは、最大再帰レベルを指定するオプションの整数の引数です。

次に例を示します。

javac -recurse 1 foo/*java

これは、次のように入力することと同じです。

javac foo/bar/*java foo/lish/*java

foo/lish/lee/*javaは、[level]変数の範囲内にありません。

-s sourcefile

指定されたソース・ファイル名をコンパイルします。

-source {1.1|1.2|1.3|1.4|1.5|1.6}

デフォルトでは、ソースはJ2SE 1.5と互換性があり、ソース・コードでJ2SEアサーションが有効になります。ソースの互換性レベルをJ2SE 1.4にするには、-source 1.4を入力します。

-strictfp

中間浮動小数点計算に拡張精度を使用しないように指定します。

-target [1.1|1.2|1.3|1.4|1.5|1.6]

ターゲットが1.1に設定されている場合、コンパイラによりJSDK 1.1用にコンパイルされます。ターゲットが1.2に設定されている場合、コンパイラによりJava2 (JSDK 1.2)用にコンパイルされます。ターゲットが1.3に設定されている場合、Java 2 v1.3 (J2SE 1.3)用にコンパイルされます。ターゲットが1.4に設定されている場合、Java 2 v1.4 (J2SE 1.4)用にコンパイルされます。

デフォルトのターゲットは、Sun社のjavacのデフォルトと一致するJDK 6 (J2SE 1.6)です。

-verbose

どのクラス・ファイルがCLASSPATHのどこからロードされたかなど、コンパイルに関する詳細な情報を提供します。次の情報を取得できます。

- コンパイルされているソース・ファイル

- ロードされているクラス

- ロードされているクラス

-verbosepath

コンパイラで使用されるSOURCE PATHとCLASSPATHの値を表示します。

-warn:<id>

警告を指定できます。抑止する警告と組み合せて、任意の数の警告を指定できます。引数なしで使用すると、すべての警告が表示されます。有用な警告としては、次の2つがあります。

-warn:486

未使用のimport文を表示します。

-warn:487

部分使用のimport文を表示します。

-warningtag tag[, tag]

javadocのコメント・タグのリスト。リストされたタグがソースのコメント内に出現した場合に、警告を出力します。タグ名はカンマを使用して区切ります。

18.6.2.1 コマンドラインからのコンパイル

アプリケーション(ワークスペース)とプロジェクトをコンパイルするには2つの方法があります。

- JDeveloper内部で、アプリケーションとプロジェクトのノードに対してビルドおよびコンパイルの各オプションを使用します。

- コマンドラインから、ojmakeおよびojdeployを使用します。

どちらもjdeveloper/jdev/binディレクトリにあります。

- ojmakeは、デプロイメントを伴わないアプリケーションとプロジェクト、たとえばデプロイメント・プロファイルが定義されていないプロジェクトなどに対して使用できます。

- ojdeployは、すべてのアプリケーションおよびプロジェクト(デプロイメントを伴うものを含む)のビルドを扱うことができます。これは、ojmakeのスーパーセットと考えられます。

ツールのヘルプは、コマンドラインでojmakeまたはojdeployを実行するだけで表示できます。ヘルプはコンソールに表示されます。

注意:

コマンドラインから操作する場合にはJavacを使用してJavaファイルをコンパイルできますが、Javacを手動で実行してアプリケーションとプロジェクトをビルドすることはできません。ojmakeまたはojdeployを使用する必要があります。

18.6.3 アプリケーションおよびプロジェクトのクリーン

「クリーン」コマンドを使用して、アプリケーションまたはプロジェクトのクリーンを実行できます。このコマンドを実行すると、プロジェクトまたはアプリケーションの出力ディレクトリおよびデプロイ・ディレクトリがクリーンされます。

「クリーン」コマンドをアプリケーションまたはプロジェクトに対して実行すると、クラス・ファイル、コピーしたリソース・ファイル、およびデプロイしたファイルのすべてが削除されます。このことを実行すると、出力ディレクトリおよびデプロイ・ディレクトリに古いファイルが確実に残らないようにできます。たとえば、名前変更、移動または削除を行ったクラスと、このようなクラスに属する古いクラス・ファイルは削除する必要があります。同様に、名前変更、移動または削除を行ったリソースやデプロイと、出力ディレクトリまたはデプロイ・ディレクトリに残っているそれらの古いコピーも削除する必要があります。クリーンを実行すると、以前のビルドのアーチファクトを削除し、新規に操作を開始できます。

「クリーン」コマンドはアプリケーションまたはプロジェクトに対して実行できます。

アプリケーションのクリーンを実行すると、次の処理が行われます。

- アプリケーションを構成する各プロジェクトの出力ディレクトリおよびデプロイ・ディレクトリの内容が削除されます。

- アプリケーションのデプロイ・ディレクトリの内容が削除されます。

アプリケーションのデプロイ・ディレクトリの内容が削除されます。

「クリーン」コマンドを正常に実行するには、次の条件が満たされている必要があります。

- クリーンするプロジェクトの出力ディレクトリ、またはクリーンするアプリケーションの各プロジェクトの出力ディレクトリが指定されていること

- 出力場所がファイルではなく、ディレクトリとして指定されていること

18.6.3.1 「クリーン」コマンドの実行方法

「クリーン」コマンドを使用すると、新しいビルド・プロセスを開始するために、以前のビルドから残されたアーチファクトを削除できます。

プロジェクトをクリーンするには、次のようにします。

1. アプリケーション・ナビゲータで、クリーンするプロジェクトを選択します。

2. 「ビルド」メニューで、「プロジェクトのクリーン」を選択します。

3. 「プロジェクトをクリーン中」ダイアログで、「はい」をクリックします。

アプリケーションおよびそのすべてのプロジェクトをクリーンするには、次のようにします。

1. アプリケーション・ナビゲータで、クリーンするアプリケーションを選択します。

2. 「ビルド」メニューで、「すべてクリーン」を選択します。

3. 「アプリケーションをクリーン中」ダイアログで、「はい」をクリックします。

18.6.4 Javadocの実行方法

「設定」ダイアログのJavadocページでプロジェクトに対して設定したプロパティに基づいて、APIリファレンスおよびその他のドキュメントをナビゲータから直接生成できます。ドキュメントは、ファイルのコードおよびドキュメント・コメントからjavadocユーティリティを使用して生成されます。

パッケージ、ファイルまたはプロジェクトに対してJavadocを実行するには、次のようにします。

1. ナビゲータで適切なノードを選択します。

2. メイン・メニューから「ビルド」、「Javadoc」を選択します。
Javadocがバックグラウンドで生成されます。ログ・ウィンドウに、情報および結果が表示されます。ログ・ウィンドウのリンクを使用して、index.htmlファイルをプロジェクトに追加できます。

18.6.5 Apache Antによるビルド

Apache Antは、Unixのmakeユーティリティの機能と似たビルド・ツールです。Antは、XML形式のビルドファイルを使用して、アプリケーションとそのコンポーネントを構築するためのプロセスを記述および制御します。Antはクロス・プラットフォームのコンパイルをサポートしており、簡単に拡張できます。Apache Antは、Apache Software Foundationの製品です。詳細は、Webサイト(http://ant.apache.org/index.html)を参照してください。

Antビルドファイルでは、ターゲットの定義とターゲット間の依存性の定義を行います。ターゲットは、プログラミングされたタスクのシーケンスです。Antを実行してターゲットを作成する場合、ターゲットが依存する他のターゲットを最初に作成してから、ターゲット独自のタスクを実行します。

AntはJDeveloperに統合されています。プロジェクト用のAntビルドファイルを、追加または作成できます。Antビルドファイルは、XMLソース・エディタを使用して編集できます。ユーザー・インタフェースからAntを起動することによって、ビルドファイルに定義されたターゲットを作成できます。

ビルドファイルのターゲットに対するAntの実行方法

- プロジェクト・ビルドファイル内のターゲットに対して実行する場合。プロジェクトには複数のAntビルドファイルを含めることができますが、プロジェクトのビルドファイルとして指定できるのは1つのみです。「プロジェクトでAntを実行」ツールバー・アイコンおよびドロップダウン・メニューから、プロジェクトのビルドファイルのターゲットに簡単にアクセスできるように構成できます。

- Antビルドファイルの編集時に「構造」ペインから実行する場合。XMLソース・エディタでAntビルドファイルを開くと、そのターゲットが構造ペインに表示されます。これらを選択して実行できます。

- 独自に定義した外部ツールから実行する場合。「外部ツールの作成」ウィザードを使用して、Antターゲットを作成するメニュー項目およびツールバー・ボタンを定義します。

18.6.5.1 プロジェクト・ビルドファイル・ターゲットに対するAntの実行

AntをJDeveloperのメイン・メニューおよびツールバーから起動し、現在のプロジェクトのプロジェクト・ビルドファイルに定義されているターゲットを構築できます。

プロジェクトには複数のAntビルドファイルを含めることができ、これらの1つをプロジェクトのビルドファイルとして指定できます。「プロジェクトでAntを実行」ツールバー・ボタンおよびドロップダウン・メニューから、プロジェクトのビルドファイルのターゲットに簡単にアクセスできるように構成できます。

プロジェクトのビルドファイルを選択して構成するには、Antプロジェクトのプロパティ・ページに移動します(「アプリケーション」→「プロジェクト・プロパティ」を選択)。

プロジェクト・ビルドファイルのターゲットに対してAntを実行するには、次のようにします。

- ツールバーで、「プロジェクトでAntを実行」をクリックします。
Antによって、プロジェクトに指定されているデフォルトのターゲットが作成されます。

- メイン・メニューから「ビルド」→「プロジェクトでAntを実行」を選択します。
Antによって、プロジェクトに指定されているデフォルトのターゲットが作成されます。

- ツールバーの「プロジェクトでAntを実行」ドロップダウン・メニューからターゲットを選択します。

18.6.5.2 IDEでのAntツールの使用

Antログ・ウィンドウには、Antビルドに固有のメッセージが表示されます。Antログ・ウィンドウには次のような特徴があります。

- このウィンドウには、1つ以上のターゲットのビルドのためAntを起動することによって生成されたメッセージが表示されます。

- Antログ・ウィンドウでは、Antタスクによって生成されたメッセージが、Antビルドファイル内のこれらのタスクの定義にリンクされます。コンパイル・エラーおよび警告は、これらの生成元のソース・コードにリンクされます。

- カラー・コーディングは、メッセージの出力レベルを示します。

18.6.6 Apache Mavenによるビルドと実行

Apache Mavenは、ソフトウェア・プロジェクトの管理と検査のためのツールです。Mavenはプロジェクトのビルド、レポート、中心的な情報からのドキュメンテーション、プロジェクト・オブジェクト・モデル(POM)を管理できます。プロジェクトのビルドにはこのPOMと、Mavenによって全プロジェクトで共有される一連のプラグインを使用するため、統一的なビルド・システムとなります。Mavenをプラグインで拡張すれば、レポートやプロセスのビルドに様々な開発ツールを使用できます。Mavenの詳細は、http://maven.apache.org/index.htmlを参照してください。

18.6.6.1 プロジェクト・オブジェクト・モデルの理解

プロジェクト・オブジェクト・モデル(POM)は、Mavenがプロジェクトをビルドする際に使用するプロジェクトと構成詳細に関する情報を含むXMLファイルです。プロジェクトのビルドに必要なほとんどの情報が、このXMLファイルに含まれています。POMで指定できる構成情報としては、プロジェクトの依存性、プラグイン、実行可能なゴール、ビルド・プロファイルなどがあります。

Mavenプロジェクト・オブジェクト・モデルの詳細は、次のサイトを参照してください。http://maven.apache.org/index.html

18.6.6.2 プロジェクト・オブジェクト・モデルの作成方法

「新規ギャラリ」のオプションを使用して次の操作を実行します。

- 新規のApache Maven POMを作成

- アプリケーションのPOMを作成

- プロジェクトからMaven POMを生成

POMを作成するには、次のようにします。

1. 「ファイル」→「新規」を選択し、「新規ギャラリ」を開きます。

2. 「カテゴリ」リストで、「一般」を開いて「Maven」を選択します。

3. POMを作成するオプションを選択し、「OK」をクリックします。

18.6.6.3 プロジェクトからMaven POMを作成する方法

アプリケーション・ナビゲータで選択した既存のプロジェクトに基づいて、Maven POMを作成できます。複数のソース・ディレクトリについてビルド要素が追加されます。プロジェクトに対して指定したJavaコンパイラに関する設定が追加されます。

プロジェクトからMaven POMを作成するには、次のようにします。

1. アプリケーション・ナビゲータで、POMを作成する元のプロジェクトを選択します。

2. 「ファイル」→「新規」を選択し、「新規ギャラリ」を開きます。

3. 「カテゴリ」リストで、「一般」を開いて「Maven」を選択します。

4. 「プロジェクトからMaven POMを生成」を選択します。

5. 「OK」をクリックします。

18.6.6.4 アプリケーションからプロジェクト・オブジェクト・モデルを作成する方法

選択したアプリケーションに対して新規のプロジェクト・オブジェクト・モデル(POM)を生成し、オプションでアプリケーションの各プロジェクトに対する新規POMを生成します。これによって、アプリケーションの最上位POMと、プロジェクトごとのPOMが生成されます。

アプリケーションからPOMを生成するには、次のようにします。

1. 「ファイル」、「新規」を選択し、「新規ギャラリ」を開きます。

2. 「カテゴリ」リストで、「一般」を開いて「Maven」を選択します。

3. 「アプリケーションのPOMの作成」を選択し、「OK」をクリックします。

18.6.6.5 Mavenテンプレートの作成

次のテンプレートを作成できます。

- 1つ以上のMavenプロジェクトから作成されるMavenアプリケーション・テンプレート。
アプリケーション、アプリケーションの最上位プロジェクト・オブジェクト・モデル・ファイル(pom.xml)、およびプロジェクトごとのデフォルトのpom.xmlファイルが生成されます。

- Mavenプロジェクト・テンプレート。
デフォルトのプロジェクト・オブジェクト・モデル・ファイルとMaven構成を含むJavaプロジェクトが生成されます。プロジェクト・オブジェクト・モデル・ファイルは、プロジェクトの作成中に自動的に作成されます。

デフォルトのPOMを使用してJDeveloperプロジェクトを作成するには、次のようにします。

1. 「ファイル」、「新規」を選択し、「新規ギャラリ」を開きます。

2. 「すべての項目」を選択します。

3. 「Mavenアプリケーション」または「Mavenプロジェクト」を選択します。

4. 「OK」をクリックします。

18.6.6.6 Mavenプロジェクトの実行方法

アプリケーション・ナビゲータを使用し、Mavenプロジェクトを検索して実行します。

Mavenプロジェクトを実行するには、次のようにします。

1. ナビゲータで、実行するpom.xmlファイルを含むプロジェクトを検索します。
pom.xmlファイルは通常、プロジェクトの「リソース」フォルダにあります。

2. pom.xmlファイルを右クリックします。

3. ポップアップ・メニューで「ゴールの実行」を選択し、ゴールを選択します。
ポップアップ・メニューに表示されるゴールのリストは、「Maven」の「ゴール」プロパティ・ダイアログを使用して設定します。

18.6.6.7 Mavenのバージョンの変更方法

Mavenプロジェクトのプロパティ・ダイアログで、使用するMavenのバージョンを指定できます。Mavenバージョン2.0以上がサポートされます。

Mavenのバージョンを指定するには、次のようにします。

1. アプリケーション・ナビゲータで、プロパティを設定するプロジェクトを検索します。

2. プロジェクト名を右クリックします。

3. 「プロジェクト・プロパティ」を選択します。

4. 「Maven」を選択します。

5. 使用するMavenのバージョンを「Mavenバージョンの指定」フィールドに入力します。

18.6.6.8 プロジェクト・プロパティの設定方法

Mavenの「プロジェクト・プロパティ」ダイアログ・ボックスを使用して、次の内容を指定します。

- 使用するMavenのバージョン

- settings.xmlファイルの場所

- pom.xmlファイルの場所

- 追加のクラスパス・エントリ

- 依存性

- 「ゴールの実行」ポップアップ・メニューに表示される選択肢

- Javaバージョン

- 環境変数

- Mavenのリポジトリ

- コマンドライン・オプション

Mavenのプロジェクト・プロパティを設定するには、次のようにします。

1. アプリケーション・ナビゲータで、プロパティを設定するプロジェクトを検索します。

2. プロジェクト名を右クリックします。

3. 「プロジェクト・プロパティ」を選択します。

4. 「Maven」を選択します。

5. プロパティ・ダイアログの名前を選択します。

18.6.6.9 「ログ」ウィンドウのプリファレンスの設定方法

Mavenプロジェクトを実行したときメッセージ・ログに表示される各種のメッセージ・テキストの色を設定できます。

Mavenのプリファレンスを設定するには、次のようにします。

1. 「ツール」→「プリファレンス」の順に選択します。

2. 「Maven」を選択します。

18.6.7 手動でのプロファイルの作成

クラス・モデルのXMIエクスポートを編集して、プロファイルを手動で作成できます。

プロファイルには1つ以上のステレオタイプがあり、属性(プロパティ)、および特定のステレオタイプで拡張できるメタクラスを決定する拡張があります。プロファイル、ステレオタイプおよび拡張の形式は、それぞれ、パッケージ、クラスおよびアソシエーションと同じなので、標準のUMLサポートを使用して、プロファイルの基礎として使用するXMLを作成できます。

手動でプロファイルを作成するには、次のようにします。

1. UMLプロジェクトを作成します。

2. MyProfileという名前のルート・パッケージを作成します。

3. MyStereotypeという名前のクラスを作成します。

4. Stringでタイプを指定された、myAttributeという名前のクラスに所有された属性を作成します。

5. タイプを指定されていない、base_Classという名前のクラスに所有された属性を作成します。

6. A_base_Class_myStereotypeという名前のアソシエーションを作成します。

7. MyProfile::MyStereotypeでタイプを指定された、myStereotypeという名前の所有された端点を作成します。

8. アソシエーションのmemberEndプロパティを更新してMyProfile::MyStereotype::base_Classも含めます。

9. 「ファイル」→「エクスポート」→「UMLをXMIとして」を選択します。
ファイルは、例18-4のように表示されます。

例18-4 11.1.2.0.0プロファイル・コード

<?xml version='1.0' encoding='UTF-8' standalone='yes'?>
<xmi:XMI xmi:version='2.1'
xmlns:xmi='http://schema.omg.org/spec/XMI/2.1'
xmlns:uml='http://schema.omg.org/spec/UML/2.1.1/uml.xml'>
<documentation exporter='Oracle JDeveloper' exporterVersion='11.1.2.0.0'/>
<uml:Package xmi:id='urn:uuid:e758ac95-c939-437c-b8db-93b614d7a1e6' name='MyProfile'>
<packagedElement xmi:type='uml:Association'
xmi:id='urn:uuid:bedc874e-54bb-43ac-8118-332da29ee332'
name='A_base_Class_myStereotype'
memberEnd='urn:uuid:9b0a1dac-f235-4c0f-8d23-5d050869376e urn:uuid:c148a047-b02d-4144-a49d-e1ee6d363ae2'>
<ownedEnd xmi:id='urn:uuid:9b0a1dac-f235-4c0f-8d23-5d050869376e'
name='myStereotype'
association='urn:uuid:bedc874e-54bb-43ac-8118-332da29ee332'
type='urn:uuid:61415c2c-2835-42cd-87e7-9d95a8675bc3'/>
</packagedElement>
<packagedElement xmi:type='uml:Class'
xmi:id='urn:uuid:61415c2c-2835-42cd-87e7-9d95a8675bc3'
name='MyStereotype'>
<ownedAttribute xmi:id='urn:uuid:bae8137e-8efc-4311-9cb6-bac77d25cef1'
name='myAttribute'>
<type href='http://schema.omg.org/spec/UML/2.1.1/uml.xml#String'/>
</ownedAttribute>
<ownedAttribute xmi:id='urn:uuid:c148a047-b02d-4144-a49d-e1ee6d363ae2'
name='base_Class'
association='urn:uuid:bedc874e-54bb-43ac-8118-332da29ee332'/>
</packagedElement>
</uml:Package>
</xmi:XMI>

10. xmlns:cmof='http://schema.omg.org/spec/MOF/2.0/cmof.xml'をxmi:XMI要素に追加します。

11. パッケージxmi:idの値を_0に変更します。

12. uri='http://example.oracle.com/MyProfile.xmi'をuml:Package要素に追加します。

13. base_Class属性の子として<type href='http://schema.omg.org/
spec/UML/2.1.1/uml.xml#Class'/>を追加します。

14. uml:Packageをuml:Profileに置換します。

15. uml:Classをuml:Stereotypeに置換します。

16. uml:Associationをuml:Extensionに置換します。

17. ownedEndをownedEnd xmi:type='uml:ExtensionEnd'に置換します。

18. xmi:XMIの子として<cmof:Tag name='org.omg.xmi.nsURI' value='http://example.oracle.com/MyProfile' element='_0'/>を追加します。
ファイルは、例18-5のように表示されます。

例18-5 11.1.2.0.0プロファイル・コード

<?xml version='1.0' encoding='UTF-8' standalone='yes'?>
<xmi:XMI xmi:version='2.1'
xmlns:xmi='http://schema.omg.org/spec/XMI/2.1'
xmlns:uml='http://schema.omg.org/spec/UML/2.1.1/uml.xml'
xmlns:cmof='http://schema.omg.org/spec/MOF/2.0/cmof.xml'>
<documentation exporter='Oracle JDeveloper' exporterVersion='11.1.2.0.0'/>
<uml:Profile xmi:id='_0' name='MyProfile' uri='http://example.oracle.com/MyProfile.xmi'>
<packagedElement xmi:type='uml:Extension'
xmi:id='urn:uuid:bedc874e-54bb-43ac-8118-332da29ee332'
name='A_base_Class_myStereotype'
memberEnd='urn:uuid:9b0a1dac-f235-4c0f-8d23-5d050869376e urn:uuid:c148a047-b02d-4144-a49d-e1ee6d363ae2'>
<ownedEnd xmi:type='uml:ExtensionEnd'
xmi:id='urn:uuid:9b0a1dac-f235-4c0f-8d23-5d050869376e'
name='myStereotype'
association='urn:uuid:bedc874e-54bb-43ac-8118-332da29ee332'
type='urn:uuid:61415c2c-2835-42cd-87e7-9d95a8675bc3'/>
</packagedElement>
<packagedElement xmi:type='uml:Stereotype'
xmi:id='urn:uuid:61415c2c-2835-42cd-87e7-9d95a8675bc3'
name='MyStereotype'>
<ownedAttribute xmi:id='urn:uuid:bae8137e-8efc-4311-9cb6-bac77d25cef1'
name='myAttribute'>
<type href='http://schema.omg.org/spec/UML/2.1.1/uml.xml#String'/>
</ownedAttribute>
<ownedAttribute xmi:id='urn:uuid:c148a047-b02d-4144-a49d-e1ee6d363ae2'
name='base_Class'
association='urn:uuid:bedc874e-54bb-43ac-8118-332da29ee332'>
<type href='http://schema.omg.org/spec/UML/2.1.1/uml.xml#Class'/>
</ownedAttribute>
</packagedElement>
</uml:Profile>

<cmof:Tag name='org.omg.xmi.nsURI' value='http://example.oracle.com/MyProfile' element='_0'/>
</xmi:XMI>

18.7 JavaBeansの使用

JDeveloperでは、コンポーネント・パレット上にすぐ使用できるJavaBeansのセットが備わっています。また、ユーザー自身が新規JavaBeansを作成したり、サード・パーティのJavaBeansをインストールすることで、これらのコンポーネントを補完できます。

JavaBeansコンポーネント・テクノロジにより、Javaオブジェクトのデータ取得、永続性および操作に対して独自のフレームワークを実装できます。JavaBeansテクノロジは、JavaアプレットおよびJavaクライアント・アプリケーションのビルドに再利用可能なソフトウェア・コンポーネントを作成するために使用できます。Java EEアプリケーションでは、アプレットおよびアプリケーション・クライアントは、Web層コンポーネントを介してビジネス層コンポーネントと直接または間接的に通信できます。たとえば、ブラウザで実行されているクライアントは、JSPページまたはサーブレットを介してビジネス層と通信します。

JavaBeansコンポーネントはJava EE仕様ではJava EE Webコンポーネントとみなされませんが、JavaBeansコンポーネントは、サーバー・コンポーネントとクライアント層のアプリケーション・クライアントまたはアプレット間、またはサーバー・コンポーネントとバックエンドのデータベース間のデータ・フローを処理するために使用されます。

JavaBeansの基本的な概念やBeanの構成要素など、JavaBeansの詳細は、http://download.oracle.com/javase/tutorial/javabeans/を参照してください。チュートリアルには、簡単なBeanの記述、Beanのプロパティ、イベントの操作、その他に関する演習も含まれています。

18.7.1 JDeveloperでのJavaBeansの使用

JavaBeansは、Javaビジュアル・エディタでプログラムの構築に使用されるJava構成要素です。各JavaBeanは、ユーザー・インタフェース・オブジェクト、データ対応コントロールまたはシステム機能などのプログラム要素を表します。これらの要素を選択および連結してプログラムを構築します。

今後のUI設計作業の所要時間を短縮するために、コンポーネント・パレットに追加してそのまま(または軽微な変更のみで)再利用できるJavaBeanコンポーネント(ツールバー、ステータス・バー、チェック・ボックス・グループまたはダイアログ・ボックスなど)を作成します。

JDeveloperでは、コンポーネント・パレット上にすぐ使用できるJavaBeansのセットが備わっています。また、ユーザー自身が新規JavaBeansを作成したり、サード・パーティのJavaBeansをインストールすることで、これらのコンポーネントを補完できます。

JavaBeansは、trueオブジェクト指向プログラミング(OOP)の観念におけるオブジェクトです。trueオブジェクトであるため、JDeveloperコンポーネントには次の特徴があります。

- 一部のデータ・セットおよびデータアクセス機能のカプセル化。

- スーパークラスからのデータおよび動作の継承。

- 共通スーパークラスから導出された他のオブジェクトと置き換えても同じように機能する多相性。

各コンポーネントは、ウィンドウやダイアログ・ボックス、データベース内のフィールドまたはシステム・タイマーなどの一部のプログラム要素をカプセル化します。ビジュアル・コンポーネントは、最終的にjava.lang.Objectまたはそこから導出される他の一部のクラス(javax.swing.Panelなど)を拡張する必要があります。非ビジュアルJavaBeansコンポーネントではこれは必要ありません。

JDeveloperで認識および使用されるためには、コンポーネントがJavaBeans仕様に準拠している必要があります。

プログラムで役立つために、JavaBeanは、その他のコンポーネントにより操作またはこれらのコンポーネントと対話できる手段を提供する必要があります。JavaBeansは、プロパティ、メソッドおよびイベントを定義することでこの要件を満たします。

すべてのコンポーネントには、プロパティ、メソッドおよびイベントが組み込まれています。コンポーネントが提供する一部のプロパティ、メソッドおよびイベントは、実際には祖先のクラスから継承されます。つまり、これらの要素をその他のコンポーネントと共有することを意味します。たとえば、UIコンポーネントはすべて、コンポーネントの背景色を表すbackgroundというプロパティを継承します。各コンポーネントは、独自の一意のプロパティ、メソッドおよびイベントを導入することもできます。たとえば、Swingチェックボックス・コンポーネントにはselectedというプロパティがあり、このコンポーネントが初期状態で選択されて表示されるかどうかを示します。

18.7.2 JavaBeanの作成方法

再利用可能なBeanを開発するための最初のステップは、JavaBeanクラスの作成です。「Beanの作成」ダイアログを使用して、新規の空のBeanを作成するか、またはJavaBeansのコンポーネント・モデルの要件を満たすよう既存のクラスを拡張します。

JavaBeanを作成するには、次のようにします。

1. アプリケーション・ナビゲータで、Beanを追加するプロジェクトを選択します。

2. メイン・メニューから、「ファイル」→「新規」を選択するか、右クリックして「新規」を選択します。

3. 新規ギャラリの「カテゴリ」ツリーで、「一般」を開き、「Java」を選択します。

4. 「項目」リストで、「Bean」をダブルクリックします。

5. 「Beanの作成」ダイアログで、デフォルトを受け入れるか、新規の値を入力するか、または「参照」ボタンを使用して既存のパッケージおよびスーパークラスに移動します。

6. 「OK」をクリックします。

18.7.3 BeanInfoクラスの作成方法

BeanInfoクラスは、実装するBeanに関する明示的な情報をBean実装者が指定できる、一連のメソッドを定義します。BeanコンポーネントにBeanInfoを指定すると、メソッドを隠す、ツールボックスのアイコンを指定する、プロパティに説明的な名前を指定する、バインドされるプロパティを定義する、などが可能になります。

Beanを作成してコンポーネント・パレットにインストールするときに、ほとんどの場合、JDeveloperのインスペクタにプロパティとイベントを表示させます。Beanの作成時にJavaBeansの設計規則および命名規則に従った場合、定義したすべてのプロパティとイベント、およびスーパークラスから継承されるすべてのプロパティとイベントが自動的に表示されます。

ただし、JavaBeansの設計規則および命名規則を使用しなくてもかまいませんし、そのような規則を使用しない既存のクラスを使用することもできます。また、設計時には、Beanのユーザーがすべてのプロパティにアクセスできないようにしたい場合もあります。

このような状況を処理するために、自動イントロスペクションを使用してJDeveloperで情報を導出するのではなく、Beanに関する明示的な情報をJDeveloperに提供するBeanInfoクラスを作成できます。このクラスを作成するには、SimpleBeanInfoクラスを拡張します。

「BeanInfoの作成」ダイアログを使用してBeanInfoクラスを作成するには、次のようにします。

1. アプリケーション・ナビゲータで、Beanを追加するプロジェクトを選択します。

2. メイン・メニューから、「ファイル」→「新規」を選択するか、右クリックして「新規」を選択します。

3. 新規ギャラリの「カテゴリ」ツリーで、「一般」を開き、「Java」を選択します。

4. 「項目」リストで、「BeanInfo」をダブルクリックします。

5. 「BeanInfoの作成」ダイアログで、BeanInfoを作成するBeanを選択します。このダイアログでは、Bean自体からBeanInfoクラス名が生成されます。

6. パッケージ名を受け入れるか、BeanInfoを追加する別のパッケージを指定します。

7. 「参照」をクリックして、実装するBeanInfoについてSimpleBeanInfo以外のベース・クラスを選択します。

8. 「OK」をクリックして、新規BeanInfoクラスをプロジェクトに追加します。

18.7.4 イベント処理メソッドの実装方法

Javaビジュアル・エディタで、エンド・ユーザーがイベントを認識するのは、主としてコンポーネントが含まれるクラスで実装する必要があるイベント処理メソッドとしてです。たとえば、button1という名前のボタンをFrame1というコンテナに配置するとします。また、エンド・ユーザーがbutton1をクリックしたときにはなんらかの処理を実行します。

イベント処理メソッドを実装するには、次のようにします。

1. Frame1エディタでbutton1を選択します。

2. プロパティ・インスペクタの「イベント」ページまで移動します。

3. actionPerformedの右側をクリックします(actionPerformedは、ボタンが押されたときに生成されるイベントです)。
これにより、デフォルトのアクション・リスナー名(編集可能)が作成されます。

4. この名前をダブルクリックして、JDeveloperに適切なメソッドを作成するように指示し、メソッド本体へ移動します。

5. JDeveloperはFrame1のソース・ビューに切り替わり、そのイベントの発生時にコールされるイベント処理メソッドがFrame1に挿入されます。
メソッドのデフォルト名はbutton1_actionPerformed()です。メソッドの本体は、最初は空です。

6. ボタンが押されたときに応答するコードをメソッドに追加します。

エンド・ユーザーには、button1から発生する可能性のあるイベントがすべてプロパティ・インスペクタのイベント・ページにリスト表示されます。コンポーネントの作成者は、コンポーネント・クラスを作成する際に、そのクラスで生成されるすべてのイベントがプロパティ・インスペクタに表示されるようにする責任があります。Beanを使用するためにエンド・ユーザーに必要なことは、イベント処理メソッドのコードを記述することのみです。

18.7.5 イベント処理メソッドを作成するときに行われる処理

バックグラウンドで、JDeveloperはイベント・リスニングの他の側面を処理する追加コードもFrame1.javaファイルに生成します。

1. ActionListenerインタフェースを実装するアクション・アダプタの匿名の内部クラスを生成します。

2. これによってFrame1でのクラスがインスタンス化されます。

3. button1.addActionListener()をコールすることにより、自分自身をbutton1イベントのリスナーとして登録します。

このコードはすべてソース・ビューに表示されますが、主たるタスクは、イベント発生時にアクション・アダプタによってコールされるイベント処理メソッドを記述することです。

18.7.6 匿名アダプタの理解

JDeveloperによりデフォルトで生成される特定のタイプの内部クラス・イベント・アダプタは、匿名アダプタと呼ばれます。このスタイルのアダプタは、別個の(名前付き)アダプタ・クラスを作成しません。その結果、コードは簡潔になります。

例18-6に示すコードは、アクションが実行されたイベント用に、匿名アダプタを使用して生成されたものです。

例18-6 匿名アダプタを使用してactionPerformedイベントに対して生成したコード

button1.addActionListener(new java.awt.event.ActionAdapter()
public void actionPerformed(ActionEvent e) {
button1_actionPerformed(e);
}
}}

void button1_actionPerformed(ActionEvent e) {
// your code to respond to event goes here
}

18.7.7 標準イベント・アダプタの理解

「プロジェクト・プロパティ」ダイアログのコード・スタイル・ページから必要なオプションを選択することにより、JDeveloperでのアダプタ・クラスの生成方法を制御できます。標準イベント・アダプタは、宣言されたスコープ内のすべての変数にアクセスできる匿名アダプタとは異なり、パブリックまたはパッケージ・レベルでしかアクセスできません。

例18-7に示すコードは、アクションが実行されたイベント用に、標準クラスを使用して生成されたものです。

例18-7 標準クラスを使用してactionPerformedイベントに対して生成したコード

// Registers the adapter as a listener to button1.
button1.addActionListener(new Frame1_button1_actionAdapter(this));
...
// Adapter class definition.
class Frame1_button1_actionAdapter extends java.awt.event.ActionAdapter {
Frame 1 adaptee;

Frame1_button1_actionAdapter(Frame1 adaptee) {
this.adaptee = adaptee;
}
public voidactionPerformed(ActionEvent e) {
adaptee.button1_actionPerformed(e);
}
}
void button1_actionPerformed(ActionEvent e) {
// code to respond to event goes here
}

18.7.8 標準アダプタをプロジェクトのデフォルトにする方法

例18-6では、匿名の内部クラスを使用してコードが生成されました。例18-7に示すコードは、アクションが実行されたイベント用に、標準クラスを使用して生成されたものです。アダプタを使用する方法では、どちらもアクションが実行されたイベントを処理するコードが生成されますが、匿名アダプタを使用した方がより簡潔になります。

標準アダプタをプロジェクトのデフォルトにするには、次のようにします。

1. メイン・メニューから、「ツール」→「プリファレンス」を選択します。

2. 「Javaビジュアル・エディタ」ノードを選択します。

3. 「イベント設定」グループで、イベント処理オプションとして「標準アダプタ」を選択します。

4. 「OK」を選択します。

これで、JDeveloperではイベント用に(匿名の内部クラスではなく)標準アダプタが生成されます。

18.7.9 イベント処理アダプタの選択方法

再利用するBeanを作成する場合、そのイベントを定義する必要があります。イベントの定義後、イベント処理アダプタを選択する必要があります。

標準アダプタをプロジェクトのデフォルトにするには、次のようにします。

1. メイン・メニューから、「ツール」→「プリファレンス」を選択します。

2. 「設定」ダイアログで、「Javaビジュアル・エディタ」ノードを選択します。

3. 「Javaビジュアル・エディタ」ページの「イベント設定」で、イベント処理オプションとして「標準アダプタ」を選択します。

4. 「OK」をクリックします。

これで、JDeveloperはイベントの(匿名クラス、内部クラスではなく)標準アダプタを生成します。

18.7.10 イベント・セットの作成方法

JDeveloperには、カスタム・イベントのセットを作成し、そのイベントをサポートするEventListenerインタフェースとEventObjectクラスを作成する機能があります。

イベント・セットを作成するには、次のようにします。

1. アプリケーション・ナビゲータで、Beanを追加するプロジェクトを選択します。

2. メイン・メニューから、「ファイル」→「新規」を選択するか、右クリックして「新規」を選択します。

3. 新規ギャラリの「カテゴリ」ツリーで、「一般」を開き、「Java」を選択します。

4. 「項目」リストで、「イベント・セット」をダブルクリックします。

5. 「イベント・セットの作成」ダイアログの「名前」フィールドで、イベント・セットの名前を入力します。

6. 作成、編集または削除するイベントを「通知」フィールドに指定します。

7. 「OK」をクリックすると、新規イベント・セット・クラスがプロジェクトに追加されます。

18.7.11 カスタマイザの作成方法

複雑なBeanのために、JDeveloperにはカスタマイザを作成するオプションがあります。カスタマイザを使用すると、必要に応じてアプリケーション・ビルダーでBeanの外観と動作を変更できます。Beanの構成可能な属性を表すには、プロパティのみでは不十分な場合があります。カスタマイザは、Beanを変更するために高度な指示が必要になる場合や、プロパティ・エディタの機能が限定されているためにBeanを十分にカスタマイズできない場合に使用されます。

- 単純なカスタマイザで、コンポーネント全体を一度に編集できます。通常、単純なカスタマイザでは、ユーザーが同じ手順で複数のプロパティを設定できるダイアログ・ボックスまたはパネルが表示されます。

- 複雑なカスタマイザは、コンポーネント・ユーザーに対話型のインタフェースを提供して、コンポーネントをカスタマイズする手順をガイドします。

複雑なカスタマイザでは、コンポーネントのカスタマイズ方法をユーザーに質問するウィザードを作成できます。ユーザーの回答に基づいて、カスタマイザでは、影響を受けるコンポーネントのプロパティがすべて編集されます。カスタマイザがJDeveloperに動作を通知するイベントを生成すると、JDeveloperでは適切なコードが生成されます。

カスタマイザを作成する手順は、次のとおりです。

1. アプリケーション・ナビゲータで、Beanを追加するプロジェクトを選択します。

2. メイン・メニューから、「ファイル」→「新規」を選択するか、右クリックして「新規」を選択します。

3. 新規ギャラリの「カテゴリ」ツリーで、「一般」を開き、「Java」を選択します。

4. 「項目」リストで、「カスタマイザ」をダブルクリックします。

5. カスタマイザの作成ダイアログの「名前」フィールドで、カスタマイザの名前を入力します。

6. プロジェクトのデフォルト・パッケージ以外のパッケージにカスタマイザを追加する必要がある場合は、「パッケージ」フィールドにパッケージ名を入力するか、「パッケージを参照」をクリックします。

7. カスタマイザでデフォルト以外のクラスを拡張する場合は、「拡張」フィールドにクラス名を入力するか、「クラスの参照」をクリックします。

8. 「OK」をクリックして、新規カスタマイザ・クラスをプロジェクトに追加します。

18.7.12 コンポーネントがイベントを起動できるようにする方法

Beanを開発する場合、Beanで生成する必要があるすべてのイベントについて考慮する必要があります。

コンポーネントをイベントが起動できるようにするには、次のようにします。

1. どのような種類のイベントを起動する必要があるかを決定し、次のどちらかを実行します。

- 該当する既存のイベント・セットをAWTまたはJFCから選択します。または、

- 新規イベント・セットを作成します。

2. コンポーネント用のイベント登録メソッドを作成します。

3. イベントに対するイベント通知/伝播のメカニズムを作成します。fire<yourEventName>Event()

4. 起動されたイベントを、Bean内でイベント送信を必要とする主要なポイントからコールし、イベント通知メカニズムをコールします。

18.8 Javaプロジェクトのリファクタ

リファクタとは、プログラムの動作を変更することなくコード構造を変更する編集上の技術です。リファクタ操作は一連の簡単な編集で、プログラムのコードを最終的に動作変更を伴わずに変換します。各リファクタ操作の後、プログラムは正常にコンパイルおよび実行されます。JDeveloperには、自動リファクタ操作のコレクションが用意されています。

リファクタは、プログラムのソース・コードを変更して保持、拡張または再利用しやすくする際に使用します。この変更は一連のリファクタ・ステップとして行われます。ユーザーは、ステップの終了ごとに、プログラムを再ビルドおよび再検証して、エラーが発生していないか確認できます。

簡単なリファクタ操作の例を次にいくつか示します。

- メソッドの名前の変更。この操作では、ターゲット・メソッドの使用方法を検索してから、名前の各オカレンスを置き換えるかどうかを選択できます。

- クラスの複製。クラスの定義が複製され、複製された定義に含まれるクラス名のオカレンスがすべて新しい名前で置き換えられます。

- メソッドへのパラメータの導入。メソッド定義がパラメータの追加によって変更され、各メソッド・コールが変更されて、該当するタイプおよび値の引数が提供されます。

また、JDeveloperには、次のようなさらに高度なリファクタ操作も用意されています。

- 選択クラス・メンバーからメンバー宣言を導出することによって、クラスからインタフェースを抽出します。

- メンバー定義をクラス間で移動することによって、クラス・メンバーをスーパークラスにプル・アップまたはサブクラスにプッシュ・ダウンします。

- クラスを抽出し、一連のフィールドまたはメソッドを新しいコンテナ・オブジェクトで置き換えます。

- 選択式で構成された新規要素への参照で選択した式を置き換えることによってフィールド、変数、パラメータまたは定数を導入します。

- 文で構成された新規メソッドへのコールで、強調表示された連続する文を置き換えることによって、メソッドを抽出します。

- メソッド・オブジェクトを抽出して既存のコード・ブロックから新規のメソッドを作成し(「メソッドの抽出」と類似)、ただしそれを新規作成した内部クラス内に移動して、すべてのローカル変数をクラスのフィールドに変換します。

- パラメータ・オブジェクトを導入し、一連のフィールドまたはメソッドを新しいコンテナ・オブジェクトで置き換えます。

リファクタ操作の結果が目的と異なる場合は、編集操作で行うように、[Ctrl]を押しながら[Z]キーを押してリファクタ操作を元に戻すことができます。

18.8.1 Javaクラス図でのリファクタ

ダイアグラムでインプレース編集機能を使用してクラスの名前を変更またはクラスを移動すると、そのクラスのソース・コードが自動的にリファクタされます。ダイアグラムでJavaパッケージの名前を変更またはパッケージを移動すると、そのパッケージの内容が自動的にリファクタされます。

ダイアグラムでフィールド、メソッドまたは内部クラスを削除すると、自動的に「安全に削除」リファクタ・パターンが適用されます。詳細は、第18.8.4項「コード要素の削除方法」を参照してください。

ダイアグラムのJavaクラス、インタフェース、列挙またはメンバーにリファクタ・パターンを適用するには、ダイアグラムで対象となるクラスまたはメンバーを選択し、「リファクタ」メニューから目的のリファクタ・パターンを選択します。このようにしてリファクタ・パターンを適用した場合、リファクタの結果をプレビューする機能を含む適切なダイアログが表示されます。詳細は、第18.8.6項「クラスおよびインタフェースのリファクタ」を参照してください。

Javaクラス図のJavaクラス、インタフェースおよび列挙では、次のリファクタ・パターンを使用できます。

- 名前の変更

- 移動(ダイアグラムで1つ選択した場合にも複数選択した場合にも適用されます)

- 複製

- インタフェースの抽出

- スーパークラスの抽出

Javaクラス図のJavaフィールドおよびメソッドでは、次のリファクタ・パターンを使用できます。

- 名前の変更

- 移動

- staticにする

- メンバーのプル・アップ

- メンバーのプッシュ・ダウン

- メソッドの変更(Javaメソッドのみ)

18.8.2 リファクタ操作の呼出し方法

JDeveloperには、リファクタを自動的に行う様々な操作が用意されており、コードの外部的な動作を変更することなくコードの品質を強化し、しかもその内部構造を改善できます。

リファクタ操作を開始するには、次のようにします。

1. ソース・エディタ・ウィンドウ、ナビゲータ・ペインまたは構造ペインでプログラム要素を選択します。

2. プログラム要素を右クリックします。

3. ポップアップ・メニューから操作を選択します。

4. ツールバーから「リファクタ」を選択し、ドロップダウン・リストからリファクタ操作を選択することもできます。

リファクタのポップアップ・メニューには、現在のコンテキストで使用できる操作が反映されます。これは、右クリックしたときのカーソル位置にあるソース要素によって決まります。これらの操作は、要素ごとに異なります。したがって、リファクタのポップアップ・メニューでは、JDeveloperのどこを右クリックしてメニューを表示しているかによって、表示される項目が異なります。

たとえば、次のものを右クリックしたときに異なるリファクタ操作が表示される異なるポップアップ・メニューを表示できます。

- 構造メニュー

- メソッドの行頭

- IDEにおけるメソッドの戻り型

- IDEにおけるメソッドの名前

- IDEにおけるメソッドのパラメータ・リストのパラメータ

リファクタ操作の結果が目的と異なる場合は、編集操作で行うように、[Ctrl]を押しながら[Z]キーを押してリファクタ操作を元に戻すことができます。

18.8.3 コード要素の名前の変更方法

Javaアプリケーションを開発する際に、パッケージ、クラス、インタフェース、メソッド、フィールド、パラメータまたは変数へのすべての参照および定義の名前を簡単に変更できます。必要に応じて、最初にプレビュー(置換する使用方法のリスト)を生成できます。プレビューを使用して、その他の使用方法の名前を変更する前に、選択した使用方法を調査、変更するかまたは除外します。

名前の変更操作の有効範囲は、プロジェクト内の要素の全範囲になります。プロジェクト、クラス、インタフェースおよびメンバーの各使用方法は、プロジェクト内で表示されるすべての場所で置換されます。パラメータおよび変数の名前は、定義の字句範囲でのみ変更されます。同じ名前を持つその他の要素は変更されません。

デフォルトでは、操作は、コメント(ただし、コード要素を指定するドキュメント・コメント・タグではない)および注釈を除いた、.javaファイルに制限されます。あいまいではない使用方法が置換されます。クラスとインタフェースの使用方法の名前は、完全修飾されている場合、またはimport文で指定されている場合に置換されます。

パッケージ、型およびメンバー要素の場合、操作はコメントまたはその他のファイルにまで拡張できます。操作をコメントにまで拡張する場合は、行コメント、コメント・アウトされたコード、ドキュメント・コメントの本体および注釈で置換が行われます。操作をその他のファイルにまで拡張する場合、「設定」ダイアログのファイル・タイプ・ページでテキスト・ファイルとして指定されているタイプのプロジェクト・ファイルでもテキスト置換が行われます。コメントおよびその他のファイルでの置換は、Javaコードでの置換よりもアグレッシブに行われます。

コード要素の名前を変更するには、次のようにします。

1. 次の2つの方法のいずれかで、名前を変更する要素を選択します。

- Javaソース・エディタで、名前を選択します。

- ナビゲータまたは構造ペインで、名前を選択します。

2. 次の2つの方法のいずれかで、コマンドを起動します。

- メイン・メニューまたはポップアップ・メニューから「リファクタ」→「名前の変更」を選択します。

- [Ctrl]と[Alt]を押しながら[R]を押します。
「名前の変更」ダイアログが開きます。

3. 「変更後の名前」ボックスに、新しい名前を入力します。名前は有効で、まだ使用されていない必要があります。

4. テキスト置換の深さを設定します。

- 「コメント内を検索」を選択し、操作をコメント、ドキュメント・コメントの本体および注釈にまで拡張します。

- (パッケージ、タイプおよびメンバー要素のみ)「非Javaファイルの検索」を選択し、操作をプロジェクトのテキスト・ファイルのその他のタイプにまで拡張します。

5. 名前の変更操作をコミットする前に置換される使用方法をインスペクトする場合は、「プレビュー」を選択します。

6. 「OK」をクリックします。
「プレビュー」を選択して、変更中の使用方法をすべて回避する場合は、「プレビュー」ログ・ウィンドウからの名前変更操作を完了してください。詳細は、第18.8.3項「コード要素の名前の変更方法」を参照してください。

18.8.4 コード要素の削除方法

Javaアプリケーションを開発する際に、クラス、インタフェース、メソッドまたはフィールドの定義を安全に削除できます。要素が使用中の場合は、ユーザーの確認なしに定義の削除が実行されることはありません。

要素が使用中である場合は、使用方法を示すログが表示されます。このリストを使用して、使用方法をインスペクトおよび解決します。このため、削除を確認しても、残りの使用方法は未定義の参照としてコード内に残ります。

コード要素を削除するには、次のようにします。

1. 次のいずれかの方法で、削除する要素を選択します。

- Javaソース・エディタで、名前を選択します。

- ナビゲータまたは構造ペインで、名前を選択します。

2. 次のいずれかの方法でコマンドを起動します。

- メイン・メニューまたはポップアップ・メニューから「リファクタ」→「安全に削除」を選択します。

- [Alt]キーを押しながら[Del]キーを押します。
「安全に削除」ダイアログが表示され、プロジェクト・ファイルで使用方法が検索されます。

3. ダイアログが閉じた場合、要素は削除されています。検索の実行後もダイアログが開いたままの場合、要素には未解決の使用方法があります。

- 「使用方法の表示」をクリックし、使用方法を調査および解決します。完了後、コマンドを再起動して要素を削除します。

- 「無視」をクリックし、使用方法を表示しないで要素の定義を削除します。

18.8.5 リファクタ操作のプレビュー方法

多くの使用方法を変更する可能性があるリファクタ操作を実行する場合、手動での変更が必要な使用方法や除外が必要な使用方法を識別する場合には、使用方法のプレビューが役に立ちます。操作をコミットする前にプレビュー・ログ・ウィンドウで使用方法を表示し、これらを調査して解決し、必要に応じて操作をコミットするオプションがあります。

ログには、閉じることが可能なパッケージとJavaファイルのツリーが表示されます。各ファイルの下には、使用方法を含むコード行が表示されます。

編集ウィンドウに使用方法を表示するには、次のようにします。

ログのエントリをダブルクリックします。

リファクタ操作から使用方法を除外するには、次のようにします。

使用方法を右クリックし、「対象外」を選択します。

リファクタ操作をコミットするには、次のようにします。

1. 使用方法に影響する編集を行った場合は、ログ・ツールバーの「リフレッシュ」アイコンをクリックし、使用方法の検索を再実行します。

2. ログ・ツールバーの「リファクタ実行」アイコンをクリックします。

18.8.6 クラスおよびインタフェースのリファクタ

Javaアプリケーションを開発する際に、新規クラスとインタフェースの定義、および既存のクラスの再利用が簡単にできます。

18.8.6.1 パッケージ、クラスまたはインタフェースの移動方法

Javaアプリケーションを開発する際に、パッケージ、クラスまたはインタフェースを別のパッケージに簡単に移動できます。必要に応じて、最初にプレビュー(置換する使用方法のリスト)を生成できます。プレビューを使用して、移動を完了する前に、選択した使用方法を調査、変更するかまたは除外します。

タイプを移動する場合、プライマリ・クラスおよびプライマリ・インタフェース(ファイルと同じ名前を持つもの)のみが移動対象として選択できます。実際には、ファイルの名前が変更され、セカンダリ・クラスおよびセカンダリ・インタフェースの定義はプライマリとともに残ります。アクセス・レベルは保持されます。元のパッケージの他のクラスが移動対象のクラスを参照している場合、移動対象のクラスにはpublicアクセス権が付与されます。移動対象のクラスが元のパッケージの他のクラスを参照している場合は、元のパッケージの他のクラスがpublicになります。

クラスまたはインタフェースを移動する操作の範囲は、プロジェクト全体です。

デフォルトでは、操作は、コメント(ただし、コード要素を指定するドキュメント・コメント・タグではない)および注釈を除いた、.javaファイルに制限されます。あいまいではない使用方法が置換されます。完全修飾されている場合、またはimport文に指定されている場合は、使用方法が置換されます。

操作をコメントまたはその他のファイルにまで拡張することを選択できます。操作をコメントにまで拡張する場合は、行コメント、コメント・アウトされたコード、ドキュメント・コメントの本体、および注釈に含まれるテキストが置換されます。操作をその他のファイルにまで拡張する場合は、「設定」ダイアログのファイル・タイプ・ページでテキスト・ファイルとして指定されるタイプのプロジェクト・ファイルに対しても置換が行われます。コメントおよびその他のファイルでの置換は、Javaコードでの置換よりもアグレッシブに行われます。

クラスまたはインタフェースを移動するには、次のようにします。

1. 次のいずれかの方法で、移動するパッケージ、クラスまたはインタフェースを選択します。

- Javaソース・エディタで、名前を選択します。

- ナビゲータまたは構造ウィンドウで、名前を選択します。

2. 次のいずれかの方法でコマンドを起動します。

- メイン・メニューまたはポップアップ・メニューから「リファクタ」→「移動」を選択します。

- [Ctrl]と[Alt]を押しながら[M]を押します。
「Vehicleを移動」ダイアログが開きます。

3. 「移動先」ボックスで、新しいパッケージ名を入力するか、「...」をクリックして既存のパッケージに移動します。

4. テキスト置換の深さを設定します。

- 「コメント内を検索」を選択し、操作をコメント、ドキュメント・コメントの本体および注釈にまで拡張します。

- 操作対象をプロジェクト内にある他のタイプのテキスト・ファイルにまで拡張する場合は、「テキスト・ファイルの検索」を選択します。

5. 移動操作をコミットする前に置換される使用方法をインスペクトする場合は、「プレビュー」を選択します。

6. 「OK」をクリックします。
「プレビュー」を選択して、変更中の使用方法をすべて回避する場合は、「プレビュー」ログ・ウィンドウからの名前変更操作を完了してください。詳細は、第18.8.3項「コード要素の名前の変更方法」を参照してください。

クラスは、アプリケーション・ナビゲータで複数のクラスを1つのパッケージから別のパッケージにドラッグして移動することもできます。

18.8.6.2 クラスまたはインタフェースの複製方法

Javaアプリケーションを開発する際に、クラスまたはインタフェースを簡単に複製できます。

プライマリ・クラスおよびプライマリ・インタフェース(ファイルと同じ名前を持つもの)のみが複製対象として選択できます。複製されたクラスまたはインタフェースは、同じパッケージにオリジナルとして追加されます。

新しいクラスのメンバー名には、オリジナルでのメンバー名と同じ名前が付けられます。ただし、オリジナル・クラスやオリジナル・インタフェースの名前から導出されたメンバー名は除きます。オリジナル名がメンバー名に埋め込まれている場合は、新しい名前に置換されます。

クラスまたはインタフェースを複製するには、次のようにします。

1. Javaソース・エディタで、複製するクラスまたはインタフェースの名前を選択します。

注意:

プライマリ・クラスおよびプライマリ・インタフェース(ファイルと同じ名前を持つもの)のみが移動対象として選択できます。

2. メイン・メニューから「リファクタ」→「複製」を選択します。
「タイプの複製」ダイアログが開きます。

3. 「クラス名」ボックスで、新しい名前を入力します。新しいパッケージを指定することもできます。

4. 「OK」をクリックします。
新規クラスがプロジェクトに追加されます。

18.8.6.3 クラスからインタフェースを抽出する方法

Javaアプリケーションを開発する際に、既存のクラスに定義されている選択したメソッドおよびstaticフィールドから新しいインタフェースを簡単に導出できます。

オプションとして、パラメータ、変数およびメンバーのタイプ仕様などの宣言を、宣言に含まれるタイプ名を新規インタフェース名で置き換えることによって、宣言を汎化することもできます。ただし、すべての宣言を置換できるわけではありません。たとえば、メソッドの起動に使用される変数の宣言は、このメソッドが新規インタフェースに抽出されていない場合は、置換できません。置換はプロジェクト内のすべての場所で行われます。

クラスの宣言が変更され、新しいインタフェースが実装されたことが示されます。

インタフェースを抽出するには、次のようにします。

1. 次のいずれかの方法で、インタフェースを導出するクラスを選択します。

- Javaソース・エディタで、クラス名を選択します。

- ナビゲータまたは構造ウィンドウで、クラス名を選択します。

2. メイン・メニューから、「リファクタ」→「インタフェースの抽出」を選択します。
「インタフェースの抽出」ダイアログが開きます。

3. 「パッケージ」フィールドで、新しいインタフェースのパッケージの名前を入力します。

4. 「インタフェース」フィールドで、新しいインタフェースの名前を入力します。

5. 「抽出するメンバー」表で、新しいインタフェースに含めるメンバーを選択します。

6. クラスを指定する既存の宣言を、インタフェースを指定する宣言に変換する場合は、「使用方法の置換」を選択します。

7. 操作をコミットする前にその使用方法をインスペクトする場合は、「プレビュー」を選択します。このオプションは、「使用方法の置換」を選択した場合にのみ有効になります。

8. 「OK」をクリックします。
「プレビュー」を選択しない場合、インタフェースが作成され、使用方法は置換されません。

18.8.6.4 スーパークラスの抽出方法

現在のクラスの選択メンバーに基づいてスーパークラスを作成できます。スーパークラスは、選択メンバーに一致するフィールド宣言とメソッド宣言から構成されます。

スーパークラスを抽出するには、次のようにします。

1. ナビゲータ、構造ウィンドウまたはJavaソース・エディタ・ウィンドウで、クラス名を選択します。

2. メイン・メニューから、「リファクタ」→「スーパークラスの抽出」を選択します。
「スーパークラスの抽出」ダイアログが開きます。

3. 「パッケージ名」ボックスで、新しいスーパークラスが属するパッケージの名前を入力します。

4. 「クラス名」ボックスで、新しいスーパークラスの名前を入力します。

5. 「抽出するメンバー」表で、新しいインタフェースに含めるメンバーを選択します。
メソッドをスーパークラスのabstractメソッドとして作成する場合は、そのメソッドの「抽象」ボックスを選択します。スーパークラスにメソッドの依存性を含める場合は、「依存性」ボックスを選択します。

6. クラスを指定する既存の宣言を、スーパークラスを指定する宣言に変換する場合、「使用方法の置換」を選択します。

7. 操作をコミットする前にその使用方法をインスペクトする場合は、「プレビュー」を選択します。
このオプションは、「使用方法の置換」を選択した場合にのみ有効になります。

8. 「OK」をクリックします。
「プレビュー」を選択した場合は、プレビュー・ログ・ウィンドウからの抽出操作を完了してください。詳細は、第18.8.3項「コード要素の名前の変更方法」を参照してください。

「プレビュー」を選択しない場合、インタフェースが作成され、使用方法は置換されません。

18.8.6.5 可能な場合のスーパータイプの使用方法

Javaアプリケーションを開発する際に、選択したクラスの参照をスーパータイプの1つへの参照で置き換えることによって、パラメータ、変数およびメンバーのタイプ仕様などの宣言を簡単に汎化できます。ただし、すべての宣言を置換できるわけではありません。たとえば、メソッドの起動に使用される変数の宣言に対する置換は、このメソッドもスーパータイプに定義されていない場合は行われません。置換はプロジェクト内のすべての場所で行われます。

宣言を汎化するには、次のようにします。

1. 次のいずれかの方法で、宣言を汎化するクラスまたはインタフェースを選択します。

- Javaソース・エディタで、名前を選択します。

- ナビゲータまたは構造ウィンドウで、名前を選択します。

2. メイン・メニューから「リファクタ」→「スーパータイプを可能であれば使用」を選択します。
「スーパータイプの使用」ダイアログが開きます。

3. 「スーパータイプ」表で、宣言を汎化するスーパータイプを選択します。

4. 操作をコミットする前にその使用方法をインスペクトする場合は、「プレビュー」を選択します。

5. 「OK」をクリックします。
「プレビュー」を選択した場合は、「プレビュー」ログ・ウィンドウからの抽出操作を完了してください。詳細は、第18.8.3項「コード要素の名前の変更方法」を参照してください。

「プレビュー」を選択しない場合は、ただちに置換が行われます。

18.8.6.6 匿名クラスの内部クラスへの変換方法

無名の内部クラス(匿名クラス)を名前付き内部クラスに変換できます。

匿名クラスを内部クラスに変換するには、次のようにします。

1. Javaソース・エディタ・ウィンドウで、匿名クラスの宣言を選択します。

2. メイン・メニューから、「リファクタ」→「無名を内部クラスに変換」を選択します。
「無名クラスを内部クラスに変換」ダイアログが開きます。

3. 「クラス名」ボックスで、内部クラスの名前を入力します。

4. 内部クラスにstatic修飾子を指定する場合は、「static」ボックスを選択します。

5. 匿名クラスを内部クラスに変換するには、「OK」をクリックします。

18.8.6.7 内部クラスの移動方法

最上位レベルに新しく作成したクラスに内部クラスを移動できます。

内部クラスを移動するには、次のようにします。

1. 「構造」ペインまたはJavaソース・エディタ・ウィンドウで、内部クラス名を選択します。

2. メイン・メニューから、「リファクタ」→「移動」を選択します。「内部クラスの移動」ダイアログが開きます。

3. 新しい最上位レベルのクラスを作成する際に、ダイアログに表示された名前を使用しない場合は、この名前を上書きするか、新しい名前を選択します。

4. ダイアログに表示された詳細内容を使用して新しい最上位レベルのクラスを作成する場合は、「OK」をクリックします。

18.8.7 メンバーのリファクタ

Javaアプリケーションを開発する際に、メンバー定義をクラス間で簡単に移動できます。

18.8.7.1 クラス・メンバーの移動方法

クラス・メンバー(メソッドなど)を別のクラスに移動できます。

staticではないメソッドを移動するには、次の手順を実行します。

1. 構造ウィンドウまたはJavaソース・エディタ・ウィンドウで、メソッド名を選択します。

2. メイン・メニューから、「リファクタ」→「移動」を選択します。
メンバーの移動先に適したターゲットが少なくとも1つ存在する場合は、「メンバーの移動」ダイアログが開きます。適したターゲットが存在しない場合、メッセージ・ボックスが表示されます。

3. 「ターゲット」パネルで、メンバーの移動先のクラスを選択します。

4. 新しい場所でメソッドおよびパラメータに新しい名前を使用する場合、「メソッド名」および「パラメータ名」ボックスに新しい名前を入力します。

5. 移動後にメンバーの使用方法を処理する方法を選択します。

- 新規作成された代行メソッドを通じて使用方法を処理する場合は、「代行の使用」を選択します。

- すべての使用方法を、移動後のクラス・メンバーを直接呼び出す使用方法に置き換える場合には、「置換」を選択します。

staticメソッドを移動するには、次の手順を実行します。

1. 構造ウィンドウまたはJavaソース・エディタ・ウィンドウで、メソッド名を選択します。

2. メイン・メニューから、「リファクタ」→「移動」を選択します。
「メンバーの移動」ダイアログが開きます。

3. 「ターゲット」パネルで、メンバーの移動先のクラスを入力または選択します。

4. 移動するメンバーごとに、「抽出するメンバー」リストのメンバーの左側にあるチェック・ボックスが選択されていることを確認します。

5. メンバーの依存性も移動する場合、「依存性」列で対応するチェック・ボックスを選択します。

18.8.7.2 メソッドのシグネチャを変更する方法

メソッドのシグネチャを変更できます。メソッドのシグネチャは、メソッドの名前とパラメータの番号およびタイプ(およびそれらの順序)の組合せです。

メソッドのシグネチャを変更するには、次のようにします。

1. 構造ウィンドウまたはJavaソース・エディタで、メソッド名を選択します。

2. メイン・メニューから、「リファクタ」→「メソッドの変更」を選択します。
「メソッドの変更」ダイアログが開きます。

3. 必要に応じて、メソッドの名前、戻り型、アクセス・レベルおよびパラメータを変更します。
メソッドの名前をすでにクラスに存在する名前に変更する場合は、次に2番目のダイアログが表示されます。このダイアログを使用して、変更するメソッドのすべての使用方法を既存のメソッドの使用方法に置換できます。

4. 変更内容に基づいてタスクを作成し、「タスク」ウィンドウに追加する場合、「タスクをタスク・ウィンドウに追加」ボックスを選択します。

注意:

この機能はコンストラクタには適用されません。

18.8.7.3 メソッドをstaticメソッドに変更する方法

メソッドにstatic修飾子を割り当てることができます。

メソッドをstaticメソッドに変更するには、次のようにします。

1. 構造ウィンドウまたはJavaソース・エディタで、メソッド名を選択します。

2. メイン・メニューから、「リファクタ」→「staticにする」を選択します。
クラスがクラス階層の一部である場合、「staticにする」ダイアログが開きます。クラスがクラス階層の一部ではない場合、ただちにstatic修飾子が追加されます。

3. 「staticにする」ダイアログが開いた場合は、次の操作を行います。

- 「名前」ボックスで、変更済メソッド内で参照として使用する名前を入力または選択します。
表示されるオプションはローカル・オブジェクト名から導出されます。

- オーバーライドできないメソッドを作成する場合は、「finalを宣言」ボックスを選択します。

18.8.7.4 メンバーをスーパークラスへプル・アップする方法

Javaアプリケーションを開発する際に、メンバーの定義をクラス(ソース・クラス)からそのスーパークラスの1つ(ターゲット・クラス)に簡単に移動できます。プロジェクト内にこのクラスの潜在的なターゲット・クラスが1つ以上存在する場合にのみ、この操作をクラスに適用できます。メンバーをライブラリ・クラスにプル・アップすることはできません。同様に、このリファクタ・コマンドは、スーパークラス句または実装されているインタフェースの一覧で宣言されているクラスにのみ適用されます。

デフォルトでは、メソッドをプル・アップすると、その定義はソース・クラスからターゲット・クラスに移動されます。メソッドを抽象化するように選択することもできます。この場合、メソッド定義はソース・クラスに残り、メソッドの宣言がターゲット・クラスに追加されます。メソッドを抽象化すると、ターゲット・クラスが未変換の場合は、ターゲット・クラスが抽象クラスに変換されます。

プル・アップ対象のメンバーには依存性がある場合があります。依存性がプル・アップ対象のメンバーの定義で使用されている場合、メンバーに依存性があります。依存性をプル・アップしないでメンバーをプル・アップすると、ターゲット・クラスに未定義の参照が発生します。プル・アップするメンバーを選択すると、そのメンバーの依存性が示されます。この場合、依存性もプル・アップするかどうかを選択できます。

privateとして宣言されたメンバーをプル・アップする場合、アクセスはprotectedに変更されます。

メンバーをプル・アップするには、次のようにします。

1. 次のいずれかの方法で、メンバーのプル・アップ元にするクラスを選択します。

- Javaソース・エディタで、名前を選択します。

- ナビゲータまたは構造ウィンドウで、名前を選択します。

2. メイン・メニューから「リファクタ」→「メンバーのプル・アップ」を選択します。
「メンバーのプル・アップ」ダイアログが開きます。

3. 「ターゲット」ドロップダウン・メニューからターゲット・クラスとなるスーパークラスを選択します。

4. 「抽出するメンバー」表で、プル・アップするメンバーを選択します。
存在する場合、選択したメンバーに依存性があるメンバーが示されます。

5. メソッドをターゲット・クラスに抽象化する場合、「抽象」列のチェック・ボックスを選択します。

注意:

抽象化されるメンバーには依存性はありません。

6. メンバーのすべての依存性もプル・アップする場合は、「依存性」列のチェック・ボックスを選択します。
この選択によって依存オブジェクトが生成されます。すなわち、依存性の依存性もプル・アップされます。

7. 「OK」をクリックします。

18.8.7.5 メンバーをサブクラスへプッシュ・ダウンする方法

Javaアプリケーションを開発する際に、メンバーの定義をクラス(ソース・クラス)から直下のサブクラス(ターゲット・クラス)に簡単に移動できます。

デフォルトでは、メソッドをプッシュ・ダウンすると、メソッドの定義はソース・クラスからターゲット・クラスに移動します。メソッドの宣言をソース・クラスに残し、ソース・クラスが未変換の場合は、ソース・クラスを抽象クラスに変換するように選択することもできます。

プッシュ・ダウン対象のメンバーには依存性がある場合があります。メンバーがプッシュ・ダウン対象のメンバーの定義を使用している場合、このメンバーには依存性があります。依存性をプッシュ・ダウンしないでメンバーをプッシュ・ダウンすると、ソース・クラスに未定義の参照が発生します。プッシュ・ダウンするメンバーを選択すると、その依存性が示されます。この場合、依存性もプッシュ・ダウンするかどうかを選択できます。

メンバーをプッシュ・ダウンするには、次のようにします。

1. 次のいずれかの方法で、メンバーのプル・アップ元にするクラスを選択します。

- Javaソース・エディタで、名前を選択します。

- ナビゲータまたは構造ウィンドウで、名前を選択します。

2. メイン・メニューから「リファクタ」→「メンバーのプッシュ・ダウン」を選択します。
「メンバーのプッシュ・ダウン」ダイアログが開きます。

3. 「抽出するメンバー」表で、プッシュ・ダウンするメンバーを選択します。
存在する場合、選択したメンバーに依存性があるメンバーが示されます。

4. メンバーの抽象定義をソース・クラスに残す場合は、「抽象」列でのチェック・ボックスを選択します。
この選択によって依存オブジェクトが生成されます。すなわち、依存性の依存性もプッシュ・ダウンされます。

5. 「OK」をクリックします。

18.8.8 式のリファクタ

Javaアプリケーションを開発する際に、式を名前付き要素に簡単に変換できます。

18.8.8.1 メソッド・コールをインライン化する方法

メソッド本体をコール元の本体に取り込み、元のメソッドを削除できます。これは、メソッド・コールのインライン化と呼ばれます。

メソッド・コールをインライン化するには、次のようにします。

1. Javaソース・エディタで、インライン化するメソッド・コールのインスタンスを選択します。

2. メイン・メニューから「リファクタ」→「インライン」を選択します。

- このクラスのメソッドに対するコールが1つのみである場合は、ただちに変更が行われます。

- このクラスのメソッドに対するコールが複数ある場合は、「インライン」ダイアログが開きます。

3. 「インライン」ダイアログが開いた場合は、次のようにします。

- 選択したコールのインスタンスのみをインライン化するか、コールのすべてのインスタンスをインライン化するかを選択します。

- 「OK」をクリックします。

18.8.8.2 フィールドの導入方法

Javaアプリケーションを開発する際に、式をフィールドの参照に簡単に変換できます。新しいフィールド宣言がクラスに追加され、選択した式によって初期化されます。元の式は、新しいフィールドの参照と置き換えられます。

式のタイプがvoidである場合、式をフィールドに変換することはできません。

フィールドを導入するには、次のようにします。

1. ソース・エディタで、式を選択します。

2. メイン・メニューから「リファクタ」→「フィールドの導入」を選択します。
「フィールドの導入」ダイアログが開きます。

3. 「タイプ」ドロップダウン・メニューからフィールドのタイプを選択します。
メニューには、この式に一致するタイプがすべて表示されます。有効なタイプが1つのみの場合、このオプションは表示されません。

4. 「名前」テキスト・ボックスには、名前が表示されます。
表示された名前を変更または置換したり、ドロップダウン・メニューから別の名前を選択できます。

5. 初期化方法を選択します。

- 「現在のメソッド」を選択し、式を含む文の直前にフィールドの代入文を配置します。

- 「フィールド宣言」を選択し、宣言文でフィールドに値を割り当てます。式にローカル・スコープの変数またはパラメータがある場合、このオプションは無効になります。

- 「コンストラクタ」を選択し、クラスのコンストラクタ・メソッドでフィールドに値を割り当てます。式にローカル・スコープの変数またはパラメータがある場合、このオプションは無効になります。

6. 「OK」をクリックします。

18.8.8.3 変数の導入方法

Javaアプリケーションを開発する際に、式を変数の参照に簡単に変換できます。新しい変数宣言がメソッドに追加され、選択した式によって初期化されます。元の式は新しいメンバーの参照と置き換えられます。

式のタイプがvoidである場合、この式をメンバーに変換することはできません。

メンバーを導入するには、次のようにします。

1. ソース・エディタで、式を選択します。

2. メイン・メニューから「リファクタ」→「変数の導入」を選択します。
「変数の導入」ダイアログが開きます。

3. 「タイプ」ドロップダウン・メニューからフィールドのタイプを選択します。
メニューには、この式に一致するタイプがすべて表示されます。有効なタイプが1つのみの場合、このオプションは表示されません。

4. 「名前」テキスト・ボックスには、名前が表示されます。
表示された名前を変更または置換したり、ドロップダウン・メニューから別の名前を選択できます。

5. 変数の宣言にfinal修飾子を追加する場合は、「finalを宣言」を選択します。

6. 「OK」をクリックします。

18.8.8.4 パラメータの導入方法

Javaアプリケーションを開発する際に、メソッド本体の定数式をメソッドの新しいパラメータに簡単に変換できます。式は新しいパラメータの名前に置き換えられ、新しいパラメータがメソッドのパラメータ・リストに追加されます。また、すべてのメソッドの起動で、この式は追加引数として挿入されます。

リテラルまたはリテラルの操作が存在する場合にのみ、式をパラメータとして導入できます。

この操作は、インタフェースを実装するメソッドに対しては禁止されています。このようなメソッドのシグネチャを変更すると、実装が無効化されます。

パラメータを導入するには、次のようにします。

1. ソース・エディタで、式を選択します。

2. メイン・メニューから「リファクタ」→「パラメータの導入」を選択します。
「パラメータの導入」ダイアログが開きます。

3. 「タイプ」ドロップダウン・メニューからフィールドのタイプを選択します。
メニューには、この式に一致するタイプがすべて表示されます。有効なタイプが1つのみの場合、このオプションは表示されません。

4. 「名前」テキスト・ボックスに名前が表示されます。
表示された名前を変更または置換したり、ドロップダウン・メニューから別の名前を選択できます。

5. 変数の宣言にfinal修飾子を追加する場合は、「finalを宣言」を選択します。

6. 「OK」をクリックします。

18.8.8.5 定数の導入方法

Javaアプリケーションを開発する際に、定数式を定数参照に簡単に変換できます。定数式によって初期化された新しい定数宣言がクラスに追加され、元の定数式は定数の名前によって置き換えられます。

リテラルまたはリテラルの操作が存在する場合にのみ、式を定数として導入できます。

定数を導入するには、次のようにします。

1. ソース・エディタで、式を選択します。

2. メイン・メニューから「リファクタ」→「定数の導入」を選択します。
「定数の導入」ダイアログが開きます。

3. 「タイプ」ドロップダウン・メニューからフィールドのタイプを選択します。
メニューには、この式に一致するタイプがすべて表示されます。有効なタイプが1つのみの場合、このオプションは表示されません。

4. 「名前」テキスト・ボックスに名前が表示されます。
表示された名前を変更または置換したり、ドロップダウン・メニューから別の名前を選択できます。

5. 「OK」をクリックします。

18.8.8.6 メソッドの抽出方法

Javaアプリケーションを開発する際に、メソッドの本体の一部を抽出して別のメソッドを簡単に作成できます。抽出したコードは、元のメソッドで新しいメソッドへのコールに置き換えられます。抽出したコードで使用されていたローカル変数およびパラメータは、新しいメソッドのパラメータになります。抽出したコードの文によって行われる割当てが存在する場合は、元のメンバーで新しいメソッドへのコール値を使用する割当てに変換されます。

抽出を行うには、コードが次の制限を満たす必要があります。

- 単一の完全な式または一連の完全な文で構成されていること。

- 選択したコードの外部に宣言がある、複数の変数に割り当てることができないこと。

- 複数の終了ポイントを使用できないこと。終了ポイントとは、選択したコードで捕捉されない例外をスローする文、選択したコードの外部のループのbreakまたはcontinue文、またはreturn文です。

新しいメソッドは、元のメソッドと同じクラスに追加されます。新しいメソッドは、privateとして宣言されます。

注意:

選択したコード・ブロックのみが、抽出されたメソッドによって置換されます。その他の同じコード・ブロックは置換されません。

メソッドを抽出するには、次のようにします。

1. ソース・エディタで、抽出する式または一連の式を選択します。

2. メイン・メニューから、「リファクタ」→「メソッドの抽出」を選択します。
「メソッドの抽出」ダイアログが開きます。

3. 新しいメソッドの名前を入力します。

4. 「パラメータ」リストで、選択したコードに表示されるローカル変数およびパラメータに対して行う置換を指定します。

- 「名前」列には、元の名前と似ているか同じ置換名が表示されます。これらの名前を選択して変更できます。

- 「対象」列で、新しいメソッドのパラメータとなる提案パラメータを選択します。選択しないパラメータは、新しいメソッドでは初期化されていないローカル変数になります。

- 「上へ」ボタンと「下へ」ボタンを使用してパラメータを並べ替えます。

5. 新しいメソッドをstaticとして宣言する場合は、「static」を選択します。
メソッドがstaticメソッドからコールされるためにメソッドが強制的にstaticに設定されている場合、またはstatic以外のメンバーを使用するためにメソッドがstatic以外に強制的に設定されている場合は、このオプションは無効です。

6. 「OK」をクリックします。
新しいメソッドはクラスに追加され、選択したコードは新しいメソッドへのコールによって置き換えられます。

7. 「パラメータ」リスト内の提案パラメータを選択しない場合は、新しいメソッドを編集してローカル変数を初期化します。

18.8.8.7 コンストラクタをファクトリ・メソッドと置換する方法

コンストラクタをファクトリ・メソッドに変換できます。

コンストラクタをファクトリ・メソッドに変換するには、次のようにします。

1. 構造ウィンドウまたはJavaソース・エディタで、コンストラクタ名を選択します。

2. メイン・メニューから、「リファクタ」→「コンストラクタをファクトリ・メソッドと置換」を選択します。
「コンストラクタをファクトリ・メソッドと置換」ダイアログが開きます。

3. 「メソッド名」ボックスで、新しいメソッドの名前を入力します。
ボックスには、現在のクラス名に基づいて提案された名前がすでに表示されています。

4. コンストラクタをファクトリ・メソッドに変換するには、「OK」をクリックします。

18.8.8.8 フィールドをカプセル化する方法

publicアクセス可能なクラスのフィールドを、クラス内からのみアクセス可能に変更できます。

フィールドをカプセル化するには、次のようにします。

1. 構造ウィンドウまたはJavaソース・エディタでフィールド名(またはその親クラス)を選択します。

2. メイン・メニューから、「リファクタ」→「フィールドのカプセル化」を選択します。
「フィールドのカプセル化」ダイアログが開きます。

3. 「フィールド」表で、カプセル化する各フィールドの隣にあるボックスを選択します。
このダイアログでは、メソッドまたはフィールドのアクセス・レベルおよび置換の有効範囲のオプションを指定することもできます。

4. カプセル化の一部としてアクセッサを置換する方法を選択します。

5. 変更内容に基づいてタスクを作成し、「タスク」ウィンドウに追加する場合、「タスクをタスク・ウィンドウに追加」ボックスを選択します。

6. 操作をコミットする前に変更をインスペクトする場合は、「プレビュー」を選択します。

7. 「OK」をクリックします。
「プレビュー」を選択した場合は、「プレビュー」ログ・ウィンドウからの抽出操作を完了してください。詳細は、第18.8.3項「コード要素の名前の変更方法」を参照してください。

18.8.8.9 ブール式の反転方法

Javaアプリケーションの開発中に、ブールのフィールド、パラメータまたはローカル変数を選択し、反対の値で初期化できます。JDeveloperは自動的にすべての参照を修正し、同じコード機能を維持します。JDeveloperがすべてのフィールド、パラメータ、ローカル変数を参照し、すべての使用方法を反転します。このリファクタによって、ブールのメソッドまたは変数の意味が反転します。trueに評価されるブール式はfalseになります。同様に、falseに評価されるブール式はtrueになります。

たとえば、有効になっている変数があり、その意味を反転する場合には、「ブールの反転」メニューの選択によって、使用方法を無効にします。

ブールを反転するには、次のようにします。

1. ソース・エディタで、ブール式を選択します。

2. 式を右クリックし、「リファクタ」→「ブールの反転」を選択します。
表18-1は、反転したブール式の例を示しています。

表18-1 ブールの反転の例

前

後

private double a;...public boolean method() { if (enabled){ a =5; return true; } false;

}

private double a;...public boolean method() { if (disabled{ a =5; return false; } return true;}

18.9 アプリケーションのパフォーマンスの最適化

JDeveloperでは、Javaコードの品質およびパフォーマンスを分析するためのツールが提供されています。これらのツールを使用すると、コードの品質とプログラミング・スキルの両方が向上します。JDeveloperの監査機能を使用すると、Javaコードがプログラミング規格に準拠しているかどうかを分析できます。

監査とは、プログラミング規格を定義している規則およびメトリックに準拠しているかどうかについてのコードの静的な分析のことです。コード監査では、コードの改善および保守を困難にしている不具合が検出されます。JDeveloperのコード監査ツールを使用すると、このような不具合を検出および修正できます。コンパイルが不可能または実行不可能な場合でも、コードの監査は可能です。

- 規則とは、ある機能の有無に関する定性試験のことです。たとえば、Javaコーディングの共通のスタイルとして、クラス名を大文字にする必要があります。規則に準拠していない場合は、違反が発生します。

- コード測定は、サイズまたは複雑さの定量測定です。たとえば、メソッドのサイズが大きすぎたり、メソッドで扱うケースの数が多すぎる場合、その機能の一部を別のメソッドに委譲する必要があります。指定の上限を超えると、しきい値超過異常が発生します。

プロファイルを作成してカスタマイズし、使用する規則を選択して個々の規則のパラメータを設定できます。詳細は、それぞれのコード監査規則およびコード測定を参照してください。詳細は、第18.9.25項「コード監査規則、コード・アシストおよびコード測定の参照方法」を参照してください。

Developerのコード監査機能とコード測定機能は拡張可能です。コード監査およびコード測定は、それぞれカスタマイズおよび拡張可能なソース・コード分析および変換フレームワークのある2つの側面です。コード監査およびコード測定用のパブリックAPIは、oracle.jdeveloper.auditパッケージです。

Javaコードを監査するには、次のようにします。

- 監査ツールをソース・ファイルに対して実行し、コード監査レポートを生成します。詳細は、第18.9.6項「コード監査レポート生成のためにコード監査を実行する方法」を参照してください。

- 編集中にコード監査を行う場合は、コード・アシストを使用します。コード監査違反は編集時にハイライト表示され、自動修正を適用できます。

- コマンドラインからコード監査を実行して、コード監査レポートを生成します。詳細は次の項を参照してください。

- ステータス・ウィンドウには、アクティブなビューで選択したドキュメントで発生したコード監査違反が表示されます。

コード監査レポートには、ルール違反および測定結果がツリーに編成されて表示されます。ツリーの各行は構成メンバーまたは違反のいずれかに対応しており、その構成メンバーまたは理論上の違反に対するすべての測定値が含まれます。構成メンバーは、メソッド、クラス、ファイル、プロジェクトまたはワークスペースです。

規則には、次のプロパティがあります。

デフォルト修正

この規則の違反に対する修正が使用されるのは、「デフォルトの修正を適用」が構成メンバーに適用されている場合です。

パターン

規則と異なる識別子を検出するフィルタとして使用される正規表現です。

重大度

コード監査レポートで規則違反をソートする場合に使用します。

可視性

アクセス・レベルのキーワードに基づくしきい値です。違反は、可視性が選択されているクラスまたはメソッドで発生した場合にのみ報告されます。

18.9.1 コード監査規則の理解

コード監査規則は、静的かつ定性的なコード分析です。

コード監査プロファイルで、プロパティの設定によって個別の規則を有効にしたり、構成できます。コード構成メンバーが規則に従っていない場合、規則違反が報告されます。一部の規則には自動修正が定義されており、ユーザーが適用を選択できます。

表18-2 コード監査規則

規則

説明

デフォルト修正

この規則の違反に対する修正が使用されるのは、「デフォルトの修正を適用」が構成メンバーに適用されている場合です。

パターン

規則と異なる識別子を検出するフィルタとして使用される正規表現です。

重大度

コード監査レポートで規則違反をソートする場合に使用します。

接頭辞

接頭辞が規則と異なる識別子を検出する場合に使用される正規表現です。

可視性

アクセス・レベルのキーワードに基づくしきい値です。違反は、可視性が選択されているクラスまたはメソッドで発生した場合にのみ報告されます。

18.9.2 監査のコード測定の理解

監査のコード測定は、静的かつ量的なコード分析です。

コード監査プロファイルで、個別のコード測定を有効にしたり、構成できます。コード測定は、しきい値を使用して設定します。コード構成メンバーがしきい値を超えると、しきい値超過の測定がコード監査レポートに報告されます。

JDeveloperでは、次のコードが測定されます。

継承ツリーの深度(DIT)

クラスの継承ツリーの深さ。通常、java.lang.ObjectのDITは1、java.lang.Objectを直接拡張したクラスのDITは2のようになります。

文の数(NOS)

Java文でのメソッド、クラスまたは他の構成メンバーのサイズ。

循環的複雑度(V(G))

メソッドのブランチの複雑さ。メソッドを含む構成メンバー(クラスやプロジェクトなど)には、そのメソッドについて測定されたうち最大の複雑度が割り当てられます。値が10を超える場合は通常、問題ありと判断されます。

18.9.3 コード監査ツールの使用

監査ツールを使用すると、監査レポートを表示したり、規則違反やしきい値を超える測定結果を調査および修正できます。コード監査が開始されると、ログ・ウィンドウに新しいタブが作成され、このタブにコード監査レポートが表示されます。

監査とは、プログラミング規格を定義している規則およびメトリックに準拠しているかどうかについてのコードの静的な分析のことです。コード監査では、コードの改善および保守を困難にしている不具合が検出されます。JDeveloperの監査ツールを使用すると、このような不具合を検出および修正できます。コンパイルが不可能または実行不可能な場合でも、コードの監査は可能です。

18.9.3.1 「コード監査」ウィンドウの「レポート」パネルの使用

コード監査レポートとは、構成に編成されたツリーとして表示される規則違反およびコード測定結果のセットのことです。構成には、メソッド、クラス、パッケージ、ファイル、プロジェクトまたはワークスペースがあります。監査プロファイルに規則が含まれている場合、表には「重大度」列が含まれ、指定した構成の重大度が表示されます。監査プロファイルにメトリックが含まれている場合、表にはメトリックごとに列が追加され、構成の測定結果が表示されます。

列のコンテンツを基にレポートをソートするには、列ヘッダーをクリックします。ソート順序を逆にするには、再度クリックします。

18.9.3.2 「コード監査」ウィンドウのツールバーの使用

「ログ」ウィンドウのツールバーから、表18-3に示した操作を実行できます。

表18-3 「コード監査」ウィンドウのツールバー・アイコン

アイコン

名前

説明

リフレッシュ

同じプロファイルを使用して同じ選択項目に対してコード監査を再実行する場合にクリックします。

取消

実行中の監査を中断する場合にクリックします。結果の一部が表示される場合があります。

エクスポート

レポートをファイルに保存できる「結果のエクスポート」ダイアログを開く場合にクリックします。結果は、XML、HTMLまたはプレーン・テキストで保存できます。

すべて展開

レポート内のすべてのコンテナ・ノードを展開し、すべての行を表示する場合にクリックします。

すべて閉じる

レポート内のすべてのコンテナ・ノードを閉じ、トップレベルの構成以外のすべてを非表示にする場合にクリックします。

構成をグループ化

表示するコンテナ構成のタイプを指定できる「グループ化」ダイアログを開く場合にクリックします。構成別にグループ化すると、結果の適切な編成、不具合および違反の迅速な追跡、結果を簡単に分析できます。

修正

ドロップダウン・メニューから規則違反に対する修正を選択します。個々の規則違反に対して、その違反タイプに定義されている修正から選択します。グループ構成には、「デフォルトの修正を適用」のみを選択できます。これにより、そのタイプに定義されているデフォルトの修正(存在する場合)が適用されます。

しきい値を超えるもののみ表示

許容範囲内にある測定結果の表示を切り替えます。しきい値は、コード測定の設定可能なプロパティの1つです。

18.9.3.3 フィルタの使用

違反が表示されているJavaクラスのセットを削除する場合はフィルタを指定します。パッケージ名、クラス名またはその両方を基準にしてフィルタできます。フィルタは、カンマで区切られた1つ以上のパターンで構成されます。

パターンには、次の特殊文字を含めることができます。

- *は、任意の数の文字に一致します。

- ?は、任意の1文字に一致します。

- !がパターンの先頭にある場合は、除外パターンを示します。

フィルタを渡すクラスのセットは、パターンの順序を考慮して決定されます。非除外パターンでは、パターンに一致するすべてのクラスがセットに追加され、除外パターンでは、パターンに一致するすべてのクラスがセットから削除されます。表18-4は、指定できるフィルタを示しています。

表18-4 フィルタ

名前

説明

パッケージ

完全修飾クラス名の最後の要素以外のすべてに適用されるフィルタのパターンを入力します。このフィールドが空の場合、フィールドは無効です。

ファイル

完全修飾クラス名の最後の要素にのみ適用されるフィルタのパターンを入力します。このフィールドが空の場合、フィールドは無効です。

適用

特定の「パッケージ」フィルタおよび「ファイル」フィルタをレポート行に適用する場合にクリックします。

クリア

「パッケージ」フィルタおよび「ファイル」フィルタを消去する場合やレポート行をリストアする場合にクリックします。

18.9.3.4 「コード監査」ウィンドウのポップアップ・メニューの使用

1つ以上の構成(コンテナ・ノード)または規則違反(リーフ・ノード)を選択し、右クリックしてポップアップ・メニューを開きます。ポップアップ・メニューから、選択した構成または規則違反に対して、表18-5に示す操作を実行できます。

表18-5 「コード監査」ウィンドウのポップアップ・メニュー項目

名前

説明

デフォルトの修正を適用

選択した各規則違反または選択した構成内のすべての違反にデフォルトの修正(存在する場合)を適用する場合に選択します。デフォルトの修正は、「ツール」→「プリファレンス」→「コード監査: プロファイル」ページを使用して定義できます。

<修正>の適用

構成内の選択した規則違反に対してこの修正を適用する場合に選択します。

<Rule>について

この規則違反に対して適用される規則の説明を表示する場合に選択します。

<規則>違反を非表示

選択した規則のすべての違反をレポートから削除する場合に選択します。

非表示の違反を表示

前に非表示にしたすべての違反をリストアする場合に選択します。

しきい値を超えるもののみ表示

許容範囲内にある測定結果の表示を切り替える場合にクリックします。

取消

実行中のコード監査を終了する場合に選択します。

リフレッシュ

コード監査を再実行する場合に選択します。

グループ化

表示するコンテナ構成のタイプを指定できる「グループ化」ダイアログを開く場合に選択します。

すべて展開

レポート内のすべてのコンテナ・ノードを展開し、すべての行を表示する場合にクリックします。

すべて閉じる

レポート内のすべてのコンテナ・ノードを閉じ、トップレベルの構成以外のすべてを非表示にする場合にクリックします。

ソースに移動

規則違反があった位置でソース・ファイルを開く場合に選択します。必要に応じて、ファイルを編集して違反を修正できます。

エクスポート

レポートをファイルに保存できる「結果をエクスポート」ダイアログを開く場合に選択します。

18.9.4 JDeveloperでJavaコードを監査する方法

JDeveloperのコード監査ツールを使用すると、コードの改善および保守を困難にしている不具合が検出されます。コードは、コンパイルが不可能または実行不可能な場合も監査できます。監査のフォーカスは、コード監査の規則およびコード測定のセットであるプロファイルによって定義されます。

それぞれのコード監査規則およびコード測定を参照して詳細を確認できます。詳細は、第18.9.25項「コード監査規則、コード・アシストおよびコード測定の参照方法」を参照してください。

Javaコードを監査するには、次のようにします。

1. Javaプログラムの分析に使用する規則、コード・アシスト、コード測定を指定するコード監査プロファイルを作成します。コード監査プロファイルで、プロパティの設定によって個別の規則やメトリックを有効にしたり、構成できます。コード構成メンバーが規則に従っていない場合、規則違反が報告されます。

2. 監査レポートを実行します。

- メイン・メニューから監査のビルド....を選択します。詳細は、第18.9.6項「コード監査レポート生成のためにコード監査を実行する方法」を参照してください。

- Javaコードは、ojaudit.exeを呼び出してコマンドラインから監査することもできます。ojaudit.exeはJDeveloperのインストールに付属しています。詳細は、第18.9.5項「コマンドラインからのJavaコードの監査」を参照してください。

3. 完了した監査レポートで規則違反をインスペクトします。詳細は、第18.9.15項「コード監査レポートの違反またはコード測定結果のインスペクト方法」を参照してください。
「監査レポート」には、ルール違反および測定結果がツリーに編成されて表示されます。ツリーの各行は構成メンバーまたは違反のいずれかに対応しており、その構成メンバーまたは理論上の違反に対するすべての測定値が含まれます。構成メンバーは、メソッド、クラス、ファイル、プロジェクトまたはワークスペースです。

4. コード監査規則違反を、手動でソースを編集して修正できます。一部の規則違反については、自動修正を選択して修正します。詳細は、第18.9.16項「コード監査規則違反の修正方法」を参照してください。

5. 監査を再実行する場合には、規則、コード・アシストおよびメトリックを有効化または無効化するか、またはそれらの構成を変更することによって、コード監査プロファイルを変更できます。詳細は、第18.9.22項「コード監査プロファイルの変更方法」を参照してください。

完了したコード監査レポートをXMLファイル、HTML形式またはテキスト・ファイルとして保存できます。詳細は、第18.9.14項「コード監査レポートの保存方法」を参照してください。書式設定は、/jdev//audit/stylesheetsディレクトリ(このディレクトリはコード監査を実行するまで作成されません)のXSLスタイルシート・ファイルで定義されます。カスタム・フォーマットを作成するには、事前定義されたスタイルシート・ファイルの1つをコピーして、このディレクトリに追加します。

18.9.5 コマンドラインからのJavaコードの監査

JDeveloperインストールに付属している<jdev_install>/jdeveloper/jdev/binディレクトリ内のojaudit.exeを起動すると、コマンドラインからワークスペース、プロジェクトまたはソース・ファイルを監査できます。

形式

ojaudit option... file...

表18-6は、監査の際に使用できるパラメータを示しています。

表18-6 コマンドライン・パラメータ

パラメータ

説明

file

コード監査対象のワークスペース・ファイル(.jws)、プロジェクト・ファイル(.jpr)またはソース・ファイル(.java)。

-classpath path

プロジェクトが監査されていない場合に、監査するファイルのクラスパスを設定します。

-encoding code

レポートの文字コード。指定しない場合は、プロジェクトに指定されている文字コードが使用されます(プロジェクトの「プロジェクト・プロパティ」ダイアログのコンパイラ・ページを参照してください)。

-disable rule

プロファイル内の規則を無効にします。複数の値を指定するには、このオプションを繰り返します。

-enable rule

プロファイル内の規則を有効にします。複数の値を指定するには、このオプションを繰り返します。

-fail severity

監査者によって障害とみなされる問題の重大度を設定します。

-f[ix]

デフォルトの修正をコードに適用します。このオプションを適用すると、ソース・ファイルが変更されます。

-h[elp]

helpコマンドに関するヘルプを表示して終了します。

-o[utput] file

出力ファイルのパス名。省略時は、出力は標準出力に書き込まれます。

-p[rofile] name

(必須)使用するプロファイル。JDeveloperで定義されているプロファイル(「ツール」→「プリファレンス」ダイアログの「コード監査」→「コード監査プロファイル」ページで設定)のいずれか、またはエクスポートされたコード監査プロファイル・ファイルのパス名です。

一致するプロファイルを検索するときに、大文字/小文字および空白は無視されます。

-profilehelp

定義済プロファイル名を出力して終了します。

-project file

ソース・ファイルであるパラメータに使用されるプロジェクト・コンテキスト。すべてのパラメータがプロジェクトまたはワークスペースの場合、このオプションは必要ありません。

-q[uiet]

著作権メッセージを非表示にします。

-sourcepath path

プロジェクトが監査されていない場合に、監査するファイルのソースパスを設定します。

-s[tyle] file

レポートに適用されるXSLTスタイルシート。この名前は、JDeveloperで定義されているスタイルシートか、またはスタイルシート・ファイルのパス名です。指定しない場合、XMLファイルで出力されます。

一致する定義済スタイルシートを検索するとき、大文字/小文字および空白は無視されます。

-stylehelp

定義済スタイルシート名を出力して終了します。

-title text

レポートに使用されるタイトル。-untitledを指定していない場合にこのオプションを指定しないと、デフォルトのタイトルが使用されます。

-untitled

レポートのタイトルを省略します。

-v[erbose]

実行メッセージをすべて表示します。

-version

コマンドのバージョンを表示して終了します。

-w[orkspace]

ワークスペースではないパラメータに使用されるワークスペース・コンテキスト。ワークスペースが指定されていない場合、デフォルトのワークスペースが合成されます。

workspace file

監査するファイルのワークスペース・コンテキストを設定します。

18.9.6 コード監査レポート生成のためにコード監査を実行する方法

Developerでは、Javaプログラムのコード監査と、コード監査レポートの生成が可能です。

JDeveloperでJavaコードを監査するには、次のようにします。

1. アプリケーション・ナビゲータで、1つ以上のアプリケーション、プロジェクトまたはJavaソース・ファイルを選択します。監査コマンドは、エディタや構造ウィンドウなど、他のビューから選択して実行することもできます。

2. メイン・メニューから「ビルド」、「監査 - target」を選択します。
「監査 - <ファイル、プロジェクトまたはアプリケーション>」ダイアログが表示されます。

3. 次の2つの方法のいずれかで、使用するプロファイルを選択します。

- 「プロファイル」ドロップダウン・メニューから使用するプロファイルを選択します。

- 「編集」をクリックしてプロファイルを作成または変更します。

4. 「実行」をクリックします。
コード監査レポートがログ・ウィンドウに表示され、コード監査が開始されます。監査を停止する場合には、ログのツールバーの停止アイコンをクリックします。

18.9.7 serialVersionUIDを持たないシリアル化可能フィールドのコード監査方法

オブジェクトは、java.io.Serializableインタフェースを実装することによってシリアル化可能とマークされます。これは、バイトにフラット化し後で展開できることを示します。

バージョニングを可能にする、serialVersionUIDという識別子があります。

java.io.Serializableを実装しているがserialVersionUIDを持たないすべてのクラスにフラグを設定するコード監査を実行できます。

コード監査規則を設定するには、次のようにします。

- メイン・メニューから「ツール」、「プリファレンス」、「コード監査」、「プロファイル」の順に選択します。

18.9.8 シリアライズできないフィールドのコード監査方法

オブジェクトは、java.io.Serializableインタフェースを実装することによってシリアル化可能とマークされます。これは、バイトにフラット化し後で展開できることを示します。

オブジェクトのフィールドでシリアル化を無効にするには、そのオブジェクトのクラスのフィールドに、Javaのtransientキーワードでタグを設定します。クラスがシリアル化可能とマークされていても、transientとしてマークされておらずシリアル化できないフィールドを含んでいる場合、そのクラスはシリアル化できません。コード監査を実行すると、このようなシリアル化できないフィールドを検出できます。

コード監査規則を設定するには、次のようにします。

- メイン・メニューから「ツール」、「プリファレンス」、「コード監査」、「プロファイル」の順に選択します。

18.9.9 コード監査レポートの表示

コード監査レポートはログ・ウィンドウのタブ付きペインとして表示されます。コード監査レポートを使用すると、ルール違反およびしきい値を超えている測定結果を調べ、これを修正できます。

18.9.10 コード監査レポートのリフレッシュ

リフレッシュにより、同じプロファイルを使用してコード監査を再実行できます。コードを変更および修正した後でリフレッシュすることもできます。

コード監査レポートをリフレッシュするには、次のようにします。

- 「ログ」ウィンドウのツールバー内をクリックするか、右クリックして「リフレッシュ」を選択します。

「コード監査結果のエクスポート」ダイアログが消去され、新しいコード監査が開始されます。コード監査を停止するには、ログのツールバーをクリックします。

18.9.11 コード監査レポート列の編成

コード監査レポートの列を再配置して任意の編成にできます。

コード監査レポート列を編成するには、次のようにします。

- 列ヘッダーを、任意の位置の左または右までドラッグします。

18.9.12 コード監査レポート行の編成方法

コード監査レポート行は、ルール違反や測定結果、または違反および測定結果のグループです。レポートはツリーとして編成されます。ツリーの行は、構成メンバーまたは違反に対応しており、構成メンバーまたは理論上の違反の測定値が含まれます。構成メンバーは、メソッド、クラス、ファイル、パッケージ・ディレクトリ、プロジェクトまたはワークスペースです。

レポートに表示される構成メンバーを選択できます。

コード監査レポート行を編成するには、次のようにします。

1. 「ログ」ウィンドウのツールバーで、「グループ化」をクリックします。
「グループ化」ダイアログが開きます。

2. 表示する構成メンバーを選択します。

3. 「OK」をクリックします。

コード測定レポートをソートするには、次のようにします。

- 列ヘッダーをクリックして、その列で行をソートします。ソート順序を逆にするには、再度クリックします。

18.9.13 コード監査レポート行のフィルタ方法

クラス名のパターン・フィルタを使用して、フィルタと一致しないクラスの違反および測定結果を非表示にできます。

フィルタはカンマ、セミコロンまたは空白で区切られた一連のパターンです。パターンには、次の特殊文字を含めることができます。

- *は、任意の数の文字に一致します。

- ?は、任意の1文字に一致します。

- !がパターンの先頭にある場合は、除外パターンを示します。

表示されるクラスのセットは、パターンの順序を考慮して決定されます。非除外パターンは、パターンに一致するすべてのクラスをセットに追加し、除外パターンは、パターンに一致するすべてのクラスをセットから削除します。パターンはクラス名に一致します。

コード監査レポート行をフィルタするには、次のようにします。

1. コード監査のログ・ウィンドウの「パッケージ」ボックスで、完全修飾クラス名の最後の要素を除くすべての要素に適用される一連のパターンを入力します。このボックスは、「ファイル」フィルタを指定した場合、空白にしておくこともできます。

2. 「ファイル」ボックスで、完全修飾クラス名の最後の要素のみに適用される一連のパターンを入力します。このボックスは、「パッケージ」フィルタを指定した場合、空白にしておくこともできます。

3. 「適用」をクリックします。
レポートが再表示されて、選択した行のみが表示されます。

「クリア」をクリックして、テキストを「パッケージ」および「ファイル」ボックスから削除します。

18.9.14 コード監査レポートの保存方法

コード監査レポートをXMLファイル、HTML形式またはテキスト・ファイルとして保存できます。

フォーマットは、<jdev_install>/jdev/< system>/audit/stylesheetsディレクトリのXSLスタイルシート・ファイルによって定義されます(このディレクトリはコード監査を実行するまで作成されません)。カスタム・フォーマットを作成するには、事前定義されたスタイルシート・ファイルの1つをコピーして、このディレクトリに追加します。

コード監査レポートを保存するには、次のようにします。

- 「ログ」ウィンドウのツールバー内をクリックするか、右クリックして「エクスポート」を選択します。
「コード監査結果のエクスポート」ダイアログが開きます。タイトル、書式およびレポートの保存先を選択して、「OK」をクリックします。

18.9.15 コード監査レポートの違反またはコード測定結果のインスペクト方法

JDeveloperでは、すべてのコード監査規則違反に関するレポートが生成されます。

コード監査規則違反をインスペクトするには、次のようにします。

1. コード監査レポートで、表示する構成メンバーを選択します。

2. 右クリックして「ソースへ移動」を選択するか、構成メンバーをダブルクリックします。
ソース・ファイルのエディタが開き、規則違反または測定されたコード要素の場所にカーソルが移動します。

3. 違反または異常を右クリックし、「情報」を選択すると、違反が発生した規則の詳細を知ることができます。

18.9.16 コード監査規則違反の修正方法

コード監査規則違反を、手動でソースを編集して修正できます。一部の規則違反については、自動修正を選択して修正できます。

コード監査規則違反を手動で修正するには、次のようにします。

1. コード監査レポートで、規則違反(「構成」ツリー内のリーフ・ノード)を選択します。

2. 右クリックし、「ソースへ移動」を選択します。
ソース・ファイルのエディタが開き、規則違反の場所にカーソルが移動します。

3. コードを編集して、違反の原因を修正します。

コード監査規則違反に自動修正を適用するには、次のようにします。

1. コード監査レポートで、規則違反(「構成」ツリー内のリーフ・ノード)を選択します。

2. 右クリックし、<規則>修正の適用メニュー項目があれば選択します。
または

「ログ」ウィンドウのツールバー内をクリックし、<規則>修正の適用メニュー項目のいずれかを選択します。

18.9.17 構成メンバーのコード監査規則違反を修正する方法

構成メンバーでのすべての規則違反に自動修正を適用できます。Default FixプロパティがNone以外の値に設定されている構成メンバーでは、デフォルトの修正が各規則違反に適用されます。

構成メンバーのコード監査規則違反を修正するには、次のようにします。

1. コード監査レポートで、構成メンバー(「構成」ツリー内のコンテナ・ノード)を選択します。

2. デフォルトの修正は、次の2つの方法のいずれかを使用して適用できます。

- 右クリックして「デフォルトの修正を適用」を選択します。

- 「ログ」ウィンドウのツールバー内をクリックし、デフォルトの値を適用を選択します。

18.9.18 コード監査規則違反を非表示にする方法

コード監査レポートで特定のタイプの規則違反をすべて非表示にできます。個別の規則違反を非表示にすることはできません。

コード監査規則違反を非表示するには、次のようにします。

1. コード監査レポートで、規則違反(「構成」ツリー内のリーフ・ノード)を選択します。

2. 右クリックして「<規則>違反を非表示」を選択します。
<Rule>のすべての違反がコード監査レポートから削除されます。削除された規則が親の構成メンバーのサマリーに記録されることはありません。「しきい値を超えるもののみ表示」が有効になっている場合は、空の構成メンバーは削除されます。有効になっていない場合は、違反のみが削除されます。

非表示のコード監査規則違反を復元するには、次のようにします。

1. コード監査レポートで右クリックして、ポップアップ・メニューを開きます。

2. 「非表示の違反を表示」を選択します。
以前非表示にされたすべての規則違反が、コード監査レポートに復元されます。

18.9.19 コード監査レポートのコード測定結果を非表示にする方法

コード測定レポートには、分析対象コードの構成メンバーに関する測定結果が表示されます。しきい値以下の結果を非表示にすると、しきい値を超えている測定結果にレポートをフォーカスできます。しきい値は、コード測定の設定可能なプロパティの1つです。

しきい値を超えている測定結果のみを表示するには、次のようにします。

「ログ」ウィンドウのツールバーで、しきい値超過のアイコンをクリックします。もう一度クリックすると、すべての測定結果が表示されます。

削除された測定が、その親となる構成メンバーのサマリーに記録されることはありません。「しきい値を超えるもののみ表示」が有効になっている場合は、空の構成メンバーは削除されます。有効になっていない場合は、違反のみが削除されます。

18.9.20 コード監査プロファイルの管理

コード監査プロファイルでは、Javaコードの分析に使用する規則、コード・アシストおよびメトリックを指定することによって、監査対象を定義します。いくつかのプロファイルが事前定義されていますが、ユーザーが他のプロファイルを作成することもできます。規則、コード・アシストおよびメトリックを有効化または無効化するか、またはそれらの構成を変更することによって、コード監査プロファイルを変更できます。

JDeveloperの一部のプロセスと機能では、デフォルトで特定の監査プロファイルが使用されます。

- 「コード・アシスト」プロファイルは、ソース・エディタ、ステータス・ウィンドウ、アプリケーションの概要およびファイル・リストで使用されます。

- 「コンパイル中の監査」プロファイルは、「プリファレンス」ダイアログの監査ページで「コンパイル中の監査」が選択されている場合に、コンパイルの最後で使用されます。

- 「監査ルール」プロファイルは、「監査」コマンドの初期デフォルト設定です。ただし、「監査」ダイアログでは最後に選択されたプロファイルが記憶されるため、設定は永続的ではありません。

18.9.21 コード監査プロファイルの作成方法

JDeveloperでは、Javaプログラムの分析に使用する規則、コード・アシスト、コード測定を指定できます。

監査プロファイルを作成するには、次のようにします。

1. メイン・メニューから「ツール」、「プリファレンス」を選択します。
「設定」ダイアログが開きます。

2. 「監査」→プロファイル・ページを選択します。

3. 「プロファイル」ドロップダウン・メニューからコピーするプロファイルを選択します。

4. 新しいプロファイルを有効にするための規則、アシストおよびコード測定を選択します。詳細は、第18.9.26項「コード監査プロファイルをアクティブ化および非アクティブ化する方法」を参照してください。

5. 必要に応じて、選択した規則、アシストおよびコード測定を構成します。詳細は、第18.9.27項「コード監査テストのプロパティ値の設定方法」を参照してください。

6. 「別名保存」をクリックします。

7. 新しいプロファイルの名前を入力し、「保存」をクリックします。

注意:

名前では大/小文字および空白は区別されませんが、大/小文字および空白は保持されます。新しい名前が既存の名前と大/小文字または空白のみが異なる場合は、そのことを通知する警告メッセージが表示されます。

新しいプロファイル名が、プリファレンスの「コード監査」→「プロファイル」ページの「プロファイル」ボックスに表示されます。

8. 「OK」をクリックします。

18.9.22 コード監査プロファイルの変更方法

Javaプログラムを分析するために作成したコード監査プロファイルを変更できます。

既存のコード監査プロファイルを変更するには、次のようにします。

1. メイン・メニューから、「ツール」→「プリファレンス」を選択します。
「設定」ダイアログが開きます。

2. 「監査」→プロファイル・ページを選択します。

3. 「プロファイル」ドロップダウン・メニューから変更するプロファイルを選択します。

4. 新しいプロファイルを有効にするための規則、アシストおよびコード測定を選択します。詳細は、第18.9.26項「コード監査プロファイルをアクティブ化および非アクティブ化する方法」を参照してください。

5. 必要に応じて、選択した規則、アシストおよびコード測定を構成します。詳細は、第18.9.27項「コード監査テストのプロパティ値の設定方法」を参照してください。

6. 「OK」をクリックします。

18.9.23 コード監査プロファイルの削除方法

既存のコード監査プロファイルを削除するには、次のようにします。

1. メイン・メニューから、「ツール」→「プリファレンス」を選択します。
「設定」ダイアログが開きます。

2. 「監査」→プロファイル・ページを選択します。

3. 「プロファイル」ドロップダウン・メニューから削除するプロファイルを選択します。(事前定義済のプロファイルは削除できません)。

4. 「削除」をクリックします。
該当するプロファイルの名前が「プロファイル」ボックスから削除されます。

5. 「OK」をクリックします。

18.9.24 コード監査プロファイルをインポートまたはエクスポートする方法

コード監査プロファイルをインポートまたはエクスポートできます。この操作によって、たとえば、プロファイルを共有したり、ojauditおよび夜間ビルドによって使用されるチェックイン済プロファイルを管理できます。コード監査プロファイルは、XMLファイルとしてインポートまたはエクスポートされます。

コード監査プロファイルをインポートまたはエクスポートするには、次の手順を実行します。

1. 「ツール」メニューで、「プリファレンス」を選択して「プリファレンス」ダイアログを開きます。

2. 「プリファレンス」ダイアログで、「コード監査」→「プロファイル」ページを開きます。

3. 「インポート」または「エクスポート」をクリックし、インポートまたはエクスポートするプロファイルを選択します。

18.9.25 コード監査規則、コード・アシストおよびコード測定の参照方法

それぞれの詳細は、監査テストを参照してください。

コード監査規則を参照するには、次のようにします。

1. メイン・メニューから、「ツール」→「プリファレンス」を選択します。
「設定」ダイアログが開きます。

2. 「監査」→プロファイル・ページを選択します。

3. 「規則」タブ、「コード・アシスト」タブ、「コード測定」タブのいずれかを選択します。

4. 左側のパネルのリスト・ツリーで、カテゴリを選択します。
「説明」ボックスに、そのカテゴリの説明が表示されます。

5. カテゴリを展開し、選択したタブに従ってルール、コード・アシストまたはコード測定を選択します。
選択した項目の説明が「説明」ボックスに表示され、そのプロパティおよび設定が右側のペインに表示されます。

6. 「OK」をクリックしてダイアログを閉じます。

18.9.26 コード監査プロファイルをアクティブ化および非アクティブ化する方法

コード監査プロファイルの作成または変更中に、プリファレンスの「監査」→プロファイル・ページからそのプロファイルの規則、コード・アシストおよびコード測定をアクティブ化および非アクティブ化します。

規則、コード・アシストまたはコード測定をアクティブ化または非アクティブ化するには、次のようにします。

1. アプリケーション・ナビゲータでプロジェクトを選択します。

2. 「ツール」、「プリファレンス」、「コード監査」、「プロファイル」ページの順に選択します。

3. ダイアログで、「規則」タブ、「コード・アシスト」タブ、「コード測定」タブのいずれかを選択します。

4. 左側のパネルのリスト・ツリーで、カテゴリを開きます。

5. アクティブ化または非アクティブ化するテストのチェック・ボックスをクリックします。

6. オプションとして、規則、コード・アシストまたはコード測定を構成します。詳細は、第18.9.27項「コード監査テストのプロパティ値の設定方法」を参照してください。

7. 作業が終了した後、「OK」をクリックします。

カテゴリをアクティブ化または非アクティブ化するには、次のようにします。

左側のリストで、カテゴリのすべての項目をアクティブ化または非アクティブ化するには、規則のカテゴリのチェック・ボックスを選択します。[Ctrl]キーを押しながらカテゴリの任意の項目をクリックしても同じ結果になります。

18.9.27 コード監査テストのプロパティ値の設定方法

コード監査規則のプロパティ値を設定するには、次のようにします。

1. アプリケーション・ナビゲータでプロジェクトを選択します。

2. 「ツール」、「プリファレンス」、「コード監査」、「プロファイル」ページの順に選択します。

3. ダイアログで、「規則」タブ、「コード・アシスト」タブ、「コード測定」タブのいずれかを選択します。

4. 左側のペインのリスト・ツリーで、カテゴリを開いて項目を選択します。

5. テストのプロパティ名および現在値が右側のパネルに表示されます。

6. プロパティ値を変更するには、別の値を選択または入力します。

7. 終了したら「OK」をクリックします。

18.10 プロジェクトのプロファイリング

プロファイラが収集するプログラムに関する統計によって、より多くの時間を消費するメソッド、最も多くコールされるメソッド、メモリーの使用状況および作成中のオブジェクトの種類を識別し、ボトルネックなどのパフォーマンスの問題をより簡単に診断できます。

プロファイラは、実行中のプログラムによるプロセッサおよびメモリーのリソースの使用状況を監視し、ログに記録します。統計が収集され、パフォーマンスの問題をより容易に診断してコードの非効率な部分を修正できます。

JDeveloperには、ローカルおよびリモート・プロファイリング用に、CPUプロファイラおよびメモリー・プロファイラという2種類のプロファイラが用意されています。

- CPUプロファイラは、アプリケーションがプロセッサに及ぼす影響を分析するために使用します。CPUプロファイラを使用すると、起動、初期化、再描画およびコンパイルなどのアプリケーションの機能をテストできます。

- メモリー・プロファイラは、プログラムがJavaヒープのメモリーをどのように使用するかを視覚的かつ統計的に分析するものです。

18.10.1 メモリー・プロファイラ・ビューの理解

メモリー・プロファイリングには、アプリケーションのどの部分が最も多くのメモリーを使用しているかが表示されます。この他、どのオブジェクトが最も多くのメモリーを保持するかを調べることもできます。メモリー・プロファイラでは、次の3つのビューにデータが表示されます。新規のオブジェクト/ガベージ・コレクション・レポート用の「クラス」と「アロケータ」、さらにヒープ・スナップショット用の「参照」ビューです。

「クラス」ビューには、新規のオブジェクト/ガベージ・コレクション・データがJavaクラス別に編成されて表示されます。最も多いメモリーが割り当てられたクラスを検出するために使用します。

「アロケータ」ビューには、最も多くのメモリーを消費したスレッド・グループ、スレッドおよびメソッドが表示されます。

「参照」ビューには、スナップショットの時点でアプリケーション・ヒープにあったクラス、オブジェクトおよびオブジェクトへの参照が階層表示されます。

プロファイラは、「実行」メニューから起動します。コードの分析に使用するプロファイリングのモードを指定するには、「実行構成の編集」ダイアログの「プロファイラ」ページを使用します。

ダイアログでは、プログラムをローカルにプロファイリングするのか、リモートからプロファイリングするのかを指定することもできます。「実行構成の編集」ダイアログの「プロファイラ」ページで、プログラムをローカルにプロファイリングするにはプロファイラの接続パラメータを設定し、リモートからプロファイリングするには「リモート・プロファイル・パラメータ」を設定します。

18.10.2 アプリケーションのプロファイリング

アプリケーションは、ローカルまたはリモートでプロファイリングできます。ローカル・プロファイリングの場合には、「実行」メニューから「CPUプロファイル」または「メモリー・プロファイル」コマンドを選択してJDeveloper内でアプリケーションをプロファイリングするか、「実行」メニューからプロファイラのアタッチを選択してJDeveloper外部でプロファイリングします。リモート・プロファイリングの場合には、プロファイリング・セッションをリモートで実行します。プロファイラ・パラメータを指定して、または指定せずにJDeveloper外部のアプリケーションをプロファイリングします。アプリケーションのJVMは、同じホスト上とネットワーク上のどちらにあってもかまいません。

18.10.3 プロファイラの構成

CPUおよびメモリー・プロファイラに対してオプションを構成するには、プロジェクトを右クリックして「プロジェクト・プロパティ」を選択します。「実行/デバッグ/プロファイル」→「編集」→「ツール設定」→「プロファイラ」をクリックしてオプションを設定します。

18.10.4 CPUプロファイリングの理解

CPUプロファイラを使用して、アプリケーションのパフォーマンスの統計を収集します。CPUプロファイラを使用すると、起動、初期化、再描画およびコンパイルなどのアプリケーション機能をテストできます。

CPUプロファイラでは、「サンプリングの間隔[単位:ミリ秒]」の設定に基づいて、実行中のアプリケーションのサンプル・データを一定間隔で収集します。この設定は、CPUプロファイラのオプション・ページで変更できます。詳細は、第18.10.13項「CPUプロファイラのオプションの設定方法」を参照してください。

プロファイラには、「サンプルCPU時間」と「メソッド・コールのカウント」という2つのCPUプロファイリング・オプションがあります。「サンプルCPU時間」は、最大(または最小)の実行時間を占めるコードの領域を判断するために使用します。「メソッド・コールのカウント」では、コールされたメソッドとそのコール回数が表示されます。

注意:

プロファイラで、時間サンプリングとメソッド・コールのカウントを同時に実行することはできません。メソッド・コールのカウントはCPU時間を大幅に使用し、プロファイラの結果の正確性も損なわれます。

メソッド・コールのカウントは、CPUのオーバーヘッドとメモリー使用量のいずれの点においても、負荷が最大となるプロファイリング形式です。これは、メソッドが開始および終了するたびに追加のCPUが使用され、ユースケース中にコールされるすべてのメソッドのデータが収集されるためです。

CPUプロファイラ・ウィンドウには、プロファイラから戻されたデータが表示されます。このウィンドウには、プロファイラの結果を表示、ソートおよび整理するオプション以外に、プロファイラのユースケースを開始、ラベル付け、比較および終了するオプションもあります。

18.10.5 メモリー・プロファイリングの理解

プロファイラには、新規オブジェクト/ガベージ・コレクション・レポートと参照スナップショット(ヒープ・ダンプとも呼ばれる)という2つのメモリー・プロファイリング・ツールがあります。新規オブジェクト/ガベージ・コレクション・レポートは、アプリケーションのどの部分が最も多くメモリーを使用しているかを解明するために使用します。参照スナップショットは、大量のメモリーを消費しているオブジェクトを特定する際に使用します。これらのオプションは同時に使用できますが、メモリー・リークが検出されていないかぎり、通常はスナップショットは不要であり、特定のリークを調査している場合は、新規オブジェクト/ガベージ・コレクション・レポートをもう1つ使用する必要はありません。

メモリー・プロファイラ・ウィンドウには、プロファイラから戻されたデータが表示されます。このウィンドウには、プロファイラの結果を表示、フィルタリング、ソートおよび整理するオプション以外に、プロファイラのユースケースを開始、ラベル付け、比較および終了するオプションもあります。

18.10.6 プロファイラのパフォーマンスの理解

プロファイラ自体が、使用中にCPUおよびメモリー・リソースを消費します。オーバーヘッドは、操作のプロファイリング・モードによって異なります。一般に、CPUサンプリング(20ミリ秒のサンプリング間隔)および参照スナップショットが最も速く、メモリー使用は最小です。

CPUメソッド・コール・カウントおよびメモリー新規オブジェクト/ガベージ・コレクション・プロファイリングはいずれも、プロファイラとプロファイリング対象の両方で、CPUおよびメモリーの負荷がはるかに高くなります。これは、これらが本質的にすべてのメソッド・コールを捕捉し、メソッドごと、コール・スタックごと、スレッド・データごとに記録するためです。

参照スナップショットの場合、プロファイラ・エージェントによるスナップショット・ファイルの書込みには、数秒しかかかりません。その他のすべての処理はアプリケーションの外部で行われるため、メモリー・スナップショットはアプリケーションのパフォーマンスにはほとんど影響を及ぼしません。

表18-7は、アプリケーションのベンチマークの実際のパフォーマンス時間を示しています。

表18-7 アプリケーションのベンチマーク時間

プロファイル・タイプ

相対時間

時間(秒)

備考

プロファイリングなし

1.0

720

CPUサンプル

1.025

738

20ミリ秒のサンプリング・レート

CPUサンプル

1.29

930

10ミリ秒のサンプリング・レート

メモリー新規オブジェクト/ガベージ・コレクション

1.56

1125

参照スナップショット

1.02

735

表18-8は、実行時間を短くしたときの数値を示しています。

表18-8 実行時間を短くした場合

プロファイル・タイプ

相対時間

時間(秒)

備考

プロファイリングなし

1.0

30.7

CPUサンプル

1.4

41.8

20ミリ秒のサンプリング・レート

CPUサンプル

1.7

51.2

10ミリ秒のサンプリング・レート

メソッド・コール・カウント

4.6

141.2

メソッド・フィルタ使用

メソッド・コール・カウント

6.6

201.3

フィルタ未使用

プロファイラの出力は、10ミリ秒と20ミリ秒のサンプリング間隔のどちらでも本質的に同じであるため、20ミリ秒の間隔が適しています。

2つの表は、プロファイリングのオーバーヘッドはユースケースによって大きく異なる場合があるものの、CPUサンプルおよび参照スナップショットは、他の選択肢よりも常に負荷が低いことを示しています。

JDeveloperでは、デフォルトで割り当てられている512MBのメモリーでユースケースをプロファイリングできますが、ユースケースによっては、新しいオブジェクトとG.C.のメモリー・プロファイリングに1GB以上のメモリーが必要になります。

18.10.7 プロファイラ・ユースケースの理解

プロファイリングの目的は、アプリケーションで、想定よりも多くのリソースを使用している部分がどこかを検出し、その部分を改善することによって、リソースの最適化を実現することです。そのプロセスでは、遅い、メモリーの使用が多すぎる、またはメモリー・リークがあると考えられる、個別のコマンド、トランザクションまたは一連のアクションを検出します。次に、その原因を調べ、パフォーマンスを改善するための変更を加えた後、変更の効果があるかどうかを確認するために再測定します。

プロファイラでは、このようなコマンド、トランザクションまたは一連のアクションをユースケースと呼びます。プロファイラは、重要なユースケースを切り離して正確に測定できるように設計されています。デフォルトでは、ユースケースを開始するまではプロファイラによる測定は行われず、ユースケースを終了すると測定は停止されます。表示されるデータは常に、特定のユースケースに関連します。

プロファイラ・タブのツールバーには現在のユースケースの状態が示され、ユースケースの開始と終了およびユースケース間のナビゲーションを制御できます。

ツールバーの左上にある「開始ユースケース」アイコンは、新規ユースケースを開始する際に使用します。その隣の「終了ユースケース」アイコンは、実行中のユースケースを終了する際に使用します。ユースケースを開始すると、「終了ユースケース」ツールバー・アイコンが有効になり、「開始ユースケース」ツールバー・アイコンが無効になります。

アクティブなユースケースを保存した場合、ユースケースはただちに終了します。「終了ユースケース」ツールバー・アイコンは無効になり、「開始ユースケース」ツールバー・アイコンは有効になります。

開始ユースケースおよび終了ユースケースのコントロールは、次の場合にはいずれも使用できません。

- ユースケースが終了したが、プロファイラによってまだ処理されている場合

- プロファイリング対象アプリケーションが実行を停止している場合

- プロファイラが接続されていない場合

- 保存されているセッションを開きます。

18.10.8 JDeveloperでのプロジェクトのプロファイリング方法

プロファイラは、実行中のプログラムによるプロセッサおよびメモリーのリソースの使用状況を監視し、ログに記録します。統計が収集され、パフォーマンスの問題を診断してコードの非効率な部分を修正できます。

プロジェクトをプロファイリングするには、次のようにします。

1. CPUおよびメモリー・プロファイラのオプションを設定します。詳細は、第18.10.13項「CPUプロファイラのオプションの設定方法」と、第18.10.15.3項「メモリー・プロファイラのオプションの設定」を参照してください。
たとえば、プロファイラを使用して、アプリケーションによるCPU時間の使用方法をサンプリングしたり、メソッド・コールをカウントできます。あるいは、プロファイラによって新規オブジェクトおよびガベージ・コレクションに関するデータをレポートするか、またはヒープ・スナップショットを提供するかを指定できます。

2. JDeveloperでCPUプロファイラまたはメモリー・プロファイラを開始します。詳細は、第18.10.14項「CPUプロファイラの開始方法」を参照してください。
プロファイリング・セッションをリモートで実行することもできます。リモート・プロファイリング・セッションを開始すると、プロファイラは、リモート・アプリケーションに接続し、これをローカル・アプリケーションとみなしてプロファイリングします。詳細は、第18.10.16項「リモート・プロファイリング」を参照してください。

3. プログラムで重要なユースケースを切り分け、正確に測定します。詳細は、第18.10.7項「プロファイラ・ユースケースの理解」を参照してください。
ツールバーの左上にある「開始ユースケース」コントロールは、新規ユースケースを開始する際に使用します。その隣の「終了ユースケース」コントロールは、実行中のユースケースを終了する際に使用します。ユースケースを開始すると、「終了ユースケース」ツールバー・アイコンが有効になり、「開始ユースケース」ツールバー・アイコンが無効になります。

4. プロファイラから戻されるデータをインスペクトします。「プロファイラ」ウィンドウには、プロファイラの結果を表示、フィルタリング、ソートおよび整理するオプション以外に、プロファイラのユースケースを開始、ラベル付け、比較および終了するオプションもあります。

5. 後で分析するために、プロファイリング・セッションの結果を保存することもできます。

プロファイリング・セッションが完了すると、その統計を使用してパフォーマンスの問題をより簡単に診断し、コードの非効率な部分を修正できます。

18.10.9 CPUプロファイリング

CPUプロファイラでは、アプリケーションのパフォーマンスに関する統計データが、使用時間またはコールしたメソッドの視点から要約されて表示されます。

CPUプロファイラを使用すると、次のいずれかの方法でコードをプロファイリングできます。

- 「サンプルCPU時間」で、最も時間を要するアプリケーションの部分を識別します。

- 「メソッド・コールのカウント」で、メソッドがコールされていることと、コールされた回数を確認します。

18.10.10 CPUプロファイラ・ビューの理解

CPUプロファイリングは、Javaプラットフォームのコールを表示し、これらのメソッド・コールの回数をカウントして、アプリケーションの各メソッドの処理に要した時間を表にまとめます。CPUプロファイラでは、データが2つのビューに表示されます。「ホットスポット」と「コール・スタック」です。

「ホットスポット」ビューには、CPUプロファイラの操作の時間サンプリング・モードでの時間使用でソートされた、すべてのJavaプラットフォーム・メソッドとそのメソッドでコールされたすべてのメソッドが表示されます。また、各メソッドのCPU使用時間の累積も表示されます。メソッド・コール・カウント操作中、「ホットスポット」ビューには、すべてのメソッドおよびそれらがコールされた回数が表示されます。

「コール・スタック」ビューでは、CPUプロファイラの時間サンプリング操作モードの場合、コール階層でコールされたJavaプラットフォーム・メソッドを表示できます。メソッド・コールのカウント・モードの場合には、コールされたJavaプラットフォーム・メソッドがスレッド・グループ別にソートされて表示されます。

18.10.11 CPU時間のサンプリング結果の理解

CPUプロファイラを時間サンプリング・モードで使用すると、プログラムが分析され、CPU時間の使用方法に関する結果が報告されます。データは「ホットスポット」と「コール・スタック」という2つのビューに表示されます。

「ホットスポット」ビューには、すべてのメソッドが、それぞれに費やされた時間の値でソートされて表示されます。各メソッドの下にある階層には、メソッドのコール元、次に、そのコール元などが表示されます。

「ホットスポット」の一番上のメソッドは単なるノイズであることが多く、イベント・ディスパッチャがタスクを完了するために使用するパスになります。「スタック・フィルタ」を使用して、適切なメソッドのみにビューを絞ることができます。または、「フィルタの編集」ダイアログを使用して、表示するメソッドを指定する検索またはフィルタ式を入力することもできます。

「コール・スタック」ビューでは、コールされたメソッドがコール階層に表示されます。これは、各層が1つ上の層にコールされることを示します。表18-9は、「コール・スタック」ビューに表示されるデータ列を示しています。

表18-9 プロファイラのデータ列

列

説明

名前

完全修飾されたメソッド名を表示します。

CPU%

現在選択されているデータ列のパーセンテージを表示します。たとえば、「CPU」列が選択されている場合(下向きの三角形で示されます)、この列の名前は「CPU%」となります。「CPUシャロー」列を選択した場合、列名は「CPUシャロー%」になります。

CPU(ミリ秒)

各メソッドおよびコールされたすべてのメソッドでかかったCPU時間の累積が、秒単位で表示されます。

CPUシャロー(ミリ秒)

各メソッドでかかったCPU時間を個別に表示します。

ブロック(ミリ秒)

各メソッドでかかった累積ブロック時間および各メソッドによってコールされるすべてのメソッドを表示します。この列は、「実行構成の編集」ダイアログで「ブロック時間および待機時間の収集」チェック・ボックスが選択されている場合に表示されます。

ブロック・シャロー(ミリ秒)

各メソッドでかかったブロック時間を表示します。この列は、「実行構成の編集」ダイアログで「ブロック時間および待機時間の収集」チェック・ボックスが選択されている場合に表示されます。

待機(ミリ秒)

各メソッドの累積待機時間および各メソッドによってコールされるすべてのメソッドを表示します。この列は、「実行構成の編集」ダイアログで「ブロック時間および待機時間の収集」チェック・ボックスが選択されている場合に表示されます。

待機シャロー(ミリ秒)

各メソッドの待機時間を表示します。この列は、「実行構成の編集」ダイアログで「ブロック時間および待機時間の収集」チェック・ボックスが選択されている場合に表示されます。

経過時間(ミリ秒)

各メソッドおよびコールされたすべてのメソッドの経過時間の累積を表示します。この列は、「実行構成の編集」ダイアログで「経過時間の収集」チェック・ボックスが選択されている場合に表示されます。

経過シャロー(ミリ秒)

各メソッドの経過時間を表示します。この列は、「実行構成の編集」ダイアログで「経過時間の収集」チェック・ボックスが選択されている場合に表示されます。

I/O(ミリ秒)

各メソッドおよびコールされたすべてのメソッドの入力/出力時間の累積を表示します。この列は、「実行構成の編集」ダイアログで「IO時間の収集」チェック・ボックスが選択されている場合に表示されます。

I/Oシャロー(ミリ秒)

各メソッドの入力/出力時間を表示します。この列は、「実行構成の編集」ダイアログで「IO時間の収集」チェック・ボックスが選択されている場合に表示されます。

注意:

「スタック」ビューで1つのスレッドに複数のトップレベル・メソッドが表示されている場合は、アプリケーションに対してスタック深度が浅すぎます。スタック深度を深くするには、「実行コンフィギュレーションの編集」ダイアログのCPUプロファイラのオプション・ページを更新する必要があります。

18.10.12 メソッド・コール・カウントの結果の理解

CPUプロファイラをメソッド・コールのカウントに使用すると、メソッドがコールされたことが確認され、その回数が報告されます。メソッド・コール・カウントは、特定のメソッドに過剰なCPU時間がかかる理由の解明に役立ちます。プロファイラのメソッド・コール・カウント・データを使用して、そのメソッドのコール元を分析し、コードを適切に編集して回数を減らすことができます。

18.10.13 CPUプロファイラのオプションの設定方法

プロファイラを使用して、アプリケーションによるCPU時間の使用方法をサンプリングしたり、メソッド・コールをカウントできます。

CPUプロファイラのオプションを設定するには、次の手順を実行します。

1. ナビゲータで、プロファイルを作成するプロジェクトをダブルクリックして「プロジェクト・プロパティ」ダイアログを開きます。

2. 「実行/デバッグ/プロファイル」をクリックします。

3. 「編集」をクリックします。

4. 「実行構成の編集」ダイアログの「ツール設定」→「プロファイラ」→「CPU」ページで、必要に応じてオプションを設定します。
プロファイラを使用してCPU時間をサンプリングしたり、メソッド・コールをカウントするように指定できます。

5. 終わったら、「OK」をクリックします。

18.10.14 CPUプロファイラの開始方法

CPUプロファイリング・セッションを開始すると、プログラムが自動的に実行されます。CPUプロファイラ・ウィンドウが開いた後、ユースケースを開始してアプリケーションをプロファイリングできます。

CPUプロファイラを開始するには、次の手順を実行します。

1. ナビゲータで、実行可能なノード、たとえばApplication1.javaを選択します。

2. メイン・メニューから「実行」→「CPUプロファイル project」を選択します。
「実行構成の編集」ダイアログ(「アプリケーション」メニュー→「プロジェクト・プロパティ」→「実行/デバッグ/プロファイル」)の「起動設定」ページで、デフォルトの実行ターゲットが指定されていない場合には、「デフォルトの実行ターゲットの選択」ダイアログが開きます。このダイアログを使用して、「デフォルトの実行ターゲット」を指定します。

3. 「開始ユースケース」アイコンをクリックして、プロファイリング・ユースケースを開始します。

注意:

プロファイラの起動時にただちにアプリケーションをプロファイリングする場合は、「実行構成の編集」ダイアログの「プロファイラ」ページで、「アプリケーション起動時にユースケースを開始」チェック・ボックスを選択します。

18.10.15 メモリー・プロファイリング

メモリー・プロファイラを使用すると、プログラムがどのようにJavaヒープを使用しているかを把握できます。ヒープの非効率な使用と、メモリーに関する疑わしい動作を検出できます。

プロファイラには、メモリー・プロファイリング用のツールが2つあります。新規オブジェクト/ガベージ・コレクション(以降は新規/G.C.と表記)レポートと、参照スナップショット(ヒープ・ダンプとも呼ばれる)です。これらのツールを使用する際には、次の点に注意してください。

- 新規/G.C.レポートは、アプリケーションのどの部分が最も多くメモリーを使用しているかを解明するために使用します。

- 参照スナップショットは、大量のメモリーを消費しているオブジェクトを特定する際に使用します。

メモリー・プロファイリングおよびメソッド・コールのカウントは、システムおよびアプリケーションの処理速度を大幅に低下させます。アプリケーションのプロファイリングを開始する前に、次の情報に注意してください。

- ユースケースは具体的かつ短くしておきます。

- アプリケーションが起動するまで待機してからユースケースを開始します。

- 大規模なアプリケーションをプロファイリングする場合、JDeveloperではデフォルトを超えるメモリー・サイズが必要です。アプリケーションの処理速度が低下する場合は、<jdev_install>/jdev/binディレクトリに移動し、コマンドラインから次のコマンドを使用してJDeveloperの起動を試行します。
jdev -J-Xmx1024m

このコマンドにより、1GBの仮想メモリーがJDeveloperに割り当てられ、デフォルト・メモリーの512MBよりも優先されます。

- Oracle WebLogic ServerにデプロイされたWebアプリケーションは、大規模なアプリケーションとみなされます。したがって、-J-Xmx1024mパラメータを使用してJDeveloperを起動し、プロファイリングの開始前にメモリー・サイズを増やします。

- 一部の大規模なアプリケーションまたはユースケースは、Windowsでのプロファイリング時に失敗する可能性があります。こうしたアプリケーションまたはユースケースはLinuxでプロファイリングを試行します。Windowsオペレーティング・システムでは、JVMに対する連続した仮想メモリーが制限されますが、Linuxではこうした制限はありません。

18.10.15.1 メモリー・プロファイラ・ビューの理解

メモリー・プロファイラには、新規/G.C.レポートの「クラス」ビューと「アロケータ」ビュー、およびヒープ・スナップショットの「参照」ビューという3種類のビューでデータが表示されます。

- 「クラス」ビューには、新規のオブジェクト/ガベージ・コレクション・データがJavaクラス別に編成されて表示されます。最も多いメモリーが割り当てられたクラスを検出するために使用します。このビューには、メモリー・プロファイラの下部にある「クラス」タブをクリックすると切り替えることができます。

- 「アロケータ」ビューには、最も多くのメモリーを消費したスレッド・グループ、スレッド、スタックおよびメソッドが表示されます。このビューには、メモリー・プロファイラの下部にある「クラス」タブをクリックすると切り替えることができます。

- 「参照」ビューには、スナップショットの時点でアプリケーション・ヒープにあったクラス、オブジェクトおよびオブジェクトへの参照が階層表示されます。

18.10.15.2 参照スナップショットの理解

参照スナップショットは、スナップショット時のアプリケーション・ヒープ内のクラス、オブジェクトおよびオブジェクトへの参照の階層表示です。JVMガベージ・コレクション・ルートからオブジェクトへの参照およびオブジェクト間の参照という、2種類の基本的な参照があります。

JVMガベージ・コレクション・ルートには、アクティブなスレッドからの参照、JNIローカルおよびグローバル変数からの参照および内部JVM参照が含まれます。これらは、オブジェクトをメモリー内に保持する参照であり、gcルートからオブジェクトへのパスがない場合、ガベージ・コレクションに適格です。スナップショットには、1つ以上のJVM gcルートから到達可能なオブジェクトのみが含まれます。

static参照およびクラス・ローダーからの参照は、ガベージ・コレクション・ルートではありません。クラス・ローダー、クラス・ローダーによってロードされたクラスまたはこれらのクラスのオブジェクトへの他の参照がない場合、クラス・ローダーはガベージ・コレクション可能です。クラス・ローダーのガベージ・コレクションが行われるとき、クラス・ローダーによってロードされたすべてのクラス、およびこれらのクラスからstatic参照のみによって参照されるすべてのオブジェクトのガベージ・コレクションも行われます。

オブジェクト間の参照には、正常(強)参照、ソフト参照、弱い参照および疑似参照という4つのタイプがあります。メモリー・リークを検出している場合、通常は強参照のみを考慮します。強参照のみを表示するかすべての参照を表示するかを切り替えることができます。

異なるスナップショットに新しい参照と古い参照がある場合は、異なるフォント・スタイルで示されます。2つのメモリー・スナップショットを比較するとき、現在のスナップショットのメソッドは太字のフォントで表示されます。他のスナップショットにも存在するメソッドがある場合には、現在のスナップショットに太字斜体のフォントで表示されます。

参照スナップショットを比較するには複数の方法があります。メモリー・プロファイラの「参照」ビューでは、たとえば「比較対象」を選択して、現在のスナップショットから異なるユースケース(スナップショット)を選択できます。あるいは、2つのプロファイラ・タブが開いている場合(保存したプロファイル・セッションを開いた場合など)には、「比較対象」と「その他」を選択し、別のセッションからユースケースを選択します。

18.10.15.3 メモリー・プロファイラのオプションの設定方法

プロファイラを使用して、アプリケーションによるCPU時間の使用方法をサンプリングしたり、メソッド・コールをカウントできます。

メモリー・プロファイラのオプションを設定するには、次のようにします。

1. ナビゲータで、新規オブジェクトおよびガベージ・コレクションに関するデータをレポートする、またはヒープ・スナップショットを提供するためにプロファイリングするプロジェクトをダブルクリックします。

2. 「実行/デバッグ/プロファイル」をクリックします。

3. 「編集」をクリックします。

4. 「実行構成の編集」ダイアログの「ツール設定」→「プロファイラ」→「CPU」ページで、必要に応じてオプションを設定します。
プロファイラによって新規オブジェクト/ガベージ・コレクション・データを収集するか、またはヒープ・スナップショットを取得するか、あるいはその両方かを指定できます。

5. 終わったら、「OK」をクリックします。

18.10.15.4 メモリー・プロファイリング・セッションの開始方法

メモリー・プロファイリング・セッションを開始すると、プログラムも自動的に実行されます。メモリー・プロファイラ・ウィンドウが開くと、ユースケースを開始してアプリケーションをプロファイリングできます。

メモリー・プロファイラを開始するには、次のようにします。

1. ナビゲータで、実行可能なノードを選択します。

2. メイン・メニューから「実行」→「メモリー・プロファイル project」を選択します。

3. 「開始ユースケース」アイコンをクリックして、プロファイリング・セッションを開始します。

18.10.16 リモート・プロファイリング

プロファイリング・セッションをリモートで実行できます。リモート・プロファイリング・セッションを開始すると、プロファイラは、リモート・アプリケーションに接続し、これをローカル・アプリケーションとみなしてプロファイリングします。プロファイラをローカルで実行しているため、コンピュータにアクセス可能なIPアドレスまたはDNS名が付与されている場合は、他のコンピュータ上のアプリケーションをプロファイリングできます。

リモート・プロファイリングとローカル・プロファイリングの主な違いは、プロファイリング・セッションを開始する方法です。ローカル・プロファイリングの場合、JDeveloperによってプロファイリング対象のプログラム(プロファイリング対象プロセス)が自動的に起動され、そのプログラムにプロファイラが接続されます。リモート・プロファイリングの場合、プロファイリング対象プログラムを手動で起動し、後からプロファイラをアタッチする必要があります。プロファイリング対象プロセスが起動し、JDeveloperプロファイラがそのプロセスに接続されると、リモート・プロファイリングとローカル・プロファイリングの違いはなくなります。プロファイリング対象プロセスがJDeveloperと同じマシンで実行されているかどうかに関係なく、リモート・プロファイリングを使用できます。

注意:

アプリケーションをリモートでプロファイリングする場合、プロファイラ・パラメータを指定して、または指定せずに外部アプリケーションを起動できます。プロファイラ・パラメータを指定して起動したアプリケーションのJVMは、同じホスト上(ローカル)とネットワーク上のどちらにあってもかまいません。プロファイラ・パラメータを指定せずに起動したアプリケーションのJVMは、同じホスト上にある必要があり、後でプロファイラをアタッチできます。

リモート・プロファイリングとローカル・プロファイリングそれぞれに利点があります。リモート・プロファイリングの場合、プロファイラおよびプロファイリング対象プロセスは2台の個別のコンピュータで実行できるため、同じリソースに対して競合しません。ただし、大量のデータをネットワークで転送すると、プロファイラのパフォーマンスが大幅に低下する場合があります。

18.10.17 JVMに対するプロファイラ・エージェント・サポートの理解

リモートでプロファイリングする場合は、プロファイラ・エージェントを起動します。JDeveloperのプロファイラ・エージェントは、WindowsとLinuxで32ビット版および64ビット版のJVMをサポートしています。プロジェクトのJVMを指定するには、「実行構成の編集」→「起動設定」ページを使用します。

プロファイラ・エージェント・ファイルの名前は、サポート対象のアーキテクチャとJVMのサイズに基づいて決まります。

- profiler_x32.dll

- profiler_x32.so

- profiler_x64.dll

- profiler_x32.so

プロファイリング対象をJDeveloperから起動した場合、プロファイラはJDeveloper JVMのサイズを自動的に検出します。

- Linuxでは、APIを使用して、リモートJVMが32ビットと64ビットどちらのアーキテクチャかを検出し、適切なエージェントを使用する必要があります。(これを一般化して他のアーキテクチャをサポートできます。)

- Windowsでは、APIを使用して、リモートJVMが32ビットと64ビットどちらのアーキテクチャかを検出する必要があります。それがJDeveloperのJVMアーキテクチャと同じではない場合には、アタッチできるJVMのリストに表示しません。

ローカルにアタッチし、JDeveloperのJVMが32ビット版の場合、プロファイラは32ビット版エージェントのダウンロードを試行し、それに失敗すると64ピット版を試行します。JDeveloperのJVMが64ビット版であれば、プロファイラは64ビット版エージェントしか試行しません。

18.10.18 プロファイラ・エージェントの起動方法

JDeveloperでプログラムのリモート・プロファイリングを実行するには、コマンドラインからJavaプロセスを開始する必要があります。コマンドラインからは、プロファイラ・エージェントを起動することもできます。プロセスの開始後は、JDeveloperプロファイラをプロファイラ・エージェントに接続できます。

プロファイラ・エージェントは、-agentlibまたは-agentpathオプションを使用して起動できます。

-agentlibオプションを使用したプロファイラ・エージェントを起動するには、次のようにします。

コマンドラインで、次の実行文字列を入力します。

java
-agentlib:<Profiler-Agent-Library>=<sub-option1>[=<value1>],<sub-option2>
[=<value2>]... -classpath
-classpath <Project_Directory>\classes <Java_Main_Class>

注意:

-agentlibを指定する際には、.dll拡張子を除くエージェントの絶対パスを指定するか、エージェントのパスをPATH変数に追加してから絶対パスおよび拡張子なしでエージェントを指定できます。

例1

java
-agentlib:C:\JDeveloper\jdeveloper\jdev\lib\
profiler_x32=jarpath=C:\JDeveloper\jdeveloper\jdev\lib\
profiler-agent.jar,port=4000,enable=t,startup=connect
-classpath c:\MyApp\MyProject\classes MyMainClass

例2

set PATH=C:\JDeveloper\jdeveloper\jdev\lib;%PATH%

java
-agentlib:profiler_x64=jarpath=C:\JDeveloper\jdeveloper\jdev\lib\profiler-agent.jar,port=4000,
enable=t,startup=connect
-classpath c:\MyApp\MyProject\classes MyMainClass

-agentpathオプションを使用したプロファイラ・エージェントを起動するには、次のようにします。

コマンドラインで、次の実行文字列を入力します。

java
-agentpath:<Path_to_Agent_Library>=<option1>[=<value1>],<option2>[=<value2>]...
-classpath <Project_Directory>\classes <Java_Main_Class>

意味は次のとおりです。

<Path_to_Agent_Library>は、profiler_x32.dllまたはprofiler_x64.dllのフルパスです。たとえば、<jdev_install>\jdeveloper\jdev\lib\profiler_x32.dllとなります。

注意:

-agentpathを指定する際には、.dll拡張子を含むエージェントへの絶対パスを指定する必要があります。

例

-agentpath:C:\JDeveloper\jdeveloper\jdev\lib\
profiler_x32.dll=jarpath=C:\JDeveloper\jdeveloper\jdev\lib\
profiler-agent.jar,port=4000,enable=t,startup=connect,depth=1000,interval=20
-classpath c:\MyApp\MyProject\classes MyMainClass

表18-10は、-agentlibおよび-agentpathオプションで使用できるサブオプションです。

表18-10 サブオプション

サブオプション

説明

port=<port>

データの転送に使用するポートを指定します。デフォルトは4000です。

jarpath=<path>

プロファイラJARファイルのパス。このJARは、
<jdev_install>\jdeveloper\jdev\lib\
profiler-agent.jarにあります。JARのパスを指定しない場合、JARはブートストラップ・クラスパスにある必要があります。

enable=[t][c][m][r]

エージェント機能を有効にします。

- t = CPU時間サンプリング

- m = メモリー新規/gc

- c = メソッド・コール・カウント

- r = ヒープ参照スナップショット

t、cまたはmのうちの1つのみを指定できます。rはmと組み合せたり、単独で指定できます。

startup=time|mem|
count|refs|connect

起動時にユースケースを開始する場合は、次のいずれかを指定できます。

- time- CPU時間サンプリング

- count- メソッド・コール・カウント

- mem- メモリー割当て/解放

- refs- ヒープ参照スナップショット(memと組み合せたり単独で指定できます)

- connect- 接続を待機してからアプリケーションの実行を許可

プロファイラが接続されていない場合は、ユースケースを実行できません。

startup=mem,refsは、プロファイラ・エージェントのメモリー機能およびヒープ参照スナップショット機能も有効にします(enable = mr)。

depth=<size>

コレクションに使用するスタックの深度の最大値を設定します。デフォルトは1000です。

interval=
<sample-interval>

サンプリングの間隔(ミリ秒単位)。デフォルトは20です。このことは、CPU時間サンプリングにのみ適用されます。

wait=y|n

待機時間およびブロック時間をレポートします。デフォルトはnです。このことは、CPU時間サンプリングにのみ適用されます。

refpath=<path>

参照スナップショット・ファイルの書込みに使用するパスを設定します。enable=rを指定した場合に必要です。

すべてのスナップショットに同じパスが使用されるので、次のユースケースが終了する前にファイルがコピーされていることが重要です。このことは、プロファイラおよびファイル・クライアントによって自動的に行われます。

stackfilter=
<expression>

スタック・トレースに含める、または除外するクラスを指定します。次に例を示します。

stackfilter=(!java.lang.*)

この式により、レポートされるスタック・トレースには、名前がjava.lang.*で始まるクラスが含まれなくなります。たとえば、java.lang.Integerおよびjava.lang.reflect.Methodが含まれるスタック・トレースは表示されません。こうしたメソッドで使用されるときはいつでも収集され、次のコール元で追加されます。

methodfilter=
<expression>

式で指定されたメソッドを含むスタックのみを収集します。次に例を示します。

methodfilter=(com.mycorp.MyClass.MyMethod*)

この式により、スタックにcom.mycorp.MyClass.myMethodへの1つ以上のコールが含まれない場合、スタックは表示されなくなります。フィルタに*を指定すると、あらゆるタイプのシグネチャのメソッドが収集されます。Javaでは、一致する複数のメソッドが存在する場合があります。

memfilter=
<expression>

メモリー・レポートに含める、または除外するオブジェクト・クラス。次に例を示します。

memfilter=(!java.lang)

この式では、文字列にjava.langが含まれるクラスは表示されません。

コマンドラインの例

- java
-agentlib:profiler_x32=port=4000,
jarpath=C:\JDeveloper\jdeveloper\jdev\lib\profiler-agent.jar,enable=t,depth=1000,startup=time,interval=20 -classpath
C:\JDeveloper\jdeveloper\mywork\Application1\Project1\classes project1.Application1

- java
-agentlib:profiler_x64=port=4000,
jarpath=C:\JDeveloper\jdeveloper\jdev\lib\profiler-agent.jar,enable=m,startup=connect -classpath C:\JDeveloper\jdeveloper\mywork\Application1\Project1\classes project1.Application1

- java
-agentlib:profiler_x32=port=4000,
jarpath=C:\JDeveloper\jdeveloper\jdev\lib\profiler-agent.jar,startup=connect,mem -classpath
C:\JDeveloper\jdeveloper\mywork\Application1\Project1\classes project1.Application1

- java
-agentpath:C:\JDeveloper\jdeveloper\jdev\lib\profiler_x64.dll=
jarpath=C:\JDeveloper\jdeveloper\jdev\lib\profiler-agent.jar,port=4000,enable=t,startup=connect,depth=1000,interval=20 -classpath C:\JDeveloper\jdeveloper\mywork\Application1\Project1\classes project1.Application1 *

18.10.19 プロファイラとJavaプログラムのリモートでの接続方法

JDeveloperでプログラムのリモート・プロファイリングを実行するには、まずJavaプログラム・セッションを開始し、プロファイラ・エージェントを起動する必要があります。詳細は、第18.10.18項「プロファイラ・エージェントの起動方法」を参照してください。

セッションの開始後は、JDeveloperプロファイラをこのセッションに接続できます。プロファイラの接続には、まずリモート・プロファイリングに向けたJDeveloperの準備が必要です。

リモート・プロファイリング・セッションを設定するには、次のようにします。

1. アプリケーション・ナビゲータで、リモートからプロファイリングするプロジェクトを選択します。

2. 実行構成を選択し、「編集」をクリックします。詳細は、第19.3項「プロジェクトを実行用に設定する方法」を参照してください。

3. 「プロファイラ」ノードの「リモート」ページで、ローカルかリモートのプロセス・タイプを選択します。

4. 終了したら「OK」をクリックします。

5. Javaプログラム・セッションを開始していない場合は、開始します。詳細は、第18.10.18項「プロファイラ・エージェントの起動方法」を参照してください。

リモート接続するには、次のようにします。

1. アプリケーション・ナビゲータで、リモートからプロファイリングするプロジェクトを選択します。

2. 「実行」メニューから、必要に応じて「CPUプロファイル」または「メモリー・プロファイル」にプロファイラをアタッチします。

3. 「実行中JVMへのプロファイラのアタッチ」ダイアログで、「リモート・プロセスに添付」オプションが選択されていることと、ホスト/ポート情報が正しいことを確認します。

4. 「OK」をクリックします。

5. 「プロファイラ」タブで、「開始ユースケース」をクリックしてユースケースのプロファイリングを開始します。

6. 終わったら、プロファイラを連結解除します。「実行」メニューから、「連結解除」を選択します。

注意:

「実行構成の編集」ダイアログの「プロファイラ」ページにある「アプリケーション起動時に接続」と「アプリケーション起動時にユースケースを開始」のチェック・ボックスは、プロファイラをローカル・プロセスにアタッチしている場合には何の効果もありません。このチェック・ボックスが関係するのは、プロファイラをリモート・プロセスにアタッチしているときのみです。

18.10.20 実行中のプロセスに対してプロファイラを動的にアタッチおよび連結解除する方法

JDeveloperでは、実行中のプロセスに対してプロファイラを動的にアタッチおよび連結解除できます。これは、リモート・プロファイリングにアタッチされるプロファイラに似ていますが、アプリケーションの起動時にコマンドラインでプロファイラ・パラメータを指定する必要がありません。たとえば、開始したときにはプロファイリングを予定していなかったが、後からパフォーマンス上の問題が生じるようになったためプロファイリングが必要になったアプリケーションを実行するような場合があります。このような場合には、実行中のプロセスにプロファイラを動的にアタッチすると、JVMを再起動してからプロファイラをアタッチする手間が不要になります。

プロファイラの動的なアタッチには、制限事項もあります。CPU時間サンプリングを実行することも、メモリー参照スナップショット(ヒープ・ダンプ)を作成することもできますが、メソッド・コール・カウントと新規/gcメモリー・プロファイリングは実行できません。それらにはバイトコードの実装が必要であり、これはJVMの起動より前にコマンドラインからしかリクエストできないからです。

実行中のプロセスに対してプロファイラを動的にアタッチ/連結解除するには、次のようにします。

1. JDeveloper外部、たとえば別のコマンド・ウィンドウでプログラムを起動します。

2. JDeveloperを起動して「実行中JVMへのプロファイラのアタッチ」ダイアログを開きます(「実行」→プロファイラのアタッチ→「CPUプロファイル」または「メモリー・プロファイル」)。

3. 「実行中JVMへのプロファイラのアタッチ」ダイアログで、「ローカル・プロセスに添付」オプションを選択します。

4. JVMのリストから、ローカル・システムで実行されているプログラムのJVMを選択します。

5. 「OK」をクリックします。プロファイラが実行中のJVMに接続します。

実行中のプロセスからプロファイラを連結解除するには、「実行」メニューから「連結解除」を選択します。「プロファイラ」タブを閉じることによってプロファイラを切断した場合、再アタッチすることはできません。後から再アタッチする場合には、「連結解除」コマンドを使用してください。

プロファイラをプロセスに再アタッチするには、次のようにします。

プロセスに対するプロファイラのアタッチと連結解除は何度でも行えますが、再アタッチの前に次の点に注意してください。

- 再アタッチの前に、プロファイラが連結解除されていることを確認してください。

- プロファイラを再アタッチすると、新しいプロファイラ・セッションが開始され、以前のセッションのデータは失われます。以前のセッションのデータを保存するには、「ファイル」メニューから「別名保存」を選択してください。

プロファイラをプロセスに再アタッチするとき、構成設定を変更して新しい構成設定で再アタッチできます。たとえばCPUをプロファイリングしている場合、CPU構成を変更して収集I/O時間、CPU時間、待機時間などを有効または無効にできます。メモリーをプロファイリングしている場合、プロファイラを再アタッチしてヒープ・ダンプを取得できます。CPUプロファイリングとメモリー・プロファイリングを相互に切り替えることも可能です。

ただし、CPUプロファイリングの構成をメソッド・コール・カウントに変更した場合、あるいはメモリー・プロファイリングの構成を新規/gcに変更した場合、再アタッチはできません。アプリケーションの起動後にはプロファイラが取得できない機能を必要とするためです。これらのいずれかを実行するためには、適切なプロファイリング・パラメータを指定してアプリケーションを起動し、「リモート・プロセスに添付」コマンドを使用してプロファイラをアタッチする必要があります。

18.10.21 プロファイル・ポイントの設定方法

プロファイル・ポイントを使用して、メソッドまたはクラスに対するメソッド・フィルタを設定できます。つまり、それらのメソッドまたはクラスを含むスタックのみがプロファイラによってレポートされます。このフィルタは、メソッド、そのコール元およびコール先のみが表示されるように、データをフィルタリングするために使用されます。

プロファイル・ポイントを設定するには、次のようにします。

1. ソース・エディタでファイルを開き、実行可能なコード行の隣の左マージンを右クリックします。

2. ポップアップ・メニューから「プロファイル・ポイントの切替え」を選択します。プロファイル・ポイントのアイコンが親クラスまたはメソッド名の左マージンに表示されます。

プロファイル・ポイントの無効化

次のいずれかの方法で、プロファイル・ポイントを無効化できます。

- ソース・エディタで、左マージンのプロファイル・ポイント記号を右クリックし、「プロファイル・ポイントの無効化」を選択します。

- 「プロファイル・ポイント」ウィンドウ(「表示」→「プロファイル・ポイント」)で、無効化するプロファイル・ポイントを右クリックし、「無効化」を選択します。

- 現在のプロファイル・ポイントをすべて無効化するには、「プロファイル・ポイント」ウィンドウで右クリックし、ポップアップ・メニューで「すべて無効化」を選択します。

プロファイル・ポイントの削除

プロファイル・ポイントでコードを確認する必要がなくなった場合は、プロファイル・ポイントを削除できます。次のいずれかの方法で、プロファイル・ポイントを削除できます。

- ソース・エディタで、左マージンのプロファイル・ポイント記号を右クリックします。

- 「プロファイル・ポイント」ウィンドウ(「表示」→「プロファイル・ポイント」)で、削除するプロファイル・ポイントを右クリックし、「削除」を選択します。

- 現在のプロファイル・ポイントをすべて削除するには、「プロファイル・ポイント」ウィンドウで右クリックし、ポップアップ・メニューで「すべて削除」を選択します。

18.10.22 プロファイラ・セッションの保存および開始

プロファイラで出力を保存して、後で表示および分析できます。

実行中のプロファイラ・セッションをディスクに保存するには、「ファイル」メニューで「別名保存」を選択します。「別名保存」ダイアログで、セッションを説明する適切な名前(uianalysis.oprなど)を入力するか、またはデフォルト値をそのまま使用します。

注意:

アクティブなユースケースを保存中である場合、ユースケースは自動終了します。「終了ユースケース」ツールバー・アイコンは無効になり、「開始ユースケース」ツールバー・アイコンは有効になります。

保存されているプロファイラ・セッションを開くには、「ファイル」メニューで「開く」を選択し、表示するセッションまで移動します。

保存されているセッションは、独自のプロファイラ・アイコンによって、アクティブなセッションと視覚的に区別できます。保存されたセッションでは、ユースケースの開始アイコンと終了アイコンは無効になっていますが、複数のユースケースが使用可能である場合、ユースケースのナビゲーション・コントロールはアクティブです。

18.10.23 HPROF形式のヒープ・ダンプを開く方法

JDeveloperでは、HPROFバイナリ形式のヒープ・ダンプを開いてプロファイラで表示できます。HPROFバイナリ形式のヒープ・ダンプを作成するには、HPROFプロファイラ、JDKツールのjmapおよびjconsole、またはJavaパラメータ-XX:+HeapDumpOnOutOfMemoryErrorを使用します。

たとえば、jmapコマンドを使用してHPROFファイルを作成するには、コマンドラインで次のように入力します。

jmap -dump:format=b,file=heap.hprof <jdev process id>

HPROFの詳細は、http://java.sun.com/javase/reference/index.jspを参照してください。

HPROFバイナリ・ファイルを開くには、次のようにします。

1. 「ファイル」メニューから「開く」を選択します。

2. HPROFバイナリ形式のファイルを参照して選択し、「開く」をクリックします。

プロファイラの「参照」エディタ・タブでヒープ・ダンプが開きます。

注意:

大きいヒープ・ダンプを開く場合には処理が遅くなるため、開くまで数分間かかる場合もあります。Windows XPの場合、990MBを超える大きいHPROFファイルをプロファイラで開くことはできません。

18.11 Javaクラスのモデリング

Javaクラス図では、クラス、インタフェース、列挙、継承およびコンポジット関係を視覚的に作成し、また既存のJavaクラスおよびインタフェースを表示できます。アプリケーションの特定のファセットを視覚化する場合は、そのファセットを視覚化するためのクラスのみをダイアグラムに追加してください。

JavaクラスをモデリングするにはJavaクラス図から開始する必要があります。ただし、後で他の要素をダイアグラムに追加できます。詳細は、第18.11.10項「Javaクラス図の作成方法」を参照してください。アプリケーションを構成するクラスを、クラス図から直接作成および変更できます。Javaクラス図で行った変更はJavaソース・エディタですぐに反映され、その逆も同様です。

18.11.1 依存関係のモデリング

依存性は、ダイアグラムでは、白抜きの矢印で依存性の方向を指している破線として表示されます。文書化の目的にのみ使用され、基礎となるJavaコードは変更されません。

18.11.2 Javaクラス、インタフェースおよび列挙の作成

Javaクラス、インタフェースまたは列挙をダイアグラム上に作成するには、そのダイアグラムに対するJavaコンポーネント・パレット上の「Javaクラス」アイコン、「Javaインタフェース」アイコンまたは「Java Enum」アイコンをクリックし、次に、そのクラスを作成するダイアグラムをクリックします。モデリングされたクラスまたはインタフェースのJavaソース・ファイルは、プロジェクトの設定で指定された位置に作成されます。

「Javaクラス」、「Javaインタフェース」、および「Java Enum」の各アイコンは、Javaクラスの名前および詳細を含む四角形として図に表示されます。Javaクラスおよびインタフェースはコンパートメントに分割されており、各コンパートメントに含まれている情報は1種類のみです。

大きさが不足し、すべての内容を表示できない各コンパートメントには、省略記号(...)が表示されます。すべてのフィールドおよびメソッドが表示されるようにモデリングされたクラスを表示するには、クラスを右クリックし、「図形サイズの最適化」、「高さと幅」を選択します。

ダイアグラム上のクラスの各タイプは、名前コンパートメントのステレオタイプにより識別されます。これは、デフォルトでは表示されません。

メンバー(フィールドおよびメソッド)には、可視性を表す記号が表示されます。可視性の記号には、Public (+)、Private (-)およびProtected (#)があります。可視性の記号が使用されていない場合、フィールドまたはメソッドの可視性はPackageになります。

18.11.2.1 Javaインタフェースのモデリング

インタフェースは一般的に、複数のメソッドが全体で一貫した1つのサービスを定義している場合に、そのシグネチャをまとめてグループ化する目的で使用されます。あるインタフェースで定義されているサービスをクラスで提供するためには、そのインタフェースを実装します。インタフェース名は、ネームスペース内で一意である必要があります。インタフェースを使用すると、他のクラスが提供する一連のサービスを指定できるため、他のクラスに対してある程度の一貫性を維持できます。

注意:

モデリングされたJavaインタフェースでは、拡張関係を使用する他のインタフェースからの継承が可能です。

詳細は、第18.3.6項「新規Javaインタフェースの作成方法」を参照してください。

18.11.2.2 内部Javaクラスおよび内部Javaインタフェースのモデリング

様々なパッケージ、現在のアプリケーションまたはライブラリにあるプライマリ・クラスや内部クラスをダイアグラムに含めることができます。内部Javaクラスおよび内部Javaインタフェースは、それらを所有するクラスのメンバーとして定義します。そのため、これらのクラスはメンバー・クラスとも呼ばれます。

内部クラスおよび内部インタフェースは、ダイアグラム上のモデリングされたJavaクラスまたはJavaインタフェースの内部クラス・コンパートメントに表示されます。内部クラスにはClassという語が、内部インタフェースにはInterfaceという語が接頭辞として付き、可視性の記号とクラス名またはインタフェース名の間に挿入されます。

モデリングされたJavaクラスまたはインタフェースに内部クラスまたは内部インタフェースを作成するには、実装Javaコードに内部クラスを追加するか、既存のモデリングされたクラスの内部ノードとして新規Javaクラスまたはインタフェースを作成します。

内部Javaクラスおよび内部Javaインタフェースには、Javaクラス、Javaインタフェースまたはパッケージに含まれるものと同じ名前を付けることはできません。また、staticフィールドやstaticメソッドを含めることはできません。

18.11.2.3 列挙のモデリング

フィールドおよびメソッドがいくつか含まれている列挙をダイアグラムに作成できます。列挙型は、インタフェースを実装したり、他のクラスを拡張したり、別のクラスによって拡張することはできません。

18.11.3 Javaクラス図でのコンポジットのモデリング

ダイアグラムのJavaクラス・コンポーネント・パレットの様々な参照アイコンを使用して、ダイアグラムのクラスとインタフェースとの間に、これまでアソシエーションと呼ばれていた様々な参照をすばやく作成できます。モデリングされたJavaクラス間に作成された参照は、参照を実装するクラスのソース・コードではフィールドとして表されます。ダイアグラム上のコンポジット関係は、参照の方向で開いた実線の矢印で表示されます。表18-11は、ダイアグラムにモデリング可能な参照を示しています。

表18-11 クラスまたはインタフェース間の参照

参照

説明

参照(オブジェクト)

クラスまたはインタフェース間の唯一の直接参照。これは、<destination_class>タイプのフィールドとして、参照の元となるクラスのコードに表されます。

参照(配列)

別のクラスまたはインタフェースの配列への参照。これは、<destination_class>タイプの配列としてコードに表されます。

参照(コレクション)

これは、コレクション宣言としてコードに表されます。必須のimport java.util.Collection;文、およびこの参照を識別するための@associates <{type}> Javadocタグがソースに追加されます。

参照(リスト)

これは、リスト宣言としてコードに表されます。必須のimport java.util.List;文、およびこの参照を識別するための@associates <{type}>Javadocタグがソースに追加されます。

参照(マップ)

これは、マップ宣言としてコードに表されます。必須のimport java.util.Map;文、およびこの参照を識別するための@associates Javadocタグがソースに追加されます。

参照(セット)

これは、セット宣言としてコードに表されます。必須のimport java.util.Set;文、およびこの参照を識別するための@associates Javadocタグがソースに追加されます。

注意:

ダイアグラム上の参照のプロパティを迅速に変更するには、その参照をダブルクリックしてコード・エディタを表示し、参照の詳細を変更します。

デフォルトでは、参照のラベルが表示されません。参照のラベルを表示するには、参照を右クリックして「ビジュアル・プロパティ」を選択し、「ラベルの表示」を選択します。デフォルトのラベル名は、その参照を表すフィールド名です。ダイアグラムでこのラベル名を選択して変更すると、コードでは@label <label_name> Javadocタグが参照を表すフィールドの前に追加されます。

ダイアグラム上の参照で使用される集約記号を変更できます。そのためには、まずその参照を右クリックして「参照集約タイプ」を選択し、次に「なし」、「弱い」(@aggregation共有Javadocタグが参照を表すコードに追加されます)、または「強い」(@aggregationコンポジットJavadocタグが参照を表すコードに追加されます)を選択します。集約記号は、文書化の目的にのみ使用されます。

18.11.4 Javaクラス図での継承のモデリング

Javaソースでextends文として表現される継承構造は、ダイアグラム上のJavaクラス・コンポーネント・パレットの「拡張」アイコンを使用してJavaクラスのダイアグラムに作成できます。拡張関係は、ダイアグラムでは、拡張クラスまたはインタフェースの方向を白抜きの矢印で指す実線として表示されます。

インタフェースをクラスによって実装する場合、ダイアグラムのJavaコンポーネント・パレットの「実装」アイコンを使用して、インタフェースを作成できます。実装関係を作成すると、実装クラスのソース・コードにimplements文が追加されます。実装関係は、ダイアグラムでは、実装されたJavaインタフェースの方向を白抜きの矢印で指す破線として表示されます。

18.11.4.1 モデリングされたJavaクラスの拡張

拡張関係は、同一クラス・モデルにおける要素間の継承をモデリングします。クラス定義にextends文を作成して、Javaクラス間およびJavaインタフェース間の拡張関係を作成できます。列挙は他のクラスを拡張したり、他のクラスで拡張することはできません。

注意:

Javaでは多重クラス継承をサポートしていないため、ダイアグラムのJavaクラスからモデリングできる拡張関係は1つのみです。多重拡張関係は、Javaインタフェースからモデリングできます。

18.11.4.2 モデリングされたJavaインタフェースの実装

実装関係は、モデリングされたJavaインタフェースを、モデリングされたJavaクラスを使用して実装することを指定します。これは、Javaクラスのソースではimplementsキーワードとして表されます。クラス図における実装関係は、実装されるインタフェースへ向けた、先端が白抜きの破線矢印で表します。列挙は、インタフェースを実装できません。

実装されたインタフェースが、モデリングされた別のインタフェースの拡張である場合(extends関係を使用)、これはインタフェースのJavaソース・コードに反映されます。

インタフェースを実装するクラスでは、そのインタフェースの一部またはすべての抽象メソッドの実装が可能です。あるクラスがインタフェースのメソッドを部分的にしか実装しない場合でも、そのクラスはabstractとして定義されます。

18.11.5 Javaフィールドとメソッドのモデリング

Javaクラスまたはインタフェースのメンバー(フィールドおよびメソッド)をダイアグラムに作成できます。フィールドおよびメソッドを、ダイアグラム上のモデリングされたJavaクラスおよびインタフェースに追加します。そのためには、モデリングされたJavaクラスまたはインタフェースをダブルクリックし、Javaソース・エディタを使用してフィールドまたはメソッドを追加します。

- フィールドは、モデリングされたJavaクラスまたはJavaインタフェースの特性をカプセル化するために使用されます。モデリングされたすべてのフィールドには、名前、データ型および指定された可視性があります。
フィールドまたはメソッドがダイアグラムのクラスに表示されるとき、接頭辞として+ (publicとして宣言される場合)、- (privateとして宣言される場合)または# (protectedとして宣言される場合)が付きます。staticフィールドはダイアグラム上で下線が引かれます。

- メソッドは、クラス内でそのクラスの動作を定義します。メソッドには、スカラー型または他のクラスで定義した型のいずれかの戻り型を指定できます。

18.11.6 Javaクラス図でのパッケージのモデリング

パッケージは、要素をグループに編成するための汎用メカニズムです。パッケージ、ファイル、クラス、モデル要素(クラス、インタフェース、エンティティ・オブジェクトなど)をはじめ様々なタイプの要素を含めることができます。パッケージを他のパッケージにネストすることもできます。

パッケージは、様々な要素を所有し、その要素のコンテキストおよびネームスペースを提供します。同じパッケージが所有する各要素の名前は、そのパッケージ内で一意である必要があります。各要素を直接所有するのは1つのパッケージのみですが、他のパッケージから各要素を参照(インポート)できます。つまり、あるパッケージの要素を他のパッケージの他の要素から参照できます。

ダイアグラムでパッケージの名前を変更したり、パッケージを移動すると、移動または名前が変更されたパッケージの内容は自動的にリファクタされ、変更内容が反映されます。

パッケージ名は、大/小文字の違いに関係なく、ネームスペース内で一意である必要があります。

Javaパッケージは、ダイアグラムに作成することも、ナビゲータからダイアグラムにドラッグすることもできます。Javaパッケージのダイアグラムを開くには、ダイアグラム上のそのパッケージを右クリックし、「ドリルダウン」を選択します。

18.11.7 関連クラスをダイアグラムに表示する方法

現在表示されている要素に関連するJavaクラスおよびインタフェースを、ダイアグラムに取り込むことができます。これには、選択したクラスまたはインタフェースによって拡張、実装または参照されているクラスまたはインタフェースが含まれます。

注意:

クラスがプロジェクトのソースパスからダイアグラムに追加され、それらのクラスがまだプロジェクトにない場合は、それらのクラスが現在のプロジェクトに自動的に追加されます。

関連するクラスをダイアグラムに表示するには、次の2つの方法のいずれかを使用します。

- ダイアグラムで、関連する要素を表示するクラスまたはインタフェースを選択し、「モデル」→「表示」→「関連する要素」を選択します。

- ダイアグラムで、関連する要素を表示するクラスまたはインタフェースを右クリックし、「表示」→「関連する要素」を選択します。

18.11.8 Javaクラス間の参照を非表示にする方法

参照を使用すると、Javaクラスまたはインタフェース間の関係をダイアグラムに視覚化できます。参照はダイアグラムで非表示にできます。

Javaクラス間の参照を非表示にするには、次のようにします。

- 非表示にする参照を右クリックし、「参照の非表示」を選択します。

Javaクラス間の非表示の参照を表示するには、次のようにします。

1. 参照を表すフィールドが定義されているモデリングされたJavaクラスをダブルクリックします。

2. エディタ・ウィンドウの下部で、「ソース」タブをクリックします。

3. 参照を表すメンバーの上から、attribute Javadocタグを削除します。
非表示の参照がダイアグラムに表示されます。

注意:

ダイアグラムでJavaクラス間の参照を非表示にすると、クラスのJavaソースにコメントが追加されるため、このクラスが他のダイアグラムにもある場合、この参照は他のダイアグラムでも非表示になります。

18.11.9 Javaクラスのモデリング時の処理内容

ダイアグラムに表されるクラスの定義、クラスのメンバー、継承およびコンポジット関係は、クラスのJavaソース・コードから直接導出されます。これらはすべてJavaコードとして作成され、ダイアグラムに表示されます。ダイアグラムに表示されているクラスのソース・コードを変更、追加または削除した場合、これらの変更内容は、ダイアグラム上のこれらのクラスおよびインタフェースに反映されます。反対に、モデリングされたクラスに対する変更は、基礎となるソース・コードにも行われます。Javaクラス図上に表示されたコンポジット関係または参照に関する情報の中には、Javadocタグとしてソース・コードに格納されているものもあります。

Javaクラス図には、他のダイアグラム・タイプ(Oracle ADF Business Components、UML要素、Enterprise JavaBeansおよびデータベース・オブジェクト)の図形を含めることができます。UML表記法を使用して、ダイアグラム上のクラスを表示します。モデル化されたUMLクラスは、モデル化されたJavaクラスに変換できます。同様に、モデリングされたJavaクラスは、モデリングされたUMLクラスに変換できます。ノート、依存関係およびURLリンクを使用して、Javaクラスのダイアグラムに注釈を付けることができます。

18.11.10 Javaクラスのダイアグラムの作成方法

Javaクラス、インタフェースおよび列挙を、それぞれのメンバー、継承およびコンポジット関係とともに、Javaクラス図に視覚的に作成できます。

UMLクラス、UMLユースケース、オフライン・データベース・オブジェクト、ビジネス・コンポーネント、Enterprise JavaBeansおよびWebサービスをJavaクラス図に作成できます。

ダイアグラムのJavaクラスには有効なJavaクラス名が必要で、クラスのパッケージ内で一意である必要があります。モデリングされたJavaクラスをabstractとして定義した場合は、抽象Javaクラスに対する汎化を使用して具体的なJavaクラスを作成する必要があります。モデリングされた抽象Javaクラスの名前は、イタリックで表示されます。

Javaクラスのダイアグラムを作成するには、次のようにします。

1. 「新規ギャラリ」の「Java Class Diagram」アイコンを使用して新規ダイアグラムを作成します。

2. Javaクラスのコンポーネント・パレットを使用して、ダイアグラム上に必要なノードを作成します。
また、現在のプロジェクトで使用できるJavaクラスおよびインタフェースをナビゲータからダイアグラムにドラッグ・アンド・ドロップして、それらのクラスのコードに変更を加えたり、既存のコードの構造を視覚化できます。

ヒント:

ダイアグラム要素を作成してノートを添付し、ファイルやWebの場所などの他の場所へのURLリンクを追加することにより、ダイアグラムに注釈を付けることもできます。

18.12 JUnitによるユニット・テスト

JUnitは、Java対応のリグレッション・テスト用オープン・ソース・フレームワークです。JUnitを使用して、Javaコードを検証するテストを記述および実行します。JUnitの詳細は、 http://www.junit.org/にあるJUnitのWebサイトを参照してください。

テスト・フィクスチャ、テスト・ケースおよびテスト・スイートを作成するには、JDeveloperのJUnitウィザードを使用します。一般的なプロジェクト用のテスト・コンポーネントを作成するウィザードに加えて、ビジネス・コンポーネント・プロジェクトの専用ウィザードが提供されています。

JUnitは、JDeveloperにインストールおよび統合できるオプション機能です。

拡張機能としてJUnitをインストールした後で、追加のオンライン・ドキュメントがインストールされます。これらのヘルプ・トピックは、ヘルプの目次で「Javaプロジェクトに対するJUnitテストの作成」というフォルダの下位にあります。

18.12.1 JUnitのインストール方法

JUnitは、JDeveloperとともに配布されないオプション機能です。JUnitを使用する場合は、これをダウンロードおよびインストールする必要があります。

注意:

JUnitは、IBMのパブリック・ライセンス契約に基づいて提供されています。JUnitをダウンロードする前に、ライセンス契約を受け入れる必要があります。

JDeveloperにJUnitをインストールする手順は、次のとおりです。

1. IDE更新ウィザードを使用して、Oracle Technology Network (OTN)からJUnitをダウンロードします。

2. JDeveloperを終了し、再起動します。

3. JUnitがインストールされます。アンインストールする場合は、拡張機能マネージャを使用します。

18.12.2 Javaプロジェクトに対するJUnitテストの作成

JUnitテスト・アプリケーションは、次のコンポーネントで構成されます。

- 1つ以上のテスト・ケース。テスト対象のメソッドを呼び出し、予測される結果についてのアサーションを作成します。デフォルトで生成されるテスト・ケース・クラスは「Test」という名前ですが、ユーザーが任意の有効なJava名を指定できます。

- テスト・フィクスチャ。テストが実行される状態を提供します。任意のクラスをテスト・フィクスチャとして使用できますが、JDeveloperには専用のテスト・フィクスチャ・クラスを作成するウィザードも用意されています。デフォルトで生成されるテスト・フィクスチャ・クラスは「Fixture」という名前ですが、ユーザーが任意の有効なJava名を指定できます。

- テスト・スイート。テスト・ケースを呼び出します。デフォルトのテスト・スイート・クラスは、「AllTests」という名前です。

- ランナー。テスト・スイートを呼び出し、テスト結果を相関付けて表示します。

18.12.3 JUnitカスタム・テスト・フィクスチャの作成方法

テスト・フィクスチャとは、既知の値を持つオブジェクトのセットで、テスト・ケースにデータを提供します。任意のクラスをテスト・フィクスチャとして使用できますが、JDeveloperにはカスタムのテスト・フィクスチャ・クラスや様々な専用のテスト・フィクスチャを作成できるウィザードも用意されています。

JUnitのカスタムのテスト・フィクスチャ・クラスを作成するには、次のようにします。

1. ナビゲータでプロジェクトを選択します。

2. 「ファイル」→「新規」を選択し、「新規ギャラリ」を開きます。

3. 「カテゴリ」ツリーで「一般」を開き、「ユニット・テスト」を選択します。

4. 「項目」リストで、「テスト・フィクスチャ」をダブルクリックします。

5. ウィザードを完了するとテスト・フィクスチャ・クラスが作成されます。ウィザードによって作成されたクラスが、編集用に開かれます。

6. 「カテゴリ」ツリーで「一般」を開き、「ユニット・テスト」(JUnit)を選択します。

7. 「項目」リストで、「カスタム・テスト・フィクスチャ」をダブルクリックします。

8. ウィザードを完了するとテスト・フィクスチャ・クラスが作成されます。詳細を参照するには、ダイアログ内で[F1]を押すか「ヘルプ」をクリックします。

9. 「カテゴリ」ツリーで、「ユニット・テスト」を展開します。

10. 「テスト・スイート」→「OK」をクリックします。

11. 「項目」リストで、「テスト・フィクスチャ」をダブルクリックします。

12. ウィザードを完了するとテスト・フィクスチャ・クラスが作成されます。詳細を参照するには、ダイアログ内で[F1]を押すか「ヘルプ」をクリックします。
ウィザードによって作成されたクラスが、編集用に開かれます。

13. 必要に応じてファイルを変更します。具体的には、テスト・フィクスチャ・オブジェクトを初期化するコードをsetUp()メソッドに追加し、取得されたリソースを解放するコードをtearDown()メソッドに追加します。

18.12.4 JunitのJDBCテスト・フィクスチャの作成方法

テスト・フィクスチャとは、既知の値を持つオブジェクトのセットで、テスト・ケースにデータを提供します。JDBCテスト・フィクスチャは、使用するテスト・ケースにデータベース接続を確立するコードを提供します。

JUnitのJDBCテスト・フィクスチャ・クラスを作成するには、次のようにします。

1. ナビゲータでプロジェクトを選択します。

2. 「ファイル」、「新規」を選択し、「新規ギャラリ」を開きます。

3. 「カテゴリ」ツリーで「一般」を開き、「ユニット・テスト」(JUnit)を選択します。

4. 「項目」リストで、「JDBCテスト・フィクスチャ」をダブルクリックします。

5. ダイアログを完了するとテスト・フィクスチャ・クラスが作成されます。詳細を参照するには、ダイアログ内で[F1]を押すか「ヘルプ」をクリックします。
作成されたクラスが、編集用に開かれます。

6. 必要に応じてファイルを変更します。具体的には、テスト・フィクスチャ・オブジェクトを初期化するコードをsetUp()メソッドに追加し、取得されたリソースを解放するコードをtearDown()メソッドに追加します。

18.12.5 JUnitテスト・ケースの作成

テスト・ケース・クラスには、JUnitのアサーションを呼び出してテストを実行する1つ以上のメソッドがあります。例18-8に、JUnit 3.xでの典型的なテスト・ケースを示します。この例では、テスト対象のメソッドにテスト・フィクスチャ・データを渡してから、その結果を既知の値と比較し、予測どおりかどうかを確認しています。

例18-8 JUnit 3.xのテスト・ケース

public void testCountChars()
{
int expected = 4;
int actual = fixture1.countChars('a');
assertEquals(expected, actual);
}

例18-9 JUnit 4のテスト・ケース

@Test
public void testCountChars()
{
int expected = 4;
int actual = fixture1.countChars('a');
Assert.assertEquals(expected, actual);
}

例18-9に示したテスト・ケースでは、countChars()がテスト対象であり、テストの結果をassertEquals()でチェックしています。これは、JUnit Assertクラスで定義されているアサーション・メソッドの一種です。テスト・フィクスチャfixture1の状態はsetUp()メソッドで確立され、このメソッドは例18-10で示すようにテスト・ケースの呼出しより前に呼び出されていました。

例18-10 setUp()メソッド

protected void setup() throws Exception
{
fixture1 = new StringFixture("Goin' to Kansas City, Kansas City, here I come.");
}

JUnitテスト・ケース・クラスを作成するには、次のようにします。

1. ナビゲータで、テストするプロジェクトまたは特定のクラスを選択します。

2. 「ファイル」、「新規」を選択し、「新規ギャラリ」を開きます。

3. 「カテゴリ」ツリーで「一般」を開き、「ユニット・テスト」(JUnit)を選択します。

4. 「項目」リストで、「テスト・ケース」をダブルクリックします。

5. ウィザードを完了するとテスト・フィクスチャ・クラスが作成されます。ウィザードによって作成されたクラスが、編集用に開かれます。

18.12.6 JUnitテスト・スイートの作成

テスト・スイートは、テスト・ケースを呼び出すクラスです。

JUnitテスト・スイート・ウィザードには、main()メソッドと、TestRunnerクラスのコールとを挿入するオプションがあります。「JUnit TestRunner」ログ・ウィンドウが開き、テスト結果が表示されます。別のテスト・ランナーを使用する場合には、メソッドを編集します。

例18-11に示したJUnit 3.xテスト・スイートでは、suite()メソッドによってTestSuiteインスタンスが作成され、それにテスト・ケースが追加されます。テスト・ケースを追加または削除する場合には、このメソッドを編集します。

例18-11 JUnit 3.xのテスト・スイート

public class AllTests {
public static Test suite() {
TestSuite suite;
suite = new TestSuite("project1.AllTests");
return suite;    }

例18-12に示したJUnit 4テスト・スイートでは、テスト・ケース・クラスは@Suiteおよび@RunWithの注釈を付けて記述されています。

例18-12 JUnit 4のテスト・スイート

@RunWith(Suite.class)
@Suite.SuiteClasses( {})
public class AllTests1 {
public static void main(String[] args) {
String[] args2 = { AllTests1.class.getName() };
org.junit.runner.JUnitCore.main(args2);
}
}

JUnitテスト・スイート・クラスを作成するには、次のようにします。

1. ナビゲータでプロジェクトを選択します。

2. 「ファイル」、「新規」を選択し、「新規ギャラリ」を開きます。

3. 「カテゴリ」ツリーで「一般」を開き、「ユニット・テスト」(JUnit)を選択します。

4. 「項目」リストで、「テスト・スイート」をダブルクリックします。

5. ウィザードを完了するとテスト・フィクスチャ・クラスが作成されます。ウィザードによって作成されたクラスが、編集用に開かれます。

6. 必要に応じてファイルを変更します。詳細は次のとおりです。

- suite()メソッドでテスト・ケースを追加します。

- main()メソッドで、必要に応じてランナーの呼出しを置き換えます。

18.12.7 JUnitテスト・ケースにテストを追加する方法

メソッドに対するユニット・テストを、既存のJUnitテスト・ケース・クラスに追加できます。

JUnitテスト・ケース・クラスにテストを追加するには、次のようにします。

1. コード・エディタで、新しいユニット・テストを作成するメソッドを選択します。

2. メイン・メニューから「ソース」→「新規メソッドのテスト」を選択します。「新規メソッドのテスト」ダイアログが開きます。

3. 「既存のTestCaseクラスに追加」を選択します。

4. 「クラス名」ドロップダウン・ボックスから、または「参照」を使用して、新しいテストを追加するテスト・ケース・クラスを選択します。

5. 新しいテストをテスト・ケースに追加するには、「OK」をクリックします。

18.12.8 プロジェクトのすべてのテスト・ケースでテスト・スイートを更新する方法

プロジェクトのすべてのテスト・ケースでテスト・スイートを更新します。

テスト・スイートを更新するには、次のようにします。

1. suite()メソッドを持つクラスで、メイン・メニューから「ソース」→「テスト・スイートのリフレッシュ」を選択します。「テスト・スイートのリフレッシュ」ダイアログが開きます。

2. テスト・ケースのリストにあるすべての項目がチェックされていることを確認してください。

3. テスト・スイートを更新するには「OK」をクリックします。

18.12.9 JUnitテスト・スイートの実行方法

テスト・スイートが正常にコンパイルされたら、実行できます。

JUnitテスト・スイートを実行するには、次のようにします。

1. ナビゲータでテスト・スイート・クラスを選択します。

2. 右クリックして「実行」を選択します。
テストが実行され、テスト・ランナーに結果が表示されます。

19 Javaプログラムの実行およびデバッグ

この章では、JDeveloperで提供されるツールや機能を使用して、Javaプログラムを実行およびデバッグする方法について説明します。Javaプログラムの記述とコンパイルの詳細は、第18章「Javaでのプログラミング」を参照してください。

この章では、次の項目について説明します。

- 第19.1項「Javaプログラムの実行およびデバッグについて」

- 第19.2項「Run Managerの理解」

- 第19.3項「プロジェクトを実行用に設定する方法」

- 第19.4項「アプレットの実行」

- 第19.5項「プロジェクトまたはファイルの実行方法」

- 第19.6項「デバッガについて」

- 第19.7項「デバッガ・ウィンドウの使用方法」

- 第19.8項「ブレークポイントの管理」

- 第19.9項「デバッガのウィンドウでプログラムの状態を確認する」

- 第19.10項「Javaプログラムのリモート・デバッグ」

19.1 Javaプログラムの実行およびデバッグについて

JDeveloperには、Javaプログラムの実行方法を監視および制御するいくつかの方法があります。Javaプログラムを実行するとき、JDeveloperは実行、デバッグおよびプロファイリングされるプロセスを常時追跡します。また、JDeveloperでは、Java、JSPおよびサーブレット・ソース・ファイルのリモート・デバッグとローカル・デバッグを提供しています。

19.2 Run Managerの理解

Run Managerは、実行、デバッグ、プロファイリングが行われるプロセスを追跡します。このような複数のプロセスが同時にアクティブになっている場合、「Run Manager」ウィンドウが自動的に表示されます。プロセスが完了すると、そのプロセスはRun Managerから自動的に削除されます。

Run Managerを表示するには、次のようにします。

- メイン・メニューから、「表示」→「Run Manager」を選択します。

実行マネージャでプロセスを終了するには、次のようにします。

- Run Managerでプロセスを右クリックし、ポップアップ・メニューから「終了」を選択します。

実行ログを表示するには、次の手順を実行します。

- Run Managerでプロセスを右クリックし、ポップアップ・メニューから「ログの表示」を選択します。

19.3 プロジェクトを実行用に設定する方法

ターゲット、起動オプション、およびデバッガ、ロガー、プロファイラの動作など、プログラムの実行方法を制御する設定が実行構成にまとめられます。

プロジェクトには、プロジェクトの特定のファセットや開発プロセスのフェーズ用に設定された実行構成が複数含まれています。実行構成をプロジェクトにバインドし、プロジェクトで作業するすべてのユーザーに使用可能とするか、ユーザー固有のカスタム構成とすることができます。

新規プロジェクトごとにデフォルトの実行構成が作成されます。実行構成を変更したり、既存の実行構成をコピーして新規の構成を作成できます。

注意:

Oracle ADFモデル・テスターなどのJDeveloperから実行されるJavaプログラムは、JDeveloper IDEのJavaオプションを継承しません。そのため、ほとんどの場合、使用するJavaオプション(run/debug)を実行構成で設定する必要があります。

実行構成を選択するには、次のようにします。

1. メイン・メニューから「アプリケーション」→「プロジェクト・プロパティ」を選択します。

2. 「実行/デバッグ」ページを選択します。

3. 「実行構成」リストから実行構成を選択します。

実行構成を変更するには、次のようにします。

1. 前述のように実行構成を選択します。

2. 「編集」をクリックします。
「実行コンフィギュレーションの編集」ダイアログが開きます。

3. ダイアログ・ページで設定に必要な変更を行います。
ダイアログ・ページの使用中にヘルプを表示するには、[F1]を押します。

実行構成を作成するには、次のようにします。

1. 前述のように実行構成を選択します。

2. 「新規」をクリックします。
「実行コンフィギュレーションの作成」ダイアログが開きます。

3. 「名前」ボックスで、新しい実行構成の名前を入力します。

4. 「設定のコピー元」ドロップダウン・ボックスで、コピー元の既存の実行構成を選択します。

5. コピー元と同じ設定で新しい実行構成を作成するには、「OK」をクリックします。

19.4 アプレットの実行

JDeveloperでは、アプレット・ビューアまたは統合WebLogic Serverインスタンスでアプレットを実行できます。アプレット・ビューアを使用すると、Webブラウザを起動せずにアプレットを実行できます。ブラウザでアプレットを実行する場合は、統合WebLogic Serverインスタンスで実行できます。

アプレットを作成し、HTMLファイルでクラスパスが正しく設定されていることを確認した後、次のいずれかの方法で「実行」コマンドを実行して、アプレットを実行できます。

1. ナビゲータで、<APPLET>タグを含むHTMLファイルを選択します。

2. アプレットを実行するには、HTMLファイルを右クリックし、「実行」を選択します。

3. ダイアログで、ターゲット・アプレットを起動する方法を選択し、「OK」をクリックします。

- アプレット・ビューア内: アプレット・ビューアからアプレットが起動されます。

- サーバー・インスタンス内: 統合サーバーが起動し、アプレットがサーバーで実行されます。

19.4.1 引数の格納にHTMLファイルを使用

アプレットはHTMLページで実行され、このページから表示サイズおよびその他のパラメータを取得します。アプレットをJDeveloperで実行するには、適切な<APPLET>タグを含むHTMLファイルを指定する必要があります。

大文字と小文字は、パラメータ・タグでは区別されませんが、パラメータ名では区別されます。

<APPLET CODE="foo.class" WIDTH=200 HEIGHT=20> </APPLET>

<APPLET>タグと</APPLET>タグの間に次のような<PARAM>タグを挿入して、パラメータをアプレットに渡すこともできます。

<PARAM NAME=foo VALUE=true>

例19-1に、パラメータを渡す際に使用するHTMLコードを示します。

例19-1 パラメータを渡す際に使用するHTMLコード

<H1>Test File</H1>
<HR>
<APPLET CODE="Test3.class" WIDTH=500 HEIGHT=120>
<PARAM NAME=level VALUE="8">
<PARAM NAME=angle VALUE="45">
<PARAM NAME=delay VALUE="1000">
<PARAM NAME=axiom VALUE="F">
<PARAM NAME=incremental VALUE="true">
<PARAM NAME=incremental VALUE="true">
</APPLET>
<HR>
<A HREF="Test3.java">The source</A>
...

19.5 プロジェクトまたはファイルの実行方法

プロジェクトまたはファイルをビルドした後、実行できます。

プロジェクトまたはファイルを実行するには、次の手順に従います。

1. ナビゲータで、実行するプロジェクトまたはファイルを選択します。

2. 次のいずれかの方法でアプリケーションを実行します。

- プロジェクトの場合のみ、メイン・メニューから「実行」→「プロジェクトの実行」を選択します。

- ポップアップ・メニューから「実行」を選択します。

- ツールバーの「実行」アイコンをクリックします。

Javaアプリケーションのメイン・メソッドが起動します。

19.5.1 コマンドラインからのプロジェクトの実行方法

オペレーティング・システムのコマンドラインからプロジェクトを実行するための要件は、次のとおりです。

- プロジェクトがスタンドアロン実行可能プロジェクトであること

- アプリケーションのmain()メソッドを含むクラス・ファイルを選択すること

アプリケーションを起動するには、次のように入力します。

次のように入力します。

java -cp <jdev_install>\jdeveloper\jdev\mywork\Workspace1\Project1\classes package1.Application1

コマンドラインから実行可能JARファイルを起動するには、次のように入力します。

次のように入力します。

java -jar <application>.jar

ここで、<application>は使用しているJARファイルの名前です。

19.5.2 Java Virtual Machineの変更方法

オペレーティング・システムの要件によって、開発対象のJava Virtual Machine (VM)を変更する必要がある場合があります。たとえば、クライアント側アプリケーションの場合は、HotSpot Client VMを使用し、長時間実行のサーバー・アプリケーションを実行するにはServer VMを使用します。

Java Virtual Machineを変更するには、次のようにします。

1. ナビゲータでプロジェクトを右クリックし、ポップアップ・メニューから「プロジェクト・プロパティ」を選択します。

2. 「実行/デバッグ/プロファイル」ページを開きます。

3. 実行構成を選択し、「編集」をクリックします。
これによって、「実行構成の編集」ダイアログが開きます。

4. 「起動設定」ページの「仮想マシン」リスト・ボックスで、使用可能なオプションを選択します。
プロジェクトの実行およびデバッグに、選択したJVMが使用されます。

5. 詳細は、「ヘルプ」をクリックしてください。

19.5.3 プログラム用クラスパスの設定

コマンドラインからJavaプログラムを実行する場合、アプリケーションを構成するクラス・ファイルおよびライブラリへのパスのリストをJava Virtual Machine (JVM)に提供する必要があります。クラスパスの構成は、Javaプログラムの実行方法によって異なります。

JavaクラスはJavaアーカイブ・ファイル(*.jar)に格納するか、各パッケージ・ディレクトリの個別のクラス・ファイル(*.class)として格納します。JavaでのJARファイルとパッケージ・ディレクトリの処理方法は異なります。

- CLASSPATHでJARファイルを参照する場合、JARファイルへの完全修飾パスを使用します。CLASSPATHでパッケージ・ディレクトリを参照する場合、パッケージの親ディレクトリへのパスを使用します。

- CLASSPATH文では、JARとパッケージ・ディレクトリの両方を参照できます。同じ文で複数のCLASSPATHを参照する場合は、各CLASSPATHをセミコロン(;)で区切ります。

クラスパスの定義後、Javaプログラムの実行方法によってJVMへ値を渡す方法は異なります。

- java.exeを使用してスタンドアロン・アプリケーションを実行するようにCLASSPATH環境変数を設定します。

- java.exeの-classpathオプションを使用するように、CLASSPATH環境変数を設定します。

- インターネット・ブラウザでアプレットを実行するために、.htmlファイルの<APPLET>タグにCLASSPATHを埋め込みます。

SDKツールをコールする場合に、-classpathオプションを使用する方法(推奨)かCLASSPATH環境変数を設定する方法を選択できます。

19.5.3.1 CLASSPATH環境変数の設定(java.exeの場合)

Java2 Standard Edition (J2SE)にはjava.exeが含まれています。これは開発ツールとして使用するためのファイルで、Javaプログラムとともに配布するためのライセンスは供与されていません。コマンド・プロンプト画面からJavaアプリケーションをテストする際に使用します。

コマンド・プロンプト画面からJavaアプリケーションを実行するには、プログラムの実行に必要なすべてのクラスが含まれるように、システム環境変数CLASSPATHを定義する必要があります。これには、プログラムで使用される、JDeveloperによって提供されるすべてのライブラリ・クラスが含まれます。

19.5.3.2 JDeveloperライブラリのCLASSPATHの使用方法

JDeveloperには、Javaプログラムの生成に役立つ数百のライブラリ・クラスが付属しています。クラスは、J2SE、サード・パーティの開発者、およびオラクル社から提供されます。各ライブラリは、アップグレードを容易に行うために個別に管理されます。このため、JDeveloperで作成するプログラムをコマンド・プロンプト画面から実行するには、クラスパスに多数のアーカイブ・ファイルを含める必要があります。

プロジェクトで使用される各ライブラリへのパスのみをリストに含めることをお薦めします。プロジェクトで使用されないパスをリストに含めた場合でもプログラムは起動しますが、パフォーマンス上の理由から、不要なライブラリはすべて排除してください。

CLASSPATH変数を設定するコマンドの書式は次のとおりです。

set CLASSPATH=path1;path2;path3;...path_n

注意:

パスの1つにスペースが含まれる場合でも、クラスパスに引用符を使用しないでください。

19.5.3.3 プロジェクトを含めるようにCLASSPATHを設定する

出力パスにデフォルトのディレクトリを使用した場合、クラスパスに次のディレクトリを追加し、java.exeを使用してJavaアプリケーションをテストできます。

C:\<jdev_install>\jdeveloper\jdev\mywork\Workspace1\Project1\classes

この変数を設定することで、java.exeを使用して、出力ディレクトリmyworkからアプリケーションを実行できます。

Javaプログラムを他のディレクトリにデプロイした場合、アプリケーション・パッケージの親ディレクトリへのパスを追加する必要があります。

CLASSPATH変数は長い文字列であるため、入力を誤る可能性があります。CLASSPATHをシステム環境変数として設定すると、入力時間と入力ミスを減らすことができます。

19.5.3.4 CLASSPATHパラメータの設定(java.exeの場合)

Javaランタイム・エンジン(java.exe)では、CLASSPATH環境変数は使用しません。CLASSPATHを、java.exeコマンドのパラメータとして使用する必要があります。コマンドの書式は次のとおりです。

java -cp <classpath> package.Application

classpathは、Javaプログラムおよびプログラムで使用される依存クラスへの完全なCLASSPATHです。CLASSPATHディレクトリ名にスペースが含まれない場合、引用符は使用しなくてもかまいません。

19.5.3.5 <APPLET>タグへのCLASSPATHパラメータの埋込み

アプレットを実行する場合、ブラウザによって、ホストの*.htmlファイルの<APPLET>タグにARCHIVEおよびCODEBASEパラメータで指定するCLASSPATHが提供されます。

CODEBASEパラメータでは、インターネット・ブラウザがクラス・ファイルを検索するルート・ディレクトリを設定します。クラスがアプレットをコールするHTMLページと同じディレクトリに格納されている場合、CODEBASEパラメータを省略できます。異なるディレクトリに格納されている場合は、HTMLファイルからCODEBASEディレクトリの場所までの絶対パスまたは相対パスを使用します。ディレクトリを示す場合、円記号(\)ではなくフォワード・スラッシュ(/)を使用します。

ARCHIVEパラメータでは、アプリケーションで使用するCLASSPATHと同様、プログラムおよびプログラムをサポートするライブラリ・ファイルを含むJARファイルの場所と名前のリストを指定します。これらには3つの重要な違いがあります。

- Javaアーカイブ・ファイル名は、セミコロン(;)ではなくカンマ(,)で区切られます。

- Javaアーカイブ・ファイルがCODEBASEのサブディレクトリに格納されている場合、ディレクトリを示すには、円記号(¥¥)ではなくフォワード・スラッシュ(/)を使用します。

- アプレットのJavaセキュリティ・モデルに対する制約により、ARCHIVEパラメータが参照するクラスは、CODEBASEディレクトリのサブディレクトリにのみ置くことができます。つまり、親ディレクトリ(../)を使用してアーカイブ・ファイルの場所を設定しようとすると、セキュリティ違反エラーが発生します。

19.6 デバッガについて

デバッグとは、プログラム内のエラーを検出して修正するプロセスです。JDeveloperに統合されているデバッガでは、Javaアプリケーション、アプレット、サーブレット、JavaServer Pages (JSP)およびEnterprise JavaBeans (EJB)をデバッグできます。JDeveloperでは分散デバッグがサポートされているため、同一のマシンまたは別のマシンにある1つまたは複数のオブジェクトをデバッグできます。

デバッガにより、コードを調べて問題のある領域を特定し修正するための多くの機能が提供されます。コードの分析には、ローカルとリモートの2種類のデバッグが可能です。

ローカル・デバッグ・セッションを開始するには、ソース・ファイルにブレークポイントを設定し、デバッガを開始します。JDeveloperでサーブレットなどのアプリケーションをデバッグする際は、実行フローを完全に制御して、変数の値を表示および変更できます。また、クラス・インスタンスのカウント数とメモリー使用量を監視することによって、アプリケーションのパフォーマンスを調べることができます。JDeveloperは、アプリケーションから他のソース・ファイルへのコールに従うか、またはソース・ファイルが使用できない場合はスタブ・クラスを生成します。

リモート・デバッグでは、2つのJDeveloperプロセスが必要です。1つはデバッガ・プロセス、もう1つはデバッグ対象プロセスです。デバッグ対象プロセスは異なるプラットフォームに存在している場合があります。デバッグ対象プロセスが開始し、デバッガ・プロセスがそのデバッグ対象プロセスにアタッチされた後は、リモート・デバッグとローカル・デバッグの動作は似ています。

JDeveloperでは、コード内で問題のある領域を効率的に特定できるようにする特殊な目的のデバッグ・ウィンドウが、次のように数多く提供されます。

- 「ブレークポイント」ウィンドウは、現在のワークスペースおよびプロジェクトのブレークポイントを表示します。詳細は、第19.7.1項「「ブレークポイント」ウィンドウの使用方法」を参照してください。

- 「スマート・データ」ウィンドウは、ステップ実行中のコードで使用されているデータを表示します。詳細は、第19.7.2項「「スマート・データ」ウィンドウの使用方法」を参照してください。

- 「データ」ウィンドウは、現在のコンテキストの引数とローカル変数を表示します。「プロジェクト・プロパティ」ダイアログの「コンパイラ」ページで、「完全なデバッグ情報」が選択されている必要があります。詳細は、第19.7.3項「「データ」ウィンドウの使用方法」を参照してください。

- 「監視」ウィンドウは、監視されるプログラムの値を表示します。監視式は、現在のコンテキストに応じて式を評価します。新しいコンテキストに移動すると、その新しいコンテキストに対して式が再評価されます。詳細は、第19.7.4項「「監視式」ウィンドウの使用方法」を参照してください。

- 「インスペクタ」ウィンドウは、1つのデータ項目を専用のフローティング・ウィンドウに表示します。インスペクタは、現在のコンテキストに応じて式を評価します。詳細は、第19.7.5項「「インスペクタ」ウィンドウの使用方法」を参照してください。

- 「ヒープ」ウィンドウには、デバッグ中のプログラムのヒープに関する情報が表示され、プログラムのメモリー・リークの検出に役立ちます。詳細は、第19.7.6項「「ヒープ」ウィンドウの使用方法」を参照してください。

- 「スタック」ウィンドウは、現在のスレッドのコール・スタックを表示します。詳細は、第19.7.7項「「スタック」ウィンドウの使用方法」を参照してください。

- 「クラス」ウィンドウは、各クラスの名前およびパッケージなど、アプリケーションが実行される際にロードされたクラスに関する情報を表示します。デバッガによって、各クラスのライブ・インスタンスの数、およびこれらのインスタンスで消費されるメモリーの量も表示できます。詳細は、第19.7.8項「「クラス」ウィンドウの使用方法」を参照してください。

- 「モニター」ウィンドウは、アプリケーションのアクティブなモニターの情報とともに、これらのモニターにアクセスするスレッドのステータスに関する情報も表示します。このウィンドウは、デッドロックや他のスレッドの同期化に関する問題を調べる場合に役立ちます。詳細は、第19.7.9項「「モニター」ウィンドウの使用方法」を参照してください。

- 「スレッド」ウィンドウは、スレッドおよびスレッド・グループを表示し、現在のスレッドを強調表示します。また、各スレッドの名前、ステータス、優先度およびグループを表示します。詳細は、第19.7.10項「「スレッド」ウィンドウの使用方法」を参照してください。

デバッガ・ウィンドウを開くには、「表示」→「デバッガ」を選択します。

19.6.1 デバッガのアイコンの理解

表19-1は、JDeveloperのデバッガとRun Managerの様々なアイコンの一覧です。これらのアイコンは、「デバッガ」ウィンドウおよび「ログ」ウィンドウなど、JDeveloperのユーザー・インタフェースの各領域で使用されます。

表19-1 デバッガとRun Managerのアイコン

アイコン

名前

説明

配列

JDeveloperのすべてのデータ関連ウィンドウの配列クラスを表します。

ブレークポイントの追加

ブレークポイントの作成に使用する「ブレークポイント」ツールバー・ボタンを表します。

「ブレークポイント」メニュー

「表示」→「デバッガ」→「ブレークポイント」メニュー・オプション、または「ブレークポイント」ウィンドウのタブ・アイコンを表します。

クラス

「表示」→「デバッガ」→「クラス」メニュー・オプション、「クラス」ウィンドウのタブ・アイコン、および「クラス」ウィンドウのクラスを表します(クラスのトレースが無効の場合はグレー表示)。

行番号表がない「クラス」

クラス・ウィンドウに表示されます。行番号表がないクラス(曖昧なクラス)を表します。

現在の実行ポイント

ソース・エディタのマージンに表示される現在の実行ポイントを表します。「実行」→「実行中の行を表示」メニュー・オプションを選択して表示できます。

現在のスレッド

スレッド・ウィンドウの現在のスレッドを表します。

データ

「表示」→「デバッガ」→「データ」メニュー・オプション、「表示」→「デバッガ」→「スマート・データ」メニュー・オプション、および「データ」ウィンドウと「スマート・データ」ウィンドウのタブ・アイコンを表します。

デバッグ([Shift]+[F9])

「実行」→「<project_name>のデバッグ」メニュー・オプション、「デバッグ」ツールバー・ボタン、Run Managerナビゲータのプロセス・フォルダに含まれるデバッグ・プロセス、デバッグ・プロセスのログ・ページ、デバッグ・レイアウト、リモート・デバッグとプロジェクトのプロファイリング・ウィザードを表します。

デバッグ・リスナー・ノード

「Run Manager」ナビゲータのデバッグ・リスナー・ノードを表します。

ダイアグラムを使用したデバッグ

「実行」→「ダイアグラムを使用して<project_name>をデバッグ」メニュー・オプションを表します。デバッグ中にUMLシーケンス図を作成できます。

無効なブレークポイント

ソース・エディタのマージンおよびブレークポイント・ウィンドウ内の無効なブレークポイントを表します。また、このアイコンは、ブレークポイントを無効にする「ブレークポイント」ツールバー・ボタンを表します。

ブレークポイントの削除

ブレークポイントを削除するための「ブレークポイント」ツールバー・ボタンを表します。

ブレークポイントの編集

選択したブレークポイントの編集に使用できる「ブレークポイント」ツールバー・ボタンを表します。

ガベージ・コレクション

「実行」→「ガベージ・コレクション」メニュー・オプション、およびクリック可能な「ガベージ・コレクション」ツールバー・ボタンを表します。

インタフェース

「クラス」ウィンドウのインタフェースを表します。

ヒープ

「表示」→「デバッガ」→「ヒープ」メニュー・オプション、および「ヒープ」ウィンドウのタブ・アイコンを表します。

「ヒープ」フォルダ

ヒープ・ウィンドウのフォルダを表します。

方法

「スタック」ウィンドウのメソッドを表します。

モニター

「表示」→「デバッガ」→「モニター」メニュー・オプション、および「モニター」ウィンドウのタブ・アイコンを表します。

オブジェクト

JDeveloperのすべてのデータ関連ウィンドウのオブジェクトを表します。

パッケージ

「クラス」ウィンドウのパッケージを表します(パッケージのトレースが無効な場合はグレー表示)

プログラムの停止

「実行」→「プログラムの停止」メニュー・オプション、およびクリック可能な「プログラムの停止」ツールバー・ボタンを表します。

プリミティブ

JDeveloperのすべてのデータ関連ウィンドウの基本項目を表します。

再開

「実行」→「再開」メニュー・オプション、およびクリック可能な「再開」ツールバー・ボタンを表します。

実行

Run Managerナビゲータの実行中のプロセスを表します。実行中のプロセスの場合はログ・ページに表示されます。ツールバーにも表示され、選択したノードを実行できます。

カーソルまで実行([F4])

「実行」→「カーソルまで実行」メニュー・オプションを表します。指定した場所までコードを実行します。

スタック

「表示」→「デバッガ」→「スタック」メニュー・オプション、および「スタック」ウィンドウのタブ・アイコンを表します。

スタック・フォルダ

「データ」ウィンドウのstaticフォルダを表します。

メソッドの最後まで実行

「実行」→「メソッドの最後まで実行」メニュー・オプションおよびクリック可能な「メソッドの最後まで実行」ツールバー・ボタンを表します。

トレース実行([F7])

「実行」→「トレース実行」メニュー・オプション、およびクリック可能な「トレース実行」ツールバー・ボタンを表します。

ステップ・アウト

「実行」→「ステップ・アウト」メニュー・オプション、およびクリック可能な「ステップ・アウト」ツールバー・ボタンを表します。

ステップ実行

「実行」→「ステップ実行」メニュー・オプション、およびクリック可能な「ステップ実行」ツールバー・ボタンを表します。

終了

クリックして、アプリケーションのデバッグを停止できる終了ツールバー・ボタンを表します。

スレッド

「表示」→「デバッガ」→「スレッド」メニュー・オプション、および「スレッド」ウィンドウのタブ・アイコンを表します。

スレッド

「表示」→「デバッガ」→「スレッド」メニュー・オプション、および「スレッド」ウィンドウのタブ・アイコンを表します。

スレッド・グループ

スレッド・ウィンドウのスレッド・グループを表します。

未確認ブレークポイント

ソース・エディタのマージンおよび「ブレークポイント」ウィンドウの未確認ブレークポイントを表します。

19.6.2 JDeveloperでのプロジェクトのデバッグ方法

「データ」ウィンドウで引数やローカル変数を確認するなど、デバッガ機能の一部を使用するためには、先にデバッグ情報付きでコードをコンパイルする必要があります。

ブレークポイントを設定し、コードをステップ実行するには、次のようにします。

1. ソース・エディタで文の左マージンをクリックして、実行可能文にブレークポイントを設定します。詳細は、第19.8項「ブレークポイントの管理」を参照してください。
未確認のブレークポイントのアイコンが左マージンに表示されます。

2. 「実行」→「[filename.java]のデバッグ」を選択します。
クラスが実行され、最初のブレークポイントで停止します。

3. ツールバーから、「トレース実行」をクリックしてメソッド・コールをトレース実行するか、「ステップ実行」をクリックしてメソッド・コールをステップ実行します。

4. スタック・ウィンドウで、プログラムを現在の状態に導いた一連のメソッド・コールを調べます。ソース・エディタに関連ソース・コードを表示するには、メソッドをダブルクリックします。

5. スマート・データ・ウィンドウとデータ・ウィンドウで、引数と変数を調べます。

6. スレッド・ウィンドウを表示して、プログラムの他のスレッドのステータスを調べます。

編集および再コンパイルするには、次のようにします。

1. 変更するコード行が見つかったときは、ツールバーで「終了」をクリックするか、「実行」→「終了」を選択して、デバッグ・セッションを終了できます。

2. ソース・エディタでコードを編集します。

3. ナビゲータで適切なオブジェクト・ノードをクリックします。

4. メイン・メニューから「実行」→<filename.java>のビルドを選択します。プロジェクト内の影響を受けるファイルが再コンパイルされ、デバッガを再度実行できます。

19.6.3 ADFコンポーネントのデバッグ方法

JDeveloperでは、ADF宣言デバッガを使用してブレークポイントに対するデバッグを実行できます。エラーを簡単に特定できない場合は、JDeveloperでADF宣言デバッガを使用してブレークポイントを設定できます。ブレークポイントに達すると、アプリケーションの実行が一時停止され、Oracle ADFバインディング・コンテナの作業対象データを調べて、予測されるデータと比較することができます。ブレークポイントのタイプによっては、ステップ機能を使用して、1つのブレークポイントから別のブレークポイントに移動できます。

JDeveloperには、ADFコンポーネントをデバッグするために、次の3つのウィンドウが用意されています。

- アプリケーションがブレークポイントで一時停止すると、「ADFデータ」ウィンドウには「ADF構造」ウィンドウでの選択内容に基づいて関連データが表示されます。詳細は、第19.7.3項「「データ」ウィンドウの使用方法」を参照してください。

- デバッグ・セッション中にブレークポイントに達すると、「ELエバリュエータ」ウィンドウではEL式が評価されます。ELエバリュエータを利用できるのは、JSFアプリケーションのみです。

- ブレークポイントでアプリケーションが停止すると、「ADF構造」ウィンドウにはADFランタイム・オブジェクトのツリー構造とその関係が表示されます。詳細は、第3.11.6項「「構造」ウィンドウ」を参照してください。

各デバッガ・ウィンドウに表示する情報のタイプを制御できます。表示する列など、各ウィンドウで使用できるオプションを確認するには、ウィンドウを右クリックして、ポップアップ・メニューから「設定」を選択します。またはメイン・メニューから「ツール」→「設定」を選択し、「デバッガ」ノードを展開して、各デバッガ・ウィンドウの設定ページを表示することもできます。また、デバッグ情報をテキスト出力ファイルまたはHTML出力ファイルとして保存することもできます。詳細は、第19.6.7項「デバッグ情報をファイルにエクスポートする方法」を参照してください。

JDeveloperデバッガを使用してプログラムの実行を制御するには、次のようにします。

1. ブレークポイントまで実行します。詳細は、第19.8項「ブレークポイントの管理」を参照してください。
ブレークポイントは、そこまで到達したときプログラムの実行が一時停止するトリガーです。これを利用して、プログラム変数の一部または全部の値を調べることができます。プログラムの実行中にブレークポイントに達すると、プログラムは一時休止し、デバッガのソース・エディタにブレークポイントを含む行が表示されます。

2. 1つのメソッドをトレース実行したり、1つのプログラム文を一度に実行したりすることが可能です。詳細は、第19.6.11項「メソッドのトレース実行」を参照してください。
実行ポイントがメソッドのコール上にあるときに「トレース実行」コマンドを選択すると、そのメソッドがトレース実行され、実行ポイントはメソッドの最初の文上に置かれます。

3. メソッドをステップ実行します。詳細は、第19.6.12項「メソッドのステップ実行」を参照してください。
実行ポイントがメソッド・コール上にあるときに「ステップ実行」コマンドを発行すると、デバッガはトレース実行するかわりに、停止せずにメソッドを実行します。プログラム文は、一度に実行されます。

4. カーソル位置まで実行します。詳細は、第19.6.16項「カーソル位置まで実行する方法」を参照してください。
これを利用すると、シングル・ステップ実行やブレークポイントの設定を必要とせずにプログラム中の特定の場所まで進むことができます。

5. デバッガを一時停止して再開します。詳細は、第19.6.17項「デバッガの一時停止および再開方法」を参照してください。
デバッガでプログラムを実行中、プログラムを一時休止できます。その後、デバッガを使用して、プログラムのこの部分に関して状態を確認できます。プログラムの該当部分の確認を終了すると、プログラムの実行を継続できます。

6. デバッグ・セッションを終了します。詳細は、第19.6.18項「デバッグ・セッションの終了方法」を参照してください。

終了すると、プログラム値を変更して、プログラム実行中に不具合の仮修正をテストできます。変更によってプログラムのエラーが修正されたことを確認した場合、デバッグ・セッションを終了し、プログラム・コードを修正した後、プログラムを再コンパイルして修正を確定します。

19.6.4 プロジェクトをデバッグ用に設定する方法

JDeveloperでは、パッケージおよびクラスを有効または無効にしたり、リモート・デバッグ・オプションを設定するなど、プログラムのデバッグ方法を制御できます。

JDeveloperでデバッガおよびリモート・デバッガのオプションを設定するには、次のようにします。

1. どのプロジェクトにも適用される作業環境を設定するために、「アプリケーション」→「デフォルト・プロジェクト・プロパティ」を選択するか、または現在のプロジェクトにのみ適用される作業環境を設定するために、「アプリケーション」→「プロジェクト・プロパティ」を選択します。

2. 「実行/デバッグ/プロファイル」ノードを選択します。

3. 実行構成を選択します。詳細は、第19.3項「プロジェクトを実行用に設定する方法」を参照してください。

4. 「編集」をクリックします。

5. 「デバッガ」ノードを選択します。

6. デバッガ・ページおよびリモート・ページでオプションを設定します。

7. 終了したら、「OK」をクリックします。

19.6.5 デバッガ開始オプションの設定方法

デバッガ開始オプションを設定することで、新しいデバッグ・セッション開始時の、デバッガの動作を指定できます。具体的には、ブレークポイントに達するまでデバッガを実行させるか、もしくはプロジェクトのコード(たとえばアプリケーションのメイン・メソッドの先頭)に達した時点でデバッガを停止させるかを指定します。

デバッガ開始オプションを設定するには、次のようにします。

1. メイン・メニューから「ツール」→「プリファレンス」を選択して「デバッガ」ページを開きます。

2. 「デバッグの開始オプション」を選択します。

- ブレークポイントが発生するまで実行
デバッグを開始すると、デバッガによって、デバッグ対象のプログラムがブレークポイントに達するまで実行されます。

- ステップ実行
デバッグを開始すると、デバッガによって、デバッグ対象のプログラムがトレース可能なクラスのメソッドに達するまで実行されますが、クラスのstaticイニシャライザ・メソッドでは停止しません。

- トレース実行
デバッグを開始すると、デバッガによって、デバッグ対象のプログラムがクラスのstaticイニシャライザ・メソッドも含めたいずれかのメソッドに達するまで実行されます。

19.6.6 デバッガの起動方法

デバッグの前にプロジェクトをビルドする必要があります。

プロジェクトをビルドしてデバッガを起動するには、次のようにします。

1. アプリケーション・ナビゲータでプロジェクトを選択します。

2. 右クリックして、「プロジェクト・プロパティ」を選択します。「プロジェクト・プロパティ」ダイアログ・ボックスが表示されます。

3. コンパイラ・ページを開きます。

4. 「完全なデバッグ情報」がまだ選択されていない場合は選択します。

5. 「OK」をクリックしてダイアログを閉じます。

6. デバッガを起動するには、次のいずれかの操作を行います。

- 現在の実行構成を使用してデバッガを開始するには、メイン・メニューから「実行」→「<プロジェクト名>のデバッグ」を選択します。

- 実行構成を選択してデバッガを起動するには、ツールバーの「デバッグ」アイコンの横のドロップダウン・メニューから必要な実行構成の名前をクリックします。

プロジェクトのビルドに成功すると、デバッガが起動します。

19.6.7 デバッグ情報をファイルにエクスポートする方法

JDeveloperのデバッガによって生成されたデバッグ情報は、デバッガ・ウィンドウのいずれかからテキスト出力ファイルまたはHTML出力ファイルにエクスポートできます。

デバッグ情報をファイルにエクスポートするには、次のようにします。

1. ツールバーで「デバッグ」をクリックし、デバッグを開始します。

2. デバッガがブレークポイントで停止すると、エクスポートする情報が含まれているデバッガ・ウィンドウを見つけます。

3. デバッガ・ウィンドウで右クリックし、ポップアップ・メニューから「プリファレンス」を選択します。

4. 該当する「プリファレンス - デバッガ」ページの「列」の下で、「デバッガ」ウィンドウおよび出力ファイルで表示または非表示にする列を選択します。「OK」をクリックして「プリファレンス」ダイアログを閉じます。

5. デバッガ・ウィンドウで右クリックし、「エクスポート」を選択します。

6. 「エクスポート」ダイアログで、ファイルの名前を入力します。出力ファイルはテキスト・ファイルとして保存され、列の間にはタブが、行の間には改行が挿入されます。HTMLファイルにエクスポートする場合は、.html拡張子または.htm拡張子(大/小文字の区別なし)を追加します。

プロジェクトのビルドに成功すると、デバッガが起動します。

19.6.8 デバッグ時のソース・エディタの使用方法

(ブレークポイントで、ステップ・コマンド完了後、または一時停止によって)デバッガが停止すると、ソース・エディタに現在のクラスのソース・ファイルが開き、図19-1に示すように実行ポイントが示されます。

図19-1 「実行ポイント」アイコン

デバッグ中にクラスのソース・ファイルが見つからない場合、「ソース・ファイルが見つかりません」ダイアログが表示され、ソース・ファイルの場所の入力を求めるメッセージが表示されます。

ソース・エディタは、次のようにデバッグに使用できます。

- ブレークポイントを設定するには、ソース・エディタのマージンをクリックします。

- ブレークポイントを削除するには、ソース・エディタのマージンでブレークポイントをクリックします。

図19-2 「ブレークポイント」アイコン

ポップアップ・メニュー項目の使用

デバッガにより、ソース・エディタのポップアップ・メニューには表19-2に示すようなメニュー項目が追加されます。

表19-2 ポップアップ・メニュー項目

項目

機能

カーソルまで実行

カーソルの現在位置まで実行し、その位置に到達するまでコードを実行できます。

監視式([Ctrl]+[F5])

「監視式」ウィンドウに式を追加できます。

インスペクト

「インスペクタ」ウィンドウを開くことができます。

カーソル位置のトレース実行メソッド

「カーソルまで実行」を実行してから、現在のカーソル位置にあるメソッドをトレース実行します。

ツールチップの使用

データ項目の名前の上にポインタを置くと、デバッガによりソース・エディタにツールチップが表示されます。デフォルトでは、ツールチップにデータ項目の名前、値、タイプが表示され、「データ」ウィンドウまたは「監視式」ウィンドウに追加することなく、データ項目を簡単にインスペクトできます。データ項目が配列またはオブジェクトの場合は、オブジェクト階層の下位にある、選択した項目の子もインスペクトできます。ツールチップに表示される子データ項目は20個までで、残りのデータ項目を表示するにはナビゲーション・ボタンを使用してください。

このツールチップに表示される列は、「ツール」→「プリファレンス」→「デバッガ」→「ツールチップ」ページで有効にした列設定によって異なります。

プロジェクトのビルドに成功すると、デバッガが起動します。

19.6.9 デバッガでのJava式の使用方法

Java式は、監視式ウィンドウ、インスペクタ・ウィンドウ、ブレークポイント条件、ブレークポイント・ログ式で使用されます。デバッガでは、表19-3に示した形式のJava式を使用できます。

表19-3 デバッガで使用できるJava式

Java式

Form

単純変数名

rect

フィールド・アクセス

rect.width

メソッド・コール

myString.length()

配列要素

myArray[3]

配列長さ

myArray.length

比較演算

rect.height == 100
myArray.length > 7

算術演算

rect.width * rect.height
x + y + z

論理演算

frame1.enabled && frame1.visible

textField1.hasFocus || textField2.hasFocus

演算子のインスタンス

<my_value> instanceof java.lang.String

シフト演算子

x << 2

y >> 1

バイナリ演算子

keyEvent.modifiers & java.awt.event.InputEvent.CTRL_MASK

疑問符とコロンを使用した演算

y>5 ? y*7 : y*4

staticフィールド名

java.awt.Color.pink

完全修飾クラス名

java.awt.Color

プロジェクトのビルドに成功すると、デバッガが起動します。

19.6.10 デバッグ中のコード内の移動

JDeveloperのデバッガでは、プログラムの実行を制御できます。つまり、プログラムの1コード行、メソッド全体またはプログラム・ブロック全体を実行するかどうかを制御できます。プログラムの実行と一時休止のタイミングを手動で制御することにより、正常に機能していることがわかっているセクションを素早く通過し、問題の原因となっているセクションに集中できます。詳細は、第19.6.5項「デバッガ開始オプションの設定方法」を参照してください。

デバッガでは、プログラムの実行を次の方法で制御できます。

- メソッドのトレース実行

- メソッドのステップ実行

- トレースするクラスの制御

- スレッドの実行ポイントの検索

- カーソル位置まで実行

- デバッガの一時停止および再開

- デバッグ・セッションの終了

「トレース実行」および「ステップ実行」コマンドを使用すると、プログラム・コードを簡単に移動できます。2つのコマンドはよく似ていますが、コード実行の制御方法は異なります。

プログラムの実行単位は、最小で1コード行ずつ増やすことができます。1行に複数のプログラム文がある場合、1コード行として処理されます。1行に含まれる複数の文を個別にデバッグすることはできません。1行を1文で構成すると、最も簡単です。この方法を使用するとコードがわかりやすくなり、管理も容易です。

19.6.11 メソッドのトレース実行

「トレース実行」コマンドでは、1回に1つずつプログラム文が実行されます。実行ポイントがメソッドのコール上にあるときに「トレース実行」コマンドを選択すると、そのメソッドがトレース実行され、実行ポイントはメソッドの最初の文上に置かれます。

実行ポイントがメソッドの最後の文上にあるときに「トレース実行」を選択すると、デバッガはそのメソッドから戻り、実行ポイント()はそのメソッドのコールに続くコード行上に置かれます。

シングル・ステップ実行とは、「トレース実行」を使用して、プログラム・コードの文を連続して実行することを指します。

次のいずれかの方法で、メソッドをトレース実行できます。

- 「実行」→「トレース実行」を選択します。

- [F7]キーを押します。

- ツールバーの「トレース実行」ボタンをクリックします。

図19-3 「トレース実行」ボタン

以前のリリースのJDeveloperとは異なり、「トレース実行」ボタンをクリックしてデバッグを開始することはできません。「トレース実行」は、すでに開始されているデバッグ・プロセスでのみ機能します。

デバッガをトレース実行で開始するように設定すると、デバッガによって、デバッグ対象のプログラムがトレース可能なクラスのメソッドに達するまで実行されます。

デバッグ時は、一部のメソッドをトレース実行し、他のメソッドをステップ実行できます。メソッドが正常に機能し、メソッドのコールによってエラーが発生しないことがわかっている場合は、そのメソッドのコールをステップ実行します。メソッドが正常に機能するかどうかわからない場合は、メソッドをトレース実行し、正常に機能するかどうかをチェックします。

19.6.12 メソッドのステップ実行

「ステップ実行」コマンドでは、「トレース実行」コマンドと同様、1回に1つずつプログラム文を実行できます。ただし、実行ポイントがメソッド・コール上にあるときに「ステップ実行」コマンドを発行すると、そのメソッドは停止せずに実行され(トレース実行されません)、実行ポイントはそのメソッド・コールに続く文上に置かれます。

実行ポイントがメソッドの最後の文上にあるときに「ステップ実行」を選択すると、デバッガはそのメソッドから戻り、実行ポイントはそのメソッドのコールに続くコード行上に置かれます。

次のいずれかの方法で、メソッドをトレース実行できます。

- 「実行」→「ステップ実行」を選択します。

- [F8]キーを押します。

- ツールバーの「ステップ実行」ボタンをクリックします。

図19-4 「ステップ実行」ボタン

以前のリリースのJDeveloperとは異なり、「ステップ実行」ボタンをクリックしてデバッグを開始することはできません。「ステップ実行」は、すでに開始されているデバッグ・プロセスでのみ機能します。

ステップ実行で開始するように設定した場合、デバッガによって、トレース可能なクラスのメソッドに達するまでデバッグ対象のプログラムが実行されますが、クラスのstaticイニシャライザ・メソッドでは停止しません。

デバッグ時は、一部のメソッドをトレース実行し、他のメソッドをステップ実行できます。メソッドが正常に機能し、メソッドのコールによってエラーが発生しないことがわかっている場合は、そのメソッドのコールをステップ実行します。メソッドが正常に機能するかどうかわからない場合は、メソッドをトレース実行し、正常に機能するかどうかをチェックします。

19.6.13 トレースするクラスの制御

通常、デバッグを開始する前に、プロジェクト・プロパティでトレースの対象リストと対象外リストを設定する必要があります。ただし、トレースの対象リストと対象外リストを変更する必要がある場合は、クラス・ウィンドウから変更できます。クラス・ウィンドウを右クリックし、ポップアップ・メニューから「トレース」を選択します。「トレース」ダイアログが表示され、トレースの対象リストと対象外リストを修正できます。

パッケージをトレースの対象または対象外として指定すると、そのパッケージ内の下部クラスも、個別に指定した場合を除いてトレースの対象または対象外となります。

プログラムの一部を詳しく調べるために、デバッガでステップ実行するファイルに対してのみトレースを有効にすることができます。たとえば、通常J2SEライブラリ内のクラスのトラブルシューティングは行わないので、これらをトレースする必要はありません。通常は独自に作成したクラスのみトレースします。

19.6.14 トレース・リストに基づく動作のステップ実行方法

クラスまたはパッケージを対象外とした場合、そのクラスをステップ実行するように指定しても、デバッガは一時休止することなくそのコードを通過します。デバッガは、対象となっているクラスの次のコード行で一時休止します。トレースの対象リストおよび対象外リストは、「トレース実行」、「ステップ実行」、「ステップ・アウト」を含むすべてのステップ・コマンドで使用されます。これらのリストを使用する場合も、対象外のクラスにブレークポイントを設定できます。デバッガがそのようなブレークポイントで停止しても、ステップ・コマンドは無効です。

クラスのトレースを有効にするには、次の方法でクラスまたはパッケージを対象または対象外に指定して、トレースの対象リストまたは対象外リストを修正します。

1. ナビゲータでプロジェクトを右クリックし、ポップアップ・メニューから「プロジェクト・プロパティ」を選択します。

2. 「実行/デバッグ/プロファイル」ノードを選択します。

3. 実行構成を選択し、「編集」をクリックします。

4. 「実行コンフィギュレーションの編集」ダイアログで、「デバッガ」ノードを選択します。

5. 「対象とするクラス/パッケージのリスト」および「対象外のクラス/パッケージのリスト」パラメータの該当するフィールドに、対象または対象外とするパッケージやクラスの名前をセミコロン(;)で区切って入力します。
代替方法としては、「編集」をクリックして、「対象とするクラス/パッケージのリスト」/「対象外のクラス/パッケージのリスト」ダイアログを開き、「追加」または「削除」をクリックします。「追加」をクリックすると、「クラスおよびパッケージ・ブラウザ」ダイアログが表示されます。「削除」をクリックすると、クラスまたはパッケージが該当するトレース・リストから削除されます。追加するクラスまたはパッケージに移動し、「OK」をクリックしてください。クラスまたはパッケージが該当するトレース・リストに追加されます。

対象リストを空にすると、対象外リストで個別に指定したパッケージを除くすべてのパッケージをトレースするように指定されます。次に例を示します。

include:
exclude:java;javax

19.6.15 スレッドの実行ポイントの検索方法

デバッグ中は、現在のスレッドで現在実行ポイントとなっているコード行がハイライト表示され、ソース・エディタの左マージンに実行ポイント・アイコンが表示されます。

実行ポイントは、デバッガによって実行される次のソース・コード行を示します。

現在の実行ポイントを検索するには、次のようにします。

1. メイン・メニューから「実行」→「実行ポイントの検索」を選択します。

2. 「スレッド」ウィンドウでスレッドを右クリックし、スレッドのソースに移動を選択します。
ソース・エディタに実行ポイントを含むコードのブロックが表示されます。

19.6.16 カーソル位置までの実行方法

デバッガでアプリケーション・コードをステップ実行する場合、特定の場所まではシングル・ステップ実行やブレークポイント設定をすることなく実行した方がよい場合があります。

プログラムの特定の場所まで実行するには、次のようにします。

1. ソース・エディタで、デバッガを停止するコード行にテキスト・カーソルを置きます。

2. 次のいずれかの方法で、カーソル位置まで実行します。

- ソース・エディタで、右クリックして「カーソルまで実行」を選択します。

- メイン・メニューから「実行」→「カーソルまで実行」オプションを選択します。

- [F4]キーを押します。

次のいずれかの状態になります。

- カーソルまで実行する場合、プログラムは、ソース・エディタでテキスト・カーソルが置かれた場所に達するまで停止することなく実行されます。

- テキスト・カーソルが置かれているコード行が実際には実行されない場合、「カーソル位置まで実行」コマンドを選択すると、プログラムはブレークポイントに達するまで、またはプログラムが終了するまで実行されます。

19.6.17 デバッガの一時停止および再開方法

デバッガでプログラムを実行中、プログラムを一時休止できます。その後、デバッガを使用して、プログラムのこの部分に関して状態を確認できます。プログラムの該当部分の確認を終了すると、プログラムの実行を継続できます。

デバッガの使用中、プログラムは実行中またはデバッガによって一時休止中のどちらかの状態になります。プログラムがユーザー入力を待機している場合は、実行中とみなされます。プログラムが実行中の場合、「一時休止」を使用できます。プログラムがデバッガによって一時停止中の場合、「再開」、「ステップ実行」、「トレース実行」を含むデバッガ・ボタンを使用できます。

デバッガは次の方法で一時停止できます。

- メイン・メニューから「実行」→「プログラムの停止」を選択します。

- デバッガのツールバーから「プログラムの停止」アイコンをクリックします。

図19-5 「プログラムの停止」アイコン

プログラムは、ソースを使用できない場所で一時休止することがあります。この場合、「ソース・ファイルが見つかりません」ダイアログが表示され、ソース・ファイルの場所、またはスタブ・ファイルを生成するかどうかを指定するよう求められます。

また、クラスがトレースの対象外リストに含まれているためにトレースが無効な場所でプログラムが一時休止することがあります。たとえば、java.lang.Object.waitメソッドで一時停止するような場合があります。

デバッガの一時休止中に、ガベージ・コレクションを強制的に実行できます。ガベージ・コレクションの結果は、ただちにクラス・ウィンドウおよびヒープ・ウィンドウに反映されます。これにより、アプリケーションのメモリー・リークを検出できます。

一時停止したデバッガを再開するには、「実行」→「再開」を選択します。

19.6.18 デバッグ・セッションの終了方法

場合によりデバッグ中に、プログラムを最初から再起動する必要があります。たとえば、不具合のある箇所を通過してしまった場合、プログラムを再起動します。

現在のデバッグ・セッションを終了するには、次のようにします。

- 「実行」→<プログラム名>の終了を選択します。または、

- デバッガのツールバーで「終了」をクリックします。

デバッグ・セッションを終了すると、すべてのデバッガ・ウィンドウが閉じます。ただし、この処理によって、設定したブレークポイントや監視式が削除されることはありません。このため、デバッグ・セッションを簡単に再開できます。

19.6.19 デバッガ・ログの表示方法

デバッガ・ログには、デバッグ・プロセスに関する情報が表示されます。デバッガ・ログは、デバッグ対象のプロセスがアクティブである間はいつでも表示できます。

プロセスがアクティブである間にデバッガ・ログを表示するには、次のいずれかの方法を使用します。

- 「表示」メニューで「デバッガ」を選択し、次に「ログ」を選択します。

- 「Run Manager」で、プロセスを右クリックし、表示されるポップアップ・メニューで「ログの表示」を選択します。

19.6.20 アプレットのデバッグ方法

JDeveloperでは、アプレット・プログラムのデバッグ方法を制御できます。

アプレットをデバッグするには、次のようにします。

1. ナビゲータで、<APPLET>タグを含むHTMLファイルを選択します。

2. ツールバーの「デバッグ」をクリックします。
アプレットが起動します。デバッガは、アプレットのソース・コードで設定したブレークポイントで停止します。

19.6.21 JavaScriptプログラムのデバッグ方法

JDeveloperでは、リモート・デバッグのためのブラウザの設定など、JavaScriptプログラムのデバッグ方法を制御できます。

JDeveloperでJavaScriptデバッガ・オプションを設定するには、次のようにします。

1. どのプロジェクトにも適用される作業環境を設定するために、「アプリケーション」→「デフォルト・プロジェクト・プロパティ」を選択するか、または現在のプロジェクトにのみ適用される作業環境を設定するために、「アプリケーション」→「プロジェクト・プロパティ」を選択します。

2. 「実行/デバッグ/プロファイル」ノードを選択します。

3. 実行構成を選択します。詳細は、第19.3項「プロジェクトを実行用に設定する方法」を参照してください。

4. 「編集」をクリックします。

5. 「起動設定」で「JavaScript」ノードを選択します。

6. ブラウザを選択します。
「FireFox/Mozilla」を選択すると、JavaScriptデバッグを制御するオプションが追加で表示されます。JDeveloperでデバッグ用のブラウザとしてまだFirefoxを設定していない場合は、次の手順に従います。

- Firefoxブラウザ実行可能ファイル(firefox.exe)のパスを、「ブラウザのコマンドライン」に入力するか、「参照」をクリックして実行可能ファイルを選択します。

- 「ブラウザでのデバッグ対象の拡張のインストール」ボタンをクリックすると、デバッグ拡張機能がFirefoxにインストールされます。Firefoxでページが開き、拡張機能をインストールするためのリンクが表示されます。OracleJSDebugAgent for Windowsのインストール・リンクをクリックすると、Oracle Javascript Debug Agent拡張機能がインストールされます。Firefoxを再起動してインストールを完了します。

7. 「OK」をクリックして「実行構成の編集」ダイアログを閉じ、「プロジェクト・プロパティ」ダイアログも閉じます。

JavaScriptプログラムをデバッグするには、次のようにします。

1. アプリケーション・ナビゲータで、JavaScriptのノードを含むHTML/JSP/JSファイルを選択します。

2. 右クリックして、ポップアップ・メニューから「デバッグ」を選択します。

3. 「ターゲットの起動方法」ダイアログで、JSファイル、またはサーバー・プログラミングを伴わないHTMLファイルをデバッグする場合は、「ブラウザでサーバー・インスタンスが開始されていません」を選択します。JSPファイル、またはサーバー・プログラミングを伴うHTMLファイルをデバッグする場合は、「サーバー・インスタンス内」を選択します。「OK」をクリックします。
Firefoxブラウザでプログラムが起動し、JDeveloperではソース・コードに設定した最初のブレークポイントでデバッガが停止します。

19.7 デバッガ・ウィンドウの使用方法

JDeveloperでは、コードの分析に役立つ、特定の用途向けのデバッグ・ウィンドウが数多く提供されます。

19.7.1 「ブレークポイント」ウィンドウの使用方法

ブレークポイントの設定に関する情報は、ブレークポイント・ウィンドウで参照できます。ポップアップ・メニュー・オプションなど、ブレークポイント・ウィンドウの詳細は、[F1]を押してください。

設定されたブレークポイントを一覧表示する「ブレークポイント」ウィンドウを開くには、次のようにします。

- メイン・メニューから「表示」→「デバッガ」→「ブレークポイント」を選択します。ブレークポイント・ウィンドウが表示されます。

ブレークポイント・ウィンドウに表示する列を変更するには、次のようにします。

- 「ブレークポイント」ウィンドウで右クリックし、ポップアップ・メニューから「プリファレンス」を選択します。「列」で、ブレークポイント・ウィンドウに表示する列を選択します。

- または、「ブレークポイント」ウィンドウで列ヘッダーを右クリックし、必要な列名を選択します。

19.7.2 「スマート・データ」ウィンドウの使用方法

現在のメソッドのすべての引数、ローカル変数およびstaticフィールドが表示されるデータ・ウィンドウとは異なり、スマート・データ・ウィンドウには、ステップ実行しているソース・コードに関連のあるデータのみ表示されます。具体的には、デバッガにより実行ポイント()付近のソース・コードが分析され、ステップ実行しているコード行で使用されている変数、フィールドおよび式が検索されます。

詳細は、第19.6.15項「スレッドの実行ポイントの検索方法」を参照してください。

また、非voidメソッドでブレークポイントを設定し、「メソッドの最後まで実行」コマンドまたは「ステップ・アウト」コマンドを発行した場合、スマート・データ・ウィンドウには非voidメソッドの現在の戻り値が表示されます。「ステップ実行」または「トレース実行」コマンドでは戻り値は表示されません。

デフォルトでは、1箇所につき1コード行のみ分析され、最大2箇所が分析されます。これらの設定は、「ツール」→「プリファレンス」→「デバッガ」→「スマート・データ」ページで調整できます。このページは、「スマート・データ」ウィンドウを右クリックし、ポップアップ・メニューから「プリファレンス」を選択して表示することもできます。

「スマート・データ」ウィンドウを開くには、次のようにします。

1. ソース・エディタでブレークポイントを設定し、デバッグ・セッションを開始します。

2. ツールバーから「デバッグ」をクリックします。

3. デバッガがブレークポイントに達したときに、「表示」→「デバッガ」→「スマート・データ」を選択します。

スマート・データ・ウィンドウに表示する列を変更するには、次のようにします。

- 「スマート・データ」ウィンドウを右クリックし、ポップアップ・メニューから「プリファレンス」を選択します。「列」で、スマート・データ・ウィンドウに表示する列を選択します。

- あるいは、スマート・データ・ウィンドウで列ヘッダーを右クリックし、必要な列名を選択します。

プロジェクトのビルドに成功すると、デバッガが起動します。

19.7.3 「データ」ウィンドウの使用方法

データ・ウィンドウを使用して、プログラムの変数に関する情報を表示します。データ・ウィンドウには、現在のコンテキストの引数、ローカル変数およびstaticフィールドが表示されます。現在のコンテキストはスタック・ウィンドウでの選択によって決まります。新しいコンテキストに移動すると、データ・ウィンドウが更新され、新しいコンテキストのデータが表示されます。現在のクラスがデバッグ情報なしでコンパイルされた場合、ローカル変数を表示することはできません。デバッガによってスタック・フレームのローカル変数のメモリー位置が分析され、可能な範囲の情報が表示されます。

注意:

プログラムのデバッグ中、デフォルトでは「データ」ウィンドウにローカル変数情報が表示されます。「データ」ウィンドウでローカル変数情報を無効にするには、「プロジェクト・プロパティ」ダイアログの「コンパイラ」ページで「完全なデバッグ情報」の選択を解除します。デフォルトでは、「完全なデバッグ情報」チェック・ボックスが選択されています。

また、非voidメソッドでブレークポイントを設定し、「メソッドの最後まで実行」コマンドまたは「ステップ・アウト」コマンドを発行した場合、データ・ウィンドウには非voidメソッドの現在の戻り値が表示されます。「ステップ実行」または「トレース実行」コマンドでは戻り値は表示されません。

データ・ウィンドウを開くには、次のようにします。

1. ソース・エディタでソース・ファイルを開き、ブレークポイントを設定します。

2. ツールバーで「デバッグ」をクリックします。

3. デバッガがブレークポイントで一時停止しているときに、メイン・メニューから「表示」→「デバッガ」→「データ」を選択します。

「データ」ウィンドウで配列要素を表示するには、次のようにします。

1. プロジェクトのデバッグを開始し、「データ」ウィンドウを開きます。

2. 「データ」ウィンドウで配列を選択し、展開して配列の要素を表示します。配列に20個を超える要素が含まれている場合、「データ」ウィンドウには最初の20個の要素が表示されます。

- 次の20個のエントリを表示するには、「次へ」をクリックします。

- 前の20個のエントリを表示するには、「前へ」をクリックします。

- 最初の20個のエントリを表示するには、「先頭へ」をクリックします。

- 最後の20個のエントリを表示するには、「最後へ」をクリックします。

- デフォルトの表示制限を20から変更する場合には、配列を選択して右クリックし、ポップアップ・メニューから「範囲の調整」を選択して、「新しいカウント」フィールドに新しい値を入力します。完了したら、「OK」をクリックします。

データ・ウィンドウに表示する列を変更するには、次のようにします。

- 「データ」ウィンドウを右クリックし、ポップアップ・メニューから「プリファレンス」を選択します。「列」で、「データ」ウィンドウに表示する列を選択します。

- または、データ・ウィンドウで列ヘッダーを右クリックし、必要な列名を選択します。

プロジェクトのビルドに成功すると、デバッガが起動します。

19.7.4 「監視式」ウィンドウの使用方法

監視式を使用すると、プログラムの実行に従って変化する、変数および式の値を監視できます。監視式を入力すると、「監視」ウィンドウに式の現在の値が表示されます。プログラムの実行時、プログラムによって監視式の変数の値が更新されるため、監視の値が変化します。

監視は、「スタック」ウィンドウでの選択内容によって制御される現行のコンテキストに従って、式を評価します。新しいコンテキストに移動すると、式は新しいコンテキストで再評価されます。監視式の変数が定義されていない場所に実行ポイントが移動すると、監視式全体が未定義になります。監視式を評価できる場所に実行ポイントが戻ると、「監視」ウィンドウに再び監視式の値が表示されます。

監視式ウィンドウを開くには、次のようにします。

1. ソース・エディタでソース・ファイルを開き、ブレークポイントを設定します。

2. ツールバーから「デバッグ」をクリックします。

3. デバッガがブレークポイントで一時停止しているときに、メイン・メニューから「表示」→「デバッガ」→「監視式」を選択します。

監視式ウィンドウに表示する列を変更するには、次のようにします。

1. 「監視式」ウィンドウで右クリックし、ポップアップ・メニューから「プリファレンス」を選択します。「列」で、「監視式」ウィンドウに表示する列を選択します。

2. あるいは、「監視式」ウィンドウで列ヘッダーを右クリックし、必要な列名を選択します。

監視式を追加するには、次のようにします。

- 「データ」ウィンドウで項目を右クリックし、ポップアップ・メニューから「監視式」を選択します。

- データ・ウィンドウから監視式ウィンドウに変数、フィールドおよびオブジェクトをドラッグ・アンド・ドロップします。

- ソース・エディタでテキストを選択し、右クリックして、ポップアップ・メニューから「監視式」を選択します。

staticフィールドを監視するには、次のようにします。

後ろにピリオド(.)とフィールド名を付けたクラスのフルネームを入力します。次に例を示します。

java.io.File.separator

例外ブレークポイントで停止中に現在の例外を監視するには、次のように入力します。

_throw

19.7.5 「インスペクタ」ウィンドウの使用方法

インスペクタ・ウィンドウでは、特定の変数、フィールドまたはオブジェクトを選択し、監視式ウィンドウまたはデータ・ウィンドウに表示される情報と同じ情報を表示できます。ポップアップ・メニュー・オプションなど、インスペクタ・ウィンドウの詳細は、インスペクタ・ウィンドウで[F1]を押してください。

インスペクタ・ウィンドウは、デフォルトで浮動するという点で他のウィンドウとは多少異なり、インスペクタ・ウィンドウの複数のインスタンスを使用できます。各インスペクタ・ウィンドウにデータ項目が1つ含まれます。インスペクタ・ウィンドウを別のインスペクタ・ウィンドウにドラッグしてドッキングできます。

インスペクタ・ウィンドウを開くには、次のようにします。

1. ソース・エディタで少なくとも1つのブレークポイントを設定します。

2. ツールバーから「デバッグ」をクリックします。

3. デバッガがブレークポイントに達したときは、ソース・エディタで変数を選択し、右クリックして「インスペクト」を選択します。
選択した変数を含むインスペクト・フローティング・ウィンドウが表示されます。他の項目を調べる場合は、テキスト・フィールドに新しい式または変数を入力するか、ドロップダウン・リストから前に選択した項目を選択します。

変数または式が選択されていない場合、インスペクト・ダイアログには、エディタ内のカーソルの下にあるテキストが、調べる式として事前に表示されます。インスペクタ・ウィンドウを開くには、「OK」をクリックします。

インスペクタ・ウィンドウが画面中央にフローティング・ウィンドウとして表示されますが、インスペクタ・ウィンドウを他のウィンドウとともにドッキングできます。ドッキングしないようにするには、[Ctrl]キーを押しながら「インスペクタ」ウィンドウを移動します。インスペクタは、「スタック」ウィンドウの現在のコンテキストに応じて式を評価します。詳細は、第19.7.7項「「スタック」ウィンドウの使用方法」を参照してください。

新しいコンテキストに移動すると、その新しいコンテキストに対して式が再評価されます。式の変数が定義されていない新しい場所に実行ポイントが移動すると、式全体が未定義になります。実行ポイントが式を評価できる場所に戻ると、その式の値が再度表示されます。

インスペクタ・ウィンドウに表示する列を変更するには、次のようにします。

- 「インスペクタ」ウィンドウを右クリックし、ポップアップ・メニューから「プリファレンス」を選択します。「列」で、「インスペクタ」ウィンドウに表示する列を選択します。

- または、「インスペクタ」ウィンドウで列ヘッダーを右クリックし、必要な列名を選択します。

19.7.6 「ヒープ」ウィンドウの使用方法

ヒープ・ウィンドウには、デバッグ中のプログラム内のヒープに関する情報が表示されます。このウィンドウは、プログラムのメモリー・リークの検出に役立ちます。クラスのすべてのインスタンスとオブジェクトのガベージ・コレクションが行われなかった理由を表示できます。

「ヒープ」ウィンドウには次の2種類のフォルダが表示されます。

- 「クラス」フォルダ
クラス名、メモリーに存在するクラスのインスタンス数が表示され、展開すると、ヒープの特定のインスタンスおよびそのアドレスが一覧表示されます。

- 参照パス・フォルダ
直接または間接的に特定オブジェクトを指すすべてのルート参照が含まれます。ルート参照は、staticフィールド、スタック変数、確保済オブジェクトです。ルート参照がある場合、オブジェクトはガベージ・コレクタによって破棄されません。ルート参照を展開すると、ルート参照から指定したオブジェクトまでの参照パスが表示されます。

ヒープ・ウィンドウを開くには、次のようにします。

1. ソース・エディタでソース・ファイルを開き、ブレークポイントを設定します。

2. ツールバーで「デバッグ」をクリックします。

3. デバッガがブレークポイントに達したときに、メイン・メニューから「表示」→「デバッガ」→「ヒープ」を選択します。

4. 「ヒープ」ウィンドウを右クリックし、ポップアップ・メニューから「新規タイプの追加」を選択します。クラス・ウィンドウからヒープ・ウィンドウに「クラス」ノードをドラッグする方法もあります。または、「クラス」ウィンドウで「クラス」ノードを右クリックし、ポップアップ・メニューから「ヒープ・ウィンドウに表示」を選択します。クラスに関する情報がヒープ・ウィンドウに表示されます。

ヒープ・ウィンドウに表示する列を変更するには、次のようにします。

- 「ヒープ」ウィンドウを右クリックし、ポップアップ・メニューから「プリファレンス」を選択します。「列」で、「ヒープ」ウィンドウに表示する列を選択します。

- あるいは、ヒープ・ウィンドウで列ヘッダーを右クリックし、ポップアップ・メニューで必要な列名を選択します。

19.7.7 「スタック」ウィンドウの使用方法

スタック・ウィンドウには、現在のスレッドのコール・スタックが表示されます。スタック・ウィンドウで行をハイライト表示すると、データ・ウィンドウ、監視式ウィンドウおよびすべてのインスペクタ・ウィンドウが更新され、選択したすべてのメソッドのデータが表示されます。

スタック・ウィンドウを開くには、次のようにします。

1. ソース・エディタでソース・ファイルを開き、ブレークポイントを設定します。

2. ツールバーから「デバッグ」をクリックします。

3. デバッガがブレークポイントで一時停止しているときに、メイン・メニューから「表示」→「デバッガ」→「スタック」を選択します。

スレッドのスタックを表示するには、次のようにします。

1. プロジェクトのデバッグを開始し、「スタック」ウィンドウを開きます。

2. ドロップダウン・リストから、列の上のスレッドを選択します。「スタック」ウィンドウには、選択したスレッドのスタックがすぐに反映されます。

スタック・ウィンドウに表示する列を変更するには、次のようにします。

1. 「スタック」ウィンドウを右クリックし、ポップアップ・メニューから「プリファレンス」を選択します。「列」で、「スタック」ウィンドウに表示する列を選択します。

2. あるいは、スタック・ウィンドウで列ヘッダーを右クリックし、必要な列名を選択します。

19.7.8 「クラス」ウィンドウの使用方法

クラス・ウィンドウには、ロードされたクラスが表示されます。また、クラスのインスタンス数などの有益な情報も表示される場合があります。Javaガベージ・コレクタを強制的に実行できるように、デバッガにはクラス・ウィンドウとともにガベージ・コレクション・ツールも含まれています。ガベージ・コレクタを実行すると、その影響がクラス・ウィンドウに即座に表示されます。デバッガでガベージ・コレクタを使用できる仮想マシンを使用している場合のみ、ガベージ・コレクタを強制的に実行できます。

クラス・ウィンドウを開くには、次のようにします。

1. ソース・エディタでブレークポイントを設定し、デバッグ・セッションを開始します。

2. デバッガがブレークポイントに達したときに、「表示」→「デバッガ」→「クラス」を選択します。
クラス・ウィンドウに、現在ロードされているすべてのクラス、そのクラスで使用中のインスタンス数、およびその数のインスタンスに必要なメモリー容量が表示されます。

クラス・ウィンドウに表示される情報を選択するには、次のようにします。

- 「クラス」ウィンドウで項目を右クリックし、ポップアップ・メニューから「プリファレンス」を選択します。「列」で、クラス・ウィンドウに表示する列を選択します。

- あるいは、クラス・ウィンドウで列ヘッダーを右クリックし、必要な列名を選択します。

表示の昇順と降順を変更するには、次のようにします。

- 各列上部をクリックして、ソート順を変更します。次の項目でソートできます。

- 名前

- カウント

- メモリー

- ファイル

「パッケージを表示」チェック・ボックスが選択されている場合、デフォルトでクラスがツリー構造で表示され、各ブランチがパッケージを表します。アイコンおよび各クラスまたはパッケージの隣にあるエントリは、クラスがトレースに含まれているか除外されているかを示します。行番号表のないクラスの特殊なアイコン(図19-6)は、クラスが取り除かれたか曖昧なためにトレースが不可能であることを示します。

図19-6 トレース実行できないことを示すアイコン

「クラス」ウィンドウで、ポップアップ・メニューから「プリファレンス」を選択し、表示する列を次の使用可能なオプションから選択します。

- カウント

- メモリー

- ファイル

19.7.9 「モニター」ウィンドウの使用方法

Javaでは、同期による言語レベルでのマルチスレッドがサポートされています。同期とは、複数スレッド間でアクティビティとデータ・アクセスを調整することです。Javaが同期のサポートに使用するメカニズムはモニターです。モニター・ウィンドウには、アクティブなモニターのステータスおよび制御情報が表示されます。

モニター・ウィンドウを開くには、次のようにします。

1. ソース・エディタでソース・ファイルを開き、ブレークポイントを設定します。

2. ツールバーで、「デバッグ」アイコンをクリックします。

3. デバッガがブレークポイントで停止しているときに、「表示」→「デバッガ」→「モニター」を選択します。

「モニター」ウィンドウに表示される情報を選択するには、次のようにします。

- 「モニター」ウィンドウの項目を右クリックし、ポップアップ・メニューから「プリファレンス」を選択します。「列」で、「クラス」ウィンドウに表示する列を選択します。

- あるいは、モニター・ウィンドウで列ヘッダーを右クリックし、必要な列名を選択します。

19.7.10 「スレッド」ウィンドウの使用方法

スレッド・ウィンドウには、プログラム内のすべてのスレッドおよびスレッド・グループの名前とステータスが表示されます。

スレッド・ウィンドウを開くには、次のようにします。

1. ソース・エディタでソース・ファイルを開き、ブレークポイントを設定します。

2. ツールバーから「デバッグ」をクリックします。

3. デバッガがブレークポイントで停止しているときに、メイン・メニューから「表示」→「デバッガ」→「スレッド」を選択します。
「ステップ実行」、「トレース実行」および「次の文を設定」を含むステップ・コマンドは、現在のスレッドに適用されます。別のスレッドを選択するには、スレッドを右クリックし、ポップアップ・メニューから「スレッドの選択」を選択します。

スレッド・ウィンドウでスレッドを選択すると、スタック・ウィンドウが自動的に更新され、選択したスレッドのスタックが表示されます。

スレッド・ウィンドウに表示する列を変更するには、次のようにします。

- 「スレッド」ウィンドウを右クリックし、ポップアップ・メニューから「プリファレンス」を選択します。「列」で、「スレッド」ウィンドウに表示する列を選択します。

- あるいは、スレッド・ウィンドウで列ヘッダーを右クリックし、必要な列名を選択します。

19.7.11 「デバッガ」ウィンドウの作業環境の設定方法

列のサイズ変更モードや表示する他のオプションなど、デバッガ・ウィンドウの様々な設定をカスタマイズできます。

ヒント:

デバッガをデバッグ対象プロセス(デバッグするプログラム)に接続できない場合は、接続再試行の設定値を上げてください。

デバッグ・ウィンドウの作業環境を設定するには、次のようにします。

1. 「ツール」→「プリファレンス」→「デバッガ」ページを選択します。
デバッグ・パネルにカスタマイズ可能なフィールドが表示されます。

2. 表示されるフィールドおよびオプションから選択します。

3. 特定のデバッガ・ウィンドウのオプションを設定するには、「デバッガ」ノードを展開し、該当するウィンドウ・ノードをクリックします。たとえば、スマート・データ・ウィンドウに表示する列を変更する場合は、「スマート・データ」をクリックします。

4. 必要に応じて、設定可能なオプションを編集します。

5. 終了したら「OK」をクリックします。

19.8 ブレークポイントの管理

ブレークポイントはプログラム内のトリガーで、その箇所に達するとプログラムの実行が一時休止され、プログラム変数の一部またはすべての値を調べることができます。ソース・コードの問題が発生する可能性のある箇所にブレークポイントを設定することにより、デバッグの必要な箇所に達するまでプログラムを実行できます。プログラムの実行中にブレークポイントに達すると、プログラムは一時休止し、デバッガのソース・エディタにブレークポイントを含む行が表示されます。デバッガを使用してプログラムの状態を表示できます。ブレークポイントは、プログラムの実行を開始する前やデバッグ中など、いつでも設定できます。図19-7 に、Javaアプリケーションのソース・ファイルにおけるブレークポイントの例を示します。

図19-7 ソース・エディタでのブレークポイント

コードのコメント行、空白行、宣言およびその他実行不可能な行で設定されたブレークポイントは無効となり、デバッガでは検証されません。

JDeveloperのデバッガでは、様々なタイプのブレークポイントがサポートされています。

- ソース・ブレークポイント

- 例外ブレークポイント

- メソッド・ブレークポイント

- クラス・ブレークポイント

- ファイル・ブレークポイント

- デッドロック・ブレークポイント

デッドロック・ブレークポイントは、デッドロックのソースの場所を特定するのが困難な場合に便利です。デッドロック・ブレークポイントが検出されると、デバッガは停止します。デッドロック・ブレークポイントは、デバッグの開始時に自動的に有効になります。

ブレークポイントの設定に関する情報は、ブレークポイント・ウィンドウで参照できます。

19.8.1 確認済および未確認ブレークポイントについて

デバッグ中、ソース・エディタのコード行の左側でブレークポイントを設定できます。ただし、ブレークポイントを有効にするには、コードの実行可能な行に設定する必要があります。メソッドを初めて実行する前に、デバッガによりメソッドのすべての有効なブレークポイントが確認されます。コードのコメント行、空白行、宣言およびその他実行不可能な行で設定されたブレークポイントは無効となり、デバッガでは検証されません。

ブレークポイントが有効であると確認されると、ソース・エディタのマージンおよび「ブレークポイント」ウィンドウに表示されるアイコンが図19-8に変化します。

図19-8 確認済の「確認済ブレークポイント」アイコン

19.8.2 デッドロックの理解

デッドロックは、プログラム内の1つ以上のスレッドがリソースにアクセスできなくなるか、待機状態のままいつまでも処理できない場合に発生します。Javaでの一般的なデッドロックは、モニター・ブロック・サイクル・デッドロックです。

モニター・ブロック・サイクル・デッドロックは、複数のスレッドが、他のスレッドがすでに実行中の同期コードを実行するために待機し、処理ができなくなる場合に発生します。

例19-2に、典型的なJavaの同期デッドロックを示します。

例19-2 Javaの同期デッドロック

synchronized (a)
{
...
synchronized (b)  {
...
}
...
}

同時に、スレッド2は次のコードを実行しています。

synchronized (b)
{
...
synchronized (b)
{
...
}
...
}

スレッド2がsynchronized (b)を実行中、スレッド1がsynchronized (a)に入るとデッドロックが発生します。スレッド1は、スレッド2がsynchronized (b)を終了するまでsynchronized (b)に入ることができず、スレッド2は、スレッド1がsynchronized (a)を終了するまでsynchronized (a)に入ることができません。デッドロックは「デッドリ・エンブラス」とも呼ばれます。この例ではスレッドは2つですが、スレッドの数が3つ以上ある場合にも同じような状況が発生します。デッドロック・ブレークポイントでは、このようなタイプのデッドロックを検出できます。

1つのスレッドが特定のオブジェクトでwaitメソッドをコールし、他のスレッドがそのオブジェクトでnotifyメソッドをコールしない場合にもデッドロックが発生します。このタイプのデッドロックの最も一般的な原因はタイミングです。待機側のスレッドがwaitをコールする前に、通知側のスレッドがnotifyをコールした可能性があります。waitをコールする場合に注意が必要な点は、notifyが前に何度もコールされていたとしても、waitメソッドはnotifyがもう1度コールされるまで待機するという点です。また、待機しているスレッドがない場合、notifyはエラーを返しません。デッドロック・ブレークポイントでは、このタイプのデッドロックは検出できません。

プログラムがハングしている可能性がある場合は、デバッガで「プログラムの停止」をクリックしてプログラムを一時停止し、「モニター」ウィンドウを開きます。コードを調べて、待機しているスレッドを見つけます。最初のスレッドがwaitをコールする前に別のスレッドがnotifyをコールしている場合はデッドロックが発生しています。このタイプのデッドロックの検出は非常に困難です。他のどのスレッドがnotifyをコールしたかを検出するには、作成したコードをよく理解しておく必要があります。

19.8.3 デッドロック・ブレークポイントの理解

JDeveloperのデバッガでは、実行を開始すると永続デッドロック・ブレークポイントが設定されます。デッドロック・ブレークポイントは、デッドロックのソースの場所を特定するのが困難な場合に便利です。デバッガは、デッドロック・ブレークポイントに達すると停止します。デバッガは、前述のモニター・ブロック・サイクル・デッドロックを検出できます。モニター・ウィンドウは、デッドロックを処理する場合に有益です。

デッドロック・ブレークポイントには、次の特徴があります。

- JDeveloperを使用するときに自動的に作成される永続ブレークポイントです。

- 削除できませんが、無効にすることはできます。

- モニター・ブロック・サイクル・デッドロックが検出されるとデバッガを一時休止します。モニター・ブロック・サイクル・デッドロックは、複数のスレッドが、他のスレッドがすでに実行中の同期コードを実行するために待機し、処理ができなくなる場合に発生します。

JDeveloperのデバッガでは、永続デッドロック・ブレークポイントが自動的に作成されます。このブレークポイントは、モニター・ブロック・サイクルが検出されるたびに発生します。永続ブレークポイントは削除できません。新規デッドロック・ブレークポイントの作成はできませんが、既存の永続デッドロック・ブレークポイントの編集は可能です。

デッドロック検出がサポートされていないJava Virtual Machineもあります。たとえば、HotSpot VMでは、デッドロック検出はサポートされていません。

19.8.4 グループ化されたブレークポイントの理解

ブレークポイントのグループ化によって、ブレークポイントのセットを有効にすることができます。デバッガがコードの特定の場所に達したときに、無効になっているブレークポイントまたはブレークポイントのグループを有効にするように指定できます。

たとえば、コードによってNullPointerExceptionが検出されるものの、コードが正しく動作しない場合があります。このとき、NullPointerExceptionが予想以上に頻繁に発生し、このためにデバッガが繰り返し停止しますが、これらのNullPointerExceptionの中にはコードにとって意味のないものが含まれているとします。この状況は、ブレークポイント・グループを作成し、このブレークポイントをグループに追加して、デバッグ中にデバッガがこのブレークポイントで停止しないようにブレークポイント・グループを無効にすることで解決できます。

次に、問題のあるNullPointerExceptionがスローされる直前に実行されるコードにソース・ブレークポイントを作成できます。ソース・ブレークポイントに対して、このブレークポイントが発生したときに、例外ブレークポイントを含むブレークポイント・グループを自動的に有効にする処理を設定できます。

19.8.5 ブレークポイントの編集方法

JDeveloperでは、ソース・コードに追加した後でもブレークポイントのオプションを編集できます。

ブレークポイントのオプションを表示および編集するには、次のようにします。

1. 「ブレークポイント」ウィンドウが開かれていない場合は、メイン・メニューから「表示」→「デバッガ」→「ブレークポイント」を選択します。

2. 「ブレークポイント」ウィンドウで、ブレークポイントを選択します。

3. 右クリックして「編集」を選択するか、「ブレークポイント」ツールバーで「編集」アイコンをクリックします。
「定義」タブ、「条件」タブおよび「処理」タブを含む「ブレークポイントの編集」ダイアログが表示されます。

4. ブレークポイントのオプションに必要な変更を加えます。

5. 変更を受け入れるには、「OK」をクリックします。

「ブレークポイントの編集」ダイアログでは、次のことを実行できます。

- ブレークポイント・オプションを設定します。

- ブレークポイントを適用するスレッドの設定

- ブレークポイントのパスの回数の設定

- ブレークポイント・グループへのブレークポイントの挿入

- ブレークポイントが発生した際にデバッガで実行する処理の選択

ソース・エディタに配置されているブレークポイントを右クリックすると編集できます。

1. ソース・エディタの左余白でブレークポイントのアイコンを右クリックします。

2. 「ブレークポイントの編集」を選択します。
「ブレークポイントの編集」ダイアログ・ボックスが表示され、ブレークポイントの定義を指定できます。

ソース・エディタでブレークポイントにカーソルを重ねる方法もあります。

- エディタ・ウィンドウの左余白にあるブレークポイント・アイコンの上にマウス・カーソルを置きます。

図19-9 「ブレークポイントの編集」ダイアログ

図19-9に示すポップアップ・ダイアログが表示されます。

このダイアログで、有効/無効、条件などブレークポイントの重要な属性の一部を編集できます。

19.8.6 ソース・ブレークポイントの設定方法

ソース・ブレークポイントは、ソース・コードで設定するブレークポイントで、デフォルトのブレークポイント・タイプです。

次のいずれかの方法で、ソース・ブレークポイントを設定できます。

- ソース・エディタで、実行可能なコード行の隣の左マージンをクリックします。

- ソース・エディタで、コード行の隣の左マージンを右クリックし、「ブレークポイントの設定」([F5])を選択します。

- 「表示」→「デバッガ」→「ブレークポイント」を選択して、「ブレークポイント」ウィンドウを表示します。次に、このウィンドウの任意の場所を右クリックし、ポップアップ・メニューから「ブレークポイントの追加」を選択します。サブメニューで、ブレークポイント型として「ソース」を選択し、ダイアログにパッケージ、ソース・ファイル名、行番号情報を入力します。ソース・ファイル名には、ディレクトリ情報は指定しませんが、ファイルの拡張子を指定する必要があります。たとえば、次のように指定します。次に例を示します。

Application1.java or MyWebApp.jsp

通常は、デバッグを開始する前に少なくとも1つのブレークポイントを設定しますが、この作業は必須ではありません。デバッガでプログラムを実行中に、ブレークポイントを設定できます。ブレークポイントに達すると、プログラムは一時休止します。

19.8.7 ブレークポイントの動作の制御方法

ブレークポイントが発生した場合のデバッガの動作を制御できます。

ブレークポイントが発生した場合のデバッガの動作を制御するには、次のようにします。

1. 「ブレークポイント」ウィンドウのツールバーで、「ブレークポイントの追加」をクリックするか、またはブレークポイントを選択して「編集」をクリックします。

2. 「新規ブレークポイント」ダイアログまたは「ブレークポイントの編集」ダイアログで「処理」タブをクリックします。「処理」タブでは、次の動作を変更できます。

- 実行の停止(デフォルト)

- ビープ音

- ブレークポイントの発生を記録(タグまたは式を入力)

- ブレークポイントのグループを使用可にする

- ブレークポイントのグループを使用不可にする

19.8.8 ブレークポイントを有効/無効にする方法

ブレークポイントを無効にすると、ブレークポイント設定の定義はすべてそのままですが、プログラムの実行時にブレークポイントがトリガーされません。プログラムは無効なブレークポイントでは停止しません。現在は使用しないが、後で必要になるブレークポイントを定義した場合は、ブレークポイントを無効にすると便利です。

ブレークポイントを無効にするには、次のようにします。

- ソース・エディタで、左マージンにあるブレークポイント記号を右クリックし、「ブレークポイントを無効化」を選択します。

- 「ブレークポイント」ウィンドウ(「表示」→「デバッガ」→「ブレークポイント」)で、無効にするブレークポイントを右クリックして「無効化」を選択します。

- 「ブレークポイント」ウィンドウでブレークポイントのグループを無効にするには、無効にするグループを選択し、右クリックして「グループを無効化」を選択します。
また、「ブレークポイント」ツールバーからブレークポイントを無効にすることもできます。ブレークポイントまたはブレークポイント・グループを選択し、ツールバーで「無効化」をクリックします。

- 現在のブレークポイントをすべて無効にするには、「ブレークポイント」ウィンドウで右クリックし、ポップアップ・メニューで「すべて無効化」を選択します。

無効化したブレークポイントを再有効化するには、次のようにします。

- 無効化したブレークポイントを有効にするには、そのブレークポイントの記号(または「ブレークポイント」ウィンドウのエントリ)を右クリックし、「有効化」を選択します。

- 無効化したすべてのブレークポイントを有効にするには、「ブレークポイント」ウィンドウで右クリックし、「すべて有効化」を選択します。

- ブレークポイントのグループを有効にするには、「ブレークポイント」ウィンドウでブレークポイント・グループを右クリックし、「グループの有効化」を選択します。
また、「ブレークポイント」ツールバーからブレークポイントを有効にすることもできます。ブレークポイントまたはブレークポイント・グループを選択し、ツールバーで「有効化」をクリックします。

ブレークポイントを削除するには、次のようにします。

ブレークポイントでコードを確認する必要がなくなった場合は、ブレークポイントを削除できます。削除には、ソース・エディタまたはブレークポイント・ウィンドウを使用します。

- ソース・エディタの左マージンで、削除するブレークポイントをクリックします。

- ソース・エディタの左マージンで削除するブレークポイントを右クリックし、「ブレークポイントの設定」を選択します。

- ソース・エディタで、そのブレークポイントが含まれているコード行にカーソルを置き、[F5]キーを押します。

- 現在設定されているブレークポイントをすべて削除するには、ブレークポイント・ウィンドウで右クリックし、「すべて削除」を選択します。

- 「ブレークポイント」ウィンドウでブレークポイントを選択し、ツールバーで「ブレークポイントの削除」をクリックします。

警告:

削除したブレークポイントを元に戻すことはできません。

19.8.9 インスタンス・ブレークポイントの設定方法

通常、ブレークポイントに達すると常になんらかの影響があります。インスタンス・ブレークポイントは、ブレークポイントが表示されるメソッドを定義するクラスの特定のインスタンスに関連付けられます。

インスタンス・ブレークポイントは、選択したインスタンスを識別するインスタンス・フィルタに関連付けられているソース・ブレークポイントです。インスタンス・ブレークポイントは、デバッガの複数の実行にわたっては保持されません。インスタンス・フィルタは、ブレークポイント・ウィンドウの「インスタンス・フィルタ」列に表示されます。

インスタンス・ブレークポイントを設定するには、次のようにします。

1. インスタンス・ブレークポイントに変換するソース・ブレークポイントを設定します。ソース・ブレークポイントは、インスタンスのクラスのメソッド内にある必要があります。詳細は、第19.8.6項「ソース・ブレークポイントの設定方法」を参照してください。

2. 目的のインスタンスがアクセスできる位置に2番目のブレークポイントを設定します。

3. 次のように、インスタンス・フィルタを定義します。

- デバッガを開始または再開します。

- デバッガが2番目のブレークポイントで停止したら、データ・ウィンドウ、スマート・データ・ウィンドウまたは監視式ウィンドウで目的のインスタンスを検索します。

- インスタンスを右クリックして「インスタンス・フィルタ」を選択し、インスタンス・ブレークポイントになるソース・ブレークポイントを選択します。
追跡するその他のインスタンスに対して、この作業を繰り返します。

4. デバッガを再開します。
デバッガは、選択したインスタンスのインスタンス・ブレークポイントでのみ停止します。

19.8.10 例外ブレークポイントの設定方法

一般に、ブレークポイントは特定のコード行に追加され、そのコード行が実行される直前にデバッガを一時休止します。また、特定タイプの例外が発生したときにアクティブになるようにブレークポイントを設定することもできます。例外ブレークポイントは、特定のコード行には関連付けられません。

例外ブレークポイントを設定するには、次のようにします。

1. 「ブレークポイント」ウィンドウで、「ブレークポイント」ツールバーの「ブレークポイントの追加」をクリックします。サブメニューから「例外ブレークポイント」を選択します。
例外ブレークポイントの作成・ダイアログが表示されます。

2. 「定義」タブで、例外クラス名を入力または選択します。

3. 必要に応じて、「例外の検出で常にブレーク」チェック・ボックスまたは「捕捉されない例外の検出でブレーク」チェック・ボックスの選択を切り替えることができます。デフォルトでは両方のチェック・ボックスが選択されています。

4. 「OK」をクリックします。

これで、指定したタイプの例外がスローされるとデバッガは一時停止します。

デフォルトでは、デバッガにより、java.lang.Throwableに未検出の例外がスローされた場合の永続例外ブレークポイントが自動的に作成されます。このブレークポイントは、未検出の例外がスローされると発生します。永続ブレークポイントは無効にできますが、削除できません。

19.8.11 ブレークポイントを条件付きにする方法

ブレークポイントを条件付きにすると、デバッガは特定の条件が満たされた場合に一時休止します。ブレークポイントを初めて設定すると、デバッガはブレークポイントを検出するたびにプログラムの実行を一時休止します。ただし、「ブレークポイントの編集」ダイアログを使用して、特定の条件でのみアクティブになるように、ブレークポイントをカスタマイズできます。

「ブレークポイントの編集」ダイアログの「条件」タブで、プログラムの実行中にデバッガがブレークポイントを検出するたびに評価される式を入力します。式がtrueと評価された場合、プログラムはブレークポイントで一時停止します。falseと評価された場合、プログラムはブレークポイントで停止しません。

たとえば、変数mediumCountが10より大きい場合のみコード行で一時停止するブレークポイントを設定するとします。

ブレークポイントの条件を設定するには、次のようにします。

1. ソース・エディタで行の左側をクリックして、コード行にブレークポイントを設定します。

2. 「表示」→「デバッガ」→「ブレークポイント」を選択して、「ブレークポイント」ウィンドウを開きます。

3. 「ブレークポイント」ウィンドウで、設定したブレークポイントを右クリックし、「編集」を選択します。

4. 「ブレークポイントの編集」ダイアログで、「条件」をクリックします。

5. 「条件」フィールドに、たとえばmediumCount > 1のように入力します。

6. 「OK」を選択します。

「ブレークポイントの編集」ダイアログには有効なJava言語式を入力できますが、ブレークポイントの場所から式に含まれるすべての記号にアクセスできる必要があります。また、式にはメソッド・コールを含めることはできません。例外ブレークポイントの場合、_throwを使用して条件に例外オブジェクトを使用できます。

ソース・エディタに配置されているブレークポイントを右クリックして条件を設定することもできます。

1. ソース・エディタの左余白でブレークポイントのアイコンを右クリックします。

2. 「ブレークポイントの編集」を選択します。
「ブレークポイントの編集」ダイアログ・ボックスが表示され、条件を指定できます。

ソース・エディタでブレークポイントにカーソルを重ねて条件を設定する方法もあります。

- エディタ・ウィンドウの左余白にあるブレークポイント・アイコンの上にマウス・カーソルを置きます。
図19-9のように、「ブレークポイントの編集」ポップアップ・ダイアログが表示されます。このダイアログで条件を設定できます。

19.8.12 パスの回数ブレークポイントの使用

「パスの回数」フィールドでは、ブレークポイントをアクティブにするまでのパスの回数を指定します。パスの回数は、ループがn回目の繰返しで失敗したと考えられる場合に便利です。デバッガはプログラムの実行中にブレークポイントをn回検出するとプログラムを一時休止します。デフォルト値は1です。

ブレークポイント・ウィンドウに「パスの回数」列が表示されている場合、プログラムの実行中にコードのブレークポイント行が検出されるたびにパスの回数の値が減少することが確認できます。ブレークポイント行が検出されたときにパスの回数が1の場合、ブレークポイントがアクティブになり、プログラムはその行で一時休止します。

パスの回数をブレークポイント条件とともに使用すると、プログラムは、条件がtrueとなったn回目にブレークポイントで一時停止します。パスの回数は、条件がtrueの場合のみ減少します。

19.8.13 「ブレークポイント」ウィンドウでブレークポイントを調べる方法

ブレークポイントのリストを表示するには、メイン・メニューから「表示」→「デバッガ」→「ブレークポイント」を選択します。デバッガによって有効であると確認されたブレークポイントが、図19-8のようなアイコンで示されます。ブレークポイント・ウィンドウを使用して、ソース・コード内のブレークポイントの場所を素早く検索できます。

ブレークポイント・ウィンドウを使用して、ソース・エディタでブレークポイントを検索するには、次のようにします。

1. 「ブレークポイント」ウィンドウで、ブレークポイントを選択します。

2. 右クリックして、ポップアップ・メニューから「ソースに移動」を選択します。

19.8.14 ブレークポイント・グループの管理方法

ブレークポイント・グループを作成し、ブレークポイントをこのグループに追加することにより、複数のブレークポイントを1回の処理で有効または無効にできます。ブレークポイント・グループを作成すると、このグループをブレークポイントと同じように有効化、無効化および削除できます。

ブレークポイント・ウィンドウでドラッグ・アンド・ドロップを使用して、ブレークポイントをグループに挿入したり、グループから削除することもできます。

ブレークポイント・グループを作成するには、次のようにします。

1. 「ブレークポイント」ウィンドウで、ブレークポイントを右クリックし、ポップアップ・メニューから「編集」を選択します。
「ブレークポイントの編集」ダイアログが表示されます。

2. 「ブレークポイントのグループ名」フィールドにブレークポイントのグループ名を入力します。

3. 「OK」をクリックします。
ブレークポイント・ウィンドウに新しいグループが作成され、フォルダ・アイコンで示されます。編集したブレークポイントは、自動的に新しいグループに入ります。

ブレークポイント・グループにブレークポイントを移動するには、次のようにします。

ドラッグ・アンド・ドロップで、ブレークポイントをブレークポイント・グループに挿入するか、次の手順を実行します。

1. 「ブレークポイント」ウィンドウで、ブレークポイントを右クリックし、ポップアップ・メニューから「編集」を選択します。
「ブレークポイントの編集」ダイアログが表示されます。

2. 「ブレークポイントのグループ名」フィールドで、ドロップダウン・リストからブレークポイントのグループを選択するか、新規グループ名を入力します。

3. 「OK」をクリックします。
ブレークポイントが指定したグループに追加されます。

ブレークポイント・グループを有効化、無効化または削除するには、「ブレークポイント」ウィンドウで、ブレークポイント・グループを右クリックし、ポップアップ・メニューから「グループの有効化」、「グループを無効化」または「グループの削除」を選択します。

「ブレークポイント」ツールバーからグループを有効化または無効化することもできます。ブレークポイント・ウィンドウでグループ名を選択し、ツールバーの「有効化」または「無効化」アイコンをクリックします。選択したグループのすべてのブレークポイントが有効化または無効化されます。

19.9 デバッガのウィンドウでプログラムの状態を確認する

プログラムは、ステップ実行すると表示できますが、通常はプログラム変数の値を調べて不具合を検出する必要があります。たとえば、ループをステップ実行する際に索引変数の値を確認したり、メソッド・コールで渡されるパラメータの値を確認できると便利です。プログラムがデバッガで一時休止したときに、変数、引数、フィールドおよび配列項目の値を調べることができます。

19.9.1 データ要素のインスペクトおよび変更方法

デバッグ・セッション中にデータ、スマート・データ、インスペクタ、監視式ウィンドウを使用して、データ項目の値をインスペクトおよび変更できます。

データ項目をインスペクトするときには、デバッグ・セッションの実行中に異なる式で評価します。必要に応じて、プログラム・データ値を変更して、プログラム実行中に不具合の仮修正をテストできます。変更によってプログラムのエラーが修正されたことを確認した場合、デバッグ・セッションを終了し、プログラム・コードを修正した後、プログラムを再コンパイルして修正を確定できます。

また、デバッグ・セッション中にプログラム・データ値を変更して、プログラム実行中に不具合の仮修正をテストできます。変更によってプログラムのエラーが修正されたことを確認した場合、デバッグ・セッションを終了し、プログラム・コードを修正した後、プログラムを再コンパイルして修正を確定できます。

変数の値を変更する場合、変更はその特定のプログラム実行に対してのみ有効です。データ・ウィンドウまたは監視式ウィンドウで行った変更は、プログラムのソース・コードまたはコンパイル済のプログラムには影響しません。変更を確定するには、ソース・エディタでプログラムのソース・コードを変更し、プログラムを再コンパイルする必要があります。

新しい値の型と割当先の変数の型とには互換性が必要です。割当てによってコンパイルに時間がかかったり、実行時エラーが発生したりした場合には、有効な変更値とは言えません。

データ項目をインスペクトするには、次のようにします。

1. デバッガがブレークポイントで停止している間にデータ・ウィンドウを開きます。

2. 「データ」ウィンドウで項目を右クリックし、ポップアップ・メニューから「インスペクト」を選択します。
フローティング形式の「インスペクタ」ウィンドウが開き、項目の名前、値、その他の関連情報が表示されます。このウィンドウに表示される列は、「ツール」→「プリファレンス」→「デバッガ」→「インスペクタ」ページで有効にした列設定によって異なります。詳細は、第19.7.5項「「インスペクタ」ウィンドウの使用方法」を参照してください。

3. 項目の式を評価するには、ポップアップ・メニューから「式の編集」を選択します。
監視式を追加することも、データ項目をさらにインスペクトすることもできます。

4. 終わったら、「インスペクタ」ウィンドウを閉じます。

データ項目を簡単にインスペクトするには、次のようにします。

データ項目の値を表示するのみで式の評価を行わない場合には、「クイック・インスペクト」の機能を使用できます。

1. デバッガがブレークポイントで停止している間にデータ・ウィンドウを開きます。

2. 「クイック・インスペクト」の列が表示されるように、「データ」ウィンドウを設定します。「データ」ウィンドウの列のヘッダーを右クリックし、「クイック・インスペクト」を選択します。「クイック・インスペクト」は、ウィンドウの最初の列です。

3. データ項目を選択し、緑色の球形アイコンをクリックします。

4. 選択した項目の子を示す子ウィンドウが開き、オブジェクト階層の下位まで変数を簡単にインスペクトできます。「クイック・インスペクト」ウィンドウは、マウス・ポインタをデータ項目から動かすと自動的に閉じます。

JDeveloperでは、「データ」ウィンドウを追加せずにデータ項目をインスペクトすることもできます。ソース・エディタで、デバッガがブレークポイントで停止したら、データ項目の上にマウス・カーソルを重ねると、名前、値、タイプが表示されます。データ項目がオブジェクトまたは配列の場合は、オブジェクト階層の下位にある、選択した項目の子もインスペクトできます。

データ・ウィンドウで変数の値を変更するには、次のようにします。

1. デバッガがブレークポイントで停止している間にデータ・ウィンドウを開きます。

2. データ・ウィンドウで項目を右クリックし、ポップアップ・メニューから「値の変更」を選択します。
選択した項目の名前と現在の値を示す「値の変更」ダイアログが表示されます。

3. 項目の新しい値を入力します。

- プリミティブ値を変更する場合、新しい値を入力できます。

- (文字列以外の)参照ポインタを変更する場合、既存オブジェクトまたは配列のメモリー・アドレスを入力できます。

- 文字列を変更する場合、新しい文字列値または既存文字列のメモリー・アドレスを入力できます。

4. 「OK」をクリックして、項目の値を変更し、ダイアログを閉じます。
データ・ウィンドウ、スマート・データ・ウィンドウ、インスペクタ・ウィンドウまたは監視式ウィンドウに新しい値が表示されます。

19.9.2 監視式の設定方法

監視式を使用すると、プログラムの実行に従って変化する、変数および式の値を監視できます。監視式を入力すると、監視式ウィンドウに、式の現在の値が表示されます。プログラムの実行時、プログラムによって監視式の変数の値が更新されるため、監視の値が変化します。

監視は、「スタック」ウィンドウでの選択内容によって制御される現行のコンテキストに従って、式を評価します。新しいコンテキストに移動すると、その新しいコンテキストに対して式が再評価されます。監視式の変数が定義されていない場所に実行ポイントが移動すると、監視式全体が未定義になります。監視式を評価できる場所に実行ポイントが戻ると、「監視」ウィンドウに再び監視式の値が表示されます。

監視式ウィンドウを開くには、次のようにします。

- メイン・メニューから「表示」→「デバッガ」→「監視式」を選択します。

ソース・エディタから監視式を追加するには、次のようにします。

1. カーソルで監視する式を選択します。

2. 右クリックし、ポップアップ・メニューから「監視式」を選択して、「監視式」ウィンドウに式を追加します。
式が入力されたダイアログが表示されます。

3. 必要に応じて式を編集します。

4. 「OK」をクリックします。

次の方法で監視式を追加することもできます。

- データ・ウィンドウでデータ項目を選択します。右クリックして、「監視式」を選択します。

- 「監視式」ウィンドウを右クリックし、「監視式の追加」を選択します。

- マウスを使用してデータをデータ・ウィンドウから監視式ウィンドウにドラッグ・アンド・ドロップします。

監視式を編集するには、次のようにします。

1. 監視式ウィンドウで式を選択して右クリックし、「監視式の編集」を選択します。
「監視式の編集」ダイアログが表示されます。

2. 新しい式を入力するか、既存の式を変更して、「OK」をクリックします。

監視式を削除するには、次のようにします。

- 監視式ウィンドウで式を選択して[Del]キーを押すか、右クリックして、ポップアップ・メニューから「監視式の削除」を選択します。ポップアップ・メニューから「すべての監視式を削除」を選択して、すべての監視式を削除することもできます。

警告:

削除した監視式を元に戻すことはできません。

19.9.3 「インスペクタ」ウィンドウでの式の変更方法

「インスペクタ」ウィンドウで、既存の式を変更できます。

インスペクタ・ウィンドウで式を変更するには、次のようにします。

1. インスペクタ・ウィンドウを右クリックし、ポップアップ・メニューから「式の編集」を選択します。
「式の編集」ダイアログが表示されます。

2. 新しい式を入力します。

3. 「OK」をクリックします。

19.9.4 「フィルタ対象クラス」リストでフィールドの表示/非表示を切り替える方法

デバッグ中、フィルタを使用して、データ関連デバッガ・ウィンドウでオブジェクトを展開するときに表示するフィールド数を減らすことができます。このタスクは、スマート・データ・ウィンドウ、データ・ウィンドウ、インスペクタ・ウィンドウ、監視式ウィンドウ、およびモニター・ウィンドウの左側で「オブジェクト設定」ダイアログを使用して実行できます。フィールド数を減らすことにより、デバッグの対象範囲が絞られ、プログラムの問題を容易に検出して切り離すことができるようになります。

たとえば、データ・ウィンドウでクラスに対してフィルタを作成し、必要なフィールドのみを表示できます。これにより、画面が見やすくなり、関連するデータを簡単に見つけることができます。

「フィルタ対象クラス」リストでフィールドを表示または非表示にするには、次のようにします。

1. データ関連デバッガ・ウィンドウでオブジェクトを選択します。右クリックして、ポップアップ・メニューから「オブジェクト設定」を選択します。
「オブジェクト設定」を選択することで、この特定のオブジェクトに関する「オブジェクト設定」ダイアログに直接移動でき、このダイアログで、オブジェクトを展開するときに表示するフィールドと表示しないフィールドを制御するフィルタを指定できます。

2. 「オブジェクト設定」ダイアログでは、選択したオブジェクトのスーパークラス階層を簡単に横断しながら、各スーパークラスのフィルタを定義および更新できます。「タイプ階層」でクラスを選択し、「デバッガ」ウィンドウの「値」列に表示する、または表示しないフィールドを選択します。

3. 「表示するフィールド」リストから「非表示にするフィールド」リストにフィルタを移動するには、矢印をクリックします。

4. 終了したら「OK」をクリックします。

19.10 Javaプログラムのリモート・デバッグ

JDeveloper IDEを使用し、ローカルでコードをデバッグする他にも、リモート・マシンにあるコードや別のVMインスタンスで実行中のコードをデバッグできます。つまり、デバッガを使用して、デプロイ済のコードをデバッグすることが可能です。デバッガは、同時に複数のリモートVMにアタッチできるため、WebサーバーにデプロイされたJSPがアプリケーション・サーバーにデプロイされたEJBにアクセスするような分散アプリケーションを、シームレスにデバッグできます。

リモート・デバッグとローカル・デバッグの大きな違いは、デバッグ・セッションの開始方法にあります。ローカル・デバッグの場合、JDeveloperによってデバッグするプログラムが自動的に起動し(デバッグ対象プロセス)、デバッガがそのプログラムにアタッチされます。リモート・デバッグの場合、デバッグするプログラムを手動で起動する必要があります。また、JSPまたはサーブレットをデバッグしている場合は、JSPまたはサーブレットを起動するためのブラウザを手動で起動する必要があります。

デバッグ・プロセスが起動してJDeveloperデバッガがアタッチされた後のリモート・デバッグは、ローカル・デバッグとほとんど同じです。デバッグ対象プロセスがJDeveloperと同じマシンで動作している場合も、別のマシンで動作している場合も、リモート・デバッグを使用できます。

ローカルのデバッグとは異なり、リモート・デバッグ・セッションを開始する前に、使用するプロトコルを選択する必要があります。リモート・デバッグ・プロトコルは、「実行構成の編集」ダイアログの「デバッガ」→「リモート」ページで設定します。

「Httpアナライザ」を使用して、JSPやサーブレットなどのWebページをデバッグすることもできます。詳細は、第8章「アプリケーションの監査とプロファイリング」を参照してください。

JPDAにアタッチ

指定したアドレスでデバッガ・アプリケーションにアタッチする場合に選択します。Sun社のJava Platform Debugger Architecture (JPDA)接続および起動の詳細は、http://java.sun.com/javase/6/docs/technotes/guides/jpda/conninv.htmlを参照してください。

JPDAのリスニング

デバッグ対象プロセスがデバッガにアタッチするために、デバッガでリスニングすることを指定する場合に選択します。また、リモートPL/SQLプログラムをデバッグする場合は、このオプションを選択します。

19.10.1 デバッグ・モードでのJavaプロセスの開始方法

リモート・デバッグのプロジェクトを設定した後、デバッグ・プロトコルおよび環境に基づいて適切なコマンドを発行し、リモート・デバッグ・セッションを開始できます。

Javaプロセスを開始するには、コマンドラインで次のように入力します。

java [-client|server] -cp <project_directory>\classes -agentlib:jdwp,<option1>[=<value1>],<option2>[=<value2>]... <java_main_class>

使用可能なオプションは、次のとおりです。

- server(=n/y)
yに設定した場合、Javaプロセスはデバッガによるアタッチを待機します。n (デフォルト)に設定した場合、指定したアドレスでプロセス自体がデバッガ・アプリケーションにアタッチします。

- address
接続用のポートを指定します。デフォルトは4000です。

- timeout
接続試行がタイムアウトするまでの時間間隔。デフォルトは2秒です。

- suspend =(y/n)
y(デフォルト)に設定した場合、デバッガが接続した後にJavaプロセスが実行されます。nに設定した場合、デバッグ対象プロセスはデバッガの接続を待機せずただちに開始されます。

コマンドラインの例:

- java -cp <project_directory>\classes -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=4000
デバッガ接続をポート4000でリスニングしますが、デバッガを待機しないで実行を開始します。2秒後にタイムアウトします(デフォルト)。Client VMを実装します(デフォルト)。

- java -server -cp<project_directory>\classes -agentlib:jdwp=transport=dt_socket,server=n,suspend=y,timeout=3,address=8000
デバッガ接続にポート8000でアタッチします。デバッガへの接続後にのみ、実行を開始します。3秒後にタイムアウトします。Server VMを実装します。

Sun社のJPDA Connection and Invocationの詳細は、
http://www.oracle.com/technetwork/java/javase/documentation/index-jsp-135444.htmlを参照してください。

19.10.2 JavaScriptデバッガを使用したリモート・デバッグの方法

JDeveloperでは、ローカル・インスタンスおよびサーバー・インスタンスで、JavaScriptプログラムをリモート・デバッグすることができます。

リモート・デバッグを開始する前に、JavaScriptデバッグ用のFirefoxプラグインをインストールし、JavaScriptをリモート・デバッグできるようにJDeveloperを設定します。

JavaScriptプログラム(HTML/JSファイル)をリモート・デバッグするには、次のようにします。

1. JDeveloperでリモート・デバッグを有効にします。

- 「アプリケーション」→「プロジェクト・プロパティ」を選択します。

- 「プロジェクト・プロパティ」ダイアログで、「実行/デバッグ/プロファイル」ノードを選択します。「実行構成」リストから実行構成を選択し、「編集」をクリックします。

- 「実行構成の編集」ダイアログの「起動設定」ページで、「リモート・デバッグ」を選択します。

- 「ツール設定」→「デバッガ」で「リモート」ノードを選択します。

- 「リモート」ページで、「プロトコル」として「Mozilla/Firefoxにアタッチ」を選択します。

- オプションで、ホスト・マシン名、ポート、タイムアウト情報を設定します。デフォルトでは、JDeveloperはポート4000を使用し、タイムアウト値は2秒です。

- 「OK」をクリックして「実行構成の編集」ダイアログを閉じ、「プロジェクト・プロパティ」ダイアログも閉じます。

2. Firefoxのインスタンスが開いている場合には、すべて閉じます。

3. JDeveloperで、JavaScriptプログラムにブレークポイントを設定します。

4. コマンド・ウィンドウを開き、次のコマンドでMozilla Firefoxを起動します。
firefox AnHtmlFile -oraclejsdebugport=<port> <another browser argument>

次に例を示します。

C:\>firefox file://C:/Shopcart/Servlet/public_html/index.html -oraclejsdebugport=4000

Firefoxは開きませんが、Firefoxのプロセスがバックグラウンドで起動します。Windowsの「タスク マネージャ」を開き、Firefoxのプロセスが実行中であることを確認します。

5. JDeveloperで、リモート・デバッガを起動します。アプリケーション・ナビゲータでプロジェクトを選択し、右クリックして「リモート・デバッガの開始」を選択します。

6. Firefoxブラウザでプログラムが起動し、JDeveloperではソース・コードに設定した最初のブレークポイントでデバッガが停止します。これで、使用可能なデバッガ・オプションでJavaScriptプログラムのデバッグを続行できます。

サーバー・インスタンス(JSP/Servlets/HTMLファイル)でJavaScriptプログラムをリモート・デバッグするには、次のようにします。

1. JDeveloper統合WebLogicサーバーを起動します。「実行」メニューから、「サーバー・インスタンスの起動」を選択します。

2. プロジェクトを統合WebLogicサーバーにデプロイします。

3. JDeveloperでリモート・デバッグを有効にします。

- 「アプリケーション」→「プロジェクト・プロパティ」を選択します。

- 「プロジェクト・プロパティ」ダイアログで、「実行/デバッグ/プロファイル」ノードを選択します。「実行構成」リストから実行構成を選択し、「編集」をクリックします。

- 「実行構成の編集」ダイアログの「起動設定」ページで、「リモート・デバッグ」を選択します。

- 「ツール設定」→「デバッガ」で「リモート」ノードを選択します。

- 「リモート」ページで、「プロトコル」として「Mozilla/Firefoxにアタッチ」を選択します。

- オプションで、ホスト・マシン名、ポート、タイムアウト情報を設定します。デフォルトでは、JDeveloperはポート4000を使用し、タイムアウト値は2秒です。

- 「OK」をクリックして「実行構成の編集」ダイアログを閉じ、「プロジェクト・プロパティ」ダイアログも閉じます。

4. Firefoxのインスタンスが開いている場合には、すべて閉じます。

5. JDeveloperで、プログラム・ファイルにブレークポイントを設定します。

6. コマンド・ウィンドウを開き、次のコマンドでMozilla Firefoxを起動します。
firefox webaddress -oraclejsdebugport=<port> <another browser argument>

次に例を示します。

C:\>firefox http://130.35.102.18:7101/Shopcart/index.jsp -oraclejsdebugport=4000

Firefoxは開きませんが、Firefoxのプロセスがバックグラウンドで起動します。Windowsの「タスク マネージャ」を開き、Firefoxのプロセスが実行中であることを確認します。

7. JDeveloperで、リモート・デバッガを起動します。アプリケーション・ナビゲータでプロジェクトを選択し、右クリックして「リモート・デバッガの開始」を選択します。

8. Firefoxブラウザでプログラムが起動し、JDeveloperではソース・コードに設定した最初のブレークポイントでデバッガが停止します。これで、使用可能なデバッガ・オプションでプログラムのデバッグを続行できます。

19.10.3 リモート・デバッグ用に設定されたプロジェクトの使用方法

任意のプロジェクトを構成して、リモート・デバッグを実行できます。

リモート・デバッグ用にプロジェクトを設定するには、次のようにします。

1. ツールバーから「デバッグ」をクリックします。
適切なアタッチ・ダイアログが表示されます。

2. 「ホスト」リスト・ボックスで、リモートのデバッグ対象プロセスを開始するマシンの名前またはIPアドレスを入力するか、選択します。

3. 「ポート」リスト・ボックスで、リモートのデバッグ対象プロセスのポート番号を入力するか、選択します。

4. 「OK」をクリックします。
デバッガが接続されると、ログ・ウィンドウに、接続に成功したことを示すメッセージが表示されます。

5. JSPまたはサーブレットをデバッグしている場合は、ブラウザを起動してJSPまたはサーブレットにアクセスする必要があります。EJBをリモート・デバッグしている場合は、EJBにアクセスするEJBクライアントを実行する必要があります。

6. 通常と同じようにデバッグ・セッションを続けます。

7. デバッグ対象プロセスを終了することなく、リモートのデバッグ対象プロセスからデバッガの接続を解除するには、「実行」→「連結解除」メニュー・オプションを選択します。このオプションは、アプリケーション・サーバーをリモート・デバッグする場合に適しています。

8. リモートのデバッグ対象プロセスを終了するには、「実行」→「終了」メニュー・オプションを選択するか、「終了」アイコンを選択します。

19.10.4 JPDAリモート・デバッグの設定方法

次の各ステップでは、Java Platform Debugger Architecture (JPDA)リモート・デバッグ用にJDeveloperを設定します。

リモート・デバッグ用にプロジェクトを設定するには、次のようにします。

1. global-web-application.xmlのJSPの部分を次のように変更します。

<init-param>
<param-name>debug</param-name>
<param-value>class</param-value>
</init-param>

2. 統合WebLogic Serverのコマンドを開始します(-serverが最初のパラメータであることを確認してください)。

value="-server -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=4000 -Xms512m -Xmx750m -XX:PermSize=128m -XX:MaxPermSize=256m -Djava.security.policy=$ORACLE_HOME/j2ee/home/config/java2.policy -Djava.awt.headless=true -Dhttp.webdir.enable=false"/>

リモート・デバッグ用にJDeveloperを設定するには、次のようにします。

1. 「アプリケーション」→「プロジェクト・プロパティ」、「実行/デバッグ/プロファイル」ノードを選択し、実行構成を選択して「編集」をクリックします。

2. 「リモートのデバッグおよびプロファイル」チェック・ボックスを選択します。

3. 「デバッガ」→「リモート」ページで、「プロトコル」が「JPDAにアタッチ」に設定されていることを確認します。

4. 「設定」ダイアログを閉じます。

5. コードにブレークポイントを設定して、「デバッグ」ボタン・ドロップダウン・リストから必要な実行構成を選択します。「接続」ダイアログへの入力を完了し、デバッグ対象プロセスへの接続を確認します。

6. ブラウザを使用して、サーバーにすでにデプロイされているJSPにアクセスします。ブレークポイントが検出され、すべて予想どおりに動作します。

20 Java Swingユーザー・インタフェースの実装

この章では、Java Swingインタフェースを開発するためにJDeveloperが提供するツールと機能の使用方法について説明します。ここでは、コンポーネントとJDeveloperのUI設計ツールを使用する際に実行する基本的なタスクについて説明します。これには、AWTおよびSwingベースのクライアント・アプリケーションおよびアプレット専用のユーザー・インタフェースのデバッグに使用されるUIデバッガの説明が含まれます。

この章では、次の項目について説明します。

- 第20.1項「Java Swingユーザー・インタフェースの実装について」

- 第20.2項「JDeveloperのユーザー・インタフェース設計ツールの理解」

- 第20.3項「Swingアプリケーションのルック・アンド・フィールの制御」

- 第20.4項「Java SwingおよびAWTコンポーネントの使用」

- 第20.5項「レイアウト・マネージャの使用」

- 第20.6項「レイアウト・プロパティを使用したUIのプロトタイプ作成」

- 第20.7項「コンテナおよびコンポーネントの使用」

- 第20.8項「コンテナ内のコンポーネントの使用」

- 第20.9項「メニューの使用」

- 第20.10項「イベント処理の使用」

- 第20.11項「アプレットの使用」

- 第20.12項「UIデバッガの使用」

20.1 Java Swingユーザー・インタフェースの実装について

JDeveloperのJavaビジュアル・エディタを使用すると、Swingコンポーネントを使用したJavaアプリケーションまたはアプレットのユーザー・インタフェース(UI)の要素を、迅速かつ容易に作成できます。UIは、コンポーネント・パレットから選択したJavaBeans(ボタン、テキスト領域、リスト、ダイアログ、メニューなど)を使用して作成します。次に、コンポーネント・プロパティの値を設定し、コンポーネント・イベントにイベント・ハンドラ・コードをアタッチします。

20.2 JDeveloperのユーザー・インタフェース設計ツールの理解

JDeveloperツールにより、Javaクラスを視覚的に設計およびプログラミングし、新規の複合コンポーネントまたは複雑なコンポーネントを生成できます。

JDeveloperのUI設計ツールには、次のものがあります。

- Javaビジュアル・エディタ。フレームまたはその他のUIコンテナ内でパネルおよびその他のUIコンポーネントを作成および配置します。Javaビジュアル・エディタにアクセスするには、ナビゲータでファイルを右クリックし、「開く」を選択します。ビジュアル・エディタを操作するには「設計」タブをクリックします。詳細は、第18.3.1項「Javaビジュアル・エディタでのコードの編集」を参照してください。

- メニュー・バー、メニュー、メニュー項目およびポップアップ・メニューのコンポーネントを作成し、編集します。メニュー・エディタは、Javaビジュアル・エディタを開いているときにコンポーネント・パレットからメニュー・コンポーネントをUIコンテナにドロップすると表示されます。また、構造ウィンドウでメニュー・コンポーネントをクリックしても、既存のメニュー・コンポーネントを編集できます。詳細は、第20.9.2項「メニュー・エディタの使用」を参照してください。

- コンポーネント・パレット: ビジュアル・コンポーネントおよび非ビジュアル・コンポーネントが格納されます。コンポーネント・パレットは、Javaビジュアル・エディタで選択しているコンポーネントに応じて表示されます。開いているファイルに対してコンポーネント・パレットを表示するには、「表示」→「コンポーネント・パレット」の順に選択します。詳細は、第11.1.4項「コンポーネント・パレットの使用方法」を参照してください。

- 構造ウィンドウ: このウィンドウには、ソース・ファイル内のすべてのコンポーネントとその関係が階層構造で表示されます。「構造」ウィンドウは、ナビゲータ・ウィンドウ下部、または、ドッキングされている場合は「表示」→「構造」の順に選択してアクセスします。詳細は、第3.11.6項「「構造」ウィンドウ」を参照してください。

- プロパティ・インスペクタ。コンポーネント・プロパティを確認および設定し、コンポーネント・イベントにメソッドを設定する際に使用します。プロパティ・インスペクタでの変更は、Javaビジュアル・エディタおよびソース・コードに視覚的に反映されます。Javaビジュアル・エディタで開いた特定のファイルに対してプロパティ・インスペクタを表示します。開いているファイルに対してプロパティ・インスペクタを表示するには、「表示」→「プロパティ・インスペクタ」の順に選択します。詳細は、第11.1.3項「プロパティ・インスペクタの使用方法」を参照してください。

ファイルに対してUI設計ツールを使用する場合、次の要件を満たす必要があります。

- Javaファイルである必要があります。

- 構文エラーが存在しない必要があります。

- publicクラスが含まれる必要があります(ファイル名がpublicクラス名と同じである必要があります)。

- 次のJDeveloperコーディング規則に従う必要があります。

- すべてのUIコントロールがjbInit()内でクラス・メンバーまたはローカル変数として宣言されます。

- すべてのUIプロパティ設定がjbInit()で実行されます。これは、JDeveloperのJavaビジュアル・エディタおよびプロパティ・インスペクタに設定を反映させるために必要です。

- 式として設定されたすべてのプロパティ設定に、メンバーUIコントロールまたは静的な値のみが含まれます。

- デフォルトのコンストラクタが必要です。

前述の要件を満たすファイルはすべて、Javaビジュアル・エディタおよびプロパティ・インスペクタを使用して視覚的に設計できます。非UIクラスを視覚的に設計することもできます。

注意:

JDeveloperダイアログでファイルを作成した場合、これらの要件は満たされています。

設計にコンポーネントを初めて追加する際に、JDeveloperのJavaビジュアル・エディタにより、クラスにデフォルトのコンストラクタであるprivate jbInit()メソッドが含まれ、このjbInit()メソッドがデフォルトのコンストラクタから正しくコールされることが確認されます。JDeveloperでこのコードが検出されない場合、追加されます。コンポーネントで必要とされるインポートも追加されます。

Javaビジュアル・エディタでファイルを開くと、JDeveloperにより構造ウィンドウ・ツリーが更新されます。たとえば、クラスにフレームおよびメニューが含まれる場合、UIおよびメニュー用のサブツリーが存在します。その他のJavaBeansコンポーネントを構造ウィンドウにドロップすると、「その他」フォルダが表示され、これらのコンポーネントをプロパティ・インスペクタで選択および編集できます。

20.3 Swingアプリケーションのルック・アンド・フィールの制御

JDeveloperには、SwingのGUIコンポーネントが組み込まれています。Swingクラスを使用すると、ユーザー・インタフェースのルック・アンド・フィールを指定できます。Javaのこの新しいプラガブルなルック・アンド・フィールを利用すると、ユーザーのWindowsまたはSolarisマシンのネイティブ・デスクトップのルック・アンド・フィールを持つアプリケーションを作成できます。また、Java Metalルック・アンド・フィールを使用して、プラットフォーム間でアプリケーションの均一なルック・アンド・フィールを保証することも可能です。

JDeveloperには、次の4つのルック・アンド・フィール・オプションが用意されています。

- Oracle

- Metal

- CDE/Motif

- Windows

UIマネージャを使用してルック・アンド・フィールを設定する場合は、次のような考慮事項もあります。

- ルック・アンド・フィール文のコード行はtry/catchブロック内にあります。コンパイルするには、この配置が必要です。

- このコードは、コンポーネントがインスタンス化される前に実行される必要があります。そのため、<Application>.java static main()メソッド内に置かれています。

- UIManagerクラスは、com.sun.java.swingパッケージ内にあります。

20.3.1 Oracleルック・アンド・フィールの変更方法

Oracleルック・アンド・フィールに変更する手順は、次のとおりです。

1. コード・エディタでアプリケーション・ファイルを開きます。

2. Mainメソッドに次のコードを追加します。

try {
UIManager.setLookAndFeel(new oracle.bali.ewt.olaf.OracleLookAndFeel());
}
catch (Exception e) {
}

Oracleルック・アンド・フィール(OLAF)のshare.jarおよびjewt4.jarファイルをクラスパスのjlibディレクトリから使用する必要があります。

20.3.2 Windowsルック・アンド・フィールの変更方法

Windowsルック・アンド・フィールに変更する手順は、次のとおりです。

1. コード・エディタでアプリケーション・ファイルを開きます。

2. Mainメソッドに次のコードを追加します。

try {
UIManager.setLookAndFeel(new
com.sun.java.swing.plaf.windows.WindowsLookAndFeel());
}
catch (Exception e) {
}

Oracleルック・アンド・フィール(OLAF)のshare.jarおよびjewt4.jarファイルをクラスパスのjlibディレクトリから使用する必要があります。

20.3.3 Metalルック・アンド・フィールの変更方法

Metalルック・アンド・フィールは、Swingコンポーネントのデフォルトです。Metalルック・アンド・フィールを使用する場合、コードを変更する必要はありません。

Metalルック・アンド・フィールに変更する手順は、次のとおりです。

1. コード・エディタでアプリケーション・ファイルを開きます。

2. Mainメソッドに次のコードを追加します。

try {
UIManager.setLookAndFeel(new
javax.swing.plaf.metal.MetalLookAndFeel());
}
catch (Exception e) {
}

注意:

Oracleルック・アンド・フィール(OLAF)のshare.jarおよびjewt4.jarファイルをクラスパスのjlibディレクトリから使用する必要があります。

20.4 Java SwingおよびAWTコンポーネントの使用

SwingおよびAWT JavaBeansコンポーネントを使用して、Javaアプリケーションまたはアプレットのユーザー・インタフェース(UI)をアセンブルします。Javaビジュアル・エディタで、ボタン、テキスト領域、リスト、ダイアログ、メニューなどのJavaBeansをコンポーネント・パレットから選択してUIを構成します。次に、コンポーネント・プロパティの値を設定し、コンポーネント・イベントにイベント・ハンドラ・コードをアタッチします。Javaクラスを視覚的に設計およびプログラミングして、新規の複合コンポーネントまたは複雑なコンポーネントを生成できます。

20.4.1 Swing JavaBeansコンポーネントの使用

Swingコンポーネントは自動的にレンダリングされる軽量コンポーネントで、AWTコンポーネントのようにWindowingリソースを使用しません。多くの場合、この種のコンポーネントには対応するAWTコンポーネントがありますが、Swingバージョンはプラットフォーム間で柔軟性および一貫性を向上できるように強化されています。

注意:

SwingコンポーネントはSwingコンテナ内の基礎となる機能性に依存します。Swing JavaBeansを使用する場合は、JFrame、Jpanelまたは基本的なSwing機能を実装する他のコンテナを使用してプログラムを作成する必要があります。

表20-1には、Swing JavaBeansコンポーネントが含まれます。

表20-1 Swing JavaBeansコンポーネント

コンポーネント

説明

JButton

単純なプッシュ・ボタン。JButtonには埋込みアイコンを使用できます。

JCheckBox

ブール値(true/false)の表示に使用する正方形のボックス。値がtrueに設定されると、このボックスにはデフォルトでチェックマークが表示されます。独自のチェックマーク・グラフィックを設定するオプションがあります。

JComboBox

AWTのChoiceコントロールと同様に、ユーザーが実行時に選択できる値のリストを表示します。JComboBoxにはプロパティeditableがあり、ユーザーが実行時に新規の値を入力できるようにします。

JEditorPane

テキストをHTML 3.2またはRTFフォーマットで表示するように特化されたJTextComponent。アプリケーションまたはアプレットのヘルプ・ページを作成可能にするためのコンポーネントです。

JLabel

テキスト文字列およびオプションのアイコンを表示できるようにするテキスト・コンポーネント。追加のプロパティを使用すると、アイコンに対するテキストの相対位置を設定できます。

JList

オブジェクトのリストを表示します。

ヒント: AWTのListコンポーネントとは異なり、JListではコンポーネントに組込みのスクロール機能がありません。リストをスクロール可能にするには、リスト・コンポーネントをJScrollPaneコンテナにドロップする必要があります。

JPasswordField

デフォルトでユーザーが入力した文字の位置にアスタリスク(*)を表示するJTextField。

JProgressBar

プロセスの完了率をグラフィカルに示す進行状況バーを表示します。

JRadioButton

このコンポーネントは、ラジオ・ボタンとして動作するように特別に設計されています。他のJRadioButtonとともにButtonGroupにグループ化されている場合は、グループからボタンを一度に1つのみ選択できます。ButtonGroupは、非ビジュアル・コンポーネントです。

JScrollBar

ユーザーが整数値の設定に使用できるグラフィック・コントロール。このコンポーネントは、水平方向または垂直方向に表示できます。

JSeparator

直線を描画するコンポーネント。JMenuでコンポーネントとして使用することを意図していますが、実際のコンポーネントであるため、UI内でコントロール・セット間を区切る直線を描画するために使用できます。JSeparatorは、垂直方向または水平方向に表示できます。

JSlider

JScrollBarと同様に、このコントロールはユーザーがグラフィック・コントロールを使用して整数値を設定できるようにします。JSliderを使用すると、大小の目盛りを設定したり、コントロールを囲む枠を表示できます。

JTable

スプレッドシート・アプリケーションのように情報を2次元のグリッドに表示します。

ヒント: AWTのListコンポーネントとは異なり、JTableにはスクロール機能が組み込まれていません。表をスクロール可能にするには、リスト・コンポーネントをJScrollPaneコンテナにドロップする必要があります。

JTextArea

1つの文字列をそれぞれが改行文字で終わる複数行に表示する、編集可能なテキスト領域。

ヒント: JTextAreaをスクロール可能にするには、JScrollPaneコンテナ内に表示する必要があります。

JTextField

1つの文字列を1行に表示する、編集可能なテキスト領域。

JTextPane

ワード・ラップ、イメージ表示およびスタイル定義が可能な、すべての機能を持つテキスト・エディタ・コントロール。

ヒント: JTextPaneをスクロール可能にするには、JScrollPaneコンテナにドロップする必要があります。

JTree

ファイル・ディレクトリなどの階層情報をツリー形式で表示します。

ヒント: AWTのListコンポーネントとは異なり、JTreeにはスクロール機能が組み込まれていません。ツリーをスクロール可能にするには、リスト・コンポーネントをJScrollPaneコンテナにドロップする必要があります。

JToggleButton

トグル・ボタンはJCheckBoxコントロールに似ています。このボタンを押す(trueに設定する)と、再び押してfalseに設定するまでtrueになっています。JToggleButtonをButtonGroupに置くと、一度にtrueに設定できるJToggleButtonはグループ内で1つのみになります。トグル・ボタンは、ツールバーにツールをアクティブな状態で表示する際に役立ちます。コンポーネント・パレットのボタンは、トグル・ボタンの一例です。

20.4.2 AWT JavaBeansの使用

AWT JavaBeansコンポーネントは、基礎となるプラットフォームの標準コントロールを使用してユーザー・インタフェースを表示します。このアーキテクチャによりAWTコンポーネントの実装が単純でわかりやすくなりますが、UIの最終的な表示の管理が制限され、柔軟性が低下します。また、AWTコンポーネントの実行にはより多くのシステム・リソースが必要です。このため、重量コンポーネントと呼ばれることがあります。Swingコンポーネントは、Javaに実装され自己レンダリングされるため、使用するシステム・リソースは少なくなります。この理由から軽量コンポーネントと呼ばれます。Swingコンポーネントの実装はより複雑になる場合がありますが、ホスト・プラットフォーム間の柔軟性および一貫性が向上します。

表20-2には、AWT JavaBeansコンポーネントが含まれます。

表20-2 AWT JavaBeansコンポーネント

コンポーネント

説明

Button

単純なプッシュ・ボタンが表示されます。

CheckBox

true/false、オン/オフのブール・コントロールです。チェック・ボックスはスタンドアロン・コンポーネントであるため、値がtrueに設定されている場合はXを含む四角形として表示されます。チェック・ボックス・グループのメンバーとして設定されている場合、チェック・ボックスは円形(ラジオ・ボタン)となります。円の中に点が含まれる場合、値がtrueに設定されていることを示します。チェック・ボックス・コンポーネントをCheckboxGroupに追加するには、そのCheckboxGroupプロパティを、このコンポーネントが属するCheckboxGroupの名前に設定します。

CheckboxGroup

Checkboxコンポーネント・セットの動作を統合するために使用される非ビジュアル・コンポーネントです。一度にtrueに設定できるのは、チェック・ボックス・グループ内の1つの項目のみです。CheckboxGroupプロパティを対応するCheckboxGroupの名前に設定することで、CheckboxコンポーネントがCheckboxGroupに追加されます。CheckboxGroupのデフォルト値を設定するには、そのSelectedCheckboxプロパティをCheckboxコンポーネントの名前に設定します。

ヒント: CheckboxコンポーネントおよびCheckboxGroupを追加する順序によっては、CheckboxGroupがCheckboxより前にインスタンス化される場合があります。正しいデフォルトが設定されるようにするには、SelectedCheckboxおよび現在の初期化文をJbInitメソッドの最下部に移動し、デフォルトが設定される前にそのすべての構成要素がインスタンス化されるようにします。

Choice

ポップアップ・メニューが表示されます。Choiceコントロールのラベルは、現在選択されている項目です。これはコンボボックスに類似しています。

Label

アプリケーションに編集不可のテキスト・ラベルが表示されます。ただし、その値はプログラムによって変更される場合があります。

List

データ項目のスクロール・リストが表示されます。ユーザーは、Listのプロパティ設定に応じて1つ以上の項目を選択できます。

MenuBar

メニュー・バーが表示されます。すべてのコンテナでMenuBarコントロールを子として追加できますが、FrameにのみsetMenubar()メソッドがあります。このメソッドは特定の場所でMenuBarの親となり、他の子の場所は干渉しません。メニュー・バーはアプレットでは使用できません。

PopupMenu

コマンド・リストを含むポップアップ・メニューが表示されます。ポップアップ・メニューはパネルに設定でき、アプレットで使用できます。メニュー作成の詳細は、第20.9項「メニューの使用」を参照してください。

Panel

コントロールのグループの表示に使用されるコンテナです。各パネルに独自のレイアウトを設定し、コンポーネントの相互の配置を管理できます。

Scrollbar

ユーザーが整数値を設定できるスライダ・コントロールです。スクロール・バーを水平または垂直に表示するよう設定できます。

ScrollPane

水平および垂直スクロール・バーを使用できるパネルのタイプであり、ScrollPane自体より大きい子コンポーネントを表示できます。

TextArea

テキストの単一文字列を複数行で表示し、各行が改行文字で終わるテキスト・コンポーネントです。テキストは上下左右にスクロールできます。

TextField

テキストの単一文字列を単一行で表示する編集可能なテキスト・コンポーネントです。

20.5 レイアウト・マネージャの使用

JDeveloperのレイアウト・マネージャを使用して、コンテナ内のコンポーネントの配置とサイズを表示のたびに制御します。レイアウト・マネージャでは、そのレイアウト・マネージャ固有の特定のルール・セットに従ってコンテナ内のコンポーネントが自動的に配置されます。

Javaプログラムは複数のプラットフォームでデプロイできます。標準的なUI設計技術を使用してUIコンポーネントの絶対位置とサイズを指定する場合は、そのUIがすべてのプラットフォームで適切に表示されるとはかぎりません。開発システムでは適切な外観が得られていたUIが、別のプラットフォームでは使用できないこともあります。この問題を解決するために、Javaでは移植可能なレイアウト・マネージャのシステムが提供されています。レイアウト・マネージャを使用すると、UIのレイアウトに関するルールと制約を移植可能な方法で指定できます。

レイアウト・マネージャには、次のメリットがあります。

- フォント、画面の解像度およびプラットフォームの違いに関係なく、コンポーネントの位置を正確に設定できます。

- 実行時に動的にサイズが変わるコンテナに対応する、インテリジェントなコンポーネント配置ができます。

- 様々なサイズの文字列を容易に調整できます。文字列が長くなっても、コンポーネントの正しい位置合せが保たれます。

Java UIコンテナでは、レイアウト・マネージャという特殊なオブジェクトを使用して、表示されるたびにコンテナ内のコンポーネントの位置とサイズが制御されます。レイアウト・マネージャでは、そのレイアウト・マネージャ固有の特定のルール・セットに従ってコンテナ内のコンポーネントが自動的に配置されます。

レイアウト・マネージャでは、コンポーネントのサイズと位置が次のように様々なファクタに基づいて設定されます。

- レイアウト・マネージャのレイアウト・ルール

- レイアウト・マネージャのプロパティ設定(存在する場合)

- 各コンポーネントに関連付けられたレイアウト制約(詳細は、第20.5.24項「レイアウト制約の理解」を参照)。

- すべてのコンポーネントに共通する特定のプロパティ(preferredSize、minimumSize、maximumSize、alignmentXおよびalignmentYなど)

- コンテナのサイズ

Javaでは、特定タイプのコンテナにデフォルトで特定のレイアウト・マネージャを使用します。

- すべてのパネル(アプレットを含む)では、FlowLayoutを使用します。

- すべてのウィンドウ(フレームおよびダイアログ・ボックスを含む)では、BorderLayoutを使用します。

Javaプログラムでコンテナを作成する場合、そのコンテナ・タイプのデフォルトのレイアウト・マネージャを受け入れるか、別のタイプのレイアウト・マネージャを指定してデフォルトをオーバーライドできます。

通常、UIを手動でコーディングする場合は、コンテナにコンポーネントを追加する前にデフォルトのレイアウト・マネージャをオーバーライドします。Javaビジュアル・エディタを使用すると、いつでもレイアウトを変更できます。JDeveloperにより必要に応じてコードが調整されます。

JDeveloperのJavaビジュアル・エディタでは、各コンテナに対してデフォルトのレイアウト・マネージャが使用されます。通常はnullのレイアウトです。デフォルト以外のレイアウト・マネージャを使用する場合は、コンテナのソース・コードに明示的にレイアウト・マネージャを追加するか、またはインスペクタでコンテナのレイアウト・プロパティ・リストからレイアウトを選択します。

注意:

Javaビジュアル・エディタを使用してレイアウト・マネージャのプロパティを変更する場合は、プロパティ・インスペクタでプロパティにアクセスできるように、コンテナのレイアウトを明示的に指定する必要があります。

コンテナに必要な設計全体に基づいてレイアウト・マネージャを選択します。レイアウトによっては、コンテナに追加した直後にコンポーネントの配置とサイズ変更を引き継ぐため、Javaビジュアル・エディタで操作しにくいものがあります。初期のレイアウト・プロトタイプ作成中にこの問題を軽減するため、JDeveloperにはnullというデフォルトのレイアウトが用意されています。このレイアウトでは、コンポーネントの配置と指定したサイズが正確に維持されます。nullを土台にすると、コンテナでのプロトタイプ作成が容易になります。その後、コンポーネントをコンテナに追加してから、設計に適した移植可能なレイアウトに切り替えることができます。

設計によっては、ネストしたパネルを使用してコンポーネントをメインのFrameにグループ化し、Frameと各パネルに各種の異なるレイアウトを使用できます。

注意:

レイアウト・マネージャを使用せずにパネルを設計する場合は、ソース・コードでレイアウト・マネージャをnullに設定できます。ただし、デプロイ時にこの設定を残さないでください。

様々なレイアウトを試して、コンテナのコンポーネントに対する効果を確認してください。選択したレイアウト・マネージャでは必要な結果が得られないことがわかった場合は、別のレイアウト・マネージャを試すか、複数のパネルを異なるレイアウトでネストして、必要な効果を得るようにします。

20.5.1 サイズ設定プロパティの理解

レイアウト・マネージャでは、様々な情報を使用してコンテナ内のコンポーネントの配置とサイズが決定されます。コンポーネントには、レイアウト・マネージャがコンポーネントを適切にレイアウトできるように一連のメソッドが用意されています。これらの全メソッドにより、コンポーネントは必要なサイズ設定をレイアウト・マネージャに伝えることができます。

表20-3のメソッドはプロパティのgetterメソッドであり、次のことを表します。

表20-3 サイズ設定プロパティ

方法

説明

getPreferredSize()

コンポーネントにより選択されるサイズ(コンポーネントを最も適切な外観で表示するための理想的なサイズ)。特定のレイアウト・マネージャのルールによっては、preferredSizeがコンテナのレイアウト時に考慮されない場合があります。

getMinimumSize()

コンポーネントを縮小しても使用可能な最小サイズ。コンポーネントのminimumSizeは、ラベルのサイズなどで制限されることがあります。ほとんどのコントロールの場合、minimumSizeはpreferredSizeと同じです。通常、レイアウト・マネージャではpreferredSizeよりもminimumSizeが考慮されます。

getMaximumSize()

このコンポーネントに使用可能な最大サイズ。これは、レイアウト・マネージャが効果的に使用できないコンポーネントにスペースを浪費しないようにするために使用されます。たとえば、BorderLayoutの場合、中央のコンポーネントのサイズを最大サイズに制限し、端のコンポーネントにスペースを与えるか、サイズ変更時に外側のウィンドウのサイズを制限できます。

getAlignmentX()

他のコンポーネントを基準とする、X軸上でのコンポーネントの相対的な位置合せ。

getAlignmentY()

他のコンポーネントを基準とする、Y軸上でのコンポーネントの相対的な位置合せ。

各レイアウト・マネージャによる前述の情報の使用方法については、第20.5.2項「JDeveloperで提供されるレイアウトの理解」に示す個別レイアウトの説明を参照してください。

20.5.2 JDeveloperで提供されるレイアウトの理解

JDeveloperには、Java AWTの標準であるBorderLayout、FlowLayout、GridLayout、CardLayoutおよびGridBagLayoutのレイアウト・マネージャが用意されています。Swingの場合は、BoxLayout2およびOverLayout2が含まれています。

JDeveloperでは、列および行のグリッドにコンポーネントを配置するグリッドベース・コンテナであるFormLayoutも提供しています。これにより、指定のコンポーネントの範囲を複数の列または行とすることができます。FormLayoutは、JDeveloperに組み込まれているオープン・ソース・フレームワークであるJGoodies Formsによって提供されます。

さらに、JDeveloperは次のカスタム・レイアウトを提供しています。

- XYLayout。コンテナに挿入したコンポーネントを元のサイズおよび位置(xy座標)に保持します。

- PaneLayout。SplitPanelコントロールで使用します。

- VerticalFlowLayout。FlowLayoutにきわめて類似していますが、コンポーネントを水平ではなく垂直に配置する点が異なります。

独自のカスタム・レイアウトを作成したり、sun.awtクラス内またはサード・パーティのレイアウト・マネージャなどにおけるその他のレイアウトを試すことができます。これらの多くはWebのパブリック・ドメインです。Javaビジュアル・エディタでカスタム・レイアウトを使用する場合、Javaヴィジュアル・エディタでレイアウトを使用できるように、Javaヘルパー・クラス・ファイルの提供が必要な場合があります。

20.5.3 BorderLayoutの使用

BorderLayoutは、上、下、右、左および中央の領域にコンテナのコンポーネントを配置します。

- 上および下のコンポーネントには高さの推奨値が指定され、コンテナの幅全体にわたって拡張されます。

- 右および左のコンポーネントには幅の推奨値が指定され、上および下の領域に挟まれた領域を埋めるよう垂直に拡張されます。

- 中央のコンポーネントは、残りのすべての領域を埋めるよう拡張されます。

図20-1 BorderLayout

図20-1に示すBorderLayoutは、コンテナの1つ以上の境界線にコンポーネントを適用し、コンテナの中央を1つのコンポーネントで埋める場合に効果的です。また、単一コンポーネントでコンテナを完全に埋めるために使用するレイアウトでもあります。

BorderLayoutは、UI内の大き目のコンテナに最も有用なレイアウト・マネージャであることがわかります。BorderLayoutの各領域内にパネルをネストしてから、これらの各パネルに各種レイアウトのその他のパネルを移入することで、非常に複雑なUI設計を実現できます。

コンポーネントは、constraintsプロパティに基づき、BorderLayout内の5つの領域のいずれかに配置されます。インスペクタにおいて、コンポーネントのconstraintsプロパティを、「上」、「下」、「右」、「左」または「中央」のいずれかの値に設定できます。

たとえば、BorderLayoutコンテナの最上部全体にツールバーを配置するには、ボタンのFlowLayoutパネルを作成し、これをコンテナの「上」領域に配置します。このためには、パネルを選択し、インスペクタでconstraintsプロパティに対し「上」を選択します。

constraintsプロパティを設定するには、次のようにします。

1. Javaビジュアル・エディタまたは構造ウィンドウのいずれかで、配置するコンポーネントを選択します。

2. インスペクタでconstraintsプロパティを選択し、その値フィールドをクリックします。

3. constraintsプロパティ・ドロップダウン・リストの下矢印をクリックし、コンポーネントを挿入する領域を選択します。

4. [Enter]を押すか、プロパティ・インスペクタ内の他の任意の場所をクリックし、コードに対する変更をコミットします。

Javaビジュアル・エディタを使用して、既存のコンテナのレイアウトをBorderLayoutに変更した場合、境界線近くのコンポーネントは最も近い境界線に接するよう自動的に移動します。中央に近いコンポーネントは「中央」に設定される場合があります。コンポーネントが意図しない場所に移動する場合、インスペクタでconstraintsプロパティを訂正するか、Javaビジュアル・エディタで新しい場所にコンポーネントをドラッグできます。

5つの各領域には任意の数のコンポーネント(またはコンポーネントのパネル)を含めることができますが、最上位のコンポーネントが不透明でない場合を除いて、同じ領域内にある下位コンポーネントはすべて最上位のコンポーネントによって覆われます。

複数のコンポーネントおよびBorderLayoutの使用に関する一般的なガイドラインを次に示します。

- コンテナ内に含まれるコンポーネントが5つ以下になるようにします。

- 最初にXYLayoutを使用し、コンポーネントを目的の場所付近に移動して、各境界線近くにはコンポーネントが1つのみとなるようにします。

- 1つの領域内の複数のコンポーネントを変換前にパネルにグループ化します。

注意:

BorderLayoutでは、コンポーネントをコンテナに追加する順序は無視されます。

デフォルトにより、BorderLayoutが管理するコンポーネント間にギャップは挿入されません。ただし、インスペクタを使用して、コンテナに関連付けられたBorderLayoutに対し、水平または垂直のギャップをピクセル単位で指定できます。

BorderLayoutコンポーネントの周囲のギャップを変更するには、「構造」ウィンドウで、(BorderLayoutが管理するコンテナの真下に表示される) BorderLayoutオブジェクトを選択してから、プロパティ・インスペクタで、hgapおよびvgapプロパティのピクセル値を変更します。

20.5.4 BoxLayout2の使用

BoxLayout2では、コンテナのコンポーネントを垂直にも水平にも配置できます。コンポーネントをコンテナにネストすることで、複雑なレイアウトを実現できます。図20-2では、垂直に配置した3つのパネル(P1、P2、P3)を示しています。各パネルには2つのボタンが垂直に配置されています。

図20-2 BoxLayout2

コンポーネントにBoxLayout2を使用する場合、主軸がY軸(最上部に配置)とX軸(左から右への配置)のどちらであるかを指定します。コンポーネントは、左から右(または上から下)に、コンテナへの追加と同じ順序で配置されます。

BoxLayout2では、推奨される幅(左から右へのレイアウトの場合)または高さ(上から下へのレイアウトの場合)でコンポーネントが配置されます。コンテナがサイズ変更された場合、コンポーネントは折り返されません。

水平レイアウトですべてのコンポーネントの高さが同じでない場合、BoxLayout2では、すべてのコンポーネントが最も高いコンポーネントと同じ高さになります。特定のコンポーネントでこれが不可能である場合、BoxLayout2では、そのコンポーネントのY軸への位置合せに従ってコンポーネントが垂直に位置合せされます。

垂直の位置合せでコンポーネントがすべて同じ幅でない場合、BoxLayout2では、列内のすべてのコンポーネントが最も幅の広いコンポーネントと同じ幅になります。これに失敗した場合、X軸への位置合せに従ってコンポーネントが水平に位置合せされます。

20.5.5 CardLayoutの使用

CardLayoutでは、コンポーネント(通常はパネル)が1組のカードのようにスタック内に相互に重ねられます。一度に1つのコンポーネントのみが表示され、別のコントロールを使用してパネルを順にめくり、最上位にくるパネルを選択できます。

CardLayoutは、異なる時点で別のコンポーネントが含まれる可能性のある領域がある場合に使用すると効果的なレイアウトです。これによって、同じ表示領域を共有する必要がある2つ以上のパネルを管理できます。

20.5.5.1 CardLayoutコンテナの作成方法

CardLayoutの使用例は、JDeveloperのウィザードで参照できます。「取消」、「次へ」および「戻る」ボタンにより、次に表示されるパネルが制御されます。

CardLayoutコンテナを作成するには、次のようにします。

1. 新規アプリケーションを作成します。

2. ナビゲータでフレーム・ファイルを右クリックし、「開く」を選択します。

3. Javaビジュアル・エディタでUIにパネルを追加し、そのlayoutプロパティをCardLayoutに設定します。詳細は、第20.7.9項「パネルの作成方法」を参照してください。

4. CardLayoutパネルに新規パネルをドロップします。この新規パネルによってCardLayoutパネルが完全に埋まります。

注意:

CardLayoutパネルに追加した最初のコンポーネントによって、常にパネルが埋まります。

5. この新規パネルのlayoutプロパティをXYLayoutに設定し、必要なコンポーネントを追加します。

6. コンポーネント・パレットでパネルをクリックしてから、「構造」ウィンドウでコンポーネント・ツリー内のCardLayoutパネルをクリックし、これをCardLayoutパネルのスタックに追加します。

7. この2つ目のパネルをXYlayoutに設定し、これにコンポーネントを追加します。

8. スタックに追加する新規パネルごとにステップ6および7を繰り返します。

20.5.5.2 CardLayoutコンテナの周囲のギャップの指定方法

「構造」ウィンドウを使用して、CardLayout内のコンポーネント・スタックを囲む水平および垂直ギャップの量を指定できます。

CardLayoutコンテナの周囲のギャップを指定するには、次のようにします。

1. 構造ウィンドウで、cardLayoutが管理するコンテナの真下に表示されているcardLayoutオブジェクトを選択します。

図20-3 cardLayout

2. インスペクタで、hgap(水平ギャップ)またはvgap(垂直ギャップ)プロパティをクリックします。

3. ギャップに必要なピクセル数を入力します。

4. [Enter]を押すか、インスペクタ内の他の任意の場所をクリックして変更を登録します。

20.5.6 FlowLayoutの使用

FlowLayoutでは、各コンポーネントのpreferredSizeを使用して、コンポーネントが行内に左から右へ、続いて上から下へ配置されます。FlowLayoutでは、1行にできるだけ多くのコンポーネントが並べられた後、新しい行に移動します。通常、FlowLayoutはパネル上にボタンを配置する際に使用します。

図20-4 FlowLayout

注意:

注意: コンポーネントを水平ではなく垂直に配置するパネルが必要である場合、第20.5.21項「VerticalFlowLayoutの使用」を参照してください。

FlowLayoutコンテナの行内にコンポーネントを配置する方法を選択するには、左、右または中央の位置合せの理由を指定します。また、コンポーネントと行の間のギャップの量(水平および垂直間隔)を指定できます。Javaビジュアル・エディタを使用している場合、alignmentおよびgapプロパティを両方とも変更するにはインスペクタを使用します。

位置合せ

- LEFT: コンテナの左端でコンポーネントをグループ化します。

- CENTER - コンテナの中央にコンポーネントを配置します。

- RIGHT: コンテナの右端でコンポーネントをグループ化します。FlowLayoutでのデフォルトの位置合せはCENTERです。
位置合せを変更するには、「構造」ウィンドウでFlowLayoutオブジェクトを選択してから、プロパティ・インスペクタでalignmentプロパティの値を次のように指定します。

- 0=LEFT

- 1=CENTER

- 2=RIGHT

ギャップ

FlowLayoutにおけるコンポーネント間のデフォルトのギャップは5ピクセルです。

水平または垂直のギャップを変更するには、構造ウィンドウでFlowLayoutオブジェクトを選択してから、インスペクタでhgap(水平ギャップ)またはvgap(垂直ギャップ)プロパティのピクセル値を変更します。

コンポーネントの順序

FlowLayoutコンテナ内のコンポーネントの順序を変更するには、コンポーネントを新しい場所にドラッグするか、コンポーネントを右クリックし、「最初へ移動」または「最後へ移動」を選択します。

20.5.7 FormLayoutの使用

FormLayoutでは、列および行のグリッドにコンポーネントが配置されます。これによって、指定のコンポーネントの範囲を複数の列または行とすることができます。列および行は、幅または高さが同じである必要はありません。

注意:

FormLayoutは、JDeveloperに組み込まれているオープン・ソース・フレームワークであるJGoodies Formsによって提供されます。FormLayoutレイアウト・マネージャを追加するには、現在のプロジェクトのライブラリにJGoodies Formsライブラリを追加します。

次の列および行のプロパティを変更できます。列および行は、サイズ(必須)、デフォルトの位置合せ(オプション)およびサイズ変更の動作(オプション)の3つの部分で指定されます。これらのプロパティを編集するには、Javaビジュアル・エディタで、マウスをドラッグしてFormLayoutのグリッド全体を選択し、選択したグリッド内で右クリックして「列プロパティ」または「行プロパティ」を選択します。

位置合せ

列または行におけるコンポーネントのデフォルトの位置合せ。FormLayout内のデフォルトの位置合せは「最大サイズ化」です。

サイズ

列の幅または行の高さ。定数サイズ、コンポーネント・サイズ(最小値または推奨値)またはバインド・サイズ(最小値または最大値)を指定できます。定数サイズは、値および単位で指定します。コンポーネント・サイズは、列または行についてそこに含まれるコンポーネントの最大サイズを指定するものであり、コンポーネントの最小サイズまたは推奨サイズによって測定されます。バインド・サイズでは、(サイズ変更前の)列および行の開始サイズについて上限および下限を指定できます。これにより、列または行の最小または最大サイズが確保されます。列または行の拡張が可能である場合、最大サイズによって列または行のサイズが制限されることはない点に注意してください(サイズ変更の動作を参照)。

サイズ変更

サイズ変更を許可するかどうかを制御します。レイアウト・コンテナが推奨サイズより大きくなると、列および行は拡張可能です。デフォルトではサイズ変更は許可されません。

ギャップ

デフォルトでは、コンポーネント間にギャップが挿入されます。

注意:

ギャップのサイズは現在固定されており、プロパティ・インスペクタで編集できません。

コンポーネントの順序

FormLayoutコンテナ内のコンポーネントの順序を変更するには、コンポーネントを新しい場所にドラッグします。

20.5.8 GridLayoutの使用

GridLayoutでは、行および列内のセルのグリッドにコンポーネントが配置されます。GridLayoutでは各コンポーネントが拡張され、セル内の使用可能な領域が埋まります。各セルはサイズが完全に同じであり、グリッドは均一です。GridLayoutコンテナをサイズ変更すると、コンテナに使用できる領域が与えられて、GridLayoutによりセルができるだけ大きくなるようセルのサイズが変更されます。

図20-5 GridLayout

テンキーまたはツールバーなど、コンポーネントを等しいサイズにする必要があるコンテナを設計している場合、GridLayoutを使用します。

グリッド内の列および行の数を指定できますが、ゼロにできるのは行または列の一方のみです。少なくともどちらか一方に値を指定し、GridLayoutマネージャがもう一方を計算できるようにする必要があります。

たとえば、15のコンポーネントが含まれるグリッドに対して4列およびゼロ行を指定した場合、GridLayoutでは4列および4行が作成され、最後の行には3つのコンポーネントが含められます。または、3行およびゼロ列を指定した場合、GridLayoutでは3行および5列が作成されます。

行および列の数だけでなく、水平ギャップ(hgap)および垂直ギャップ(vgap)プロパティを変更して、セル間のピクセル数を指定できます。デフォルトの水平および垂直ギャップはゼロです。

GridLayoutコンテナのプロパティ値を変更するには、「構造」ウィンドウでGridLayoutオブジェクトを選択してから、プロパティ・インスペクタで、rows、cols、hgap、またはvgapプロパティの値を編集します。

20.5.9 GridBagLayoutの使用

GridBagLayoutはきわめて柔軟かつ強力なレイアウトであり、グリッド内のコンポーネントのレイアウトをGridLayoutよりも厳密に制御します。GridBagLayoutでは、コンポーネントが動的な矩形グリッドに水平および垂直に配置されます。各コンポーネントのサイズが同じである必要はなく、複数のセルを埋めることもできます。

図20-6 GridBagLayout

GridBagLayoutでは、各コンポーネントの制約と最小サイズ、およびコンテナの優先サイズに基づいてコンポーネントの位置が決定されます。

このトピックで使用する用語の意味は次のとおりです。

- コンポーネントのセルは、コンポーネントが占めているグリッド・セルのセット全体を指します。

- コンポーネントの表示領域は、コンポーネントが占めているセルのうち、コンポーネントの外部余白(空間)に使用されていないすべてのスペースを指します。

GridBagLayoutは複合グリッドに対応できますが、コンポーネントを小さいパネルに編成してGridBagLayoutコンテナ内でネストする方が正常に(かつ予測どおりに)動作します。このようにネストしたパネルでは、他のレイアウトを使用したり、必要に応じてさらにコンポーネント・パネルを含めることができます。この方法には、次の2つのメリットがあります。

- ボタン・バーのような特定の領域に、より適切なレイアウトを使用できるため、コンポーネントの配置とサイズを個別に正確に制御できます。

- 使用するセルの数が少なくなり、GridBagLayoutが簡素化されて制御が容易になります。

一方、GridBagLayoutの方が使用するコンテナ数が多いため、他のレイアウト・マネージャを使用した場合に比べてプログラムのメモリー使用量が大きくなります。

20.5.9.1 GridBagLayout制約の理解

GridBagLayoutでは、GridBagConstraintsオブジェクトを使用してGridBagLayoutコンテナ内の各コンポーネントのレイアウト情報を指定します。各コンポーネントとGridBagConstraintsオブジェクトには1対1の関連があるため、GridBagConstraintsオブジェクトはコンテナのコンポーネントごとにカスタマイズする必要があります。

GridBagLayoutのコンポーネントには、次の制約があります。

- anchor

- fill

- gridx、gridy

- gridwidth、gridheight

- ipadx、ipady

- weightx、weighty

GridBagConstraintsを使用すると、次のことを制御できます。

- 各コンポーネントの位置(絶対または相対)。各コンポーネントのサイズ(絶対または相対)。

- 各コンポーネントがまたがるセルの数。

- 各セルの未使用の表示領域の埋め方。

- 各コンポーネントの内部余白と外部余白の大きさ。

- どのコンポーネントが使用可能な追加のスペースを利用するかを制御するための、各コンポーネントに対するスペース配分の割当て方法。これにより、コンテナのサイズを変更する際のコンポーネントの動作を制御します。

Javaビジュアル・エディタでの使用と設定に関するヒントなど、各制約の詳細は、それぞれの制約に関する各トピックを参照してください。

20.5.9.2 ソース・コードでのGridBagConstraintsの手動設定

Javaビジュアル・エディタを使用してGridBagLayoutコンテナを設計する場合、JDeveloperではコンテナに追加するコンポーネントごとに常に新規のGridBagConstraints2オブジェクトが作成されます。GridBagConstraintsはGridBagConstraintsから導出され、GridBagConstraintsの11のプロパティをすべて使用するコンストラクタを持つため、Javaビジュアル・エディタで生成されるコードを単純化できます。

次に例を示します。

bevelPanel1.add(textFieldControl3, new GridBagConstraints2(0, 5, 6, 2, 1.0, 0.0,
GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, new Insets(0, 24, 0, 0), 150, 0));
bevelPanel1.add(checkboxControl1, new GridBagConstraints2(7, 5, 4, 1, 0.0, 0.0,
GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(8, 29, 0, 24), 18, -11));

GridBagConstraints2コンストラクタのパラメータは、ソース・コード内で直接変更するか、制約プロパティ・エディタを使用して値を変更できます。

GridBagLayoutコンテナを手動でコーディングして作成する場合は、単にGridBagLayoutコンテナごとにGridBagConstraintsオブジェクトを1つ作成します。GridBagLayoutでは、コンテナに追加したコンポーネントにGridBagConstraintsのデフォルト値が使用されるか、または最後に変更された値が再利用されます。コンテナに追加するコンポーネントで特定の制約に異なる値を使用する場合は、そのコンポーネントの新しい制約値を指定します。この新しい値は、以降のコンポーネントに対しても、再変更するまで有効となります。

注意:

GridBagLayoutのこのコーディング方法は最も単純ですが(前に追加したコンポーネントの制約値が再利用されます)、そのコンテナをJavaビジュアル・エディタで視覚的に編集することはできません。

20.5.9.3 Javaビジュアル・エディタで使用する既存のGridBagLayoutコードの変更

前にGridBagConstraintsオブジェクトの1つを使用してGridBagLayoutコンテナを手動でコーディングしている場合、そのコンテナをJavaビジュアル・エディタで編集するにはコードを次のように変更する必要があります。

- コンテナに追加するコンポーネントごとにGridBagConstraints2オブジェクトを作成する必要があります。

- GridBagConstraints2オブジェクトには、前述した11の制約値それぞれのパラメータを含む大きいコンストラクタが必要です。

20.5.9.4 Javaビジュアル・エディタでのGridBagLayoutの視覚的な設計

GridBagLayoutは、複雑ですが便利なレイアウト・マネージャです。JDeveloperのJavaビジュアル・エディタには、GridBagLayoutを容易に設計および制御できるように、制約プロパティ・エディタ、グリッド、選択したコンポーネントのポップアップ・メニューなどの機能も用意されています。

Javaビジュアル・エディタでGridBagLayoutを設計するには2つの方法があります。つまり、GridBagLayoutパネルにコンポーネントを追加することで新規に設計する方法と、別のレイアウト(XYLayoutなど)を使用してJavaビジュアル・エディタでパネルのプロトタイプを作成し、必要に応じてコンポーネントの配列とサイズをすべて指定した後でGridBagLayoutに変換する方法です。この方法を使用すると、設計作業の所要時間を大幅に短縮できます。

どちらの方法を使用する場合でも、ネストしたパネルを利用して(詳細は、第20.5.33項「ネストしたコンテナおよびレイアウトの使用」を参照)、コンポーネントをグループ化し、これらを内から外へ構築することをお薦めします。これらのパネルを使用してGridBagLayoutコンテナの大部分を定義すると、GridBagLayout設計が簡素化され、グリッドのセル数とGridBagConstraintsを必要とするコンポーネントの数を減らすことができます。

20.5.10 GridBagLayoutへの変換

レイアウトのプロトタイプを最初に別のレイアウト内に作成する場合、最初に配置するときにパネルとコンポーネントを慎重に(特に左と上で)位置合せすれば、GridBagLayoutへの変換がはるかに明確かつ容易になります。実際にはグリッドを設計するため、コンポーネントを想像上のグリッド内に配置し、ネストしたパネルを使用して行数と列数を最小限に抑えるように注意してください。プロトタイプの作成にXYLayoutを使用すると、コンポーネントのポップアップ・メニュー(Javaビジュアル・エディタでコンポーネントを右クリックしてアクセス)でコンポーネント位置合せ機能を利用できます。

Javaビジュアル・エディタでは設計がGridBagLayoutに変換されるため、コンテナをGridBagLayoutに変更する前のコンポーネントの配置に基づいて、コンポーネントに制約値が割り当てられます。微調整が必要な場合があります。

GridBagLayoutへの変換により、特定のタイプのコンポーネント(テキスト領域、フィールド、グループ・ボックスまたはリストなど、通常は実行時にコンテナが拡大されるにつれてサイズが大きくなると予想されるコンポーネント)にweight制約が割り当てられます。GridBagLayoutに変換した後で設計の調整が必要になった場合は、最初にコンポーネントからweight制約をすべて削除(すべてを0に設定)すると、タスクが容易になります。

コンテナ内のすべてのコンポーネント間には複雑な相互作用があるため、0より大きいweight制約値を持つコンポーネントが1つでも存在すると、Javaビジュアル・エディタでサイズ変更動作を予測するのは困難です。

weight制約付きのコンポーネントを含むGridBagLayoutを見つけるのは簡単です。これは、コンポーネントがコンテナの中央に集まることはないためです。かわりに、コンポーネントがコンテナの端まで最大化されます。

ヒント:

GridBagLayout内のコンポーネントからweightをすべて削除すると、次のいずれかの動作が発生します。

- コンテナが大きくてグリッドが十分に収まる場合は、すべてのコンポーネントがコンテナの中央に集まり、グリッドの端の周囲に余分なスペースができます。

- コンテナが小さすぎてコンポーネントが収まらない場合、グリッドはコンテナの端を超えて拡張され、コンテナの端からはみ出したコンポーネントは参照できなくなります。コンポーネントがすべて収まるまで、コンテナのサイズを拡大してください。設計中のGridBagLayoutコンテナがメインUI frameの中央にある単一パネルの場合は、frameのサイズを拡大します。このコンテナのサイズは、すべてのコンポーネントの制約を設定し終わった後で最終的なサイズに変更できます。

20.5.11 GridBagLayoutコンテナへのコンポーネントの追加

GridBagLayoutの作成時に新規GridBagLayoutコンテナにすべてのコンポーネントを追加する方法をとる場合は、次のように特定の動作を予想する必要があります。

- すべてのコンポーネントのデフォルトのweight制約は0 (ゼロ)であるため、コンテナに最初のコンポーネントを追加すると、コンテナ中央にminimumSizeで配置されます。1行および1列で構成されるグリッドができます。

- 次に追加するコンポーネントは、クリックした場所に応じて隣接するセルに配置されます。最初のコンポーネントの下をクリックすると、その列の次の行に移動します。コンポーネントの右側をクリックすると、同じ行の次の列に移動します。以降のコンポーネントもすべて同じ方法で追加され、1つ追加するたびにセルの数が1つずつ増加します。

- コンポーネントまたはコンポーネントを含むセルをいくつか配置した後、マウスでコンポーネントを新規のセル位置にドラッグするか、制約プロパティ・エディタでgridxおよびgridy制約を変更できます。

- グリッド数がコンテナ数よりも少なければ、追加するコンポーネントは数に関係なくすべてがコンテナ中央に集まります。より大きいコンテナが必要な場合は、単にJavaビジュアル・エディタで拡大します。

- 数行を追加し、設計が特定数の列に適切に収まった後、コンポーネント数が奇数である必要のある1行に気づいた場合は、1行全体を占めている行にパネルをドロップし、そのパネル内で別のレイアウトを使用して必要な外観にすることを検討してください。

20.5.12 制約プロパティ・エディタでのGridBagConstraintsの設定方法

GridBagLayoutの「制約」プロパティ・エディタを使用すると、Javaビジュアル・エディタで一部のGridBagConstraintsを指定でき、ソース・コードを編集する必要がありません。

図20-7 制約エディタ

「制約」プロパティ・エディタを制約の設定に使用する大きなメリットの1つは、複数のコンポーネントの制約を同時に変更できることです。たとえば、GridBagLayoutコンテナ内のすべてのボタンに同じ内部余白を使用する場合は、[Shift]キーを押しながらボタンを1つずつ選択し、「制約」プロパティ・エディタを開いて制約を編集できます。

「制約」プロパティ・エディタを使用する手順は、次のとおりです。

1. 「構造」ウィンドウまたはJavaビジュアル・エディタで、GridBagLayoutコンテナ内で変更するコンポーネントを選択します。

2. プロパティ・インスペクタでconstraintsプロパティを選択し、「値」フィールドをクリックします。

3. プロパティ・エディタで必要な制約を設定して「OK」をクリックします。

20.5.13 グリッドの表示

Javaビジュアル・エディタにはオプションのグリッドが表示され、レイアウトに含まれる各セルおよびコンポーネントの操作結果を正確に確認できます。

- このグリッドを表示するには、GridBagLayoutコンテナ内でコンポーネントを右クリックして「グリッドの表示」を選択します。

- 「グリッドの表示」の選択時にグリッドを一時的に非表示にするには、GridBagLayoutコンテナに含まれていないコンポーネント(GridBagLayoutコンテナ自体を含む)をクリックします。これにより、グリッドが表示されなくなります。グリッドが表示されるのは、GridBagLayoutコンテナ内のコンポーネントが選択されている場合のみです。

- グリッドを永続的に非表示にするには、コンポーネントを右クリックして再度「グリッドの表示」を選択します。

20.5.14 マウスによる制約の変更

Javaビジュアル・エディタでは、マウスを使用してコンポーネント全体をドラッグするか、コンポーネントの各種サイズ変更ニブを操作して一部の制約を設定できます。制約を視覚的に設定する手順は、制約に関する以降の各トピックを参照してください。

20.5.15 GridBagLayoutのポップアップ・メニューの使用

GridBagLayoutコンポーネントを右クリックするとポップアップ・メニューが表示されます。このメニューから制約プロパティ・エディタの一部のプロパティに容易にアクセスし、特定の制約をすばやく設定または削除できます。

表20-4 GridBagLayoutのポップアップ・メニュー・コマンド

メニュー・コマンド

アクション

余白の削除

選択したコンポーネントのサイズ・パディング値(ipadxおよびipady)が0 (ゼロ)に設定されます。

制約

選択したGridBagLayoutコンポーネントの「制約」ポップアップ・エディタが表示されます。

水平方向に最大サイズ化

コンポーネントのfill制約の値がHORIZONTALに設定(OR)されます。コンポーネントが拡張され、セルが水平方向に最大化されます。fillがVERTICALだった場合、制約はBOTHに設定されます。

垂直方向に最大サイズ化

コンポーネントのfill制約の値がVERTICALに設定(OR)されます。コンポーネントが拡張され、セルが垂直方向に最大化されます。fillがHORIZONTALだった場合、制約はBOTHに設定されます。

最大サイズ化の削除

コンポーネントのfill制約の値がNONEに変更されます。

水平方向のスペース配分

コンポーネントのweightx制約の値が1.0に設定されます。

垂直方向のスペース配分

コンポーネントのweighty制約の値が1.0に設定されます。

スペース配分の削除

コンポーネントのweighty制約とweighty制約の値が両方とも0.0に設定されます。

20.5.16 GridBagConstraints

この項では、各GridBagConstraintsについて個別に説明します。各制約の定義、有効な値とデフォルトの値、その制約をJavaビジュアル・エディタで視覚的に設定する方法について説明します。

anchor

コンポーネントが表示領域よりも小さい場合は、anchor制約を使用し、レイアウト・マネージャに対して領域内のコンポーネントの配置場所を指示します。

anchor制約は、表示領域内のコンポーネントにのみ、そのコンポーネントのfill制約に応じて影響します。たとえば、コンポーネントのfill制約値がGridBagConstraints.BOTH (表示領域を水平方向と垂直方向に塗りつぶす)の場合、コンポーネントは使用可能な領域全体を使用するため、anchor制約は無効です。anchor制約を有効にするには、fill制約の値をGridBagConstraints.NONE、GridBagConstraints.HORIZONTALまたはGridBagConstraints.VERTICALに設定します。

有効な値は次のとおりです。

GridBagConstraints.CENTER

GridBagConstraints.NORTH

GridBagConstraints.NORTHEAST

GridBagConstraints.EAST

GridBagConstraints.SOUTHEAST

GridBagConstraints.SOUTH

GridBagConstraints.WESTGridBagConstraints.SOUTHWEST

GridBagConstraints.NORTHWEST

デフォルト値: GridBagConstraints.CENTER

Javaビジュアル・エディタでanchor制約を設定するには、次のようにします。

セルよりも小さいコンポーネントのanchorは、マウスを使用して設定できます。移動可能なツールバーをドッキングする場合と同様に、単にコンポーネントをクリックし、表示領域の端にある目的の場所へドラッグします。たとえば、ボタンをセルの左上隅に配置指定するには、ボタンの中央でマウスをクリックし、ボタンの左上隅がセルの左上隅に接するまでドラッグします。これにより、anchor制約の値がNorthWestに設定されます。

anchor制約は、制約プロパティ・エディタでも次の手順で指定できます。

1. Javaビジュアル・エディタでコンポーネントを選択します。

2. プロパティ・インスペクタで、「constraints」プロパティをクリックして「制約エディタ」を表示します。

3. アンカー領域で、anchor制約に必要な値を選択して「OK」をクリックします。

fill

コンポーネントの表示領域がコンポーネントに必要なサイズよりも大きい場合は、fill制約を使用し、レイアウト・マネージャに対して表示領域でコンポーネントに使用する部分を指示します。anchor制約の場合と同様に、fill制約は独自の表示領域内のコンポーネントにのみ影響します。fillはレイアウト・マネージャに対し、コンポーネントを拡張して与えられた領域全体を埋めるように指示します。

有効な値は次のとおりです。

GridBagConstraints.NONE

(コンポーネントのサイズは変更されません。)

GridBagConstraints.BOTH

(コンポーネントはサイズ変更され、水平方向と垂直方向の両方で領域全体に収まるように最大サイズ化されます。)

GridBagConstraints.HORIZONTAL

(コンポーネントはサイズ変更され、領域に収まるように水平方向でのみ最大サイズ化されます。)

GridBagConstraints.VERTICAL

(コンポーネントはサイズ変更され、領域に収まるように垂直方向でのみ最大サイズ化されます。)

デフォルト値: GridBagConstraints.NONE

Javaビジュアル・エディタでfill制約を指定するには、次のようにします。

コンポーネントのfill制約を最も短時間で指定する方法は、Javaビジュアル・エディタでコンポーネントのポップアップ・メニューを使用することです。

1. Javaビジュアル・エディタでコンポーネントを右クリックしてポップアップ・メニューを表示します。

2. 次のいずれか1つを実行します。

- 「水平方向に最大サイズ化」を選択して値をHORIZONTALに設定します。

- 「垂直方向に最大サイズ化」を選択して値をVERTICALに設定します。

- 「水平方向に最大サイズ化」と「垂直方向に最大サイズ化」の両方を選択し、値をBOTHに設定します。

- 「最大サイズ化の削除」を選択して値をNONEに設定します。

fill制約は制約エディタでも指定できます。

1. プロパティ・インスペクタで、「constraints」プロパティをクリックして「制約エディタ」を表示します。

2. 「最大サイズ化」領域で、fill制約に必要な値を選択して「OK」をクリックします。

gridwidth、gridheight

この2つの制約を使用して、コンポーネントで使用する1行のセル数(gridwidth)または1列のセル数(gridheight)を指定します。この制約の値は、ピクセルではなくセル数で表されます。

有効な値は次のとおりです。

gridwidth=nn、gridheight=nn

(nnは、セルの列数または行数を表す整数です。)

GridBagConstraints.RELATIVE (-1)

このコンポーネントを行(gridwidth)または列(gridheight)の最後のコンポーネントの横に配置するように指定します。GridBagConstraints.RELATIVEがあるコンポーネントが、最後のセルを除く残りすべてのセルを占めます。たとえば、6列で構成される行では、コンポーネントが第3列から始まる場合、gridwidthがRELATIVEであれば第3、第4および第5列を占めることになります。

GridBagConstraints.REMAINDER (0)

このコンポーネントが行(gridwidth)または列(gridheight)の最後のコンポーネントになるように指定します。

デフォルト値: gridwidth=1, gridheight=1

Javaビジュアル・エディタでgridwidthおよびgridheight制約を指定するには、次のようにします。

gridwidthおよびgridheight制約の値は、制約プロパティ・エディタで指定できます。

1. プロパティ・インスペクタで、「constraints」プロパティをクリックして「制約エディタ」を表示します。

2. 「グリッド位置」領域で、「幅」フィールドにgridwidthの値を入力するか、「高さ」フィールドにgridheightの値を入力します。コンポーネントが行または列に占めるセルの数を指定します。

- 値をRELATIVEにする場合は、-1を入力します。

- 値をREMAINDERにする場合は、0を入力します。

マウスを使用してコンポーネントのサイズを隣接する空のセルにあわせて調整すると、gridwidthまたはgridheightを変更できます。

gridx、gridy

この2つの制約を使用して、コンポーネントの左上隅のグリッド・セルの位置を指定します。たとえば、gridx=0は左端の列、gridy=0は先頭の行になります。したがって、制約gridx=0およびgridy=0を持つコンポーネントは、グリッドの第1セル(左最上部)に配置されます。

GridBagConstraints.RELATIVEでは、次のように、コンポーネントを直前のコンポーネントに対する相対位置に配置するように指定します。

- gridxとともに使用すると、このコンポーネントを最後に追加したコンポーネントの右隣に配置するように指定できます。

- gridyとともに使用すると、このコンポーネントを最後に追加したコンポーネントの直下に配置するように指定できます。

有効な値は次のとおりです。

gridx=nn、gridy=nn

GridBagConstraints.RELATIVE (-1)

GridBagLayoutがサポートする行数と列数の最大値は512です。したがって、XおよびYには512以下の値を指定する必要があります。

デフォルト値:

gridx=0、gridy=0

Javaビジュアル・エディタでグリッド・セル位置を指定するには、次のようにします。

マウスを使用して、コンポーネントの左上隅が占めるセルを指定できます。コンポーネントの左上隅の付近をクリックし、新規セルにドラッグします。複数のセルを占めるコンポーネントを移動する場合は、コンポーネントを選択するときに必ず左上のセルをクリックしてください。そのコンポーネントの他の制約に指定されている値が原因で、コンポーネントをマウスで新規セルに移動すると、他の制約の値が変化することがあります。たとえば、コンポーネントが占めるセルの数が変化することがあります。他の制約を誤って変更することなくgridxおよびgridy制約を正確に指定するには、制約プロパティ・エディタを使用します。

1. プロパティ・インスペクタで、「constraints」プロパティをクリックして「制約エディタ」を表示します。

2. 「グリッド位置」領域で、「X」フィールドにgridx値の列番号を入力するか、「Y」フィールドにgridy値の行番号を入力します。値をRELATIVEにする場合は、-1を入力します。

注意:

マウスを使用してコンポーネントを使用セルに移動する場合、Javaビジュアル・エディタでは、2つのコンポーネントがオーバーラップしないように、セルの新規の1行と1列が挿入されます。そのため、各コンポーネントが他のコンポーネントの上に重なることはありません。「制約」プロパティ・エディタを使用してコンポーネントの配置を変更する場合、Javaビジュアル・エディタではコンポーネントがオーバーラップするかどうかがチェックされません。

insets

insetsを使用して、コンポーネントと表示領域の端の間の外部スペース(余白)の最小量をピクセル単位で指定します。insetでは、コンポーネントの端およびセルの対応する端の間に常に指定のギャップを保つ必要があることを指定します。したがって、insetsはコンポーネントをセルの端から離しておくためのブレーキのような役割を果たします。たとえば、左右のinsetsを持つコンポーネントの幅をセルよりも広くなるように増やすと、セルはコンポーネントとinsetsが収まるように拡張されます。fillおよびpadding制約によりinsetsからスペースが借用されることはありません。

有効な値:

insets = new Insets(n,n,n,n)

上、左、下、右(各パラメータは表示領域とセルの一方の端の間隔をピクセル数で表します)。

デフォルト値:

insets = new Insets(0,0,0,0)

Javaビジュアル・エディタでinset値を設定するには、次のようにします。

Javaビジュアル・エディタでは、選択したGridBagLayoutコンポーネント上に、insetsの位置とサイズを示す青いサイズ変更ニブが表示されます。青いニブ(サイズ変更ハンドル)をマウスで選択してドラッグし、insetのサイズを増減させます。

inset値がゼロである場合、図20-8に示すように、セルの1辺には青いニブが1つのみ表示されます。

図20-8 inset値が0に設定されたGridBagLayout

図20-9に示すように、inset値が0よりも大きければ、Javaビジュアル・エディタでは、そのinset用の青いニブがセルの端に1つと表示領域の端に1つ、ペアとして表示されます。insetのサイズは、2つのニブの間隔(ピクセル数)です。ニブを選択してinsetのサイズを変更します。

図20-9 inset値が0より大きい値に設定されたGridBagLayout

insetの値をより正確に制御するには、制約プロパティ・エディタを使用して正確なピクセル数を指定します。

1. プロパティ・インスペクタで、「constraints」プロパティをクリックして「制約エディタ」を表示します。

2. 「外枠までの空間」領域で、各inset (上、左、下または右)のピクセル数を指定します。

注意:

負のinset値は有効ですが、指定するとコンポーネントが隣のコンポーネントにオーバーラップすることがあるためお薦めしません。

ipadx、ipady

この2つの制約では、コンポーネントの内部余白を指定します。ipadxおよびipadyを使用し、コンポーネントの最小サイズに内部余白用として追加するスペースの大きさ(ピクセル単位)を指定します。たとえば、コンポーネントの幅は、最小幅とipadx (ピクセル単位)の合計以上になります。コードでは1度のみ追加され、コンポーネントの両側で均等に分割されます。同様に、コンポーネントの高さは、最小の高さとipadyのピクセル数の合計以上になります。

1. ipadxでは、コンポーネントの最小幅に追加するピクセル数を指定します。

2. ipadyでは、コンポーネントの最小の高さに追加するピクセル数を指定します。

たとえば、優先サイズが幅30ピクセル、高さ20ピクセルのコンポーネントに追加するとします。

- ipadx= 4の場合、コンポーネントの幅は34ピクセルになります。

- ipadx= 2,の場合、コンポーネントの高さは22ピクセルになります。

有効な値は次のとおりです。

ipadx=nn、ipadx=nn

デフォルト値:

ipadx=0、ipady=0

Javaビジュアル・エディタで内部余白サイズの制約を設定するには、次のようにします。

Javaビジュアル・エディタでの内部余白サイズの制約の設定。サイズ変更ニブを、セルの端を超えて空の隣接セルへとドラッグすると、コンポーネントは両方のセルを占めることになります(gridwidthまたはgridheightの値が1セルずつ増えます)。

図20-10 サイズ変更ニブをセルの端を超えてドラッグする前

図20-11 サイズ変更ニブをセルの端を超えてドラッグした後

余白値をより正確に制御するには、「制約」プロパティ・エディタを使用して値に使用する正確なピクセル数を指定します。

1. プロパティ・インスペクタで、「constraints」プロパティをクリックして「制約エディタ」を表示します。

2. 「サイズ・パディング」領域で、「幅」と「高さ」にピクセル数を入力して「OK」をクリックします。

余白をすばやく削除(0に設定)するには、Javaビジュアル・エディタでコンポーネントを右クリックして「余白の削除」を選択します。複数のコンポーネントを選択し、同じ手順で一度にすべてのコンポーネントから余白を削除することもできます。

負の値は有効です。負の値を指定すると、コンポーネントが優先サイズよりも小さくなります。

注意:

パディングはXYLayoutに似ていますが、コンピュータ・システムや言語によっては正確でない場合があります。

weightx、weighty

weight制約を使用して、GridBagLayoutコンテナの余分なスペースをサイズ変更時に水平方向(weightx)および垂直方向(weighty)にどのように配分するかを指定します。weightにより、コンテナをデフォルト・サイズより大きく拡大した場合に、各セルおよびコンポーネントに配分される余分なスペースの割合が決定されます。

「スペース配分」の値はdouble型で、0.0から1.0の範囲の数値で指定します。ゼロは、コンポーネントにはスペースを設定できないことを示し、1.0は、コンポーネントがスペースを完全に共有することを示します。

- 行のスペース配分は、その行に含まれる全コンポーネントの最大weightxとして計算されます。

- 列のスペース配分は、その列に含まれる全コンポーネントの最大weightyとして計算されます。

有効な値:

weightx=n.n、weighty=n.n

デフォルト値:

weightx=0.0、weighty=0.0

Javaビジュアル・エディタでのweightxおよびweighty制約の設定

Javaビジュアル・エディタでコンポーネントのweight制約を指定するには、コンポーネントを右クリックして「水平方向のスペース配分」(weightx)または「垂直方向のスペース配分」(weighty)を選択します。これにより、値が1.0に設定されます。weightを削除(0に設定)するには、コンポーネントを右クリックして「スペース配分の削除」を選択します。この操作を複数のコンポーネントに対して実行できます。[Shift]キーを押しながら各コンポーネントを選択し、右クリックして適切なメニュー項目を選択します。

weight制約を0.0または1.0以外の値に設定する場合は、制約エディタで値を設定できます。

1. プロパティ・インスペクタで、「constraints」プロパティをクリックして「制約エディタ」を表示します。

2. 「スペース配分」領域で、「X」(weightx)または「Y」(weighty)に0.0から1.0の値を入力して「OK」をクリックします。

注意:

weight制約を使用すると、Javaビジュアル・エディタでのサイズ変更動作を予想するのが難しくなることがあるため、これらの制約はGridBagLayout設計の最終ステップで設定してください。

weight制約がコンポーネントの動作に及ぼす影響の例

- 図20-12に示すように、すべてのコンポーネントのweight制約が1方向で0に設定されている場合、コンポーネントはそのディメンションでコンテナの中央に集まり、優先サイズを超えて広がることはありません。GridBagLayoutは、セルのグリッドとコンテナの端の間にスペースを挿入します。

図20-12 0に設定されたweight制約

- 図20-13に示すように、weightx制約がそれぞれ0.0、0.3および0.2に設定されている3つのコンポーネントがある場合、コンテナを拡大しても最初のコンポーネントには追加のスペースが配分されず、3/5が第2コンポーネントに、2/5が第3コンポーネントに配分されます。

図20-13 weight制約が0.0、0.3および0.2に設定された3つのコンポーネント

- コンポーネントを拡大する場合は、weight制約とfill制約の両方を設定する必要があります。たとえば、コンポーネントにweightx制約を設定しても、水平方向のfill制約を設定しなければ、コンポーネントの左端および右端とセルの端の間の空間に追加のスペースが配分されます。コンポーネントのサイズは変更されず、セルの幅が大きくなります。コンポーネントにweight制約とfill制約の両方を設定すると、セルに追加のスペースが追加されるのみでなく、コンポーネントが拡張され、新規セル・ディメンション内でfill制約の方向(この場合は水平)に最大化されます。
図20-14では、GridBagLayoutパネルの全コンポーネントについてweight制約が値0に設定されています。この制約のため、コンポーネントはGridBagLayoutパネルの中央に集まっており、パネル上の余分なスペースはすべてグリッドの外枠とパネルの間に配分されています。グリッドのサイズは、コンポーネントの優先サイズとinsetsおよび余白(ipadxまたはipady)の合計により決定されます。

図20-14 weight制約値がゼロに設定されたすべてのコンポーネント

図20-15では、ListControlに対して水平方向のweight制約として1.0が指定されています。1つのコンポーネントにweightが割り当てられると同時に、パネル内でUI設計は中央に揃えられなくなります。水平方向のweightが使用されているため、GridBagLayoutマネージャにより、パネル内で以前はグリッドの両側にあった余分なスペースがListControlを含むセルに配分されます。また、ListControlのサイズが変化していないこともわかります。

図20-15 ListControlに対して1.0に設定された水平方向のweight制約

ヒント:

コンポーネントにweightを追加した後もセル内に必要以上のスペースが残る場合は、余分なスペースの大きさが適正になるまでUIのframeのサイズを小さくしてください。フレームのサイズを小さくするには、Javaビジュアル・エディタでframeを選択するか、「構造」ウィンドウでthis(BorderLayout)を選択し、黒のサイズ変更ニブをクリックして、frameを必要なサイズになるまでドラッグします。

図20-16に示すように、ListControlに水平方向のfillを追加すると、コンポーネントが拡張され、セルの新しい水平方向のディメンションに収まるように最大サイズ化されます。

図20-16 ListControlに追加された水平方向のfill

- 列のコンポーネントの1つにweightx値が設定されている場合、GridBagLayoutによりそのweightが列全体に割り当てられます。反対に、行のコンポーネントの1つにweighty値が設定されている場合は、そのスペース配分が行全体に割り当てられます。

20.5.17 OverlayLayout2の使用

OverlayLayout2を使用すると、コンポーネントを相互に重ねて配置できます。コンテナに必要なサイズは子に必要な最大サイズで、位置合せを考慮する必要があります。位置合せは、子を割当て領域に適切に配置するために必要な操作に基づきます。子は、位置合せのポイントがすべて相互に重なり合うように配置されます。BorderLayoutによる中央揃えとは異なり、OverlayLayout2では使用可能なスペースに収まるようにコンポーネントが拡張されるのではなく、優先サイズが保たれます。

20.5.18 PaneLayoutの使用

図20-17に示すように、PaneLayoutを使用すると、コンポーネントのサイズを兄弟コンポーネントとの相対で指定できます。パネルまたはフレームにPaneLayoutを適用すると、コンポーネントがコンテナに占める割合を相互の相対パーセントで制御できますが、ペイン間に移動可能なスプリッタ・バーは作成されません。

図20-17 PaneLayout

PaneLayoutでは、各コンポーネントの配置とサイズをコンテナに追加済のコンポーネントとの相対で指定します。各コンポーネントでは、PaneConstraintsオブジェクトを指定します。このオブジェクトは、コンポーネントがスペースを使用しているレイアウト・マネージャと、既存のスペースの使用量を指定します。各コンポーネントのPaneConstraintsオブジェクトは、コンポーネントをコンテナに追加する時点で存在していたコンテナに適用されます。コンポーネントをコンテナに追加する順序が重要になります。

コンテナに追加するPaneConstraintsコンポーネントに対する制約は、次の4つの変数で構成されます。

- String name
このコンポーネントの名前(CardLayoutの場合と同様に、コンテナ内の全コンポーネントに対して一意であることが必須)。

- String splitComponentName
このコンポーネント用の余地を確保するためにスペースが使用されるコンポーネントの名前

- String position
このコンポーネントが配置指定されるsplitComponentNameの端。

表20-5は、有効な値を示しています。

表20-5 String positionの有効な値

オプション

操作

PaneConstraints.TOP

このコンポーネントはsplitComponentNameの上に配置されます。

PaneConstraints.BOTTOM

このコンポーネントはsplitComponentNameの下に配置されます。

PaneConstraints.RIGHT

このコンポーネントはsplitComponentNameの右側に配置されます。

PaneConstraints.LEFT

このコンポーネントはsplitComponentNameの左側に配置されます。

PaneConstraints.ROOT

このコンポーネントは最初に追加されたコンポーネントです。

- float proportion
splitComponentNameのうち、このコンポーネントに割り当てられる割合。0と1の間の数値です。

20.5.19 PaneLayoutへのコンポーネントの追加方法

コンポーネントはPaneLayoutに次のように追加されます。

- 第1コンポーネントは、常にコンテナの領域全体を占めます。第1コンポーネントのPaneConstraintで重要な変数は、nameのみです。この値は他のコンポーネントでsplitComponentNameとして指定されて使用されます。

- 第2コンポーネントでは、splitComponentNameとして第1コンポーネントのnameを指定する必要があります。

- 以降のコンポーネントのsplitComponentNameでは、すでにコンテナに追加した任意のコンポーネントのnameを指定できます。

20.5.20 Javaビジュアル・エディタでのPaneLayoutコンテナの作成方法

Javaビジュアル・エディタでPaneLayoutコンテナを作成できます。

PaneLayoutコンテナを作成するには、次のようにします。

1. Javaビジュアル・エディタでUIにコンテナを追加します。これには、図20-18に示すように、任意のフレームまたはパネルを使用できます。

図20-18 Javaビジュアル・エディタでのUIコンテナ

2. コンテナのlayoutプロパティをPaneLayoutに変更します。これにより、インスペクタでPaneLayoutプロパティにアクセスできます。

3. コンポーネント・パレットで、第1コンポーネントを選択してPaneLayoutコンテナにドロップします。このコンポーネントは、別のコンポーネントを追加するまでコンテナ内で完全に最大化されます。

図20-19 PaneLayoutコンテナにドロップされたコンポーネント

4. 第2コンポーネントを選択し、必要な位置で必要なサイズになるようにドラッグします。

図20-20 PaneLayoutにドラッグされた第2コンポーネント

注意:

PaneLayoutコンテナに追加した第1コンポーネント自体がコンテナだった場合、Javaビジュアル・エディタでは第2コンポーネントをPaneLayoutコンテナではなく外側のコンテナに追加しようとしているものとみなされます。コンポーネント・ツリーを使用して、コンポーネントの配置先コンテナを指定してください。

5. 第3コンポーネントをPaneLayoutに追加するには、同様の手順で描画して、他のコンポーネントとの相対位置を定義します。
たとえば、コンテナの右半分を分割するには、パネルの右端中央から第1コンポーネントの右下隅へと第3コンポーネントを描画します。

図20-21 PaneLayoutにドラッグされた第3コンポーネント

6. 同じ方法で以降のコンポーネントを追加します。

20.5.21 VerticalFlowLayoutの使用

VerticalFlowLayoutでは、各コンポーネントのpreferredSizeを使用して、コンポーネントを上から下へ、左から右へと各列に配置します。VerticalFlowLayoutは、1列に収まる数のコンポーネントを配置すると、新規の列に移動します。通常、VerticalFlowLayoutを使用するのはパネルにボタンを配置する場合です。

図20-22 VerticalFlowLayout

上詰め、中央揃えまたは下詰めを指定して、VerticalFlowLayoutコンテナの各列におけるコンポーネントの配置方法を選択できます。コンポーネントと列とのギャップ(水平方向と垂直方向の間隔)も指定できます。さらに、コンポーネントを列の幅まで最大化するか、または最後のコンポーネントをコンテナの残りの高さまで最大化するかを指定できるプロパティも用意されています。これらのプロパティを変更するには、Javaビジュアル・エディタからインスペクタを使用します。

位置合せ

- 上詰め - コンポーネントをコンテナの上部でグループ化します。

- 中央揃え - コンポーネントをコンテナ内で垂直方向の中央に配置します。

- 下詰め - 最後のコンポーネントがコンテナの最下部に位置するようにコンポーネントをグループ化します。

VerticalFlowLayoutのデフォルトの位置合せは「中央揃え」です。

位置合せを変更するには、「構造」ウィンドウでverticalFlowLayoutオブジェクトを選択し、インスペクタで位置合せプロパティの値を次のように指定します。

- 0=TOP

- 1=Middle

- 2=BOTTOM

ギャップ

VerticalFlowLayout内のコンポーネントのデフォルトのギャップは5ピクセルです。

水平方向または垂直方向のギャップを変更するには、「構造」ウィンドウでVerticalFlowLayoutオブジェクトを選択し、インスペクタでhgapプロパティ(水平方向のギャップ)またはvgapプロパティ(垂直方向のギャップ)のピクセル値を変更します。

コンポーネントの順序

VerticalFlowLayoutコンテナ内のコンポーネントの順序を変更するには、コンポーネントを新しい位置にドラッグします。

水平方向の最大サイズ化

horizontalFillを使用すると、すべてのコンポーネントがコンテナの幅まで拡張されるように、端まで最大サイズ化することを示すフラグを指定できます。

図20-23 horizontalFill

警告:

メイン・パネルの空白が必要量よりも少ないと、プログラムが不安定になることがあります。このプロパティでは、複数列の出力も禁止されます。

垂直方向の最大サイズ化

verticalFillを使用すると、最後のコンポーネントがコンテナの残りの高さまで最大化されるように、垂直方向の最大サイズ化フラグを指定できます。

図20-24 verticalFill

verticalFillのデフォルト値はFalseです。

20.5.22 XYLayoutの使用

XYLayoutは、JDeveloperのカスタム・レイアウト・マネージャです。XYLayoutにより、コンテナ内のコンポーネントがコンテナの左上隅に対する特定の相対座標(x,y)に配置されます。コンテナにより、表示タイプに関係なく常にコンポーネントの相対(x,y)位置が保持されます。ただし、XYLayoutを使用してコンテナをサイズ変更しても、コンポーネントの配置やサイズは変更されません。

XYLayoutコンテナのpreferredSizeは、XYLayoutのwidthおよびheightプロパティの指定値で定義されます。たとえば、コンテナの初期化中に次のコード行があるとします。

xYLayoutN.setWidth(400);

xYLayoutN.setHeight(300);

この場合、xYLayoutNがコンテナのレイアウト・マネージャであれば、そのpreferredSizeは400 x 300ピクセルとなります。

UI内のネストしたパネルの1つにXYLayoutが使用されている場合、そのパネルのpreferredSizeはレイアウトのsetWidth()コールとsetHeight()コールによって決定されます。この値は、次(外側)のコンテナのpreferredSizeを計算する際にパネルに使用されます。

図20-25 XYLayout

XYLayoutは、ユーザー・インタフェースのプロトタイプを作成する際に使用すると便利です。複数のネストしたパネルを使用して、より複雑なユーザー・インタフェースを設計する場合は、XYLayoutをパネルとコンポーネントの初期レイアウトに使用し、その後、標準レイアウトの1つから最終設計に使用するものを選択できます。

注意:

XYLayoutでは、画面にオブジェクトを配置するときに絶対x,y値が使用され、様々な画面解像度にあわせた調整は行われません。レイアウトが他の解像度にあわせて確実に調整されるように、最終設計ではコンテナをXYLayoutに残さないでください。

UI設計ツールを使用すると、コンテナのサイズおよびコンポーネントのx,y座標を指定できます。

- XYLayoutを使用してコンテナのサイズを指定するには、「構造」ウィンドウでXYLayoutオブジェクトを選択し、プロパティ・インスペクタでheightおよびwidthプロパティにピクセル・ディメンションを入力します。この設定により、XYLayoutコンテナのサイズを指定します。

- XYLayoutを使用してコンテナの(x,y)値を変更するには、次のようにします。

- Javaビジュアル・エディタで、コンポーネントを新しいサイズになるようにドラッグします。JDeveloperにより、プロパティ・インスペクタ内の制約値が自動的に更新されます。

- 「構造」ウィンドウでコンポーネントを選択し、constraintsプロパティ編集フィールドをクリックして、そのコンポーネントの座標を入力します。

ポップアップ・メニューから使用可能な位置合せオプション

表20-6 位置合せオプション

オプション

操作

最初へ移動

選択したコンポーネントをZ順序(左上→右上→左下→右下)の最初に移動します。

最後へ移動

選択したコンポーネントをZ順序の最後に移動します。

左に揃える

選択したコンポーネントの左端を、最初に選択したコンポーネントの左端にあわせます。

左右中央に揃える

選択したコンポーネントの水平方向の中央を、最初に選択したコンポーネントの水平方向の中央にあわせます。

右に揃える

選択したコンポーネントの右端を、最初に選択したコンポーネントの右端にあわせます。

上に揃える

選択したコンポーネントの上端を、最初に選択したコンポーネントの上端にあわせます。

上下中央に揃える

選択したコンポーネントの垂直方向の中央を、最初に選択したコンポーネントの垂直方向の中央にあわせます。

下に揃える

選択したコンポーネントの下端を、最初に選択したコンポーネントの下端にあわせます。

横間隔を均等にする

最初に選択したコンポーネントと最後に選択したコンポーネントの間で、選択した各コンポーネントを水平に等間隔で配置します。

縦間隔を均等にする

最初に選択したコンポーネントと最後に選択したコンポーネントの間で、選択した各コンポーネントを垂直に等間隔で配置します。

横サイズを同一にする

選択した全コンポーネントの幅を、最初に選択したコンポーネントと同じにします。

縦サイズを同一にする

選択した全コンポーネントの高さを、最初に選択したコンポーネントと同じにします。

XYLayoutを使用するには、レイアウトをnullに設定してJavaビジュアル・エディタでUIのプロトタイプを直接作成する方が簡単です。UIコンポーネントは、配置する場所に作成時のサイズで設定されます。詳細は、第20.6項「レイアウト・プロパティを使用したUIのプロトタイプ作成」を参照してください。

20.5.23 レイアウト・プロパティの理解

各コンテナのレイアウト・プロパティには、通常、なんらかのタイプのレイアウト・マネージャがアタッチされています。レイアウト・マネージャには、コンテナに追加される全コンポーネントのサイズ設定と位置に影響する可能性を持つプロパティがあります。これらのプロパティは、「構造」ウィンドウでレイアウト・マネージャを選択すると、インスペクタで表示して編集できます。「構造」ウィンドウでは、レイアウト・マネージャはアタッチ先コンテナの直下に項目として表示されます。

図20-26 レイアウト・プロパティ

20.5.24 レイアウト制約の理解

JDeveloperでは、コンテナに追加するコンポーネントごとに、制約オブジェクトがインスタンス化されるか、制約値が生成される場合があります。制約値は、レイアウト・マネージャがこの特定のコンポーネントをサイズ設定および配置する方法に関する追加情報を提供します。作成される制約オブジェクトまたは値のタイプは、使用中のレイアウト・マネージャのタイプによって決まります。インスペクタには、各コンポーネントの制約がコンポーネント自体のプロパティであるかのように表示され、これらの制約は編集できます。

20.5.25 実行時のUIウィンドウのサイズと位置の決定

UIクラスがFrameまたはDialogの場合は、サイズと位置を実行時に制御できます。サイズと位置は、UIウィンドウ作成時のコードの内容と、ユーザーがサイズ変更または再配置のために実行する操作によって決定されます。

UIウィンドウを作成して各種コンポーネントを追加すると、追加した各コンポーネントがウィンドウ全体のpreferredSizeに影響し、通常はコンポーネントを追加するたびにウィンドウ・コンテナのpreferredSizeが大きくなります。このpreferredSizeに対する効果は、外側のコンテナのレイアウト・マネージャおよびネストしたコンテナのレイアウトによって異なります。各種レイアウトのpreferredLayoutSizeの計算方法の詳細は、このドキュメントの各レイアウト・タイプの項を参照してください。

UIウィンドウのサイズはプログラムにより(ユーザーが追加のサイズ変更を行う前に)設定され、次のコンテナ・メソッドのうちコードで最後にコールされるメソッドにより決定されます。

- pack()

- setsize()

実行時のUIの位置は、コンテナのlocationプロパティを(たとえば参照可能にする前にsetLocation()をコールして)設定してオーバーライドしなければ、0,0になります。

20.5.26 pack()による自動的なウィンドウ・サイズ設定

pack()メソッドでは、中に含まれているコンポーネントに基づいてウィンドウのpreferredSizeが計算され、計算結果に従ってウィンドウ自体のサイズが設定されます。pack()では中に配置されたコンポーネントのpreferredSizeも考慮した上で、可能な範囲内で最小のウィンドウが作成されます。

注意:

「新規アプリケーション」ダイアログで作成されるApplication.javaファイルでは、pack()がコールされ、フレームは参照可能になる前にpreferredSizeまで圧縮されます。

20.5.27 コンテナのpreferredSizeの計算方法

preferredSizeの計算方法は、コンテナとレイアウトによって異なります。

20.5.28 移植性のあるレイアウト

移植性のあるレイアウト(FlowLayoutやBorderLayoutなど)のpreferredSizeは、レイアウト・ルールとコンテナに追加された各コンポーネントのpreferredSizeの組合せに基づいて計算されます。コンポーネントのいずれかがコンテナ(Panelなど)の場合、そのPanelのpreferredSizeはレイアウトおよびコンポーネントに従って計算されます。レイアウトの計算は、必要に応じてネストしたコンテナのレイヤーの数だけ再帰的に繰り返されます。特定のレイアウトに関するpreferredSizeの計算の詳細は、そのレイアウトの説明を参照してください。

20.5.29 setSize()によるウィンドウ・サイズの明示的な設定

コンテナに対して(pack()または以降のpack()のコールではなく) setSize()をコールすると、コンテナのサイズはピクセル単位で特定のサイズに設定されます。setSize()により、コンテナに対するpack()およびpreferredSizeの効果がオーバーライドされます。

注意:

ピクセル・サイズは画面ごとに異なるため、setSize()を使用する場合は、子コンテナが正しくレイアウトされるようにvalidate()をコールする必要があります。pack()が自動的にvalidate()をコールすることに注意してください。

20.5.30 各種プラットフォームに移植可能にするためのUIのサイズ設定

UIを移植可能にするには、pack()を使用するか、アプリケーションがデプロイされる各種画面のピクセル・サイズに基づいてsetSize()で使用する適切なサイズを計算します。

たとえば、UIを画面の幅と高さの75%で表示するとします。UIがこのサイズで表示されるように、pack()をコールするかわりにアプリケーション・クラスに次のコード行を追加できます。

Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
frame.setSize(screenSize.width * 3 / 4, screenSize.height * 3 / 4);

注意:

移植性を保証するために、すべてのXYLayoutコンテナをプロトタイプ作成後に移植可能なレイアウトに変更します。詳細は、第20.6項「レイアウト・プロパティを使用したUIのプロトタイプ作成」を参照してください。

20.5.31 画面上のウィンドウ配置

UIを明示的に配置しなければ、画面の左上隅に表示されます。

UIを画面中央に表示するには、画面の幅と高さを取得し、UIの幅と高さを減算して差を2で除算し(UIの上下と左右に均等の余白を作成するため)、これらの値をUIの左上隅の位置に使用します。

「新規アプリケーション」ダイアログで「フレームを画面の中央に配置」オプションを選択すると、この計算が実行されて例20-1のコードが生成されます。

例20-1 「フレームを画面の中央に配置」オプションを選択したときに生成されるコード

//Center the window
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
Dimension frameSize = frame.getSize();
if (frameSize.height > screenSize.height)
frameSize.height = screenSize.height;
if (frameSize.width > screenSize.width)
frameSize.width = screenSize.width;
frame.setLocation((screenSize.width- frameSize.width) / 2,
(screenSize.height - frameSize.height) /2);

20.5.32 コードへのサイズ設定メソッド・コールと配置メソッド・コールの挿入

pack()、validate()、setSize()またはsetLocation()は、UIコンテナ・クラス(this.pack()など)の内側からコールできます。これらのコールは、コンテナを作成するクラス(frame.pack()など)から、コンストラクタの起動後、setVisible()の前に実行することもできます。後者は、「新規アプリケーション」ダイアログで生成されたコードの動作です。pack()またはvalidate()およびsetLocation()は、フレームの作成後(jbInit()のコール後)にApplicationクラスに配置されます。

アプリケーション内の様々な場所からUIを作成し、そのUIのサイズと位置を同じにする場合は、コールをUIコンテナ・クラスのコンストラクタ(jbInit()のコールの後)に挿入します。「新規アプリケーション」ダイアログで生成されたアプリケーションのように、アプリケーションで1箇所からのみUIがインスタンス化される場合は、サイズ設定コードと配置コードをUIの作成場所(この場合はApplicationクラス)に挿入します。

20.5.33 ネストされたコンテナおよびレイアウトの使用

JavaにおけるほとんどのUI設計では、複数タイプのレイアウトを使用し、複数のパネルをメイン・コンテナ内で様々なレイアウトでネストして、必要なコンポーネント配置を取得します。複合設計を作成し、各パネルに適切なレイアウト・マネージャを使用することで、機能と移植性の両面を考慮した上でコンポーネントをグループ化して配置できます。

たとえば、図20-27は様々なレイアウトでネストしたパネルの使用を示しています。グレーに塗りつぶされたオブジェクトはUI内のボタンおよび他の参照可能なコンポーネントで、様々なレベルのパネルにネストされています。

図20-27 ネストしたパネル

20.5.33.1 ネストしたパネルの作成方法

パネルを他のパネル内でネストして、より厳密にコンポーネント配置を制御できます。

ネストしたパネルを作成する手順は、次のとおりです。

1. アプリケーションのUI設計にパネルを追加します。詳細は、第20.7.9項「パネルの作成方法」を参照してください。

2. プロパティ・インスペクタで、Layoutプロパティをnullに変更します。
UI設計にパネルを追加すると、FlowLayoutが使用されます。設計プロセスでの操作が最も容易なため、最初にレイアウトをnullに変更してください。すべてのパネルや他のコンポーネントをUIに配置した後、最終的なレイアウトに設定します。

Javaビジュアル・エディタで特定のパネルを探すには、そのパネルを「構造」ウィンドウで選択します。

3. パネルを他のパネル内に配置して、コンポーネントを論理的にグループ化します。

- コンポーネントがパネルの内側で完全にネストしていることを確認します。「構造」ウィンドウを調べて、各コンポーネントがツリーのアウトライン内で正しいパネルの下にインデント表示されていることを確認します。

- コンポーネントは正しいサイズと形状になっていません。パネルのレイアウトを変更するとレイアウト・マネージャによりコンポーネントの位置合せが変更されるため、この時点では完全な外観でなくても構いません。

4. 適切なレイアウトにあわせて各パネルのlayoutプロパティを設定します。詳細は、第20.5.23項「レイアウト・プロパティの理解」を参照してください。

- あるパネルのレイアウト・マネージャを変更すると、そのパネルを保持しているパネルのレイアウト・マネージャを変更したときに、効果が再び変化することに注意してください。

- 「構造」ウィンドウでレイアウト・オブジェクトを選択して設定を変更します。

20.5.34 カスタム・レイアウト・マネージャの追加

JDeveloperは、Javaビジュアル・エディタと他のレイアウト・マネージャの統合をサポートしています。ユーザーは、次の場合にJavaビジュアル・エディタおよびプロパティ・インスペクタの両方を使用してレイアウト・マネージャを操作できます。

1. LayoutManagerに関連付けるoracle.jdevimpl.uieditor.LayoutAssistant実装を記述する場合。

2. LayoutAssistant実装をIDEに登録する場合。

3. (オプション) java.beans.PropertyEditorをIDEに登録して特殊な制約タイプを処理する場合。

カスタム・レイアウト・マネージャ・アシスタントを作成するには、次のようにします。

各LayoutManagerをLayoutAssistant実装に関連付ける必要があります。oracle.jdevimpl.uieditor.assistant.BasicLayoutAssistantクラスは、インタフェースoracle.jdevimpl.uieditor.LayoutAssistantの最小限の実装を提供し、明示的に登録されていないLayoutManagerに使用されます。インタフェースには複数の必須メソッドがありますが、このトピックの対象範囲を超えているため、ここでは説明しません。統合担当は、この最小限の実装からLayoutAssistant実装をサブクラス化できます。詳細は、LayoutAssistantインタフェースのJavadocを参照してください。

レイアウト・アシスタントを登録するには、次のようにします。

新規のレイアウト・アシスタントを登録するには、JDeveloper¥lib¥addins.xmlファイルのoracle.jdevimpl.uieditor.UIEditorAddinセクションに次のようにキー値の定義を追加する必要があります。

<property>
<key>PREFIX.LAYOUT_MANAGER_CLASS_NAME</key>
<value>LAYOUT_ASSISTANT_CLASS_NAME</value>
</property>

これらの意味は、次のとおりです。

- PREFIXはjdeveloper.uiassistantです。

- LAYOUT_MANAGER_CLASS_NAMEは、アシスタントを登録するレイアウト・マネージャの完全修飾クラス名です。

- LAYOUT_ASSISTANT_CLASS_NAMEは、登録するレイアウト・マネージャ・アシスタントの完全修飾クラス名です。

たとえば、java.awt.GridBagLayoutレイアウト・マネージャのLayoutAssistant実装oracle.jdevimpl.uieditor.assistant.GridBagLayoutAssistantを登録する場合、追加するプロパティは次のようになります。

<property>
<key>jdeveloper.uiassistant.java.awt.GridBagLayout</key>
<value>oracle.jdevimpl.uieditor.assistant.GridBagLayoutAssistant</value>
</property>

レイアウト・アシスタントがプロパティ・インスペクタのlayoutプロパティ・リストに表示されるようにIDEから使用可能にするには、レイアウト・アシスタントをJDeveloper¥bin¥jdev.confファイル内でIDEClasspathにディレクティブとして追加する必要があることに注意してください。次に例を示します。

AddJavaLibFile <myAssistant.jar>

これらの意味は、次のとおりです。

myAssistant.jarは、LayoutAssistant実装のコンパイル済クラス・ファイルが含まれているjarです。

レイアウト・マネージャの制約プロパティ・エディタを登録するには、次のようにします。

カスタム・レイアウト・マネージャで制約クラスを使用する場合は、制約の編集に使用するjava.beans.PropertyEditorの実装クラスを登録できます。プロパティ・エディタ・クラスを、ide.propertiesファイル内でInspector.PropertyEditorの下で登録します。各項目の意味は次のとおりです。

- Inspector.PropertyEditor.count=#では、ide.propertiesに登録するプロパティ・エディタの合計数を指定します。新規に追加するプロパティ・エディタごとにカウントを増やす必要があります。

- <#>は登録済エディタ・リスト内の0ベース索引で、登録するエディタに対応します。

- <fully qualified type>は、PropertyEditorを登録する制約の完全修飾タイプです。

- <Fully qualified class>は、指定した制約タイプのインスタンス編集用に登録するjava.beans.PropertyEditor実装の完全修飾クラス名です。

たとえば、GridBagLayoutレイアウト・マネージャのGridBagConstraints用のプロパティ・エディタを登録する場合、ide.propertiesファイル内のエントリは次のようになります。

Inspector.PropertyEditor.count=1

Inspector.PropertyEditor.editor1.type=java.awt.GridBagConstraints
Inspector.PropertyEditor.editor1.editor=oracle.jdevimpl.uieditor.assistant.GridBagConstraintsEditor

注意:

プロパティ・エディタ・クラスも、レイアウト・マネージャ・アシスタントについて前述したIDEClasspathに追加する必要があります。

20.6 レイアウト・プロパティを使用したUIのプロトタイプ作成

UIの作成を開始する前に、UI設計を書き留めて各種のパネルとコンポーネントの配置とレイアウトの割当てに関する全般的な方針をまとめておくと便利です。UIのプロトタイプはJavaビジュアル・エディタで直接作成することもできます。JDeveloperにはnullというレイアウトが用意されているため、この作業は容易になります。このレイアウトでは、コンポーネントは元の配置場所および作成時のサイズから変化しません。

20.6.1 プロトタイプ作成におけるnullレイアウトの使用

このアプローチを単純化するために、JDeveloperにはnullレイアウトが用意されています。「新規アプリケーション」ダイアログを使用してプロジェクトを開始すると、JDeveloperによりnullを使用するUIコンテナ・クラス(通常はFrameまたはJFrameの拡張クラス)が生成されます。Javaビジュアル・エディタでフレームを開き、フレーム上で設計作業を直接行うことができます。

最初にJavaビジュアル・エディタにいずれかのタイプの新規パネルを追加すると、インスペクタではlayoutプロパティが<default layout>となっていることがわかります。これは、Javaビジュアル・エディタではそのコンテナに自動的にデフォルトのレイアウトが使用されることを意味します。ただし、layoutプロパティは使用するレイアウト・マネージャに変更できます。これにより、プロパティが「構造」ウィンドウで参照可能になり、そのコンポーネントの制約をプロパティ・インスペクタで変更できるようになります。<default layout>のレイアウト・プロパティは編集できません。

20.6.2 大きいリージョンから順番に設計

まずUIのうち大きいリージョンを設計した後、nullを使用して各リージョン内の詳細を操作していきます。設計が適切であれば、内側のリージョンから外側へと系統的に作業を進め、パネルをより移植性の高いレイアウト(FlowLayout、BorderLayoutまたはGridLayoutなど)に変換し、必要に応じて軽微な調整を行います。

ほとんどの場合、まずコンテナを設計に含めた後、そこにコンポーネントを追加します。既存のコンポーネントを囲む新規コンテナを描画することもできます。ただし、この種のコンポーネントが新規パネル内で自動的にネストされることはありません。コンテナを描画した後、各コンポーネントをコンテナ内で移動する必要があります。また、コンテナの外へとコンポーネントを移動してから戻す操作が必要になることもあります。「構造」ウィンドウで、各コンポーネントが正しくネストしていることを確認してください。コンテナ内の各コンポーネントは、ツリーでコンテナの下にインデント表示されている必要があります。

20.6.3 テストの前に保存

JDeveloperで設計する場合、特にレイアウトを変更する際には試行錯誤を繰り返すことになります。レイアウトを変更してテストする前に、作業内容を保存してください。

使用しようとした特定のレイアウトが予想どおり機能しないことが判明する場合があります。設計プロセスを見直し、コンテナ、コンポーネントおよびレイアウトの異なる構成を使用する必要が出てくることもあります。このため、重要なポイントでコンテナ・ファイル(Frame1.javaなど)に別の名前を付けて安全な場所にコピーしておきます。これにより、作業のバックアップが必要になった場合にも、最初からやりなおす必要がなくなります。

20.6.4 最終的なレイアウト・マネージャの選択

nullまたはXYLayoutマネージャを使用してJavaプログラムを設計した場合は、レイアウト・マネージャを様々なプラットフォーム間でサポートされている標準レイアウト・マネージャの1つに変更する必要があります。

レイアウト・マネージャを変更するには、第20.8.3項「コンテナのレイアウトの変更方法」を参照してください。

20.7 コンテナおよびコンポーネントの使用

JDeveloperには、コンテナの生成に役立つ簡単なツールが用意されています。コンテナでは、その他のコンポーネントが保持および管理されます。JDeveloperでフォームをレイアウトしてUIを設計する場合、コンテナを使用します。一般的なコンテナのクラスには次の2つがあります。

- 重量Swingコンテナ。AWTコンテナを拡張したものであるため、重量実装であり、JFrame、JDialogおよびJAppletが含まれます。

- 軽量Swingコンテナ。オペレーティング・システム固有のコードは含まれず、JTabbedPane、JPanel、JSplitPaneおよびJScrollPaneなどが含まれます。

コンテナもコンポーネントです。つまり、プロパティを取得して設定し、メソッドをコールし、その他のコンポーネントと同様にイベントに応答して、コンテナと対話します。

20.7.1 ウィンドウの使用

ウィンドウは、枠線、タイトル・バーまたはメニュー・バーが含まれない、スタンドアロンのトップレベル・コンテナ・コンポーネントです。ウィンドウを使用してポップアップ・ウィンドウを実装できますが、通常は表20-7に示すいずれかのようなウィンドウのサブクラスをUIで使用します。

表20-7 ウィンドウのサブクラス

ウィンドウ

説明

フレーム

枠線およびタイトルが含まれるトップレベル・ウィンドウ。フレームには、コントロール・メニュー、ウィンドウを最小化および最大化するボタン、ウィンドウをサイズ変更するコントロールなどの標準ウィンドウ・コントロールが含まれます。メニュー・バーが含まれる場合もあります。

ダイアログ・ボックス

フレームに類似したポップアップ・ウィンドウですが、親が必要です。ダイアログ・ボックスは、ユーザーから入力データを取得したり、警告メッセージを表示する際に使用されます。メニュー・バーが含まれる場合もあります。ダイアログ・ボックスは通常一時的なものであり、次のいずれかのタイプになります。

- モーダル: そのダイアログ・ボックスが閉じられるまで、アプリケーション内の他のウィンドウに対するユーザー入力が不可となります。

- モードレス: ユーザーがダイアログ・ボックスおよびアプリケーションの両方に情報を入力できます。

20.7.2 パネルの使用

パネルは、枠線またはキャプションが含まれない単純なUIコンテナであり、ボタン、チェック・ボックスおよびテキスト・フィールドなどの他のコンポーネントをグループ化するために使用されます。パネルは、フレームまたはダイアログなどの他の一部のUI内に埋め込まれています。他のパネル内にネストすることもできます。

表20-8 パネル

Panel

説明

Applet

パネルのサブクラスであり、HTMLページに埋め込んでインターネット・ブラウザまたはアプレット・ビューアで実行するプログラムを構築するために使用されます。アプレットはパネルのサブクラスであるため、コンポーネントを含めることはできますが、枠線やキャプションは持てません。

20.7.3 軽量Swingコンテナの使用

JDeveloperのコンポーネント・パレット・ページから使用できる軽量Swingコンテナには、JMenuBar、JPopupMenu、JSplitPane、JScrollPane、JTabbedPaneおよびJToolbarが含まれます。これらはすべてJComponentのサブクラスです。これらのコンテナに他のコンテナおよびコンポーネントを追加し、コンポーネントとそのコンテナを様々な方法で結合して、必要なインタフェースを作成できます。

表20-9 軽量Swingコンテナ

軽量コンテナ

説明

メニュー・バー

「コンポーネント・パレット」ページから使用できる軽量Swingコンテナには、JMenuBar、JPopupMenu、JSplitPane、JScrollPane、JTabbedPaneおよびJToolbarが含まれます。これらはすべてJComponentのサブクラスです。これらのコンテナに他のコンテナおよびコンポーネントを追加し、コンポーネントとそのコンテナを様々な方法で結合して、必要なインタフェースを作成できます。

ポップアップ・メニュー

一連の選択肢をポップアップ表示する小さなウィンドウであり、メニュー・エディタを使用してJDeveloperで作成します。ユーザーがメニュー・バー上の項目を選択したときに表示されるメニューには、JPopupMenuが使用されます。JPopupMenuは、プルライト・メニューにも使用されます。プルライト・メニューは、これをアクティブにするメニュー項目をユーザーが選択したときに表示されます。最後に、ユーザーが指定エリア内を右クリックしたときなど、メニューの表示が必要な他のあらゆる状況でも、JPopupMenuを使用することができます。

分割ペイン

ユーザーが再配置できるディバイダによって水平または垂直に区切られている2つのペインを管理します。コンポーネントを追加するペインを選択できます。プロパティleftComponentおよびrightComponent、またはtopComponentおよびbottomComponentによってコンポーネントを指定できます。これらのプロパティで、「Left」は「Top」に相当し、「Right」は「Bottom」に相当します。したがって、配置を変更する場合、既存のコードが機能します。同じペインに対する後続の追加によって、ペインの内容が新規オブジェクトで置き換えられます。

スクロール・ペイン

ユーザーが再配置できるディバイダによって水平または垂直に区切られている2つのペインを管理します。コンポーネントを追加するペインを選択できます。プロパティleftComponentおよびrightComponent、またはtopComponentおよびbottomComponentによってコンポーネントを指定できます。これらのプロパティで、「Left」は「Top」に相当し、「Right」は「Bottom」に相当します。したがって、配置を変更する場合、既存のコードが機能します。同じペインに対する後続の追加によって、ペインの内容が新規オブジェクトで置き換えられます。

JScrollPaneには、スクロール・バーおよびビューポートとともに、列ヘッダーおよび行ヘッダーを含めることができます。各ヘッダーは、rowHeaderおよびcolumnHeaderプロパティによって指定するJViewportオブジェクトです。列ヘッダーviewportは自動的に左右にスクロールされ、メイン・ビューポートの左右のスクロールが追跡されます。(ただし垂直にはスクロールされません。)行ヘッダーも同様に機能します。

タブ・ペイン

相互に完全に重なる複数のパネルを管理します。ユーザーは、パネルに添付されたタブ(ファイル・フォルダ上のタブなど)をクリックし、表示するパネルを選択できます。JDeveloperにタブを追加するには、コンポーネント・パレットからタブ・ペインにJPanelをドロップします。tabPlacementプロパティを使用して、コンテナの上下左右にタブを配置できます。

ツールバー

一般的に使用されるアクションまたはコントロールの表示に役立つコンポーネントを提供します。ユーザーによって別のウィンドウにドラッグアウトできます(floatableプロパティがfalseに設定されている場合を除きます)。ドラッグアウトが正しく機能するために、JToolBarインスタンスを、レイアウト・マネージャがBorderLayoutであるコンテナの4つの側面のいずれかに追加することをお薦めします。他の4つの側面のいずれにも子を追加しないでください。

20.7.4 プロパティ・インスペクタでのコンポーネント・プロパティの理解

プロパティは、外観や動作に影響する可能性のあるクラスの名前付き属性です。次のようなプロパティがあります。

- 読取り可能: この種のプロパティにはgetメソッドがあり、プロパティの値を読み取ることができます。ブール・プロパティの場合は、isを使用して値を読み取ることも可能です。

- 書込み可能: この種のプロパティにはsetメソッドがあり、プロパティの値を変更できます。

- 読取り可能と書込み可能の両方: この種のプロパティにはgetメソッドとsetメソッドの両方があります。

20.7.5 プロパティ・インスペクタでのプロパティ値の設定

プロパティは、コンポーネントの外観と実行時のレスポンスを定義する属性です。JDeveloperでは、設計時にコンポーネントの初期プロパティを設定します。このプロパティは、実行時にコードで変更できます。

「プロパティ・インスペクタ」ウィンドウには、選択したコンポーネントのプロパティが表示されます。このウィンドウで設計に含まれるコンポーネントの設計時のプロパティ値を設定します。設計時にプロパティを設定することで、実行時にUIがインスタンス化されるときのコンポーネントの初期状態を定義します。

注意:

実行時に初期プロパティ値を変更するために、メソッドまたはイベント・ハンドラの本体にコードを挿入できます。これは、プロパティ・インスペクタの「イベント」セクションで作成可能です。

20.7.6 複数コンポーネントの共有プロパティの設定

Javaビジュアル・エディタで複数のコンポーネントを選択してプロパティ・インスペクタを開くと、デフォルトでは選択したコンポーネントのすべての共通プロパティが表示されます。

Javaビジュアル・エディタでは複数のコンポーネントを選択できますが、プロパティ・インスペクタに表示されるのは一度に1コンポーネントのプロパティ値のみです。選択したコンポーネント間でプロパティが共有されており、値が同一の場合と異なる場合があると、プロパティ値がコンポーネント間で異なる可能性があります。プロパティ・インスペクタでは、値がイタリックで表示されるため、異なる値を持つ共有プロパティを識別できます。

選択したコンポーネント間で共有プロパティの値が異なっている場合は、アンカー選択項目に属しているプロパティ値が常に表示されます。アンカー選択項目とは、Javaビジュアル・エディタに中空のハンドル付きで表示される選択項目です。アンカー選択項目を変更するには、[Shift]キーを押しながら、現在選択されている他のコンポーネントの1つをクリックします。アンカー選択項目を変更すると、インスペクタに表示されるコンポーネントのプロパティが変わり、Javaビジュアル・エディタのポップアップ・メニュー操作が適用されるコンポーネント(「位置合せ」ポップアップ・メニュー項目など)も変わります。

プロパティ・インスペクタで共有プロパティのいずれかを変更すると、そのプロパティ値は選択したすべてのコンポーネント内で新規の値に変更されます。

20.7.7 ユーザー・インタフェースのレイアウト

この項では、コンポーネントとJDeveloperのUI設計ツールを使用してユーザー・インタフェースを作成する際に実行する基本的なタスクについて説明します。GUI環境でコントロールを使用することに慣れていれば、ここで説明する内容の大部分(コンポーネントの選択、サイズ設定および削除など)は目新しいものではありません。

実際にUIを作成する前に、UIのプロトタイプを作成する必要があります。詳細は、第20.6項「レイアウト・プロパティを使用したUIのプロトタイプ作成」を参照してください。

JDeveloperでユーザー・インタフェースを設計するには、次のようにします。

- コンテナ(フレーム、パネルまたはダイアログなど)を作成します。これらのコンテナでは、特定のタイプのコンポーネントが保持されます。

- コンテナ内のコンポーネントを追加および配置します。コンポーネントをコンテナに追加してから、レイアウト・マネージャを使用して配置できます。詳細は、第20.8.1項「ユーザー・インタフェースへのコンポーネントの追加方法」を参照してください。

- コンポーネント・プロパティを設定します。プロパティ・インスペクタを使用して各コンポーネントのプロパティを設定できます。詳細は、第20.7.4項「プロパティ・インスペクタでのコンポーネント・プロパティの理解」を参照してください。

- コンポーネント・イベントにイベント処理コードをアタッチします。イベントは、ユーザーまたは他のコンポーネントによりトリガーされたときにコンポーネントにより実行されるアクションです。詳細は、第20.10.2項「コンポーネント・イベントへのイベント処理コードのアタッチ方法」を参照してください。

- コンテナのレイアウトとコンポーネントの制約を設定します。レイアウト制約により、レイアウト・マネージャに対してコンポーネントのサイズと位置の設定方法を指示します。詳細は、第20.8.4項「コンポーネントのレイアウト制約の変更方法」を参照してください。

プロジェクトを開始するには、次のようにします。

次の手順は、設計可能なコンテナ・クラスを含むプロジェクトの作成を完了していることを前提としています。まだ完了していない場合は、次の操作を実行する必要があります。

1. JDeveloperプロジェクトを作成または開きます。

2. アプレットまたはアプリケーションを作成します。

20.7.8 フレームの作成方法

フレームは、枠線とタイトルを持つトップレベル・ウィンドウです。フレームには、コントロール・メニュー、ウィンドウの最小化と最大化のボタン、ウィンドウのサイズ変更用のコントロールなどの標準ウィンドウ・コントロールがあります。

「新規のフレーム」ダイアログは、アクティブなプロジェクトに新規クラスを追加します。必要なインポート文が追加され、デフォルト・コンストラクタが作成され、jbInit()メソッドが作成されます。このメソッド内で、JDeveloperによりJavaビジュアル・エディタで使用されるプロパティと他の初期化コードが設定されます。

フレームを追加する手順は、次のとおりです。

1. プロジェクトを開くか、作成します。

2. 「ファイル」→「新規」を選択して、「新規ギャラリ」で「新規のフレーム」ダイアログを探します。

3. 「カテゴリ」リストで「クライアント層」を開き、「Swing/AWT」を選択します。

4. 「項目」リストで「フレーム」を選択し、「OK」をクリックして「新規のフレーム」ダイアログを起動します。

5. 「新規のフレーム」ダイアログで、パッケージ名とクラス名を入力します。

6. 拡張するフレーム・タイプを選択します。

7. フレーム・タイトルを入力します。

8. オプション(「メニュー・バー」など)が存在する場合は、適切と思われるオプションを選択します。

9. 「OK」をクリックして、フレームとそのソース・コードを作成します。
フレームは、ナビゲータに.javaソース・ファイルとして表示されます。

JDeveloperでフレームを表示するには、次のようにします。

- ナビゲータでファイルを右クリックして「開く」を選択し、「設計」タブをクリックして対話型のUI設計ツール(コンポーネント・パレットやプロパティ・インスペクタなど)を使用します。

- 「ソース」タブをクリックして、ソース・コードを直接編集する作業を開始します。

20.7.9 パネルの作成方法

パネルは、ボタン、チェック・ボックスおよびテキスト・フィールドなどのコンポーネントをグループ化するUIコンテナです。パネルには枠線があり、選択した枠線がTitledBorderの場合はタイトルも使用できます。通常、パネルはダイアログ・ボックスまたはフレームに埋め込まれています。

「新規のパネル」ダイアログでは、選択したパネルを開くためにオープンしているプロジェクトに新規クラスを追加します。これにより、デフォルト・コンストラクタが作成されます。Javaビジュアル・エディタで使用されるプロパティのsetterや他の初期化コードを挿入するjbInit()メソッドも作成されます。

パネルを作成する手順は、次のとおりです。

1. プロジェクトを開くか、作成します。

2. 「ファイル」→「新規」を選択して、「新規ギャラリ」で「新規のパネル」ダイアログを探します。

3. 「カテゴリ」リストで「クライアント層」を開き、「Swing/AWT」を選択します。

4. 「項目」リストで「パネル」を選択し、「OK」をクリックして「新規のパネル」ダイアログを起動します。

5. 「新規のパネル」ダイアログで、パネルのクラス名とパッケージ名を入力します。

6. パネルの導出元となるベース・クラスを選択します。
JDeveloperとともにインストールされているベース・クラスから任意に選択できます。必要な場合は、「参照」ボタンを使用して、インストール済パッケージにない別のクラスを検索できます。デフォルトでは、選択対象はコアJ2SE (Java2、Standard Edition)とSwingのクラスで提供されるパネル・コンテナに限定されます。

7. 「OK」をクリックしてパネルとソース・コードを作成します。
パネルは、ナビゲータに.javaソース・ファイルとして表示されます。

JDeveloperでパネルを表示するには、次のようにします。

1. ナビゲータでファイルを右クリックして「開く」を選択し、「設計」タブをクリックして対話型のUI設計ツール(コンポーネント・パレットやプロパティ・インスペクタなど)を使用します。

2. 「ソース」タブをクリックして、ソース・コードを直接編集する作業を開始します。

20.7.10 ダイアログ・ボックスの作成方法

ダイアログ・ボックスとは、枠線とタイトルがあるポップアップ・ウィンドウのことです。通常、ダイアログ・ボックスは、ユーザーからの入力を取得するために使用します。

「新規のダイアログ」ダイアログでは、DialogまたはJDialogを拡張する新規クラスを作成し、現行のプロジェクトに追加します。必要なimport文が追加されます。また、JDeveloperのJavaビジュアル・エディタで使用するプロパティのsetterや他の初期化コードを入れるjbInit()メソッドも作成されます。jbInit()メソッドは、いずれかのコンストラクタの使用時に起動されます。

ダイアログ・ボックスを追加した後、Javaビジュアル・エディタを使用してダイアログを直接設計できます。この方法で、新規ダイアログ・ボックスにボタンや他のコントロールを追加します。

ダイアログ・ボックスを作成する手順は、次のとおりです。

1. プロジェクトを開くか、作成します。

2. 「ファイル」→「新規」を選択して、「新規ギャラリ」で「新規のパネル」ダイアログを探します。

3. 「カテゴリ」リストで「クライアント層」を開き、「Swing/AWT」を選択します。

4. 「項目」リストで「ダイアログ」を選択し、「OK」をクリックして「新規のダイアログ」ダイアログを起動します。

5. 「新規のダイアログ」ダイアログで、ダイアログ・ボックスのパッケージ名とクラス名を入力します。ファイル名は自動的に入力されます。ファイルにはクラスと同じ名前が割り当てられ、パッケージ・ディレクトリに保存されます。

6. java.awt.Dialogとjavax.swing.JDialogのどちらを開くかを選択します。

7. 「OK」をクリックしてダイアログ・ボックスとソース・コードを作成します。
ダイアログ・ボックスは、「移動」ウィンドウに.javaソース・ファイルとして表示されます。

JDeveloperでダイアログ・ボックスを表示するには、次のようにします。

- ナビゲータでファイルを右クリックして「開く」を選択し、「設計」タブをクリックして対話型のUI設計ツール(コンポーネント・パレットやプロパティ・インスペクタなど)を使用します。

- 「ソース」タブをクリックして、ソース・コードを直接編集する作業を開始します。

20.7.11 Beanでないダイアログ・ボックスの使用方法

ダイアログ・ボックスを作成してUIを設計した後、そのダイアログ・ボックスをプログラム内のなんらかのUIからテストまたは使用する必要があります。

ダイアログ・ボックスをテストまたは使用するには、次のようにします。

1. コード内で、ダイアログ・コンストラクタの親Frameパラメータとして機能するFrameにアクセスできる場所から、ダイアログ・クラスをインスタンス化します。この代表例は、UIの設計対象であり、ダイアログ・ボックスを表示するためのButtonまたはMenuItemを含んだFrameです。アプレットでは、getParent()をコールしてFrameを取得できます。
モードレスなダイアログ・ボックス(この例ではdialog1)の場合、次のようにパラメータを1つ(親Frame)をとるコンストラクタの形式を使用できます。

Dialog1 dialog1=new Dialog1(this);

モーダル・ダイアログ・ボックスの場合は、次の例のように、boolean modalパラメータをtrueに設定しているコンストラクタの形式を使用する必要があります。

Dialog1 dialog1=new Dialog1(this, true);

この行をクラスの先頭にインスタンス変数として置く方法(ダイアログ・ボックスはFrameの作成中にインスタンス化され、再利用可能です)、およびダイアログ・ボックスを起動するボタンのactionPerformedイベント・ハンドラ内に置く方法(その場合、ボタンが押されるたびにダイアログ・ボックスの新規インスタンスが初期化されます)があります。どちらの場合も、この行によりダイアログ・ボックスが初期化されますが、まだ参照可能にはなりません。

(ダイアログがBeanの場合は、frameをコンストラクタに対して指定するのではなく、frameプロパティをshow()のコール前に親frameに設定する必要があります。)

2. インスタンス化されたダイアログ・ボックスを参照可能にする前に、ダイアログ・ボックスのフィールドに表示するデフォルト値を設定する必要があります。ダイアログをBeanにする予定の場合は、これらのダイアログ・ボックスのフィールドをプロパティとしてアクセス可能にしてください。そのためには、ダイアログ・クラスでgetterメソッドとsetterメソッドを定義します。

3. 次に、イベント・ハンドラに次のようなコード行を入力して、actionPerformedイベント中にダイアログ・ボックスを参照可能にする必要があります。
dialog1.show();

4. ユーザーが「OK」ボタン(またはモードレス・ダイアログ・ボックスの場合は「適用」ボタン)をクリックしたときに、このダイアログ・ボックスを使用中のコードでダイアログのプロパティのgetterをコールして、ユーザーが入力した情報をダイアログから読み取り、その情報を使用してなんらかの操作を実行する必要があります。

- モーダル・ダイアログ・ボックスの場合、この操作はshow()メソッド・コールの直後に実行できます。これは、show()はモーダル・ダイアログ・ボックスが消えるまで値を戻さないためです。resultプロパティを使用すると、「OK」ボタンが押されたのか「取消」ボタンが押されたのかを判別できます。

- モードレス・ダイアログ・ボックスの場合、show()は即時に値を戻します。このため、ボタンを押す各操作のイベントをダイアログ・クラス自体で公開する必要があります。ダイアログ・ボックスを使用する場合は、リスナーをダイアログのイベントに登録し、コードをイベント処理メソッドに挿入し、プロパティのgetterを使用してダイアログ・ボックスから情報を取得します。

20.7.12 タブ付きペインの作成方法

タブ付きペインは、複数のパネルのコンポーネント(ボタン、チェック・ボックスおよびテキスト・フィールドなど)をグループ化するUIコンテナです。各パネルにはタイトルとタブがあり、エンド・ユーザーはタブをクリックしてパネルのコンテンツを表示します。

タブ付きペインを作成する手順は、次のとおりです。

1. フレームまたは他のコンテナを作成します。詳細は、第20.7.8項「フレームの作成方法」を参照してください。

2. コンポーネント・パレットのSwingコンテナ・ページで、「JTabbedPane」コンポーネントをクリックします。

3. Javaビジュアル・エディタでコンテナ内をクリックし、タブ付きペインをデフォルトのサイズでドロップします。

4. 必要に応じてタブ付きペインをサイズ変更します。

5. タブ付きペインに最初のタブを追加するには、コンポーネント・パレットのSwingコンテナ・ページで「JPanel」コンポーネントをクリックし、Javaビジュアル・エディタで「JTabbedPane」をクリックします。

6. タブ付きペインに2番目以降のタブを追加するには、コンポーネント・パレットで「JPanel」コンポーネントをクリックした後、前に追加したタブ・パネルのタブ自体をクリックする必要があります。

7. タブ付きペインのいずれかのタブにレイアウト・パネル(タブのないパネル)を追加するには、コンポーネント・パレットのSwingコンテナ・ページで「JPanel」コンポーネントをクリックし、Javaビジュアル・エディタで「JTabbedPane」のコンテンツ領域をクリックします(この場合は、タブ自体をクリックしないでください)。
現在Javaビジュアル・エディタで最前面のタブになっていないパネルを操作するには、そのタブを直接クリックします。タブを選択すると、そのパネルもスタック順の最前面に移動します。また、タブ・パネルを選択するには、「構造」ウィンドウで目的のパネルを選択する方法もあります。タブ付きペインに追加したパネルを表示するには、「UI」フォルダを開き、「dataPanel」ノードを開き、最後に「JTabbedPane」ノードを開いてJPanelのリストを表示します。

20.8 コンテナ内のコンポーネントの使用

JDeveloperツールを使用してコンテナ・コンポーネントを作成および管理できます。

20.8.1 ユーザー・インタフェースへのコンポーネントの追加方法

作成したUIコンテナにJDeveloperのコンポーネント・パレットからコンポーネントを挿入する方法は複数あります。

- マウスを使用してコンポーネントを選択、挿入および配置します。

- キーボード・バインディングを使用してコンポーネントを選択し、挿入します。

Javaビジュアル・エディタでコンポーネントを視覚的に追加すると、JDeveloperによりコンポーネントのインスタンス変数が生成されてソース・コードに追加されます。コンポーネントを削除すると、関連する行がJavaビジュアル・エディタによりコードから削除されます。

マウスを使用してUIにコンポーネントを追加する手順は、次のとおりです。

1. コンテナ・コンポーネントを作成します。

2. 「コンポーネント・パレット」ドロップダウン・メニューから必要なコンポーネント・リストを選択します。

3. パレット内で必要なコンポーネントをクリックします。

4. 選択したコンポーネントをコンテナに挿入するには、次の操作のいずれかを実行します。

- コンテナ内をクリックしてコンポーネントをデフォルト・サイズで挿入します。

- Javaビジュアル・エディタでマウスをドラッグし、1回目にクリックした位置から作成するオブジェクトに必要なサイズを表す最終位置までをバインドするボックスを描画します。特定のサイズまでドラッグする操作が該当するのは、コンテナのレイアウトで個別コンポーネントのサイズが考慮される場合のみです。最終的には、コンポーネントのサイズおよび位置はUI内の各コンテナのレイアウト・マネージャにより決定されます。

- コンポーネントを「構造」ウィンドウ内で必要なコンテナにドロップします。この方法では、コンテナ内のコンポーネントの表示位置を制御できないことに注意してください。

キーストロークのみを使用してコンテナにコンポーネントを追加する手順は、次のとおりです。

1. コンテナ・コンポーネントを作成します。詳細は、第20.8項「コンテナ内のコンポーネントの使用」を参照してください。

2. 「コンポーネント・パレット」ドロップダウン・メニューから必要なコンポーネント・リストを選択します。

3. パレットからコンポーネントを選択するには、[Tab]キーを押して必要なコンポーネントにフォーカスを設定し、[spacebar]を押して選択します。

4. 選択したコンポーネントをコンテナに挿入するには、[Enter]キーを押します。
挿入したコンポーネントは、UIコンテナの左上隅に表示されます。プロパティ・インスペクタを使用すると、挿入したコンポーネントのサイズおよび位置を設定できます。

コンポーネントの複数インスタンスを追加する手順は、次のとおりです。

コンポーネント・パレットで、[Shift]キーを押しながらコンポーネントをクリックします。[Shift]キーを放しても、パレットは複数作成モードのままになっています。

複数オブジェクト作成モードをオフにするには、コンポーネント・パレットで矢印ツールをクリックします。

20.8.2 設計時のコンポーネント・プロパティの設定方法

「プロパティ・インスペクタ」ウィンドウには、Javaビジュアル・エディタで選択したコンポーネントのプロパティが表示されます。「プロパティ・インスペクタ」ウィンドウを使用して、設計時にUI設計内の任意のコンポーネントのプロパティ値を設定します。

コンポーネントのプロパティを設計時に設定するには、次のようにします。

1. Javaビジュアル・エディタまたは「構造」ウィンドウでコンポーネントを選択します。

2. 選択したコンポーネントの値を含むプロパティ・インスペクタを表示するには、「表示」→「プロパティ・インスペクタ」を選択するか、Javaビジュアル・エディタでコンポーネントを右クリックして「プロパティ・インスペクタ」を選択します。「プロパティ・インスペクタ」ウィンドウが強調表示されます。

3. 選択したコンポーネントの値を含むプロパティ・インスペクタを表示するには、「プロパティ・インスペクタの表示」を選択するか、Javaビジュアル・エディタでコンポーネントを右クリックして「プロパティ・インスペクタ」を選択します。「プロパティ・インスペクタ」ウィンドウが強調表示されます。または
プロパティ・インスペクタのツールバーで、「検索」テキスト・フィールドにプロパティ名を入力し、[Enter]キーを押してインスペクタにプロパティを表示します。名前の一部を入力したか、複数のプロパティが同じ名前で存在する場合、上矢印または下矢印ボタンを使用して、入力した名前と一致するプロパティにジャンプできます。

4. 次のいずれかの方法で右側の列に値を入力します。

- テキスト・フィールドのみが表示されている場合は、単にそのプロパティの文字列値(テキスト値または数値など)を入力して[Enter]キーを押します。

- 値フィールドに下向き矢印が表示されている場合は、矢印をクリックし、リストから値を選択して[Enter]キーを押します。

- 値フィールドに省略記号(...)ボタンが表示されている場合は、このアイコンをクリックして、そのプロパティのプロパティ・エディタ(カラー・セレクタやフォント・セレクタなど)を表示します。プロパティ・エディタで値を設定し、「OK」をクリックします。

複数コンポーネントのプロパティを設定するには、次のようにします。

1. [Ctrl]キーまたは[Shift]キーを押しながら目的のコンポーネントを選択します。

2. プロパティ・インスペクタに、選択したコンポーネントによって共有されているプロパティが表示されます。プロパティ・インスペクタで、必要なプロパティを選択して編集します。共有プロパティの値を編集すると、選択した全コンポーネントの値が同じになります。値がイタリックで表示される場合、アンカー・コンポーネントの値に属している値が、選択した他のコンポーネントと異なることを意味します。

注意:

[Ctrl]キーを使用すると、選択したオブジェクトの選択状態が(非選択から選択済へ、または選択済から非選択へ)切り替わります。[Shift]キーを使用して選択すると、オブジェクトのアンカー使用も次のように変化します。

- オブジェクトが選択されていない場合は、選択状態になり、アンカーになります。

- オブジェクトが選択されている場合は、単にアンカーになります。

[Ctrl]キーまたは[Shift]キーを使用する場合、コントロールが選択されていない状態から選択状態になると、ユーザーが[Shift]選択アクションを使用してアンカーを変更するまで、新規アンカーになっています。

20.8.3 コンテナのレイアウトの変更方法

JDeveloperのインスペクタにはlayoutプロパティが用意されており、Javaビジュアル・エディタでコンテナの新規レイアウトを選択できます。

新規レイアウトを選択する手順は、次のとおりです。

1. 「構造」ウィンドウでコンテナを選択します。

2. インスペクタの「プロパティ」タブをクリックし、layoutプロパティを選択して値フィールドをクリックします。

3. layoutプロパティの値フィールドで下矢印をクリックし、ドロップダウン・リストからレイアウトを選択します。

JDeveloperにより次の操作が実行されます。

- 「構造」ウィンドウ内で新規レイアウト・マネージャが置換されます。

- ソース・コードが変更され、新規レイアウト・マネージャが追加され、setLayoutへのコンテナのコールが更新されます。

- Javaビジュアル・エディタでコンポーネントのレイアウトが変更されます。

- インスペクタおよびソース・コード内でコンテナのコンポーネントのレイアウト制約が更新されます。

20.8.4 コンポーネントのレイアウト制約の変更方法

コンポーネントをコンテナにドロップすると、JDeveloperにより、そのコンテナのレイアウト・マネージャに適した制約オブジェクトまたは値が作成されます。この制約値またはオブジェクトは、プロパティ・インスペクタでそのコンポーネントのconstraintプロパティに自動的に挿入されます。また、ソース・コードにもjbInit()メソッド内のadd()メソッド・コールのパラメータとして追加されます。

コンポーネントのレイアウト制約を編集する手順は、次のとおりです。

1. Javaビジュアル・エディタまたは「構造」ウィンドウでコンポーネントを選択します。

2. プロパティ・インスペクタでconstraintsプロパティを選択し、「値」フィールドをクリックします。
nullレイアウト・マネージャを使用する場合に、子にconstraintsプロパティがなければ、かわりにboundsプロパティにレイアウト制約を設定します。

3. プロパティ・エディタを使用して制約を変更します。または
Javaビジュアル・エディタで必要なツールバーの制約ボタンをクリックし、使用可能な場合はドロップダウン・リストから値を選択します。

20.8.5 ユーザー・インタフェースでのコンポーネントの選択方法

UIの既存のコンポーネントを選択する前に、コンポーネント・パレットの選択矢印が選択されていないことを確認してください。この矢印が選択されていると、コンポーネントを意図せずにUIに配置してしまうことがあります。

単一コンポーネントを選択するには、次のいずれかの操作を実行します。

- Javaビジュアル・エディタでコンポーネントをクリックします。

- Javaビジュアル・エディタにフォーカスを置き、[Tab]を使用してコンポーネントに移動します([Tab]を押すと正方向へ移動し、[Shift]を押しながら[Tab]を押すと逆方向へ移動します)。

- 「構造」ウィンドウでコンポーネントを選択します。

複数のコンポーネントを選択するには、[Ctrl]キーを押しながら次のいずれかの操作を実行します。

- Javaビジュアル・エディタでコンポーネントを一度に1つずつクリックします。

- 選択するコンポーネントの範囲の外側をクリックしてドラッグします。

注意:

複数選択の場合、[Shift]キーを使用すると選択したオブジェクトのうち選択アンカーとなっているオブジェクトが変わるため、[Ctrl]キーを使用することをお薦めします。選択アンカーは、プロパティ・インスペクタにプロパティ値が表示されるオブジェクトであり、ポップアップ・メニュー・アクション(位置合せなど)もこのオブジェクトに適用されます。

ドラッグして複数コンポーネントを(投げ縄で囲むように)方形で囲みます。選択するコンポーネントがすべてこの方形で囲まれた時点で、マウス・ボタンを放します。必要な場合は、[Ctrl]キーを押しながらクリックして、選択したグループのコンポーネントを個別に追加または削除できます。

「構造」ウィンドウで、[Ctrl]キーを押しながら各コンポーネントを選択します。

20.8.6 コンポーネントのサイズ設定および移動方法

多くのレイアウトの場合、コンポーネントのサイズはレイアウト・マネージャにより制約に従って決定され、Javaビジュアル・エディタでのサイズ設定は無効です。ただし、null、XYLayoutまたはGridBagLayoutを使用している場合は、最初にUIに配置するときにコンポーネントのサイズを設定したり、後でコンポーネントをサイズ変更して移動できます。

注意:

現在、GridBagLayoutでは作成時のサイズが無視されますが、作成後にコンポーネントをサイズ変更できます。

コンポーネントを追加時にサイズ設定する手順は、次のとおりです。

1. コンポーネント・パレットでコンポーネントを選択します。

2. UIにおけるコンポーネントの表示位置にカーソルを置きます。

3. マウス・ポインタをドラッグしてからマウス・ボタンを放します。ドラッグするにつれて、コントロールのサイズと位置を示すアウトラインが表示されます。

4. アウトラインが目的のサイズになった時点でマウス・ボタンを放します。

コンポーネントを一度に1ピクセルずつ移動する手順は、次のとおりです。

1. 「グリッドに合せる」機能がオフになっていることを確認します(「ツール」→「プリファレンス」、「Javaビジュアル・エディタ」を表示)。

2. コンポーネント・パレットでコンポーネントを選択します。

3. [Ctrl]キーを押しながら[Shift]キーを押し、矢印キーを使用してオブジェクトを一度に1ピクセルずつ移動します。

選択したコンポーネントをサイズ変更または移動する手順は、次のとおりです。

1. Javaビジュアル・エディタまたは「構造」ウィンドウで、コンポーネントをクリックして選択します。
コンポーネントを選択すると、コンポーネントの外枠にサイズ変更ハンドルまたはニブが表示されます。コンテナによっては、コンポーネント中央に移動ハンドルが表示されます。

2. 該当する外側のハンドルをクリックし、ドラッグしてサイズを変更します。

3. コンポーネント内をクリックし、必要な方向へドラッグして移動します。コンポーネントが他のコンポーネントの背面にあるコンテナの場合は、中央の移動ハンドルを使用してドラッグします。

選択したコンポーネントのグループをサイズ変更または移動する手順は、次のとおりです。

1. 変更するコンポーネントのグループを次のいずれかの方法で選択します。

- [Ctrl]キーを押しながら各コンポーネントを選択します。

- マウスの左ボタンを押しながら、変更するコンポーネントのグループを囲む方形を描きます。

コンポーネントを選択すると、コンポーネントの外枠にサイズ変更ハンドルまたはニブが表示されます。コンテナによっては、コンポーネント中央に移動ハンドルが表示されます。

2. 該当する外側のハンドルをクリックし、ドラッグしてサイズを変更します。

3. コンポーネント内をクリックし、必要な方向へドラッグして移動します。コンポーネントが他のコンポーネントの背面にあるコンテナの場合は、中央の移動ハンドルを使用してドラッグします。

4. 右クリックして「サイズおよび領域」を選択し、必要な操作を選択します。
または

Javaビジュアル・エディタのツールバーで目的のサイズ・ボタンをクリックします。現在選択しているコンポーネントに無効な操作は、ツールバーとポップアップ・メニューに無効状態で表示されます。

20.8.7 コンポーネントのグループ化方法

JDeveloperには、設計時に単一コンポーネントとして動作するように、コンポーネントをグループ化するためのコンテナ・コンポーネントが多数用意されています。

たとえば、1行のボタンをPanelにグループ化してツールバーを作成できます。また、コンテナ・コンポーネントを使用して、カスタマイズした背景、ステータス・バーまたはチェック・ボックスのグループを作成できます。

コンポーネントをコンテナ内に置くときに、コンテナと中のコンポーネントの関連を作成します。移動、コピーまたは削除など、コンテナに対して実行する設計時操作は、中でグループ化されているコンポーネントにも影響します。

コンポーネントをコンテナ内に置いてグループ化する手順は、次のとおりです。

1. コンテナをUIに追加します。
GridBagLayout、nullレイアウトまたはXYLayoutなど、サイズを考慮するレイアウトで作業している場合は、ドラッグしてサイズを設定できます。

2. 各コンポーネントをコンテナに追加し、マウス・ポインタがコンテナの境界内にあることを確認します。(JDeveloper下部のステータス・バーに、マウスが置かれているコンテナが表示されます。)コンポーネント・パレットから新規コンポーネントを追加するか、既存のコンポーネントを新規コンテナにドラッグできます。
コンポーネントを追加すると、Javaビジュアル・エディタでは選択したコンテナの中に表示され、「構造」ウィンドウではそのコンテナの下に表示されます。

ヒント:

コンポーネントを最初に置いた位置に残しておく場合は、コンテナのレイアウトをnullに変更してからコンポーネントを追加します。先にレイアウトを変更しないと、コンポーネントのサイズと位置は、コンテナで使用されているレイアウト・マネージャに従って変化します。コンポーネントの追加を終了した後、最終的なレイアウトに変更できます。

20.8.8 コンポーネントのZ順序の変更方法

JDeveloperでは、UI設計に視覚的に相互に重なっているコンポーネントの順序を変更できます。Z順序で指定されている最前面のコンポーネントが、デフォルトで実行時に表示されます。

注意:

Javaビジュアル・エディタに表示されるのはスタックの最前面のコンポーネントのみですが、スタックのZ順序は「構造」ウィンドウで確認できます。最前面のコンポーネントがノード・リストの先頭に表示され、その後にスタックの次のコンポーネントが続きます。Z順序を変更すると、「構造」ウィンドウが更新されて新しい順序が表示されます。

最前面のコンポーネントのZ順序を変更する手順は、次のとおりです。

1. Javaビジュアル・エディタで、スタックの最前面にあるコンポーネントを選択します。

2. 右クリックし、「順序」→「最背面へ移動」を選択します。

視覚的に最前面にないコンポーネントのZ順序を変更する手順は、次のとおりです。

1. 「構造」ウィンドウで、順序を変更するスタック・コンポーネントを選択します。

2. Javaビジュアル・エディタで、右クリックして「順序」を選択し、「最前面へ移動」または「最背面へ移動」を選択します。

20.8.9 コンポーネントの切取り、コピー、貼付けおよび削除方法

JDeveloperでは、Javaビジュアル・エディタで「切取り」、「コピー」、「貼付け」および「削除」機能を使用できます。これらの操作を、同じプロジェクトまたは異なるプロジェクトのファイル間で実行できます。

注意:

あるファイルと別のプロジェクトのファイル間で切取り、コピーおよび貼付けを行うには、ターゲット・プロジェクトのプロジェクト・プロパティを更新して追加ライブラリを組み込む操作が必要になることがあります。貼り付けるオブジェクト用の適切なライブラリがターゲット・プロジェクトで定義されていないと、Javaビジュアル・エディタでそのオブジェクトのクラスが認識されないため、貼付けに失敗します。

20.8.10 コンポーネントのコピー方法

Javaビジュアル・エディタでコピーしたビジュアル・コンポーネントはシステムのクリップボードにはコピーされず、他のアプリケーションには転送できません。スクリーン・キャプチャ・ユーティリティを使用してコントロールのイメージを作成するか、ソース・テキストをコピーして別のJava開発環境でJavaコードを使用します。

イベント・メソッドが定義されているコンポーネントをコピーすると、イベント・ハンドラではなくイベント・リスナーがコンポーネントとともにコピーされます。これは、ほとんどの場合、コピー対象が動作ではなくコントロールのフォーマットであるためです。コントロールと動作を異なるJavaクラス・ファイルにコピーすることが目的の場合は、ハンドラを個別にコピーする必要があります。そのためには、コード・エディタでファイルを開き、ハンドラ・コードを探して選択し、「編集」→「コピー」を選択します。

1つ以上のコンポーネントをコピーするには、次のようにします。

1. コピーするコンポーネントを選択します。詳細は、第20.8.5項「ユーザー・インタフェースでのコンポーネントの選択方法」を参照してください。

2. 「編集」→「コピー」を選択します。

コンポーネントがJDeveloperのローカル・クリップボードにコピーされます。

20.8.11 コンポーネントの切取り方法

コンポーネントを切り取る前に、前に切り取ったオブジェクトを必ず貼り付けてください。これは、イベント・コードを切り取るとクリップボードの内容が上書きされるためです。

ユーザー・インタフェースからコンポーネントを切り取るには、次のようにします。

1. 切り取るコンポーネントを選択します。

2. 「編集」→「切取り」を選択します。

コンポーネントがJavaビジュアル・エディタから削除され、(システム・クリップボードではなく)JDeveloperからのみアクセス可能なローカル・クリップボードに置かれます。コントロールをコンテナに貼り付けずにJDeveloperを終了した場合、切り取ったバージョンのコントロールは失われます。

切取りコマンドは、切取り/貼付け操作の最初のステップです。コンポーネントの削除のみをする場合は、後述の「コンポーネントの削除」を参照してください。コンポーネントの削除では、クリップボードの内容を変更せずにコンポーネントが削除されます。切取りコマンドを使用してアイテムを永久に削除する習慣がある場合、間違ってクリップボードの保存しておきたい内容を置換してしまう可能性があります。

イベント・メソッドが定義されているコンポーネントを切り取ると、コンポーネントとともにイベント・リスナーが切り取られます。イベント・ハンドラはソース・コードから削除されず、クリップボードに置かれることもありません。これには、次の2つの理由があります。

- ほとんどの場合、切り取るのはコントロールの動作ではなく、保持しておく必要のあるフォーマットです。

- 複数のコンポーネントで同じイベント・ハンドラが使用されていることがあるため、コードから削除するとプログラムの他の部分に影響する可能性があります。

コード・エディタでイベント・ハンドラを切り取るには、ハンドラ・コードを探して選択し、「編集」→「切取り」を選択します。

20.8.12 コンポーネントの貼付け方法

JDeveloperの「設計」ウィンドウからコピーするか切り取ったコンポーネントを、設計可能な他のクラス・ファイルに貼り付けることができます。

コンポーネントを貼り付けるには、次のようにします。

1. Javaビジュアル・エディタで、コンポーネントを貼り付けるファイルを開きます。

2. コンポーネントを貼り付けるコンテナを選択します。

3. 「編集」→「貼付け」を選択します。

貼り付けたJavaBeansコンポーネントにより、元のコンポーネントからソース・コードに既存のイベント・リスナー・コードが追加されます。イベント・ハンドラ・コードがコンポーネントとともにコピーされたり切り取られることはありません。同じイベント・ハンドラを使用するには、コード・エディタを使用してハンドラを個別にコピーして貼り付ける必要があります。

20.8.13 UIからのコンポーネントの削除方法

クリップボードの内容に影響を与えずにJavaプログラムからコンポーネントを削除する場合は、そのコンポーネントを削除します。

コンポーネントを削除するには、次のようにします。

1. Javaビジュアル・エディタまたは「構造」ウィンドウでコンポーネントを選択します。

2. [Del]キーを押します。

Javaビジュアル・エディタからJavaBeansコンポーネントを削除すると、イベント・リスナー・メソッド(存在する場合)がソース・コードから削除されますが、イベント・ハンドラ・メソッドは削除されません。イベント・ハンドラ・メソッドを削除する場合は、コード・エディタで削除する必要があります。

20.9 メニューの使用

次の用語は、メニューの基本的な各部を指しています。

- メニュー・バーは、フレームの最上部に表示されます。「ファイル」、「編集」または「ヘルプ」など、1つ以上のトップレベル・メニューで構成されます。JMenuBarは、コンポーネント(JComboBoxまたはJToggleButtonなど)を子として持つことができます。

- メニューはメニュー・バーの子で、メニュー項目、サブメニューおよびセパレータの集合を含みます。

- サブメニューは、メニュー・バーではなく別のメニューを親に持つメニューです。

- メニュー項目は、コマンドを起動できるメニュー上の個別要素です。メニュー項目には、属性(許可されない場合は無効化(グレー表示)する、選択状態を切り替えることができるようにチェック可能にするなど)を割り当てることができます。

- アクセラレータはキーボード・ショートカットと呼ぶこともあり、メニュー項目の代替起動方法を提供します。メニュー項目にアクセラレータがある場合は、メニュー項目の右側に表示されます。

- セパレータ・バーを使用すると、関連項目を視覚的にグループ化できます。コマンドを起動することはありません。

20.9.1 メニュー・コンポーネントの理解

コンポーネント・パレットには、MenuBar、JMenuBar、PopupMenuおよびJPopupMenuという4タイプのメニュー・コンポーネントがあります。

- MenuBarまたはJMenuBarはメインUIのFrameにアタッチされ、フレームの上部に表示されます。

- PopupMenuまたはJPopupMenuは、ユーザーがUIで右クリックすると表示されます。実行時にはポップアップ・メニューはメニュー・バーに表示されず、ユーザーが起動した場合に表示されます。

この4つのコントロールは、すべてプロパティ・インスペクタで編集可能です。

UIコンテナに最初にドロップしたMenuBarまたはJMenuBarコントロールは、UIの現在のメニュー・バーとみなされます。ただし、アプリケーション用に複数のメニュー・バーを作成できます。作成したメニュー・バーは、インスペクタでフレームのMenuBarプロパティに表示されます。MenuBarプロパティのドロップダウン・リストからメニューを選択すると、そのメニューがアクティブになります。

注意:

メニュー・コンポーネントは、設計時にメニュー・エディタでのみ編集可能であり、Javaビジュアル・エディタでは編集できません。メニュー・バーおよびトップレベル・メニューはJavaビジュアル・エディタに表示されますが、選択も編集もできません。ただし、「構造」ウィンドウではいつでも表示および選択できます。UIでのメニューの外観を確認するには、アプリケーションを実行します。

20.9.2 メニュー・エディタの使用

メニュー・エディタにアクセスするには、Javaビジュアル・エディタでJavaファイルを開きます。これにより、「構造」ウィンドウが参照可能になります。次に、「構造」ウィンドウでメニュー、メニュー項目またはメニュー・ルート・ノードをクリックすると、メニュー・エディタが表示されます。

メニュー・エディタでメニューを作成するには、次のように複数の方法があります。

- キーボードの矢印キー、[Esc]キーおよび[Enter]キーを使用して、編集可能なメニュー・コンポーネントのフォーカスを変更できます。

- ドラッグ・アンド・ドロップ操作により、メニューまたはメニュー項目を移動できます。

- メニュー・エディタのツールバーまたはメニュー項目のポップアップ・メニューを使用して、メニュー・コンポーネントを挿入できます。

たとえば、メニュー・エディタで現在フォーカスが設定されているメニュー・コンポーネント(ハイライトされているボックスとして表示)に、ラベルを直接入力できます。[Enter]を押すとラベルが検証され、次のメニュー・コンポーネントのラベルを入力できます。また、キーボードの矢印キーを使用すると、メニュー・エディタ内の現在のフォーカスを、編集対象のメニュー内の別の位置に移動できます。[Esc]キーを押すと、メニュー内の他の場所にあるフォーカスがメニュー・バーに切り替わります。

指定したラベルのみでなく、様々なメニュー・コンポーネントも挿入できます。その場合、メニュー・エディタのツールバーを使用する方法、またはメニュー・コンポーネントを右クリックして複製されるコマンドを使用する方法があります。ツールバーおよびポップアップ・メニューでは、次の操作がサポートされています。

- メニュー項目の挿入

- セパレータの挿入

- サブメニューの挿入

- メニュー項目の有効化またはメニュー項目の無効化

- メニュー項目のチェック可能化

また、メニュー・バー内のメニューまたはメニュー内のメニュー項目をクリックし、ドラッグ・アンド・ドロップ操作を使用して、メニュー全体またはメニュー項目の1つを再配置することもできます。

20.9.3 コード・エディタとプロパティ・インスペクタの相互作用

JDeveloperでは、作業中に行った変更内容が同期化されます。メニュー・エディタでメニュー項目を編集すると、すべての変更内容がコード・エディタまたはプロパティ・インスペクタによりソース・コードに反映されます。ソース・コード内またはプロパティ・インスペクタでメニューを変更すると、変更内容はメニュー・エディタに反映されます。

たとえば、MenuBarコンポーネントにMenuを追加すると、このMenuが「構造」ウィンドウにMenuBarの子として表示されます。また、MenuまたはMenuItemのプロパティ(textやenabledなど)を変更すると、これらの変更はコード、メニュー・エディタおよびプロパティ・インスペクタに反映されます。

JDeveloperではコード・エディタとの同期も維持されるため、メニュー設計を手動で保存する必要はありません。JDeveloperによりコードが生成され、メニュー・エディタを使用する場合と同様にコード・エディタで表示して編集できます。Javaソース・ファイルを保存すると、生成されたコードも保存されます。次回にJavaファイルを開いて「構造」ウィンドウでMenuBarコンポーネントを選択すると、メニュー・エディタが開き、そのコンポーネントのすべての情報がリロードされます。

UI設計にメニュー・コンポーネントを追加した後、メニュー・エディタを使用してメニュー構造を設計できます。ユーザー・インタフェースでメニューをアクティブ化するには、プロパティ・インスペクタを使用してメニュー項目をイベントにアタッチするか、コード・エディタでコードを手動で入力する必要があります。

20.9.4 フレームへのメニュー・コンポーネントの追加方法

非ポップアップ・メニューのアタッチ先はJFrameまたはJDialogなどのコンテナのみであるため、最初にコンテナ・ファイルを開く必要があります。次のいずれかの方法でファイルを開くことができます。

- 既存のFrameまたはDialogファイルを開きます。

- 「新規ギャラリ」を使用して、新規フレームを作成するか、ダイアログを作成します。詳細は、第20.7.8項「フレームの作成方法」を参照してください。

UIにメニュー・コンポーネントを追加する手順は、次のとおりです。

1. ナビゲータでUIフレーム・ファイルを右クリックして「開く」を選択します。

2. Javaビジュアル・エディタまたは「構造」ウィンドウでメインUIフレームを選択します。

3. 「コンポーネント・パレット」でメニュー・コンポーネントをクリックし、Javaビジュアル・エディタの任意の場所にドロップします。
メニュー・バーまたはポップアップ・メニューを選択できます。

- メニュー・バーはメインUIフレームまたはダイアログにアタッチされており、アプリケーションの最上部に表示されます。

- ポップアップ・メニューは、ユーザーがUIで右クリックしたときに表示されます。ポップアップ・メニューにはメニュー・バーがありません。

また、すでにメニュー・コンポーネントを含んでいるファイルを開くこともできます。

この時点で、UIには何も表示されません。追加したメニュー・コンポーネントは「構造」ウィンドウに表示され、メニュー・エディタで開きます。

20.9.5 ポップアップ・メニューの追加方法

ポップアップ・メニューは、特定のUIコンテナ上で開くように作成できます。コンテナにポップアップ・メニューを追加し、イベント・ハンドラを作成して、ポップアップをトリガーするユーザー操作を指定します。

ポップアップ・メニューを追加する手順は、次のとおりです。

1. Javaビジュアル・エディタでUIクラスを開きます。

2. AWTまたはSwingコンテナのコンポーネント・パレットから、ポップアップ・メニューを「構造」ウィンドウにドロップします。メニュー・エディタが表示されます。

3. ポップアップ・メニューにメニュー項目を1つ以上追加します。詳細は、第20.9.8項「メニュー項目の追加方法」を参照してください。

4. 「構造」ウィンドウで「UI」フォルダを開き、ポップアップ・メニューの添付先となるイベントがあるパネルまたは他のコンポーネントを選択します。これにより、そのコンポーネントをプロパティ・インスペクタで参照できるようになります。次の例では、panel1が選択されています。

5. プロパティ・インスペクタで「イベント」タブをクリックし、必要なイベントの「値」フィールドをクリックします。

6. イベントの「値」フィールドにイベントのスタブ名を入力し、[Enter]キーを押して、イベント処理メソッド・スタブを指定の名前でソース・コードに作成します。次の例では、MouseClickedイベントが選択され、panel1_mouseClickedという名前が入力されています。

7. イベント・ハンドラ・スタブを次のように編集します。

例20-2 イベント・ハンドラ・スタブ

void panel1_mouseClicked(java.awt.event.MouseEvent e) {
panel1.add(popupMenu1);
if (e.isPopupTrigger()) {
// Make the PopupMenu visible relative to the current mouse
// position in the container.
opupMenu1.show(panel1, e.getX(), e.getY());
}
}

8. アプリケーションでの必要性に応じて、ポップアップ・メニューのメニュー項目にイベント・ハンドラを追加します。

20.9.6 サブメニューの作成方法

サブメニューをメニューに表示して、追加の関連コマンドを提供できます。このようにネストしたリストは、メニュー・テキストと後続の矢印で示されます。JDeveloperでは、メニューに組み込む必要のあるレベル数のサブメニューがサポートされています。

サブメニューを使用してメニュー構造を編成すると、垂直方向の画面領域を節約できます。ただし、最適な設計にするには、UI設計に使用するメニュー・レベルを2または3レベルに抑えることになります。

メニューをメニュー・バーから別のメニューに移動すると、サブメニューになります。同様に、メニューを既存のサブメニューに移動すると、サブメニューの下の別のサブメニューとなります。

サブメニューを作成するには:

1. サブメニューの追加先となるメニュー項目を選択します。

2. 右クリックして「サブメニューの挿入」を選択します。
または、メニュー項目を選択し、[Ctrl]キーを押しながら[→]キーを押してサブメニューを作成する方法もあります。

3. 新規のサブメニュー項目をクリックし、ネストしたメニュー項目の名前を入力するか、このプレースホルダに既存のメニュー項目をドラッグします。

4. [Enter]キーまたは[↓]キーを押して次のプレースホルダを作成します。

5. サブメニューに作成する項目ごとに手順3および4を繰り返します。

6. [Esc]キーを押して直前のメニュー・レベルに戻ります。

20.9.7 メニュー・エディタでのメニューのカスタマイズ

JDeveloperのメニュー・エディタを使用して、メニュー項目をカスタマイズおよび管理します。

20.9.8 メニュー項目の追加方法

メニュー・エディタを初めて開くと、定義済のメニュー項目を使用して開いたメニュー・バーまたはポップアップ・メニューが表示されます。メニュー・バーの最後のメニューの右側には空白のメニューもあり、各メニューの最後にはプレースホルダが破線の矩形として表示されます。

既存のメニューにメニュー項目を追加する手順は、次のとおりです。

1. メニュー・エディタで、新規メニューを追加するメニュー・バー上の位置を選択するか、または新規のメニュー項目、セパレータまたはサブメニューを追加するメニュー上の位置を選択します。

2. 右クリックして「メニュー項目の挿入」を選択します。

3. メニュー・エディタにメニュー項目がハイライト状態で表示されている間に、新規メニュー・コンポーネントのラベルに使用するテキストを入力します。
入力を開始すると、ハイライトされている破線の矩形が、カーソルを含んだ通常のテキスト編集フィールドに変わります。このテキスト・フィールドは、編集フィールドよりも長いラベルに対応するために、入力するにつれてスクロールされます。

4. 入力の完了後に[Enter]を押します。
リストにすべてのラベルを表示する必要がある場合は、リストの幅が拡大され、次のメニュー項目のプレースホルダが自動的に選択されます。

5. リストに作成する各新規項目のラベルを入力し、[Esc]を押してメニュー・バーに戻ります。
メニュー・エディタで項目を直接選択するのみでなく、矢印キーを使用してメニュー・バーからメニューに移動し、リスト内の項目間で移動し、[Enter]を押してアクションを完了することもできます。

20.9.9 メニュー項目の無効化方法

コマンドをメニューから削除せずに、現行のプログラム条件に基づいてユーザーによる特定のメニュー・コマンドへのアクセスを防止できます。たとえば、ドキュメントでテキストが選択されていない場合、「編集」メニューの「切取り」、「コピー」および「削除」項目は無効化され、グレー表示されます。

メニュー項目を無効化するにはenabledプロパティを使用します。ほとんどのプロパティと同様に、インスペクタを使用してenabledの初期値を指定できます。メニュー項目のデフォルトの有効化状態はTrueですが、これはイベントの発生時に変更できます。

メニュー項目を無効化する手順は、次のとおりです。

1. メニュー・エディタまたは「構造」ウィンドウでメニュー項目を選択します。

2. 右クリックして「有効」を選択します。

3. または、プロパティ・インスペクタで、メニュー項目のenabledプロパティをfalseに設定します。
visibleプロパティとは異なり、enabledプロパティは項目を参照可能なままにします。値falseに設定すると、メニュー項目はグレー表示されます。

20.9.10 アクセラレータの指定方法

アクセラレータを使用すると、ユーザーはアクセラレータ・キーの組合せを入力することで、メニューに直接アクセスせずにアクションを実行できます。たとえば、一般に「ファイル」→「保存」に使用されるアクセラレータは[Ctrl]+[S]です。

メニュー項目のアクセラレータを指定する手順は、次のとおりです。

1. 設計ビューまたは「構造」ウィンドウで、メニュー項目を選択します。

2. 「プロパティ・インスペクタ」ウィンドウで、「モデル」セクションからacceleratorプロパティを選択してドロップダウン・メニューから「KeyStroke」を選択します。「アクセラレータ」ダイアログを使用してキーの組合せを入力します。

20.9.11 セパレータ・バーの挿入方法

セパレータ・バーは、メニュー項目間または兄弟であるメニュー・コンポーネント(メニュー項目やサブメニューなど)間に直線として挿入されます。セパレータ・バーを使用して、メニュー内のグループを示すことができます。

メニューにセパレータ・バーを挿入する手順は、次のとおりです。

1. セパレータ挿入位置の前にあるメニュー項目を選択するか、メニューの最後にある空白の項目を選択します。

2. 右クリックして「セパレータの挿入」を選択します。
選択したメニュー項目の上にセパレータ・バーが挿入されます。

3. または、メニュー項目のラベルにハイフン(-)を1つ入力する方法もあります。
右クリック・メニューを使用してセパレータを挿入するとaddSeparator()行が生成されますが、ラベルにハイフンを使用すると、ラベルがハイフンになっている追加のクラス・メンバーが、よりメモリー集中型の方法で作成されます。

20.9.12 チェック可能なメニュー項目の作成方法

メニュー項目をチェック可能にするには、そのメニュー項目を標準のMenuItemコンポーネントからCheckboxMenuItemに変更する必要があります。CheckboxMenuItemにはStateプロパティ(ブール)があり、このプロパティによりイベント・ハンドラは関連イベント(動作)の実行方法を判別できます。

- 選択されたメニュー項目のstateプロパティは、trueに設定されます。

- 選択解除されているメニュー項目のstateプロパティは、falseに設定されます。

標準メニュー項目をCheckboxMenuItemに変更するには、次のようにします。

1. メニュー項目を選択します。

2. 右クリックして「チェック可能」を選択します。

20.9.13 メニューとメニュー項目の挿入および削除方法

新しい空のメニューまたはメニュー項目を挿入するには、カーソルを既存のメニュー項目に置いて右クリックし、「メニューの挿入」または「メニュー項目の挿入」を選択します。

メニューはメニュー・バー上で選択した項目の左側に挿入され、メニュー項目はメニュー上で選択した項目の上に挿入されます。

メニュー項目を削除するには、削除対象を選択して[Del]キーを押します。

注意:

メニュー・バーでは最後のメニューの後、メニューでは最後の項目の下に、デフォルトのプレースホルダ(削除不可)が表示されます。このプレースホルダは、実行時にはメニューに表示されません。

20.9.14 メニュー項目の移動方法

メニュー・エディタでは、メニューとメニュー項目をドラッグ・アンド・ドロップして移動できます。サブメニュー項目のあるメニュー項目を移動すると、サブメニュー項目も移動します。

メニュー項目とサブメニュー項目を次のように移動できます。

- メニュー内

- 他のメニューへ

メニュー全体をメニュー・バーに沿って移動します。

メニュー項目を移動するには:

1. メニュー項目またはサブメニュー項目をクリックして新しい位置へドラッグします。
メニュー項目を別のメニューにドラッグする場合は、カーソルが新規メニューを指すまでメニュー・バーに沿ってドラッグします。このアクションにより、メニューが開いて項目を新しい位置へドラッグできるようになります。

2. メニュー項目またはサブメニュー項目を新しい位置にドロップします。

メニューを移動するには:

1. メニュー・バーのメニュー・ラベルをクリックし、カーソルがメニューの表示位置を指すまでメニュー・バー上の新しい位置へドラッグします。

2. メニューを新しい位置にドロップします。

20.10 イベント処理の使用

JDeveloperのUI設計ツールを使用して、コンポーネント・イベントとメニュー・イベントにイベント・ハンドラ・コードをアタッチします。

Javaプログラムの構築時は、コードを初期化コードおよびイベント処理コードの2つのカテゴリに分けられるものとみなすことができます。

- 初期化コードは、UIコンポーネントの作成時に実行されます。これは主にコンポーネントの起動コードとみなすことができます。この初期化コードには、JDeveloperで設計されたすべてのGUIクラスに含まれるjbInit()メソッド内のすべての要素が含まれます。JDeveloperでは、UI設計に基づいてこのコードが生成されます。たとえば、インスペクタを使用してボタンのlabelプロパティを「OK」に設定したため、JDeveloperではbutton1.setLabel("OK")メソッドのコールが生成されます。

- イベント処理コードは、ユーザーがボタンを押したりメニュー項目を使用するなどのアクションを実行したときに実行されるコードです。そのコンポーネントのイベント名をインスペクタに入力し、[Enter]を押すと、JDeveloperではスタブ(空)イベント処理メソッドが自動的に作成されます。そのスタブにおいて、イベントにより引き起こされる実際のアクションを処理するコードを記述します。

プログラム全体は、要素が最初に表示されたときの外観を示す初期化コードと、ユーザー入力に応じた処理内容を示すイベント処理コードで構成されています。

ダイアログなどの一部のJDeveloperコンポーネントは、通常はイベント処理コードの実行時にのみ表示されます。たとえば、ダイアログはJavaビジュアル・エディタで設計しているUIの一部ではなく、ユーザーがメニュー項目を選択したりボタンを押したりすると一時的に表示される独立したUI部分です。したがって、show()メソッドのコールなど、ダイアログの使用に関連付けられたコードの一部は、イベント処理メソッドに配置される場合があります。

20.10.1 メニュー・イベントへのイベント処理コードのアタッチ方法

Swingでは、メニュー項目にactionPerformedイベントがあり、CheckboxMenuItemsにはitemStateChangedイベントがあります。メニュー項目のactionPerformedイベントに追加するコードは、ユーザーがそのメニュー項目を選択するか、対応するアクセラレータ・キーを使用するたびに実行されます。

メニュー項目のイベントにコードを追加する手順は、次のとおりです。

1. UIフレームのJavaビジュアル・エディタを開きます。

2. UIフレームにメニュー・バーを追加し、メニュー・バーにメニューとメニュー項目を挿入します。または、すでにメニューが含まれているファイルを開く方法もあります。

3. メニュー・エディタまたは「構造」ウィンドウでメニュー項目を選択します。

4. プロパティ・インスペクタで「イベント」タブをクリックし、必要なイベントの「値」フィールドをクリックします。

5. イベントの「値」フィールドにイベントのスタブ名を入力し、[Enter]を押して、イベント処理メソッド・スタブを指定の名前でソース・コードに作成します。
イベントの「値」フィールドに名前を入力すると、コード・エディタが開いて「構造」ウィンドウにソース・コードが表示されます。カーソルは新規に作成したイベント処理メソッドの本体に置かれており、コードを入力できます。

6. 左カッコと右カッコの間に、ユーザーがこのメニュー・コマンドをクリックしたときに実行させるコードを入力します。

20.10.2 コンポーネント・イベントへのイベント処理コードのアタッチ方法

インスペクタのイベント・ページを使用すると、コンポーネント・イベントにハンドラをアタッチしたり、既存のイベント・ハンドラを削除できます。

コンポーネント・イベントにイベント処理コードをアタッチする手順は、次のとおりです。

1. Javaビジュアル・エディタまたは「構造」ウィンドウでコンポーネントを選択します。

2. プロパティ・インスペクタで、「イベント」タブを選択し、そのコンポーネントに対するイベントを表示して、必要なイベントの「値」フィールドをクリックします。

3. イベントの「値」フィールドにイベントのスタブ名を入力し、[Enter]を押して、イベント処理メソッド・スタブを指定の名前でソース・コードに作成します。
イベント・ハンドラが新しい名前で作成され、ソース・コード内でそのイベント・ハンドラにフォーカスが移ります。また、イベントからイベント処理メソッドへの接続を確立するために、Adapterクラスに追加のコードも挿入されます。

4. イベント・ハンドラのスタブ内でコードを記述して、そのコンポーネント・イベントに対するレスポンスを指定します。

注意:

コンポーネントのサポート対象となるメソッドとイベントを検索するには、そのコンポーネントをコード・エディタで右クリックし、「宣言に移動」を選択してコード・エディタでクラスを開きます。また、コンポーネントを右クリックして「Javadocの参照」を選択すると、そのクラスに関するドキュメントを参照できます。

コンポーネントのデフォルト・イベントに対するイベント・ハンドラをすばやく作成する手順は、次のとおりです。

1. コンポーネント・パレットでコンポーネントを選択してUIに追加します。

2. Javaビジュアル・エディタでコンポーネントをダブルクリックします。イベント・スタブが作成され、ソース・コード内でそのイベント・ハンドラにフォーカスが移ります。

3. イベント・ハンドラに必要なコードを追加して完成します。

注意:

デフォルト・イベントはbeanInfoで定義されるか、未指定の場合はactionPerformedとして定義されます。

20.11 アプレットの使用

JDeveloperのUI設計ツールを使用して、アプレット・クラスとアプレットHTMLファイルを作成します。アプレットを含むHTMLファイルをJavaプラグインで使用可能なフォーマットに変換することもできます。

20.11.1 アプレットの作成方法

JDeveloperでは、容易にスケルトンのJavaアプレットを作成してコード・エディタで編集できます。

Javaアプレットを作成する手順は、次のとおりです。

1. ナビゲータで、新しいアプレットを作成するプロジェクトを選択します。

2. 「ファイル」→「新規」を選択し、「新規ギャラリ」を開きます。

3. 「カテゴリ」ツリーで、「Web層」を開いて「アプレット」を選択します。

4. 「項目」リストで、「アプレット」をダブルクリックして「アプレットの作成」ダイアログを開きます。
これにより、「アプレットの作成」ダイアログが開き、指定した情報(名前、パッケージおよび拡張するクラスなど)に基づいてアプレットが作成されます。

操作を完了すると、入力した詳細に基づいてアプレット・クラスを含むスケルトン.javaファイルが生成されます。このファイルをコード・エディタで編集できます。JDeveloperを使用すると、「アプレットHTMLファイル・ウィザード」でHTMLページを作成し、そのページにアプレットを埋め込むこともできます。また、JDeveloperからテストするためにアプレットをスタンドアロンで実行することも可能です。

20.11.2 アプレットHTMLファイルの作成方法

JDeveloperでは、アプレットのコンテナとして機能するJavaアプレットHTMLファイルを容易に作成できます。

JavaアプレットHTMLファイルを作成する手順は、次のとおりです。

1. ナビゲータで、アプレットを含むプロジェクトを選択します。

2. 「ファイル」→「新規」を選択し、「新規ギャラリ」を開きます。

3. 「カテゴリ」ツリーで「クライアント層」を開き、「Swing/AWT」を選択します。

4. 「項目」リストで、「アプレットHTMLページ」をダブルクリックして「アプレットHTMLファイル・ウィザード」を開きます。

「アプレットHTMLファイル・ウィザード」では、指定した情報(ファイルの場所、コード属性、配置属性およびアプレット・パラメータなど)に基づいてファイルが作成されます。オプションのデプロイメント・プロファイルを作成することもできます。

20.11.3 アプレットを含んだHTMLページの変換方法

JDeveloperにはJavaプラグインHTMLコンバータが組み込まれており、アプレットを含んだHTMLファイルを、Javaプラグインで使用可能なフォーマットに変換できます。

アプレットを含んだHTMLファイルを変換する手順は、次のとおりです。

1. 「ツール」→「HTMLの変換」を選択して、JavaプラグインHTMLコンバータを開きます。

2. 変換するファイルまたはファイルのディレクトリ・パスを指定します。

3. ディレクトリ・パスを入力した場合は一致するファイル名を指定し、オプションで「サブフォルダも含める」を選択します。

4. バックアップ・ファイル用のデフォルト・フォルダを変更するか、受け入れます。

5. ドロップダウン・リストから、使用するテンプレート・ファイルを選択します。

6. 「変換」をクリックします。
このプラグインでは、元のファイルのコピーがバックアップ・フォルダに置かれ、指定した全ファイルが元の場所で変換されます。コンバータの実行が完了すると、ファイルはJavaプラグインを使用するように設定されます。

7. 「進行状況」ウィンドウに全ファイルの処理が完了したことが示された時点で、「終了」をクリックします。

20.11.4 アプレットのデプロイ

Oracle Application ServerでJDeveloperを使用してアプレットまたは他のJava EE Webモジュールをデプロイするプロセスは、完全に自動化されたプロセスです。

20.11.4.1 デプロイ用のアプレットの構成方法

スタンドアロン・アプレットは、Webアーカイブ(WAR)ファイルとしてパッケージ化されます。このファイルには、そのアプレット、アプレットHTMLファイル、標準のJava EE Webデプロイメント・ディスクリプタweb.xml、および場合によっては、ターゲット固有のデプロイメント・ディスクリプタも含まれています。デプロイメント・プロファイルと適切なデプロイメント・ディスクリプタ・ファイルを作成した後は、アプリケーションを、アプリケーション・サーバーにデプロイしたり、アーカイブ・ファイルとしてデプロイすることができます。

Webアプリケーションをデプロイ用に構成するには、次の手順を実行します。

1. プロジェクト用のWARファイル・デプロイメント・プロファイルを作成します。
プロジェクトに、すでにプロファイルが作成されている場合があります。複数のターゲットにデプロイする場合は、ターゲットごとに個別のプロファイルを作成します。

2. プロジェクトに、web.xmlデプロイメント・ディスクリプタを追加します(存在しない場合)。
通常、このファイルはWARファイル・デプロイメント・プロファイルとともに作成されます。

注意:

「クラスが見つかりません」というエラーの表示など、Swingアプレット(JApplet)をデプロイしているときに問題が発生する場合、JDeveloperがSwingライブラリを検出できないことを意味している可能性があります。場合によっては、クライアントでSun社のJava SEブラウザ・プラグインを使用するか、JVMバージョン1.1のSwingライブラリをアプレットにバンドルする必要があります。

デプロイされるアプレット・ファイルは、デプロイ済の他のWebアプリケーション・ファイルとは別の場所に配置する必要があります。

20.11.4.2 WARファイルとしてのアプレットのデプロイ方法

アプレットを含むWebアプリケーション・コンポーネントは、WARファイルまたはEARファイルとしてターゲット・アプリケーション・サーバーにデプロイできます。

アプレットをWARファイルとしてデプロイするには、次の手順を実行します。

1. まだ構成していない場合は、アプレットをデプロイ用に構成します。

2. まだ作成していない場合は、アプリケーション・サーバー接続を作成します。

3. アプリケーション・ナビゲータで、プロジェクトを右クリックし、「デプロイ」→デプロイメント・プロファイルを選択します。

4. 「デプロイ」ダイアログで、次のいずれかのデプロイメント・オプションを選択します。

- アプリケーション・サーバー接続にデプロイ。デプロイメント・プロファイルで指定されたアーカイブ・タイプを作成し、「デプロイ」ダイアログの「サーバーの選択」ページで選択または作成したアプリケーション・サーバー接続にデプロイします。

- EARファイルにデプロイ。プロジェクトとその依存性(デプロイメント・プロファイルに指定)をEARにデプロイします。JDeveloperでは、EARファイルはデプロイメント・プロファイルに指定されているデフォルト・ディレクトリに置かれます。

- WARファイルへデプロイ。プロジェクトをWARにデプロイします。JDeveloperでは、WARファイルはデプロイメント・プロファイルに指定されているデフォルト・ディレクトリに置かれます。

注意:

デプロイされるアプレット・ファイルは、デプロイ済の他のWebアプリケーション・ファイルとは別の場所に配置する必要があります。

「クラスが見つかりません」というエラーの表示など、Swingアプレット(JApplet)をデプロイしているときに問題が発生する場合、JDeveloperがSwingライブラリを検出できないことを意味している可能性があります。場合によっては、クライアントでSun社のJava SEブラウザ・プラグインを使用するか、JVMバージョン1.1のSwingライブラリをアプレットにバンドルする必要があります。

20.12 UIデバッガの使用

JDeveloperでは、標準的なJavaおよびPL/SQLデバッガ機能のみでなく、AWTおよびSwingベースのクライアント・アプリケーションおよびアプレット専用のグラフィカル・ユーザー・インタフェース(GUI)のデバッグをサポートしています。

UIデバッガには、GUIアプリケーションのデバッグについて代替方法が用意されています。従来のデバッガでは、データ構造を調べてプログラム・フローをトラッキングしていました。UIデバッガでは、かわりにGUI構造とイベントの順序を調べることができます。UIデバッガを使用すると、画面に表示されるUIコンポーネントと実際のデータの関係を確認できます。また、UIコンポーネントにより起動されるイベントとイベントを受信するリスナーも表示されます。

UIデバッガを使用するには、「ヘルプ」→「更新のチェック」を選択し、ウィザードの指示に従い、最初にUIデバッガをダウンロードする必要があります。Oracle JDeveloper拡張機能のインストール方法の詳細は、『Oracle Fusion Middleware Oracle JDeveloperインストレーション・ガイド』を参照してください。

UIデバッガの使用に特別な追加前提条件はなく、JDeveloperデバッガを使用する場合と同じですが、「プロジェクト・プロパティ - ライブラリ」ページでJDeveloperランタイム・ライブラリjdev-remote.jarを選択する必要があります。

従来のほとんどのデバッガでは、GUIアプリケーションのツリー構造を調べるのが容易ではなく、アプリケーションに表示される内容の詳細も表示されないため、GUIアプリケーションのデバッグは困難な場合がありました。

デバッグを開始するには、プロジェクトを選択して「実行」→「UIデバッグ<projectname>.jpr」を選択することで、デバッグを開始できます。

20.12.1 「UIデバッガ」ウィンドウの使用

JDeveloperで公開されるUIデバッガ機能は、3つのドッキング可能ウィンドウを介して使用できます。「UIツリー」ウィンドウと「UIアウトライン」ウィンドウは、UIデバッガの起動時に自動的に表示されます。「イベント」ウィンドウは、イベントを初めてトラッキングする際に表示されます。この3つのウィンドウはいずれも、「表示」→「UIデバッガ - <UI_debugger_window>」を選択することでトグルできます。

注意:

「UIデバッガ」ウィンドウには、スナップショットを生成するまでは情報が表示されません。「スナップショット」ボタン([F5])をクリックすると、「UIツリー」ウィンドウと「UIアウトライン」ウィンドウに移入されます。

- UIツリー: アプリケーションのコンポーネント、サブコンポーネントおよびその親子関係を表す階層構造が表示されます。ツリーからコンポーネントを選択し、右クリックしてポップアップ・メニューのオプションを表示します。そのコンポーネントが「UIアウトライン」ウィンドウでも選択されていることがわかります。

- UIアウトライン: アプリケーションのGUIのイメージまたはアウトライン・イメージが表示されます。GUIアプリケーションのグラフィカル表現からコンポーネントを選択し、右クリックしてポップアップ・メニューのオプションを表示します。

注意:

AWTコンポーネントが正しくペイントされない可能性があるため、Swingベース以外のアプリケーション場合はアウトライン・モードを使用することをお薦めします。

- イベント: 「リスナー」ダイアログでリスニング対象として選択したイベントに関する情報が表示されます。「リスナー」ダイアログは、「UIツリー」ウィンドウまたは「UIアウトライン」ウィンドウで「イベント」ポップアップ・メニューのオプションを選択すると表示されます。このウィンドウでイベントを選択すると、そのソース・コンポーネントが「UIツリー」ウィンドウと「UIアウトライン」ウィンドウで選択されます。

20.12.2 UIデバッガの起動方法

UIデバッガ・タスクを実行する前に、まずUIデバッガを起動する必要があります。

UIデバッガを起動する手順は、次のとおりです。

1. ナビゲータでデバッグ対象のプロジェクトを選択します。

2. 実行構成を選択します。詳細は、第19.3項「プロジェクトを実行用に設定する方法」を参照してください。

3. 「実行」→「UIデバッグ<projectname>.jpr」を選択し、プロジェクトのデフォルト・ターゲットを起動してアプリケーションを実行します。
JDeveloperによって、UIデバッガが起動します。アプリケーションが起動し、「UIツリー」ウィンドウと「UIアウトライン」ウィンドウが自動的に表示されます。ただし、UIデバッガのウィンドウにはまだ情報が表示されません。

4. アプリケーションが完全に起動した後、デバッグ対象のダイアログまたはウィンドウに移動して選択します。

5. 一方のUIデバッガ・ウィンドウで「スナップショット」([F5])ボタンをクリックします。
「UIツリー」ウィンドウにアプリケーションの階層構造が表示され、「UIアウトライン」ウィンドウにアプリケーションのユーザー・インタフェースのグラフィカル表現が表示されます。

20.12.3 アプリケーション・コンポーネント階層の検査

「UIツリー」に表示される情報、「UIアウトライン」ウィンドウに表示される情報、および両者間の関係は、常に同期化されています。この2つのウィンドウには(表示方法が異なるのみで)同じ情報が表示されるため、「UIツリー」階層でコンポーネントを選択すると、「UIアウトライン」ウィンドウ内で同じオブジェクトが検索されてハイライトされ、その逆も同じです。

アプリケーション・コンポーネント階層を調べる前に、UIデバッガを起動してスナップショットを生成する必要があります。アプリケーションのUIが更新されるたびに、「スナップショット」を再度クリックして、UIデバッガのウィンドウに表示される情報を更新する必要があります。

アプリケーション・コンポーネント階層の検査方法は、次のとおりです。

- 「UIツリー」ウィンドウのツリーを使用してコンポーネントの階層構造を調べるか、「UIアウトライン」ウィンドウを使用してコンポーネントを目視で探します。

- 「UIアウトライン」ウィンドウの上部にある「イメージ」および「アウトライン」チェック・ボックスを使用して、それぞれコンポーネントのイメージと枠線をトグルします。

- 「UIアウトライン」ウィンドウの下部にあるアイコンを使用すると、アプリケーションのイメージをズームインまたはズームアウトできます。イメージがウィンドウよりも大きい場合は、イメージをクリックしてドラッグすると必要な部分を表示できます。

- 「UIアウトライン」ウィンドウで選択されていないコンポーネントは、赤い網掛け付きで表示されます。

- 非表示のコンポーネントは、「UIツリー」にグレーのテキストで表示されます。

- どちらのウィンドウでも、コンポーネントを右クリックしてポップアップ・メニューのオプションを表示できます。詳細は、「UIツリー」または「UIアウトライン」を参照してください。

20.12.4 「監視」ウィンドウでのコンポーネント情報の表示方法

コンポーネントに関連付けられているデータを調べるために、JDeveloperの「監視」ウィンドウで監視対象のコンポーネントを選択できます。監視式を使用すると、プログラムの実行に従って変化する、変数および式の値を監視できます。

「監視」ウィンドウにコンポーネント情報を表示する手順は、次のとおりです。

1. まだ実行していない場合は、UIデバッガを起動してスナップショットを生成します。

2. 「UIツリー」または「UIアウトライン」ウィンドウでコンポーネントを右クリックし、ポップアップ・メニューから「監視」を選択します。
「監視」ウィンドウが「スマート・データ」ウィンドウのタブとして開き(まだ開いていない場合)、このタブにコンポーネントの構造を表すツリーが表示されます。

20.12.5 「インスペクタ」ウィンドウでのUIコンポーネントのインスペクト方法

JDeveloperの「インスペクタ」ウィンドウで、UIコンポーネントの状態を確認できます。

「インスペクタ」ウィンドウにUIコンポーネントを表示する手順は、次のとおりです。

1. まだ実行していない場合は、UIデバッガを起動してスナップショットを生成します。

2. 「UIツリー」または「UIアウトライン」ウィンドウでコンポーネントを右クリックし、ポップアップ・メニューから「インスペクト」を選択します。
「インスペクト」ウィンドウが「スマート・データ」ウィンドウのタブとして開き(まだ開いていない場合)、このタブにコンポーネントの構造を表すツリーが表示されます。

20.12.6 コンポーネントにより生成されるイベントのトレース方法

イベント・トレース機能を使用して、UIコンポーネントにより生成されたイベントのうち、選択したイベントの起動を監視できます。この情報を使用して、イベントの内容と順序を判別します。

コンポーネントにより生成されるイベントをトレースする手順は、次のとおりです。

1. まだ実行していない場合は、UIデバッガを起動してスナップショットを生成します。

2. 「UIツリー」または「UIアウトライン」ウィンドウでコンポーネントを右クリックし、ポップアップ・メニューから「イベントのトレース」を選択します。
「イベントのトレース」ダイアログが開き、コンポーネントにより起動されたイベント・タイプを受信するリスナーのリストが表示されます。

注意:

表示されるのは、スナップショットの生成時に参照可能だったUIコンポーネントのイベント・リスナーのみです。以降の実行によりUIコンポーネントが追加または削除されていても、その変更はリストに表示されません。

3. (オプション)「子を含める」を選択します。これにより、選択したコンポーネントの子により起動されるイベント・タイプも追加表示されます。

4. 「リスナー」ダイアログで、トレース対象のイベント・リスナーを選択します(複数選択可)。たとえば、「FocusListener」を選択すると、すべてのフォーカス・イベントがトレースされます。

5. 「OK」をクリックします。

6. 選択したリスナーにより起動されたイベントが「イベント」ウィンドウに表示されます。ウィンドウを右クリックしてウィンドウの内容を消去するか、または特定のリスナーを削除します。

20.12.7 イベント・リスナーの表示方法

「リスナーの表示」機能を使用すると、UIコンポーネントにより起動されたイベントの受信者を検索できます。この情報を使用してUIイベントのエクステントを判別します。

警告:

表示されるのは、スナップショットの生成時に参照可能だったUIコンポーネントのイベント・リスナーのみです。以降の実行によりUIコンポーネントが追加または削除されていても、その変更はリストに表示されません。

コンポーネントにより生成されるイベントをトレースする手順は、次のとおりです。

1. まだ実行していない場合は、UIデバッガを起動してスナップショットを生成します。

2. 「UIツリー」または「UIアウトライン」ウィンドウでコンポーネントを右クリックし、ポップアップ・メニューから「リスナーの表示」を選択します。
選択したコンポーネントの「リスナー」ダイアログが開き、コンポーネントにより通知されたリスナー・タイプ、各リスナー・タイプの登録済リスナーのクラスおよび各クラスで実装されているイベント・メソッドのリストが表示されます。

注意:

リスナーのリストにはデバッガのトレーシング・フィルタが適用されます。フィルタによりクラスが除外されたリスナーは、リストに表示されません。

3. メソッドを選択します。

4. 「ソースに移動」をクリックします。
編集ウィンドウが開き、選択したメソッドのソース・コードが表示されます。

20.12.8 GUIアプリケーションのリモート・デバッグ方法

JDeveloperでは、コマンドラインを介したGUIアプリケーションのリモート・デバッグをサポートしています。そのためには、デバッグ対象のプログラムを手動で起動する必要があります。プログラムが開始し、JDeveloperのデバッガがアタッチされた後は、リモート・デバッグとローカル・デバッグの動作はよく似ています。

UIのリモート・デバッグの実行方法は、アプリケーションのリモート・デバッグに似ています。最初に、次の要件が満たされていることを確認してください。

- ライブラリにJDeveloperランタイムjdev-remote.jarを追加すること。

- UIデバッガ・エージェントのメイン・クラスをアプリケーションのメイン・クラスの前に指定すること。

GUIアプリケーションのリモート・デバッグを実行するには、次のようにします。

1. デバッグ用のプロジェクトを構成して、リモート・デバッグに使用可能であることを確認します。

2. 次のコマンドを実行してアプリケーションを手動で起動します。

java -XXdebug -cp ...\jdev\lib\jdev-remote.jar
oracle.jdevimpl.runner.uidebug.debuggee.Debuggee <MainClass>

意味は次のとおりです。

- ...¥jdev¥lib¥jdev-remote.jarは、JDeveloperランタイム・ライブラリのクラスパスです。これをコマンドに追加する必要があります。

- oracle.jdevimpl.runner.uidebug.debuggee.Debuggeeは、UIデバッガのエージェントのメイン・クラスの名前です。

3. コマンド・ウィンドウに次のようなメッセージが出力されます。

*** Port is 4000 ***
*** Waiting for JVM debugger connection. ***

4. UIデバッガはソケットを使用してアプリケーションと相互作用します。ソケットのデフォルトのポート番号は4030ですが、次のようにアプリケーションのメイン・クラスの前に-uidport,<port>を挿入すると、別のポート番号を指定できます。

java -XXdebug -cp ...\jdev\lib\jdev-remote.jar
oracle.jdevimpl.runner.uidebug.debuggee.Debuggee -uidport,5678
mypackage1.Application1

この場合、JDeveloper IDEでUIデバッガを起動するときにもポート番号を指定する必要があります。

UIのリモート・デバッグのためにJDeveloper IDEを起動するには、次のようにします。

1. リモート・デバッグ用に設定した実行構成を選択します(「実行」→「アクティブな実行構成を選択」)。

2. 「デバッグ」→「UIデバッグ<project_name>.jpr」を選択します。
Javaアプリケーションのメイン・メソッドが起動します。

3. 「JPDAにアタッチ」ダイアログが表示され、ホスト名とUIデバッガ・ポートを指定するように要求されます。
-uidportオプションを使用しなかった場合は、この値をデフォルトの4030のままにする必要があります。

4. UIのローカル・デバッグを実行しているかのようにUIデバッグ・セッションが動作します。任意のUIデバッガ・タスクの実行を開始できます。

20.12.9 リスナーの自動検出

UIデバッガによりトラッキングできるイベントのリストはハード・コード化されていませんが、実行時に動的に検出されます。したがって、次のガイドラインに従っていれば、すべてのリスナーにより起動されたイベントをトラッキングできます。

- コンポーネント・クラスに、リスナーを追加および削除するためのパブリック・メソッドが必要です。

- メソッド名がaddまたはremoveで始まってListenerで終わる必要があります。

- 戻り型がvoidである必要があります。

- メソッドの引数が1つのみである必要があります。

- 引数のタイプがjava.util.EventListenerを拡張するインタフェースである必要があります。

- メソッド名がaddまたはremoveで始まるインタフェース名と同じである必要があります。

- 指定したインタフェース内の各メソッドの戻り型がvoidである必要があります。

- メソッドに使用できる引数は1つのみ(イベント)です。

- 引数のタイプがBeanとしてアクセス可能なクラスである必要があります。

- getterの戻り値はvoid以外の値でもかまいません。プリミティブ型でない場合、UIデバッガに表示される値はオブジェクトのtoString()メソッドをコールすることで取得された文字列になります。

例

- たとえば、Xxx型の新規イベント・リスナーを定義する場合、コンポーネントには次のシグネチャを持つメソッドが必要です。

public void addXxxListener(XxxListener);
public void removeXxxListener(XxxListener);

- XxxListenerインタフェースの例を次に示します。

public interface XxxListener extends java.util.EventListener
{
public void methodOne(XxxEvent xxxEvent);
public void methodTwo(XxxEvent xxxEvent);
public void methodThree(XxxEvent xxxEvent);
}

- XxxEventクラスの例を次に示します。

public class XxxEvent
{
public int getA(){...}
public String getB(){...}
public OtherType getC(){...}

第V部

モデリングを使用するアプリケーション開発

ここでは、Oracle JDeveloperのダイアグラムおよび関連のダイアグラム作成テクノロジを使用して、アプリケーションの各コンポーネントをモデル化する方法について説明します。

- 第21章「ダイアグラムを使用したアプリケーションのモデル化に関するスタート・ガイド」
この章では、モデリングの機能について説明します。

- 第22章「ダイアグラムの作成、使用および管理」
この章では、ダイアグラムの作成方法と管理方法について説明します。

- 第23章「モデル化によるJava EEおよびJavaアプリケーションの開発」
この章では、Java EEアプリケーションのモデリングに関連するモデリング機能について詳細に説明します。

21 ダイアグラムを使用したアプリケーションのモデル化に関するスタート・ガイド

この章では、Oracle JDeveloperに含まれるダイアグラム、関連するダイアグラム・ツールおよびテクノロジを使用してアプリケーション、様々なアプリケーションのサブシステム、およびデータベースのモデル化を開始する方法について説明します。

この章では、次の項目について説明します。

- 第21.1項「ダイアグラムを使用したモデル化について」

- 第21.2項「ダイアグラム・タイプ」

- 第21.3項「モデル化プロジェクトに対するパスの設定方法」

21.1 ダイアグラムを使用したモデル化について

JDeveloperは、アプリケーション用のソフトウェアおよびシステム開発をモデル化およびコラボレートするために4つの標準UMLダイアグラム・タイプと4つの追加ダイアグラム・タイプをサポートしています。JDeveloperのダイアグラムを使用して、カスタム・アプリケーションを含む通常のビジネス・アプリケーションをモデル化できます。

21.2 ダイアグラム・タイプ

JDeveloperには、モデル化プロジェクト用のダイアグラムを作成するために新規ギャラリ・ウィザードが用意されています。新規ギャラリ・ウィザードを使用すると、これらのダイアグラムや関連するUMLおよび非UMLコンポーネントを簡単に作成できます。メニュー・バーから「ファイル」→「新規」→「一般」→「ダイアグラム」を選択します。

ダイアグラム・タイプを選択し、ダブルクリックするか、「OK」をクリックし、ウィザードを起動します。ウィザードでは、新規ダイアグラムのパッケージを選択したり、そのダイアグラムで使用可能なオプションのコンポーネントを選択できます。コンポーネント選択機能を使用すると、ダイアグラムの編集時にコンポーネント・パレットに表示するダイアグラム関連のコンポーネントを選択できます。図21-1は、クラス図用のダイアグラムの作成ダイアログの例を示しています。

ダイアグラムでアプリケーション・システムをモデル化するための様々なツール、要素、およびUML対応オブジェクトを選択します。たとえば、図21-2に示すように、通常のクラス図用としてコンポーネント・パレットで使用可能なものを選択します。

図21-1 クラス図の作成例

図21-2 クラス図のコンポーネント・パレット

21.2.1 UMLダイアグラム

JDeveloperには、Javaクラスをモデル化するために4つの標準UMLダイアグラム・タイプが用意されています。すべての標準UMLオブジェクト、およびUMLのクラスとダイアグラムの変換機能を使用して、クラスをオンラインまたはオフラインのデータベース・オブジェクト(またはこの逆)に簡単に変換できます。詳細は、第22章の「UMLとオフライン・データベースの変換方法」を参照してください。

使用可能なUMLダイアグラム・タイプは、次のとおりです。

- アクティビティ図。調整されたアクションとしてシステム動作をモデル化します。アクティビティを使用して、出荷や注文処理などの特定のビジネス目標を達成するタスクなどのビジネス・プロセスをモデル化できます。

- クラス図。システムの構造をモデル化します。新規作成するか、既存のクラス・モデル、インタフェース、属性、操作、アソシエーション、汎化およびインタフェース実現のアーキテクチャをインスペクトします。

- シーケンス図。イベント・オカレンスのシーケンスをモデル化します。シーケンス図は、時間に基づいて編成され、シーケンス内の異なるオブジェクト間のコールを示します。このダイアグラムを使用して、イベント、ライフライン、メッセージおよび結合フラグメント間の相互作用を作成またはインスペクトします。

- ユースケース図。システムに想定される動作を視覚的にモデル化します。ユースケース図は、アクター、ユースケース、およびそれらの通信をまとめたものです。

21.2.2 ビジネス・サービス図

正規オブジェクトとUMLオブジェクトの両方を使用して、アプリケーション内のビジネス・サービス、エンティティおよびその関係をモデル化できます。UMLオブジェクト用のJDeveloperの変換機能を使用して、オンラインまたはオフラインのデータベース表をクラスに、またはクラスをデータベース表に変換できます。これらすべてのオブジェクトは、次の4つのいずれのダイアグラムでもモデル化できます。

- ビジネス・コンポーネント・ダイアグラム。ビジネス・コンポーネントの相互関係、エンティティ・クラス、インタラクション、およびパブリック・インタフェースをダイアグラム化します。

- データベース・ダイアグラム。オンラインおよびオフラインのデータベース表とその関係をモデル化します。変換機能を使用して、データベース・スキーマを表すダイアグラム・モデルを作成したり、クラスをオンラインまたはオフラインのデータベース表に変換します。

- EJBダイアグラム。システム内のエンティティ・オブジェクト、セッションBean、メッセージドリブンBeanおよびその関係を作成、編集およびモデル化します。

- Javaクラス図。Javaクラス間の関係および依存性をモデル化します。Javaクラス図を使用して、インタフェース、列挙、フィールド、メソッド、参照、継承関係、および実装関係などのオブジェクトを視覚的に作成または検証します。

21.3 モデル化プロジェクトに対するパスの設定方法

JDeveloperプロジェクトの設定を構成して、プロジェクトから使用する、モデル化された要素のパッケージ階層のルート位置を指定できます。モデル・パスはデフォルトでは構成されています。別の場所に格納されるモデル要素ファイルをモデルにインクルードする場合や、新規モデル要素ファイルを別の場所に格納する場合は、これを変更します。

プロジェクトのモデル・パスにファイル・システム上のパスを追加すると、モデル化された要素を複数のプロジェクト間で共有できます。

プロジェクトのモデル・パスを設定するには、次のようにします。

1. モデル・パスを指定するプロジェクトを右クリックします。

2. 「プロジェクト・プロパティ」を選択します。

3. 「プロジェクトのソース・パス」ノードを開き、「モデラー」ノードを選択します。

4. 「モデル・パス」領域で、「追加」を使用して、プロジェクトのモデル要素を格納するファイル・システム上のパスを入力します。モデル要素を検索する際は、「モデル・パス」に入力したファイル・システム上のパスの順序でフォルダが検索されます。これらのフォルダは、モデルで使用されるパッケージ階層のルートです。モデル・パスに指定された最初の場所は、新規のモデル要素が格納される場所でもあります。

5. モデル・パスの設定を完了するには、「OK」をクリックします。

22 ダイアグラムの作成、使用および管理

この章では、Oracle JDeveloperで提供される最新のツールやテクノロジを使用して、ダイアグラムを作成および管理する方法について説明します。

この章では、次の項目について説明します。

- 第22.1項「ダイアグラムの作成、使用および管理について」

- 第22.2項「基本的なダイアグラム作成コマンドの使用方法」

- 第22.3項「ダイアグラムのノードと要素の操作」

- 第22.4項「ダイアグラム注釈の操作方法」

- 第22.5項「ダイアグラムの表示方法の変更」

- 第22.6項「ダイアグラムのレイアウト」

- 第22.7項「Javaクラスおよびインタフェースの変換」

- 第22.8項「XMIを使用したUMLのインポートおよびエクスポート」

- 第22.6項「UMLプロファイルの使用」

- 第22.10項「UMLクラス図の操作」

- 第22.11項「UMLアクティビティ図の操作」

- 第22.12項「シーケンス図の操作」

- 第22.13項「ユースケース図の操作」

- 第22.14項「ディスクへのダイアグラムの格納」

- 第22.15項「ディスクへのUML要素の格納方法」

22.1 ダイアグラムの作成、使用および管理について

Oracle JDeveloperには、アプリケーション・システムをモデル化するための多様なツールと各種のダイアグラムが用意されています。指示に従ってダイアグラムと要素を作成できる使用しやすいウィザードがある他に、コンポーネント・パレットとプロパティ・インスペクタを使用してドラッグ・アンド・ドロップを簡単に実行でき、編集ウィンドウを閉じずに各種の要素を編集できます。さらに、クラスの作成と管理、クラスとUML間の変換、XMIのインポートおよびエクスポート機能などを含め、4つのUMLダイアグラム・オプションがあります。

図22-1は、ダイアグラム・エディタ・ウィンドウでクラス図、アプリケーション・ナビゲータ、コンポーネント・パレットを開いたところを示しています。ナビゲータでダブルクリックするとダイアグラムを開くことができ、ダイアグラムが開いたら、コンポーネントをダイアグラム・エディタにドラッグ・アンド・ドロップできます。エディタの上部には、色、フォント、ズーム機能など標準的な書式設定のアイコンがあります。

図22-1 ナビゲータのオブジェクトと使用可能なコンポーネントを示したクラス図

22.2 基本的なダイアグラム作成コマンドの使用方法

基本的なダイアグラム作成のタスクとコマンドの多くは、JDeveloperのメニュー・オプションを数回クリックすると実行できます。ダイアグラム・ファイルには、位置、サイズ、色などのグラフィカル・プロパティが含まれています。ビジュアル要素は通常、単独のファイルに格納されます。ダイアグラムを変更すると、関連するすべてのファイルが更新されます。すべてのファイルの一貫性を保つには、「ファイル」→「すべて保存」を選択します。

新規のダイアグラムを作成するには:

1. アプリケーション・ナビゲータでプロジェクトを選択し、「ファイル」→「新規」→「一般」→「ダイアグラム」を選択します。

2. ダイアグラムのタイプを選択し、「OK」をクリックします。

3. ダイアグラムのデフォルト名とパッケージの変更が必要な場合があります。ダイアグラムのデフォルト・パッケージは、そのプロジェクト設定で指定したデフォルト・パッケージです。現在のプロジェクトの指定したパッケージに、空のダイアグラムが作成され、コンテンツ領域で開かれます。「OK」をクリックします。

ダイアグラムをイメージとして公開するには、次のようにします。

1. イメージとして公開するダイアグラム上を右クリックし、「ダイアグラムの公開」を選択します。
または

イメージとして公開するダイアグラム上をクリックし、「ダイアグラム」→「ダイアグラムの公開」を選択します。

2. 場所のドロップダウン・リストを使用し、イメージ・ファイルの公開先フォルダを選択します。

3. 「ファイル名」ボックスに、適切な拡張子(.svg、.svgz、.jpg、.png)も含めてイメージ・ファイルの名前を入力します。

4. 「ファイル・タイプ」ドロップダウン・リストを使用し、イメージ・ファイルのファイル・タイプ(SVG、SVGZ、JPEG、PNG)を選択します。

5. 「保存」をクリックします。

ダイアグラム名を変更するには、次のようにします。

1. アプリケーション・ナビゲータで、名前を変更するダイアグラムを選択します。

2. 「ファイル」→「名前の変更」を選択します。

3. 「ファイルの名前変更のみ行います。参照は更新しません。」を選択します。この場合、ダイアグラムに対する参照の更新は適用されません。

印刷前にページを設定するには、次のようにします。

1. 印刷するダイアグラム上をクリックし、「ファイル」→「ページ設定」を選択します。

2. 「ページ設定」ダイアログの各タブで設定を変更します。

印刷するダイアグラム上の領域を設定するには、次のようにします。

1. 「ファイル」→「印刷領域」→「印刷領域の設定」を選択します。

2. ダイアグラム上で、印刷する範囲のオブジェクトをマウス・ポインタのドラッグで囲みます。印刷する領域が点線の枠で示されます。領域を設定しない場合は、ダイアグラム全体が印刷されます。

以前に設定した印刷領域をクリアするには、次のようにします。

- 「ファイル」→「印刷領域」→「印刷領域のクリア」を選択します。

印刷前にページをプレビューするには、次のようにします。

- 「ファイル」→「印刷プレビュー」を選択します。

ダイアグラムを削除するには、次のようにします。

1. ナビゲータで、削除するダイアグラムを選択します。

2. 「編集」→「削除」を選択します。このコマンドでダイアグラム・ファイルがシステムから削除され、ダイアグラムの編集ウィンドウが閉じます。削除したダイアグラムの要素は、ナビゲータとファイル・システムには残ります。
アプリケーション・ナビゲータからダイアグラムを削除することもできます。アプリケーション・ナビゲータで、ダイアグラム名を右クリックし、「削除」を選択します。

ダイアグラムをズーム・インおよびズーム・アウトするには、次のようにします。

ダイアグラムをズーム・インおよびズーム・アウトするには、[Ctrl]キーを押しながらホイール・ボタンを使用します。サムネイル・ビューを使用している場合は、ホイール・ボタンでズームします。

ダイアグラムを元のサイズで表示するには、次のようにします。

ダイアグラムのツールバー上にあるズームのドロップダウン・リストで、「100%」を選択するか、ダイアグラムをクリックして「ダイアグラム」→「ズーム」→「100%」を選択します。

ダイアグラム全体を表示するには、次のようにします。

ダイアグラムのツールバー上にあるズームのドロップダウン・リストで、「ウィンドウに合せる」を選択するか、ダイアグラムをクリックして「ダイアグラム」→「ズーム」→「ウィンドウに合せる」を選択します。

選択した要素を最大サイズで表示するには、次のようにします。

ダイアグラムのツールバー上にあるズームのドロップダウン・リストで、「選択領域のズーム」を選択するか、ダイアグラムをクリックして「ダイアグラム」→「ズーム」→「選択領域のズーム」を選択します。

22.3 ダイアグラムのノードと要素の操作

ノードと要素を使用して、システム・アーキテクチャの様々な要素と関連リソースを表します。

22.3.1 ノードの操作方法

ノードは、ダイアグラム上の図形です。

ダイアグラムのノードを作成するには、次のようにします。

1. ダイアグラムのコンポーネント・パレットのリストから、作成するノードのタイプを選択します。

2. ノードを作成するダイアグラムをクリックします。これで、ノードがデフォルトのサイズで追加されます。
または

ノードを置く場所のいずれかの隅でマウス・ボタンをクリックして押したままにし、対角上までノードの枠線をドラッグしてからマウス・ボタンを放します。

3. 新しいノード上でデフォルトの要素名がハイライト表示されたら、ノードの名前を入力します。
または

ウィザードを完了します。

注意:

ダイアグラム上のノードにプロパティを追加するには、ノードをダブルクリックするか、ノードを右クリックして「プロパティ」を選択します。次に、ダイアログまたはエディタを使用してプロパティを追加します。インプレース作成を使用してダイアグラム上にプロパティを作成することもできます。

特定の要素のノードは、他のノード内部に作成することもできます。

ダイアグラム要素に内部ノードを作成するには、次のようにします。

要素は、他のダイアグラム要素の内部ノードとしてダイアグラム上に表現できます。

内部ノードを使用して次の要素を作成できます。

- モデル化されたUMLクラスおよびUMLインタフェースの内部クラスおよび内部インタフェース。

- モデル化されたJavaクラスおよびJavaインタフェースの内部クラスおよび内部インタフェース。

- モデル化されたデータベース・ビューの関連使用。

図22-2 シンボリック・ダイアグラム・クラス図

図22-3 内部ノードが表示された拡張ダイアグラムのクラス・ビュー

ダイアグラム要素に内部ノードを作成するには、次のようにします。

1. 内部ノードを作成するノードをダイアグラム上で選択します。

2. 「ダイアグラム」→拡張表示を選択し、ノードの拡張ビューを表示します。

3. 拡張ボックス内に内部ノード用のノードを作成するか、ナビゲータまたはダイアグラムから適切なノードをドラッグし、内部ノードを作成するために拡張したノード内にドロップします。

ダイアグラムでノードの表示方法を変更するには、次のようにします。

ダイアグラム要素を選択し、次のいずれかを選択します。

- 「ダイアグラム」→「表示モード」→「圧縮」

- 「ダイアグラム」→「表示モード」→「シンボル」

- 「ダイアグラム」→「表示モード」→「拡張済」

ダイアグラムの2つのノードを連結するには、次のようにします。

ノード要素間の関係は、連結部を使用して識別されます。連結部は、ダイアグラムの端の終了点です。

1. 接続するタイプ要素に対するコンポーネント・パレットのリストから、連結部タイプを選択します。

2. 元の終了ノードをクリックします。暗黙的または現実的な方向を伴う連結部は、リンク元からリンク先まで達します。

3. 連結部のリンク先にするノードをクリックします。

ダイアグラム上でノードのサイズを最適化するには、次のようにします。

1. サイズを変更するノードを選択します。

2. 選択したノードを右クリックし、オプションとして「図形サイズの最適化」→「高さと幅」を選択します。

22.3.2 ダイアグラム要素の操作方法

ダイアグラム上のプロパティの変更と要素の管理には、多くのオプションを使用できます。

同じタイプの要素をすべて選択するには、次のようにします。

1. 必要なタイプのオブジェクトを選択します。

2. ポップアップ・メニューから「このタイプをすべて選択」を選択します。

アクティブなダイアグラム上のすべての要素を選択するには、次のようにします。

「編集」→「すべて選択」を選択します。

アクティブなダイアグラム上の特定のダイアグラム要素を選択するには、次のようにします。

[Ctrl]キーを押しながら、ダイアグラム上の要素をクリックして選択します。

アクティブなダイアグラム上の任意の範囲にあるすべての要素を選択するには、次のようにします。

1. ダイアグラム上の、要素を選択する範囲の角にポインタを置き、マウス・ボタンを押したままの状態にします。

2. その部分にマウス・ポインタを移動します。

3. 選択範囲内のオブジェクトを完全に囲んだら、マウス・ボタンを放します。

選択した要素グループから、要素の選択を解除するには、次のようにします。

1. [Ctrl]キーを押したままの状態にします。

2. ダイアグラム上で、選択を解除する要素をクリックします。

ダイアグラム上の要素をグループ化するには、次のようにします。

1. コンポーネント・パレットで、「グループ」をクリックします。

2. ダイアグラム上の、要素をグループ化する範囲の角にポインタを置き、マウス・ボタンを押したままの状態にします。

3. その部分にマウス・ポインタを移動します。

4. オブジェクトを完全に囲んだら、マウス・ボタンを放します。

ダイアグラム上でグループ化された要素を管理するには、次のようにします。

「グループの管理」機能を使用して要素をグループに追加またはグループから削除、要素を他のグループへ移動、またはグループを他のグループに追加または他のグループから削除します。

1. 管理するグループを選択します。

2. 右クリックして、「グループの管理」を選択します。
要素をグループに追加、またはグループから削除するには、[Shift]キーを押しながら目的の場所まで要素をドラッグする方法もあります。

関連要素をダイアグラムに表示するには、次のようにします。

ダイアグラム要素を選択し、「ダイアグラム」→関連する要素の表示を選択します。

または

ダイアグラム要素を右クリックし、関連する要素の表示を選択します。

「プロパティ」ダイアログを使用して、ダイアグラム要素のプロパティを変更するには、次のようにします。

次のいずれかの方法で「プロパティ」ダイアログを開きます。

- ダイアグラムで要素をダブルクリックします。
または

- ダイアグラム上の要素を選択し、ポップアップ・メニューから「プロパティ」を選択します。

インプレース作成および編集を使用して、ダイアグラムの特定のプロパティを変更するには、次のようにします。

新規のセカンダリ要素を直接作成し、モデル化されたダイアグラム要素に設定されているプロパティを変更できます。

プロパティ・インスペクタを使用して、ダイアグラム要素のプロパティを変更するには、次のようにします。

1. 「表示」→「プロパティ・インスペクタ」を選択して、プロパティ・インスペクタを開きます。

2. ナビゲータで要素を選択します。

3. プロパティ・インスペクタで、変更するプロパティ値を見つけます。

4. プロパティ・インスペクタの右側でコントロールを選択し、値を変更します。(コントロールには、編集ボックス、ドロップダウン・リスト、チェック・ボックスなどがあります。)

注意:

これらのオプションは、すべての要素で常に有効とはかぎりません。

ダイアグラムの表示は、すべての要素が表示されるシンボル・モードと、要素に関する基本的な情報のみが表示される圧縮モードを切り替えることができます。

ダイアグラムの要素を検索するには、次のようにします。

構造ペインで要素名をクリックします。ダイアグラムで要素が選択されます。ダイアグラムのサムネイル・ビューを使用して要素を検索することもできます。ダイアグラムのサムネイル・ビューを表示するには、ナビゲータでダイアグラムを選択するか、またはダイアグラムの背景をクリックして「表示」→「サムネイル」を選択します。表示領域ボックスをドラッグし、ダイアグラムのサムネイル・ビューの要素上に置きます。対応する要素がメイン・ダイアグラムのビューに表示されます。

ダイアグラム上にすでに存在する1つ以上の要素の色またはフォントを変更するには、次のようにします。

1. ダイアグラム上の要素(複数可)を選択します。

2. 次に、プロパティ・インスペクタ(「表示」→「プロパティ・インスペクタ」)の「グラフィック・オプション」タブで、現在の色(またはフォント・タイプのボックス)を選択し、必要な変更を行ってから[Enter]キーを押します。
または

ツールバーでフォント・タイプ、フォント・サイズ、または色のボックスを選択し、必要な変更を行います。

または

ポップアップ・メニューから「ビジュアル・プロパティ」を選択し、必要な変更を行います。

ダイアグラムに追加されるダイアグラム要素の色またはフォントを変更するには、次のようにします。

1. 「ツール」→「プリファレンス」を選択し、「ダイアグラム」を選択します。ダイアグラム・タイプを選択した後、(ドロップダウン・ボックスの「次のプリファレンスを編集」から)変更する要素タイプを選択します(図22-4)。

2. 「色/フォント」タブで、必要な変更を行います。

図22-4 ダイアグラムの「プリファレンス」ダイアログ

塗りつぶしの色、フォント、フォントの色、線の色などダイアグラムのグラフィカル・オプションを1つ以上の要素にコピーするには、次のようにします。

1. コピーするプロパティを持つ要素を選択します。

2. 右クリックして、「ビジュアル・プロパティ」を選択します。(「ツール」→「プリファレンス」→「ダイアグラム」と進んで、ビジュアルおよびグラフィックのすべてのプロパティをカスタマイズすることもできます。)

3. 変更するプロパティを持つ1つ以上の要素を選択します。(要素のグループを選択する場合は[Shift]キーを押しながら選択します。)

4. 右クリックして、「ビジュアル・プロパティの貼付け」を選択します。

ダイアグラムから要素をコピーし、別のダイアグラムに貼り付けるには、次のようにします。

1. ダイアグラム要素を選択し、ポップアップ・メニューの「コピー」を選択するか、ツールバーの「コピー」アイコンを選択するか、または[Ctrl]キーを押しながら[C]キーを押します。

2. 貼付け先のダイアグラムを開きます。

3. ダイアグラム要素を追加する場所にポインタを置き、ポップアップ・メニューから「貼付け」を選択します(または、JDeveloperツールバーの「貼付け」アイコンを選択するか、[Ctrl]キーを押しながら[V]キーを押します)。

ダイアグラムから要素をコピーし、別のアプリケーションに貼り付けるには、次のようにします。

1. ダイアグラム要素を選択し、ポップアップ・メニューの「コピー」を選択するか、JDeveloperツールバーの「コピー」アイコンを選択する、または[Ctrl]キーを押しながら[C]キーを押します。

2. 貼付け先のアプリケーションを開きます。

3. 貼付け先のアプリケーションでクリップボードの貼付け機能を使用し、必要な場所にダイアグラム要素を配置します。

22.3.2.1 ダイアグラム要素のサイズ変更と移動の方法

要素のサイズを変更するには、要素が目的のサイズになるまでグラッブ・バーをドラッグします。初期擬似状態や終了擬似状態など、一部のダイアグラム要素はサイズを変更できません。

一部の要素タイプには内部グラッブ・バーもあり、要素を選択するとそれが表示されます。内部グラッブ・バーは、ダイアグラム要素内のコンパートメントのサイズを変更する際に使用します。

ダイアグラム要素がサイズ変更されたり、ダイアグラムの表示端に移動すると、ダイアグラムは自動的にスクロールします。要素がサイズ変更されたり、ダイアグラム上から移動した場合、新しいダイアグラム・ページが追加されます。

要素をダイアグラム上で段階的に移動させる最も簡単な方法は、選択したダイアグラム要素をダイアグラム上でドラッグすることです。大きいダイアグラム上で要素を移動する場合は、クリップボードによる切取りおよび貼付けを使用します。

ダイアグラム要素をサイズ変更するには、次のようにします。

1. サイズを変更する要素を選択します。

2. 要素の任意のグラッブ・バーにポインタを置き、マウス・ボタンを押したままの状態にします。グラッブ・バー上に置くと、ポインタは先頭が二重になった矢印として表示されます。

3. 要素のサイズが変更されるまでグラッブ・バーをドラッグし、マウス・ボタンを放します。

ダイアグラム要素を移動するには、次のようにします。

1. 移動する要素(複数可)を選択します。

2. 要素にポインタを置き、マウス・ボタンを押したままの状態にします。

3. 選択した要素を、新しい位置までドラッグします。

4. マウス・ボタンを放します。要素が他の要素に重なる場合は、お互いに重なって表示されます。要素を右クリックし、「最前面へ移動」を選択します。

22.3.2.2 ダイアグラム要素の削除方法

ダイアグラム要素が格納されているファイルを削除することなく、その要素を現在のダイアグラムから削除できます。ファイル・システムから削除することもできます。

ダイアグラムのノードと内部要素は、次の方法で削除します。

- 「ファイル」→「切取り」を使用して削除できるダイアグラム上の要素は、ノードのみ(拡張済ノード内部のノードを除く)です。

- 内部UMLとJavaクラスおよびインタフェースは、「ディスクから削除」で削除できます。親要素の外部にドラッグされ、プライマリ・ノードになった要素は、「ファイル」→「切取り」で削除できます。

- その他の内部ノード(ビュー・オブジェクト・インスタンス、エンティティ・オブジェクトの使用方法およびアプリケーション・モジュール・インスタンス)は、親要素の外部では存在できません。それらを削除するには、「編集」→「切取り」を選択します。

ダイアグラムから要素を削除するには、次のようにします。

1. 要素を選択します。

2. 「編集」→「削除」を選択するか、[Del]キーを押します。アソシエーションや属性などの要素に対して削除を使用すると、システムから完全に削除されます。

ダイアグラムの最前面または最背面に要素を移動するには、次のようにします。

ダイアグラム要素を右クリックし、「最前面へ移動」または「最背面へ移動」を選択します。

22.3.2.3 ダイアグラム上で直前の操作を取り消す方法

直前に行ったグラフィック操作を取り消す、または再実行することができます。グラフィック操作は、ダイアグラム上の要素の外観を変更する、次のような操作です。

- クラス図の要素の切取りおよび貼付け。

- ダイアグラム要素の位置およびサイズの変更。

- ダイアグラム要素のフォント、色およびフォント・サイズの変更。
要素のプロパティの変更など、純粋にグラフィック上の変更ではない変更をダイアグラム要素に行った場合、取り消すことはできません。要素のプロパティを変更した場合、その前に行ったグラフィック上の変更も取消が不可能になります。

ダイアグラム上で直前に行ったグラフィック操作を取り消すには、次のようにします。

「編集」→「元に戻す[...]」を選択するか、「元に戻す」アイコンをクリックします。

ダイアグラム上で一度取り消したグラフィック操作を再実行するには、次のようにします。

「編集」→「やり直し[...]」を選択するか、「やり直し」アイコンをクリックします。

22.3.2.4 ダイアグラムから独立したUML要素の作成方法

新規ギャラリでUMLダイアグラムを作成しなくても、UML要素を作成できます。「新規ギャラリ」で作成したUML要素はナビゲータにリストされ、複数のダイアグラムにドロップできます。

新規ギャラリを使用してUML要素を作成するには、次のようにします。

1. ナビゲータでプロジェクトを選択します。

2. 「ファイル」→「新規」の順に選択します。新規ギャラリが表示されます。

3. 「カテゴリ」パネルで「一般」ノードを開き、「UML」ノードを選択します。「項目」パネルにUML要素がリストされます。

4. 「項目」パネルで、作成するUML要素を選択し「OK」をクリックします。選択したUML要素の「プロパティ」ダイアログが開きます。

5. 「プロパティ」ダイアログをすべて入力し、「OK」をクリックします。UML要素がナビゲータに追加されます。UML要素にユースケース・テンプレートが関連付けられている場合は、ユースケース・フォームがデフォルトのエディタで開きます。

22.4 ダイアグラム注釈の操作方法

ノートまたは注釈とは、テキスト情報を含む、ダイアグラム上のグラフィカル・オブジェクトです。ノートは、ダイアグラムまたはダイアグラム上の要素に対するコメントの追加に使用します。ノートは、1つ以上の要素に添付できます。ノートは、個別のファイル・システム要素としてではなく、現在のダイアグラムの一部として格納されます。図22-5に示すように、コンポーネント・パレットでノート・オプションを使用できます。

図22-5 コンポーネント・パレットの注釈

ダイアグラムにノートを追加するには、次のようにします。

1. コンポーネント・パレットの「ダイアグラムの注釈」セクションで、「ノート」アイコンをクリックします。

2. デフォルト・サイズでノートを作成する場合は、ダイアグラムをクリックしてノートを作成します。
または

異なるサイズでノートを作成する場合は、ダイアグラムをクリックし、ノート・ボックスを必要なサイズまでドラッグしてからマウス・ボタンを放します。

3. ノートのテキストを入力し、ダイアグラム上をクリックします。

ダイアグラムの要素にノートを添付するには、次のようにします。

1. コンポーネント・パレットの「ダイアグラムの注釈」セクションで、「添付」アイコンをクリックします。

2. ノートをクリックします。

3. ノートを添付する要素をクリックします。

要素のフォント・サイズとフォント色、太字やイタリックの書式設定を変更するには、次のようにします。

1. ノート要素をクリックします。テキスト編集ボックスが表示されます。

2. 編集するテキストを選択します。

3. テキストの書式を選択します。

22.5 ダイアグラムの表示方法の変更

ダイアグラムの表示方法を変更するには、要素を右クリックするか、ダイアグラムに対して「ツール」→「プリファレンス」で使用できる各種のオプションを使用します。

22.5.1 ダイアグラムで連結部の表示/非表示を切り替え、レイアウトする方法

ダイアグラムで1つの連結部を非表示にするのか、任意の数の連結部を非表示にするのかを選択します。ダイアグラム上で非表示になっている連結部も「構造」ウィンドウには表示され、名前に「(非表示)」が追加されます。非表示の連結部がある場合、個別または同時に再表示できます。

ダイアグラム上の1つ以上の連結部を非表示にするには、次のようにします。

1. 非表示にするダイアグラム連結部(複数可)を選択します。(特定のタイプの連結部をすべて選択する場合は、連結部を右クリックして「このタイプをすべて選択」を選択します。)

2. 右クリックして、「選択した図形の非表示」を選択します。
「構造」ウィンドウに移動して、非表示にする連結部(複数可)を選択し、右クリックして、「図形の非表示」を選択することもできます。

ダイアグラム上で非表示になっている1つ以上の連結部を表示するには、次のようにします。

「構造」ウィンドウで、表示する連結部(複数可)を選択し、右クリックして、「非表示の図形の表示」を選択します。

ダイアグラム上の非表示の連結部をすべて表示するには、次のようにします。

ダイアグラムの任意の部分を右クリックし、「非表示の端をすべて表示」を選択します。

構造ウィンドウに非表示の連結部をすべて表示するには、次のようにします。

「構造」ウィンドウにリストされているオブジェクトを右クリックし、「可視性順」を選択します。

22.5.1.1 改ページの表示/非表示を切り替える方法

ダイアグラムで、改ページの表示/非表示を切り替えることができます。改ページは、ダイアグラム上に破線として表示されます。

新規のダイアグラムに改ページを表示するには、次のようにします。

1. 「ツール」→「設定」を選択します。

2. ダイアログ・ボックスの左ペインで、「ダイアグラム」をクリックします。

3. ダイアログ・ボックスの左ペインで、ダイアグラム・タイプをクリックします。クラス図にページはありません。

4. 「改ページの表示」チェック・ボックスを選択して、新規のダイアグラムに改ページを表示します。

5. 「OK」をクリックします。

22.5.1.2 ダイアグラムで連結部をレイアウトする方法

連結部は、斜線または直線のスタイルでレイアウトされます。

斜線は、任意の角度で移動できます。直線は、一連の直角として常に表示される線です。ダイアグラムの線のスタイルが斜線に設定されている場合、後で任意の角度で線(または線の一部)を新しい位置に移動できます。

ダイアグラムのconnector要素のタイプごとに、デフォルトの線のスタイルを設定できます。(「行スタイル」は、連結部である要素のタイプごとに設定できるダイアグラム設定の1つです)。

特定のダイアグラムに線のスタイルを設定し、ダイアグラム・タイプのデフォルトの線のスタイルを上書きすることもできます。

- この方法を使用して、線のスタイルを斜線から直線に変更する場合、対角線上に描画されたダイアグラム上の線は、直角で再描画されます。

- この方法を使用して、線のスタイルを直線から斜線に変更する場合、ダイアグラム上には変更は表示されませんが、後でダイアグラム上の線を任意の角度で新しい位置に移動できるようになります。

描画の線のスタイルに関係なく、ダイアグラム上で個別の線を選択し、その線のスタイルを変更できます。個別の線を斜線から直線に変更する場合、線は直角を使用して再描画されます。個別の線を斜線から直線に変更する場合、線は変更されませんが、後で任意の角度で線(または線の一部)を再配置できます。

すでにダイアグラム上に存在するすべての線を直線にすることもできます。このオプションを選択した場合、必要に応じて対角線を使用して、開始点から終了点までの最短ルートですべての線が再描画されます。このオプションを使用すると、現在のダイアグラムの線のスタイルが斜線に設定されます。設定後に、ダイアグラムの線のスタイルを斜線に戻すと、すべての線が直角で再描画されます。

線が交差するときのスタイルも、ブリッジ交差とトンネル交差から選択できます。ブリッジ交差スタイルを選択すると、線が交差する場所に2本の平行線が作成されます。トンネル交差スタイルを選択すると、交差する場所に半円が作成されます。デフォルトのスタイルは、線が交差する2本の線を使用した標準の交差です。

ダイアグラム(または連結部である要素タイプ)のデフォルトの線のスタイルを設定するには、次のようにします。

1. 「ツール」→「プリファレンス」を選択して「ダイアグラム」ノードを開き、ダイアグラムのタイプを選択します。

2. ドロップダウン・ボックスの「プリファレンスの編集」から「すべての端」を選択します。「すべての端」ではなく、連結部である特定の要素タイプを選択した場合、デフォルトの線のスタイルは、その要素タイプにのみ設定されます。

3. 「表示オプション」セクションで、現在の線のスタイルをクリックします。現在の線のスタイル名がドロップダウン・ボックスになります。

4. ドロップダウン・ボックスから目的の線のスタイル(「斜線」または「直線」)を選択します。

現在のダイアグラムで特定の連結部の線のスタイルを変更するには、次のようにします。

ダイアグラムで連結部(複数可)を選択したまま、「ダイアグラム」→「線のスタイル」を選択し、「斜線」または「直線」を選択します。

L字を新しく連結部に追加するには、次のようにします。

[Shift]キーを押しながら、新しいL字を作成する連結部をクリックします。(新しいL字を追加して連結部のルートを変更できるのは、線のスタイルが斜線に設定されている場合のみです。)

連結部からL字を削除するには、次のようにします。

[Shift]を押しながら、削除するL字をクリックします。

連結部を直線にするには、次のようにします。

ダイアグラム上で直線にする連結部(複数可)を選択し、「ダイアグラム」→「直線にする」を選択します。(これで中間のL字はすべて削除されます。)

すべての線の交差スタイルを変更するには、次のようにします。

「ツール」→「プリファレンス」→「ダイアグラム」→「交差スタイル」を選択します。ダイアグラムのプロパティ・インスペクタで交差スタイルを変更することもできます。デフォルトのスタイルは、線が交差する2本の線を使用した標準の交差です。

22.6 ダイアグラムのレイアウト

ダイアグラムのレイアウトは、様々な方法で変更できます。レイアウトの変更には、ダイアグラム上の任意またはすべての要素に対するレイアウト・スタイルの適用、要素のプロパティすべてを表示するためのダイアグラム上のノードの高さの変更、および要素の位置合せと配置が含まれます。

ダイアグラムは、階層、対称、グリッド、行の事前定義済スタイルの1つに従ってレイアウトできます。

22.6.1 ダイアグラムのレイアウト・スタイルの使用方法

要件に応じて、ダイアグラム全体をレイアウトすることも、または階層(上から下、下から上、左から右、右から左)、対称、グリッド、直交、行の様々なレイアウト・スタイルの1つに従って、選択したダイアグラム要素のみをレイアウトすることもできます。

22.6.1.1 階層UMLダイアグラム・レイアウト

汎化構造および方向が定義されている他の連結部に基づいて、階層内のダイアグラム要素をレイアウトします。ノード間の連結部は、最も直接的なルーティングでレイアウトされます。他のノードに連結されていないダイアグラム上のノードは、グリッド・レイアウトでレイアウトされます。階層レイアウトは、上から下、下から上、左から右、右から左の4種類の方向で使用できます。

図22-6 階層UMLダイアグラム・レイアウト

22.6.1.2 対称ダイアグラム

ノード間の連結部に基づいて最も対称的な方法でダイアグラム要素をレイアウトします。特定の状況では、対称レイアウトにより中央のノードの周囲に放射状レイアウトでノードが配置されます。他のノードに連結されていないダイアグラム上のノードは、グリッド・レイアウトでレイアウトされます。

図22-7 対称ダイアグラム・レイアウト

22.6.1.3 直交UMLレイアウト

直交ダイアグラムには、階層と非階層の要素が表示され、位置合せされたコンポーネントの端がすべて同じ方向になります。UMLクラス図の場合、汎化の各階層を位置合せして表すレイアウトが作成されます。

図22-8 直行UMLダイアグラム・レイアウト

22.6.1.4 グリッド・ダイアグラム

左から右への行または上から下への列でノードを直線的にレイアウトしたグリッド・パターンで、ダイアグラム要素をレイアウトします。ノードは、左上のノードから開始するグリッド・パターンでレイアウトされます。

図22-9 グリッド・ダイアグラム・レイアウト

22.6.1.5 ダイアグラム・グリッドを使用したダイアグラムのレイアウト方法

ダイアグラムにグリッドが表示されていない場合でも、ダイアグラム上に作成または移動したダイアグラム要素が、最も近いグリッド線に自動的に合せられるように設定できます。ダイアグラム上のグリッド・セルは正方形で、このセルの高さおよび幅の変更には、値が1つのみ必要です。デフォルトでは、アクティビティ図上の要素はグリッドに合せられていません。

ダイアグラムのグリッド表示と動作を現在のダイアグラムに定義するには、次のようにします。

1. ダイアグラムのグリッド表示および動作を定義するダイアグラム上をクリックします。

2. プロパティ・インスペクタ(「表示」→「プロパティ・インスペクタ」)で、変更するプロパティの現在の値を選択し、そのプロパティの新しい値を入力または選択します。

ダイアグラムのグリッド表示と動作を新規のダイアグラムに定義するには、次のようにします。

1. 「ツール」→「プリファレンス」を選択して「ダイアグラム」を選択し、目的のダイアグラム・タイプを選択します。

2. 次のオプションから選択します。

- グリッドを表示する場合は、「グリッドの表示」チェック・ボックスを選択します。

- 要素をグリッドに合せる場合は、「グリッドに合せる」チェック・ボックスを選択します。要素をグリッドに合せる際に、グリッドを表示する必要はありません。

- 「グリッド・サイズ」フィールドにグリッド・サイズを入力します。

3. 「OK」をクリックします。

22.6.2 ダイアグラム要素の位置合せと配置の方法

ダイアグラム上で、要素の位置を垂直方向および水平方向に合せることができます。また、要素の垂直間隔および水平間隔が均等になるように、要素の位置を変更できます。

要素を配置する場合は、選択した要素の中で垂直軸および水平軸から最も離れた要素が、境界として使用されます。効果的に配置するには、選択範囲にある最も離れた要素を移動してから、要素を再配置します。

ダイアグラム上の要素の位置合せとサイズ変更は、次のようにします。

1. ダイアグラムで複数の要素を選択します。「ダイアグラム」→「位置合せ」を選択します。

2. 次のうちから選択します。

- 水平方向の位置合せを選択します。

- 垂直方向の位置合せを選択します。

3. 選択した要素のサイズを設定する場合は、「サイズ調整」チェック・ボックスを使用します。

- 選択したすべての要素の幅を揃えるには、「同じ幅」を選択します。変更後の要素の幅は、選択した要素の平均の幅になります。

- 選択したすべての要素の高さを揃えるには、「同じ高さ」を選択します。変更後の要素の高さは、選択した要素の平均の高さになります。

4. 「OK」をクリックします。

ダイアグラム上の要素を配置するには、次のようにします。

1. 3つ以上のダイアグラム要素を選択し、「ダイアグラム」→「配置」を選択します。

2. 要素の配置方法を次のように選択します。

- 水平方向の配置を、「なし」、「左揃え」、「中央揃え」、「間隔調整」、「右揃え」から選択します。

- 垂直方向の配置を、「なし」、「上詰め」、「中央揃え」、「間隔調整」、「下詰め」から選択します。

3. 「OK」をクリックします。

22.6.3 ダイアグラム要素のレイアウト方法

レイアウト・スタイルを使用するには、ダイアグラムのポップアップ・メニューを開いて「図形のレイアウト」を選択するか、図22-10のようにダイアグラムの「レイアウト・オプション」ドロップダウンを使用します。

図22-10 ダイアグラムの「レイアウト・オプション」ドロップダウン

ダイアグラムで要素をレイアウトするには、次のようにします。

1. 次のいずれかを選択します。

- ダイアグラム上の個々の要素を選択します。

- ダイアグラムのすべての要素をレイアウトする場合は、ダイアグラム上をクリックします。

- コンテナ要素内のすべての要素をレイアウトする場合は、コンテナ要素を選択します。

2. ダイアグラム・ツールバーで、ドロップダウン・リストから必要なレイアウト・スタイルを選択します(図22-10)。

選択した要素がダイアグラム上にレイアウトされた後も、ダイアグラム上の任意の場所にまとめて移動できるように、その要素は選択された状態になっています。

現在のダイアグラム上で新しい要素のレイアウトを設定するには、次のようにします。

プロパティ・インスペクタ(「表示」→「プロパティ・インスペクタ」)でレイアウト・スタイルを選択します。

ダイアグラム上で要素のデフォルト・レイアウトを設定するには、次のようにします。

1. 「ツール」→「プリファレンス」→「ダイアグラム」を選択し、ダイアグラム・タイプを選択します。

2. 使用するレイアウト・スタイルを選択し、「OK」をクリックします。

22.7 Javaクラスおよびインタフェースの変換

JDeveloperでは、Javaクラスおよびインタフェースに対するUML変換と、XMIインポートおよびエクスポート機能がサポートされています。これらの変換機能を使用すると、UMLなどプラットフォームに依存しないモデルから、Javaのようなプラットフォーム固有のモデルを生成できます。同じソース・モデルとターゲット・モデルを使用して、変換を何度でも実行できます。JavaクラスからUMLへの逆変換の機能もあります。次のように、変換は個別またはグループのUMLオブジェクト、クラスおよびインタフェースに対して実行できます。

- 元の要素と同じダイアグラム上の変換。

- 変換される要素用に作成された新規ダイアグラム上の変換。

- 現在のプロジェクトのみで、ダイアグラムに表示されない変換。

UML、Javaクラスまたはインタフェースを変換するには、次のようにします。

1. 変換するUMLオブジェクト、Javaクラスまたはインタフェースを選択します。

2. 次のいずれか1つを実行します。

- 変換する要素の定義を作成するのみで、その要素をダイアグラムに追加しない場合は、「ダイアグラム」→「変換」→「モデルのみ」の順に選択します。

- 変換する要素を現在のダイアグラム上で作成する場合は、「ダイアグラム」→「変換」→「同一ダイアグラム」の順に選択します。

- 変換する要素の新規ダイアグラムを作成し、その上に変換された要素を表示する場合は、「ダイアグラム」→「変換」→「新規ダイアグラム」の順に選択します。

- 図22-11および図22-12に示すように、選択した要素に対して実行する変換を選択し、「OK」をクリックします。

図22-11 UMLのオプションが表示された「変換」ダイアログ

図22-12 JavaからUMLのオプションが表示された「変換」ダイアログ

22.7.1 UMLとオフライン・データベースの変換方法

UMLモデリング・ツールを使用すると、UMLクラス・モデルを作成してオフライン・データベースに変換する、またはその逆に変換することができます。

UMLクラス図をオフライン・データベースに変換するには、次のようにします。

1. 変換するダイアグラムを作成するか、開きます。

2. 変換するクラス(複数可)を選択します。右クリックして、「変換」を選択します。

3. 次のいずれかを選択します。

- モデルのみ。UMLクラス・モデルに基づくオフライン・データベース・モデルが、現在のプロジェクトのアプリケーション・ナビゲータに作成されます。

- 同一ダイアグラム。UMLクラス図に基づくオフライン・データベース・モデルが作成されます。オフライン・データベース・モデルは、次の場所で表示できます。

- アプリケーション・ナビゲータ。

- UMLクラス図(モデル化された表として)。

- 新規ダイアグラム。UMLクラス図に基づくオフライン・データベース・モデルが作成されます。オフライン・データベース・モデルは、次のどちらでも表示できます。

- アプリケーション・ナビゲータ。

- 新規データベース・ダイアグラム(モデル化された表および制約として)。

4. UMLをオフライン・データベースへを選択します。

5. 「終了」をクリックします。

オフライン・データベース・オブジェクトをUMLに変換するには、次のようにします。

1. 変換するオフライン・データベース・オブジェクト(複数可)を選択します。

2. 右クリックして、「変換」を選択します。次のいずれかのオプションを選択します。

- モデルのみ。データベース・スキーマに基づくUMLクラス・モデルが、現在のプロジェクトのアプリケーション・ナビゲータに作成されます。

- 同一ダイアグラム。オフライン・スキーマに基づくUMLクラス図が作成されます。新しいクラスは、次のどちらでも表示できます。

- アプリケーション・ナビゲータ。

- UMLクラス図(変換された各データベース表のクラスとして)。

- 新規ダイアグラム。ウィザードが完了すると、オフライン・データベース・スキーマに基づくUMLクラス図が作成されます。クラスは、次のどちらでも表示できます。

- アプリケーション・ナビゲータ(新規のUMLクラスとして)

- 新規クラス図(変換された各データベース表のクラスとして)。

3. 図22-13のように、「変換」ダイアログが表示されます。「オフライン・データベース・オブジェクトをUMLへ」を選択します。

4. 「OK」をクリックします。

図22-13 オフライン・データベースをUMLへダイアログ・オプションが表示された、変換ダイアログ

新規ギャラリ・ウィザードを使用してUMLからオフライン・データベース・オブジェクトを作成するには、次のようにします。

1. アプリケーション・ナビゲータで、変換するUMLクラスを含むプロジェクトを選択します。

2. 「ファイル」→「新規」を選択して「新規ギャラリ」を開きます。

3. 「カテゴリ」ツリーで「データベース層」を開き、「オフライン・データベース・オブジェクト」を選択します。「項目」リストで、「UMLクラス・モデルからのオフライン・データベース・オブジェクト」をダブルクリックします。
カテゴリまたは項目が見つからなければ、正しいプロジェクトが選択されていることを確認して、「フィルタ方法」ドロップダウン・リストの「すべての機能」を選択します。

4. 図22-14のように、UMLクラス・モデルからのオフライン・データベース・オブジェクト・ウィザードが開きます。変換するUMLクラスとアソシエーションを選択します。

5. 「終了」をクリックします。オフライン・データベース・オブジェクトが、アプリケーション・ナビゲータに作成されます。

「新規ギャラリ」からウィザードを起動した場合、オフライン・データベース・オブジェクトはアプリケーション・ナビゲータでのみ使用できます。

変換中には、次の選択肢があります。

- UML名をオフライン・データベース名に変換する方法。

- UMLクラス階層と多対多のアソシエーションの処理方法。

- ブジェクトが所属するスキーマ。

- 表示するログ・メッセージ。どの変換メッセージをログに記録するか、およびメッセージをログ・ウィンドウとログ・ファイルのどちらに送信するかを選択できます。

図22-14 「新規ギャラリ」のUMLからのオフライン・データベース

ログに記録する変換メッセージのタイプを選択するには、次のようにします。

1. UMLクラス・モデルからのオフライン・データベース・オブジェクト・ウィザードを起動します。

2. 「ロギング・オプションの設定」ページで、ログ・メッセージを表示する場所と、ログに記録するアクションのタイプを選択します。

変換を実行する前に変更内容を確認するオプションがあります。また、ログに記録される変換メッセージの種類と、ログ・ウィンドウとログ・ファイルのどちらに表示するかを指定できます。

汎化の変換

UMLクラス・モデルからのオフライン・データベース・オブジェクト・ウィザードの「クラス・オプションの設定」ページでは4つのタイプの汎化を指定できます。

オプションは次のとおりです。

- ルート・クラス変換

- リーフ・クラス変換

- 全クラスを変換して汎化

- 全クラスを変換、外部キーを作成

図22-15のように、2つのルート・クラスと3つのリーフ・クラスを考えます。

図22-15 2つのルート・クラスと3つのリーフ・クラスを示すダイアグラム

「ルート・クラス変換」のオプションを選択した場合、図22-16に示すように、ルート・クラスがオフライン表に変換され、階層における子孫クラスの列と外部キーもすべて変換されます。識別子列を作成するオプションもあります。識別子列には、特定の行に対してどのサブクラスをインスタンス化するかを判読するために、永続層に対するマーカー値が含まれます。

図22-16 ルート・クラスから変換されたJavaクラス

「汎化クラスから継承し、リーフ・クラスのみを変換します」のオプションを選択した場合、図22-17に示すように、リーフ・クラスがオフライン表に変換され、先祖クラスの列と外部キーを継承します。

図22-17 汎化したクラスから継承して変換されたリーフ・クラス

「汎化クラスから継承し、すべてのクラスを変換します」のオプションを選択した場合、変換セットのすべてのクラスに対してオフライン表が作成されます。図22-18に示すように、各表は先祖表から列と外部キーを継承しますが、その点を除けば独立しています。

図22-18 汎化クラスから継承して変換されたすべてのクラス

「全クラスを変換、外部キーを作成」のオプションを選択した場合、変換セットのすべてのクラスに対してオフライン表が作成されます。図22-19に示すように列と外部キーは継承されず、親表(複数可)に対して外部キーが作成されます。

図22-19 外部キーを作成して変換されたすべてのクラス

22.7.2 DatabaseProfileの使用

JDeveloperにはDatabaseProfileと呼ばれるUMLプロファイルが付属しています。このプロファイルを使用すると、オフライン・データベース・モデルに変換されるときのクラス・モデルに対する処理を指定できます。UMLプロファイルの詳細は、第22.9項「UMLプロファイルの使用」を参照してください。

たとえば、属性を列に変換するときに使用される列データ型に、属性を割り当てることができます。

DatabaseProfileを使用すると、それに含まれるステレオタイプのプロパティを使用して、要素の変換方法を制御できます。このプロファイルに含まれるステレオタイプとそのプロパティは、表22-1のとおりです。

表22-1 DatabaseProfileのステレオタイプとプロパティ

ステレオタイプ

適用先

オフライン・データベースのタイプ

プロパティ

備考

データベース・パッケージ

UML::Package

SCHEMA

変換後の名前

データベース・クラス

UML::Class

TABLE

変換後の名前

データベース属性

UML::Property

COLUMN

変換後の名前
データ型
主キー

UMLプロパティは、"attribute"またはアソシエーションの端です。

データベース・データ型

UML::Type

該当なし

DatatypePrimary

UMlメタモデルで、TypeはClass、Association、PrimitiveTypeなどを含む広範囲の要素のスーパークラスです。このステレオタイプはすべてに適用できます。プロパティ(属性)が特定タイプの場合は常に、トランスフォーマによって読取りが可能です。

データベース・アソシエーション

UML::
Association

CONSTRAINT

変換後の名前外部キーのネーミング・ルールです。

データベースの汎化

UML::
Generalization

CONSTRAINT

変換後の名前外部キーのネーミング・ルールです。

特定のトランスフォーマは汎化から外部キーを作成し、このステレオタイプがここで適用されます。

属性(プロパティ)は、表22-2を参照してください。

表22-2 DatabaseProfileのステレオタイプのプロパティ

プロパティ

説明

データ型

変換後の名前

変換されるデータベース・オブジェクトの名前。ブランクのままにすると、デフォルトのネーミング・ルールが適用されます。

文字列

データ型

データ型のSQLテキスト。

デフォルト、ANSI、Oracleと、サポートされるその他のデータベース・タイプなど様々なデータ型があります。

文字列

外部キー・ネーミング・ルール

アソシエーションから外部キーに名前を付けるときに使用するルール。UML名を使用するか、databaseNameプロパティを使用するか、または表名からデフォルト名を導出します。

両方の表
データベース名
所有者名
UML名

主キー

変換された列が親表の主キーの一部であることを示すフラグ。

ブール

DatabaseProfileを使用してクラス・モデルを変換するには、次のようにします。

1. アプリケーション・ナビゲータを右クリックして「プロパティ」を選択し、UMLパッケージpackage.uml_pckの「パッケージ」の「プロパティ」ダイアログを開きます。
ヘルプを参照するには、[F1]を押すか、「パッケージ」の「プロパティ」ダイアログ内で「ヘルプ」をクリックしてください。

2. 「パッケージ」プロパティ・ダイアログで「プロファイル・アプリケーション」を選択し、「追加」をクリックします。

3. 図22-20に示すように、「プロパティ」ウィンドウで、使用可能なプロファイルのリストからDatabaseProfileを選択します。

図22-20 適用するプロファイルの選択

オプションで、パッケージをオフライン・データベース・スキーマに変換した後で使用する名前を指定します。「適用済ステレオタイプ」ノードを選択し、「追加」をクリックします。「プロパティ」に、変換後の名前という新しいプロパティがリストされます。名前を入力します。

「OK」をクリックします。図22-21に示すように、新しいファイルDatabaseProfile.uml_paがアプリケーション・ナビゲータにリストされます。

図22-21 「プロファイル・アプリケーション」ファイル

4. DatabaseProfileファイルを確認するには、アプリケーション・ナビゲータで右クリックし、「プロパティ」を選択します。ダイアログには、変換に使用されるプロファイルが表示されます。「OK」をクリックしてダイアログを閉じます。

5. これで、プロジェクトの様々な要素にステレオタイプを適用できるようになります。図22-21に示した例では、Employee.uml_claを右クリックして「プロパティ」を選択し、Employeeクラスにステレオタイプを適用しています。これにより、この要素の「クラスのプロパティ」ダイアログが開きます。
変換後に使用する名前を指定するには、「適用済ステレオタイプ」を選択し、「追加」をクリックして「データベース・クラス」を選択します。図22-22のように、「プロパティ」で、「変換後の名前」の隣に値を入力します。

図22-22 「変換後の名前」の適用

6. ステレオタイプは他の要素に適用できます。たとえば、このクラスによって所有されている属性にデータ型と主キーを指定できます。「クラス」の「プロパティ」ダイアログで、「所有された属性」を展開して既存の属性を選択するか、「追加」をクリックしてその名前を入力して属性を作成します。
所有された属性のノードを展開して「適用済ステレオタイプ」を選択し、「追加」をクリックします。図22-23では、このレベルで指定できる多くのデータ型、属性が主キーに変換されるかどうか、および変換後の名前を示しています。

図22-23 所有された属性を持つステレオタイプの使用

DatabaseProfileで変換されるステレオタイプとプロパティの詳細は、表22-1「DatabaseProfileのステレオタイプとプロパティ」および表22-2「DatabaseProfileのステレオタイプのプロパティ」を参照してください。

7. 適用するステレオタイプを設定後、第22.7.1項「UMLとオフライン・データベースの変換方法」の手順に従ってUMLクラス・モデルの変換に進むことができます。今度は、使用したDatabaseProfileのステレオタイプとプロパティが変換中に適用されます。

22.8 XMIを使用したUMLのインポートおよびエクスポート

他のモデリング・ソフトウェアを使用して作成したモデルは、そのモデルがUML 2.1.1に準拠している場合は、XML Metadata Interchange (XMI)ファイルを使用してJDeveloperにインポートできます。

XMI仕様では、メタモデルを使用してUMLモデルをXMLドキュメントに変換する方法が記述されています。JDeveloperは、この仕様に準拠しています。詳細は、「Catalog of OMG Modeling and Metadata Specification」(http://www.omg.org/technology/documents/
modeling_spec_catalog.html)を参照してください。

22.8.1 XMIを使用してUMLモデルをインポートおよびエクスポートする方法

インポート・プロセスには、次の制限があります。

- ダイアグラムはインポートできません。

- XMIには1つのファイルのみ含まれている必要があります。XMIによって参照されるプロファイルはすべて、「ツール」→「プリファレンス」→「UML」→「プロファイル」を使用してインポート前にJDeveloperに登録しておく必要があります。プロファイルは個別のファイルにある必要があります。詳細は、第22.9項「UMLプロファイルの使用」を参照してください。

ダイアグラムは、クラス、アクティビティ、シーケンス、およびユースケース要素をインポートするときに自動的に作成されます。図22-25に示すように、このオプションはプロセス中にダイアログで示されます。

UMLモデルをXMIとしてインポートするには、次のようにします。

1. ナビゲータで空のプロジェクトを選択し、「ファイル」→「インポート」を選択します。

2. 「XMIからUML」を選択し、「OK」をクリックします。

3. 「UMLをXMIからインポート」ダイアログを完了します。

図22-24 「インポート」ダイアログで「XMIからUML」を選択

図22-25 「UMLをXMIからインポート」の詳細ダイアログ

UMLモデルをXMIとしてエクスポートするには、次のようにします。

1. プロジェクトを選択します。

2. 「ファイル」→「エクスポート」を選択します。

図22-26 「エクスポート」ダイアログで「UMLをXMIとして」を選択

22.8.2 インポート時の一般的なエラー・メッセージ

インポート中には、「XMIインポート」ログで頻繁に見られる一般的なエラーと警告があります。これらの多くは、いくつかの単純な手順のみで簡単に解決できます。

他のXMLと同様、有効なファイルの構造は、xmlnsネームスペースによって参照されるXMLスキーマによって指定されます。XMLは、オブジェクトまたはその親要素オブジェクトの値を表す要素と、値である属性とで構成されます。値が他のオブジェクトへの参照である場合もあり、たとえばHTMLの場合にはhrefとして表されます。ログの項目をダブルクリックすると、問題のある要素に移動します。多くの場合、ネームスペースや標準オブジェクト参照が正しくないことが問題の原因です。

一般的なエラー・メッセージとその解決方法を次に示します。

プロファイルの欠落

- エラー(16,80): appliedProfileプロパティの多重度は[1..1]です

- エラー(17,70): 参照しようとした要素http://example.oracle.com/MyProfile#_0が欠落しています

- 警告(2,356): http://example.oracle.com/MyProfileはネームスペースとして認識されていません

- 警告(22,142): 要素urn:uuid:2b45f92d-31c8-4f67-8898-00a2f5bbfd22は無視されます

UMLには、'profile'で追加のXMLスキーマを指定できる拡張メカニズムがあります。前述の最初の3つの問題は、関連するプロファイルが登録されていなかったことを示しています。プロファイルを登録するには、第22章「UMLプロファイルの使用」を参照してください。

XMIのバージョンが無効

- エラー(2,360): 2.0はhttp://schema.omg.org/spec/XMI/2.1の正しいバージョンではありません
このメッセージは、xmi:version属性とxmlns:xmiネームスペースの間の不一致が原因です。xmi:versionは2.1である必要があります。

UMLネームスペースが無効

- 警告(2,356): http://schema.omg.org/spec/UML/2.1.1/Unknownはネームスペースとして認識されていません
このメッセージは、xmlns:umlネームスペースがhttp://schema.omg.org/spec/UML/2.1.1/uml.xmlである必要があることが原因です。

標準L2プロファイル・ネームスペースが無効

- エラー(13,80): appliedProfileプロパティの多重度は[1..1]です。

- エラー(14,81): 参照しようとした要素http://schema.omg.org/spec/UML/2.1.1/L2Unknown#_0が欠落しています

- 警告(2,344): http://schema.omg.org/spec/UML/2.1.1/L2Unknownはネームスペースとして認識されていません

これは、標準プロファイルがすでにツールに登録されている場合です。xmlnsネームスペースがhttp://schema.omg.org/spec/UML/2.1.1/StandardProfileL2.xmi and the reference、参照がhttp://schema.omg.org/spec/UML/2.1.1/StandardProfileL2.xmi#_0となるように、XMIを変更してください。

標準L3プロファイル・ネームスペースが無効

これは、標準プロファイルがすでに登録されている2つ目です。プロファイルの参照が正しくない場合、メッセージはL2プロファイル・ネームスペースメッセージの場合と似ています。正しいネームスペースはhttp://schema.omg.org/spec/UML/2.1.1/StandardProfileL3.xmi、正しい参照はhttp://schema.omg.org/spec/UML/2.1.1/StandardProfileL3.xmi#_0です。

標準のデータ型参照が無効

- エラー(7,75): 参照しようとした要素http://schema.omg.org/spec/UML/2.1.1/Unknown#Stringが欠落しています

属性タイプのように、このエラーを参照して解決するデータ型の標準セットがあります。XMIのhrefは、次のいずれかに更新する必要があります。

- http://schema.omg.org/spec/UML/2.1.1/uml.xml#Boolean

- http://schema.omg.org/spec/UML/2.1.1/uml.xml#Integer

- http://schema.omg.org/spec/UML/2.1.1/uml.xml#String

- http://schema.omg.org/spec/UML/2.1.1/uml.xml#UnlimitedNatural

22.9 UMLプロファイルの使用

UMLプロファイルは、UMLメタモデルのサブセットです。これらのサブセットは、UMLメタデータで指定されているルール以上の整形式のルールを指定します。整形式のルールとは、標準のUMLメタモデル仕様で使用される条件です。UMLメタモデル仕様には、メタモデル要素の定義に有効なUMLオブジェクト制約言語(OCL)で記述された一連の制約が記されています。JDeveloperには、UMLの標準プロファイルがいくつか付属しています。

図22-27に示すように、独自のプロファイルを追加するには、「ツール」→「プリファレンス」→「UML」→「プロファイル」に進んで追加記号をクリックします。カスタム・プロファイルを追加後、プロファイルを選択して「編集」をクリックし、ドキュメントURLを編集します。UMLプロファイルの詳細は、「OMG Catalog」(http://www.omg.org/technology/documents/profile_catalog.htm)を参照してください。

図22-27 UMLの「プロファイル」ダイアログ

プロファイルを使用すると、UMLモデルにステレオタイプを適用し、それをUMLパッケージに適用することで使用できます。

UMLプロファイルを使用するには、次のようにします。

1. 必要な場合には、「新規ギャラリ」から新規のUMLパッケージを作成します。「ファイル」→「新規」を選択し、「一般」カテゴリで「UML」を選択して、「項目」で「パッケージ」を選択します。
そうでない場合、アプリケーション・ナビゲータを右クリックして「プロパティ」を選択し、既存のUMLパッケージの「パッケージ」の「プロパティ」ダイアログを開きます。

ヘルプを参照するには、[F1]を押すか、「パッケージ」の「プロパティ」ダイアログ内で「ヘルプ」をクリックしてください。

2. 「パッケージ」の「プロパティ」ダイアログで、「プロファイル・アプリケーション」ノードを選択して「追加」をクリックし、使用可能なプロファイルのリストから使用するUMLプロファイルを選択します。

3. これで、クラスを作成してステレオタイプを追加できるようになります。「パッケージ」の「プロパティ」ダイアログで、「パッケージ化要素」ノードを選択し、「追加」をクリックして「クラス」を選択します。

4. 「クラス」ノードを展開し、「適用済ステレオタイプ」を選択して「追加」をクリックします。値を指定するプロパティは、使用しているUMLプロファイルによって異なります。図22-28に、JDeveloperに付属するDatabaseProfileというUMLプロファイルの「変換後の名前」プロパティを示します。

図22-28 ステレオタイプのプロパティ

この項では、UMLパッケージにプロファイルを関連付け、パッケージ・レベルでステレオタイプを適用する方法について説明しました。プロファイルのタイプによっては、他の要素にステレオタイプを適用できる場合があります。第22.7.2項「DatabaseProfileの使用」の例を参照してください。

22.10 UMLクラス図の操作

UMLクラス図を使用して、クラスやタイプなどのstatic要素、その内容と関係のコレクションをモデル化し、クラスやインタフェース、属性、操作、アソシエーション、汎化および実現を視覚的に作成またはインスペクトします。

22.10.1 クラス図の操作方法

クラスと関連要素をクラス図に追加するには、コンポーネント・パレットを使用します。図22-29に示すように、各要素は一意のアイコンと説明で表されます。

図22-29 クラス図のコンポーネント・パレット

クラスとインタフェースをダイアグラムに追加するには、次のようにします。

クラスをダイアグラムにドラッグし、クラスとインタフェースを作成します。プロジェクト設定とデフォルト・プロパティのモデル・パスで指定されている場所に、要素が作成されます。(「アプリケーション」→「デフォルト・プロジェクト・プロパティ」。)パッケージをクリックしてパッケージをモデル化することもできます。

モデル化されたパッケージを右クリックして「ドリル・ダウン」を選択すると、そのパッケージのダイアグラムが表示されます。

クラス・プロパティを追加または編集するには、次のようにします。

クラス・プロパティは、次のいずれかの方法でダイアグラム上にモデル化されたクラスとインタフェースに追加されます。

- モデル化されたクラスまたはインタフェースをダブルクリックし、プロパティ・ダイアログにアクセスします。

- クラスまたはインタフェースを右クリックし、「プロパティ」を選択します。

汎化、実現、およびアソシエーションを追加するには、次のようにします。

汎化した構造をクラス図に作成するには、「クラス」の「コンポーネント・パレット」で「汎化」アイコンを使用します。

クラスによってインタフェースを実現する場所に、ダイアグラムの「クラス」の「コンポーネント・パレット」で「実現」アイコンを使用してインタフェースをモデル化します。

「アソシエーション」アイコンを使用し、モデル化されたクラスとインタフェースの間で様々なアソシエーションを作成できます。アソシエーションは、モデリングされたアソシエーションをダブルクリックして、そのプロパティを変更することによって変更します。

ネストされたクラスとネストされたインタフェースを追加するには、次のようにします。

ネストされたクラスとネストされたインタフェースを作成するには、モデル化されたクラスまたはインタフェースにそれらを作成するか、インプレース作成(シンボル表示のみ)を使用して図形の表示設定を変更するか、またはクラスを右クリックして「表示モード」→「拡張済」を選択した後、拡張済ノード内部に別のクラスを作成します。

属性と操作を追加するには、次のようにします。

モデル化されたクラスとインタフェースに属性と操作を追加するには、次のいずれかの方法を使用します。

- モデル化されたクラスまたはインタフェースをダブルクリックし、要素のプロパティ・ダイアログを使用して属性または操作を追加します。

- クラスまたはインタフェースを右クリックして「プロパティ」を選択し、要素のプロパティ・ダイアログを使用して属性または操作を追加します。

- ダイアグラム上の1つのクラスまたはインタフェースから、同じダイアグラム上の別のクラスまたはインタフェースに、既存の属性または操作をドラッグします。
クラスまたはインタフェースにおける属性または操作の順序を変更するには、画面で上下にドラッグします。属性または操作の「アルファベット順でソート」プロパティは、選択を解除する必要があります(「ツール」→「プリファレンス」→「ダイアグラム」→「クラス」→「次のプリファレンスを編集」: 「クラス」または「インタフェース」→「属性」または「操作」→「アルファベット順でソート」)。

1つ以上の属性または操作を非表示にするには、次のようにします。

1. 非表示にする属性または操作を選択します。

2. 選択した項目を右クリックして、「非表示」→「選択した図形」を選択します。

クラスまたはインタフェースで非表示の属性または操作をすべて表示するには、次のようにします。

クラスまたはインタフェースを選択して右クリックし、「非表示のメンバーをすべて表示」を選択します。

22.10.1.1 クラス図の読み方

クラスは、クラス名と詳細を含む四角形として表されます。クラスは、圧縮、シンボルまたは拡張済のノードとして表示できます。表示プロパティを設定するには、「ツール」→「プリファレンス」→「ダイアグラム」→(「ダイアグラム・タイプ」)→「表示オプション」に進みます。

ダイアグラム上の要素の表示方法を変更することもできます。ダイアグラム上で、クラスおよびインタフェースはコンパートメントに分割されており、各コンパートメントには情報が1種類のみ含まれます。大きさが不足し、内容の全体を表示できない各コンパートメントには、省略記号(...)が表示されます。モデル化されたクラスのすべての属性を表示するには、クラスを右クリックして図形の高さの最適化を選択します。図22-30に、一般的なクラス図のレイアウトの例を示します。

すべての属性および操作には、可視性を表す記号が表示されます。可視性の記号には、Public (+)、Private (-)、Protected (#)および~ Packageがあります。

図22-30 要素を含むUMLクラス図

表22-3 クラス図の要素

要素

説明

インタフェース

インタフェースは、名前コンパートメントにキーワード«interface»が付いて表されます。インタフェースは、圧縮、標準または拡張済のノードとして表示できます。ネストされたクラスおよびインタフェースは、標準および拡張済のインタフェース内部でモデル化できます。

列挙

列挙は、有限の、通常は小さいセットの名前付きリテラルを持つデータ型です。列挙には、列挙の値を表す名前付き識別子のセットが含まれます。列挙には、モデルにおけるその役割を表す名前があります。

1対*アソシエーション

「1対多」は、クラス間の関係を定義します。ダイアグラム上では実線で表されます。

方向を定めた1対1アソシエーション

「有向1対1アソシエーション」は、ダイアグラムでは、アソシエーションの方向を開いた矢印で指す実線として表示されます。

方向を定めた1対多アソシエーション

「有向1対*アソシエーション」は、ダイアグラムでは、複数のアソシエーションの方向を開いた矢印で指す実線として表示されます。

有向コンポジット集約

ダイアグラムでは、アソシエーションの方向に開いた矢印と、塗りつぶされたダイアモンド型の付いた実線でアソシエーションの発生側に表示されます。

汎化

クラス間の汎化関係を定義します。ダイアグラムでは、特殊クラスまたはインタフェースの方向を白抜きの矢印で指す実線として表示されます。

実現

インタフェースがクラスによって実現される位置を定義します。ダイアグラム上に破線と実装されているインタフェースに向けた白抜きの矢印で表されます。

依存性

1つのダイアグラム要素が別のダイアグラム要素に依存していることを表します。ダイアグラム上には、破線と依存性の方向に向けた矢印で表されます。

クラス

オブジェクトを表します。クラスは、オブジェクト指向アプリケーションの主要な構築ブロックを形成します。垂直に重ねた3つのコンパートメントを含む四角形として、ダイアグラム上で表されます。

パッケージ

システムを複数のパッケージに分割するために使用し、システムを簡略化してわかりやすくします。

データ型

データ型は、データ値を定義するモデル要素です。

プリミティブ・タイプ

プリミティブ型またはプリミティブ・データ型は、ブール、バイト、小数、DateTime、Double、Float、Timeなどのデータ型です。

制約

制約は、システムの動作やソリューションをモデル化するときの自由度、または自由度の欠如です。

22.10.1.2 UML操作の表記法の指定方法

このリリースにおける操作の表記法は、UML2の表記法に密接に関連しています。従来、クラス図における操作の表記法はJava行の構文に従っていました。

print(int param1, int param2):void

このリリースのJDeveloperでは、操作の表記法はUML2構文に従います。

print(param1:int, param2:int):void

22.10.2 クラス図のリファクタ

ダイアグラムでインプレース編集機能を使用してクラスの名前を変更またはクラスを移動すると、そのクラスのソース・コードが自動的にリファクタされます。ダイアグラムでJavaパッケージの名前を変更またはパッケージを移動すると、そのパッケージの内容が自動的にリファクタされます。

ダイアグラムでフィールド、メソッドまたは内部クラスを削除すると、自動的に「安全に削除」リファクタ・パターンが適用されます。ダイアグラムのJavaクラス、インタフェース、列挙またはメンバーにリファクタ・パターンを適用するには、ダイアグラムで対象となるクラスまたはメンバーを選択し、「リファクタ」メニューから目的のリファクタ・パターンを選択します。

Javaクラス図のJavaクラス、インタフェースおよび列挙では、次のリファクタ・パターンを使用できます。

- 名前の変更

- 移動(ダイアグラムで1つ選択した場合にも複数選択した場合にも適用されます)

- 複製

- インタフェースの抽出

- スーパークラスの抽出

Javaクラス図のJavaフィールドおよびメソッドでは、次のリファクタ・パターンを使用できます。

- 名前の変更

- 移動

- staticにする

- メンバーのプル・アップ

- メンバーのプッシュ・ダウン

- メソッドの変更(Javaメソッドのみ)

22.10.2.1 リファクタ操作の開始方法

自動化されたリファクタ操作をいくつか使用でき、外的な動作は変更せずにコードの内部構造を改善することによって、コード品質を向上させることができます。

リファクタ操作を開始するには、次のようにします。

1. ソース・エディタ・ウィンドウ、ナビゲータ・ペインまたは構造ペインでプログラム要素を選択します。

2. プログラム要素を右クリックします。

3. ポップアップ・メニューから操作を選択します。

4. ツールバーから「リファクタ」を選択し、ドロップダウン・リストからリファクタ操作を選択することもできます。

22.11 UMLアクティビティ図の操作

ビジネス・プロセスのモデル化には、アクティビティ図を使用します。ビジネス・プロセスとは、注文処理、出荷、精算および支払いプロセス・フローなどビジネス目標を達成するために調整されたタスクです。

図22-31に示すように、アクティビティ図は、システムの動作を取得し調整されたアクションの実行を示します。

図22-31 要素を示すアクティビティ図の例

22.11.1 アクティビティ図の操作方法

コンポーネント・パレットに、アクティビティ図に追加できる要素があります。「アクティビティ」は、ダイアグラムに直接配置できる唯一の要素です。他の要素は「アクティビティ」の内部に配置できます。表22-32と表22-4に示すように、各要素は一意のアイコンと説明のためのラベルで表されます。

図22-32 アクティビティ図のコンポーネント・パレット

表22-4 アクティビティ図の要素

要素

説明

アクション

アクションは、請求書の送信や支払いの受領など、動作を指定する基本単位です。アクティビティ内の1つのステップを表します。アクションは、一連の入力を受け取って一連の出力に変換します。アクションの実行は、モデル化されたシステムにおける変換または処理を表します。

アクションは、制御フローおよびオブジェクト・フローの形で入力を受け取る場合があり(後者は入力ピンを介して)、その処理または変換の結果を送信制御フローまたはオブジェクト・フローへ(後者は出力ピンを介して)、そしてさらに下流ノードに渡します。アクションの実行は、すべての前提条件が満たされるまで開始されません。

アクティビティ

ビジネス・プロセスなど、システムによって実行される動作。アクティビティは、独自の処理、オブジェクト・ノード、およびそれらの間のフローによって定義される動作です。

アクティビティ最終ノード

制御トークンを初めて受信したとき、アクティビティの実行を終了します。最終ノードは、アクティビティに複数あってもかまいません。アクティビティ最終ノードは、このダイアグラム上の各アクションが終了したことを示します。

分岐/結合

垂直または水平の棒として表示されます。分岐は1つの受信フローと複数の送信フローを持つ制御ノードです。結合は複数の受信フローを1つの送信フローに同期する制御ノードです。分岐/結合のペアを、1つのダイアグラム・ノードとして組み合せることができます。

コール動作アクション

アクションの入力と出力を適切な動作パラメータに単純にマップします。

コール操作アクション

操作コール・リクエストをターゲット・オブジェクトに転送し、そこで関連する動作を呼び出させることができます。動作の結果はアクション出力になります。アクションの引数値は、呼び出された動作の実行に使用できます。

中央バッファ

オブジェクト・ノードの一種。トークンを格納(バッファ)する機能をノードに付与します。1つ以上のオブジェクト・ノードからの受信フローに着信するトークンを管理し、送信フローを介してどのトークンをどの順序で下流のオブジェクト・ノードに渡すかを選択します。

制御フロー

制御トークンのフローを示します。

データ・ストア

一時的でないデータにバッファを渡すオブジェクト・ノードの一種。

フロー終了ノード

アクティビティ全体の実行は終了せずに受信フローを終了させます。

初期ノード

アクティビティを実行する開始点。受信フローはなく、複数の送信フローがあります。初期状態はダイアグラムに1回のみ指定できます。

オブジェクト・フロー

オブジェクト・ノードを接続します。オブジェクト・フローは、ピンを使用してアクションに接続できます。

ノードのマージ

マージ・ノードには、複数の受信フローと1つの送信フローがあります。決定には、1つの受信フローと複数の送信フローがあります。

アクティビティ図を作成するには、次のようにします。

1. 「新規のダイアグラムを作成するには:」の手順に従って新規ダイアグラムを作成します。

2. 図22-32のように、ダイアグラムに追加する要素をコンポーネント・パレットから選択します。

アクティビティ図にパーティションを表示するには、次のようにします。

1. アクティビティ図で、アクションを選択します。

2. プロパティ・インスペクタで、「表示オプション」ノードを展開します。

3. 「アクティビティ・パーティションの表示」を選択します。ダイアグラム上のアクションに「(パーティションなし)」というテキストが表示されます。

4. テキストをクリックします。編集ボックスが表示され、パーティションの名前を入力できます。

22.11.1.1 アクティビティ図の要素の詳細な確認

アクティビティ、アクション、中央バッファ・ノード、およびデータ・ストア・ノードをモデル化するには、アクティビティ図を開始する必要があります。

パーティション

ダイアグラムにパーティションを作成するには、アクションを選択してから、プロパティ・インスペクタの「表示オプション」で「アクティビティ・パーティションの表示」を選択します。

アクティビティとアクション

アクティビティを作成するには、まずコンポーネント・パレットで「アクティビティ」アイコンを選択し、ダイアグラム上でアクティビティまたはアクションを作成する場所をクリックします。

初期ノードと最終ノード

初期ノードとは、アクティビティ実行の開始点です。最終ノードは実行の終了であり、アクティビティ最終ノードの場合はアクティビティ、フロー最終ノードの場合は特定のフローの最後になります。作成するには、コンポーネント・パレットで「初期ノード」アイコン、「アクティビティ最終ノード」アイコン、または最終フロー・ノード・アイコンをクリックし、ダイアグラム上でノードを配置する場所をクリックします。

22.12 シーケンス図の操作

シーケンス図は、クラス・インスタンス間の相互作用を表します。相互作用は、メッセージの交換としてモデル化されます。図22-33に示すように、シーケンス図の中核には、動作パターンを表すクラス・インスタンスとそれらの間で交換されるメッセージがあります。

図22-33 一般的なシーケンス図の例

22.12.1 シーケンス図の操作方法

コンポーネント・パレットから追加する要素は、シーケンス図のデフォルト位置にレイアウトされます。オブジェクト・ライフラインは垂直方向に位置合せされますが、他のオブジェクト・ライフラインに関連する場合には、作成メッセージに位置合せされます。同期メッセージと非同期メッセージは、ページの上から下へ時系列に配置されます。

図22-34に、シーケンス図で使用できるコンポーネント・パレットの要素を示します。各要素は一意のアイコンと説明のためのラベルで表されます。

図22-34 シーケンス図のコンポーネント・パレット

表22-5 シーケンス図の要素

要素

説明

非同期メッセージ

ダイアグラム上では、対角線と開いた矢印で表されます。非同期メッセージは、送信者が処理を続行する前に応答を待つ必要がないメッセージです。

作成メッセージ

ダイアグラムでは、作成されるオブジェクトを表す四角形と破線が元のオブジェクトよりも下方向にシフトして表されます。作成メッセージは、オブジェクトの作成を導くメッセージです。

相互作用

システムでタスクを完了するためのオブジェクトの相互作用を示すことによって、1つのケースの動作を取得します。

メッセージ

メッセージは、相互作用に関与するオブジェクト間で特定の通信を定義するモデル要素です。メッセージは、相互作用に関与するあるオブジェクトから他のオブジェクトへの情報を伝達し、ライフラインで表されます。

オブジェクト・ライフライン

ダイアグラム上では、四角形と下方向への垂直の破線で表されます。オブジェクト・ライフラインは、一定期間のオブジェクトの存在を表します。

RETURN

戻りメッセージは、以前にメッセージが送信されたオブジェクトから戻されるメッセージです。戻りメッセージは同期メッセージからのみ有効で、それ自体が同期します。

メッセージの停止または破棄

ダイアグラムでは、実行仕様をメッセージ終端の大きい×印で表します。停止メッセージは、オブジェクトの削除を導く(または、オブジェクトが不要になったことを示す)メッセージです。

シーケンス図を作成するには、次のようにします。

1. 「新規のダイアグラムを作成するには:」の手順に従って新規ダイアグラムを作成します。

2. 図22-34「シーケンス図のコンポーネント・パレット」のように、ダイアグラムに追加する要素をコンポーネント・パレットから選択します。

シーケンス・トレーサを起動するには、次のようにします。

シーケンス図の一部でポップアップ・メニューを開き、「トレース・シーケンス」を選択します。トレーサは、各ステップをハイライト表示しながら実行仕様とメッセージをステップごとに実行します。

注意:

「トレース・シーケンス」は、相互作用を選択した場合に使用できます。ダイアグラム上のポップアップ・メニューには表れません。

22.12.1.1 シーケンス図の要素の詳細な確認

シーケンス図の要素をダイアグラムに追加するには、コンポーネント・パレットでクリックするか、ドラッグ・アンド・ドロップします。

相互作用

システム内で相互作用をモデル化するには、「相互作用」コンポーネントをダイアグラムに追加します。相互作用は、動作を構成する特定要素のためのコンテナです。

相互作用を右クリックして「順序」、「自動レイアウト」の順に選択すると、要素が相互作用内で自動レイアウトされます。

オブジェクト・ライフライン

オブジェクト・ライフラインをシーケンス図に追加するには、相互作用を追加してから「オブジェクト・ライフライン」アイコンをクリックし、相互作用をクリックします。編集ボックスが開き、オブジェクトのインスタンス名を入力できます。匿名のインスタンスの場合は空白のままにできます。

分類子を追加するには、オブジェクト・ライフラインを右クリックし、「分類子の添付」を選択します。要素のリストが開き、オブジェクト・ライフラインに関連付ける要素を選択できます。分類子を添付するには、分類オブジェクトをナビゲータからオブジェクト・ライフラインにドラッグする別の方法もあります。これらの方法は、分類要素を表すアイコンの外観(オブジェクト・ライフラインの左上)によって確認できます。

実行仕様と同期メッセージ

非同期メッセージを追加するには、「メッセージ」アイコンをクリックし、そのメッセージの開始ポイントとなる垂直の破線、つまり実行仕様をクリックします。次に、そのメッセージの宛先になる垂直の破線をクリックします。

実行仕様をマージするには、ダイアグラム上で重ねます。次に右クリックして、「重複発生のマージ」を選択します。

実行仕様(および添付されているメッセージ)は、元の位置から上下に移動できます。この移動によって、ダイアグラムが無効になる場合があります。ダイアグラムが無効になると、メッセージ線が赤に変わり、宛先のオブジェクトに矢印アイコンが付きます。このアイコンは、ダイアグラムを有効にするためにオブジェクトを移動する方向を示します。

実行仕様ボックスのサイズは、実行仕様ボックスを選択したときに下隅に表示される黒色の小さいボックスをドラッグして変更できます。メッセージ線をドラッグして延長すると、実行仕様のサイズが変更されます。

テキストの編集ボックスを開くには、メッセージ線をクリックし、表示されたグレーのボックス内をクリックします。

同期メッセージの開始ポイントと宛先ポイントが同じオブジェクト・ライフラインである場合があります。この場合は、セルフ・コールを作成したことになります。

同期メッセージは、シーケンス図上では実線と塗りつぶされた矢印で表示されます。

作成メッセージ

作成メッセージを追加するには、「作成メッセージ」アイコン、元のオブジェクト、作成するオブジェクトの順にクリックします。オブジェクトを表す四角形と破線が元のオブジェクトより下方向にシフトします。

作成するオブジェクトがまだダイアグラム上にない場合には、元のオブジェクトを含む相互作用をクリックし、そのオブジェクトを表すオブジェクト・ライフラインを作成します。デフォルトでは、作成メッセージには「create」という名前が指定されます。メッセージ名の編集ボックスを開くには、メッセージ線をクリックし、表示されたグレーのボックス内をクリックします。

メッセージの停止または破棄

停止または破棄メッセージを追加する前に、このメッセージによって削除されるオブジェクトのオブジェクト・ライフラインがすでに追加されている必要があります。

停止メッセージまたは破棄メッセージを追加するには、「メッセージの停止または破棄」アイコン、元のオブジェクト、削除するオブジェクトの順にクリックします。同じオブジェクトで停止メッセージを開始して終了すると、自己削除オブジェクトが作成されます。停止メッセージの終了時の実行仕様は、大きい十字によって示されます。メッセージ行をクリックして、表示される灰色のボックス内をクリックすると、メッセージ名(たとえば、close)の編集ボックスを開くことができます。

他の実行仕様より前にメッセージの停止をシーケンスに追加した場合、その実行仕様は実装されず、警告フラグ付きで表示されます。

RETURN(メッセージ)

戻りメッセージを追加するには、「戻る」アイコンをクリックし、終了実行仕様をクリックします。次に、対応する開始実行仕様をクリックします。この戻りメッセージ線は別のオブジェクトで終了できません。戻りメッセージは、破線と塗りつぶされた矢印で表示されます。メッセージ・テキストの編集ボックスを開くには、メッセージ線をクリックし、表示されたグレーのボックス内をクリックします。

非同期メッセージ

非同期メッセージ(およびその終わりの実行仕様)を追加するには、「非同期メッセージ」アイコンをクリックし、そのメッセージの開始ポイントとなる垂直の破線、つまり実行仕様をクリックします。次に、そのメッセージの宛先になる垂直の破線をクリックします。メッセージ・テキストの編集ボックスを開くには、メッセージ線をクリックし、表示されたグレーのボックス内をクリックします。

非同期メッセージの開始ポイントと宛先ポイントが同じオブジェクト・ライフラインである場合があります。この場合は、セルフ・コールを作成したことになります。

非同期メッセージは、シーケンス図上では対角線と開いた矢印で表示されます。

22.12.1.2 シーケンス図の結合フラグメント・ロックの使用方法

シーケンス図の相互作用には、結合フラグメント・ロックのアイコンがあります。相互作用をロックまたはロック解除すると、ダイアグラム上のその相互作用内の結合フラグメントの動作を維持し、その範囲を他の相互作用や他のダイアグラムにまで拡張できます。

22.12.1.3 結合フラグメントの使用

結合フラグメントは、相互作用の演算子とそれに対応する相互作用オペランドによって定義される相互作用の式を定義します。結合フラグメントには、相互作用の演算子によって制御される一連の相互作用(これを相互作用オペランドと言います)が反映され、それに対応するブール条件を相互作用制約と言います。透明なウィンドウとして表示され、各オペランドを示す水平の点線で分割されます。

例22-35に、現金出納係が支払いを要求した後で購入品目を反復処理するループ・フラグメントの例を示します。この時点では2つの支払いオプションを考慮して別のフラグメントも作成し、現金とクレジットカードの2つのオペランドを分割して表しています。フラグメントがトレースを完了すると、支払い条件が満たされた時点で現金出納係が顧客に領収書を発行します。

図22-35 結合フラグメントを伴う一般的なシーケンス図

図22-36に、ダイアグラマでダイアグラムを開いたときコンポーネント・パレットに表示される結合フラグメントを示します。

図22-36 コンポーネント・パレットの「結合フラグメント」ドロップダウン・リスト

表22-6 結合フラグメントの相互作用演算子

相互作用演算子

説明

代替

ブール条件に基づいて相互作用フラグメントを分割します。

アサート

唯一有効なフラグメントの発生を示します。

ブレーク

オペランドが、包含する相互作用フラグメントの残りのかわりに実行されるシナリオであるという意味で結合フラグメントがブレーク・シナリオを表すことを指定します。

重要

他の処理によって中断できないシーケンスを示します。

ループ

オペランドが、相互作用制約で指定される回数繰り返されることを示します。

負

フラグメントが無効であることをアサートし、他の相互作用がすべて有効であることを表します。

オプション

オプションの相互作用フラグメントを包括します。

パラレル

オペランドが並行して処理されることを示します。

順序

結合フラグメントが弱く順序付けされることを示します。発生仕様が同じライフライン上にある場合に、最初のオペランドの発生仕様が2番目の発生仕様より優先されるかぎりオペランド内の順序は維持されるが、オペランドどうしの順序は未定義であることを示します。

厳密

オペランドの動作が厳密な順序で処理されることを示します。

22.13 ユースケース図の操作

ユースケース図は、システムの使用条件の概要を示します。図22-37のように、開発の目的で、ユースケース図はシステムまたはプロジェクトの実際の要件またはワークフローを表します。

図22-37 一般的なユースケース図

22.13.1 ユースケース図の操作方法

ユースケース図は、アクターとそれが関与するユースケースを接続して、アクターとシステムとの相互作用を表します。アクターが情報を提供する、ユースケースを開始する、またはユースケースの結果として情報を受信する場合は、アクター間にアソシエーションがあります。

図22-38は、ユースケース図に追加できる要素が表示されたコンポーネント・パレットを示しています。各要素は一意のアイコンと説明のためのラベルで表されます。

「相互作用」は、ダイアグラムに直接配置できる唯一の要素です。他の要素はすべて、「相互作用」の内部に配置します。

図22-38 コンポーネント・パレットのユースケース要素

表22-7 ユースケース要素

コンポーネント

説明

アクター

システム内の抽象ロールを表します。

通信

アクターが特定のユースケースに関連付けられている状況を示します。

依存性

要素間の関係を示します。

拡張

ターゲットのユースケースがソースのユースケースの定義を拡張することを示します。

汎化

1つ以上の要素が別の要素を特化している状況を示します。たとえば、あるアクターTeam MemberがアクターManagerとアクターDeveloperに特化されている場合があります。

対象

ユースケースで、他のユースケースを含む関係を示します。

サブジェクト

サブジェクトには2つのタイプがあります。1つのシステムには通常、モデル化の対象となるシステム全体を構成するユースケースとアクターのセットが含まれます。2つ目のタイプには通常、開発の対象となる一貫性のあるシステム部分を構成するユースケースのグループが含まれます。

ユースケース

1つの要素が、相互作用を実行するために他の要素を必要とすることを示します。

ユースケース図を作成するには、次のようにします。

1. 「新規のダイアグラムを作成するには:」の手順に従って新規ダイアグラムを作成します。

2. 図22-38のように、ダイアグラムに追加する要素をコンポーネント・パレットから選択します。

22.13.1.1 ユースケース図の要素の詳細な確認

サブジェクト、アクター、その他のタイプのオブジェクトの外観や他の属性を決定するには、プロパティ・インスペクタでプロパティを変更するか、オブジェクトを右クリックしてプロパティを変更するか、または基礎となるテンプレート・ファイルを作成してカスタマイズします。

テンプレートを使用すると、サポートするオブジェクトをコンポーネント・パレットに追加できます。詳細は、第22章の「ユースケースのコンポーネント・パレット・テンプレートの使用方法」を参照してください。

図22-39 ユースケースのサブジェクト、アクター、オブジェクトの例

サブジェクト

モデル化するシステムは、そのシステムのすべてのアクターとユースケースをサブジェクト内に囲んで表示できます。サブジェクト・ライン内のユースケースを包括するグループによって開発対象を表示します。サブジェクトをダイアグラムに追加するには、コンポーネント・パレットで「サブジェクト」をクリックし、サブジェクトが占める領域をカバーするようにポインタをドラッグします。図22-39に、関連するアクターに会計サブジェクトを接続している例を示します。サブジェクトの内部に要素をドロップすると、要素を包含するようにサブジェクト・ラインが拡張されます。手動でサブジェクトのサイズを変更することもできます。サイズを縮小して表示しきれない要素がある場合には、右下隅に省略記号が表示されます。

アクターおよびユースケース

ダイアグラム上にアクターを作成するには、コンポーネント・パレット上で「アクター」アイコンをクリックし、次にダイアグラム上でアクターを作成する位置をクリックします。

アクターまたはユースケースのプロパティを変更するには、モデル化された要素をダブルクリックして、エディタでその要素の詳細を編集します。

アクターとユースケース間の関係

アクターとユースケース間の相互作用をダイアグラム上で表現するには、コンポーネント・パレットの「通信」アイコンを使用します。また、アクター間およびユースケース間の汎化構造を作成するには、「汎化」アイコンを使用します。1つのユースケースが別のユースケースを包含する状況を表すには、「対象」アイコンを使用し、1つのユースケースが別のユースケースを拡張する状況を表すには、「拡張」アイコンを使用します。

ノート、依存関係およびURLリンクを使用して、ユースケース図に注釈を追加できます。注釈コンポーネントは、コンポーネント・パレット下部の「ダイアグラムの注釈」から使用できます。

ユースケースとサブジェクトの関係

ユースケースとサブジェクトの間の相互作用を表現するには、コンポーネント・パレットの「通信」アイコンを使用します。

ユースケースとサブジェクトの関係

ユースケースとサブジェクトの間の相互作用を表現するには、コンポーネント・パレットの「通信」アイコンを使用します。

22.13.1.2 ユースケース・テンプレートの使用方法

XHTMLファイルは、ユースケース図ーの一部のオブジェクトをサポートするドキュメントのテンプレートとして使用できます。テンプレートを使用すると、各オブジェクト型に対して最初に作成するドキュメントの外観や他の属性を決定できます。テンプレートのソース・コードを直接編集することも、ビジュアル・エディタを使用することもできます。

ユースケース・テンプレートを開くには、次のようにします。

「ファイル」→「開く」の順に選択します。次に、<jdeveloper_install>/jdev
/system[...]/o.uml.v2.usecase.html/templates/usecaseフォルダにナビゲートし、格納されているファイルの1つをダブルクリックして開きます。

ファイルの名前と用途は次のとおりです。

- Actor.xhtml_act - アクター・ドキュメントのテンプレート。

- Casual.xhtml_usc - 略式ユースケース・ドキュメントのテンプレート。

- FullyDressed.xhtml_usc - 正式ユースケース・ドキュメントのテンプレート。

- Milestone.xhtml_sub: 「Subject - Milestone」ユースケース・ドキュメントのテンプレート。

- SystemBoundary.xhtml_sub: 「Subject -」ユースケース・ドキュメントのテンプレート。

ユースケース・テンプレートのソース・コードを編集するには、次のようにします。

「ソース」タブを選択します。HTMLタグを特定の場所に挿入するには、ポップアップ・メニューを開いて「HTMLの挿入」を選択します。

一般的なルールとして、uml:接頭辞を含むタグ(例: <uml:usecase_extends>)は削除しないでください。テンプレートのセクション全体(例: tdタグと/tdタグの間)を削除する場合、uml:接頭辞はセクションの他の内容とともに安全に削除できます。

ユースケース(モデラー)テンプレートのテキストの外観を変更するには、次のようにします。

「エディタ」タブを選択し、変更するテキストを選択します。次に、ツールバーから書式設定オプションを1つ以上選択します。

HTMLインタフェース・オブジェクト、コード・オブジェクトおよび開発入力を挿入するには、次のようにします。

「エディタ」タブを選択し、挿入するテンプレート上の場所を選択してから必要な場所とオブジェクトをポップアップ・メニューから選択します。

HTMLインタフェース・オブジェクト(ボタンやチェック・ボックス)、HTMLコード・オブジェクト(アンカーや表)、開発入力(コメントや処理指示)を挿入できます。

初期状態では、選択したテンプレート項目の前後どちらにも、またテンプレートの<head>セクションにもオブジェクトを挿入できます。その後、これらのオプションが不適切である場合は選択できなくなります。ポップアップ・メニューから「HTML」または「参照」を選択すると、ダイアログ・ボックスが開き、様々なHTMLインタフェース・オブジェクトおよびコード・オブジェクトから1つを選択できます。ここで項目を選択すると、オブジェクトに適したプロパティを入力する挿入ダイアログが開きます。

22.13.1.3 ユースケースのコンポーネント・パレット・テンプレートの使用方法

新規のユースケース・テンプレートは、JDeveloperで用意されているテンプレートをコピーして作成できます。必要に応じてコピーを変更できます。

各新規コンポーネント・パレットには、そのコンポーネントをサポートするユースケース・テンプレートが1つ必要です。指定したユースケース・テンプレートはコピーまたは移動されず、元の場所にそのまま存在します。

新規のコンポーネント・パレット・ページを作成し、新規ユースケース・コンポーネントを追加するには、次のようにします。

1. 「ツール」→「パレットの設定」を選択します。

2. 「コンポーネント・パレットの設定」ダイアログで、「ページ・タイプ」としてユースケースを選択します。

3. 「追加」をクリックします。

4. 新規コンポーネント・パレット・ページの名前を入力します。

5. ドロップダウン・リストから「ユースケース」を選択し、「OK」をクリックします。コンポーネント・パレットに新しいページが表示されます。ポインタ・アイテムは自動的に含まれます。

6. コンポーネント・パレットのコンポーネント領域でポップアップ・メニューを開き、「コンポーネントの追加」を選択します。「ユースケース・テンプレートの追加」ダイアログが開きます。

7. 新規コンポーネントの名前を入力します。

8. 新規コンポーネントのベースとなるユースケース・テンプレートへのパスを入力します。パスにはURLを設定できます。

9. 新規コンポーネントをコンポーネント・ページに追加するには、「OK」をクリックします。

22.14 ディスクへのダイアグラムの格納

ダイアグラムはダイアグラム・ファイルと同じようにディスクに格納されます。ダイアグラム・ファイルは、ダイアグラムに表示される要素を参照し、その要素の表示に関する情報(サイズ、色、フォント、各種プロパティの表示など)を含んでいます。ダイアグラム・ファイルは、ダイアグラムを格納するパッケージのフォルダの中に格納され、プロジェクト設定で指定したモデル・パスに格納されます。ダイアグラムのリンクと依存性もダイアグラム・ファイルに格納されます。

モデル・パスを設定するには、「アプリケーション」→「デフォルト・プロジェクト・プロパティ」→「プロジェクトのソース・パス」→「モデラー」を選択します。

Javaクラスなどのダイアグラム要素はダイアグラム・ファイルで参照されますが、その定義と実装の詳細は各要素の実行ファイルにのみ格納されます。各要素のダイアグラムでの詳細(位置、色、サイズなど)はダイアグラム・ファイルに格納されますが、要素の個別のモデル定義は格納されません。

22.15 ディスクへのUML要素の格納方法

UML要素は個別のファイルに格納されます。ファイルの場所は、要素のパッケージ・プロパティによって異なります。この要素ファイルには、各要素に対して定義されたプロパティが含まれていますが、ダイアグラム・ファイルには、ダイアグラムに表示される要素およびその要素のビジュアル・プロパティも定義されます。モデル化されたUML要素の要素ファイルは、プロジェクトのモデル・パスで指定されたフォルダの下の適切なパッケージ・フォルダに格納されます。モデル・パスを設定するには、「アプリケーション」→「デフォルト・プロジェクト・プロパティ」→「プロジェクトのソース・パス」→「モデラー」を選択します。

23 モデル化によるJava EEおよびJavaアプリケーションの開発

この章では、Oracle JDeveloperに組み込まれている最新のモデル化ツールとテクノロジを使用した、Java EEおよびJavaアプリケーション・ダイアグラムでの作業方法について説明します。

この章では、次の項目について説明します。

- 第23.1項「モデル化によるJava EEおよびJavaアプリケーションの開発」

- 第23.2項「ビジネス・コンポーネント・ダイアグラム」

- 第23.3項「ダイアグラムでのEJB/JPAコンポーネントのモデル化」

- 第23.4項「Javaクラス図」

- 第23.5項「データベース・ダイアグラム」

23.1 モデル化によるJava EEおよびJavaアプリケーションの開発

Oracle JDeveloperには、Java EEおよびJavaアプリケーション・システムをモデル化するための各種ダイアグラム・ツールが用意されています。

23.2 ビジネス・コンポーネント・ダイアグラム

ビジネス・コンポーネント・ダイアグラムを使用して、エンタープライズ・アプリケーション内のビジネス・エンティティとオブジェクトを視覚化および編成します。

詳細は、『Oracle Fusion Middleware Oracle Application Development Framework Fusion開発者ガイド』のビジネス・レイヤーのエンティティ・ダイアグラムの作成に関する項を参照してください。

23.3 ダイアグラムでのEJB/JPAコンポーネントのモデル化

Enterprise JavaBeans (EJB)のモデル化により、EJBエンティティ関連およびアーキテクチャを視覚化し、プロパティおよびメソッドを移入できるBeanのセットを迅速に作成し、またそのBeanおよびBean間の関連と参照のグラフィカル表示を作成できます。Beanがモデル化されると、基礎となる実装ファイルも常に作成されます。

EJBをモデル化するため、EJBダイアグラムの作成を開始します。詳細は、「新規ダイアグラムの作成手順」を参照してください。UMLクラス、Javaクラス、ビジネス・コンポーネント、オフライン・データベース表、UMLユースケース、Webサービスなどの他の要素は、後で同じダイアグラムに追加できます。詳細は、「ダイアグラム要素での作業方法」を参照してください。

エンティティBean、セッションBeanおよびメッセージドリブンBeanについて

Enterprise JavaBeansは、ダイアグラムのEJBコンポーネント・パレットで「エンティティBean」アイコン、「セッションBean」アイコンまたは「メッセージドリブンBean」アイコンを使用して、要素を作成するダイアグラムをクリックすることで、ダイアグラム上に作成されます。モデル化された要素の実装ファイルは、プロジェクト設定で指定された場所に作成されます。

ヒント:

ダイアグラムでモデル化されたBeanの実装Javaクラスをモデル化する場合は、モデル化されたBeanを右クリックし、実装ファイルを表示を選択します。

プロパティとメソッドを追加するには、BeanをダブルクリックしてEJBモジュール・エディタでプロパティまたはメソッドを追加するか、モデル化されたBean自体で新規のプロパティまたはメソッドをインプレースで作成します。詳細は、第23.3.5項「プロパティおよびメソッドのモデル化」を参照してください。

Bean間の関連

一方のBeanからリモート・インタフェースを持つ他方のBeanへの参照は、「EJB参照」アイコンを使用して作成できます。一方のBeanからローカル・インタフェースを持つ他方のBeanへのローカル参照は、ダイアグラムのEJBコンポーネント・パレットの「EJBローカル参照」アイコンを使用して作成できます。詳細は、第23.3.6項「コンポーネント間参照のモデル化の方法」を参照してください。

モデル化されたエンティティBean間の様々な関連を迅速に作成するには、ダイアグラムのEJBコンポーネント・パレットの1対*の関係アイコン、有向1対1関係アイコン、有向1対*関係アイコンおよび「有向厳密集約」アイコンを使用します。詳細は、第23.3.3項「JPA関係のモデル化方法」を参照してください。

注意:

ダイアグラムに表示される項目の実装ファイルを変更、追加または削除すると、その変更はその要素のモデル化された表現にも反映されます。逆に、モデル化されたEnterprise JavaBeansに対する変更は、基礎になる実装ファイルにも適用されます。

ノート、依存関連およびURLリンクを使用して、Enterprise JavaBeansのダイアグラムに注釈を付けることができます。

23.3.1 EJB/JPAコンポーネントのダイアグラムの作成

エンティティBean、セッションBeanおよびメッセージドリブンBean、各Beanのプロパティとメソッドの関連は、すべてEJBダイアグラムでグラフィカルにモデル化できます。EJBダイアグラムは、UMLクラス、Javaクラス、UMLユースケース、オフライン・データベース・オブジェクト、ビジネス・コンポーネントおよびWebサービスのモデル化にも使用されます。

Javaクラスのダイアグラムを作成するには、次のようにします。

1. 「新規ギャラリ」でプロジェクトまたはアプリケーションの新規EJBダイアグラムを作成します。

2. EJBコンポーネント・パレットを使用して、ダイアグラムの要素を作成します。表23-1には、EJBコンポーネント・パレットが表示されています。

表23-1 EJBコンポーネント・パレットのアイコン

ドロップダウン・リスト

アイコン

名前

EJBノード

エンティティ

メッセージドリブンBean

セッションBean

エンティティ関連

双方向の*対*関係

双方向の*対1関係

双方向の1対1関係

一方向の*対*関係

一方向の*対1関係

一方向の1対*関係

一方向の1対1関係

EJBエッジ

エンティティ継承エッジ

セッション・ファサード・エッジ

ダイアグラムの注釈

添付

グループ

Link

ノート

ノートをダイアグラム要素に添付し、ダイアグラムに注釈を付けることができます。詳細は、第22章の「ダイアグラムの注釈の使用方法」を参照してください。

23.3.2 EJB/JPAコンポーネント・ダイアグラムの読み方

セッションBean、エンティティBeanおよびメッセージドリブンBeanはすべて、JDeveloperでモデル化できます。モデル化されたセッションBeanとエンティティBeanは、複数のコンパートメントで構成されます。たとえば、メッセージドリブンBeanに含まれるのは、«message-driven bean»ステレオタイプおよびBeanの名前を含む名前コンパートメントのみです。EJB 3.0 Beanでは、インタフェースのコンパートメントがないため、モデルの外観は異なります。

図23-1 EJB/JPAコンポーネント・ダイアグラム

Bean間の関連とコネクタに注意してください。一方のBeanからリモートまたはローカル・インタフェースを持つ他方のBeanへの参照を作成できます。参照をモデル化できるのは、現在のデプロイメント・ディスクリプタ内にあるBean間のみです。

23.3.3 JPA関連のモデル化の方法

関連コンポーネントをパレットからドラッグして、1つのクラス図での2つのエンティティ間の関連をモデル化できます。また、ルート・エンティティと子エンティティの間の継承エッジも表示できます。関連の両端のエンティティに、コンテナ管理の永続性とローカル・インタフェースが必要です。

1つのダイアグラムで2つの関連をモデル化するには、次のようにします。

1. EJBコンポーネント・パレットにリストされている関連から、作成する関連のアイコンをクリックします。

注意:

関連の端のナビゲーション性および多重度は、作成後に変更できます。これらのアイコンが表示されない場合は、コンポーネント・パレットのドロップダウン・リストから「EJBコンポーネント」を選択してください。

2. 関連の「所有する」または「元」側のエンティティをクリックします。

注意:

コンテナ管理関連(CMR)フィールドを使用してこの関連を表示する場合、これは、フィールドが作成されるBeanになります。

3. 関連の「先」側のエンティティBeanをクリックします。

4. ダイアグラム上の関連を示す線をクリックし、アソシエーションに隣接するテキスト・フィールドをクリックして、関連名を入力します。

注意:

ダイアグラム上の関連の端の多重度を変更するには、その関連の端を右クリックして、「多重度→1」または「多重度→*」を選択します。

23.3.4 ダイアグラムでのEJB/JPAコンポーネントのモデル化の方法

エンティティBean、セッションBeanおよびメッセージドリブンBeanはすべて、JDeveloperのダイアグラム機能を使用してモデル化できます。プロパティとメソッドもモデル化できます。

- エンティティBeanは、コンテナ管理の永続性(CMP)またはBean管理の永続性(BMP)になります。Bean管理の永続性を使用してエンティティBeanを作成する前に、そのエンティティBean間の関連を作成する必要があるかどうかを検討することもできます。関連は、コンテナ管理の永続性を持つエンティティBean間にのみ作成できます。

- セッションBeanのセッション・タイプをクラス図で変更するには、セッションBeanを右クリックし、「セッション・タイプ」、次に「ステートフル」、または「セッション・タイプ」、次に「ステートレス」を選択します。

- メッセージドリブンBeanは、(EJB参照を使用して)セッションBeanおよびエンティティBeanと対話するために最も頻繁に使用されます。

23.3.5 プロパティおよびメソッドのモデル化

モデル化されたEJBにプロパティとメソッドを追加するには、BeanをダブルクリックしてEJBモジュール・エディタでプロパティまたはメソッドを追加するか、モデル化されたBeanで新規のプロパティまたはメソッドを直接作成します。

23.3.5.1 モデル化されたBeanでのプロパティの作成

モデル化されたBeanで直接プロパティを作成するには、プロパティの名前とデータ型を入力します。次に例を示します。

name : java.lang.String

Public (+)可視性の記号が、プロパティの先頭に自動的に追加されます。

注意:

StringまたはLongなどのパッケージ接頭辞を付けずにjava.langパッケージからのプロパティ・タイプを入力すると、java.lang.プロパティ・タイプ接頭辞が自動的に追加されます。プロパティのタイプが指定されていない場合は、デフォルト・タイプ'String' (java.lang.String)が使用されます。

23.3.5.2 モデル化されたBeanでのメソッドの作成

クラス・ダイアグラム上で、モデル化されたBeanにローカル/リモートおよびローカル/ローカル・ホームの両方のメソッドを作成できます。Beanでメソッドをモデル化すると、対応するコードも実装Javaクラス内に作成されます。

モデル化されたBeanにインプレースでメソッドを作成するには、名前を入力し、オプションでパラメータ型と名前およびメソッドの戻り型を入力します。メソッドの戻り型の前には、コロン(:)を付ける必要があります。次に例を示します。

getName(String CustNumber) : java.lang.String

Public (+)可視性の記号が、メソッドの先頭に自動的に追加されます。

注意:

StringまたはLongなど、パッケージ接頭辞を付けずにjava.langパッケージからの戻り型を入力すると、戻り型接頭辞java.lang.がメソッドのクラスのJavaに自動的に追加されます。パラメータ・タイプが指定されていない場合、メソッドはパラメータなしで定義されます。戻り型が指定されていない場合は、デフォルトの戻り型voidが使用されます。メソッドのプロパティを変更するには、ダイアグラムまたはナビゲーション・ペインでクラスをダブルクリックし、EJBエディタを使用してメソッドの詳細を変更します。

23.3.6 クロス・コンポーネント参照のモデル化の方法

クラス・ダイアグラム上で、モデル化されたBean間に参照を作成できます。

- 一方のBeanからリモート・インタフェースを持つ他方のBeanへのEJB参照を作成できます。

- 一方のBeanからローカル・インタフェースを持つ他方のBeanへのEJBローカル参照を作成できます。

注意:

参照を作成できるのは、現在のデプロイメント・ディスクリプタ内にあるBeanに対してのみです。

モデル化されたBean間の参照をモデル化するには、次のようにします。

1. EJBコンポーネント・パレットにリストされている参照から、作成する参照のアイコンをクリックします。

- EJB参照

- EJBローカル参照

注意:

これらのアイコンが表示されない場合は、コンポーネント・パレットのリストから「EJB」を選択してください。

2. 参照の「所有」または「元」側のBeanをクリックします。

3. 参照の「先」側のBeanをクリックします。

23.3.7 モデル化されたBeanの実装ソース・コードの表示方法

モデル化された各Beanには、その要素の実装コードを含む基礎となるJavaソース・ファイルがあります。これらの実装ファイルは、モデル化されたJavaクラスとしてダイアグラムに表示できます。

モデル化されたBeanのモデル化された実装Javaクラスを表示するには、次のようにします。

- ダイアグラムでJava実装をモデル化するBeanを選択し、「モデル」、「表示」、「実装ファイル」の順に選択します。

- または、ダイアグラムでJava実装をモデル化するダイアグラム上のBeanを右クリックし、実装の表示、次に「ファイル」を選択します。

23.3.8 モデル化されたBeanのソース・コードの表示方法

モデル化されたBeanのJavaソース・コードは、ダイアグラムのシンプル・コマンドでソース・エディタに表示できます。

モデル要素のJavaソース・コードを表示するには、次のようにします。

- ダイアグラムの要素を右クリックします。「ソースに移動」を選択し、表示するソース・ファイルを選択します。

- または、ダイアグラム上の要素を選択します。「モデル」→「ソースに移動」を選択します。

23.3.9 プロパティまたはメソッドのアクセス・レベルの変更方法

モデル化されたBeanのプロパティまたはメソッドのアクセス・レベルは、シンプル・コマンドを使用してダイアグラム上で変更できます。

プロパティまたはメソッドのアクセス・レベルを変更するには、次のようにします。

1. 変更するプロパティまたはメソッドを右クリックします。

2. ポップアップ・メニューの「次からアクセスが可能」オプションから、必要なアクセス・レベル・オプションを選択します。
アクセス・レベル・オプションは次のとおりです。

- ローカル・インタフェース

- リモート・インタフェース

- ローカル・インタフェースとリモート・インタフェース

23.3.10 ダイアグラムでのJPAエンティティのリバース・エンジニアリングの方法

モデル化されたエンティティBeanは、EJBのダイアグラム上で、アプリケーションのデータベース接続を介して表定義からリバース・エンジニアリングできます。

表定義をエンティティBeanにリバース・エンジニアリングするには、次のようにします。

1. ダイアグラムを開く、または作成します。

2. データベース接続の接続ナビゲータでノードを展開します。

3. ユーザー・ノードを展開した後、「表」ノードを展開します。

4. エンティティBeanの作成に使用する表定義をクリックし、現在のダイアグラムにドラッグします。
複数の表をエンティティBeanにリバース・エンジニアリングするには、[Ctrl]キーを押しながら、リバース・エンジニアリングする表をナビゲータで選択し、その表をダイアグラムにドラッグした後、[Ctrl]キーを放します。

5. EJBバージョンを選択し、「OK」をクリックします。

23.4 Javaクラス図

Javaクラス図の機能を使用して、Java EEのJavaクラスとクラス・システムをモデル化します。詳細は、第22章「クラス図の使用方法」を参照してください。

23.5 データベース・ダイアグラム

データベース構造をモデル化すると、オンラインまたはオフライン・データベースに保存されている表の間の関連とデータベース・スキーマをビジュアルに表示できます。変換機能を使用すると、データベース表をJavaクラスとインタフェースに、またその逆に変換できます。データベースの変換方法の詳細は、第22章の「Javaクラスおよびインタフェースの変換」を参照してください。

23.5.1 データベースのモデル化機能の使用方法

JDeveloperを使用して、オフライン・データベース・オブジェクトを、稼働中のデータベース接続のデータベース・オブジェクトと同様にモデル化できます。また、表や外部キー関係などのデータベース・オブジェクトをダイアグラム上で作成し、それをオンラインまたはオフライン・データベースに統合できます。

データベース・ダイアグラムを使用して、表および外部キー関係、ビューおよび結合オブジェクト、マテリアライズド・ビュー、シノニム、およびシーケンスなどの図コンポーネント上で直接作成、およびビジネス・エンティティ構造と関係を表示できます。

作成した新規オブジェクトと同様、オンラインまたはオフライン・データベースのすべてのデータベース・オブジェクトはアプリケーション・ナビゲータに表示されます。

23.5.1.1 データベースのモデル化のメリット

アプリケーション・ナビゲータおよびコンポーネント・パレットを使用して、オフラインおよび稼働中のオンライン・データベース・オブジェクトを追加または作成します。

データベース・ダイアグラムは、次の目的で使用します。

- 表およびその列を作成および視覚化します。

- 表の間の外部キー関係を作成および視覚化します。

- ビュー、マテリアライズド・ビュー、およびマテリアライズド・ビュー・ログを作成および視覚化します。

- 順序とシノニムを作成および視覚化します。

また、テンプレートに基づいて、ダイアグラム上にデータベース・オブジェクトを作成できます。

23.5.1.2 データベースのモデル化の開始方法

「新規ギャラリ」を使用してデータベースを作成します。「新規ダイアグラムの作成方法」を参照してください。図23-2に示すとおり、データベース・ダイアグラムは、作成後にコンポーネント・パレットで使用可能なコンポーネントから選択できます。

図23-2 データベース・コンポーネント・パレット

ダイアグラムにオフライン・データベース・オブジェクトを作成するには、データベース・オブジェクト・コンポーネント・パレットで該当するアイコンをクリックし、オブジェクトの作成先であるダイアグラムをクリックします。データベース・ナビゲータでデータベース接続からオブジェクトをドラッグするか、アプリケーション・ナビゲータでオフライン・スキーマからダイアグラム上にオブジェクトをドラッグすることもできます。

アクティビティ図を除くと、どのタイプのダイアグラムのオンラインまたはオフライン表でもモデル化できます。また、同じダイアグラム上にUMLクラス、Javaクラス、ビジネス・コンポーネント、Enterprise JavaBeans、UMLユースケースおよびWebサービスなど、その他の要素を追加できます。

テンプレートに基づき、オフライン・データベース・オブジェクトをダイアグラム上に作成できます。最初にオブジェクトを新規データベース・ダイアグラムに追加する際、「場所の指定」ダイアログが表示され、ここでオブジェクトがプロジェクトのオフライン・データベース・オブジェクトであるか、データベース接続のデータベース・オブジェクトであるかを指定します。テンプレートに基づいてオフライン・データベース・オブジェクトを作成する場合は、一連のテンプレートを同時に作成できます。

モデリングされたオブジェクトをダブルクリックして該当する編集ダイアログを表示するか、モデリングされたオブジェクトに新規要素を作成することで、オブジェクトを定義する要素を追加できます。

ノート、依存関係およびURLリンクを使用してデータベース・オブジェクトのダイアグラムに注釈を作成できます。

ダイアグラム上に表示された定義に対して変更、追加、削除などを行う場合は、これらの変更はデータベース・オブジェクトのモデル化された表示に反映されます。逆に、モデル化されたデータベース・オブジェクトへの変更は、基礎となる定義に対しても行われます。

外部キー

外部キーはモデリング表間で迅速に作成できます。そのためには、データベース・コンポーネント・パレット上の「外部キー」をクリックし、外部キーの作成元の表をクリックし、外部キーの宛先表をクリックします。「外部キーの作成」ダイアログを使用すると、ターゲット表の既存の列を選択するか、新しい列を作成できます。

結合オブジェクト

ビューで2つ表の使用方法の間に結合オブジェクトを作成するには、データベース・コンポーネント・パレットの「結合オブジェクト」をクリックして、結合する2つの表の使用方法をクリックします。「結合の編集」ダイアログでは、結合を指定できます。

マテリアライズド・ビュー

マテリアライズド・ビューをダイアグラム上に作成するには、はデータベース・コンポーネント・パレットの「マテリアライズド・ビュー」をクリックして、マテリアライズド・ビューの作成先のダイアグラムをクリックします。また、マテリアライズド・ビューは、JDeveloperで定義されているデータベース接続、またはアプリケーション・ナビゲータのオフライン・データベースからドラッグし、ダイアグラムにドロップできます。

テンプレートからのマテリアライズド・ビュー

テンプレートに基づいてマテリアライズド・ビューを作成するには、データベース・コンポーネント・パレットの「テンプレートからのマテリアライズド・ビュー」をクリックし、マテリアライズド・ビューの作成先のダイアグラムをクリックします。「テンプレート・オブジェクトの選択」ダイアログが表示され、マテリアライズド・ビューの基準とするテンプレートを選択できます。

プライベート・シノニムとパブリック・シノニム

データベース・コンポーネント・パレット上の(シノニム)をクリックした後、シノニムを作成するダイアグラム上をクリックすると、ダイアグラムにシノニムが作成されます。JDeveloperで定義したデータベース接続またはアプリケーション・ナビゲータのオフライン・データベースから、シノニムをドラッグしてダイアグラムにドロップする方法もあります。

パブリック・シノニムはPUBLICスキーマで作成されます。

リレーションの使用方法

データベース・コンポーネント・パレット上の(リレーションの使用方法)をクリックした後、ビューをクリックして、ビューの基本リレーションを定義します。

順序

ダイアグラムのデータベース・コンポーネント・パレット上の(「順序」)をクリックしてから、順序を作成するダイアグラムをクリックすると、ダイアグラムに順序が作成されます。JDeveloperで定義したデータベース接続またはアプリケーション・ナビゲータのオフライン・データベースから、順序をドラッグしてダイアグラムにドロップする方法もあります。

テンプレートからのシーケンス

ダイアグラムのデータベース・コンポーネント・パレット上の「テンプレートからのシーケンス」をクリックしてから、シーケンスを作成するダイアグラムをクリックすると、ダイアグラムにテンプレートに基づくシーケンスが作成されます。「テンプレート・オブジェクトの選択」ダイアログが表示され、マテリアライズド・ビューの基準とするテンプレートを選択できます。

テンプレートからのシノニム

ダイアグラムのデータベース・コンポーネント・パレット上の「テンプレートからのシノニム」をクリックしてから、シノニムを作成するダイアグラムをクリックすると、ダイアグラムにテンプレートに基づくシノニムが作成されます。「テンプレート・オブジェクトの選択」ダイアログが表示され、マテリアライズド・ビューの基準とするテンプレートを選択できます。

表

データベース・コンポーネント・パレット上の(表)をクリックした後、表を作成するダイアグラム上をクリックすると、ダイアグラムに表が作成されます。JDeveloperで定義したデータベース接続またはアプリケーション・ナビゲータのオフライン・データベースから、表をドラッグしてダイアグラムにドロップする方法もあります。

モデル化された表で、列が主キー、外部キー、または一意キーであることを示す表列アイコンの表示を選択できます。

モデル化された表の最初の列は、列が主キー、一意キー、または外部キーのいずれかを示します。

- 列は主キー

- 列は外部キー

- 列は一意キー

- 列にチェック制約あり

2番目の列は、表列が必須であるかどうかを示します。

注意:

表列が主キーの場合は、一意キーまたは外部キーでもある場合でも、主キーのアイコンのみが表示されます。

テンプレートからの表

データベース・コンポーネント・パレット上の「テンプレートからの表」をクリックした後、表を作成するダイアグラム上をクリックすると、ダイアグラムに表が作成されます。「テンプレート・オブジェクトの選択」ダイアログが表示され、マテリアライズド・ビューの基準とするテンプレートを選択できます。

ビュー

データベース・コンポーネント・パレット上の(ビュー)をクリックした後、ビューを作成するダイアグラム上をクリックすると、ダイアグラムにビューが作成されます。JDeveloperで定義したデータベース接続またはアプリケーション・ナビゲータのオフライン・データベースから、ビューをドラッグしてダイアグラムにドロップする方法もあります。

ビューを定義するには、表とビュー、表列または他のビューの要素を新規に定義するビューに追加します。ビューを追加するには、コンポーネント・パレットで作成する方法、ダイアグラム上の他のビューと表をビューにドラッグする方法、アプリケーション・ナビゲータからオフライン・データベース・オブジェクトをドラッグする方法、データベース・ナビゲータで接続からデータベース・オブジェクトをドラッグする方法があります。

テンプレートからのビュー

データベース・コンポーネント・パレット上の「テンプレートからのビュー」をクリックした後、ビューを作成するダイアグラム上をクリックすると、ダイアグラムにビューが作成されます。「テンプレート・オブジェクトの選択」ダイアログが表示され、マテリアライズド・ビューの基準とするテンプレートを選択できます。

23.5.1.3 データベースまたはスキーマの変更方法

1. データベース・ダイアグラムで、右クリックして「データベース・オブジェクトの作成」→「データベース」または「スキーマ」を選択します。

2. オフライン・データベース・オブジェクトの「アプリケーション・プロジェクト」、またはデータベース・オブジェクトの「データベース接続」を選択して、「場所の指定」ダイアログ、または「オフライン・スキーマの選択」ダイアログを終了します。

注意:

後続のデータベース・オブジェクトはすべて、選択したデータベースまたはスキーマで作成されます。既存のオブジェクトは変更されません。

第VI部

データベースの使用

ここでは、Oracle JDeveloperを操作してデータベースに接続し、データベースを設計する一般的な概念を説明し、次の章があります。

- 第24章「データベースの使用に関するスタート・ガイド」
この章では、様々な概念と機能について説明します。

- 第25章「データベース・ツールの使用」
この章では、データベースの設計と操作に役立つJDeveloperのツールと機能について紹介します。

- 第26章「データベースへの接続と使用」
この章では、OracleとOracle以外のデータベースへの接続方法について説明します。

- 第27章「Oracle JDeveloperでのデータベースの設計」
この章では、データベース・オブジェクトのモデリングによってJDeveloperでデータベースを設計する方法と、データベースへの生成方法について説明します。

- 第28章「データベースでのJavaの使用」
この章では、OracleデータベースにアクセスするJavaプログラムを作成および実行できる機能について説明します。

- 第29章「PL/SQLおよびJavaストアド・プロシージャの実行とデバッグ」
この章では、データベースでPL/SQLとJavaストアド・プロシージャを操作する方法について説明します。

24 データベースの使用に関するスタート・ガイド

この章では、JDeveloperを使用してデータベースの使用を開始する方法について説明します。データベースを初めて使用する場合は、初級レベルの省スペースのデータベースであるOracle Database XEへの接続に関する項を参照してください。

この章では、次の項目について説明します。

- 第24.1項「データベースの使用について」

- 第24.2項「Oracle Database 10g Express Editionのスタート・ガイド」

- 第24.3項「データベースのプリファレンスおよびプロパティの管理方法」

24.1 データベースの使用について

JDeveloperでは、OracleおよびOracle以外のデータベースを直接使用し、オフライン・データベース定義を使用したデータベースの設計、作成および編集を行うことができます。

JDeveloperでのOracleデータベースの迅速な使用開始については、次のドキュメントを参照してください。

- Oracle Database 10g Express Editionの使用。詳細は、第24.2項「Oracle Database 10gのスタート・ガイド」を参照してください。

- OracleおよびOracle以外のデータベースへの接続の作成。詳細は、第26.4項「データベースへの接続」を参照してください。

- データベース・ナビゲータの使用。詳細は、第25.1項「データベース・ナビゲータの使用」を参照してください。

- JDeveloperによるデータベース開発。詳細は、データベース開発に関する項(http://docs.oracle.com/cd/E18941_01/tutorials/toc.htm)を参照してください。

24.1.1 データベースの接続および使用

通常、データベースの使用はデータベースへの接続の作成から開始します。JDeveloperを使用すると、Oracleデータベースへの接続を迅速に作成できるだけでなく、多くのOracle以外のデータベースに接続して操作することもできます。データベース接続を確立した後は、データベース・ナビゲータでのデータベース・オブジェクトの検索や、検索ツールを使用した特定のオブジェクトの検索、データベースおよびそのコンテンツの比較が可能になります。また、データの編集やデータのインポート/エクスポートを実行したり、データベースとデータベース内のオブジェクトに関するレポートを作成することもできます。

24.1.2 データベースの設計

SQLワークシートやデータベース・オブジェクト・エディタが含まれるJDeveloper内の統合ツールを使用して、データベース接続を介してデータベースを直接使用できます。データベース・オブジェクト・エディタを使用すると、データベース・オブジェクトを編集できます。また、オフライン・データベースを作成することもできます。アプリケーション・ナビゲータまたはデータベース・ダイアグラマで作業を行う場合、オフライン・データベース定義を使用してデータベースをモデル化し、その結果をデータベース接続を介してデータベースに生成できます。

データベース接続はアプリケーション・ナビゲータまたはデータベース・ダイアグラマにリストできます。ここで、これらのデータベース接続は、使用しているアプリケーションに対して使用可能になります。また、リソース・パレットでは、これらのデータベース接続を他のアプリケーションで再利用できます。

データベース接続を作成すると、次の操作が可能になります。

- 特定のオブジェクトについてデータベースを参照および検索します。

- データベースとそのコンテンツに関するレポートを作成します。

- データをインポートおよびエクスポートします。

- データベースをコピー、比較およびエクスポートします。

オフライン・データベースを使用できます。これらのデータベースは、データベース・ダイアグラマでモデル化したり、アプリケーション・ナビゲータで使用できます。

データベース内またはオフライン・データベース内でオブジェクトを作成、編集および削除できます。

OracleおよびOracle以外のデータベースにアクセスするJavaプログラムを、JDBCを使用して作成および実行できます。

JDeveloperでデータベースを初めて使用する場合、最も簡単な使用開始方法の1つは、Oracle Database 10g Express Edition (Oracle Database XE)を使用してみることです。

24.2 Oracle Database 10g Express Editionのスタート・ガイド

JDeveloperでデータベースを初めて使用する場合、最も簡単な使用開始方法の1つは、Oracle Database 10g Express Edition (Oracle Database XE)を使用してみることです。Oracle Database XEは、Oracle Database 10gリリース2コード・ベースに基づく初級レベルの省スペースのデータベースです。これは、自由な開発、デプロイおよび配布、迅速なダウンロード、そして簡単な管理が可能です。これは、スタート・ガイド: Oracle Database 10g Express Edition (XE)(http://www.oracle.com/technetwork/database/express-edition/overview/index.html)からダウンロードできます。

Oracle Database XEをダウンロードしてインストールした後、スタート・ガイドの指示に従い、サンプル・ユーザーHRをロック解除します。たとえば、表やマテリアライズド・ビューを作成するために追加権限を付与することもできます。これで、JDeveloperからサンプル・ユーザーへのデータベース接続を作成できるようになります。

「データベース接続の作成」ダイアログで、次の値を使用します。ここで言及されていないフィールドは空白のままにしてください。

表24-1 Oracle Database 10g Express Editionの接続の詳細

フィールド

値

接続の作成場所

「アプリケーション・リソース」を選択します。接続は、アプリケーション・ナビゲータで「アプリケーション・リソース」の下に表示されます。

接続名

この接続用にわかりやすい名前を入力します。

接続タイプ

Oracle (JDBC) (デフォルト)。

ユーザー名

HR: サンプル・ユーザーを使用します。新規データベース・ユーザーを作成した場合、このユーザーの名前を入力します。

パスワード

サンプル・ユーザーをロック解除したときか新規ユーザーを作成したときに入力したパスワードを入力します。

パスワードの保存

選択済(デフォルト)。

ドライバ

thin (デフォルト)

ホスト名

Oracle Database XEがローカル・システムにインストールされている場合、デフォルトのlocalhostまたは127.0.0.1を使用します。それ以外の場合は、データベースがインストールされているマシンのIPアドレスまたは解決可能なホスト名を入力します。

JDBCポート

1521 (デフォルト)

SID

XE (デフォルト)

ダイアログの下部にある「接続のテスト」をクリックします。「成功」は、データベースへの接続が確立されたことを示します。他のメッセージが表示された場合は、前述の値が正しく入力されているかどうかを確認し、Oracle Database XEが起動したかどうかを確認してください。

24.3 データベースのプリファレンスおよびプロパティの管理方法

JDeveloperでデータベース機能を使用する方法を制御できるプリファレンスは多数用意されています。これらは「ツール」メニューにある「プリファレンス」ダイアログから使用できます。

- 「データベース」ページでは、日時のデフォルト値が検証されないよう選択すること、エクスポートDDLファイルのデフォルト・パスを設定すること、およびデータベースの起動スクリプトの場所を入力することが可能です。

- 「データベース: 拡張」ページでは、SQL配列のフェッチ・サイズやNULL値の表示オプションなどのオプションを設定します。

- 「データベース: 自動トレース/実行計画」ページでは、SQLワークシートの「自動トレース」および「実行計画」ペインに表示する情報を指定します。

- 「データベース: ドラッグ・アンド・ドロップ」ページでは、オブジェクトをデータベース・ナビゲータからSQLワークシートにドラッグするときにSQLワークシートに作成されるSQL文のタイプを指定します。

- 「データベース: JDBCドライバ・オプション」ページでは、BI JDBCドライバ用としてJDBCドライバ、およびDB2、Informix、SQL ServerおよびSybase用としてWebLogic JDBCドライバを登録および管理します。

- 「データベース: NLS」ページでは、言語、地域、ソート・プリファレンス、日付書式などのグローバリゼーション・サポート・パラメータを指定します。

- 「データベース: 目標オプション」ページでは、オブジェクト・ビューア・ウィンドウの固定の有無、および出力の表示オプションを指定します。

- 「データベース: PL/SQLコンパイラ」ページでは、PL/SQLサブプログラムのコンパイルのためのオプションを指定します。

- 「データベース: レポート」ページでは、データベースが接続されていないときにJDeveloperでデータベース・レポートを閉じるかどうかを選択できます。

- 「データベース: SQL*Plus」では、SQL*Plusコマンドライン・ツールへのパスを設定します。

- 「データベース: SQLエディタ・コード・テンプレート」ページでは、SQLおよびPL/SQLコードを編集するためのテンプレートを表示、追加、削除できます。コード・テンプレートは、一般的によく使用される文のテキストを挿入することで、より迅速かつ効率的にコードを記述するのに役立ちます。

- 「データベース: SQLフォーマッタ」ページでは、SQLワークシートで文の書式を整える際の方法を制御できます。

- 「データベース: ユーザー定義の拡張」ページ。(JDeveloperでは使用されません。)

- 「データベース: ワークシート」ページでは、SQLワークシートのためのオプションを指定します。

- 「ダイアグラム: データベース」(「ダイアグラム」ノードの下)。ダイアグラムの表示方法を制御するプリファレンスを設定するために使用します。

「プリファレンス」ダイアログでデータベース・プリファレンスを管理するには、次のようにします。

1. 「ツール」→「設定」を選択します。

2. 「プリファレンス」ページで、目的のページを選択します。作業中に詳細を参照するには、[F1]を押すか、ダイアログ内から「ヘルプ」をクリックします。

「プロジェクト・プロパティ」ダイアログでプロパティを管理するには、次のようにします。

1. 「アプリケーション」→「プロジェクト・プロパティ」(現在のプロジェクトのみのプロパティを変更または指定する)または「デフォルト・プロジェクト・プロパティ」(デフォルト・プロパティを設定する)を選択します。

2. ダイアログで、目的のページを選択します。作業中に詳細を参照するには、[F1]を押すか、ダイアログ内から「ヘルプ」をクリックします。

これらのプリファレンスおよびプロパティを管理するだけでなく、データベース接続内のスキーマまたはオブジェクトをフィルタして必要なもののみを表示することもできます。

25 データベース・ツールの使用

この章では、JDeveloperでデータベースの操作と管理に使用できる各種ツールの概要を説明します。

この章では、次の項目について説明します。

- 第25.1項「データベース・ナビゲータの使用」

- 第25.2項「構造」ウィンドウの使用

- 第25.3項「データベース・レポート・ナビゲータの使用」

- 第25.4項「「データベース・オブジェクトの検索」ウィンドウの使用」

- 25.5項「SQLワークシートの使用」

- 第25.6項「「SQL履歴」ウィンドウの使用」

- 第25.7項「「スニペット」ウィンドウの使用」

- 第25.8項「データベース・オブジェクト・ビューアの使用」

- 第25.9項「SQL*Plusの使用」

- 第25.10項「「DBMS出力」ウィンドウ」

- 第25.11項「「OWA出力」ウィンドウ」

25.1 データベース・ナビゲータの使用

データベース・ナビゲータでは、オンライン・データベースの詳細な編集環境が提供されます。ナビゲータを使用して、データベース・オブジェクトを作成、更新および削除できます。

データベース・ナビゲータは、次のツールと統合されています。

- SQLワークシート。

- データベース・オブジェクト・ビューア。

さらに、データベース接続からデータベース・ダイアグラムへデータベース・オブジェクトをドラッグして、次の操作を行うこともできます。

- ダイアグラム上でデータベース・オブジェクトをモデル化。

- データベース・オブジェクトをプロジェクトにコピーし、ダイアグラムでオフライン・データベース・オブジェクトをモデル化。

データベース・モデリングの詳細は、第23.5項「データベース・ダイアグラム」を参照してください。

データベース・ナビゲータを最初に開くと、開いているその他のナビゲータとともに、ドッキングされた形で表示されます。デフォルトのドッキング位置は左上隅で、JDeveloperのメインの作業領域に隣接しています。複数のナビゲータが開いている場合、各ナビゲータは名前を示すタブとともに表示されます。

データベース・ナビゲータでノードを右クリックすると、コマンドのポップアップ・メニューが表示されます。使用可能なメニュー・コマンドは、選択しているノードによって異なります。ノードは、デフォルト・エディタで開くか、コンテキスト・メニューを使用して、そのノード・タイプに共通する他のエディタで開くことができます。

表25-1 データベース・ナビゲータのツールバー・アイコン

アイコン

名前

機能

接続の作成

データベース接続の作成ウィザードを開いて、データベースへの接続を作成するための詳細を入力する場合にクリックします。

リフレッシュ

ナビゲータの表示を接続の内容と同期化する場合にクリックします。

フィルタの適用

特定の接続について表示するオブジェクトをフィルタリングする場合にクリックします。このアイコンを有効にするには、ナビゲータで接続内のノードを選択し、接続が確立されるまで待機します。

データベース・ナビゲータのコンテキスト・メニューから、様々なタスクを実行できます。「IDE接続」ノード(グローバルに定義される接続の場合)か、アプリケーション名のノード(ローカルなスコープの接続で、アプリケーション内でのみ使用できる接続の場合)を右クリックし、適切なメニューを選択して次のような操作を実行します。

- 新規ギャラリを開きます。

- 新しいデータベース接続を作成します。

- 接続定義を持つXMLファイルをインポートします。

- 現在の接続をエクスポートします。

データベース接続のノードから、次の操作を実行できます。

- データベースに接続し、接続を切断します。

- 新規ギャラリを開きます。

- データベース接続を削除します。

- データベース・オブジェクトからSQLを生成します。

- データベース・オブジェクトをオフライン・データベース・オブジェクトとしてプロジェクトにコピーします。

- SQL*Plusを実行します。

- 接続に表示されるオブジェクトにフィルタを適用します。

- データベース接続のプロパティを編集します。

- SQLワークシートを開きます。

- DBドキュメントを生成します。

- リモート・デバッグを行います。

- スキーマ統計を収集します。

- XML DBプロトコル・サーバーを構成します。

- Java Platform Debugger Architecture (JPDA)を使用している場合には、デバッガがデバッガにアタッチできるようにデバッガでリスニングして、リモート・デバッグを実行します。

データベース・オブジェクトのタイプ別ノード(「表」、「索引」、「プロシージャ」など)から、またはデータベース・オブジェクトのノード(個々の表や特定のビュー)から使用できる追加のオプションもあります。使用可能なオプションは選択したノードによって異なります。

25.2 「構造」ウィンドウの使用

「構造」ウィンドウのデータベース・ビューには、「データベース・ナビゲータ」で選択したデータベース・オブジェクトの詳細、または「アプリケーション・ナビゲータ」で選択したオフライン・データベース・オブジェクトの詳細が表示されます。

「データベース・ナビゲータ」のデータベース接続で表などのデータベース・オブジェクトを選択する、または「アプリケーション・ナビゲータ」のオフライン・データベースで表などのオフライン・データベース・オブジェクトを選択すると、そのオブジェクトのノードが「構造」ウィンドウに表示されます。ノードを展開すると、データベース・オブジェクトを構成するサブ・オブジェクトの詳細を表示できます。表の場合、列、制約、索引などのサブ・オブジェクトがこれに該当します。

表25-2 「SQLワークシート」ツールバーのアイコン

アイコン

名前

機能

リフレッシュ

「構造」ウィンドウの内容をリフレッシュする場合にクリックします。JDeveloper以外、たとえばSQL*Plusを使用してデータベース・オブジェクトを変更した場合や、「構造」ウィンドウに現在のオブジェクトの状態が反映されることを確認する場合に、この操作が必要になることがあります。

「構造」ウィンドウのデータベース・ビューから、次の操作を実行できます。

- 適切なノードのコンテキスト・メニューから「プロパティ」を選択し、プロパティを表示またはプロパティを編集(オフライン・データベース・オブジェクトの場合のみ)します。オブジェクト・タイプの「編集」ダイアログが開きます。データベース・オブジェクトの場合、これは読取り専用です。

- コンテキスト・メニューから「テンプレートとして使用」を選択し、表などのデータベース・オブジェクトまたはオフライン・データベース・オブジェクトを新規オブジェクト作成時のテンプレートとして使用します。オブジェクト・タイプの「作成」ダイアログが開きます。

- コンテキスト・メニューから「使用方法の検索」を選択して、表などのオフライン・データベース・オブジェクトの使用方法を検索します。

25.3 データベース・レポート・ナビゲータの使用

データベース・レポート・ナビゲータを使用すると、データベースとそのオブジェクトに関するレポートを表示できます。

独自のユーザー定義レポートを作成することもできます。

事前定義済のレポートを開くには、「データ・ディクショナリ・レポート」を展開して、目的のレポートにナビゲートします。レポート名をダブルクリックすると、レポートが実行されます。「レポート結果」ウィンドウ内にレポートが開かれる前に、次のダイアログが表示される場合があります。

- 「接続の選択」ダイアログ(すべてのレポート): このダイアログでは、既存のデータベース接続を選択するか、新規のデータベース接続を作成できます。接続を選択すると、次回のレポートの実行時にも同じ接続が使用されます。

- 「バインド値の入力」ダイアログ(「すべてのオブジェクト」レポート): このダイアログでは、各バインド変数の値を入力できます。バインド変数を使用すると、出力を制限できます。

- 「Diagnostic Packが必要」ダイアログ(ASHレポートおよびAWRレポート):これらのレポートを実行するには、Oracle Diagnostic Packのライセンス取得済コピーがデータベース上で稼働している必要があり、このダイアログではライセンス取得済コピーを所有していることを確認できます。

独自のレポートを作成した場合は、「ユーザー定義レポート」ノードの下にあるフォルダおよびサブフォルダに格納できます。

レポートによっては実行にかなりの時間がかかる場合があります。実行時間は、含まれるオブジェクトの数と複雑性、およびデータベースへのネットワーク接続の速度に影響されます。

「データ・ディクショナリ・レポート」ノードからは、次の操作が可能です。

- レポート名を右クリックして「エクスポート」を選択し、レポートをXMLファイルにエクスポートします。このXMLファイルは後でインポートできます。

- エクスポートしたレポートから共有レポートを作成します。

ユーザー定義レポートとは、JDeveloperユーザーにより作成されたレポートです。

ユーザー定義レポートに関する情報(レポートが格納されているフォルダなど)は、ユーザー固有の情報ディレクトリにUserReports.xmlとして保存されます。

「ユーザー定義レポート」ノードからは、次の操作を実行できます。

- 「ユーザー定義レポート」コンテキスト・メニューから「レポートの追加」を選択して、ユーザー定義レポートを作成します。

- ユーザー定義レポートをフォルダごとに整理し、フォルダとサブフォルダの階層を作成します。「ユーザー定義レポート」コンテキスト・メニューから「フォルダの追加」を選択します。

- 以前にエクスポートしたレポートをインポートします。インポートするレポートを格納するレポート・フォルダを選択し、右クリックして、「インポート」を選択します。

「共有レポート」ノードは、「プリファレンス」ダイアログで共有レポートを初めて定義した後に表示されます。

データベース・レポートの作成と共有については、第26.8項「データベース・レポートの操作」を参照してください。

25.4 「データベース・オブジェクトの検索」ウィンドウの使用

「データベース・オブジェクトの検索」ウィンドウを使用すると、稼働中のデータベース内のデータベース・オブジェクトに対する検索と操作を実行できます。

「データベース・オブジェクトの検索」ウィンドウは、SQLワークシートやデータベース・オブジェクト・ビューアなどのオンライン・データベース機能と完全に統合されています。

「データベース・オブジェクトの検索」ウィンドウの使用中には、次の機能を利用できます。

- 「表示」→ナビゲータ名を使用して、現在閉じているナビゲータを開いたり、現在開いているナビゲータを最前面に移動します。

- 該当するタブを右クリックするか、[Alt]を押しながら[-]を押すと表示されるコンテキスト・メニューを使用して、「データベース・オブジェクトの検索」ウィンドウを移動、サイズ変更、フローティング、最小化、最大化、リストアまたは閉じます。

表25-3 「データベース・オブジェクトの検索」のツールバー

名前

機能

接続

ドロップダウン・リストから、検索する対象のデータベース接続を選択します。あらかじめデータベースに接続されている必要があります。

名前

検索語を入力します。ワイルドカード%を使用すると、一致する多数のオブジェクトが返されます。

タイプ

データベース・オブジェクトのタイプを選択して、検索の対象を制限します。デフォルトは、ALL OBJECTSです。

使用方法

(特定タイプのオブジェクトのみ)オブジェクトの使用方法、たとえば「すべて」を選択します。

参照

クリックすると検索結果が表示されます。検索の結果は、パネル内に表示されます。オブジェクトをダブルクリックすると、そのオブジェクトが適切なエディタで開かれます。

「データベース・オブジェクトの検索」ウィンドウからは、次の操作を実行できます。

- バーをクリックして、パネルを開閉します。

- バーを上下にドラッグして、パネルで使用する領域を変更します。

- パネルのドロップダウン・メニュー(パネル・バーの右端)を開き、「最小化」を選択して、パネルを非表示にします。パネルを再び表示するには、アプリケーション・ナビゲータの最下部にある3点をクリックし、「最近開いたファイル」をクリックします。

- リストでオブジェクトを選択し、オブジェクト、または指定したオブジェクトの親オブジェクトをデフォルト・エディタで開くか、デフォルト・エディタにフォーカスを移動します。

25.5 SQLワークシートの使用

SQL文、PL/SQL文、およびSQL*Plus文を入力および実行する場合に使用します。表の作成、データの挿入、トリガーの作成と編集、表からのデータの選択、表から選択したデータのファイルへの保存など、ワークシートに関連付けられたデータベース接続によって処理可能なすべてのアクションを指定できます。

「SQL文」領域にSQL文を入力し、ツールバーのボタンを使用してアクションを実行します。

表25-4で、SQLワークシートのSQL文領域の上にあるツールバーのアイコンとフィールドについて説明します。

表25-4 「SQLワークシート」ツールバーのアイコン

アイコン

名前

機能

文の実行([Ctrl]+[Enter])

SQL文の領域でマウス・ポインタが置かれている文を実行する場合にクリックします。SQL文には、VARCHAR2型のバインド変数および置換変数を含めることができます。必要に応じて、VARCHAR2はNUMBERに自動変換されます。変数値を使用する場合は、値を入力するためのウィンドウが表示されます。

スクリプトの実行([F5])

SQL文の領域にあるすべての文を実行する場合にクリックします。SQL文には、VARCHAR2型のバインド変数および置換変数を含めることができます。必要に応じて、VARCHAR2はNUMBERに自動変換されます。変数値を使用する場合は、値を入力するためのウィンドウが表示されます。

自動トレース([F6])

文のトレース情報を生成する場合にクリックします。トレース情報を表示するには、「自動トレース」タブをクリックします。

実行計画([F10])

文の実行計画を生成する場合にクリックします。内部的にEXPLAIN PLAN文が生成されます。トレース情報は「実行計画の結果」ウィンドウに表示されます。

コミット([F11])

変更をデータベースに書き込む際にクリックします。これをクリックするとトランザクションが終了し、「結果」タブおよび「スクリプト出力」タブの出力がクリアされます。

ロールバック([F12])

変更をデータベースに書き込まずに破棄する場合にクリックします。これをクリックするとトランザクションが終了し、「結果」タブおよび「スクリプト出力」タブの出力がクリアされます。

非共有SQLワークシート([Ctrl]+[Shift]+[N])

別の接続で新しい非共有SQLワークシートを開く場合にクリックします。

大文字/小文字/INITCAP([Ctrl]+引用符)

選択したテキストの大文字、小文字、語頭大文字を切り替えます。

クリア([Ctrl]+[D])

「Enter SQL Statement」領域にある1つまたは複数の文を削除する場合にクリックします。

取消

(スクリプトの実行中にのみ表示されます)スクリプトの実行を停止する場合にクリックします。

(文またはスクリプトの実行後にのみ表示されます)文またはスクリプトの実行に要した時間を表示します。これを実行計画で使用すると、役に立つチューニング情報が得られます。

他のデータベース接続を選択する場合に使用します。

「結果」領域には、次のタブがあります。

- 「結果」タブ: 「文の実行」をクリックした結果が表示されます。

- 「スクリプトの出力」タブ: 「スクリプトの実行」をクリックした結果を表示します。

- 「自動トレース」タブ: 「自動トレース」をクリックした結果の出力が表示されます。

- 「説明」タブ: 「実行計画」をクリックした結果の出力が表示されます。

SQLワークシートでは、SQLコードのコード・インサイトを使用できます。単語を入力すると、有効なコードのドロップダウン・メニューが表示されます。次に例を示します。

- selectと入力すると、SELECTが表示されます。

- select *と入力すると、BULK、FROM、INTOを含むリストが表示されます。

- HRスキーマに接続している場合にselect * from emと入力すると、employees表とemp_details_viewビューを含むリストが表示されます。

SQLワークシート用にコード・インサイトを設定するには、次のようにします。

1. 「ツール」→「プリファレンス」→「コード・エディタ」→「コード・インサイト」を選択します。

2. 「コード・インサイト」ページで、フォント・サイズとフォント・タイプ、および構文補完インサイトとパラメータ・インサイトのタイミングを調整します。

3. 「OK」をクリックします。変更内容は、次回にエディタを使用するときに有効になります。

SQLワークシートを開くには、次のようにします。

1. 「表示」→「データベース」→「データベース・ナビゲータ」を選択します。

2. 「IDE接続」または「アプリケーション接続」を展開します。

3. ナビゲータで接続を右クリックして「SQLワークシートを開く」を選択します。
または、JDeveloperツールバーで「SQLワークシート」ボタンをクリックします。

詳細は、[F1]を押すか、SQLワークシート内で「ヘルプ」をクリックしてください。

またはメイン・ツールバーで、「接続の選択」ダイアログからデータベース接続をクリックして選択します。

表名とビュー名をドラッグ・アンド・ドロップし、クエリー・ビルダーを使用して列などの要素をグラフィカルに指定すると、SELECT文を作成できます。クエリー・ビルダー内で文を実行すると結果を表示でき、クエリー・ビルダーを閉じると生成されたSELECT文がSQLワークシートに挿入されます。

クエリー・ビルダーを使用するには、次のようにします。

1. SQLワークシートを開きます。

2. 右クリックして「クエリー・ビルダー」を選択します。詳細は、[F1]を押すか、「クエリー・ビルダー」で「ヘルプ」をクリックしてください。

3. 必要なスキーマを選択し、問合せのベースにする表をダイアログのメイン・ペインまでドラッグします。クエリー・ビルダーがデータベースに接続し、表に関する情報をロードするまで数秒間の遅延があります。

4. ダイアログが表示されたら、クエリーに使用する列を選択します。

5. WHERE句を追加するには、「WHERE句を作成」タブをクリックし、句の値を入力します。

6. 「SQLの表示」タブで、問合せを構成するSQLを確認します。

7. 問合せの結果を確認するには、「結果を表示」タブを選択し、「実行結果」をクリックします。

8. 「クエリー・ビルダー」ダイアログで「適用」を押すとダイアログが閉じ、問合せがSQLワークシートに挿入されます。

SQL文を実行するには、次のようにします。

1. ワークシートの上部ペインに、SQL文を入力します。

2. 次のいずれかの操作を行います。

- [Ctrl]キーを押しながら[Enter]キーを押します。

- ツールバーの「文を実行」ボタンをクリックします。

- 右クリックして、コンテキスト・メニューから「SQL文の実行」を選択します。

3. 文によって返されたデータを下部ペインで確認します。

詳細は、『Oracle Database SQLJ開発者ガイド』でSQLワークシートの使用に関する項を参照してください。

25.5.1 実行計画の使用

実行計画は、文を実行するために行われる一連の操作です。SQLワークシートを使用すると、SQL SELECT、UPDATE、INSERT、DELETEの各文に対してOracleオプティマイザで選択された実行計画をインスペクトできます。ビュー定義の問合せ部分について、SQLコードの実行計画を表示することもできます。

実行計画には、行ソース・ツリー(文を構成する操作の階層)が表示されます。各操作について、次の情報が表示されます。

- 文によって参照される表の順序

- 文で言及される各表へのアクセス方法

- 文の結合操作の影響を受ける表の結合方法

- フィルタ、ソートまたは集計などのデータ操作

行ソース・ツリーの他に、計画表には、選択した操作に関連する次の情報が表示されます。

- 最適化。各操作のコストとカーディナリティについて。

- パーティション化。アクセスされたパーティションのセットなど。

- パラレル実行。結合入力の配分方法など。

詳細は、『Oracle Databaseパフォーマンス・チューニング・ガイド』で実行計画の使用に関する項を参照してください。

SQL問合せのチューニングに使用できる情報源として、文またはスクリプトを実行したときSQLワークシートのツールバーに表示される経過時間も利用できます。

SQL文の実行計画を表示するには、次のようにします。

1. 必要な場合には、SQLワークシートを開きます。

2. ワークシートの上部ペインに、SQL文を入力します。

3. 次のいずれか1つを実行します。

- ツールバーの「実行計画」ボタンをクリックします。

- 右クリックしてコンテキスト・メニューを開き、「EXPLAIN PLANの実行」を選択します。

「実行計画」タブに、SQL文の実行計画情報が表示されます。

25.5.2 SQLワークシート履歴から文を再実行する方法

SQLワークシートを使用してセッションで実行した文は、履歴リストに保存されます。履歴から過去のSQL文を取得して再実行したり、実行計画を表示できます。

SQLワークシート履歴から文を再実行するには、次のようにします。

1. 次のいずれかの操作を行います。

- 「履歴の表示」ダイアログ・ボタンをクリックします。

- SQLワークシートを右クリックしてコンテキスト・メニューを開き、「履歴」を選択します。

以前に入力した文のリストを示すダイアログが表示されます。

2. ダイアログから目的の文を選択します。

3. 「OK」をクリックします。

ワークシートの上部ペインに、文が表示されます。

25.6 「SQL履歴」ウィンドウの使用

「SQL履歴」ウィンドウを使用すると、SQLワークシートとのセッションで以前に実行した文を再利用できます。

このウィンドウには以前に実行したSQL文およびスクリプトがリストされます。1つ以上の文を選択して、SQLワークシートに現在ある文と置き換えるか、またはSQLワークシートに現在ある文に追加できます。

「SQL履歴」ウィンドウの使用中には、次の機能を利用できます。

- 「表示」メニューから選択して、現在閉じているナビゲータを開くか、現在開いているナビゲータを前面に表示します。

- 該当するタブを右クリックするか、[Alt]を押しながら[-]を押すと表示されるコンテキスト・メニューを使用して、「データベース・オブジェクトの検索」ウィンドウを移動、サイズ変更、フローティング、最小化、最大化、リストアまたは閉じます。

表25-5 「SQL履歴」のツールバー・アイコン

アイコン

名前

機能

追加

SQLワークシートに現在ある文に、選択した1つ以上の文を追加する場合にクリックします。また、選択した文は、「SQL履歴」ウィンドウからSQLワークシートの任意の場所にドラッグ・アンド・ドロップすることによって追加することもできます。

置換

SQLワークシートに現在ある文を、選択した1つ以上の文に置き換える場合にクリックします。

履歴の消去

SQL履歴から文をすべて削除する場合にクリックします。

フィルタ

「SQL履歴」ウィンドウに表示されているSQL文にフィルタを適用する場合に使用します。テキスト・ボックスに文字列を入力し、「フィルタ」をクリックします。その文字列を含むSQL文のみがリストされます。フィルタを削除する場合は、フィールド内の文字列を削除し、再度「フィルタ」をクリックします。

25.7 「スニペット」ウィンドウの使用

スニペットとは、SQLファンクション、オプティマイザ・ヒント、様々なPL/SQLプログラミング技法などが含まれる部分的なコードです。スニペットは、構文のみの場合や、例が含まれる場合もあります。「Snippet」ウィンドウはSQLワークシートと統合されており、PL/SQLファンクションやプロシージャを作成または編集するときに表示されます。

「スニペット」ウィンドウでは、スニペットがカテゴリ(Aggregate FunctionsやCharacter Functionsなど)にまとめられてドロップダウン・リストに表示されます。新しく作成したSnippetは、既存のカテゴリまたは新しいカテゴリに追加できます。Snippetの簡単な説明を表示するには、ファンクション名の上にマウス・ポインタを置きます。

SQLワークシートやPL/SQLファンクションまたはプロシージャのコードにSnippetを挿入するには、「Snippet」ウィンドウからSnippetをドラッグして、コード内の任意の場所でドロップします。次に、そのSQLファンクションが現行のコンテキストで有効になるように、構文を編集します。

たとえば、SELECTと入力し、「文字関数」グループからCONCAT(char1, char2)をドラッグできます。次に、CONCAT関数の構文を編集し、次の例のように残りを入力します。

SELECT CONCAT(title, ' is a book in the library.') FROM books;

表25-6 「スニペット」ウィンドウのツールバー・アイコン

アイコン

名前

機能

スニペットの追加

「Snippetの保存」ダイアログを開き、新しいSnippetを作成して、そのSnippetを既存のグループまたは新しいグループに保存する場合にクリックします。

ユーザー・スニペットの編集

「スニペットの編集」ダイアログを開いて、ユーザー・スニペットのリストを表示する場合にクリックします。このダイアログでは、Snippetの作成、編集、および削除を行えます。

「スニペット」ウィンドウから、次のことを実行できます。

- リストからカテゴリを選択してスニペットを表示します。

- SQLファイルなどをダブルクリックして、ファイルのカーソル位置にスニペットを追加します。

25.8 データベース・オブジェクト・ビューアの使用

データベース・オブジェクト・ビューアを使用すると、データベース内のオブジェクトの構造およびコンテンツを管理できます。使用できるタブは、表示しているオブジェクトのタイプによって異なります。

任意のセルの値を編集するには、該当するセルをダブルクリックして選択し、「...」をクリックして「値の編集」ダイアログを開きます。

オブジェクトに関する情報は、次のタブに表示されます。

- 列: オブジェクトを構成する列を表示します。

- データ: このオブジェクトのデータを表示します。任意のセルの値を編集するには、該当するセルをダブルクリックして選択し、「...」をクリックして「値の編集」ダイアログを開きます。

- 制約: 制約がある場合、その詳細を表示します。

- 権限付与: 権限の詳細を表示します。

- 統計: 統計情報を表示します。

- トリガー: トリガーに関する情報を表示します。

- 依存性: 参照に関する情報を表示します。

- 詳細: 索引がある場合、その詳細を表示します。

- SQL: このオブジェクトを表すSQLを表示します。

25.8.1 データベース・オブジェクト・ビューアのタブのツールバー

ツールバー上の実際のボタンは、タブによって異なります。

表25-7 データベース・オブジェクト・ビューアのタブのツールバー・アイコン

アイコン

名前

機能

「ビューの固定」とビューの固定解除

現在のビューで表ビューアの固定を切り替えるときに使用します。

編集

「表の編集」ダイアログを開く場合にクリックします。

リフレッシュ

データをリフレッシュする場合にクリックします。

行の挿入

フォーカスがある行の下に新しい空白行を挿入する場合にクリックします。

選択した行の削除

データで選択した行を削除する場合にクリックします。

コミット

データベースに加えた変更をコミットする場合にクリックします。変更内容はデータ・エディタのログ・ウィンドウに記録されます。一意制約違反などのエラーがある場合、コミットは失敗します。

ロールバック

すでに加えたデータベース変更をロールバックする場合にクリックします。データ・エディタのログ・ウィンドウに、ロールバックが成功したかどうかが表示されます。

「ソート」ダイアログを開いてソート列およびソート順を指定する場合にクリックします。

表示するレコードの最大数を入力します(例: DEPARTMENT_ID>20)。

表に対する一般的なアクションを実行する場合にクリックします。

25.9 SQL*Plusの使用

SQL*Plusは対話型のバッチ問合せツールです。任意のOracleサーバーまたはクライアントをインストールすると、一緒にインストールされます。SQL*Plusでは、コマンドライン・ユーザー・インタフェースを使用できます。JDeveloper内からSQL*Plusを起動できます。詳細は、『SQL*Plusユーザーズ・ガイドおよびリファレンス』を参照してください。

SQLワークシートはJDeveloperに完全に統合されているので、ほとんどの場合、SQL*PlusよりSQLワークシートの方が推奨されます。SQLワークシートを使用して、SQL、PL/SQL、および一部のSQL*Plus文を入力し実行できます。

SQL*Plusは、パラメータ置換を使用できます。デフォルトのエスケープ文字は「&」であり、したがってコメントに「&」が入っているとエラーが発生します。さらに、スクリプトを実行するSQL*Plusセッションで使用する文字はSET DEFINEを使用してデフォルトから変更できるため、コメント内でパラメータ置換文字が検索されず、警告が発生します。スクリプトでこのエラーが発生した場合には、SET DEFINE OFFを使用してパラメータ置換文字を無視することも、またコメントから除去することもできます。詳細は、『SQL*Plusユーザーズ・ガイドおよびリファレンス』で、SQL*Plusにおけるスクリプトの実行に関する項を参照してください。

JDeveloperからSQL*Plusを起動するには、マシンにSQL*Plusがインストールされている必要があります。SQL*Plusクライアントのインストールの詳細は、http://www.oracle.com/technetwork/database/features/instant-client/index-100365.htmlでOracle Database Instantクライアントに関する情報を参照してください。

SQL*Plusは、次の場所から起動できます。

- 「ツール」メニュー

- データベース・ナビゲータのデータベース接続

- アプリケーション・ナビゲータのSQLファイル

JDeveloperでSQL*Plus実行可能ファイルをまだ指定していない場合は、SQL*Plusの起動時に指定できます。あるいは、「プリファレンス」ダイアログでSQL*Plusの実行可能ファイルを指定できます。このタスクは1回のみ実行する必要があります。

SQL*Plusの実行可能ファイルを指定するには、次のようにします。

1. 「ツール」→「プリファレンス」を選択し、「データベース接続」を選択します。

2. SQL*Plus実行可能ファイルへのパスを指定します。

3. 「OK」をクリックしてダイアログを閉じます。これで、「ツール」メニューで「SQL*Plus」項目がアクティブになります。

4. データベース・ナビゲータでデータベース接続を選択し、「ツール」→「データベース」→「SQL*Plus」を選択します。ステップ2で指定したパスが正しい場合には、SQL*Plusコマンド・ウィンドウが開きます。

注意:

UNIXの場合は、xtermを使用して、SQL*Plusコマンドを実行する端末ウィンドウを作成します。

接続からSQL*Plusを起動するには、次のようにします。

1. 「表示」→「データベース」→「データベース・ナビゲータ」を選択します。

2. 接続を右クリックし、「SQL*Plus」を選択します。

SQLファイルからSQL*Plusを起動するには、次のようにします。

1. アプリケーション・ナビゲータで、SQLファイルに移動します。

2. SQLファイルを右クリックし、「SQL*Plusで実行」を選択します。

3. サブメニューで、使用する接続を選択します。SQL *Plus実行可能ファイルの場所をまだ指定していない場合には、まずその場所を指定するよう求められます。

25.10 「DBMS出力」ウィンドウ

PL/SQL DBMS_OUTPUTパッケージを使用すると、ストアド・プロシージャ、パッケージおよびトリガーからメッセージを送信できます。このパッケージのPUTおよびPUT_LINEプロシージャを使用すると、別のトリガー、プロシージャまたはパッケージで読取り可能なバッファに、情報を配置できます。別のPL/SQLプロシージャまたは無名ブロックでGET_LINEプロシージャをコールすると、バッファ済の情報を参照できます。「DBMS出力」ウィンドウは、このバッファの出力を表示するために使用されます。

「DBMS出力」の新しいタブの追加: データベース接続を指定するように求めるプロンプトが表示され、その後、その接続の「DBMS出力」ペイン内にタブが表示されてSET SERVEROUTPUT設定がオンになり、出力がそのタブに表示されるようになります。(接続の出力の表示を停止するには、タブを閉じます。)

表25-8 「DBMS出力」ウィンドウのツールバー・アイコン

アイコン

名前

機能

DBMS出力の有効化

SET SERVEROUTPUT設定のONとOFFを切り替える場合にクリックします。サーバー出力をONに設定すると、DBMS_OUTPUTバッファ内に出力があるかどうかがチェックされ、出力がある場合はこのタブに表示されます。

クリア

このタブの内容を消去する場合にクリックします。

ファイルの保存

「保存」ダイアログを開く場合にクリックします。ここで、このタブの結果を保存するファイル名を入力できます。

印刷

「印刷」ダイアログを開く場合にクリックします。ここで、このタブの内容を印刷するプリンタを選択できます。

バッファ・サイズ

DBMS_OUTPUTバッファに格納できるデータの量を制限する場合にクリックします(Oracle Database 10.2よりも古いデータベースを使用する場合)。バッファ・サイズの範囲は、1から1000000(100万)の間です。

ポーリング

スライダを動かして、印刷するデータの有無を確認するためにDBMS_OUTPUTバッファをチェックする間隔を秒単位で設定します。ポーリング率の範囲は、1から15の間です。

DB接続の選択

リストから選択して、別のデータベース接続に変更します。

25.11 「OWA出力」ウィンドウ

OWA (Oracle Web Agent)またはMOD_PLSQLは、PL/SQLパッケージおよびストアド・プロシージャから動的なWebページを作成できるApache (Webサーバー)拡張モジュールです。「OWA出力」ウィンドウでは、SQLワークシートで実行されたMOD_PLSQLのアクションのHTML出力を参照できます。

表25-9 「OWA出力」ウィンドウのツールバー・アイコン

アイコン

名前

機能

OWA出力の有効化

SET SERVEROUTPUT設定のONとOFFを切り替える場合にクリックします。サーバー出力をONに設定すると、DBMS_OUTPUTバッファ内に出力があるかどうかがチェックされ、出力がある場合はこのタブに表示されます。

クリア

このタブの内容を消去する場合にクリックします。

ファイルの保存

「保存」ダイアログを開く場合にクリックします。ここで、このタブの結果を保存するファイル名を入力できます。

印刷

「印刷」ダイアログを開く場合にクリックします。ここで、このタブの内容を印刷するプリンタを選択できます。

DB接続の選択

リストから選択して、別のデータベース接続に変更します。

26 データベースへの接続と使用

この章では、データベース接続の作成と操作の方法について説明します。

この章では、次の項目について説明します。

- 第26.1項「データベースへの接続と使用について」

- 第26.2項「データベース接続の設定」

- 第26.3項「データベースの参照および検索」

- 第26.4項「データベースへの接続」

- 第26.5項「データのインポートとエクスポート」

- 第26.6項「データベースのコピー、比較、エクスポート」

- 第26.7項「OracleおよびOracle以外のデータベースの使用」

- 第26.8項「データベース・レポートの使用」

- 第26.9項「データベース接続のトラブルシューティング」

26.1 データベースへの接続と使用について

Oracleデータベースと、Oracle以外の様々なデータベースに接続して操作できます。

データベース接続は、アプリケーション・ナビゲータまたはデータベース・ナビゲータ(作業中のアプリケーションに対して使用できる)で、あるいはリソース・パレット(他のアプリケーションで再利用できる)で使用できます。

データベース接続を作成すると、次の操作が可能になります。

- データベース・オブジェクトの参照

- 特定のデータベース・オブジェクトの検索

- データのインポートとエクスポート

- データベース・スキーマ間でのデータベース・オブジェクトのコピー

- データベース・スキーマどうしの比較

- 1つ以上のデータベース・タイプの一部または全部のオブジェクトの、DLLファイルファイルへのエクスポート

- 事前定義済のレポートを使用、および新規レポートを作成し、データベースとそのオブジェクトに関する情報を提供

JDeveloperでデータベースを使用するのが初めての場合、Oracle Database Express Edition (Oracle Database XE)の使用をお薦めします。詳細は、第24.2項「Oracle Database 10gのスタート・ガイド」を参照してください。

26.2 データベース接続の設定

「データベース接続の作成」ダイアログを使用して、外部データソースへの接続を定義し管理できます。

- リソース・パレットで接続をカタログに追加すると、共同作業や複数のアプリケーションへの公開が可能です。

- データベース・ナビゲータでは、データベースのオブジェクトを作成、編集および変更します。

- アプリケーション・ナビゲータの「アプリケーション・リソース」では、現在のアプリケーションで接続を使用します。

接続を削除する際、この接続に依存しているプロジェクトがあることを知らせる警告は表示されません。このため、接続の削除には注意が必要です。

26.2.1 接続の有効範囲

JDeveloper 11gでは、データベース接続の作成と管理に2つの方法があります。データベース接続をアプリケーションに対して定義する(アプリケーション・リソース接続)ことも、IDE全体に対して定義する(IDE接続)こともできます。どちらの定義にも同じダイアログを使用しますが、JDeveloperにおけるその有効範囲は異なります。

最初にデータベース接続を作成するときに接続の有効範囲を選択し、その後変更することはできません。詳細は、第3.7.2.2項「接続の有効範囲の定義」を参照してください。

26.2.2 データベース接続の作成時に行われる処理

データベース接続を作成すると、データベース・ナビゲータに接続のノードが作成され、接続の有効範囲に応じてアプリケーション・ナビゲータの「リソース・パレット」パネルか「アプリケーション・リソース」パネルにノードが追加されます。

アプリケーション・ナビゲータとデータベース・ナビゲータでデータベース接続ノードを展開すると、データベース・オブジェクトを表示して操作できます。リソース・パレットでデータベース接続を操作できるのは、アプリケーションに追加してからです。

アプリケーション・リソースとして作成されるデータベース接続

アプリケーション・リソースとして作成されるデータベース接続は、それが作成されたアプリケーションでのみ使用できます。

データベース・ナビゲータでは、アプリケーションと同じ名前のノードの下に接続のノードがあります。

アプリケーション・ナビゲータでは、「アプリケーション・リソース」パネルの「接続」の下に接続のノードがあります。connections.xmlに格納される接続情報は、「ディスクリプタ」ノードの下のADF META-INFの下にあります。これをダブルクリックするとXMLエディタでファイルが開き、ファイル名の上にマウス・カーソルを置くとファイルのパスがわかります。

接続ディスクリプタ定義情報のファイル・システム上の場所はapplication_folder/.adf/META-INF/connections.xmlで、application_folderは選択したアプリケーションのパスです。

IDE接続として作成されるデータベース接続

これらは、グローバルに定義されるデータベース接続です。

IDE接続をアプリケーション・ナビゲータにコピーすると、次のようにしてアプリケーションで使用できます。

- 「リソース・パレット」から接続をドラッグし、「アプリケーション・ナビゲータ」の下の「アプリケーション・リソース」にある「接続」ノードにドロップします。

- 「リソース・パレット」で接続を右クリックし、「アプリケーションに追加」を選択します。

- データベース・ナビゲータで、「IDE接続」ノードからアプリケーションのノードの下にある「アプリケーション接続」ノードに接続をドラッグします。

接続ディスクリプタ定義情報のファイル・システム上の場所はsys-dir/jdeveloper/system11.1.x.x.nn.nn.nn/o.jdeveloper.rescat2.model/connections/connections.xmlです。

26.2.3 接続プロパティのデプロイについて

JDeveloperのデプロイにはconnections.xmlファイルが含まれ、アプリケーションでは.adf\META-INF.フォルダにこのファイルがあります。このファイルには、デプロイと実行時の接続の実行に必要な接続情報が格納されています。

26.2.4 データベース接続の作成方法

接続を定義した後、ダイアログに戻ってその属性を編集できます。

注意:

データベース接続の作成後は、接続タイプを変更できません。

データベース接続を作成する手順は、次のとおりです。

1. 必要な場合は、「表示」→「データベース」→「データベース・ナビゲータ」を選択します。「IDE接続」またはアプリケーションを右クリックして「接続の作成」を選択し、「データベース接続の作成」ダイアログを開きます。
あるいは、メイン・メニューから「ファイル」→「新規」を選択し、「新規ギャラリ」を開きます。「カテゴリ」リストで、「一般」を開き、「接続」を選択します。「項目」リストで「データベース接続」をダブルクリックし、「データベース接続の作成」ダイアログを開きます。

詳細は、[F1]キーを押すか、「データベース接続の作成」ダイアログから「ヘルプ」をクリックします。

2. 適切な接続情報を入力し、「接続のテスト」をクリックします。JDeveloperがデータベースに接続するまで時間がかかることがあります。
テストに成功すると、ステータス・テキスト領域に成功メッセージが表示されます。テストに成功しなければ、エラーが表示されます。この場合、必要に応じて以前に入力した情報を変更してエラーを修正するか、エラーの内容を確認して考えられる他のエラー要因を特定します。

26.2.5 OCI8によるOracle Databaseへの接続

Oracle Databaseに接続するとき推奨されるのはシン・ドライバを使用する方法ですが、OCI8 (Thick接続)を使用して接続することも可能です。

OCI8を使用して接続するには、次のようにします。

- システム・プロパティoracle.jdbc.libraryを使用して、jarの場所を定義します。次に例を示します。

jdev -J-Doracle.jdbc.library=/jdev_install/jdeveloper/ojdbc6.jar

26.2.6 データベース接続の編集方法

データベース接続を編集するには、次のようにします。

1. 「表示」→「データベース」→「データベース・ナビゲータ」を選択します。

2. 「IDE接続」またはアプリケーションを展開し、データベース接続を選択します。

3. 接続を右クリックして「プロパティ」を選択し、「データベース接続の編集」を開きます。詳細は、[F1]キーを押すか、「データベース接続の作成」ダイアログから「ヘルプ」をクリックします。

注意:

どのスキーマが接続に表示されるかをフィルタすることもできます。

26.2.7 データベース接続のエクスポートとインポートの方法

リソース・パレットでは、IDE接続として作成されたデータベース接続のインポートとエクスポートも行うことができます。詳細は、第3.7.6項「カタログおよび接続をインポートおよびエクスポートする方法」を参照してください。

26.2.7.1 データベース接続のエクスポート

接続をエクスポートすると、選択した接続ディスクリプタがXMLファイルにコピーされます。他のユーザーは、このファイルをインポートして簡単に接続を作成できます。

データベース接続をエクスポートするには、次のようにします。

1. 「表示」→「データベース」→「データベース・ナビゲータ」を選択します。

2. 「IDE接続」またはアプリケーションを右クリックして「接続のエクスポート」を選択します。

3. 「接続ディスクリプタのエクスポート」ダイアログで、ファイル名を入力するか、「参照」をクリックして接続ファイルの場所および名前を指定します。詳細を参照するには、[F1]を押すか、「接続ディスクリプタのエクスポート」ダイアログ内で「ヘルプ」をクリックしてください。

4. ファイル名を指定した後、リストから適切な接続を選択します。
選択した接続の接続情報がファイルに保存され、他のユーザーがインポートして使用することが可能になります。

5. 「OK」をクリックします。

IDE接続であるデータベース接続を含めて接続をエクスポートするには、リソース・パレットを使用する方法もあります。

26.2.7.2 データベース接続のインポート

以前にエクスポートした接続ディスクリプタをインポートできます。

データベース接続をインポートするには、次のようにします。

1. 「表示」→「データベース」→「データベース・ナビゲータ」を選択します。

2. 「IDE接続」またはアプリケーションを右クリックして「接続のインポート」を選択します。

3. 「接続ディスクリプタのインポート」ダイアログで、エクスポートした接続ファイルのファイル名を入力するか、「参照」をクリックして、そのファイルを検索します。詳細は、[F1]を押すか、「ヘルプ」をクリックしてください。

4. ファイル名を指定した後、表示されているリストから1つ以上の接続を選択します。

5. 「OK」をクリックします。

データベース接続を含めて接続をインポートするには、リソース・パレットを使用する方法もあります。

26.2.8 データベース接続のオープンとクローズの方法

JDeveloperですでに定義されているデータベース接続に手動で接続する、または手動でデータベース接続を切断できます。

データベース接続を開くには、次のようにします。

1. 「表示」→「データベース」→「データベース・ナビゲータ」を選択します。

2. 「IDE接続」またはアプリケーションを展開し、データベース接続を選択します。

3. ノードを開きます。
あるいは、クローズしている接続を右クリックして「接続」を選択する方法もあります。

データベース接続を閉じるには、次のようにします。

1. 「表示」→「データベース」→「データベース・ナビゲータ」を選択します。

2. 「IDE接続」またはアプリケーションを展開し、データベース接続を選択します。

3. 接続を右クリックし、「切断」を選択します。

26.2.9 データベース接続の削除方法

接続を削除すると、その接続はデータベース・ナビゲータおよびJDeveloperから削除されます。

接続を削除するときに、JDeveloperは、その接続に依存するプロジェクトが存在する可能性があることを警告しません。そして、ワークスペースやプロジェクトだけでなく、すべてのJDeveloperから接続を削除します。接続を削除する場合は、細心の注意を払う必要があります。

データベース接続を削除するには、次のようにします。

1. 「表示」→「データベース」→「データベース・ナビゲータ」を選択します。

2. 「IDE接続」またはアプリケーションを展開し、削除するデータベース接続を選択します。

3. 接続を右クリックし、「削除」を選択します。

4. 確認ダイアログで、「はい」をクリックします。

26.2.10 新規のサード・パーティ製JDBCドライバの登録方法

BI JDBCドライバとしてサード・パーティ製JDBCドライバを使用する、またはDB2、Informix、SQL ServerおよびSybaseにWebLogic JDBCを使用する予定がある場合は、接続を定義するときに使用できるように、JDeveloperにそのドライバを登録する必要があります。

新規のサード・パーティ製JDBCドライバを登録するには、次のようにします。

1. 「ツール」→「設定」を選択します。

2. 「プリファレンス」ダイアログで、「JDBCドライバ・オプション」を選択します。

3. JDeveloperに現在登録されているサード・パーティ製のJDBCドライバのリストが表示されます。リストに新しいエントリを追加するには、「新規」をクリックします。
新規エントリがリストと「ドライバ・クラス」フィールドに表示され、デフォルト・ドライバのクラス名が選択されます。

4. 「ドライバ・クラス」フィールドで新規エントリを変更し、完全修飾クラス名を反映します。
「登録済のJDBCドライバ」リストで、正しいエントリが選択されたままであることを確認してください。

5. ドライバを関連付けるライブラリを選択します。既存のライブラリを参照するか、ライブラリへの完全修飾パスを入力できます。ライブラリのクラスパスが「クラスパス」に表示されます。
サード・パーティ製ドライバを使用するプロジェクトには、必ずこのライブラリを含めるようにしてください。

6. 「OK」をクリックします。
このダイアログ(ダイアログに戻った場合)、および「データベース接続の作成」ダイアログの両方で、使用可能なサード・パーティ製のJDBCドライバのリストにドライバが表示されます。

また、「データベース接続の作成」ダイアログを使用中の場合、ダイアログから移動せずにサード・パーティ製のJDBCドライバを登録できます。「接続タイプ」として「汎用JDBC」を選択し、「新規」をクリックして「JDBCドライバの登録」ダイアログを開くと、ドライバのクラス名とライブラリが示されます。

26.2.11 Oracle以外のデータベースのユーザー・ライブラリを作成する方法

Oracle以外のデータベースに接続するには、最初にJDBCドライバを含んだライブラリを作成する必要があります。

ユーザー・ライブラリの作成後に、データベース接続を作成できます。

ユーザー・ライブラリを作成するには、次のようにします。

1. 「ツール」→「ライブラリの管理」を選択します。

2. 「ライブラリの管理」ダイアログの「ライブラリ」タブをクリックし、「ユーザー」ノードを選択して「新規」をクリックします。

3. 「ライブラリの作成」ダイアログで、ライブラリ名を入力し、「クラスパス」ノードを選択して「エントリの追加」をクリックします。「パス・エントリの選択」ダイアログで、接続先データベース用のドライバの場所を参照します。ドライバ・ファイルを選択し、「選択」をクリックします。

4. 同様に、「ライブラリの作成」ダイアログでライブラリ名を入力し、「ソースパス」ノードを選択して「エントリの追加」をクリックします。「パス・エントリの選択」ダイアログで、接続先データベース用のドライバの場所を参照します。ドライバ・ファイルを選択し、「選択」をクリックします。

5. 「ライブラリの作成」ダイアログで「OK」をクリックし、「ライブラリの管理」ダイアログで「OK」をクリックします。

ライブラリには、Oracle以外のデータベースへの接続を作成する際に選択できるJDBCドライバが含まれます。

26.2.12 リファレンス: OracleのType 2 JDBCドライバ(OCI)に対する接続要件

OracleのJDBC/OCIドライバを使用して接続を作成する場合は、次のプラットフォーム固有の要件に注意してください。

- システム固有のライブラリ(Windowsでは.dllファイル、UNIXでは.so/.slファイル)が必要です。
OracleのType 2ドライバ(JDBC/OCI)では、JDBCドライバのバージョンがOracleホームのバージョンと一致している必要があります。たとえばOracle JDBC Driverバージョン11の場合、Oracleホームにバージョン11のocijdbc11.dllと、Oracle Networkソフトウェアおよび必須のサポート・ファイルが含まれている必要があります。

ドライバは、JDBCドライバのダウンロード・ページ(http://www.oracle.com/technetwork/database/features/jdbc/index-091264.html)からダウンロードできます。

使用しているJDBCドライバと異なるバージョンのローカル・データベースに接続する場合は、Oracleクライアント・ソフトウェアを別のOracleホームにインストールし、Oracle Net Listenerを介して接続する必要があります。

- システムに必須の固有ライブラリのクライアント側ファイルが格納されるORACLE_HOMEディレクトリは、PATH環境変数にリストされている必要があります。

- Windowsの場合: PATH環境変数で、クライアント側DLLファイルが存在する%ORACLE_HOME%\binディレクトリをリストします。マシンに複数のOracleホームがインストールされている場合は、Oracleホーム切替えユーティリティを使用して、正しいOracleホームを選択します。

- UNIXの場合: クライアント側.so/.slファイルが格納される\{ORACLE_HOME\}/libディレクトリを、PATH環境変数に追加します。

- OCIドライバ用のOracleホームと、JDeveloperがインストールされているOracleホームが異なる場合は、ORACLE_HOME環境変数を設定する必要があります。

- OCIドライバ用のOracleホームと、JDeveloperがインストールされているOracleホームが異なり、java.library.pathにリストされているもの以外のOCIドライバを持たない場合は、{$ORACLE_HOME}/jdeveloper/jdev/bin/jdev.confで次のような行を編集し、その中のパスをOracleホームへのフルパスに置き換えます。
Windowsの場合: AddNativeCodePath C:/ORACLE/ORAnn/BIN

UNIXの場合: AddNativeCodePath /u01/app/oracle/product/n.n.n/lib

AddNativeCodePathは、JVMが共有ライブラリを検索する際に使用するディレクトリ名をjava.library.pathに追加します。

注意:

AddNativeCodePathはディレクトリをパスに追加するだけなので、すでにPATH環境変数にOCIドライバ・パスが存在する場合は、AddNativeCodePathを使用してPATHを編集するかわりに、ORACLE_HOMEを設定します。

26.3 データベースの参照および検索

表示するデータソースの量と表示方法、データベース・オブジェクトの検索方法を制御できます。

26.3.1 データベースの参照

オンライン・データベースおよびオフライン・データベース・オブジェクトを参照できます。

26.3.1.1 オンライン・データベースの参照

オンライン・データベースを参照するには、データベース・ナビゲータでアクセス可能なJDBC接続をオープンします。

JDBC接続では、PL/SQLオブジェクトおよびブロックと、そのオブジェクトを実装するJavaクラスへのアクセスが許可されます。どのデータベースも参照できますが、全種類のデータベース・オブジェクトにアクセスできるのはOracle Databaseのみです。

データベース接続は、データベース・ナビゲータの「IDE接続」の下、またはアプリケーションのノードの下に表示されます。データベース・スキーマを表示するには、接続を開きます。デフォルトで参照できるのは、その接続で識別されたユーザーのスキーマのみです。ユーザーに必要な権限があれば、他のスキーマも参照できます。スキーマを開くと、そのスキーマに組み込まれているオブジェクト・タイプのノードが表示されます。ノードを開くとその中のオブジェクトが個別に表示されます。最下位ノードまで開いた後に、オブジェクトをダブルクリック(または右クリックして「開く」を選択)すると、そのオブジェクトの内容が表示されます。また、オブジェクトのタイプによっては、オブジェクトの構造も構造ペインに表示されます。

26.3.1.2 オフライン・データベース・オブジェクトの参照

オフライン・データベース・オブジェクトは、アプリケーション・ナビゲータを使用して参照できます。

26.3.1.3 オンラインおよびオフラインのデータベース・オブジェクトを表示する方法

次のようにデータベース・オブジェクトを表示できます。

- リアルタイム接続(オンライン・データベース)を通してデータベース・オブジェクトを表示するには、データベース・ナビゲータを使用します。

- オフライン・データベース・オブジェクトを表示するには、アプリケーション・ナビゲータを使用します。
プロジェクト(アプリケーション・ナビゲータから表示)内のデータベース・オブジェクトに対する変更は、稼働中のデータベースに対して調整されますが、調整が終わるまで、オフライン・データベースの変更がオンライン・データベースに影響を与えることはありません。

ナビゲータを開くには、次のようにします。

1. メイン・ツールバーから「表示」を選択します。

2. 次のようにします。

- アプリケーション・ナビゲータ: 「アプリケーション・ナビゲータ」を選択します。

- データベース・ナビゲータ: 「データベース」→「データベース・ナビゲータ」を選択します。

26.3.2 オンライン・データベース・オブジェクトの参照方法

オンライン・データベースに対するJDBC接続を介して、スキーマと、スキーマに含まれるオブジェクトを参照できます。

稼働中のデータベース接続を参照するには、次のようにします。

1. 「表示」→「データベース」→「データベース・ナビゲータ」を選択します。

2. 接続を展開して使用可能なスキーマを表示します。

3. スキーマを開いて、表示可能なすべてのオブジェクト・タイプを表示します。

4. 必要に応じて、接続、スキーマ、データベース・オブジェクトのタイプ・レベルにフィルタを適用します。

注意:

デフォルトでは、Oracleデータベースのごみ箱にあるオブジェクトが除外されるように、フィルタが表に設定されています。

26.3.3 オフライン・データベースおよびスキーマの参照方法

アプリケーション・ナビゲータでオフライン・データベースおよびスキーマを参照し、オフラインの表やビューなどのオブジェクトを検索します。

オフライン・スキーマとそれに含まれるオブジェクトを表示するには、次のようにします。

1. アプリケーション・ナビゲータで、オフライン・スキーマが含まれているプロジェクトを展開します。

2. 「オフライン・データベース・ソース」を展開し、参照するデータベースとスキーマを展開します。

26.3.4 データベース・フィルタの使用方法

スキーマ、データベース・オブジェクト・タイプおよびタイプ内のデータベース・オブジェクトをフィルタリングして、定義したサブセットを接続ノードの下に表示できます。これは、接続からアクセス可能なスキーマが数千も存在する環境で役立ちます。

注意:

Oracle Databaseへの接続を作成すると、接続で指定したスキーマのオブジェクトが表示されます。他のスキーマの内容を表示するには、「他のユーザー」ノードを展開し、必要なスキーマのノードを展開します。

汎用のJDBCまたはJDBC-ODBC接続を使用して接続する場合、すべてのスキーマが表示されます。

フィルタは、接続内のスキーマ用、スキーマ内のオブジェクト・タイプ(表、ビューなど)の任意のセット用、またオブジェクト・タイプ・ノード内の任意のオブジェクト・セット(たとえば、DBで始まる表のみを表示)用に定義できます。

図26-1 データベース・ナビゲータでフィルタされたオブジェクト

フィルタを使用するには、次のようにします。

1. 「表示」→「データベース」→「データベース・ナビゲータ」を選択します。

2. 「IDE接続」またはアプリケーションを展開し、データベース接続を選択します。

3. まだロードされていない場合には、接続を展開します。接続がロード(JDeveloperセッションの接続ごとに1回)されるまで、フィルタリングを行うことはできません。接続、接続内のスキーマ、またはスキーマ内のノードを選択します。

4. 選択内容に現在フィルタが適用されている場合には、選択したオブジェクトのノードにフィルタ・アイコンが表示され、ノード名の隣に「(フィルタ対象)」と表示されます。図26-1「データベース・ナビゲータでフィルタされたオブジェクト」を参照してください。
オブジェクトを選択したままデータベース・ナビゲータのツールバーで「フィルタの適用」ボタンをクリックするとダイアログが表示され、現在の選択内容があれば表示されます。このダイアログで、現在適用されているフィルタを変更できます。

26.3.5 データベース・フィルタの有効化と無効化の方法

JDeveloperはフィルタを備えているので、スキーマ、表、ビュー、またはその他のオブジェクトのセットを定義して表示できます。

オンライン・データベース・オブジェクトのフィルタを作成するには、次のようにします。

1. 「表示」→「データベース」→「データベース・ナビゲータ」を選択します。

2. 「IDE接続」またはアプリケーションを展開します。

3. 接続、接続内のスキーマ、またはスキーマ内のノードを選択し、次のいずれかの処理を実行します。

- 選択する項目を右クリックし、「フィルタの適用」を選択します。

- データベース・ナビゲータのツールバーで、「フィルタの適用」ボタンをクリックします。

4. 選択したオブジェクトに該当するフィルタ・ダイアログが表示されます。接続とスキーマに関して、選択ボックスが表示されます。その他のオブジェクトに関して、選択したノード内でJDeveloperが一致させるオブジェクト名をテキスト(大文字と小文字を区別)で入力します。ワイルド・カード文字「%」を使用できます。

5. 「OK」をクリックします。これで、オブジェクトのリストがフィルタリングされ、選択した基準に一致する名前のみが表示されます。

26.3.6 データベース・オブジェクト・ビューアでデータベース表を開く方法

稼働中にデータベース接続にある表を、データベース・オブジェクト・ビューアで開くことができます。

データベース・オブジェクト・ビューアの下部には多数のタブがあり、そのタブを使用して、表の構造や表に含まれているデータを調査および変更できます。

オブジェクト・ビューアで表の構造を表示し編集するには、次のようにします。

1. データベース・オブジェクト・ビューアで表を開くには、データベース・ナビゲータで表を選択してダブルクリックします。あるいは、表を右クリックして「開く」を選択する方法もあります。

2. 確認したい情報が含まれているタブ、たとえば「列」を選択します。詳細を参照するには、[F1]を押すか、データベース・オブジェクト・ビューアで「ヘルプ」をクリックしてください。

表の構造を表示および編集するには、「表の編集」ダイアログを使用する方法もあります。

表のデータを編集できます。

26.3.7 表データの編集方法

開発中のアプリケーションの機能をテストするなどの目的で、データベース表のデータを変更できます。1つのセルの値を変更したり、行を追加および削除できます。変更後は、変更をデータベースにコミットするか、変更をロールバックしてデータベース表を元のままにしておくかを選択できます。

表のデータを編集するには、次のようにします。

1. データベース・ナビゲータをダブルクリックして、データベース・オブジェクト・ビューアで表を開きます。

2. 「データ」タブをクリックし、表の内容を表示します。

3. 変更するセルにカーソルを移動し、新しい値を入力します。

- 新しいレコードを追加するには、「行の挿入」ボタンをクリックします。

- 1つ以上のレコードを削除するには、それを選択して「選択した行の削除」ボタンをクリックします。

4. 完了したら、次のいずれかを実行します。

- データベースに変更をコミットするには、「変更をコミット」ボタンをクリックします。

- 変更をロールバックするには、「変更のロールバック」ボタンをクリックします。

26.3.8 データベースでのオブジェクトの検索方法

JDeveloperに接続されているOracle Databaseで、データベース・オブジェクトを検索するには、「データベース・オブジェクトの検索」ウィンドウを使用します。

あらかじめデータベースに接続されている必要があります。

データベース・オブジェクトを検索するには、次のようにします。

1. メイン・メニューから「表示」→「データベース」→「DBオブジェクトの検索」を選択して、「データベース・オブジェクトの検索」ウィンドウを開きます。
詳細は、[F1]を押すか、ナビゲータ内で「ヘルプ」をクリックしてください。

2. 「接続」リストから接続名を選択します。

3. 「名前」フィールドに検索語を入力します。ワイルドカード%を使用すると、一致する多数のオブジェクトが返されます。たとえばEM%と入力すると、名前がEMで始まるすべてのオブジェクトが返されます。

4. 必要な場合は、「詳細」をクリックして追加の検索条件を入力します。

5. 「参照」をクリックします。「検索」ウィンドウに結果が返されます。任意のオブジェクト(または指定したオブジェクトの親オブジェクト)を表示または編集するには、結果表示でそのオブジェクトの名前をダブルクリックまたは右クリックします。

26.4 データベースへの接続

この項では、OracleおよびOracle以外のデータベースに接続する方法を説明します。

26.4.1 データベースへの接続の作成時に行われる処理

「データベース接続の作成」ダイアログを使用してデータベース接続を作成すると、新しい接続が作成され、その接続を表すノードが次の場所に表示されます。

- データベース・ナビゲータ

- アプリケーション・ナビゲータ

- リソース・パレット

26.4.2 Oracle Databaseへの接続の作成方法

Oracle Databaseに接続して操作できます。サポートされる具体的なバージョンの詳細は、JDeveloperの認定情報(http://www.oracle.com/technetwork/developer-tools/jdev/documentation/index.html)を参照してください。

26.4.2.1 Oracle Databaseへの接続の作成方法

JDeveloperで接続できるOracle Databaseは、次のとおりです。

- Oracle Database 11gリリース2

- Oracle Database 11gリリース1

- Oracle Database 11gリリース2 XE

- Oracle Database 10g XE

- Oracle Database 10gリリース2

- Oracle Database 10gリリース1

- Oracle Database 9iリリース2

次のデータベースにも接続が可能です(ただし接続に「Oracle (JDBC)」は使用しません)。

- MySQL 4.1または5.0

- Oracle TimesTen In-Memory Database

- Oracle Database Lite 10gリリース1とリリース3

Oracle Databaseへのデータベース接続を作成するには、次のようにします。

1. 接続タイプとして「Oracle (JDBC)」を使用します。

2. データベース接続について、ユーザー名、ロールおよびパスワードの適切な値を入力します。

3. デフォルトでは「パスワードの保存」フィールドが選択されているため、2度目以降はパスワードの入力を求められません。

4. シン・ドライバを選択します。

5. データベースがローカル・マシン上にある場合は、デフォルトのlocalhostを使用します。それ以外の場合は、TCP/IPで解決可能なIPアドレスまたはホスト名(myserverなど)を入力します。

6. データベースのSIDまたはサービス名を入力します。

7. 「接続のテスト」をクリックして接続をテストします。JDeveloperがデータベースに接続するまで時間がかかることがあります。

テストに成功すると、ステータス・テキスト領域に成功メッセージが表示されます。テストに成功しなければ、エラーが表示されます。この場合、必要に応じて以前に入力した情報を変更してエラーを修正するか、エラーの内容を確認して考えられる他のエラー要因を特定します。

26.4.2.2 MySQLへの接続の作成方法

JDeveloperでは、MySQL 4.1または5.0への接続と、MySQL 4.1または5.0のエミュレーションによるオフライン・データベースの操作が可能です。MySQLの詳細は、http://www.oracle.com/us/products/mysql/index.htmを参照してください。

「表の作成」または「表の編集」ダイアログは汎用なので、MySQLを扱うときには使用できない機能もあります。次の操作を実行できます。

- 表の作成:

- データ型、NOT NULL制約、デフォルト値、および列の内容を指定する列の追加

- 主キーと外部キー制約の追加

- 表の変更:

- 列の追加

- 列の削除

- 索引の追加

- 索引の削除

- 制約(主キー、一意キー、外部キー)の追加

- 制約(主キー、一意キー、外部キー)の削除

- 表名の変更

- 表の削除

MySQLへのデータベース接続を作成するには、次のようにします。

1. http://mysql.com/downloadsから、MySQL Connector/J 3.1をダウンロードしてインストールします。

2. 次のmysql-connector-java-3.1.8-bin.jarが含まれるようにユーザー・ライブラリを設定します。

3. MySQLへのデータベース接続を作成します。次の値を使用します。

- 接続タイプ: MySQL

- 「ユーザー名」と「パスワード」: 接続に使用する適切な値を入力します。

- ドライバ・クラス: com.mysql.jdbc.Driver

- ライブラリ: ドライバのために作成したライブラリ。

- JDBC URL: jdbc:mysql://machine-name/database-name

26.4.2.3 Oracle TimesTen In-Memory Databaseへの接続の作成方法

Oracle TimesTen In-Memory Databaseは、メモリーが最適化されたリレーショナル・データベースです。各種の業界で必要とされている高速な応答性と高いスループットをアプリケーションに提供します。アプリケーション層でデプロイされるTimesTenデータベースは、完全に物理メモリー内に常駐するため、リカバリ性能に必要なディスク・ストレージへの永続性を備えています。

JDeveloperでは、Oracle TimesTen In-Memory Database 6.0、7.0、11gへの接続と、TimesTenデータベースのエミュレーションによるオフライン・データベースの操作が可能です。Oracle TimesTen In-Memory Database 11gの詳細は、http://www.oracle.com/technetwork/database/timesten/overview/index.htmlを参照してください。

「表の作成」または「表の編集」ダイアログは汎用なので、TimesTenデータベースを扱うときには使用できない機能もあります。次の操作を実行できます。

- 表の作成。

- 列の追加

- 主キーと外部キーの追加

- 表の変更。

- 列の追加

- 列の削除

- 主キーと外部キーの追加

- 主キーと外部キーの削除

- Oracle TimesTen In-Memory Database v6.0の場合、現行の制限事項では、主キーなどの制約を表示するには、接続ユーザー名が接続先スキーマ名と同一であることを確認する必要があります。

Oracle TimesTen In-Memory Databaseへのデータベース接続を作成するには、次のようにします。

1. TimesTenデータベースへのデータベース接続を作成します。

2. 次の値を使用します。

- 接続タイプ: 汎用JDBC

- 「ユーザー名」と「パスワード」: 空のまま

- ドライバ・クラス: com.timesten.jdbc.TimesTenDriver

- ライブラリ:

- リリース6.0.1の場合: timesten-install\tt60\lib\classes14.jar

- リリース7.0.5の場合: timesten-install\tt70_32\lib\ttjdbc5.jar

- リリース11.2.1の場合: timesten-install\tt1121_32\lib\ttjdbc5.jar

- JDBC URL:

- リリース6.0.1の場合: jdbc:timesten:client:RunDataCS60

- リリース7.0.5の場合: jdbc:timesten:client:RunDataCS_tt70_32

- リリース11.2.1の場合: jdbc:timesten:client:cachealone1_CS

26.4.2.4 Oracle Database Liteへの接続の作成方法

Oracle Database Liteを使用すると、Oracleデータベースのイメージをリモート・デバイスに配置できます。ユーザーはOracle Database Liteのデータを更新し、任意の間隔で主データベースにコミットできます。Oracle Database Lite 10gの詳細は、http://www.oracle.com/technetwork/database/database-lite/overview/index.htmlを参照してください。

JDeveloperで接続とデータベース・エミュレーションがサポートされているのは、Oracle Database Lite 10gリリース1とリリース3です。詳細は、JDeveloperの認定情報(http://www.oracle.com/technetwork/developer-tools/jdev/documentation/index.html)を参照してください。

このドライバの場合は、Oracle Database Lite 4.0 JAR以上をインストールする必要があります。このドライバを使用するプロジェクトでは、ライブラリにORACLE_HOME/lite/classes/olite.jarが含まれている必要があります。

Oracle Database Liteへのデータベース接続を作成するには、次のようにします。

1. Oracle Database Lite用のJava JDBCドライバをダウンロードします。Oracle Database Lite 4.0 JAR以上をダウンロードしてインストールし、ライブラリを作成してoracle-database-lite/lite/classes/olite.jarを追加します。

2. タイプ2のドライバを使用する場合は、ide.confファイルを編集して1つの新しい値を指定する必要があります。

1. JDeveloperを終了します。

2. テキスト・エディタで、jdev-install/ide/binディレクトリにあるide.confを開きます。

3. 新規エントリを追加します。

AddJavaLibPath oracle-database-lite\olite40.jar

3. Oracle Database Liteへのデータベース接続を作成します。
次の値を使用します。

- 接続タイプ: Oracle Lite

- 「ユーザー名」と「パスワード」: 接続に使用する適切な値を入力します。

- ドライバ: タイプ2

- データソース名: 接続に使用する適切な値を入力します。

26.4.3 Oracle以外のデータベースへの接続の作成方法

Oracle以外のデータベースに接続して操作できます。サポートされる具体的なバージョンの詳細は、JDeveloperの認定情報(http://www.oracle.com/technetwork/developer-tools/jdev/documentation/index.html)を参照してください。

一般に、次の操作が可能です。

- JDeveloperへのデータベース・オブジェクトのインポート。

- オフライン・データベース・オブジェクトの作成。

- オフライン・データベース・オブジェクトの編集。

データベース接続を作成するには、次のようにします。

1. JDBCドライバを含むライブラリを作成します。

2. データベース接続を作成します。

3. 「データベース接続の作成」ダイアログで、データベース用の適切な値を入力します。詳細は、接続先のデータベースに関するヘルプ・トピックを参照してください。

4. 最後に、正しいデータ型を使用するようにプロジェクトを構成する必要があります。

接続タイプ別に下に示される説明には「JDBC URL」が表示されますが、必要な場合には、「データベース接続の作成」ダイアログの各フィールドにサーバー、ポート、データベースの詳細を入力することもできます。

26.4.3.1 Apache Derbyへの接続の作成方法

Apache Derbyは、完全にJavaで実装されたオープン・ソースのリレーショナル・データベースです。JDeveloperでは、Apache Derby 10.5への接続と、Apache Derby 10.5のエミュレーションによるオフライン・データベースの操作が可能です。Apache Derbyの詳細は、http://db.apache.orgを参照してください。

「表の作成」または「表の編集」ダイアログは汎用なので、Apache Derbyを扱うときには使用できない機能もあります。次の操作を実行できます。

- 表の作成:

- 列の追加

- 主キーと外部キー制約の追加

- 表の変更:

- 列の追加

- 列の削除

- 制約の追加

- 制約の削除

注意:

列のデフォルト値はサポートされません。

Apache Derbyに接続するには、Derbyに埋め込まれたJDBCドライバを使用することも、クライアントとして接続を作成することもできます。

埋込みドライバを使用してApache Derbyに接続するには、次のようにします。

1. Apache Derbyデータベースへのデータベース接続を作成します。
次の値を使用します。

- 接続タイプ: 汎用JDBC

- 「ユーザー名」と「パスワード」: 接続に使用する適切な値を入力します。

- ドライバ・クラス: org.apache.derby.jdbc.EmbeddedDriver

- ライブラリ: lib/derbyclient.jar

- JDBC URL: jdbc:derby://machine-name:port/databases/database-name

クライアントとしてApache Derbyに接続するには、次のようにします。

1. Apache Derbyデータベースへのデータベース接続を作成します。
次の値を使用します。

- 接続タイプ: 汎用JDBC

- 「ユーザー名」と「パスワード」: 接続に使用する適切な値を入力します。

- ドライバ・クラス: org.apache.derby.jdbc.ClientDriver

- ライブラリ: lib/derbyclient.jar

- JDBC URL: jdbc:derby://machine-name:port/databases/database-name

26.4.3.2 IBM DB2 Universal Databaseへの接続の作成方法

JDeveloperでは、IBM DB2 Universal Database 9.5または8.1への接続と、IBM DB2 Universal Database 9.5または8.1のエミュレーションによるオフライン・データベースの操作が可能です。IBM DB2 Universal Databaseの詳細は、http://www.ibm.comを参照してください。

「表の作成」または「表の編集」ダイアログは汎用なので、IBM DB2を扱うときには使用できない機能もあり、IBM DB2データベースの操作は次のものに制限されます。

- 表の作成と、データ型、NOT NULL制約およびデフォルト値を指定する列の追加、主キーと外部キーの追加、索引の作成。

- 表の変更、列の追加と削除、索引の追加と削除、制約(主キー、一意キー、チェック・キー、外部キー)の追加と削除。

- 表名の変更。

- 表の削除。

注意:

IBM DB2 Universal Database 9.5のDROP列とALTER COLUMN列の構文は、IBM DB2 Universal Database 9.5でサポートされます。

接続可能なのは、Fix Patch 3以上を適用したDB2 Universal Database 8.1、またはDB2 Universal Database 9.5のみです。DB2接続がある場合、データベース・ナビゲータに列と制約の情報は表示されません。かわりに、列と制約はデータベース・ナビゲータで表を選択したとき「構造」ウィンドウに表示されます。

IBM DB2への接続には、WebLogic JDBCドライバまたはIBMのネイティブ・ドライバを使用できます。

WebLogic JDBCドライバを使用してIBM DB2に接続するには、次のようにします。

1. IBM DB2データベースへのデータベース接続を作成します。
次の値を使用します。

- 接続タイプ: 汎用JDBC

- 「ユーザー名」と「パスワード」: 接続に使用する適切な値を入力します。

- ドライバ・クラス: weblogic.jdbc.db2.DB2Driver

- JDBC URL: jdbc:weblogic:db2://machine-name:port;DatabaseName=database-name

ネイティブ・ドライバを使用してIBM DB2に接続するには、次のようにします。

1. IBM DB2用のType 4 JDBCドライバをダウンロードします。

2. 次のファイルが含まれるようにユーザー・ライブラリを設定します。

- DB2 UDB 8.1

- db2jcc.jar

- db2jcc_javax.jar

- db2jcc_license_cu.jar

- DB2 UDB 9.5

- db2jcc.jar

- db2jcc4.jar

3. IBM DB2へのデータベース接続を作成します。
次の値を使用します。

- 接続タイプ: DB2 UDB

- 「ユーザー名」と「パスワード」: データベース接続に使用する適切な値を入力します。

- ドライバ・クラス: com.ibm.db2.jcc.DB2Driver

- ライブラリ: ドライバのために作成したライブラリ。

- JDBC URL: jdbc:db2://machine-name:50000/database-name

26.4.3.3 IBM Informix Dynamic Serverへの接続の作成方法

JDeveloperでは、IBM Informix DS 10または11.5への接続と、IBM Informix DS 10または11.5のエミュレーションによるオフライン・データベースの操作が可能です。IBM Informix DSの詳細は、www.IBM.comを参照してください。

「表の作成」または「表の編集」ダイアログは汎用なので、IBM Informix DSを扱うときには使用できない機能もあります。次の操作を実行できます。

- 表の作成と、列の追加。

- 主キーと外部キー制約の追加。

- 表の変更、列の追加、列の削除。

IBM Informix DSへの接続には、WebLogic JDBCドライバまたはIBMのネイティブ・ドライバを使用できます。

WebLogic JDBCドライバを使用してIBM Informix DSに接続するには、次のようにします。

1. IBM Informix DSデータベースへのデータベース接続を作成します。
次の値を使用します。

- 接続タイプ: 汎用JDBC

- 「ユーザー名」と「パスワード」: 接続に使用する適切な値を入力します。

- ドライバ・クラス: weblogic.jdbc.informix.InformixDriver

- JDBC URL: jdbc:weblogic:informix://machine-name:port;informixServer=server-name;databaseName=database-name

ネイティブ・ドライバを使用してIBM Informix DSに接続するには、次のようにします。

1. www.IBM.comから、適切なInformix JDBCドライバをダウンロードしてインストールします。

- IBM Informix DS 10の場合は、v2.21.JC5以上を選択します。

- IBM Informix DS 11.5の場合は、v3.00.JC3以上を選択します。

2. install-directory\lib\ifxjdbc.jarが含まれるようにユーザー・ライブラリを設定します。

3. IBM Informix DSへのデータベース接続を作成します。
次の値を使用します。

- 接続タイプ: 汎用JDBC

- 「ユーザー名」と「パスワード」: 接続に使用する適切な値を入力します。

- ドライバ・クラス: com.informix.jdbc.IfxDriver

- ライブラリ: ドライバのために作成したライブラリ。

- JDBC URL: jdbc:informix-sqli://machine-name:port/database-name:INFORMIXSERVER=machine-name

26.4.3.4 Microsoft SQL Serverへの接続の作成方法

JDeveloperでは、Microsoft SQL Server 2005または2008への接続と、Microsoft SQL Server 2005または2008のエミュレーションによるオフライン・データベースの操作が可能です。Microsoft SQL Serverの詳細は、http://www.microsoft.comを参照してください。

「表の作成」または「表の編集」ダイアログは汎用なので、Microsoft SQL Serverを扱うときには使用できない機能もあります。次の操作を実行できます。

- 表の作成:

- データ型、NOT NULL制約、デフォルト値、および列の内容を指定する列の追加

- 主キーと外部キー制約の追加

- 索引の作成

- 表の変更:

- 列の追加

- 列の削除

- 索引の追加

- 索引の削除

- 制約(主キー、一意キー、外部キー)の追加

- 制約(主キー、一意キー、外部キー)の削除

- 表の削除

Microsoft SQL Serverへの接続には、WebLogic JDBCドライバまたはMicrosoftのネイティブ・ドライバを使用できます。

WebLogic JDBCドライバを使用してMicrosoft SQL Serverに接続するには、次のようにします。

1. Microsoft SQL Serverデータベースへのデータベース接続を作成します。
次の値を使用します。

- 接続タイプ: 汎用JDBC

- 「ユーザー名」と「パスワード」: 接続に使用する適切な値を入力します。

- ドライバ・クラス: weblogic.jdbc.sqlserver.SQLServerDriver

- JDBC URL: jdbc:weblogic:sqlserver://machine-name\MSSQLSERVER:port;databaseName=database-name

Microsoft SQL Serverに接続するには、次のようにします。

1. www.microsoft.comから、適切なMicrosoft SQL Serverドライバをダウンロードしてインストールします。

- Microsoft SQL Server 2005の場合は、Microsoft SQL Server 2005ドライバを選択します。

- Microsoft SQL Server 2008の場合は、Microsoft SQL Server 2008ドライバを選択します。

2. install-directory\sqljdbc.jarが含まれるようにユーザー・ライブラリを設定します。

3. Microsoft SQL Serverへのデータベース接続を作成します。次の値を使用します。

- 接続タイプ: SQLServer

- 「ユーザー名」と「パスワード」: 接続に使用する適切な値を入力します。

- ドライバ・クラス: com.microsoft.sqlserver.jdbc.SQLServerDriver

- ライブラリ: ドライバのために作成したライブラリ。

- JDBC URL: jdbc:sqlserver://machine-name:port;DatabaseName=database-name。DatabaseName=database-nameの部分はオプション

注意事項

Microsoft SQL Serverへの接続にWindows認証の資格証明を使用する場合は、さらに次の操作が必要です。

- 接続プロパティintegratedSecurity=TRUEと、ユーザー名およびパスワード値をJDBC URLに追加します。たとえば、次のようになります。

jdbc:sqlserver://machine-name:port;DatabaseName=database-name;username=USERNAME;password=PASSWORD;integratedSecurity=TRUE

- sqljdbc_auth.dllの場所をPATH変数に追加します。

- 32ビットJVMの場合: installation-directory\sqljdbc_version\language\auth\x86

- 64ビットJVMの場合: installation-directory\sqljdbc_version\language\auth\x64

詳細は、Microsoft MSDNのWebサイトにある「Connecting to SQL Server with the JDBC Driver」の「Building the Connection URL」を参照してください。

26.4.3.5 SQLiteへの接続の作成方法

SQLiteは、プラットフォームに依存せずホスト・コンピュータに常駐するファイルで表されるリレーショナル・データベース管理システムです。スマートフォン・プラットフォームなどで利用されています。JDeveloperでは、SQLite 3.6データベース・ファイルへの接続と、SQLite 3.6のエミュレーションによるオフライン・データベースの操作が可能です。SQLiteの詳細は、http://www.sqlite.orgを参照してください。

「表の作成」または「表の編集」ダイアログは汎用なので、SQLiteを扱うときには使用できない機能もあります。次の操作を実行できます。

- 表の作成と、列の追加。

- 表の変更と、列の追加。

- プロジェクトへのコピー。この場合、SQLiteデータベースへの接続から、SQLiteをエミュレートするオフライン・データベースへ表とその列および主キーをコピーします。

- 制約、索引、列のプロパティはオフライン・データベースでもモデル化できますが、DDLは表および列に対してしか生成されません。表に対する制約(主キーを含む)の生成や、他のオブジェクト・タイプ(索引、ビュー、トリガーなど)の生成はサポートされていません。つまり、オンラインのSQLiteデータベース上にある表については、「表の作成」および「表の編集」ダイアログには列パネルしか表示されません。

SQLiteへのデータベース接続を作成するには、次のようにします。

- SQLite用のJava JDBCドライバをダウンロードし、そのためのライブラリを作成します。

- SQLiteへのデータベース接続を作成します。

- 次の値を使用します。

- 接続タイプ: 汎用JDBC

- 「ユーザー名」と「パスワード」: 空のまま

- ドライバ・クラス: org.sqlite.JDBC

- ライブラリ: ドライバのために作成したライブラリ。

- JDBC URL: jdbc:sqlite://path/database-name。ここでpathはデータベース・ファイルのパス、database-nameは指定された場所にあるSQLiteデータベースの名前です。指定された場所にデータベースが存在しない場合は、接続の確立時に作成されます。

26.4.3.6 Sybase ASEへの接続の作成方法

JDeveloperでは、Sybase Adaptive Server Enterprise 12.5または15への接続と、Sybase ASE 12.5または15のエミュレーションによるオフライン・データベースの操作が可能です。Sybase Adaptive Server Enterpriseの詳細は、www.sybase.comを参照してください。

「表の作成」または「表の編集」ダイアログは汎用なので、Sybase ASEを扱うときには使用できない機能もあります。次の操作を実行できます。

- 表の作成:

- 列の追加

- 主キーと外部キー制約の追加

列の追加

- 表の変更:

- 列の追加

- 列の削除

- 制約の追加

- 制約の削除

注意:

列のデフォルト値はサポートされません。

Sybase ASEへの接続には、WebLogic JDBCドライバまたはSybaseのネイティブ・ドライバを使用できます。

WebLogic JDBCドライバを使用してSybase ASEに接続するには、次のようにします。

1. Sybase ASEデータベースへのデータベース接続を作成します。
次の値を使用します。

- 接続タイプ: 汎用JDBC

- 「ユーザー名」と「パスワード」: 接続に使用する適切な値を入力します。

- ドライバ・クラス: weblogic.jdbc.sybase.SybaseDriver

- JDBC URL: jdbc:weblogic:sybase://machine-name:port;DatabaseName=databas-name

ネイティブ・ドライバを使用してSybase ASEに接続するには、次のようにします。

1. www.sybase.comから、適切なSybase JDBCドライバをダウンロードしてインストールします。

- Sybase ASE 12.5の場合は、jConnectバージョン5.5以上を選択します。

- Sybase ASE 15の場合は、jConnectバージョン6.0.5以上を選択します。

2. 次のjarが含まれるようにユーザー・ライブラリを設定します。

install-directory\jConnect-5_5\classes\jconn2.jar install_directory\\jConnect-5_5\classes\jTDS2.jar

3. Sybase ASEへのデータベース接続を作成します。
次の値を使用します。

- 接続タイプ: 汎用JDBC

- 「ユーザー名」と「パスワード」: 接続に使用する適切な値を入力します。

- ドライバ・クラス:

- Sybase ASE 12.5の場合は、com.sybase.jdbc2.jdbc.SybDriverを使用します。

- Sybase ASE 15の場合は、com.sybase.jdbc3.jdbc.SybDriverを使用します。

- ライブラリ: ドライバのために作成したライブラリ。

- JDBC URL: jdbc:sybase:Tds:machine:port/database-name

26.5 データのインポートとエクスポート

データベース接続を介して、データベースの表にデータをインポートできます。

注意:

オフライン表はデータベース表の表現形にすぎないので、オフライン表に日付をインポートすることはできません。

次の対象からインポートできます。

- csv。列IDのヘッダー行を含めて、カンマ区切りの値を含むファイル。

- xls。Microsoft Excel形式のファイル(既存および新規の表へのインポートのみ)。

次の対象にデータをインポートできます。

- データベースの既存の表。

- インポート・プロセスの一部として作成される新規の表。

- SQL*Loader制御ファイルの使用。

- 外部表。

26.5.1 SQL*Loaderを使用したデータのインポート

データのインポート・ウィザードで「SQL*Loader」オプションを選択すると、データを含むインポート・ファイルと同じ場所にtable.ctlファイル(データを含むファイルとインポート先の表に関する情報が格納される)と、インポートを実行するためのtable.batおよびtable.shが作成されます。

26.5.2 外部表へのデータのインポート

外部表にデータをインポートできます。外部はフラット・ファイルですが、Oracle表と同じようにデータを問い合せることができます。

「外部表」オプションを選択すると、SQLが作成されてSQLワークシートに表示され、そこでSQLを調査してスクリプトの実行前に必要な変更を行うことができます。

26.5.3 既存の表にデータをインポートする方法

データベース接続を介して、データベースの表にデータをインポートできます。

次のファイル形式のインポートをサポートしています。

- csv。列IDのヘッダー行を含めて、カンマ区切りの値を含むファイル。

- xls。Microsoft Excel形式のファイル。

既存のデータベース表にデータをインポートするには、次のようにします。

1. メイン・メニューから「表示」→「データベース」→「データベース・ナビゲータ」を選択して、データベース・ナビゲータを開きます。

2. 必要な場合には、データベースへの接続を作成します。

3. データベース接続、スキーマ、表のノードを展開し、データをインポートする表を選択します。

4. 右クリックして「データのインポート」を選択し、「開く」ダイアログでファイルの場所を入力するか参照します。
「OK」をクリックするとデータのインポート・ウィザードが起動します。

詳細は、[F1]を押すか、ウィザード内で「ヘルプ」をクリックしてください。

5. データのインポート・ウィザードの「列の定義」ページで、新しい表の名前を入力します。

26.5.4 新規の表にデータをインポートする方法

インポート・プロセスの一部として作成するデータベース表にデータをインポートできます。

新規のデータベース表にデータをインポートするには、次のようにします。

1. メイン・メニューから「表示」→「データベース」→「データベース・ナビゲータ」を選択して、データベース・ナビゲータを開きます。

2. 必要な場合には、データベースへの接続を作成します。

3. データベース接続、スキーマ、表のノードを展開し、データをインポートする表を選択します。

4. 右クリックして「データのインポート」を選択し、「開く」ダイアログでファイルの場所を入力するか参照します。「OK」をクリックするとデータのインポート・ウィザードが起動します。
詳細は、[F1]を押すか、ウィザード内で「ヘルプ」をクリックしてください。

5. データのインポート・ウィザードの「列の定義」ページで、新しい表の名前を入力します。

26.5.5 SQL*Loaderを使用してデータをインポートする方法

SQL*Loader制御ファイルを作成し、それを使用してデータをインポートできます。

SQL*Loader制御ファイルにデータをインポートするには、次のようにします。

1. メイン・メニューから「表示」→「データベース」→「データベース・ナビゲータ」を選択して、データベース・ナビゲータを開きます。

2. 必要な場合には、データベースへの接続を作成します。

3. データベース接続、スキーマ、表のノードを展開し、データをインポートする表を選択します。

4. 右クリックして「データのインポート」を選択し、「開く」ダイアログでファイルの場所を入力するか参照します。
「OK」をクリックするとデータのインポート・ウィザードが起動します。

詳細は、[F1]を押すか、ウィザード内で「ヘルプ」をクリックしてください。

5. データのインポート・ウィザードの「データ・プレビュー」ページで、「SQL*Loader表」を選択します。

6. データのインポート・ウィザードの「オプション」ページで、生成されるファイルのオプションを選択します。

7. データのインポート・ウィザードを完了すると、table.ctlという名前のSQL*Loader制御ファイルが、実行に使用するtable.batファイルおよびtable.shファイルとともに、データファイルと同じ場所に作成されます。データのインポート・ウィザードの「終了」ページで「ワークシートに送る」を選択した場合、表を定義するSQLがSQLワークシートに表示されます。

26.5.6 外部表を使用してデータをインポートする方法

データベース接続を介して、データベースの表にデータをインポートできます。

外部表にデータをインポートするには、次のようにします。

1. 必要な場合には、データベースへの接続を作成します。

2. データベース接続、スキーマ、表のノードを展開し、データをインポートする表を選択します。

3. データベース接続、スキーマ、表のノードを展開し、データをインポートする表を選択します。

4. 右クリックして「データのインポート」を選択し、「開く」ダイアログでファイルの場所を入力するか参照します。

5. 「OK」をクリックするとデータのインポート・ウィザードが起動します。
詳細は、[F1]を押すか、ウィザード内で「ヘルプ」をクリックしてください。

6. データのインポート・ウィザードの「データ・プレビュー」ページで、「外部表」を選択します。

7. データのインポート・ウィザードの「オプション」ページで、生成されるファイルのオプションを選択します。データのインポート・ウィザードを完了すると、SQLワークシートにSQLが表示され、SQLを調査および変更できます。問題がなくなったらワークシートを右クリックし、SQL*Plusで「実行」を選択します。

26.5.7 データベースからのデータのエクスポート

データベース接続を介して、データベースの表からデータをエクスポートできます。

データは、ファイルにもクリップボードにも保存できます。次の形式をサポートしています。

- csv。列IDのヘッダー行を含めて、カンマ区切りの値を含むファイルを作成する場合。

注意:

別のデリミタを選択できます。

- fixed。レコードが同じバイト長のときにファイルを作成する場合。

- html。データを持つ表を含むHTMLファイルを作成、挿入する場合と、SQL INSERT文を含むファイルを作成する場合。

- loader。SQL*Loader制御ファイルを作成する場合。

- text。テキスト・ファイルを作成する場合。

- ttbulkcp。TimesTenのttbulkcpコマンドライン・ユーティリティを使用してデータファイルを作成する場合。詳細は、Oracle TimesTen In-Memory Database 11g (http://www.oracle.com/technology/products/timesten/index.html)を参照してください。

- xls。Microsoft Excel .xlsファイルを作成する場合。このファイルには、データを含むエクスポート・ワークシートと、データのエクスポートに使用されるSQL文を含むSQLの2つのワークシートが含まれます。

- xml。XMLタグとデータを含むファイルを作成する場合。

「データのエクスポート」ダイアログでエクスポートするデータを制限するには、一部の列のみを選択してWHERE句を入力します。

注意:

大きい表をMicrosoft Excelファイルにエクスポートする際に問題が発生した場合には、jdeveloper.confファイルに次の行を追加してヒープ・サイズを大きくし、JDeveloperを再起動してみてください。

AddVMOption -Xmx1024M

表の行数が65,536を超えると、JDeveloperは行を.xlsファイル内の複数のワークシートに書き込みます。

データベースのエクスポート・ウィザードを使用して、データベースからデータをエクスポートすることもできます。

26.5.8 ファイルにデータをエクスポートする方法

データベース接続を介して、データベースの表からデータをエクスポートできます。

データベース表からデータをエクスポートするには、次のようにします。

1. メイン・メニューから「表示」→「データベース」→「データベース・ナビゲータ」を選択して、データベース・ナビゲータを開きます。

2. 必要な場合には、データベースへの接続を作成します。

3. データベース接続、スキーマ、表のノードを展開し、データをエクスポートする元の表を選択します。

4. 右クリックして「データのエクスポート」を選択し、「データのエクスポート」ダイアログを開きます。
詳細は、[F1]を押すか、ウィザード内で「ヘルプ」をクリックしてください。

26.6 データベースのコピー、比較、エクスポート

データベース・オブジェクトを、ソース・スキーマから宛先スキーマにコピーできます。データベース・オブジェクトとデータをDDLファイルにエクスポートできます。

26.6.1 データベースのコピー方法

データベース・オブジェクトをソース・スキーマから宛先スキーマにコピーできます。同じ名前のオブジェクトが宛先スキーマに存在する場合の動作を決定する操作のタイプに応じた制限が適用されます。

ソース・データベースと宛先データベースの接続があらかじめ定義されている必要があります。

データベースをコピーするには、次のようにします。

1. メイン・メニューから「ツール」→「データベース」→「データベース・コピー」を選択して、新規コピー・ウィザードを開きます。
詳細は、[F1]を押すか、ウィザード内で「ヘルプ」をクリックしてください。

26.6.2 データベース・スキーマの比較方法

異なる2つのスキーマで、同じタイプおよび名前のオブジェクト(たとえば、CUSTOMERSという表)の差異を検出できます。また、オプションで、一方のスキーマ(宛先)のオブジェクトを更新して、もう一方のスキーマ(ソース)の差異を反映できます。

差分ウィザードを使用するには、Oracle DatabaseのOracle Change Managementオプションのライセンスが必要です。ライセンスを購入するには、オラクル社の営業担当者または正規オラクル代理店にお問合せいただくか、Oracle Storeにアクセスして(https://shop.oracle.com)オンラインでご購入ください。

ソース・データベースと宛先データベースの接続があらかじめ定義されている必要があります。

データベース・スキーマを比較するには、次のようにします。

1. メイン・メニューから「ツール」→「データベース」→「データベース差分」を選択して、差分ウィザードを開きます。
詳細は、[F1]を押すか、ウィザード内で「ヘルプ」をクリックしてください。

26.6.3 データベースのエクスポート方法

1つ以上のタイプのデータベース・オブジェクトのうち一部またはすべてのオブジェクトを、SQLデータ定義言語(DDL)文が含まれたファイルにエクスポートし、それらのオブジェクトを作成できます。データベースのエクスポート・ウィザードでは、次の操作が可能です。生成されるDDLファイルの詳細の指定。エクスポートするデータベース・オブジェクトの選択。データのエクスポートの選択と、生成されるファイルに含めるデータを指定するフィルタの適用。

エクスポートするデータベースに対する接続が定義されている必要があります。

データベースをエクスポートするには、次のようにします。

1. メイン・メニューから「ツール」→「データベース」→「データベース・エクスポート」を選択して、データベースのエクスポート・ウィザードを開きます。
詳細は、[F1]を押すか、ウィザード内で「ヘルプ」をクリックしてください。

26.7 OracleおよびOracle以外のデータベースの使用

この項では、OracleデータベースとOracle以外のデータベースを使用する方法について説明します。異なるデータベースに対してJDeveloperで実行できる内容には、制限があります。詳細は、第26.4.2項「Oracle Databaseへの接続の作成方法」と第26.4.3項「Oracle以外のデータベースへの接続の作成方法」で、該当する情報を参照してください。

26.8 データベース・レポートの使用

JDeveloperでは、データベースとデータベース・オブジェクトに関する多くのレポートを使用できます。また、独自のユーザー定義データベース・レポートを作成できます。

オフライン・データベース・オブジェクトについてのレポートも実行できます。

26.8.1 データベース・レポートの使用

JDeveloperでは、データベースとデータベース・オブジェクトに関する多くのレポートを使用できます。また、独自のユーザー定義データベース・レポートを作成できます。

一部のレポートでは、レポートの生成前にバインド変数の入力を求められます。このバインド変数を使用すると、出力をさらに制限できます。すべてのバインド変数のデフォルト値はNULLで、これは、追加の制限を設定しないことを意味します。

データベース・レポート・ナビゲータを使用すると、データベースで最新情報を問い合せるレポートを実行できます。特定のレポートの表示に必要な時間はレポートごとに異なり、関連するオブジェクトの数と複雑さ、およびデータベースへのネットワーク接続の速度に影響を受ける場合があります。

データベースとデータベース・オブジェクトに関して事前定義済の多くのレポートがあります。

また、独自のユーザー定義レポートを作成できます。

たとえば、レポートの基礎となるSQLを調べると、独自のレポートを作成できます。

データベース・レポートはフォルダに編成され、レポートとフォルダはエクスポートが可能です。

レポートは、エクスポートすることによって共有できます。

レポートを共有するユーザーは、「プリファレンス」ダイアログを使用してJDeveloperのインスタンスにそのレポートを追加します。エクスポートされたレポートは、「ユーザー定義レポート」ノードの下のフォルダにインポートされます。

26.8.1.1 データベース・レポートの実行方法

データベース・レポート・ナビゲータを使用すると、データベースで最新情報を問い合せるレポートを実行できます。特定のレポートの表示に必要な時間はレポートごとに異なり、関連するオブジェクトの数と複雑さ、およびデータベースへのネットワーク接続の速度に影響を受ける場合があります。

データベース・レポートを実行するには、次のようにします。

1. 開かれていない場合には、データベース・レポート・ナビゲータを開きます。メイン・メニューで、「表示」→「データベース」→「データベース・レポート」を選択します。

2. 実行するレポートを検索し、右クリックして「開く」を選択すると、レポート・ビューア・ウィンドウで以前の結果が上書きされます。または、「新規に開く」でレポート・ビューアの新しいインスタンスを開きます。

3. 「バインド変数」ダイアログが表示された場合は、使用するバインド変数を入力します。詳細は、[F1]を押すか、「バインド変数」ダイアログで「ヘルプ」をクリックしてください。

レポートの結果は、レポート・ビューアに表示されます。

26.8.1.2 レポートのSQLを表示する方法

データベース・レポートの基礎となるSQLを、SQLワークシートで表示できます。

データベース・レポートのSQLを表示するには、次のようにします。

1. 開かれていない場合には、データベース・レポート・ナビゲータを開きます。メイン・メニューで、「表示」→「データベース」→「データベース・レポート」を選択します。

2. レポートを実行します。

3. レポート・ビューアで、「SQLワークシートでレポートを実行」ボタンをクリックします。SQLワークシートが開き、レポートのSQLコードが表示されます。

26.8.1.3 ユーザー定義データベース・レポートの作成方法

データベース機能とオブジェクトについて、独自のレポートを定義できます。

ユーザー定義レポートを作成するには、次のようにします。

1. 開かれていない場合には、データベース・レポート・ナビゲータを開きます。メイン・メニューで、「表示」→「データベース」→「データベース・レポート」を選択します。

2. 「ユーザー定義レポート」ノード、またはこのノードの下に作成したフォルダを右クリックして、「レポートの追加」を選択します。

3. 「レポートの作成」ダイアログで、レポートのSQLの名前を入力します。詳細は、[F1]を押すか、「レポートの作成」ダイアログで「ヘルプ」をクリックしてください。

26.8.1.4 ユーザー定義データベース・レポートの編集方法

ユーザー定義レポートは編集が可能です。

ユーザー定義レポートを編集するには、次のようにします。

1. 開かれていない場合には、データベース・レポート・ナビゲータを開きます。メイン・メニューで、「表示」→「データベース」→「データベース・レポート」を選択します。

2. 「ユーザー定義レポート」ノードを開き、編集するレポートを右クリックして「編集」を選択します。

3. 「レポートの作成」ダイアログで、レポートのSQLの名前を入力します。詳細は、[F1]を押すか、「レポートの作成」ダイアログで「ヘルプ」をクリックしてください。

26.8.1.5 レポートのフォルダの作成方法

ユーザー定義レポートはフォルダ内にまとめておくことができます。

フォルダを作成するには:

1. 開かれていない場合には、データベース・レポート・ナビゲータを開きます。メイン・メニューで、「表示」→「データベース」→「データベース・レポート」を選択します。

2. 「ユーザー定義レポート」ノードを右クリックして、「フォルダの追加」を選択します。

3. 「フォルダの作成」ダイアログで、フォルダの名前を入力します。作業中に詳細を参照するには、[F1]を押すか、ダイアログで「ヘルプ」をクリックします。

26.8.1.6 ユーザー定義レポートのエクスポート方法

データベース・レポート、またはデータベース・レポートのフォルダをエクスポートできます。

レポートを共有している場合にそのレポートをエクスポートすると、レポートを共有するユーザーのJDeveloperインスタンスでレポートを使用できるようになります。

データベース・レポートまたはフォルダをエクスポートするには、次のようにします。

1. 開かれていない場合には、データベース・レポート・ナビゲータを開きます。メイン・メニューで、「表示」→「データベース」→「データベース・レポート」を選択します。

2. 共有するレポートまたはフォルダを右クリックして、「エクスポート」を選択します。

3. レポートの場所を「保存」ダイアログに入力します。レポートのデフォルト名はexplain.xmlです。

26.8.1.7 ユーザー定義レポートのインポート方法

エクスポートしたデータベース・レポートやフォルダは、ユーザー定義のフォルダにインポートできます。

まず、レポートを保持するフォルダを作成する必要があります。

これは、データベース・レポートを共有する簡単な方法でもあります。

データベース・レポートまたはフォルダをインポートするには、次のようにします。

1. 開かれていない場合には、データベース・レポート・ナビゲータを開きます。メイン・メニューで、「表示」→「データベース」→「データベース・レポート」を選択します。

2. 「ユーザー定義レポート」ノードの下で、レポートを追加するフォルダを右クリックして「インポート」を選択します。

3. 「開く」ダイアログで、「保存」ダイアログを使用してエクスポートされたレポートの場所を入力または参照します。レポートのデフォルト名はexplain.xmlです。

データベース・レポートの共有方法

データベース・レポートを共有できます。エクスポートしたレポートは、起動したJDeveloperに追加できます。

レポートを共有する前に:

- レポートを実行する必要があります。

- 次にレポートをエクスポートする必要があります。

データベース・レポートの共有:

1. メイン・メニューから、「ツール」→「プリファレンス」を選択します。

2. 「プリファレンス」ダイアログで、「データベース」→「ユーザー定義の拡張」を選択します。詳細は、[F1]を押すか、「プリファレンス」ダイアログ内で「ヘルプ」をクリックしてください。

3. 「行の追加」をクリックして「タイプ」の下で「レポート」を選択し、「ロケーション」の下でエクスポートされたレポートの場所を入力または参照します。

4. JDeveloperを再起動します。

5. 「表示」→「データベース」→「データベース・レポート」を選択して、データベース・レポート・ナビゲータを開きます。ナビゲータの「共有レポート」ノードの下に、共有レポートがリストされます。

26.8.2 リファレンス: 事前定義済のデータベース・レポート

この項では、データベース・レポート・ナビゲータの「データ・ディクショナリ・レポート」ノードで使用できる事前定義済レポートについて説明します。

レポートはカテゴリに分類され、そのカテゴリで1種類以上のレポートを使用できます。

- データベースのバージョン情報に関するレポート
これらのレポートには、接続に関連付けられたデータベースに関するリリース情報が表示されます。このレポートには、「バージョン・バナー」(データベース設定)および「各国語サポート・パラメータ」(グローバリゼーション・サポート用のNLS_xxxパラメータ値)が表示されます。

- すべてのオブジェクト・レポート
これらのレポートには、ユーザーが保持するオブジェクトのみではなく、特定のデータベース接続に関連付けられたユーザーがアクセスできるすべてのオブジェクトに関する情報が表示されます。

- すべてのオブジェクト: 各オブジェクトに関して、所有者、名前、タイプ(表、ビュー、索引など)、状態(有効または無効)、作成日、およびデータ定義言語(DDL)操作が最後に実行された日付が表示されます。最後にDDLが実行された日付は、特定の日時以降にオブジェクト定義が変更されているかどうかを確認する際に役立つ場合があります。

- コレクション・タイプ: 各コレクション・タイプに関する情報が表示されます。この情報には、型の所有者、要素型の名前と所有者、および型に依存する特定の情報が含まれます。

- 依存性: 参照が設定されている各オブジェクトに関して、そのオブジェクトへの参照(そのオブジェクトの使用状況)に関する情報が表示されます。

- 無効なオブジェクト: 無効な状態のすべてのオブジェクトが表示されます。

- タイプ別オブジェクト数: 特定の所有者に関連付けられた各オブジェクト・タイプに関して、オブジェクト数が表示されます。このレポートは、非常に多くのオブジェクト、特に特定のタイプのオブジェクトを作成したユーザーの識別に役立つ場合があります。

- パブリック・データベース・リンク: すべてのパブリック・データベース・リンクが表示されます。

- パブリック・シノニム: すべてのパブリック・シノニムが表示されます。

- Application Expressレポート
これらのレポートには、Oracle Application Express 3.0.1以上のアプリケーション、ページ、スキーマ、UIのデフォルト値およびワークスペースに関する情報が表示されます。Oracle Application Express 3.0.1以上のアプリケーションを所有するスキーマの接続を選択すると、Application Expressレポートには、アプリケーション、ページ、スキーマ、UIのデフォルト値およびワークスペースに関する情報が表示されます。詳細は、『Oracle Application Express管理ガイド』を参照してください。

- ASHおよびAWRレポート
これらのレポートには、アクティブ・セッション履歴(ASH)および自動ワークロード・リポジトリ(AWR)機能が提供する情報が表示されます。

- データベース管理者レポート
これらのレポートには、システム・リソースの使用状況に関する情報が表示されます。この情報は、記憶域、ユーザー・アカウントおよびセッションの効率的な管理に役立つ場合があります。(ほとんどのデータベース管理者レポートを参照するには、データベース接続のユーザーにDBAロールが必要です。)

- すべての表: 表レポート(「品質保証」レポートを含む)としても分類されているレポートが含まれます。

- カーソル: セッションごとのカーソル数(オープン・カーソル数およびカーソルの詳細を含む)など、カーソルに関する情報が表示されます。

- データベース・パラメータ: すべてのデータベース・パラメータに関する情報、またはデフォルト値以外の値が設定されているデータベース・パラメータのみに関する情報が表示されます。

- ロック: 各ロックに関連付けられているユーザーなど、ロックに関する情報が表示されます。

- セッション: 様々な基準で選択および順序付けした、セッションに関する情報が表示されます。

- 記憶域: 表領域とデータファイルの使用状況および割当てに関する情報が表示されます。

- 上位SQL: 様々な基準で選択および順序付けした、SQL文に関する情報が表示されます。この情報は、予想より多く実行されているSQL文、または予想より多くの時間がかかっているSQL文の識別に役立つ場合があります。

- ユーザー: 様々な基準で選択および順序付けした、データベース・ユーザーに関する情報が表示されます。たとえば、最も新しく作成されたユーザー、有効期限が切れたユーザー・アカウント、オブジェクト・タイプごとの使用ユーザー、各ユーザーが所有するオブジェクト数を特定できます。

- データ・ディクショナリ・レポート
これらのレポートには、データベースでアクセスできるデータ・ディクショナリ・ビューに関する情報が表示されます。データ・ディクショナリ・ビューには、ALL_OBJECTS、USER_TABLESなどがあります。

- ディクショナリ・ビュー列: 各Oracleデータ・ディクショナリ・ビューに関して、ビューの列に関する情報が表示されます。

- ディクショナリ・ビュー: 各Oracleデータ・ディクショナリ・ビューと(ほとんどの場合は)その内容または目的に関するコメントが表示されます。

- ジョブ・レポート
これらのレポートには、データベースで実行されているジョブに関する情報が表示されます。

- すべてのジョブ: データベースで実行されているすべてのジョブに関する情報が表示されます。この情報には、前回の実行、現在の実行およびスケジュールされている次回の実行の開始時間が含まれます。

- DBAジョブ: DBAユーザーがデータベース接続に関連付けられている各ジョブに関する情報が表示されます。この情報には、前回の実行、現在の実行およびスケジュールされている次回の実行の開始時間が含まれます。

- ジョブ: データベース接続に関連付けられたユーザーが、ログ・ユーザー、権限ユーザーまたはスキーマ・ユーザーである各ジョブに関する情報が表示されます。この情報には、前回の実行、現在の実行およびスケジュールされている次回の実行の開始時間が含まれます。

- PLSQLレポート
これらのレポートには、PL/SQLオブジェクトに関する情報が表示され、それらのオブジェクトのソースを検索できます。

- プログラム・ユニット引数: プログラム・ユニットの各引数(パラメータ)に関して、プログラム・ユニット名、引数の位置(1、2、3など)、引数名、および引数が入力のみ(In)か、出力のみ(Out)か、または入力と出力の両方(In/Out)かが表示されます。

- ソース・コードの検索: 各PL/SQLオブジェクトに関して、各行のソース・コードが表示されます。指定した変数が使用されている箇所を、ソースで検索できます。

- ユニット行数: 各PL/SQLオブジェクトに関して、ソース・コードの行数が表示されます。この情報は、複雑なオブジェクトを識別する際に役立つ場合があります(たとえば、簡略化したり、複数のオブジェクトに分割することが必要なコードを識別する場合)。

- セキュリティ・レポート
これらのレポートには、権限を付与されたユーザーに関する情報と、場合によっては、権限を付与したユーザーに関する情報が表示されます。この情報は、データベース管理者が、発生する可能性があるセキュリティの問題と脆弱性を理解し、適切な処置を決定する際に役立つ場合があります(たとえば、特定の権限が不要なユーザーからその権限を取り消す場合)。

- 監査中: 監査方針に関する情報が表示されます。

- 暗号化: 暗号化された列に関する情報が表示されます。

- 権限付与および権限: 次のレポートが含まれます。

- 列権限: 特定の表の特定の列に対して付与された各権限に関して、権限を付与したユーザー、権限が付与されたユーザー、表、権限、および権限が付与されたユーザーがその権限を他のユーザーに付与できるかどうかが表示されます。

- オブジェクト権限付与: 特定の表に対して付与された各権限に関して、権限を付与したユーザー、権限が付与されたユーザー、表、権限、および権限が付与されたユーザーがその権限を他のユーザーに付与できるかどうかが表示されます。

- ロール権限: 付与された各ロールに関して、ロールが付与されたユーザー、ロール、ロールがADMINオプションとともに付与されたかどうか、およびロールがユーザーのデフォルト・ロールとして指定されているかどうかが表示されます。

- システム権限: データベース接続に関連付けられたユーザーに付与された各権限に関して、権限、および権限がADMINオプションとともに付与されたかどうかが表示されます。

- ポリシー: ポリシーに関する情報が表示されます。

- パブリック権限付与: PUBLICロールに付与された権限に関する情報が表示されます。

- ストリーム・レポート
これらのレポートには、ストリーム・ルールに関する情報が表示されます。

- すべてのストリーム・ルール: すべてのストリーム・ルールに関する情報が表示されます。この情報には、ストリームのタイプと名前、ルール・セットの所有者と名前、ルールの所有者と名前、ルール・セットのタイプ、ストリーム・ルールのタイプ、およびサブセット化操作が含まれます。

- ストリーム・ルール: データベース接続に関連付けられたユーザーが、ルールの所有者またはルール・セットの所有者である各ストリーム・ルールに関する情報が表示されます。この情報には、ストリームのタイプと名前、ルール・セットの所有者と名前、ルールの所有者と名前、ルール・セットのタイプ、ストリーム・ルールのタイプ、およびサブセット化操作が含まれます。

- 表レポート
これらのレポートには、指定した接続に関連付けられたユーザーが所有する表に関する情報が表示されます。この情報は、問題領域を識別することを目的としているわけではありませんが、使用しているリソースと要件によっては、監視または対処する必要がある問題の特定に役立つ場合があります。

表に関するレポートでは、所有者は、データベース接続に関連付けられたユーザーです。

- 列: 各表に関して、各列、各列のデータ型、および各列にNULL値を指定できるかどうかが表示されます。次のものが含まれます。

- データ型発生: 各表の所有者に関して、各データ型とその使用回数が表示されます。

- コメント(表および列): 各表および各表の各列に関連付けられた説明コメントが存在する場合、表示されます。また、コメントがない表のレポートも表示されます。データベース開発者が表の作成時または変更時にCOMMENT文を使用している場合、このレポートには、表および列の使用目的に関する有益な情報が表示されます。

- 制約: 制約に関連する次のレポートが含まれます。

- すべての制約: 各表に関して、関連付けられた各制約のタイプ(一意制約、チェック制約、主キー制約、外部キー制約)や状態(有効または無効)が表示されます。

- CHECK制約: 各チェック制約に関して、所有者、表名、制約名、制約の状態(有効または無効)、制約の指定などの情報が表示されます。

- 有効な制約、無効な制約: 状態が有効または無効な各制約に関して、表名、制約名、制約のタイプ(一意制約、チェック制約、主キー制約、外部キー制約)および状態が表示されます。無効な制約を適用するには、表を編集して、制約の状態を「有効」に設定する必要があります(表の作成/編集(拡張オプション付き)ダイアログ・ボックスの該当するタブを参照)。

- 外部キー制約: 各外部キー制約に関して、所有者、表名、制約名、制約が適用される列、制約が参照している表、参照されている表の制約などの情報が表示されます。

- 主キー制約: 主キー制約に関して、所有者、表名、制約名、制約の状態(有効または無効)、列名などの情報が表示されます。

- 一意制約: 各一意制約に関して、所有者、表名、制約名、制約の状態(有効または無効)、列名などの情報が表示されます。

- 索引: すべての索引、状態ごとの索引、タイプごとの索引および未使用の索引が含まれます。

- 組織: 専用レポートで、パーティション表、クラスタ表および索引構成表に関する情報が表示されます。

- 品質保証: (「「品質保証」レポート」を参照してください。)

- 統計: 各表に関して、前回の解析日時、行の総数、行の長さの平均、表のタイプなどの統計情報が表示されます。また、専用レポートでは、行数および行の長さの平均の大きい順に、結果が表示されます。

- 記憶域: 表領域ごとの表の数と、各表領域内の表に関する情報が表示されます。

- トリガー: すべてのトリガー、無効なトリガーおよび有効なトリガーに関する情報が表示されます。

- ユーザー・シノニム: すべてのユーザー・シノニムに関する情報、またはバインド変数の入力ダイアログ・ボックスに指定した文字列が含まれるユーザー・シノニムに関する情報が表示されます(このダイアログ・ボックスで文字列を入力するには、「Null」の選択を解除します)。

- ユーザー表: すべての表に関する情報、またはバインド変数の入力ダイアログ・ボックスに指定した文字列が含まれる表に関する情報が表示されます(このダイアログ・ボックスで文字列を入力するには、「Null」の選択を解除します)。

- 「品質保証」レポート: 技術的にはエラーでなくても通常はデータベース設計に問題があるような状態を識別する表レポートです。このような問題によって、論理エラーが発生したり、エラーを回避するために追加アプリケーション・コーディングが必要になったり、実行時に問合せのパフォーマンスが低下するなど、様々な問題が発生する可能性があります。

- 主キーなしの表: 主キーが定義されていない表のリストが表示されます。主キーは、表の各行を一意に識別する列(または列セット)です。表に主キーを定義することは必須ではありませんが、各表に主キーを作成または指定することをお薦めします。主キー列は索引付けされ、問合せのパフォーマンスが向上します。また、主キー列は、一意かつNULL以外である必要があるため、入力データが自動的に検証されます。また、主キーを外部キーとともに使用して、参照整合性を確保できます。

- 索引なしの表: 索引がない表のリストが表示されます。表の列に索引が定義されていると、通常、その列を使用する問合せは、列に索引がない場合と比べて非常に高速で効率的になります(特に、表に多くの行が存在し、列に多くの異なるデータ値が存在する場合)。

- 索引付けされていない外部キー付きの表: 索引が関連付けられていない外部キーが表示されます。外部キーは、主キーを参照する列(または列セット)です。外部キーのそれぞれの値は、関連付けられた主キーの値と一致する必要があります。多くの場合、外部キー列は問合せで結合され、通常、索引によって、その列を使用する問合せのパフォーマンスが大幅に向上します。索引付けされていない外部キーが問合せで使用されている場合、その外部キーに索引を作成すると、実行時のパフォーマンスを向上できることがあります。

- XMLレポート
これらのレポートには、XMLオブジェクトに関する情報が表示されます。

- XMLスキーマ: XMLオブジェクトを所有する各ユーザーに関して、スキーマ定義が含まれるXSDファイルのスキーマURLなど、各オブジェクトに関する情報が表示されます。

26.9 データベース接続のトラブルシューティング

この項では、データベースの接続で問題が発生した場合に役立つ情報を示します。

26.9.1 互換性のないJDKバージョンを使用するデータベースへのデプロイ

データベースにJavaをデプロイするときにORA-29552: 検証の警告: java.lang.UnsupportedClassVersionErrorが表示された場合には、そのプロジェクトに使用されているJDKのバージョンを、データベースで使用しているものと互換性のあるバージョンに変更する必要があります。

JDeveloperで使用されるバージョンは、Java JDKバージョン1.6です。

表26-1 各データベースのバージョンで使用されるJDKのバージョン

RDBMSのバージョン

JDKのバージョン

9.2

1.3.1

10.2

1.4.2_04

11.1

1.5.0_10

11.2

1.5.0_10

プロジェクトのJava SEをプロジェクトごとに変更する方法の詳細は、「個々のプロジェクトのプロパティの設定方法」でターゲットJava SEの設定に関する項を参照してください。

旧リリースのJava SEは、http://www.oracle.com/technetwork/java/javase/downloads/previous-jsp-138793.htmlからダウンロードできます。

27 Oracle JDeveloperでのデータベースの設計

この章では、データベース接続内でのデータベース・オブジェクトの使用方法について説明します。また、JDeveloper内のオフライン・データベースを使用し、スクリプト・データベース接続に生成可能なオフライン・データベース・オブジェクトを作成および編集する方法についても説明します。

この章では、次の項目について説明します。

- 第27.1項「Oracle JDeveloperでのデータベースの設計について」

- 第27.2項「データベース・オブジェクトの作成、編集および削除」

- 第27.3項「オフライン・オブジェクトおよびデータベース・オブジェクトからのスクリプトの作成」

27.1 Oracle JDeveloperでのデータベースの設計について

JDeveloperを使用して、次の作業を実行できます。

- データベース・オブジェクトの作成、編集または削除

- オフライン・データベース・オブジェクトの作成、編集または削除

- データベース定義のオフライン・バージョンで作業を行った後、これらの定義をすぐに処理されるファイルに生成するか、またはこの時点ではデータベース接続を通して表または他のデータベース・オブジェクトを作成します。

- オフライン・データベースをモデル化し、ダイアグラム上で稼働中のデータベース接続内のデータベース・オブジェクトをモデル化します。データベースのモデル化の詳細は、第23.5項「データベース・ダイアグラム」を参照してください。

27.2 データベース・オブジェクトの作成、編集および削除

データベース・オブジェクトおよびオフライン・データベース定義を作成したり、これらのオブジェクトを編集したり、これらのオブジェクトを削除またはデータベース接続から削除できます。

27.2.1 オフライン・データベース定義の使用

この項では、データベース・スキーマのコンテキスト外での表、ビューおよび制約などのデータベース・オブジェクトの作業方法について説明します。オフライン・データベースはJDeveloperのテクノロジの1つで、稼働中のデータベース接続でのデータベース・オブジェクト作成および編集に使用されるものと同じエディタを使用して、プロジェクト内で.xmlファイルとして保存されたデータベース・オブジェクト定義を作成および編集できます。

新しいオフライン・データベース・オブジェクトを作成するか、または稼働中のデータベースへの接続からインポートできます。作業の終了後、オンライン・データベース・スキーマでデータベース定義を作成および更新するために使用可能なDDLを生成できます。

JDeveloperオフライン・データベースでは、次のオブジェクト・タイプをサポートします。

- 機能

- 索引

- マテリアライズド・ビュー

- マテリアライズド・ビュー・ログ

- パッケージ

- プロシージャ

- 順序

- シノニム

- 表

- 表領域

- トリガー

- データ型

- ビュー

これらのオブジェクト・タイプに対するOracle Databaseのサポートの詳細は、『Oracle Database SQL言語リファレンス』を参照してください。

オフライン・データベース定義の使用

JDeveloperでオフライン・データベース定義を使用する場合、XMLファイルとして格納されているが、稼働中のデータベース接続内のオブジェクトのモデルを提供するオブジェクトを使用します。稼働中のデータベース接続にオフライン・データベース定義を生成することにより、データベース・オブジェクトを作成、変更または削除できます。

JDeveloperには、データベースのコンテキスト外で表や制約などのデータベース・オブジェクトを作成および編集する必要がある場合に使用できるツールがあります。次に例を示します。

- 新しい表およびビューを作成したり、データベースに情報を生成できます。

- 新しい表およびビューを作成したり、データベースに情報を生成し、これを編集して後でデータベース接続上で実行できます。

- データベース・スキーマから表およびビューをインポートして変更を行った後、その変更内容を同じデータベース・スキーマ、新しいデータベース・スキーマ、またはファイルに反映して、後日データベースに対して実行することもできます。JDeveloperでは、データベースへのコミット前に変更を手動で調整できます。

- JDeveloperのモデル作成ツールを使用して、オフライン・データベース・オブジェクトをダイアグラム上に視覚的に表示できます。データベースのモデル化の詳細は、第23.5項「データベース・ダイアグラム」を参照してください。

オフライン・データベース・ファイルのパスの設定方法

プロジェクト設定を構成して、プロジェクトから使用する、オフライン・データベース・オブジェクトのルート位置を指定できます。データベース・パスはデフォルトで構成されるため、次の場合のみモデル・パスの変更が必要になります。

- 他のプロジェクトに格納されているオフライン・データベース・オブジェクトを含める場合

- 別の場所に新しいオフライン・データベース・オブジェクト・ファイルを格納する場合

プロジェクトのデータベース・パスにファイル・システム上のパスを追加すると、オフライン・データベース・オブジェクトを複数のプロジェクト間で共有できます。データベース・パスにファイル・システム上のパスが入力された順序は、オフライン・データベース・オブジェクトを検索するディレクトリの順番を示します。データベース・パスの最初の場所は、新しいオフライン・データベース・オブジェクト・ファイルが格納される場所です。

データベース・オブジェクトをモデリングしている場合、モデル・パス(「プロジェクト・プロパティ」ダイアログの「モデラー」プリファレンス・ページにあります)を使用して、ダイアグラムのファイルの場所を指定します。

注意:

プロジェクトに別のデータベース・パスを追加する場合は、続行する前に作業を保存してください。データベース・パスを変更すると、プロジェクトはオフライン・データベース・オブジェクト定義を再ロードします。そのため、表、ビュー、スキーマの変更や新しいオブジェクトなど、未保存の作業は失われる可能性があります。

すべての新規プロジェクトに使用されるデータベース・オブジェクト用としてデフォルトのルート・ディレクトリを設定できます。

新規プロジェクト用のデータベース・オブジェクトにデフォルトのルート・ディレクトリを設定するには、次のようにします。

1. 「アプリケーション」→「デフォルト・プロジェクト・プロパティ」を選択します。

2. 「プロジェクト」→「ソースパス」→「オフライン・データベース」を選択してルート・ディレクトリを入力します。

既存のプロジェクトのデータベース・パスを変更できます。

既存のプロジェクトのデータベース・パスを設定するには、次のようにします。

1. プロジェクトを右クリックして、「プロジェクト・プロパティ」を選択します。

2. 「プロジェクト」→「ソースパス」→「オフライン・データベース」を選択して、プロジェクトのオフライン・データベース・オブジェクトのファイル・システムのロケーションを入力します。セミコロン(;)を使用して複数のファイル・システム・ロケーションを区切ります。

3. 「対象」および「除外」タブを使用すると、サブフォルダを選択して追加および除外できます。詳細は、[F1]を押すか、ダイアログ内で「ヘルプ」をクリックしてください。

27.2.1.1 オフライン・データベース

JDeveloperでは、パッケージと同様の方法でコンテナとして動作するオフライン・データベースのコンテキストでオフライン・データベース定義が使用されます。アプリケーション・ナビゲータでは、図27-1のように、オフライン・データベースは「オフライン・データベース・ソース」ノードの下に表示されます。

図27-1 アプリケーション・ナビゲータに表示されたオフライン・データベース

この場合、Javaクラスとデータベース・ダイアグラムが「アプリケーション・ソース」ノードの下のパッケージ「project1」で作成されていて、オフライン・データベース定義がオフライン・データベース・ソース・ノードの下にある「DATABASE1」というオフライン・スキーマでいくつか作成されています。

オフライン・データベースを作成する場合、オフライン・データベースに必要なデータベース・エミュレーションを選択します。

27.2.1.2 オフライン・データベース・エミュレーションの構成

オフライン・データベースがエミュレートするデータベースのタイプを指定できます。これにより、プロジェクトでサポートされるデータ型が決まります。

使用可能なOracle Databaseのオプションは、次のとおりです。

- Oracle11gデータベース・リリース1

- MySQL Database Server 4.1.x

- MySQL Database Server 5.x

- Oracle11gデータベース・リリース2(デフォルト)

- Oracle Database 10gリリース1

- Oracle Database 10gリリース2

- Oracle Database 10g Express Editionリリース2

- Oracle Database 11g Express Editionリリース2

- Oracle Database Lite 10gリリース1

- Oracle Database Lite 10gリリース3

- Oracle 8i Serverリリース3

- Oracle 9i Databaseリリース2

- TimesTen Database Server 11g

- TimesTen Database Server 6.0

- TimesTen Database Server 7.0

Oracle以外のデータベースで使用可能なオプションは次のとおりです。

- Apache Derby 10.5

- DB2 Universal Database 8.1

- DB2 Universal Database 9.5

- 汎用JDBCデータベース

- Informix Dynamic Server 10.0

- Informix Dynamic Server 11.5

- Microsoft SQL Server 2005

- Microsoft SQL Server 2008

- SQLite Database 3.6

- Sybase Adaptive Server Enterprise 12.5

- Sybase Adaptive Server Enterprise 15

27.2.1.3 オフライン・データベースの作成方法

オフライン・データベースは、オフライン・スキーマおよびオフライン・データベース・オブジェクト定義が含まれるアプリケーション・ナビゲータ内のノードです。

オフライン・データベースを作成するには、次のようにします。

1. ナビゲータで、作業するプロジェクトを特定します。

2. プロジェクトまたはプロジェクト内の任意の項目を右クリックして、「新規」を選択し、「新規ギャラリ」を表示します。

3. 「新規ギャラリ」で、「データベース層」を開き、「オフライン・データベース・オブジェクト」を選択し、「オフライン・データベース」を選択します。

4. 「オフライン・データベースの作成」ダイアログで、オフライン・データベースの名前を入力し、エミュレートするデータベース・タイプを選択します。
詳細を参照するには、「オフライン・データベースの作成」ダイアログ内で[F1]を押すか「ヘルプ」をクリックします。

27.2.1.4 オフライン・スキーマ

JDeveloperでは、オフライン・データベースのコンテキストでオフライン・データベース定義が使用されます。オフライン・データベースでは、スキーマは、稼働中のデータベース接続内のスキーマに相当します。アプリケーション・ナビゲータでは、オフライン・スキーマは、図27-2のように「オフライン・データベース・ソース」ノードの下に表示されます。

図27-2 アプリケーション・ナビゲータに表示されたオフライン・スキーマ

この場合、Javaクラスとデータベース・ダイアグラムが「アプリケーション・ソース」ノードの下のパッケージ「project1」で作成されていて、オフライン・データベース定義が、「オフライン・データベース・ソース」ノードの下にある「DATABASE1」というオフライン・データベースに含まれる「MYSCHEMA」というスキーマでいくつか作成されています。

27.2.1.5 オフライン・スキーマの作成方法

オフライン・スキーマを作成するには、次のようにします。

1. ナビゲータで、作業するプロジェクトを特定します。

2. プロジェクトまたはプロジェクト内の任意の項目を右クリックして、「新規」を選択し、「新規ギャラリ」を表示します。

3. 「新規ギャラリ」で、「データベース層」を開き、「オフライン・データベース・オブジェクト」を選択し、「スキーマ」を選択します。

4. 「オフライン・データベース」ダイアログで、スキーマを作成するオフライン・データベースを選択します。

5. 「スキーマの作成」ダイアログで、オフライン・スキーマの名前を入力します。詳細を参照するには、「スキーマの作成」ダイアログ内で[F1]を押すか「ヘルプ」をクリックします。

ポップアップ・メニューのショートカットを使用するには、次のようにします。

アプリケーション・ナビゲータで、オフライン・データベースを右クリックし、「新規スキーマ」を選択します。

27.2.1.6 オフライン・データベース・オブジェクトの作成方法

オフライン・データベース・オブジェクトは、「新規ギャラリ」から作成したり、アプリケーション・ナビゲータのオフライン・データベースまたはオフライン・スキーマのポップアップ・メニューから作成できます。このプロセスは、オフライン・データベースのオブジェクト・タイプに関係なく、ほぼ同じです。

表について

使用可能な表のタイプは、次のとおりです。

- 標準。これは、パーティション化可能な標準のデータベース表です。パーティション表は、より小さく管理しやすいようにパーティションと呼ばれる断片に分けられた表です。パーティション表にアクセスするために、SQL問合せおよびDML文を変更する必要はありません。ただし、パーティションを定義すると、DDL文は表や索引全体ではなく、個々のパーティションにアクセスして操作するようになります。また、パーティション化はアプリケーションに対して完全に透過的です。

- 外部。外部表は読取り専用の表であり、これらのメタデータはデータベースに格納されますが、データはデータベースの外部に格納されます。特に重要な機能として、外部表では、最初にデータベースにデータをロードしなくても、データを問い合せることができます。

- 索引構成。索引構成表は、主キーに基づいて構築された索引に行(主キー列値とキー以外の列値の両方)が保持される表です。索引構成表を使用すると、Oracle Databaseで索引構造を表として格納できます。索引構成表は、主キーベースのアクセスおよび操作に最適です。

- 一時。一時表の定義は通常の表の定義と同じように保持されますが、一時表の表セグメントとすべてのデータは、トランザクションまたはセッションの持続期間中のみ保持され、表はデータベースに永久には格納されません。一時表は、パーティション化または索引構成化できません。

注意:

オフライン・スキーマのリレーショナル表定義を作成して使用することはできますが、オブジェクト・リレーショナル表定義を作成して使用することはできません。

パーティションについて

表、索引またはマテリアライズド・ビューをパーティション化できます。パーティション表またはパーティション・マテリアライズド・ビューは、より小さく管理しやすいようにパーティションと呼ばれる断片に分けられた表またはマテリアライズド・ビューです。パーティション表にアクセスするために、SQL問合せおよびDML文を変更する必要はありません。ただし、パーティションを定義すると、DDL文は表や索引全体ではなく、個々のパーティションにアクセスして操作するようになります。また、パーティション化はアプリケーションに対して完全に透過的です。

一時表はパーティション化できません。

パーティション索引は、表の索引列に表示されるそれぞれの値のエントリが含まれるパーティションによって構成されています。

パーティションには、次の3つのタイプがあります。

- RANGE。列リストの値の範囲で表をパーティション化します。索引構成表の場合、これは表の主キー列のサブセットである必要があります。

- HASH。ハッシュ・メソッドを使用して表をパーティション化します。列の値にパーティション化キーとして指定されたハッシュ・ファンクションを使用して、行がパーティションに割り当てられます。

- LIST。列のリテラル値のリストで表をパーティション化します。これは、個々の行が固有のパーティションにマップする方法に関する制御に便利です。

表または索引上にRANGEパーティションがある場合、HASHまたはLISTによって表または索引をさらにサブパーティション化できます。コンポジット・パーティション化は、データをサブパーティションにさらに分割するために2つのパーティション化方法を組み合せた方法です。

サブパーティションを明示的に定義しないパーティションで使用されるサブパーティション・テンプレートを定義できます。

注意:

数量別にハッシュ・パーティションを使用するOracle Database内の表または索引は、個別ハッシュ・パーティションを持つものとしてJDeveloperに表示されます。「表の作成」、「表の編集」、「マテリアライズド・ビューの作成」、またはマテリアライズド・ビューの編集ダイアログを使用して個別パーティションを手動で指定することも、個別パーティションを数量別に定義してデータベースに処理させることもできます。いずれの方法を選択してパーティションを定義するとしても、JDeveloperでデータベース表またはマテリアライズド・ビューを編集する場合、これらは個別パーティションとして表示されます。

索引について

表の列に索引を作成すると、問合せを高速化できます。索引を使用すると、表の行全体のわずかな部分を戻す操作でのデータ・アクセスが、より高速になります。通常、次のいずれかの場合、列に索引を作成できます。

- 列を頻繁に問い合せる場合

- 列に参照整合性制約がある場合。

- 列に一意キー整合性制約がある場合。

索引はどの列にも作成できますが、列が前述のような状況で使用されていない場合は、索引を作成してもパフォーマンスは改善されず、リソースが無駄に占有されます。データベースでは整合性制約を使用した列に索引を作成しますが、このような列には索引を明示的に作成することをお薦めします。SQLワークシートの実行計画を使用すると、特定の問合せ文に対する理論的な実行計画を示すことができます。

索引には、索引が非一意、一意、またはビットマップである標準索引や、ドメイン索引があります。

非一意標準索引の場合、索引には複数の同一値を含めることができます。一意標準索引の場合、重複値は許可されません。列内の値が一意である場合は、一意標準索引を使用します。ビットマップ標準索引の場合、キー値に関連付けられたROWIDがビットマップとして格納されます。多数の同時システムによってデータが頻繁には更新されないシステムや、値の範囲が狭いシステムの場合、これらが役に立ちます。

ドメイン索引は、アプリケーション固有のドメイン内のデータに各索引が付けられる、ユーザー定義索引です。これらは、ユーザー定義の索引タイプ別に提供される索引ロジックを使用して構築されます。索引タイプを使用すると、特定の演算子の述部に合うデータに効率よくアクセスできます。通常、ユーザー定義の索引タイプは、SpatialオプションなどのOracleオプションの一部です。

ユーザー定義のデータ型の使用

JDeveloperでは、オブジェクト型やコレクション型などの独自のデータ型を定義できます。

オブジェクト型は、発注書など、アプリケーション・プログラムで処理する実社会のエンティティを抽象化したものです。1つのオブジェクト型は、次の3種類のコンポーネントを持つスキーマ・オブジェクトです。

- 名前。スキーマ内でオブジェクト型を一意に識別します。

- 属性。実社会のエンティティの構造と状態をモデリングします。属性は、ビルトイン型または他のユーザー定義型です。

- メソッド。PL/SQLで記述されてデータベースに格納されたか、C言語などで記述されて外部に格納されたファンクションまたはプロシージャです。メソッドにより、アプリケーションで実社会のエンティティに対して実行できる操作が実装されます。

オブジェクト型はテンプレートです。テンプレートにあわせて構造化されたデータ・ユニットをオブジェクトと呼びます。

JDeveloperでは、オブジェクト型仕様、またはオブジェクト型仕様および本体を作成できます。

新規オブジェクト型仕様を作成する場合、これは次のようになります。

TYPE TYPE1 AS OBJECT (a null );

オブジェクト型本体を作成する場合、これは次のようになります。

CREATE TYPE TYPE1 AS VARRAY(1) OF null;
/

コレクション型は異なります。各コレクション型では、すべて同一のデータ型を持つ不定の数の要素で構成されるデータ・ユニットを記述します。コレクション型は、配列型と表タイプです。

配列型と表タイプはスキーマ・オブジェクトです。対応するデータ・ユニットはVARRAYとネストした表です。混同するおそれがなければ、通常はコレクション型をVARRAYおよびネストした表と呼びます。

コレクション型はコンストラクタ・メソッドを持ちます。コンストラクタ・メソッド名は型の名前で、引数は新規コレクションの要素をカンマで区切ったリストです。コンストラクタ・メソッドは関数です。これにより、新規コレクションがその値として戻されます。

型名とそれに続く空の丸カッコで構成される式は、その型を持つ空のコレクションを作成するためのコンストラクタ・メソッドのコールを表します。空のコレクションは、NULLのコレクションとは異なります。

JDeveloperでは、配列型と表タイプを作成できます。

配列型は次のようになります。

TYPE TYPE1 AS VARRAY(1) OF null;

表タイプは次のようになります。

TYPE TYPE1 AS TABLE OF null;

注意:

プロジェクトがOracle Database以外のデータベース・エミュレーション用として構成されている場合にデータ型を使用するには、エミュレートするデータベースが型作成をサポートしている必要があります。

マテリアライズド・ビューについて

マテリアライズド・ビューは、問合せの結果が含まれるデータベース・オブジェクトです。問合せでFROM句を使用すると、表、ビューおよびその他のマテリアライズド・ビューの名前を指定できます。稼働中のデータベース接続内のマテリアライズド・ビュー、およびJDeveloperのオフライン・データベース内のオフライン・マテリアライズド・ビューをモデル化、作成および編集できます。

Oracle DatabaseからJDeveloperプロジェクトにマテリアライズド・ビューをインポートする場合:

- データベース上のマテリアライズド・ビューにWITHOUT REDUCED PRECISIONが指定されている場合、マテリアライズド・ビューがJDeveloperにインポートされると、精度の低下が採用され、「マテリアライズド・ビュー・ログの編集」ダイアログの「プロパティ」ページの「精度の低下」オプションが選択されます。マテリアライズド・ビューで精度が低下しないことが重要である場合は、ダイアログで「精度の低下なし」を選択します。

- データベース上のマテリアライズド・ビューにUSING ROLLBACK SEGMENTおよびUSING TRUSTED CONSTRAINTSが指定されている場合、マテリアライズド・ビューがJDeveloperにインポートされると、「マテリアライズド・ビュー・ログの編集」ダイアログの「プロパティ」ページでロールバック・セグメントが選択されず、制約が「強制」として表示されます。必要に応じて、「マテリアライズド・ビュー・ログの編集」ダイアログのオプションを変更します。

日付値と時間値の検証

データベースにオフライン表定義または表を作成して日時のデフォルト値を使用すると、JDeveloperではこれらの値が検証されます。日付の場合は、次の値を使用できます。

- Oracle日付関数

- 引用符で囲んだ書式DD-MON-RRの文字列。各項目の意味は次のとおりです。

- 月にはフルスペルの表記を使用できます。

- 年は省略せずに表記できます(2011など)。

- セパレータ(-)は省略できます。また、英数字以外を空白と組み合せて使用することもできます。

タイムスタンプには、書式DD-MON-RR HH.MI.SSXFF AM TZRの文字列を引用符で囲んで使用できます。各項目の意味は次のとおりです。

- 月にはフルスペルの表記を使用できます。

- 年は省略せずに表記できます(2011など)。

- 時間と分は必須です。

- 秒、ミリ秒、AM/PMおよびタイム・ゾーンはオプションです。

- セパレータ(-)は省略できます。また、英数字以外を空白と組み合せて使用することもできます。

データベースから表をインポートするときに、日付値と時間値が前述のルールに従って検証されます。検証が原因でOracle Databaseから表をインポートできない場合は、検証機能をオフにできます。

日付と時間の検証をオフするには、次のようにします。

1. 「ツール」→「プリファレンス」→「データベース接続」を選択します。

2. 「日付と時間のデフォルト値を検証」の選択を解除します。

オフライン・タイプ定義を作成するには、次のようにします。

1. アプリケーション・ナビゲータで、作業するワークスペースおよびプロジェクトを開きます。

2. プロジェクトまたはその中の任意の項目、あるいはオフライン・スキーマまたはその中の任意の項目を右クリックして、「新規」を選択し、「新規ギャラリ」を表示します。

3. 「新規ギャラリ」で、「データベース層」を開き、「オフライン・データベース・オブジェクト」を選択します。

4. 「タイプ」を選択して、「オフライン・タイプの作成」ダイアログを起動します。

5. パラメータを入力し、型を定義するオプションを選択します。
詳細を参照するには、「オフライン・タイプの作成」ダイアログ内で[F1]を押すか「ヘルプ」をクリックします。

ポップアップ・メニューのショートカットを使用するには、次のようにします。

アプリケーション・ナビゲータで、オフライン・スキーマを右クリックして「新規データベース・オブジェクト」を選択し、「新規タイプ」を選択します。

ユーザー定義タイプを編集するには、アプリケーション・ナビゲータでそのタイプをダブルクリックします。このタイプが含まれるSQLがソース・エディタで開きます。

オフライン・データベース・オブジェクト定義を作成するには、次のようにします。

注意:

オフライン・スキーマのリレーショナル表定義を作成して使用することはできますが、オブジェクト・リレーショナル表定義を作成して使用することはできません。

1. アプリケーション・ナビゲータで、プロジェクトまたはプロジェクト内の任意の項目を右クリックして、「新規」を選択し、「新規ギャラリ」を表示します。

2. 「新規ギャラリ」で、「データベース層」を開き、「オフライン・データベース・オブジェクト」を選択します。

3. 作成するオフライン・データベース・オブジェクトを選択し、「作成」ダイアログまたはウィザードを起動します。
詳細を参照するには、「オフライン・タイプの作成」ダイアログ内で[F1]を押すか「ヘルプ」をクリックします。

ポップアップ・メニューのショートカットを使用するには、次のようにします。

アプリケーション・ナビゲータで、オフライン・スキーマを右クリックして「新規データベース・オブジェクト」を選択し、作成するオブジェクトを選択します。

オフライン・データベース定義を削除するには、次のようにします。

1. アプリケーション・ナビゲータで、オフライン・オブジェクトを含むプロジェクト、オフライン・データベースおよびオフライン・スキーマを開きます。オフライン・オブジェクトを右クリックして「削除」を選択します。

2. オフライン・オブジェクトを右クリックして「削除」を選択します。
または、オフライン表を右クリックして「ファイル」→「削除」を選択します。

注意:

オフライン表に依存性がある場合、「削除の確認」ダイアログに警告が表示され、使用方法を確認できます。それでもオフライン表を削除することを選択する場合、オブジェクトも削除されることを示す警告がカスケード削除の確認ダイアログに表示されます。

27.2.1.7 データベース・オブジェクトに基づいたオフライン・データベース定義のインポート方法

データベース・スキーマからデータベース・ダイアグラムに表、ビュー、シノニム、マテリアライズド・ビュー、および順序をドラッグすると、オフライン・データベース・オブジェクトとしてアクセスできるようになります。

オフライン・オブジェクトとしてデータベース・オブジェクトを使用する別の方法では、データベースからオフライン・データベースにこれらをインポートします。

データベース・ダイアグラムにオブジェクトをドラッグするには、次のようにします。

1. 新規データベース・ダイアグラムを作成します。
または、既存のダイアグラムを開きます。

2. データベース接続を選択します。次のどちらかに移動します。

- 「表示」→「データベース」→「データベース・ナビゲータ」

- アプリケーション・ナビゲータの「アプリケーション・リソース」

「IDE接続」またはアプリケーションを展開し、データベース接続を選択します。

3. 接続で、スキーマを開いて目的のノード(「表」、「ビュー」、「マテリアライズド・ビュー」、「順序」または「シノニム」)を開きます。

4. モデリングするオブジェクトを選択してデータベース・ダイアグラムにドラッグします。この操作により、「場所の指定」ダイアログが開きます。「オブジェクトをプロジェクトにコピー」が選択されていることを確認して「OK」をクリックします。これで、オブジェクトがダイアグラムに表示され、アプリケーション・ナビゲータにリストされます。

[Ctrl]キーを押しながら複数のオブジェクトを選択することで、データベース・ダイアグラム上に同じタイプのオブジェクトを2つ以上ドラッグできます。

注意:

同じオブジェクトを複数回インポートすると、警告メッセージが表示されます。「プロジェクトにコピー」を使用している場合、続行することを選択すると、既存のオブジェクトを置換または削除できます。データベース・オブジェクトをダイアグラムにドラッグし、続行することを選択すると、新規オブジェクトによって既存のオブジェクトが上書きされます。

データベース・オブジェクトおよびオフライン・データベース定義をプロジェクトにコピーする方法

データベース・オブジェクトをデータベース・スキーマからオフライン・データベースにコピーできます。これにより、オフライン・データベース・オブジェクトとして使用できるようになります。また、オフライン・データベース・オブジェクトをプロジェクトにコピーすることもできます。

別のデータベース・バージョンをエミュレートするオフライン・データベースにデータベース・オブジェクトをコピーしようとすると、続行方法に関するガイダンスを示すエラー・メッセージが表示されます。通常、オフライン・データベースでは同じデータベース・エミュレーションがソース・データベースとして使用されるようにすることをお薦めします。

ウィザードのフィルタを適用して、興味があるオブジェクトのみを表示できます。スキーマ内に多くのオブジェクトがある場合、自動問合せを停止すると、フィルタ文字を入力するたびにウィザードがリフレッシュすることはありません。

フィルタを適用して、インポートに使用可能として表示されるオブジェクトを選択できます。「オブジェクト・ピッカー」ページ(ウィザードのステップ3)では、次の操作が可能です。

- 「名前フィルタ」に文字を入力して、使用可能なオブジェクトのリストを名前でフィルタします。「名前フィルタ」では大文字と小文字が区別されます。

- 多数のオブジェクトが存在する場合、自動問合せをオフにし、使用するフィルタを入力した後に「問合せ」をクリックします。

データベース・オブジェクトをインポートする手順は、次のとおりです。

1. アプリケーション・ナビゲータで、使用するプロジェクトを選択します。

2. 「ファイル」→「新規」を選択して「新規ギャラリ」を開きます。

3. 「カテゴリ」ツリーで「データベース層」を開き、「オフライン・データベース・オブジェクト」を選択します。

4. 「項目」リストで、「データベース・オブジェクトをプロジェクトにコピー」をダブルクリックし、データベース・オブジェクトをプロジェクトにコピー・ウィザードを起動します。
詳細は、[F1]を押すか、ウィザード内で「ヘルプ」をクリックしてください。

27.2.1.8 オフライン表と外部キー

稼働中のデータベース・スキーマからJDeveloperに表をインポートする場合、外部キーについての情報は必ずしも利用できるとはかぎりません。以降の各項では、外部キー情報の処理方法をケース別に説明します。

外部キーの両端の表をインポート

これが最も単純なケースです。JDeveloperが、外部キーをその間に持つ複数の表をインポートする場合、その外部キーに関する情報もインポートされます。これにより外部キーは、データベース・ダイアグラムおよび「オフライン表の編集」ダイアログの制約情報ページに正しく表示されます。

表での作業を終了した後、その変更内容を直接データベースに反映できます。

外部キーの一端の表をインポート

JDeveloperが外部キーを持つ表をインポートする場合で、キーの他端にある表はインポートしない場合、検証されていない外部キー参照(名前ベースの外部キーと呼ばれます)が使用されます。外部キーは、所有する表の制約コンパートメントに表示されますが、データベース・ダイアグラム上のアソシエーション線としては表示されません。表ダイアログでは、外部キーは破損として表示されます。名前ベースの外部キーは検証されませんが、DDLは正しいため、変更はデータベースに直接生成できます。

ベスト・プラクティス

前述の情報から、新しいデータベース・スキーマの基本として機能する表をインポートしている場合、使用しない表に対する外部キーについて注意する必要がないことがわかります。安全に変更し、オンライン表を新しいスキーマに生成できます。

しかし、表をインポートして希望する変更を行い、同じデータベース・スキーマに変更を反映する場合には、次のいずれかを実行する必要があります。

- 表を変更するかどうかにかかわらず、外部キー関係を持つすべての表をインポートします。したがって、外部キーについての正しい情報をSQLファイルまたはデータベースに直接生成できます。データベース・オブジェクトをプロジェクトにコピー・ウィザードの「操作の選択」ページを使用すると、依存性をインポートできます。

- 変更する表のみをインポートし、名前ベースの外部キーに依存して情報を保持します。

27.2.1.9 オフライン・データベース・オブジェクトのリフレッシュ方法

インポートしたオフライン・オブジェクトをインポート元のデータベース接続からリフレッシュできます。オブジェクトを再インポートすると、そのオフライン・オブジェクトに対して行った変更は失われることに注意してください。

注意:

JDeveloperでオフライン・オブジェクトとして作成した後、データベースに生成したオブジェクトはリフレッシュできません。データベースのオブジェクトに変更を加え、その変更をオフライン・オブジェクトに反映する場合、データベースからオブジェクトをインポートして、「ターゲット・スキーマの選択」ページの「既存のオブジェクトを自動的に置換え」を選択するか、またはウィザードの最後の「上書きの確認」メッセージで「はい」を選択することで、オフライン・オブジェクトを上書きする必要があります。

データベースからオブジェクトを再インポートするには、次のようにします。

1. アプリケーション・ナビゲータでオフライン・オブジェクトを右クリックし、データベース接続から「リフレッシュ」を選択します。

2. 「オフライン・オブジェクトの上書きの確認」ダイアログが表示された時点で、オブジェクトを再インポートすることを確認して「はい」をクリックします。それ以外の場合は、「いいえ」をクリックします。これには数秒かかることがあります。

27.2.1.10 テンプレートからのオブジェクトの作成方法

オフライン・データベース・オブジェクトはテンプレートに基づいて作成できます。たとえば、作成したすべての表に対して記憶域オプションのデフォルト・セットを使用します。作成したすべての表に対してユーザー・プロパティ値のデフォルト・セットを使用します。作成したすべての表に対して列のデフォルト・セットを使用します。テンプレート表では、デフォルトの主キー、列順序およびトリガーを作成できます。

テンプレートを使用して新規オブジェクトを作成する場合、テンプレートに設定されているプロパティが新規オブジェクトにコピーされ、その結果として作成ダイアログのオプションが事前移入されます。所有されたオブジェクトのネームスペースが親オブジェクトでない場合、名前は、親オブジェクト内のみでなく、スキーマ内で一意である必要があります。たとえば、索引名および制約名は、所有する表、マテリアライズド・ビューまたはビュー内のみでなく、スキーマ内で一意である必要があります。

オフライン・テンプレートの作成方法

オフライン・データベース・オブジェクトをテンプレートから作成できます。

オフライン・データベースのデフォルト・テンプレートを作成するには、次のようにします。

1. 新規オフライン・データベースを作成します。

2. 「オフライン・データベースの作成」ダイアログで、「デフォルト・テンプレートの初期化」を選択します。「OK」をクリックすると、TEMPLATE_objectという名前のデフォルトのテンプレート・オブジェクトとともに、オフライン・データベースが作成されます。テンプレート・データベース・オブジェクトを編集するには、目的のオブジェクトをクリックして「プロパティ」を選択します。これにより、オブジェクトの編集ダイアログが開きます。

新規オフライン・データベースのデフォルト・テンプレートを編集するには、次のようにします。

1. 新規オフライン・データベースを作成する場合、「オフライン・データベースの作成」ダイアログで「デフォルト・テンプレートの編集」を選択します。

2. 「OK」をクリックすると、「デフォルト・テンプレート」ダイアログが開き、オブジェクト・タイプごとにデフォルト・テンプレートを編集できます。詳細を参照するには、「デフォルト・テンプレート」ダイアログ内で[F1]を押すか「ヘルプ」をクリックします。

既存のオフライン・データベースのデフォルト・テンプレートを編集するには、次のようにします。

1. アプリケーション・ナビゲータで、オフライン・データベースを右クリックし、「プロパティ」を選択します。

2. ダイアログの「デフォルト・テンプレート」ページにナビゲートすると、オブジェクト・タイプごとにデフォルト・テンプレートを編集できます。詳細は、「オフライン・データベースの編集」ダイアログ内で[F1]を押すか「ヘルプ」をクリックしてください。

テンプレートからのオフライン・データベース・オブジェクトの作成方法

テンプレートから作成するオフライン・データベース・オブジェクトは、アプリケーション・ナビゲータ内のオフライン・データベース・オブジェクトとして、またはデータベース・ダイアグラムでモデル化されたオフライン・データベース・オブジェクトとして作成できます。

テンプレートに基づいてオフライン・データベース・オブジェクトを作成する前に、テンプレートを最初に作成する必要があります。

テンプレートに基づいてオフライン・データベース・オブジェクトを作成するには、次のようにします。

1. ナビゲータで、プロジェクトまたはプロジェクト内の任意の項目を右クリックして、「新規」を選択し、「新規ギャラリ」を表示します。

2. 「新規ギャラリ」で、「データベース層」を開き、「オフライン・データベース・オブジェクト」を選択します。

3. 「データベース・オブジェクトをテンプレートから」を選択し、「テンプレート・オブジェクトの選択」ダイアログを起動します。詳細を参照するには、「オブジェクトの作成」ダイアログ内で[F1]を押すか「ヘルプ」をクリックします。

4. テンプレートから作成するオブジェクト・タイプを選択します。「OK」をクリックすると、テンプレートの値が事前入力された状態で「オブジェクトの作成」ダイアログが開きます。詳細を参照するには、「オブジェクトの作成」ダイアログ内で[F1]を押すか「ヘルプ」をクリックします。
「OK」をクリックすると、アプリケーション・ナビゲータでオブジェクトが作成され、オフライン・データベースおよびオフライン・スキーマの下にリストされます。

「テンプレート・オブジェクトの選択」ダイアログは、アプリケーション・ナビゲータのオフライン・データベースのポップアップ・メニュー(またはその下の任意のノード)から開くこともできます。

テンプレートに基づいてオフライン・データベース・オブジェクトを簡単に作成するには、次のようにします。

1. アプリケーション・ナビゲータでオフライン・データベース・ノード(またはその下の任意のノード)を右クリックし、「新規データベース・オブジェクト」→「テンプレートから」を選択します。

別のオフライン・データベース・オブジェクトに基づいてオフライン・データベース・オブジェクトを簡単に作成するには、次のようにします。

1. アプリケーション・ナビゲータで、新規オブジェクトのベースとなるオフライン・データベース・オブジェクトを右クリックし、「テンプレートとして使用」を選択します。

2. オブジェクトのタイプに応じた「編集」ダイアログが、ソース・オブジェクトのプロパティが事前入力された状態で開きます。

27.2.1.11 ユーザー・プロパティ・ライブラリの使用

ユーザー定義のプロパティをデータベース・オブジェクトに追加できます。データベース・オブジェクトのインスタンスとして、これらのユーザー定義のプロパティに特定の値を割り当てることができます。

オフライン・データベースに定義に定義可能なプロパティを制限するライブラリを使用できます。たとえば、すべての表に特定のタイプの列を使用する必要がある、特定の値のみが使用可能である、またはプロパティが必須である、などの制限を設定できます。

ユーザー・プロパティ・ライブラリは、オフライン・データベースのコンテキストで定義されます。最初に、使用するオフライン・データベース・オブジェクトのタイプについてユーザー・プロパティを定義する必要があります。これにより、ライブラリが定義されているオフライン・データベースにオフライン・データベース・オブジェクトを作成する際にライブラリを使用できるようになります。

ユーザー・プロパティ・ライブラリには、次に対して定義されたプロパティを含めることができます。

- 表、列、制約、索引

- 関数、パッケージ、プロシージャ

- マテリアライズド・ビュー

- マテリアライズド・ビュー・ログ

- 順序

- シノニム

- 表領域

- トリガー

- タイプ

- ビュー

27.2.1.11.1 ユーザー・プロパティ・ライブラリの作成および編集方法

ユーザー・プロパティ・ライブラリは、オフライン・データベースから独立していますが、オフライン・データベースの編集ダイアログを使用すると、これらに追加できます。

ユーザー・プロパティ・ライブラリを作成または使用するには、次のようにします。

1. アプリケーション・ナビゲータで、プロジェクトを開き、オフライン・データベースを右クリックし、「プロパティ」を選択します。

2. 「オフライン・データベースの編集」ダイアログで、「ユーザー・プロパティ・ライブラリ」を選択します。

3. 次の操作を実行できます。

- 新規ライブラリを作成します。この場合、ライブラリのファイル名および場所を入力します。

- ファイル・システム内に存在するライブラリを追加します。この場合、ファイル・システム上のライブラリの場所まで移動します。

- 既存のライブラリをリストから選択して編集します。

4. 「ユーザー・プロパティ・ライブラリ・ファイルの編集」ダイアログでユーザー・プロパティの値を入力します。詳細を参照するには、ダイアログ内で[F1]を押すか「ヘルプ」をクリックします。

オフライン・データベース・オブジェクト・タイプに対してユーザー・プロパティ・ライブラリを作成した後、これを使用して、オブジェクトのこのインスタンスに固有のユーザー・プロパティ値を格納できます。

データベース・オブジェクトを検証するためにユーザー定義のプロパティ値の検証を実行するには、独自の検証コードを作成します。これは、このユーザー・ガイドの範囲外の拡張手順です。詳細は、『Oracle Fusion Middleware Oracle Extension SDK Java APIリファレンス』のUserPropertyValidationManagerに関する項を参照してください。Extension SDKの使用の詳細は、Oracle Fusion Middleware Oracle JDeveloper Extensions開発者ガイドを参照してください。

27.2.1.11.2 ユーザー・プロパティ・ライブラリの使用方法

データベース・オブジェクトに対してユーザー・プロパティを使用します

オフライン・データベース・オブジェクトでユーザー・プロパティを使用する前に、使用するオフライン・データベースに対して1つ以上のユーザー・プロパティ・ライブラリを定義する必要があります。

オフライン・データベース・オブジェクトでユーザー・プロパティを使用するには、次のようにします。

1. オフライン・データベース・オブジェクトを作成します。

2. オフライン・データベース・オブジェクト・ダイアログの「ユーザー・プロパティ」ページまたはタブにナビゲートし、ユーザー・プロパティの値を入力します。

27.2.1.12 データベースに対するオフライン・データベース・オブジェクトの生成方法

オフライン・データベース・オブジェクトからSQLを生成ウィザードを使用すると、作成または編集したオフライン・オブジェクトを使用してデータベース・スキーマを更新する方法を選択できます。次の操作を実行できます。

- データベースにオブジェクトを作成または置換します。
SQLファイルの生成を選択した場合は、CREATE文とDROP文が含まれます。

- オフライン・データベース・オブジェクトに対して行った変更を使用して、既存のデータベース・スキーマ・オブジェクトを更新します。JDeveloperは、最初にデータベース・スキーマ内のオブジェクトに対するオフライン・データベース定義を調整して、必要な変更を認識します。手動調整を実行して一部の変更のみを選択することを選択できます。
SQLファイルの生成を選択した場合は、ALTER文が含まれます。

データベースに変更内容を生成するか、変更を調整するかのどちらを選択するにかかわらず、次の処理を選択できます。

- 検証するSQLファイルを生成し、後でデータベースに対して実行

- データベースを直接変更

- データベースに変更を加え、同時にSQLファイルを生成

1つ以上のオフライン表を生成して最初にインポートしたデータベース接続に戻す場合、ナビゲータから直接行うこともできます。

注意:

外部キーを含む表を変更した場合は、データベースに変更を反映したときに、外部キーが削除されることがあります。

27.2.1.12.1 調整に関する問題

この項では、調整時に発生する可能性がある問題について説明します。

27.2.1.12.2 制約は変更不可

調整中に制約が作成または削除されることがあり、変更できなくなる場合があります。実行できるALTER TABLE制約は、ADD CONSTRAINT、DROP CONSTRAINT、ADD COLUMN、DROP COLUMNおよびWIDEN COLUMNのみです。

27.2.1.12.3 名前を変更した表は調整不可

インポート中またはオフラインで編集中の場合は、表の名前を変更できます。名前を変更した表をデータベースに戻すように調整すると、データベースには新しい名前の表のレコードが存在しないため、エラー・メッセージを受け取ります。

これを避けるには、データベースに名前を変更した表を作成します。これは調整、置換することはできません。

データベースに対するデータベース定義の生成方法

27.2.1.12.4 ファイルに対するデータベース定義の生成方法

オンライン・データベース・スキーマに対して実行できるCREATE文およびDROP文を含むSQLファイルを作成します。

注意:

外部キーを含む表を変更した場合は、データベースに変更を反映したときに、外部キーが削除されることがあります。

データベースに生成する情報を含むオフライン・データベース定義が1つ以上ある場合は、この方法を使用できます。ただし、1つ以上のオフライン・データベース定義を迅速に生成して、元のデータベース接続に戻す場合は、ナビゲータから行うことができます。

オフライン・データベース表のオフライン・バージョンがあると、JDeveloperではオフライン・データベース表の列を構成する情報が追跡されます。生成SQLスクリプトがSQLセッションで実行される場合や、他のユーザーがデータベースを更新する場合など、データベースがJDeveloper外部で更新されると、JDeveloperはオフライン・データベース表とデータベース内の表とのリンクを追跡できません。これを回避するには、データベースからオフライン・スキーマ・オブジェクトをリフレッシュする必要があります。

ファイルを作成するには、次のようにします。

1. アプリケーション・ナビゲータで、アプリケーションおよびプロジェクトを開きます。

2. オフライン・スキーマを右クリックして、「新規」を選択し、「新規」ギャラリを表示します。

3. 「新規ギャラリ」で、「データベース層」を開き、「オフライン・データベース・オブジェクト」を選択します。

4. 「オフライン・データベース・オブジェクトから生成されたSQL」を選択して、「オフライン・データベース・オブジェクトからSQLを生成」ウィザードを起動します。

5. ページで、生成済のファイルの詳細を指定して、「次へ」をクリックします。

6. 「終了」ページで、「終了」をクリックしてファイルを作成します。

ポップアップ・メニューのショートカットを使用するには、次のようにします。

ナビゲータで、1つ以上のオフライン・データベース定義を右クリックして、「生成」を選択します。または

データベース・ダイアグラムで、モデリングされたデータベース定義を1つ以上選択して右クリックし、「データベースとの同期化」→「生成」を選択します。

27.2.1.13 オフライン・データベース・オブジェクトの名前変更

JDeveloperでは、名前が変更されたオフライン・データベース・オブジェクト(表など)またはサブオブジェクト(列や制約など)を追跡する機能が制限されています。状況によっては、名前が変更されていないデータベース・オブジェクトが削除され、新しい名前を使用して新規データベース・オブジェクトが作成されます。この結果、データの損失に繋がる可能性があります。このような状況の発生を回避するために、このような可能性があることに注意する必要があります。

データベース接続に対してオフライン・データベース・オブジェクトが生成される場合、このような状況が発生する可能性があります。この場合、オフライン・データベース・オブジェクトまたはサブオブジェクト(列や索引など)の名前を変更してから、データベース接続に対して変更済のオフライン・データベース・オブジェクトを生成すると、データベースでは、元の名前のオブジェクトが削除され、新しい名前を使用した新規オブジェクトが作成されます。

データの損失に繋がるもう1つの状況としては、オブジェクトがデータベース接続からインポートされた後に、オフライン・データベース・サブオブジェクトの名前が変更される場合があります。この場合、データベース接続に対する生成を初めて行う際に、データベース・サブオブジェクトが正しく更新されます。ただし、データベース接続に対する2回目の生成を行おうとすると、元の名前のサブオブジェクトが削除され、新しい名前の新規データベース・サブオブジェクトが作成されます。このような結果になるのは、「プロジェクトにコピー」では、オンライン・サブオブジェクトに対する内部参照内の元の名前が使用されるためです。

27.2.1.14 オフライン・データベース・レポートの使用

JDeveloperでは、オフライン・データベースとそのオブジェクトに関する多くのレポートを使用できます。また、オフライン・データベース・オブジェクト用として独自のユーザー定義レポートを作成することもできます。

27.2.1.14.1 オフライン・データベース・レポート

JDeveloperには一連の事前作成レポート定義が用意されていますが、独自のレポート定義を定義することもできます。

事前作成レポートを直接使用してオフライン・データベースに関する情報を提供することも、これらのレポートを変更して特定の要件に合うレポートを作成することもできます。

事前作成レポートを作成した後、レポートに対する問合せを構成するSQLを調べて、必要に応じてこれを変更できます。また、レポートの実行時に呼び出されるレポート問合せにパラメータを設定することもできます。

27.2.1.14.2 事前作成レポートの使用方法

事前作成レポートを使用すると、オフライン・データベースに対する次の問合せを提供する有用なレポートを簡単に入手できます。

- OBJECT_COUNT: オブジェクト・タイプごとにスキーマ・オブジェクトの数をリストします。

- OBJECT_LIST: オフライン・データベースのすべてのスキーマ・オブジェクトをリストします。

- TABLE_COLUMNS: すべての表を列情報とともにリストします。

- TABLE_COLUMN_COUNT: すべての表を列数とともにリストします。

- TABLE_NO_PKS: 主キーが定義されていないすべての表を表示します。

事前作成レポート・ウィザードを実行すると、選択した各事前作成レポートの個別ファイルが指定した場所に生成され、このファイルが「リソース」の下のアプリケーション・ナビゲータにリストされます。

事前作成レポートの1つに対する問合せを調べるには、新規オフライン・データベース・レポート定義を作成し、この基準をこの事前作成レポートに設定します。また、事前作成レポートに基づいて新規レポートを作成することもできます。

注意:

現在プロジェクトの外部にある場所を指定する場合、レポートは生成されますが、これらはアプリケーション・ナビゲータにリストされません。これらのファイルの名前はpre-built-report.reportになり、これらはXMLファイルとして構成されます。

事前定義レポートの使用方法:

1. アプリケーション・ナビゲータで、アプリケーションおよびプロジェクトを開きます。

2. オフライン・データベースを右クリックして、「新規」を選択し、「新規ギャラリ」を表示します。

3. 「新規ギャラリ」で、「データベース層」を開き、「オフライン・データベース・オブジェクト」を選択します。

4. 「事前作成レポート」を選択し、事前作成レポート・ウィザードを起動します。

5. 生成するレポートを選択し、必要に応じて「次へ」をクリックし、レポートを実行するオフライン・データベースを変更します。

6. 「終了」をクリックします。選択したレポートがオフライン・データベース・ノードの下のアプリケーション・ナビゲータにリストされます。

事前定義レポートを編集するには、次のようにします。

1. アプリケーション・ナビゲータで、アプリケーション、プロジェクトおよびオフライン・データベースを開きます。

2. レポートを右クリックして「プロパティ」を選択し、「レポートの編集」ダイアログを開きます。ここで、プロパティを調べて変更できます。

3. 「レポート定義」ページで、レポートの名前を変更します。必要に応じて、他の詳細を変更します。たとえば、レポートを実行するオフライン・データベースを変更できます。

4. レポートのSQL問合せを変更するには、「問合せ定義」ページでSQLを変更するか、「問合せ定義」ノードを開き、SQL問合せを宣言して定義します。「問合せ定義」ページの「構文チェック」ボタンを使用すると、SQL解析を確認できます。

5. 問合せにパラメータを追加するには、「レポート・パラメータ」ページを使用します。

6. レポートが公開される書式を変更するには、「レポートの公開」ページを使用します。

事前作成レポートを実行するには、次のようにします。

- アプリケーション・ナビゲータで、レポートを右クリックし、「実行」を選択します。指定したオフライン・データベースに対してレポートが実行されます。結果は、「レポート・ログ」ウィンドウ(デフォルト)に表示されるか、「レポートの編集」ダイアログの「レポートの公開」ページで選択した場所および書式で表示されます。

27.2.1.14.3 レポート定義の定義方法

独自のレポート定義を定義できます。問合せを最初から定義することも、既存のレポートまたは事前作成レポートの1つを基準として新規レポート定義を定義することもできます。

レポート定義のみを作成するよう指定できます。または、レポート定義の実行時にカンマ区切りのファイルを作成したり、書式設定されたHTML文書を作成するよう指定できます。

HTML文書の生成を選択する場合、必要に応じて、CSSファイルが使用されるよう指定したり、HTML文書の本体を書式設定するデフォルトのボイラープレート・テキストを編集できます。

レポートを作成するには、次のようにします。

1. アプリケーション・ナビゲータで、アプリケーションおよびプロジェクトを開きます。

2. オフライン・データベースを右クリックして、「新規」を選択し、「新規ギャラリ」を表示します。

3. 「新規ギャラリ」で、「データベース層」を開き、「オフライン・データベース・オブジェクト」を選択します。

4. 「レポート」を選択し、レポートの作成ウィザードを起動します。

5. レポートの名前を入力し、レポート詳細を事前作成レポートと既存のレポートのどちらかからコピーするか、または新規レポートを最初から作成するかを選択します。

6. 「オフライン・データベース」ページでレポートを実行するオフライン・データベースを変更します。

7. 「問合せ定義」ページでレポートに対するSQL問合せを作成または調査します。「問合せ定義」ノードの下のページを使用して、SQL問合せを宣言して作成できます。

8. レポートでパラメータを使用するには、これらを「レポート・パラメータ」ページに入力します。

9. 「終了」をクリックします。新規レポートがオフライン・データベース・ノードの下のアプリケーション・ナビゲータにリストされます。

レポートを実行するには、次の手順を実行します。

- アプリケーション・ナビゲータで、レポートを右クリックし、「実行」を選択します。指定したオフライン・データベースに対してレポートが実行されます。結果は、「レポート・ログ」ウィンドウ(デフォルト)に表示されるか、「レポートの編集」ダイアログの「レポートの公開」ページで選択した場所および書式で表示されます。

27.2.1.14.4 HTMLレポートを使用したボイラープレート・テキストの使用方法

JDeveloperには、レポートの書式設定時に役に立つボイラープレート・コードが用意されており、これには3つの新規HTMLタグが含まれます。

- <report/>: レポート出力を定義します。

- <query/>: レポートの生成に使用される問合せのテキストを定義します。

- <rows/>: レポートの行数です。

用意されているボイラープレート・コードは、次のとおりです。

例27-1 ユーザー定義レポートのボイラープレート・コード

<h1>Table Report</h1>
<p>Query used:</p>
<pre><query/></pre>
<p>The report output is:</p>
<report/>
<p>Report complete. <rows/> row(s) returned.</p>

「レポートの作成」または「レポートの編集」ダイアログでこれを編集すると、レポートをカスタマイズできます。

27.2.1.14.5 ユーザー定義レポートの編集方法

定義済レポートのプロパティを変更できます。

- レポートの名前、またはレポートが格納されるディレクトリを変更します。

- 使用するデータベース接続を変更します。

- レポートに対する問合せを定義するためのパラメータを使用します。

- レポートを公開する書式を選択します。

レポートを編集するには:

1. アプリケーション・ナビゲータで、アプリケーション、プロジェクトおよびオフライン・データベースを開きます。

2. レポートを右クリックして「プロパティ」を選択し、「レポートの編集」ダイアログを開きます。ここで、プロパティを調べて変更できます。

27.2.1.15 UMLモデルからの変換

UMLクラス・モデルからのオフライン・データベース・オブジェクト・ウィザードを使用して、UMLクラス・モデルをオフライン・データベース・モデルに変換できます。詳細は、第22.7.1項「UMLとオフライン・データベースの変換方法」を参照してください。

27.2.1.16 ソース・コントロール・システムのオフライン・データベース・オブジェクトの使用

JDeveloperは、チームでの開発のための機能を複数提供します。これには、バージョン・コントロール・ソフトウェア・システムなどがあります。詳細は、第6章「ソース・コントロールを使用したアプリケーションのバージョニング」を参照してください。

オフライン表定義は、ソース・コントロール・システムを使用してバージョン管理および共有できます。JDeveloperには、オフライン表定義を使用するために最適化された比較ツールが用意されています。

- 任意のオフライン・データベース・オブジェクトを比較できます。前のバージョンと比較したり、完全バージョン履歴を取得し、任意の2つのバージョンを比較できます。

- 名前変更およびオブジェクトのアイデンティティを追跡できます。

- 一貫性を確認できます。次はその例です。

- キー内で使用される列が削除されないようにします。

- 存在しない列を使用する制約は追加されません。

- 主キー列はオプションにできません。

注意:

たとえば、列に対する制約の依存性を確認するために、ソース・コントロール・システムを使用してオフライン・データベースのバージョンを比較することのみが可能ですが、オフライン・データベース・オブジェクトからSQLを生成ウィザードを使用して変更をデータベースにコミットする前に変更を手動で調整できます。詳細は、第27.2.1.12項「データベースに対するオフライン・データベース・オブジェクトの生成方法」を参照してください。

27.2.2 データベース・オブジェクトでの作業

データベース・ナビゲータでデータベース接続内のデータベース・オブジェクトを作成できます。

データベース・オブジェクトを作成するには、データベース接続が必要です。また、この接続の作成に使用するユーザー名は、適切な権限(CREATE、DROPなど)を付与されるか、接続作成権限を持つ管理者などのロールを付与されることにより、データベース・オブジェクトを作成するための権限を持つ必要があります。

Oracle Databaseオブジェクトの詳細は、『Oracle Database SQL言語リファレンス』を参照してください。

データベース・ナビゲータでデータベース・オブジェクトを作成するには、次のようにします。

1. 必要な場合は、「表示」→「データベース」→「データベース・ナビゲータ」を選択します。

2. 「IDE接続」または「application」を開き、データベース接続を開きます。

3. 作成するデータベース・オブジェクト・タイプのノードにナビゲートします。右クリックし、ポップアップ・メニューから「新規オブジェクト」を選択します。
または、「ファイル」→「新規」をクリックして、「新規ギャラリ」を開きます。「新規ギャラリ」で、「データベース層」を開き、「データベース・オブジェクト」を選択します。作成するオフライン・データベース・オブジェクト・タイプを選択し、「作成」ダイアログまたはウィザードを起動します。

4. 「オブジェクトの作成」ダイアログを完了します。
詳細を参照するには、「オブジェクトの作成」ダイアログ内で[F1]を押すか「ヘルプ」をクリックします。

データベース・オブジェクトを編集するには、次のようにします。

1. 必要な場合は、「表示」→「データベース」→「データベース・ナビゲータ」を選択します。

2. 「IDE接続」または「application」を開き、次にデータベース接続を開き、編集するノードおよびデータベース・オブジェクトにナビゲートします。

3. 右クリックし、「編集」を選択し、「オブジェクトの編集」ダイアログを開きます。
詳細を参照するには、「オブジェクトの作成」ダイアログ内で[F1]を押すか「ヘルプ」をクリックします。

データベース・オブジェクトを削除するには、次のようにします。

1. 必要な場合は、「表示」→「データベース」→「データベース・ナビゲータ」を選択します。

2. 「IDE接続」または「application」を開き、次にデータベース接続を開き、削除するノードおよびデータベース・オブジェクトにナビゲートします。

3. 右クリックし、「削除」を選択します。

27.2.3 データベース・レポートの使用

JDeveloperでは、データベースとそのオブジェクトに関する多くの事前定義レポートを使用できます。また、独自のユーザー定義データベース・レポートを作成できます。

データベースに最新情報を問い合せるデータベース・レポートは、データベース・レポート・ナビゲータから実行されます。詳細は、第25.3項「データベース・レポート・ナビゲータの使用」を参照してください。

27.3 オフライン・オブジェクトおよびデータベース・オブジェクトからのスクリプトの作成

データベース・オブジェクトおよびオフライン・データベース定義をSQLスクリプトに生成できます。また、表をOracle MetaBase (OMB)スクリプトに生成し、これらをOracle Warehouse Builderにインポートすることもできます。

27.3.1 SQLスクリプトの作成方法

SQLスクリプトは、アプリケーション・ナビゲータのオフライン・データベース定義から、またはデータベース・ナビゲータのデータベース・オブジェクトから作成できます。

アプリケーション・ナビゲータのオフライン・データベース定義から、またはデータベース・ナビゲータのデータベース・オブジェクトからSQLスクリプトを作成するには、次のようにします。

1. 「表示」→「データベース」→「データベース・ナビゲータ」を選択し、データベース接続およびスキーマを開き、スクリプトの作成元のデータベース・オブジェクトを右クリックします。
または

「表示」→「アプリケーション・ナビゲータ」を選択し、スクリプトの作成元のオフライン・データベース定義にナビゲートします。

2. 「SQLスクリプトに生成」を選択します。

3. 「操作の選択」ページで「データベース・オブジェクトからSQLを生成」ダイアログが開きます。詳細を参照するには、ダイアログ内で[F1]を押すか「ヘルプ」をクリックします。

4. ダイアログを完了します。スクリプトが作成され、SQLワークシートに開かれます。

27.3.2 表からのOMBスクリプトの作成方法

アプリケーション・ナビゲータのオフライン表からOracle Warehouse Builder用のOracle MetaBase (OMB)スクリプトとして書式設定されたスクリプトを作成できます。

スクリプトのデフォルト名はomb_scriptn.tclです。このスクリプトは、現在プロジェクトに生成され、ナビゲータで生成元の表と同じオフライン・データベースの下に表示されます。

アプリケーション・ナビゲータで表からOMBスクリプトを作成するには、次のようにします。

1. 「表示」→「アプリケーション・ナビゲータ」を選択し、スクリプトの作成元の1つ以上のオフライン表にナビゲートします。

2. 「OMBスクリプトに生成」を選択します。スクリプトが作成され、ソース・エディタに開かれます。

28 データベースでのJavaの使用

JDeveloperでは、OracleデータベースにアクセスするJavaプログラムの作成および実行を可能にする、次のような機能をサポートしています。

この章では、次の項目について説明します。

- 第28.1項「データベースでのJavaの使用について」

- 第28.2項「SQLJまたはJDBCの選択」

- 第28.3項「Javaを使用したOracleオブジェクトおよびPL/SQLパッケージへのアクセス」

- 第28.4項「Javaストアド・プロシージャの使用」

28.1 データベースでのJavaの使用について

データベースでのJavaの使用には、3つの側面があります。

- SQLJまたはJDBCの使用。両方とも、JavaプログラムにSQLを埋め込むために使用できます。

- Javaプログラムからデータベース・オブジェクトおよびPL/SQLパッケージへのアクセス。

- Javaストアド・プロシージャの使用。これは、データベース内に存在して動作するJavaメソッドです。

28.2 SQLJまたはJDBCの選択

JDeveloperでは、JavaプログラムにSQLを埋め込むメカニズムを2種類サポートしています。

- SQLJ: コンパイル時(静的アプリケーション)に関連するPL/SQL表および列がわかっている場合、SQLJを使用できます。SQLJは、Javaプログラムでプリコンパイル済SQLコードを定義するための業界標準です。
SQLJを使用すると、JavaコードにSQL文を直接埋め込むことによってJDBCより高いレベルでコーディングできます。JDeveloperにはSQLJプリコンパイラが組み込まれており、これによって、SQLがJavaおよびJDBCコードに変換されます。SQLJとJDeveloperを併用すると、JDBCのみを使用するよりも効率よくアプリケーションを作成およびデバッグできます。

- JDBC: データベースのアクセスに関するファイングレイン・コントロールが必要な場合、またはデータベース(またはインスタンス)のメタデータについての正確な情報が必要なアプリケーションを開発する場合は、JDBC APIを使用してアプリケーション全体をJava言語で作成します。

プログラムには、JDBCコールとSQLJ文を組み合せて記述できます。これを実行する方法の1つとして、接続コンテキストの共有があります。

28.2.1 SQLJの使用

SQLJは、Javaプログラムに静的なSQL文を組み込むための標準的な方法です。SQLJアプリケーションは移植性が高く、標準のJDBCドライバを使用して様々なベンダーのデータベースにアクセスできます。

SQLJを使用することにより、Javaを使用して、データベースにアクセスするためのアプリケーションを、クライアント側でも中間層でも開発できます。SQLJを使用した開発は素早く効率的で、JDeveloperではSQLJの開発環境を完全にサポートしています。SQLJファイルは、JDeveloperプロジェクト中に作成または含めることができます。SQLJソース・ファイルが含まれているプロジェクトをコンパイルすると、JDeveloperではSQLJトランスレータまたはプリコンパイラが自動的にコールされます。トランスレータは、完全に標準に準拠したJavaソース・コードを作成し、データベースをサポートするためのJDBCメソッドをコールします。その後JDeveloperが、SQLJトランスレータで生成されたJavaをコンパイルします。

詳細は、『Oracle Database SQLJ開発者ガイド』を参照してください。

28.2.2 Oracle JDBCドライバの使用

JDBCは、Javaプログラムにデータベースへの下位レベル・アクセスを提供します。

Oracle JDBCドライバは、2つの主要カテゴリに分類できます。それぞれの特長は次のとおりです。

- Javaベース・ドライバ(シン・クライアント/Type 4ドライバ)

- Javaで完全に実装

- 高い移植性

- サーバー・システムからWebブラウザへダウンロード可能

- TCP/IPプロトコルを使用して接続可能

- アプレット専用オプション(セキュリティ制限のため)

- OCIベース・ドライバ(Type 2ドライバ)

- ネイティブ・メソッド・ライブラリ(OCI DLL)を使用して実装

- クライアント・システムで使用できるOCIライブラリが必要

- ブラウザへのダウンロード不可

- Net8プロトコルを使用して接続可能

- 高パフォーマンスを実現

次の図は、JDBCコンポーネントとドライバが、アプレットと同じメモリー領域でどのように実行されるかを示しています。

図28-1 JDBCコンポーネント

次の図は、Oracle JDBC OCIドライバが、Javaアプリケーションとは別のメモリー領域でどのように実行されるかを示しています。これらのJDBCドライバが、個別にロードされているファイルに対してOCIコールを行います。

図28-2 Oracle JDBC OCIドライバ

注意:

JDBCとJDBCドライバという用語を混同しないでください。すべてのJavaアプリケーションは、開発方法または実行環境に関係なく、Oracleへの接続にJDBCレベルのドライバを使用します。ただし、純粋なJDBC APIを使用したコーディングは、Oracle Call Interface (OCI)を使用したデータベース・アプリケーションの開発と同様に、低レベルの開発となります。このため、JDBC APIにはOCIと同様に強力な機能が用意されていますが、コーディングを主体としてアプリケーションを開発する必要があります。

28.2.3 SQLJとJDBC

ここでは、SQLJとJDBCの比較について説明します。SQLJを使用すると、JDBCで直接コーディングするよりも便利な点がいくつかあります。

- SQLJプログラムでは、JDBCプログラムと比較してコーディングする量がかなり減少します。プログラムが短くなるため、デバッグも簡単になります。

- SQLJは、コンパイル時にデータベース接続を使用し、コードに対して構文チェックおよびセマンティクス・チェックを行います。

- SQLJは、問合せ結果やその他の戻りパラメータについて詳細なデータ型チェックを行いますが、JDBCの値は、コンパイル時にチェックなしでSQLとやり取りされます。

- SQLJを使用すると、SQL文を簡単に操作できます。個別のメソッドを記述して各入力パラメータをバインドし、問合せリストの項目を1つずつ取得するかわりに、Javaのホスト変数を使用するSQL文を1つ記述します。つまりSQLJでは、バインディング機能までサポートします。

ただし、JDBCはSQL文の実行に関するファイングレイン・コントロールを可能にし、真に動的なSQL機能を提供します。アプリケーションで動的な処理が必要な場合(データベースやインスタンスのメタデータを実行時に検出する場合)は、JDBCを使用してください。

28.2.4 SQLJを使用したJavaプログラムでのSQLの埋込み

SQLJを使用してJavaプログラムにSQLを埋め込むには、多数のタスクを実行する必要があります。

28.2.4.1 SQLファイルの作成方法

新規のSQL (.sql)ファイルを作成し、現在のプロジェクトに追加できます。

SQLファイルを作成するには、次のようにします。

1. アプリケーション・ナビゲータでプロジェクトを選択します。

2. メイン・メニューから、「ファイル」→「新規」を選択して、「新規ギャラリ」を開きます。

3. 「新規ギャラリ」で、「カテゴリ」ツリーから「データベース層」→「データベース・ファイル」を選択します。「項目」リストで「SQLファイル」をダブルクリックします。

4. 「SQLファイルの作成」ダイアログで、新規ファイルの詳細を指定します。
作業中に詳細を参照するには、[F1]を押すか、ダイアログ内から「ヘルプ」をクリックします。

5. 「OK」をクリックします。

現在のプロジェクトに空のSQLファイルが追加され、エディタで開きます。

28.2.4.2 SQLJクラスの作成方法

新規のSQLJ (.sqlj)ファイルを作成し、現在のプロジェクトに追加します。

新しいSQLJファイルを作成するには、次のようにします。

1. ナビゲータでプロジェクトを選択します。

2. メイン・メニューから、「ファイル」→「新規」を選択して、「新規ギャラリ」を開きます。

3. 「カテゴリ」ツリーで「データベース層」を開き、「データベース・ファイル」を選択します。
作業中に詳細を参照するには、[F1]を押すか、ダイアログ内から「ヘルプ」をクリックします。

4. 「項目」リストで、「SQLJクラス」をダブルクリックし、「SQLJクラスの作成」ダイアログを開きます。

5. 「SQLJファイルの作成」ダイアログで、新規ファイルの詳細を指定します。
作業中に詳細を参照するには、[F1]を押すか、ダイアログ内から「ヘルプ」をクリックします。

6. 「OK」をクリックします。

スケルトンSQLJクラスが現在のプロジェクトに追加され、編集画面が開きます。

28.2.4.3 SQLJクラスのコンパイル方法

Java .classファイルにSQLJクラスをコンパイルできます。

SQLJクラスをコンパイルするには、次のようにします。

1. プロジェクトのSQLJトランスレータ・オプションを設定して、ファイルのコンパイル方法を制御します。

2. アプリケーション・ナビゲータで、SQLJクラスを検索して選択します。

3. クラスを右クリックして「メイク」を選択します。

JDeveloperウィンドウ下部のステータス・バーに、コンパイル結果が表示されます。エラーが発生した場合は、ログ・ウィンドウにリスト表示されます。

28.2.4.4 名前付きSQLJ接続コンテキストの使用方法

SQLJの実行可能文では、その句のSQL操作が実行されるデータベース接続を示す接続コンテキスト・オブジェクトを指定できます。SQLJ文で接続コンテキスト句を省略した場合、デフォルトの接続コンテキストが使用されます。

28.2.4.5 SQLJ接続コンテキスト・クラスの宣言方法

接続コンテキストは接続コンテキスト・クラスのオブジェクトの1つで、SQLJの接続宣言を使用して定義します。

コンテキスト・クラスを宣言するには、次のようにします。

1. コンテキスト・クラスを宣言します。
名前付き接続コンテキストは必須ではありません。接続コンテキスト名を省略したSQLJ文では、デフォルトの接続コンテキストが使用されます。

たとえば、この文はコンテキスト・クラスMyConnectionContextを宣言します。

#sql context MyConnectionContext;

コンテキスト・クラスはsqlj.runtime.ref.ConnectionContextImplを拡張し、sqlj.runtime.ConnectionContextを実装します。

コンテキスト・クラスを宣言した後、コンテキスト・オブジェクトを作成します。

28.2.4.6 接続コンテキスト・オブジェクトの作成方法

SQLJ文で使用するためには、まず宣言済接続コンテキストを作成する必要があります。

コンテキスト・オブジェクトを作成するには、次のようにします。

1. 名前付き接続コンテキストは必須ではありません。接続コンテキスト名を省略したSQLJ文では、デフォルトの接続コンテキストが使用されます。
たとえば、この文を使用して、接続コンテキスト・クラスMyConnectionContextのインスタンスthisCtxを作成します。

MyConnectionContext thisCtx = new MyConnectionContext (myPath, myUID, myPasswd, autocommit

28.2.4.7 SQLJクラスのデバッグ方法

SQLJコードのデバッグは、生成されたJavaコードではなく、SQLJソースを直接デバッグします。

SQLJは、他のソース・コードと同じ方法で、JDeveloperでデバッグされます。

詳細は、『Oracle Database SQLJ開発者ガイド』を参照してください。

28.2.4.8 SQLJクラスのデバッグ方法

SQLJコードのデバッグは、生成されたJavaコードではなく、SQLJソースを直接デバッグします。

SQLJは、他のソース・コードと同じ方法で、JDeveloperでデバッグされます。

詳細は、『Oracle Database SQLJ開発者ガイド』を参照してください。

28.2.4.9 SQLJトランスレータ・オプションの設定方法

「プロジェクト・プロパティ」ダイアログのコントロールを使用して、SQLJクラスの変換を制御できます。

- SQLコードの構文チェックおよびセマンティクス・チェックを行います。

- SQL文の構文とデータ型をチェックします。

- コンパイル時にJavaおよびSQL式の互換性をテストします。

- データベース・サーバーへの接続を指定します。

- 接続コンテキストによって指定されたデータベース・スキーマに対して、SQL文のセマンティクスを確認します。

SQLJトランスレータのオプションを設定するには、次のようにします。

1. アプリケーション・ナビゲータで、SQLJファイルが含まれるプロジェクトを選択します。

2. 「アプリケーション」→「プロジェクト・プロパティ」→「コンパイラ」を選択し、「SQLJ」を選択します。

3. SQLJパネルでコンパイル・オプションを設定します。

4. 「OK」をクリックします。

すべてのプロジェクトに対してSQLJトランスレータ・プロパティを設定するには、「アプリケーション」メニューから「デフォルト・プロジェクト・プロパティ」を選択します。

28.2.4.10 SQLJ接続オプションの使用方法

SQLJ接続オプションは、オンライン・チェックの対象となるデータベース接続を指定します。接続オプションの通常の形式は、次のとおりです。

-option@context=value

ここで、optionは、次に示した4つのうちのいずれかです。

contextタグは、それぞれの接続コンテキストに対して個別のスキーマを使用できるようにする接続コンテキスト・タイプです。接続コンテキスト・タイプを省略すると、valueは、デフォルトの接続コンテキストを使用するSQL文に対して使用されます。driverオプションには、contextタグを使用できません。

オプションは次のとおりです。

- user このオプションにはデータベースへ接続するためのユーザー名を指定します。この名前を使用して、SQLJプログラムに埋め込まれたSQL式のセマンティクス解析を行います。これには、ユーザー名が含まれます。次に例を示します。

-user=hr

userコマンドライン・オプションには、接続コンテキスト・タイプを含めることができます。次に例を示します。

-user@Ctx1=hr

データベース・コンテキストCtx1への接続にユーザー名が必要な場合、SQLJは、Ctx1がタグ付けされたuserオプションを使用します。何も見つからない場合、SQLJはメッセージを発行し、かわりに使用するタグ付けされていないユーザー・オプションを検索します。

user値を指定することにより、オンライン・チェックの実行が必要であると指示します。userオプションを指定しない場合は、SQLJはセマンティクス解析のためのデータベース接続を行いません。userオプションにはデフォルト値がありません。

デフォルトで(-user=hrなどを指定して)オンライン・チェックを有効にしている場合に、特定の接続コンテキスト・タイプCtx2に対してオンライン・チェックを行わないようにするには、次のようにユーザー名を明示的に空白にする必要があります。

-user@Ctx2Z

- password このオプションには、ユーザーのパスワードを指定します。パスワードを指定しないと、パスワードの入力が要求されます。このオプションは、接続コンテキスト・タイプをタグ付けできます。2つのフォームの例は、次のとおりです。

-password=hr
-password@Ctx1=hr

- url このオプションには、データベース接続を確立するためのJDBC URLを指定します。デフォルトはjdbc:oracle:oci9:@です。このオプションは、接続コンテキスト・タイプをタグ付けできます。次に例を示します。

-url=jdbc:oracle:oci8:@ -url@Ctx1=jdbc:oracle:thin:@<local_host>:1521:orcl

- driver このオプションには、JDBCドライバのリストを指定します。これらのドライバは、オンライン解析に対するJDBC接続のURLを解釈するために登録します。デフォルトは、oracle.jdbc.driver.OracleDriverです。次に例を示します。

-driver=sun.jdbc.odbc.JdbcOdbcDriver,oracle.jdbc.driver.OracleDriver

このオプションは、接続コンテキスト・タイプをタグ付けできません。

28.2.5 JDBCを使用したJavaプログラムでのSQLの埋込み

JDBCは、Javaプログラムにデータベースへの下位レベル・アクセスを提供します。

詳細は、『Oracle Database SQLJ開発者ガイド』を参照してください。

28.2.5.1 JDBCドライバの選択方法

JDBCは各種ドライバをサポートするドライバ・マネージャを使用するため、複数のデータベース・サーバーへの接続が可能です。データベース・アプリケーションをデータ・サーバーに接続するには、適切なJDBCドライバを有効にしておく必要があります。JDeveloperは、Oracle Thin JDBCドライバおよびOCI JDBCドライバを提供します。Oracle用OCIがデフォルトのドライバです。必要に応じて、デフォルト以外のJDBCドライバをインストールしてください。

アプリケーションまたはアプレットに使用するJDBCドライバを選択する場合は、次のことを考慮してください。

- アプレットを作成する場合には、必ずJDBCシン・ドライバを使用してください。JDBC OCIベースのドライバ・クラスは(C言語の)ネイティブ・メソッドをコールするため、Webブラウザでは機能しません。

注意:

このJDBCシン・ドライバとアプレットとを併用する場合、Javaソケットをサポートしているクライアント・ブラウザを使用してください。

- Oracleクライアント環境用のクライアント・アプリケーションを作成していて、パフォーマンスを最大限にする必要がある場合には、JDBC OCIドライバを選択してください。

- 中間層として動作するOracleサーバーで実行されるコードの場合、サーバー側シン・ドライバを使用してください。

注意:

JDeveloperは、サーバー側シン・ドライバを提供していません。

- コードがターゲットのOracleサーバー内で実行される場合、そのサーバーへのアクセスにはサーバー側の内部JDBCドライバを使用してください。リモート・サーバーには、サーバー側シン・ドライバを使用してアクセスできます。

注意:

JDeveloperは、サーバー側シン・ドライバを提供していません。

- アプリケーションにとってパフォーマンスが重要で、Oracleサーバーのスケーラビリティを最大限に活用する場合、あるいはTAFなどの拡張可用性機能、中間層の認証などの拡張プロキシ機能が必要な場合には、OCIドライバを選択します。

28.2.5.2 デフォルト以外のJDBCドライバを使用するためのプロジェクトの変更方法

JDeveloperのプログラミング環境が、デフォルト以外のJDBCドライバを使用できるよう変更されている場合、次の手順で新規ドライバを使用するよう現在のプロジェクトを変更します。

プロジェクトを変更するには、次のようにします。

1. アプリケーション・ナビゲータでプロジェクトを選択します。

2. 「アプリケーション」→「プロジェクト・プロパティ」→「プロファイル」→「開発」→「ライブラリ」を選択します。

3. 表示されたリストからドライバのライブラリを選択して、「選択済のライブラリ」リストに転送します。ドライバ・ライブラリは、ドライバの登録時に作成されています。

4. 必要に応じて、追加したライブラリが他のドライバ・ライブラリより前に表示されるように、選択済のライブラリのリストを並び替えます。これには次のものがあります。

- Oracle JDBC

- Enterprise Java Beans

必要に応じて、追加したライブラリを選択してリストの先頭にドラッグします。

5. 「OK」をクリックして変更内容を保存し、ダイアログを閉じます。

28.2.5.3 JDBC接続のコーディング方法

純粋なJDBCコードでデータベース接続を作成できます。

ここでは概要を示しますが、詳細は、『Oracle Database JDBC開発者ガイド』のスタート・ガイドに関する項を参照してください。

JDBC接続をコーディングするには、次のようにします。

1. 次の文を使用してJDBCクラスをインポートします。

import java.sql.*;

この文はすべてのJDBCプログラミングで必要です。

2. JDBCドライバを登録します。Oracle JDBCドライバを使用しているときに、静的なOracle.connect()メソッドを使用してデフォルト接続を設定するコンストラクタを使用する場合、Oracle JDBCドライバは自動的に登録されます。
また、Oracle JDBCドライバを使用しているが、Oracle.connect()は使用しない場合、次の文を使用してOracleドライバ・クラスを手動で登録する必要があります。

DriverManager.registerDriver(new oracle.jdbc.OracleDriver());

Oracle JDBCドライバを使用しない場合は、適切なドライバ・クラスを登録する必要があります。

DriverManager.registerDriver(new mydriver.jdbc.driver.MyDriver());

どの場合でも、接続URL、ユーザー名およびパスワードの設定が必要です。

3. 次のように、getConnection()メソッドを使用してデータ・サーバーに接続します。

Connection conn = DriverManager.getConnection(parameters...);

28.3 Javaを使用したOracleオブジェクトおよびPL/SQLパッケージへのアクセス

JavaプログラムからOracleオブジェクトおよびPL/SQLパッケージにアクセスするには、Oracle JPublisherを使用します。Oracle JPublisherでは、Oracleオブジェクト型、参照型およびコレクション型の強い型指定のJavaクラスへのマッピングを指定およびカスタマイズすることが可能です。

JavaプログラムからOracleオブジェクトおよびPL/SQLパッケージにアクセスするには、JPublisherを使用します。JPublisherでは、Oracleオブジェクト型、参照型およびコレクション型の強い型指定のJavaクラスへのマッピングを指定およびカスタマイズすることが可能です。

また、PL/SQLパッケージで宣言されているストアド・プロシージャをSQLJプログラムでコールする場合、JPublisherを使用して、そのパッケージに対するSQLJラッパー・クラスを生成します。SQLJラッパー・クラスにより、作成したSQLJプログラムから直接PL/SQLストアド・プロシージャをコールし、プロシージャと値をやり取りできます。

Javaを使用してOracleオブジェクトおよびPL/SQLパッケージにアクセスするには、次のようにします。

1. データベースに、目的のオブジェクト・データ型(Oracleオブジェクト)とPL/SQLパッケージを作成します。Oracleデータベースで使用するカスタム・クラスやインタフェースではoracle.sql.CustomDatumインタフェースを実装することをお薦めします。

2. JPublisherを使用してソース・コードを生成します。ソース・コードとはOracleオブジェクト、PL/SQLパッケージ、ユーザー定義型、REF型などを表すJavaファイルおよびSQLJファイルを意味します。

3. これらのクラスをアプリケーション・コードにインポートします。

4. 生成したクラスのメソッドを使用して、Oracleオブジェクトとその属性にアクセスして操作します。

5. すべてのクラス(Oracle JPublisherの生成したコードと、各自のコード)をコンパイルします。SQLJコンパイラにより .sqljファイルが、JavaまたはSQLJコンパイラにより .javaファイルがコンパイルされます。

6. Javaアプリケーションを実行します。

このプロセスを次の図に示します。

図28-3 OracleオブジェクトおよびPL/SQLパッケージ

28.3.1 JPublisherの使用方法

Oracle JPublisherにより、使用するJavaプログラムからOracleオブジェクトおよびPL/SQLパッケージにアクセスできるため、生産性が向上します。Oracle JPublisherでは、Oracleオブジェクト型、参照型およびコレクション型(VARRAYまたはネストした表)の強い型指定のJavaクラスへのマッピングを指定およびカスタマイズすることが可能です。

JPublisher

JPublisherにより、使用するJavaプログラムからOracleオブジェクトおよびPL/SQLパッケージにアクセスできるため、生産性が向上します。JPublisherでは、Oracleオブジェクト型、参照型およびコレクション型(VARRAYまたはネストした表)の強い型指定のJavaクラスへのマッピングを指定およびカスタマイズすることが可能です。

PL/SQLパッケージで宣言されているストアド・プロシージャをSQLJプログラムでコールする場合、JPublisherを使用して、そのパッケージに対するSQLJラッパー・クラスを生成します。SQLJラッパー・クラスにより、作成したSQLJプログラムから直接PL/SQLストアド・プロシージャをコールし、プロシージャと値をやり取りできます。

詳細は、『Oracle Database JPublisherユーザーズ・ガイド』を参照してください。

オブジェクト型およびJPublisherについて

JPublisherを使用すると、Java言語アプリケーションでOracleデータベースにおけるユーザー定義のオブジェクト型を使用できるようになります。使用可能なオブジェクトは、ユーザー定義のオブジェクト、VARRAY、ネストした表、索引付き表またはオブジェクト型へのREFです。Java言語アプリケーションでオブジェクト・データにアクセスする場合、Javaの形式でデータを表す必要があります。JPublisherでは、オブジェクト型とJavaクラスとのマッピング、およびオブジェクト属性型とそれに対応するJava型とのマッピングを作成することで、これを容易にしています。

マッピングは、次の両方により決定されます。

- 選択されたJavaマッピング・オプション。

- オブジェクトのデータ型のカテゴリ。

また、JPublisherは、オブジェクトの各属性に対するgetおよびsetアクセッサ・メソッドを生成し、オプションでオブジェクトの各ストアド・プロシージャに対するラッパー・メソッドを生成します。ラッパー・メソッドは、データベースで実行されるストアド・プロシージャをコールするメソッドです。元のオブジェクト・メソッドがstaticの場合でも、JPublisherにより生成されるラッパー・メソッドは常にインスタンス・メソッドになります。

次の表は、JPublisherがオブジェクトに対して生成するJavaクラスの型をまとめたものです。

表28-1 SQL型からJavaクラスへのマッピング

SQL型

Javaクラス・マッピング

ユーザー定義オブジェクト型

オブジェクトの各属性をgetおよびsetするアクセッサ・メソッドと、オブジェクトのストアド・プロシージャをコールするラッパー・メソッド(オプション)を含むJavaクラス

VARRAY

ネストした表

索引付き表

次のものをgetおよびsetできるJavaクラス

- 配列全体

- 配列のサブセット

- 配列の各要素

オブジェクト型へのREF

REFが参照するオブジェクトをgetおよびsetするJavaクラス

JPublisherにより生成されたクラスは、oracle.sql.CustomDatumインタフェースまたはjava.sql.SQLDataインタフェースを実装します。いずれのインタフェースも、データベースとJavaプログラム間でのオブジェクト型インスタンスの転送を可能にします。oracle.sql.CustomDatumインタフェースを使用することをお薦めします。

PL/SQLパッケージおよびJPublisherについて

PL/SQLパッケージ中のストアド・プロシージャを、Javaアプリケーションからコールする場合があります。ストアド・プロシージャは、PL/SQL内で実装することも、PL/SQLに公開されたJavaメソッドにすることもできます。Javaの引数およびメソッドは、ストアド・プロシージャに渡され、返されます。

これを容易にするには、パッケージに各サブプログラムのラッパー・メソッドを含むクラスを作成するよう、JPublisherで指定します。サブプログラムごとに生成されたラッパー・メソッドは、元のメソッドが静的であっても、オブジェクト・メソッドと同様に必ずインスタンス・メソッドとなります。JPublisherにより生成されるラッパー・メソッドは、PL/SQLストアド・プロシージャをJavaコードからコールする、あるいはJavaストアド・プロシージャをクライアントJavaプログラムからコールする簡単な方法を提供します。

JPublisherでは、個々のパッケージを選択、またはスキーマ内の全パッケージを選択する場合はPackagesノードを選択することで、選択したパッケージのJavaラッパーを生成できます。パッケージに属さないサブプログラムを含むPL/SQLコードをコールした場合、JPublisherではパッケージに属さない各サブプログラムに対するラッパー・メソッドを含む単一クラスを生成します。

PL/SQLファンクションでは、Javaを生成する対象のPL/SQLファンクションが1つまたは複数のいずれの場合でも、JPublisherでは1つのクラスを生成します。ファンクションが1つの場合、クラスにはそのファンクションに対する1つのラッパー・メソッドが含まれます。ファンクションが複数の場合、クラスにはファンクションごとに1つのラッパー・メソッドが含まれます。

PL/SQLプロシージャでは、Javaを生成する対象のPL/SQLプロシージャが1つまたは複数のいずれの場合でも、JPublisherでは1つのクラスを生成します。プロシージャが1つの場合、クラスにはそのプロシージャに対する1つのラッパー・メソッドが含まれます。プロシージャが複数の場合、クラスにはプロシージャごとに1つのラッパー・メソッドが含まれます。

Javaマッピング・オプション

データ型のカテゴリに選択するマッピング・オプションにより、オブジェクト型とPL/SQLパッケージをJavaクラスに変換する際にJPublisherで使用する型マッピングのセットが決まります。

- オブジェクト型の場合、JPublisherはオブジェクトの属性と、オブジェクトによって組み込まれるすべてのメソッドの引数と結果に対してマッピングを適用します。マッピングにより、生成されるアクセッサ・メソッドがサポートする型、すなわちgetメソッドにより返される型と、setメソッドにより要求される型が制御されます。

- PL/SQLパッケージの場合、JPublisherは、メソッドの引数と結果に対してマッピングを適用します。

- コレクション型(ネストした表とVARRAY)の場合、JPublisherはコレクションの要素型に対してマッピングを適用します。

- ユーザー定義型(usertypesカテゴリ)の場合、JPublisherではCustomDatumクラスまたはSQLDataクラスを生成し、コレクション型とREF型に対するコードを生成します。

次のマッピング・オプションから選択できます。

- データをPL/SQL形式で表すOracleマッピング

- 単純なデータ型をJavaのプリミティブ・データ型として表すJDBCマッピング

- 単純なデータ型をJavaラッパー・クラスとして表すObject JDBCマッピング

- 共通のクラスを使用してすべての数値型を表すBigDecimalマッピング

詳細は、『Oracle Database JPublisherユーザーズ・ガイド』を参照してください。

ビルトイン型のマッピング(builtintypes)

構文: jpub.builtintypes={jdbc|oracle}

builtintypesパラメータ(およびこれに相当するJPublisherウィザードの「ビルトイン型」)は、LOBおよびBFILE型(lobtypesパラメータで制御)と様々な数値型(numbertypesパラメータで制御)を除く、すべてのビルトイン・データベース型の型マッピングを制御します。次の表に、builtintypesパラメータの影響を受けるデータベース型と、それらのbuiltintypes=oracleおよびbuiltintypes=jdbc(デフォルト)の場合のJava型マッピングを示します。

表28-2 ビルトイン型のマッピング

PL/SQLデータ型

Oracleマッピング・クラス

JDBCマッピング

CHAR

CHARACTER

LONG

STRING

VARCHAR

VARCHAR2

oracle.sql.CHAR

java.lang.String

RAW

LONG RAW

oracle.sql.RAW

byte[ ]

DATE

oracle.sql.DATE

java.sql.Timestamp

LOB型のマッピング

構文: lobtypes={jdbc|oracle}

lobtypesパラメータ(およびそれに相当するJPublisherウィザードの「LOB型」)は、LOB型の型マッピングを制御します。次の表に、これらの型がどのようにlobtypes=oracle(デフォルト)およびlobtypes=jdbcに割り当てられるかを示します。

表28-3 LOB型のマッピング

PL/SQLデータ型

Oracleマッピング・クラス

JDBCマッピング・クラス

CLOB

oracle.sql.CLOB

java.sql.CLOB

BLOB

oracle.sql.BLOB

java.sql.BLOB

BFILE型はマッピングが1つしかないため、この表には出ていません。oracle.sql.BFILEクラスがないため、常にjava.sql.BFILEに割り当てられます。

数値型のマッピング(numbertypes)

構文: jpub.numbertypes={jdbc|objectjdbc|bigdecimal|oracle}

numbertypesパラメータ(およびそれに相当するJPublisherウィザードの数値型)では、数値PL/SQL型の型マッピングを制御します。次の4つから選択できます。

- jdbcマッピングは、大部分の数値データベース型をintやfloatなどのJavaプリミティブ型に、DECIMALおよびNUMBERをjava.math.BigDecimalに割り当てます。

- objectjdbcマッピング(デフォルト)は、大部分の数値データベース型をjava.lang.Integerやjava.lang.FloatなどのJavaラッパー・クラスに、DECIMALおよびNUMBERをjava.math.BigDecimalに割り当てます。

- bigdecimalマッピングは、すべての数値データベース型をjava.math.BigDecimalに割り当てます。oracleマッピングは、すべての数値データベース型をoracle.sql.NUMBERに割り当てます。

- oracleマッピングは、すべての数値データベース型をoracle.sql.NUMBERに割り当てます。

次の表に、numbertypesオプションの影響を受けるPL/SQL型と、それらのnumbertypes=jdbcおよびnumbertypes=objectjdbc (デフォルト)のJava型マッピングを示します。

表28-4 数値型のマッピング

PL/SQLデータ型

JDBCマッピング・クラス

Object JDBCマッピング

BINARY_INTEGER

INT

INTEGER

NATURAL

NATURALN

PLS_INTEGER

POSITIVE

POSITIVEN

SIGNTYPE

int

java.lang.Integer

SMALLINT

short

java.lang.Float

REAL

float

java.lang.Double

ユーザー定義型のマッピング(usertypes)

構文: jpub.usertypes={oracle|jdbc}

usertypesパラメータ(およびそれに相当するJPublisherウィザードの「ユーザー定義型」)は、JPublisherがユーザー定義型に対してCustomDatumクラスとSQLDataクラスのいずれを生成するかを、次のように制御します。

- usertypes=oracle (デフォルト)の場合、JPublisherでは、オブジェクト、コレクションおよびREFの各型に対しCustomDatumクラスを生成します。

usertypes=jdbcの場合、JPublisherでは、オブジェクト型に対しSQLDataクラスを生成します。コレクション型またはREF型に対しては何も生成しません。すべてのコレクション型にはjava.sql.Array、すべてのREF型にはjava.sql.Refを使用してください。

28.3.2 JPublisherによる生成結果

JPublisherは、変換する各オブジェクト型に対してJavaクラスを生成します。各オブジェクト型ごとに、クラス・コードに対してtype.javaファイル(または、ラッパー・メソッドが要求された場合はtype.sqljファイル)が、Java型のREFクラス・コードに対してtypeRef.javaファイルが生成されます。たとえば、PL/SQLオブジェクト型EMPLOYEEを定義した場合、employee.javaファイルおよびemployeeRef.javaファイルが生成されます。

変換するコレクション型(ネストした表またはVARRAY)ごとに、JPublisherでは、type.javaファイルが生成されます。ネストした表の場合、生成されたクラスには、ネストした表を配列全体としてgetおよびsetするメソッドと、表の各要素をgetおよびsetするメソッドが含まれます。JPublisherは、CustomDatumクラスの生成時にはコレクション型を変換しますが、SQLDataクラスの生成時には変換しません。JPublisherは、ネストした表またはVARRAYにはtypeRef.javaファイルを生成しません。PL/SQLではこれらの型に対してREFが生成できないためです。

PL/SQLパッケージの場合、JPublisherはラッパー・メソッドを含むクラスをSQLJファイルとして生成します。またサーバーで実行される関連パッケージ・メソッドをコールするメソッド・ラッパーも、クラスに生成します。これは、「メソッドの組込み」オプションで指定します。

注意:

リリース8.1.6以上では、ストアド・プロシージャをコールするためにJPublisherで生成されるラッパー・メソッドは、SQLJのみです。JPublisherで生成され、ラッパー・メソッドを含むクラスは、SQLJを使用してコンパイルしてください。

28.3.3 プロパティ・ファイル

プロパティ・ファイルは、使用頻度の高いパラメータ、またはJPublisherウィザードでは指定できないパラメータを指定できる、オプションのテキスト・ファイルです。JPublisherのデフォルトの結果のみ必要とする場合は、プロパティ・ファイルは不要なので注意してください。

プロパティ・ファイルはJPublisherウィザードで指定します。

プロパティ・ファイルでは、1行につき1つ(必ず1つのみ)のパラメータおよびそれに関連付けられた値を指定します。各パラメータ名には接頭辞「jpub.」を付ける必要があり、行内で空白文字は使用できません。プロパティ・ファイルでは、propsパラメータ以外の任意のパラメータが使用可能です。JPublisherは、リストの始めから最後まで、パラメータを順に処理します。2回以上パラメータを指定した場合は、最後に出現する値が使用されます。

プロパティ・ファイルに指定するパラメータは、次のとおりです。

jpub.case=lower
jpub.package=package1
jpub.numbertypes=jdbc
jpub.lobtypes=jdbc
jpub.builtintypes=jdbc
jpub.usertypes=jdbc
jpub.omit_schema_names
jpub.methods=true
jpub.input=mySchema.txt
jpub.sql=employee:oracleEmployee

28.3.4 JPublisherで生成されるクラスの強化方法

JPublisherにより生成されたカスタムJavaクラスは、メソッドおよび一時フィールドを追加することで機能を強化できます。次に例を示します。

- クラスを拡張します。すなわち、JPublisherで生成されるクラスをスーパークラスとして扱い、その機能を拡張するサブクラスを記述し、このサブクラスにオブジェクト型を割り当てます。

- JPublisherで生成されるクラスにより提供される機能を生成されたクラスの型に定義されたフィールドに委任する、新規クラスを記述します。

- クラスにメソッドを追加します。今後JPublisherを実行してクラスを再生成する予定がある場合、この処理はお薦めしません。変更後のクラスを再生成すると、その変更(つまり追加したメソッド)は元の状態に上書きされます。JPublisherの処理を他のファイルに出力した場合でも、ファイルに変更を反映する必要があります。

28.3.5 JPublisherで生成されるクラスの拡張方法

JPublisherウィザードの「宣言名」フィールドと「使用名」フィールドにより、生成するクラスを自由に拡張できます。「宣言名」フィールドには、指定したデータベース・オブジェクトからJPublisherで生成するクラスの名前を入力します。「使用名」フィールドには、そのデータベース・オブジェクトを表すためにJavaプログラムで使用するクラスの名前を入力します。

「使用名」と「宣言名」が異なるオブジェクト型を公開する場合、JPublisherによりdeclaration_name.sqljファイルおよびuse_nameRef.javaファイル(use_nameはJavaプログラムでのオブジェクト型)が作成されます。

JPublisherでこの処理を行うには、declaration_nameを拡張するクラスuse_nameが記述されていることが必要です。このクラスを提供しない場合、use_nameRef.javaファイルはコンパイルされません。

たとえば、JPublisherでPL/SQLオブジェクト型ADDRESSからクラスJAddressを生成すると想定します。また、ADDRESSオブジェクトを表すクラス、MyAddressも記述済であるとします。ここではMyAddressは、JAddressにより提供される機能を拡張する、またはJAddressフィールドを持つものです。

この場合は、データベース・ブラウザでADDRESSを選択し、右クリックで「Javaを生成」を選択します。JPublisherウィザードで、「宣言名」フィールドにJAddressを、「使用名」フィールドにMyAddressを入力します。JPublisherによりカスタムJavaクラスJAddressが生成され、ADDRESSオブジェクトが(JAddressクラスではなく) MyAddressクラスに割り当てられます。JAddressではなく、MyAddressに対する参照クラスも生成されます。

JPublisherでは、次のように生成するコードを変更します。

- JAddressRefではなく、MyAddressRefというREFクラスを生成します。

- データベース型がADDRESSの属性を表すために、JAddressクラスではなくMyAddressクラスを使用します。このような状況は、JPublisherにより生成されたクラス、またはユーザーにより記述されたクラスで発生します。

- データベース型がADDRESSのVARRAYおよびネストした表要素を表すために、JAddressクラスではなくMyAddressクラスを使用します。

- データベース型がADDRESSのJavaオブジェクトの作成にCustomDatumFactoryインタフェースを使用する際、JAddressファクトリではなくMyAddressファクトリを使用します。このような状況は、JPublisherにより生成されたクラスと、ユーザーにより記述されたクラスの両方で発生します。

ユーザーが作成するクラス(MyAddress.javaなど)には、次のような機能が必要です。

- 引数を持たないコンストラクタが必要です。適切に初期化したオブジェクトを容易に構築するには、スーパークラスのコンストラクタを明示的にまたは暗黙的に起動します。

- このクラスはCustomDatumインタフェースを実装する必要があります。スーパークラスからtoDatum()メソッドを継承するのが最も簡単な方法です。

- 同じクラスまたは別のクラスにおけるCustomDatumFactoryインタフェースの実装も必要です。たとえば、CustomDatumを実装するクラスEmployee、およびCustomDatumFactoryを実装するクラスEmployeeFactoryなどが考えられます。

28.3.6 JPublisherオプション

JPublisherオプションは、スキーマの次のようなタイプのPL/SQLサブプログラムに対して設定できます。

JPublisherオプションの設定方法

JPublisherオプションは、スキーマの次のようなタイプのPL/SQLサブプログラムに対して設定できます。

- ファンクション

- パッケージ本体

- パッケージ

- プロシージャ

詳細は、『Oracle Database JPublisherユーザーズ・ガイド』を参照してください。

スキーマでPL/SQLサブプログラムにJPublisherオプションを設定するには、次のようにします。

1. Connection Managerでスキーマを参照して、該当するサブプログラム・タイプのノードを選択します。

2. 右クリックし、「Javaを生成」を選択して、JPublisherウィザードを起動します。詳細は、[F1]を押すか、ウィザード内で「ヘルプ」をクリックしてください。

パッケージのクラスおよびメソッドのラッパー・メソッドの生成方法

JPublisherウィザードで「メソッドの組込み」を選択し、JPublisherのmethodsオプションを設定します。

methodsオプションの値により、JPublisherでPL/SQLパッケージのクラスと、パッケージおよびオブジェクト型内のメソッドのラッパー・メソッドを生成するかどうかが決まります。

選択した場合、JPublisherによりPL/SQLのクラスおよびメソッドが生成されます。デフォルトではこの設定です。

選択しない場合、PL/SQLのクラスおよびメソッドは生成されません。

生成された名前からのスキーマ名の省略方法

JPublisherウィザードで「スキーマ名の省略」を選択し、JPublisherのomit_schema_namesオプションを設定します。

omit_schema_namesオプションの値により、JPublisherで生成される特定のオブジェクト型およびPL/SQLラッパーの名前にスキーマ名を含めるかどうかが決まります。JPublisherで生成されるオブジェクト型またはラッパーの名前にスキーマ名が含まれていない場合、JPublisherで生成されたコードを実行する際に、現在の接続に関連付けられているスキーマでその型またはラッパーが参照されます。このため、JPublisherで生成されるクラスは、JPublisher起動時に使用されていた接続以外の接続で使用できます。ただし、この型またはパッケージは、2つのスキーマでの宣言が同一である必要があります。

選択した場合、JPublisherで生成されるすべてのオブジェクト型もしくはラッパー名は、次のいずれかの場合にかぎりスキーマ名で修飾されます。

- JPublisherの接続先以外のスキーマでオブジェクト型またはラッパーを宣言する場合

- プロパティ・ファイルまたはINPUTファイルにおいて、スキーマ名付きでオブジェクト型またはラッパーを宣言する場合

つまり、他のスキーマからのオブジェクト型またはラッパーでは、それを識別するためのスキーマ名が必要ということであり、プロパティ・ファイルまたはINPUTファイルで型またはパッケージにスキーマ名を使用した場合、omit_schema_namesオプションはオーバーライドされます。

選択しない場合、JPublisherで生成されるすべてのオブジェクト型もしくはラッパー名は、スキーマ名で修飾されます。デフォルトではこの設定です。

生成されたクラスのパッケージ名の設定方法

packageオプションは、JPublisherで生成されるJavaパッケージの名前を指定します。パッケージの名前は、各Javaファイルのパッケージ宣言で表示されます。ディレクトリ構造にもパッケージ名が反映されます。sqlオプションの後にINPUTファイルで明示的なパッケージ名を使用すると、packageオプションに指定された値がオーバーライドされます。

パッケージ・オプションを設定するには、次のようにします。

1. JPublisherウィザードで「パッケージ」フィールドに名前を入力し、JPublisherのpackageオプションを設定します。

28.4 Javaストアド・プロシージャの使用

Javaストアド・プロシージャは、データベース内に存在し、データベース内で実行されるJavaメソッドです。ストアド・プロシージャは実行可能な形態でRDBMSに格納され、クライアント・メモリー領域ではなくRDBMSメモリー領域で実行されます。このため、ストアド・プロシージャを使用するとデータベース・アプリケーションのパフォーマンスを改善できます。

JDeveloperを使用して、新規ストアド・プロシージャのメソッドをJavaで作成し、Oracleデータベースにデプロイします。JavaクラスをOracleにデプロイする際、ストアド・プロシージャとしてPL/SQLに公開するメソッドを選択できます。メソッドはパッケージとしてまとめてデプロイすることも、個別にデプロイすることもできます。

詳細は、『Oracle Database JPublisherユーザーズ・ガイド』のJavaストアド・プロシージャの開発に関する項を参照してください。

ストアド・プロシージャは、データベース内に存在し、データベース内で実行されるプログラムです。アプリケーション開発者は、ストアド・プロシージャを使用し、データベース・アプリケーションのパフォーマンスを改善できます。ストアド・プロシージャは1度のみコンパイルされ、実行可能な形態で格納されるため、プロシージャ・コールは高速で効率的です。ストアド・プロシージャはRDBMSメモリー領域で実行されるため、複雑なファンクションはクライアントで実行されるルーチンより高速です。また、ストアド・プロシージャを使用してPL/SQL文をグループ化し、これらを1回のコールで実行できます。こうすることでネットワーク・トラフィックが減少し、ラウンドトリップの応答時間が改善されます。共通のストアド・プロシージャを使用したアプリケーションを設計することで、冗長なコーディングを避け、生産性を向上させることができます。

Javaストアド・プロシージャには、一般的な使用に備えてPL/SQLに公開され、Oracleデータベースに格納されているJava public staticメソッドが含まれています。Javaメソッドを公開するには、Javaメソッド名、パラメータ・タイプおよび戻り型を対応するPL/SQLに割り当てるコール仕様を作成します。これにより、Javaストアド・プロシージャを、PL/SQLストアド・プロシージャと同様にアプリケーションから実行できます。クライアント・アプリケーションからコールされると、Javaストアド・プロシージャは引数を受け取り、Javaクラスを参照してJavaの結果値を戻すことができます。

図28-4 Javaストアド・プロシージャのデプロイ

任意のJavaクラスをOracleデータベースにデプロイし、クラスの準拠しているメソッドをPL/SQLにストアド・プロシージャとして公開できます。これらのJavaストアド・プロシージャは、PL/SQLストアド・プロシージャと同様にアプリケーションから実行できます。Javaストアド・プロシージャを、アプリケーションの、Oracleデータベースにデプロイされた他の(JavaおよびJava以外の)プロシージャへのエントリ・ポイントとして使用できます。

Javaストアド・プロシージャをOracleデータベースにデプロイおよび公開すると、公開用に選択した各メソッドのPL/SQLラッパーとして機能するコール仕様が生成されます。PL/SQLラッパーにより、SQL*Plus、JDBC、またはその他すべてのOracleのアプリケーション環境からストアド・プロシージャにアクセスできます。

Oracleデータベースへの接続を介して、データベース・スキーマにデプロイしたJavaストアド・プロシージャ・パッケージおよびメソッドのコール仕様(PL/SQLラッパー)をインスペクトできます。PL/SQLブロックとして表示されるのは公開済Javaストアド・プロシージャのみで、デプロイの際にPL/SQLに公開されるのはJavaクラス内のpublic staticメソッドのみです。Javaクラスは公開せずにデプロイすることも可能ですが、その場合には「PL/SQL」ノードに表示されません。

Javaストアド・プロシージャは、公開方法に応じて、スキーマの下にある次のノードのいずれかに表示されます。

- Packagesフォルダには、パッケージでデプロイされたJavaストアド・プロシージャのコール仕様が含まれます。

- Functionsフォルダには、(値を返す)ファンクションとしてデプロイされたJavaストアド・プロシージャのコール仕様が含まれます。

- Proceduresフォルダには、(値を返さない)プロシージャとしてデプロイされたJavaストアド・プロシージャのコール仕様が含まれます。

Javaストアド・プロシージャのコール仕様を表示するには、スキーマ階層で該当するノードを見つけてダブルクリックします。

Javaストアド・プロシージャの作成方法

まず、Javaクラス・ファイルでビジネス・アプリケーション・ロジックを開発し、Javaストアド・プロシージャを作成します。ストアド・プロシージャにするメソッドを、public staticとして宣言します。

Javaクラスでのビジネス・ロジックの追加および編集には、JDeveloperのエディタを使用します。Oracleデータベースへのデプロイ中、クラス・ファイルに含まれるすべてのpublic staticメソッドは、ストアド・プロシージャとしてPL/SQLに公開できます。クラス内のPL/SQLに公開するpublic staticメソッドを選択できます。

JDeveloperでJavaストアド・プロシージャを作成する方法はいくつかあります。

- 既存のJavaクラスを使用し、Oracleデータベースにデプロイするクラスのpublic staticメソッドを編集します。既存のクラスには、検証またはデータベース・トリガーに使用するpublic staticメソッドが含まれていることがあります。また、クラス内のメソッドは、いくつかのアプリケーションがローカルで使用している場合があります。これらのメソッドをOracleデータベースにデプロイし、データベースから複数のアプリケーションで使用できます。また、デプロイしたメソッドで、既存のPL/SQLストアド・プロシージャおよびファンクションを補足することもできます。

- ストアド・プロシージャとして公開するよう設計されたメソッドを使用し、新規クラスを作成します。JDeveloperのエディタを使用し、ストアド・プロシージャとして公開するpublic staticメソッドを作成します。業界標準のJavaで作成し、他のアプリケーションのデプロイメント用に元のJavaクラスを使用します。Oracleデータベースでは、このプログラミングで既存のPL/SQLストアド・プロシージャを補足できます。

たとえば、publicクラスGreetingとpublic staticメソッドHello()を使用し、次のJavaパッケージWelcomeを作成します。

package Welcome;
public class Greeting {
public static String Hello() {
return "Hello World!";
}

Oracleデータベースにこのパッケージをデプロイし、Hello()メソッドを公開する場合、ソース・エディタに表示されるパッケージのコール仕様は次のようになります。

PACKAGE WELCOME AS
FUNCTION HELLO RETURN VARCHAR2
AS LANGUAGE JAVA
NAME 'Welcome.Greeting.Hello() return java.lang.String'
END WELCOME;

Javaストアド・プロシージャのデプロイ方法

Javaストアド・プロシージャのデプロイメント・プロファイルを作成し、そのプロファイルの設定を使用して、JDeveloperのクラスと任意のpublic staticメソッド(オプション)をデプロイします。

データベースへのデプロイでは、デプロイメント・プロファイル・ウィザードおよび次の2つのOracleデータベース・ユーティリティで提供される情報を使用します。

- loadjavaにより、ストアド・プロシージャを含むJavaクラスがOracleデータベースにロードされます。

- publishにより、ロードされたpublic staticメソッドのPL/SQLコール仕様ラッパーが生成されます。公開すると、JavaメソッドをPL/SQLファンクションまたはプロシージャとしてコールできます。

JDeveloperでJavaストアド・プロシージャをデプロイするには、次のようにします。

1. 必要に応じて、JDeveloperでデータベース接続を作成します。

2. 必要に応じて、LoadjavaおよびJavaストアド・プロシージャのデプロイメント・プロファイルを作成します。

3. オブジェクトをデプロイします。

LoadjavaおよびJavaストアド・プロシージャのデプロイメント・プロファイルの作成方法

LoadjavaおよびJavaストアド・プロシージャのデプロイメント・プロファイルは、シンプル・アーカイブ・プロファイルに非常に似ています。ただし、プロファイルの選択したコンテンツがコマンドライン・ツールloadjavaを介してOracleデータベースにアップロードされる点や、Javaストアド・プロシージャの場合にはOracleデータベースに汎用として格納される点が異なります。

注意:

この作業を完了する前に、JDeveloperでデータベース接続が構成済であることを確認してください。

JDeveloperでLoadjavaまたはJavaストアド・プロシージャのデプロイメント・プロファイルを作成するには、次のようにします。

1. アプリケーション・ナビゲータで、デプロイメント・プロファイルを作成するプロジェクトを選択します。

2. 「ファイル」→「新規」を選択して「新規ギャラリ」を開きます。

3. 「カテゴリ」ツリーで「データベース層」を開き、「データベース・ファイル」を選択します。「項目」リストで、「LoadjavaおよびJavaストアド・プロシージャ」をダブルクリックします。
カテゴリまたは項目が見つからなければ、正しいプロジェクトが選択されていることを確認して、「フィルタ条件」ドロップダウン・リストの「すべてのテクノロジ」を選択します。

4. 「デプロイメント・プロファイルの作成」ダイアログで、デプロイメント・プロファイルの場所を指定するか、デフォルトを使用します。ファイル拡張子.deployが付いたデプロイメント・プロファイル名が設定されます。

5. 「保存」をクリックし、「LoadjavaおよびJavaストアド・プロシージャ・デプロイメント・プロファイル設定」ダイアログを表示します。各ページの設定を適宜構成し、作業が完了したら「OK」をクリックします。
新しく作成したstoredProc.deployデプロイメント・プロファイルが、ナビゲータ内の指定したプロジェクトの下に表示されます。

6. ナビゲータでstoredProc.deployを選択して右クリックします。使用可能なポップアップ・メニュー・オプションから選択します。

7. (オプション)ストアド・プロシージャ・パッケージの追加を選択する場合は、ストアド・プロシージャとしてロードするメソッドを選択します。SQLからコール可能な各Javaメソッドには、データベースにメソッドの最上位レベルのエントリ・ポイントを公開するコール仕様が必要です。通常、必要なコール仕様は少数です。JDeveloperでは、このページからコール仕様を生成します。

8. メソッドを選択して「設定」をクリックします。
リスト上のメソッドがグレー表示になっている場合は、このメソッドをJavaストアド・プロシージャとしてデプロイするには問題があることを示しています。詳細は、「指定不可の理由」をクリックしてください。

詳細は、『Oracle Database JPublisherユーザーズ・ガイド』のJavaストアド・プロシージャの開発に関する項を参照してください。

9. 必要に応じて「メソッドの設定」を構成します。この設定により、ストアド・プロシージャのカスタマイズに使用されるCREATE PROCEDUREおよびCREATE FUNCTION SQL文の一部をカスタマイズできます。

10. (オプション)右クリックして「SQL文のプレビュー」を選択し、ダイアログを表示します。このダイアログには、ナビゲータで選択した項目のロードに使用するSQL文が表示されます。最上位レベルのプロシージャまたはファンクションの場合は、完全なSQL文が表示されます。パッケージ済プロシージャまたはファンクションの場合は、それに対応するCREATE PACKAGE BODY文の一部を表すSQL文のフラグメントのみが表示されます。

- (オプション)「PL/SQLパッケージの追加」を選択する場合は、作成を開始するPL/SQLパッケージの名前を入力します。

- (オプション)右クリックして「SQL文のプレビュー」を選択し、ダイアログを表示します。このダイアログには、ナビゲータで選択した項目のロードに使用するSQL文が表示されます。最上位レベルのプロシージャまたはファンクションの場合は、完全なSQL文が表示されます。パッケージ済プロシージャまたはファンクションの場合は、それに対応するCREATE PACKAGE BODY文の一部を表すSQL文のフラグメントのみが表示されます。

- プロファイルのデプロイ方法は、「Oracleデータベースへのデプロイ」を参照してください。

Oracleデータベースへのデプロイ方法

必要に応じて、次を実行します。

- JDeveloperでデータベース接続を作成します。

- LoadjavaおよびJavaストアド・プロシージャのデプロイメント・プロファイルを作成します。

注意:

Oracle9i Databaseリリース2 (9.2)以降にデプロイする場合、「アプリケーション」メニューからアクセスできる「プロジェクト・プロパティ」ダイアログでコンパイラのターゲットを1.1または1.2に設定してください。

JDeveloperでLoadjavaおよびJavaストアド・プロシージャをデプロイするには、次のようにします。

1. ナビゲータ内の指定したプロジェクトの下に表示されるstoredProc.deployを右クリックします。

2. ポップアップ・メニューで「配布先」を選択し、既存のデータベース接続を1つ選択します。Javaアプリケーションのソース・ファイルが、選択したデータベースに直接アップロードされます。
または、「接続の作成」を選択し、データベース接続の作成ウィザードを表示します。

3. (オプション)デプロイメント・プロファイルを編集する場合は、ナビゲータ内の指定したプロジェクトの下に表示されているstoredProc.deployを右クリックし、「設定」を選択します。

注意:

ファイルをコンパイル済ファイルとソース・ファイルの両方としてデプロイしていて、「リゾルバ」ページで-resolveまたは-andresolveを選択した場合、デプロイメント・プロファイルはソース・ファイルのみをアップロードします。これは、loadjavaがアップロードされた.javaソース・ファイルを解決する際、.javaソース・ファイルの.classファイルへのコンパイルも行うためです。Loadjavaデプロイメント・プロファイル設定をプレビューすると、ソース・ファイルのみが表示されます。

Javaストアド・プロシージャのコール方法

SQLのCALL文を使用して、Javaストアド・プロシージャをコールできます。

SQLを使用してJavaストアド・プロシージャをコールするには、次のようにします。

1. SQL*PlusでJavaストアド・プロシージャをコールするには、次の構文を使用して対話形式でCALL文を実行します。

CALL [schema_name.][{package_name | object_type_name}][@dblink_name]
{ procedure_name ([param[, param]...])
| function_name ([param[, param]...]) INTO :host_variable};
where param represents this syntax:
{literal | :host_variable}

ホスト変数(ホスト環境で宣言した変数)には、接頭辞としてコロンを付けます。次の例は、同じCALL文の中でホスト変数を2回使用することはできないことと、パラメータを持たないサブプログラムは空のパラメータ・リストを使用してコールする必要があることを示しています。

CALL swap(:x, :x); -- illegal, duplicate host variables

CALL balance() INTO :current_balance; -- () required

JDBCを使用してJavaストアド・プロシージャをコールするには、次のようにします。

1. JDBCからコールするJavaストアド・プロシージャは、CallableStatementオブジェクトにカプセル化されている必要があります。
コール可能文オブジェクトを作成します。

- コール可能文オブジェクトを宣言します。次に例を示します。

private CallableStatement checkIn;

- ストアド・プロシージャのSQLのCALL文への接続に対してprepareCallをコールして、コール可能文オブジェクトを初期化します。次に例を示します。

checkIn = connection.prepareCall(quot;{call NPL.CHECKIN(?, ?, ?)}");

注意:

ストアド・プロシージャ内のパラメータの数は、SQLコール内のプレースホルダの数によって表されます。

2. コール可能文オブジェクトの出力パラメータを登録します。出力パラメータを位置により識別し、その型を宣言するため、それぞれのパラメータに対してregisterOutParameterをコールします。たとえば、2番目のパラメータがSQL INTEGER (Java intにマップ)で、3番目のパラメータがSQL VARCHAR (Java Stringにマップ)の場合、次のようになります。

newCustomer.registerOutParameter(2, Types.INTEGER);
newCustomer.registerOutParameter(3, Types.VARCHAR);

3. コール可能文オブジェクトを実行します。

- 入力パラメータを位置により識別し、値を割り当てるために、setメソッドをコールすることにより、コール可能文オブジェクトの入力パラメータを指定します。たとえば、最初のパラメータがintの入力パラメータの場合、次のようになります。

checkIn.setInt(1, bookID);

- コール可能文オブジェクトを実行します。次に例を示します。

checkIn.execute();

- コール可能文オブジェクトの出力パラメータを実行します。位置により出力パラメータを識別し、それぞれのパラメータに対してgetメソッドをコールします。getメソッドにより、対応するJava型の値が返されます。次に例を示します。

int daysLate = checkIn.getInt(2);
String title = checkIn.getString(3);

SQLJを使用してJavaストアド・プロシージャをコールするには、次のようにします。

1. 入力および入出力変数を宣言し、初期化します。たとえば、最初のパラメータがintの入力パラメータの場合、次のようになります。

int bookID = scanID();

2. 出力変数を宣言します。次に例を示します。

int daysLate; String title;

3. SQLJ文でストアド・プロシージャをコールします。SQLJ文でパラメータを名前で識別し、それぞれのパラメータに:in、:outまたは:inoutを指定します。次に例を示します。

#sql { call NPL.CHECKIN (:in bookID, :out daysLate, :out title)}

戻り値は出力変数および入力変数に割り当てられます。

PL/SQLを使用してJavaストアド・プロシージャをコールするには、次のようにします。

1. ストアド・プロシージャをコールして引数を渡すには、PL/SQL文のトリガー本体の句でCALL文を使用します。
CALL文の引数は、次のいずれかです。

- リテラル値。

- SQL式(バインド変数ではない)

- 相関名で修飾される列参照。

相関名は、列参照の接頭辞です。これらの名前を使用して、参照がトリガーにより処理される行の既存の列値に適用されるか、トリガー・イベントにより供給される値に適用されるかを示します。

- OLDは、トリガー操作の前の列値を表します。

- NEWは、トリガー操作により列に割り当てられる値を表します。トリガー操作が発生する前に、トリガー本体でこの値を再定義することが可能です。

完全なトリガー定義の例を次に示します。

CREATE TRIGGER check_salary
BEFORE UPDATE OF salary ON employee
CALL salaryCheck(:new.job, :old.salary, :new.salary, :old.employee

CREATE TRIGGER check_salary

BEFORE UPDATE OF salary ON employee

CALL salaryCheck(:new.job, :old.salary, :new.salary, :old.employeeID)

Javaストアド・プロシージャのテスト方法

パッケージでデプロイしたストアド・プロシージャは、パッケージ名またはデプロイメント時に設定したストアド・プロシージャ名(あるいはその両方)でアクセスします。パッケージ名は、プロジェクトから付けられたデフォルト名、またはデプロイメント時に入力した別の名前です。ストアド・プロシージャ名は、メソッド名から付けられたデフォルト名、またはデプロイメント時に選択した名前です。ストアド・プロシージャは、パッケージを使用せずにデプロイできます。

たとえば、public staticメソッドhello()がJavaパッケージWelcome内でpublicクラスGreetingにあると仮定します。さらに、それがパッケージOpeningsにデプロイされるとします。

public staticメソッドを実行して結果を返すデプロイ済ストアド・プロシージャに、PL/SQL問合せを実行できます。SQL*PlusをJDeveloperから起動するには、接続を右クリックするか「ツール」メニューから選択します。

データベースへの有効な接続を使用して、SQL*Plusクライアントでは次のことが実行されます。

package Welcome;
public class Greeting {
public static String Hello() {
return "Hello World!";
}
}

public staticメソッドを実行して結果を返すデプロイ済ストアド・プロシージャに、PL/SQL問合せを実行できます。SQL*PlusをJDeveloperから起動するには、接続を右クリックするか「ツール」メニューから選択します。

データベースへの有効な接続を使用して、SQL*Plusクライアントでは次のことが実行されます。

select Openings.Hello() from dual;Openings.Hello()

コードを実行すると次が表示されます。

Hello World!

注意:

ストアド・プロシージャのコール仕様への参照は、package.methodの構文を使用します。メソッドが含まれるクラスの名前はコールの一部ではありません。

(パッケージではなく)個別にデプロイしたストアド・プロシージャは、デプロイメント時に設定したストアド・プロシージャ名でアクセスします。ストアド・プロシージャ名は、メソッド名から付けられたデフォルト名、またはデプロイメント時に選択した名前です。

たとえば、greetingクラスおよびwelcomeパッケージからhelloとしてデプロイしたpublic staticメソッドhello()では、結果を返すデプロイ先のストアド・プロシージャにPL/SQL問合せを実行できます。

このhello()メソッドを、パッケージではなく個別にデプロイしたと想定します。

データベースへの有効な接続を使用して、SQL*Plusクライアントでは次のことが実行されます。

select Openings.Hello() from dual;

Openings.Hello()

実行済のコードが表示されます。

Hello World!

28.4.1 Javaストアド・プロシージャのデバッグ方法

データベース接続を介してJavaストアド・プロシージャをデバッグします。

PL/SQLをデバッグするには、次のようにします。

1. 「表示」→「データベース」→「データベース・ナビゲータ」を選択します。

2. 「IDE接続」またはアプリケーションを展開し、データベース接続を選択します。

3. スキーマを開き、オブジェクト・タイプ(たとえば、「パッケージ」)の名前を持つノードを検索して開きます。

4. ノードで、PL/SQLプログラムを右クリックして「デバッグ」を選択します。

5. 「PL/SQLのデバッグ」ウィンドウが表示されます。ターゲットとパラメータを選択し、「OK」をクリックします。

6. プログラムがデバッグされます。ステータス・ウィンドウで、進捗状況と情報を確認します。

詳細は、「PL/SQLプログラムおよびJavaストアド・プロシージャのデバッグ」を参照してください。

28.4.2 Javaストアド・プロシージャの削除方法

ストアド・プロシージャを削除するには、次のようにします。

1. 「表示」→「データベース」→「データベース・ナビゲータ」を選択します。

2. 「IDE接続」またはアプリケーションを展開し、データベース接続を選択します。

3. 接続を開き、スキーマを選択します。

4. スキーマを開き、削除するオブジェクトを探します。Javaストアド・プロシージャは、公開方法に応じて、次のノードのいずれかに表示されます。

- Packagesフォルダには、パッケージでデプロイされたJavaストアド・プロシージャのコール仕様が含まれます。

- Functionsフォルダには、(値を返す)ファンクションとしてデプロイされたJavaストアド・プロシージャのコール仕様が含まれます。

- Proceduresフォルダには、(値を返さない)プロシージャとしてデプロイされたJavaストアド・プロシージャのコール仕様が含まれます。

5. オブジェクトを選択し、右クリックしてポップアップ・メニューを表示し、「削除」を選択します。

29 PL/SQLおよびJavaストアド・プロシージャの実行とデバッグ

JDeveloperを使用して、新規ストアド・プロシージャのメソッドをJavaで作成し、データベースにデプロイする方法について説明します。

この章では、次の項目について説明します。

- 第29.1項「PL/SQLおよびJavaストアド・プロシージャの実行とデバッグについて」

- 第29.2項「ファンクション、プロシージャおよびパッケージの実行とデバッグ」

- 第29.3項「PL/SQLプログラムおよびJavaストアド・プロシージャのデバッグ」

29.1 PL/SQLおよびJavaストアド・プロシージャの実行とデバッグについて

Javaストアド・プロシージャは、データベース内に存在し、データベース内で実行されるJavaメソッドです。ストアド・プロシージャは実行可能な形態でRDBMSに格納され、クライアント・メモリー領域ではなくRDBMSメモリー領域で実行されます。このため、ストアド・プロシージャを使用するとデータベース・アプリケーションのパフォーマンスを改善できます。

Javaクラスをデータベースにデプロイする際、ストアド・プロシージャとしてPL/SQLに公開するメソッドを選択できます。メソッドはパッケージとしてまとめてデプロイすることも、個別にデプロイすることもできます。

29.2 ファンクション、プロシージャおよびパッケージの実行とデバッグ

JDeveloperでは、PL/SQLプログラム・ユニットを実行およびデバッグできます。たとえば、ファンクションから渡されるパラメータや戻り値を指定して、実行内容をより厳密に制御し、テスト対象の詳細を出力できます。

注意:

Oracleデータベース内のプロシージャまたはファンクションは、スタンドアロンの場合とパッケージ化されている場合があります。

ファンクション、プロシージャおよびパッケージを実行またはデバッグするには、次のようにします。

1. 「表示」→「データベース」→「データベース・ナビゲータ」を選択します。

2. 「IDE接続」またはアプリケーションを展開し、データベース接続を選択します。

3. スキーマを開き、デバッグ対象に応じて、該当するノード(「プロシージャ」、「ファンクション」または「パッケージ本体」)を開きます。

- (デバッグ時のみのオプション)デバッグ対象のオブジェクトのノードを右クリックし、ポップアップ・メニューから「デバッグ用にコンパイル」を選択します。これにより、INTERPRETEDモードのPL/SQLプログラムがコンパイルされます。

- (デバッグ時のみのオプション)デバッグ対象のファンクション、プロシージャまたはパッケージを選択し、ダブルクリックしてエディタで開きます。

- (デバッグ時のみのオプション)マージンの左側をクリックしてPL/SQLコード内にブレークポイントを設定します。

注意:

ブレークポイントは、実行可能なコード行に設定する必要があります。デバッガが停止しない場合は、ブレークポイントが実行可能なコード行に設定されていない可能性があります(ブレークポイントが検証済であることを確認してください)。

4. エディタまたはナビゲータ内のプロシージャが選択されていることを確認します。

5. 「デバッグ」をクリックするか、デバッグせずに実行する場合は「実行」をクリックします。

6. 「PL/SQLの実行」ダイアログが表示されます。

1. デバッグするプロシージャまたはファンクションの名前である「ターゲット」を選択します。ターゲットを変更すると、「パラメータ」および「PL/SQLブロック」ボックスの内容が動的に変化することがわかります。

注意:

ターゲットを選択できるのは、複数のプログラム・ユニットを含むパッケージを実行またはデバッグするように選択した場合のみです。

2. 「パラメータ」ボックスに、ターゲットの引数が表示されます(適用可能な場合)。

3. 「PL/SQLブロック」ボックスに、選択したターゲットに対してJDeveloperで生成されたカスタム・コードが表示されます。ファンクションまたはプロシージャの内容によっては、プロシージャ、ファンクションまたはパッケージに渡されるように、NULL値を妥当な値に置き換える操作が必要になることがあります。引数として渡される値を初期化するために追加コードの記述が必要なこともあります。この場合は、PL/SQLブロックのテキストを必要に応じて編集できます。

7. 「OK」をクリックしてターゲットを実行またはデバッグします。

8. 「ログ」ウィンドウに表示される出力情報を分析します。ファンクションの場合、戻り値が表示されます。DBMS_OUTPUTメッセージも表示されます。

29.3 PL/SQLプログラムおよびJavaストアド・プロシージャのデバッグ

JDeveloperデバッガでは、Javaプログラムをデバッグするのみでなく、Oracleデータベース内のPL/SQLプログラムおよびJavaストアド・プロシージャもデバッグできます。

29.3.1 PL/SQLオブジェクトのデバッグ

JDeveloperでは、PL/SQLとJavaストアド・プロシージャのデバッグをどちらも1つのIDEツールでサポートしています。PL/SQLをデバッグする場合は、デバッグ対象のソース・コードがOracleデータベースに格納されている必要があります。Javaストアド・プロシージャの場合は、ソース・コードをJDeveloperプロジェクト内に置き、コンパイル後のコードをデータベースにデプロイする必要があります。

また、デバッグ・アクションの開始方法は、ローカル・デバッグとリモート・デバッグのどちらを実行するかに応じて異なります。PL/SQLをデバッグする場合、開始方法の違いは次のとおりです。

- ローカル・デバッグ - JDeveloperでは、自動的にデバッグ対象のプログラム(デバッグ・プロセス)が起動され、そのプログラムにデバッガがアタッチされます。

- リモート・デバッグ - SQL*PlusなどのOracleクライアント、OCIプログラムであるDbms_Jobまたはトリガー起動を使用して、デバッグ対象のプログラムを手動で起動する必要があります。その後、データベース・デバッグ・プロセスからJDeveloperデバッガへの接続を確立します。デバッグ対象プロセスが開始し、JDeveloperのデバッガがプロセスにアタッチされた後は、リモート・デバッグとローカル・デバッグの動作はよく似ています。

PL/SQLおよびJavaストアド・プロシージャのデバッグ情報は、「スマート・データ」、「データ」、「監視式」、「インスペクタ」、「スタック」および「クラス」など、各種のJDeveloperデバッガ・ウィンドウに表示されます。

「スレッド」ウィンドウ、「ヒープ」ウィンドウおよび「モニター」ウィンドウは、PL/SQLコードのデバッグ時には利用できません。

PL/SQLのデバッグ時に、mytable(i*10)のような表要素へのアクセスなど、条件ブレークポイントのみでなく、ユーザーは「監視式」および「インスペクタ」ウィンドウでPL/SQL式を使用できます。この機能には、ファンクション、プロシージャ、パッケージおよびパッケージ本体で宣言される表が含まれます。

29.3.1.1 JDeveloperでデバッグできるPL/SQLオブジェクト

PL/SQLをコールするPL/SQLプログラム、Javaストアド・プロシージャをコールするPL/SQL (Oracle9iリリース2以降のデータベース)、トリガーを起動するSQL文を発行するPL/SQLプログラムをデバッグできます。

次のオブジェクトからPL/SQLのデバッグを開始できます。

- スタンドアロン・プロシージャ

- スタンドアロン・ファンクション

- パッケージ済プロシージャ

- パッケージ済ファンクション

他のPL/SQLオブジェクトも、前提条件を満たしており、前述のいずれかから起動されるPL/SQLオブジェクトであれば、すべてトレースできます。詳細は、第29.3.3項「PL/SQLおよびJavaストアド・プロシージャのデバッグの前提条件」を参照してください。

29.3.1.2 注意事項

トリガー、Javaストアド・プロシージャおよびOracleオブジェクト型のデバッグ時の考慮事項は、次のとおりです。

- この種のオブジェクトのデバッグは開始できませんが、この種のオブジェクトのトレースは実行できます。たとえば、トリガーのデバッグは開始できませんが、レコードを追加するプロシージャはデバッグできます。トリガーをデバッグするには、トリガーにブレークポイントを設定してから、トリガーを起動させるプロシージャをデバッグします。デバッガは、設定したブレークポイントで停止します。

- Javaストアド・プロシージャのデバッグとステップ実行がサポートされているのは、Oracle9iリリース2以降のデータベースです。これらのプロシージャをJDeveloperプロジェクトに含めることと、ソースにOracleデータベース内でのデプロイ内容との一貫性があることが必要です。Javaストアド・プロシージャをデバッグするには、その中にブレークポイントを設定してから、Javaストアド・プロシージャをコールするPL/SQLをデバッグします。また、PL/SQLをデバッグしてJavaストアド・プロシージャをステップ実行することも可能です。

29.3.1.3 サポートされているOracleデータベース内のデバッグ情報の外観

デバッガは、データベースのJPDA (Java Platform Debugger Architecture)実装を使用します。JPDAはJavaデバッグの業界標準であり、データベースのJPDA実装によりJavaとPL/SQLをシームレスにデバッグできます。

注意事項

- デバッグ動作を構成する場合(リモート・デバッグのため、またはクラスの対象リストおよび対象外リストの設定のため)、「アプリケーション」→「プロジェクト・プロパティ - 実行/デバッグ/プロファイル」ページでプロジェクトのデバッガ設定にアクセスするにはアクティブなアプリケーションおよびプロジェクトが必要です。

- 次のコマンドを使用して、デバッグ・セッションをデバッガに接続します。

DBMS_DEBUG_JDWP.CONNECT_TCP( <host_name>, <port> )

ローカル・デバッグの場合は、このコマンドがJDeveloperにより発行されます。リモート・デバッグの場合は、このコマンドをデバッグ対象のPL/SQLのコールに使用するのと同じセッションで発行する必要があります。

- 「監視式」ウィンドウに式を入力するときに、v_valueやV_Valueのように、大/小文字を区別せずにローカル変数を入力できます。パッケージ変数にも大/小文字区別はありませんが、変数名の前の接頭辞には、次のように大/小文字区別があります。

$Oracle.Package.SCOTT.MY_PACKAGE.g_var

「監視式」ウィンドウにパッケージ変数を追加する最も簡単な方法は、「データ」ウィンドウから変数をドラッグ・アンド・ドロップするか、「クラス」ウィンドウからパッケージをドラッグ・アンド・ドロップすることです。

29.3.2 データベース・デバッガ・ポートの指定方法

データベース接続を介してPL/SQLをデバッグする場合など、データベース・デバッガの実行中は、ランダムに割り当てられたポートが使用されます。このため、ファイアウォールに問題が発生することがあります。この問題を回避するために、特定のポートが確実に使用されるようにide.propertiesファイルを編集できます。

ポートを指定するには、次のようにします。

1. 必要な場合はJDeveloperを閉じます。

2. テキスト・エディタで、jdev_install/jdeveloper/jdev/system/oracle.jdeveloper.release_number/ide.propertiesを開きます。

3. 次のように入力します。

DatabaseDebuggerPortOverride=port_number

port_numberは、デバッグで使用するポート番号です。

4. ide.propertiesを保存します。JDeveloperを再起動すると、指定したポートが使用されます。

29.3.3 PL/SQLおよびJavaストアド・プロシージャのデバッグの前提条件

JDeveloperでPL/SQLとJavaストアド・プロシージャをデバッグできます。

詳細は、次の該当する項を参照してください。

29.3.3.1 PL/SQLおよびJavaストアド・プロシージャのデバッグの前提条件

PL/SQLのデバッグを実行する前に、次の前提条件が満たされていることを確認してください。

- データベース・ユーザー・アカウントに次の権限が付与されていること。
DEBUG ANY PROCEDURE

DEBUG CONNECT SESSION

- PL/SQLコードはINTERPRETEDモードでコンパイルする必要があります。NATIVEモードでコンパイルされたPL/SQLコードはデバッグできません。このモードは、データベースのinit.oraファイル内で設定します。このファイルの詳細は、Oracle Databaseのマニュアルを参照してください。

- アクティブなアプリケーションおよびプロジェクトがない場合、デバッガでは、「アプリケーション」メニューからアクセスできる「デフォルト・プロジェクト・プロパティ」ダイアログで定義されているプロパティが使用されます。ただし、PL/SQLのデバッグ時に使用するアプリケーションおよびプロジェクトを作成することをお薦めします。「実行構成の編集」ダイアログの「起動設定」ページ(「アプリケーション」メニューからアクセスできる「プロジェクト・プロパティ」ダイアログの「実行/デバッグ/プロファイル」ページの「編集」ボタン)で、「デフォルトの前にアクティブなファイルを実行する」チェック・ボックスが選択されている(デフォルト設定)ことを確認する必要があります。これにより、デバッガに対して、デバッグの開始時にアクティブなファイルを実行するように(ナビゲータで選択したPL/SQLプロシージャを実行したり、エディタでアクティブなファイルを開くなど)指示します。

- PL/SQLオブジェクトは、DEBUGオプションを有効化した状態でコンパイルする必要があります。次の方法から1つ選択して、このタスクを実行します。

- 「プリファレンス」ダイアログ(「ツール」メニューからアクセス可能)の「データベース接続」ページで、「PL/SQLのデバッグ情報を生成」が選択されていることを確認し、デバッグ対象のオブジェクトを作成または再コンパイルします。

- SQL*Plusで、ALTER SESSION SET PLSQL_DEBUG = trueを実行し、デバッグ対象のオブジェクトを作成または再コンパイルします。

- SQL*Plusで、ALTER <procedure, function, package> <name> COMPILE DEBUG;を実行します。

29.3.3.2 Javaストアド・プロシージャのデバッグの前提条件

Javaストアド・プロシージャのデバッグを実行する前に、次の前提条件が満たされていることを確認してください。

- Javaコードをデータベースにデプロイし、デバッグ情報を使用してコンパイルする必要があります。JDeveloperから、「プロジェクト・プロパティ」ダイアログ(「アプリケーション」メニューからアクセス可能)の「コンパイラ」ページで、「デバッグ情報を含める」チェック・ボックスが選択されていることを確認し、Javaストアド・プロシージャをデプロイします。

- Javaストアド・プロシージャをステップ実行するには、JavaソースがJDeveloperプロジェクト内で使用可能であることと、データベースへのデプロイ内容と一貫していることが必要です。

29.3.4 PL/SQLプログラムのローカル・デバッグ方法

PL/SQLプログラムをローカルでデバッグする場合は、デバッグを開始するためのコールをJDeveloperから直接行います。JDeveloperでは、デバッグ対象のプログラム(デバッグ・プロセス)が自動的に起動され、そのプログラムにデバッガがアタッチされます。

前述の前提条件が完了していることを確認してください。

JDeveloperでPL/SQLプログラムをローカルでデバッグするには、次のようにします。

1. 「表示」→「データベース」→「データベース・ナビゲータ」を選択します。

2. 「IDE接続」またはアプリケーションを展開し、データベース接続を選択します。

3. スキーマを開き、デバッグ対象に応じて、該当するノード(「プロシージャ」、「ファンクション」または「パッケージ本体」)を開きます。

4. デバッグ対象のプロシージャ、ファンクションまたはパッケージを選択し、ダブルクリックしてエディタで開きます。

5. マージンをクリックしてPL/SQLコード内にブレークポイントを設定します。

注意:

ブレークポイントは、実行可能なコード行に設定する必要があります。デバッガが停止しない場合は、ブレークポイントが実行可能なコード行に設定されていない可能性があります(ブレークポイントが検証済であることを確認してください)。また、デバッグ中のPL/SQLの前提条件が満たされていることを確認してください。特に、PL/SQLプログラムがINTERPRETEDモードでコンパイル済であることを確認します。

6. デバッグ対象のPL/SQLプログラム・ユニットがナビゲータで選択されていることを確認します。

7. 「デバッグ」ツールバー・ボタンをクリックします。

8. JDeveloperは最初のブレークポイントで実行を停止し(「プロジェクト・プロパティ」ダイアログの「デバッグの開始オプション」で設定している場合)、デバッガ・ウィンドウに状態を表示します。

9. JDeveloperのデバッガ・ウィンドウに表示されるデバッグ情報を確認します。詳細は、第19.6項「デバッガについて」を参照してください。

10. PL/SQLプログラムのデバッグを再開し、問題がなくなるまで実行します。

29.3.5 PL/SQLプログラムのリモート・デバッグ方法

PL/SQLプログラムのリモート・デバッグとローカル・デバッグの主な違いは、デバッグ・セッションの開始方法です。リモート・デバッグの場合は、SQL*PlusなどのOracleクライアント、OCIプログラムであるDbms_Jobまたはトリガー起動を使用して、デバッグ対象のプログラムを手動で起動する必要があります。その後、デバッグ対象のデータベース・プログラムからJDeveloperデバッガへの接続を確立します。デバッグ対象プロセスが開始し、JDeveloperのデバッガがプロセスにアタッチされた後は、リモート・デバッグとローカル・デバッグの動作はよく似ています。

デバッガは、Oracle DatabaseでPL/SQLプログラムおよびJavaストアド・プロシージャとともに使用できます。

第29.3.3項「PL/SQLおよびJavaストアド・プロシージャのデバッグの前提条件」にリストされている前提条件が完了していることを確認してください。

JDeveloperを使用してPL/SQLプログラムをリモートでデバッグするには、次のようにします。

1. データベース接続を作成していない場合は、データベース接続を作成します。

2. プロジェクトが作成されていない場合は、プロジェクトを作成します。

3. アプリケーション・ナビゲータで、プロジェクトを右クリックし、「プロジェクト・プロパティ」を選択します。

4. 「実行/デバッグ/プロファイル」を選択します。

5. 既存の実行構成を選択するか、新規の構成を作成して、「編集」をクリックします。

6. 「実行構成の編集」ダイアログで、PL/SQLを選択し、データベース接続を選択します。

7. 「ツール設定」 - 「デバッガ」 - 「リモート」を選択し、リモート・デバッグ設定を設定します。

8. データベース・ナビゲータで、接続を右クリックし、「リモート・デバッグ」を選択します。

9. データベース・ナビゲータで、「データベース」ノードを開き、デバッグ対象のプロシージャ、ファンクションまたはパッケージにナビゲートし、ダブルクリックしてソース・エディタで開きます。

10. ソース・エディタで、マージンをクリックしてPL/SQLコード内にブレークポイントを設定します。

11. アプリケーション・ナビゲータで、プロジェクトを右クリックし、「デバッグ」を選択します。

12. 表示されるダイアログで、適切なリスニング・ポート番号を入力して「OK」をクリックします。他のプロセスで使用されていない有効なポート番号であれば、どの番号でも選択できます。たとえば、使用ポート番号は4000です。

注意:

次回にこのポートでデバッグする際に、このダイアログをバイパスする場合は、このダイアログの「パラメータを保存」チェック・ボックスを選択します。

「Run Manager」ウィンドウにが表示されます。これは、デバッガがデバッグ接続をリスニングしていることを示します。

13. SQL*PlusなどのOracleクライアントを使用して、デバッガ接続コマンドを発行します。使用するクライアントの種類にかかわらず、デバッガ接続コマンドを発行するセッションは、ブレーク・ポイントが含まれるPL/SQLプログラムを実行するセッションと同じにします。
たとえば、SQL*Plusを使用している場合は、次のコマンドを発行して、JDWPセッション用に指定したマシンおよびポートへのTCP/IP接続をオープンします。

EXEC DBMS_DEBUG_JDWP.CONNECT_TCP( '123.456.789.012', '4000' )

123.456.789.012はJDeveloperを実行中のIPアドレスまたはホスト名で、4000はデバッガがリスニング中のポート番号です。

これ以降は、ブレークポイントを含むPL/SQLコードをコールすると、JDeveloperデバッガがアクティブ化されます。

14. デバッガがデバッグ接続を受け入れると、「Run Manager」の「プロセス」フォルダに新規のデバッグ・プロセスが反映されます。また、「ログ」ウィンドウに次のようなメッセージが表示されます。

Debugger accepted connection from remote process on port 4000.

さらに、JDeveloperのレイアウトが「設計」レイアウトから「デバッグ」レイアウト(ウィンドウの右下)に切り替わったことがわかります。「スタック」、「データ」および「監視式」などのデバッグ・ウィンドウも表示可能になっています。

「Run Manager」のアイコンは、ポートがリスニングを継続中で、複数のデバッグ接続を受入れ可能であることを示します。

15. Oracleクライアントに戻り、ブレークポイントを含むPL/SQLプログラム・ユニットを起動するコマンドを発行します。たとえば、SQL*Plusでは次のようなコマンドを発行します。

EXEC FOO;

FOOはPL/SQLプロシージャ名です。

16. JDeveloperは最初のブレークポイントで実行を停止し(「アプリケーション」メニューからアクセス可能な「プロジェクト・プロパティ」ダイアログの「デバッグの開始オプション」で設定している場合)、デバッガ・ウィンドウに状態を表示します。詳細は、第19.6.5項「デバッガ開始オプションの設定方法」を参照してください。

17. 問題がなくなるまでPL/SQLプロシージャをステップ実行してデバッグを再開します。詳細は、第19.6項「デバッガについて」を参照してください。

18. デバッグの終了後に、切断コマンドを使用してデバッグ・プロセスを切断します。たとえば、SQL*Plusから次のように入力します。

EXEC DBMS_DEBUG_JDWP.DISCONNECT;

次のメッセージが表示されます。

Debugger disconnected from remote process.

19. リスニング・ポートを終了するには、「Run Manager」で「実行」アイコンを右クリックして「リスニングの停止」を選択します。

29.3.6 デバッガで許容される有効なPL/SQL式の使用

PL/SQLのデバッグ時に、「監視式」ウィンドウ、「インスペクタ」ウィンドウ、ブレークポイント条件およびブレークポイント・ログ式にPL/SQL式を使用できます。

デバッガでは、次の表のような受入可能で有効なPL/SQL式を使用できます。

表29-1 デバッガで使用可能なPL/SQL式

PL/SQL式

例

単純変数名

counter

フィールド・アクセス

myrecord.Dept_No

表要素

mytable(3)

比較演算

myrecord.Dept_No = 100

mytable(3) > 7

counter IS NULL

counter IS NOT NULL

employee.salary BETWEEN 25000 AND 50000

算術演算

counter * size

x + y + z

論理演算

employee.exempt AND employee.active

employee.exempt OR employee.active

パッケージ変数名

$Oracle.Package.HR.MyPackage.MyVariable

完全修飾パッケージ名

$Oracle.Package.HR

パッケージ本体変数名

$Oracle.PackageBody.HR.MyPackage.MyVariable

完全修飾パッケージ本体名

$Oracle.PackageBody.HR

Copyright © 2011, 2013, Oracle and/or its affiliates. All rights reserved.