Oracle® Fusion Middleware

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

12c (12.1.2)

E48018-02(原本部品番号:E23012-02)

2013年9月

JDeveloper IDEの使用方法を記述し、IDEで使用できる機能の詳細を説明する、Oracle JDeveloperユーザー向けのドキュメントです。

Oracle Fusion Middleware Oracle Jdeveloperによるアプリケーションの開発、12c (12.1.2)

E48018-02

Copyright © 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、Madhubala Ponnekanti

このソフトウェアおよび関連ドキュメントの使用と開示は、ライセンス契約の制約条件に従うものとし、知的財産に関する法律により保護されています。ライセンス契約で明示的に許諾されている場合もしくは法律によって認められている場合を除き、形式、手段に関係なく、いかなる部分も使用、複写、複製、翻訳、放送、修正、ライセンス供与、送信、配布、発表、実行、公開または表示することはできません。このソフトウェアのリバース・エンジニアリング、逆アセンブル、逆コンパイルは互換性のために法律によって規定されている場合を除き、禁止されています。

ここに記載された情報は予告なしに変更される場合があります。また、誤りが無いことの保証はいたしかねます。誤りを見つけた場合は、オラクル社までご連絡ください。

このソフトウェアまたは関連ドキュメントが、米国政府機関もしくは米国政府機関に代わってこのソフトウェアまたは関連ドキュメントをライセンスされた者に提供される場合は、次のNoticeが適用されます。

U.S. GOVERNMENT END USERS: Oracle programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, delivered to U.S. Government end users are "commercial computer software" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations. As such, use, duplication, disclosure, modification, and adaptation of the programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, shall be subject to license terms and license restrictions applicable to the programs. No other rights are granted to the U.S. Government.

このソフトウェアまたはハードウェアは様々な情報管理アプリケーションでの一般的な使用のために開発されたものです。このソフトウェアまたはハードウェアは、危険が伴うアプリケーション(人的傷害を発生させる可能性があるアプリケーションを含む)への用途を目的として開発されていません。このソフトウェアまたはハードウェアを危険が伴うアプリケーションで使用する際、このソフトウェアまたはハードウェアを安全に使用するために、適切な安全装置、バックアップ、冗長性(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の登録商標です。

このソフトウェアまたはハードウェアおよびドキュメントは、第三者のコンテンツ、製品、サービスへのアクセス、あるいはそれらに関する情報を提供することがあります。オラクル社およびその関連会社は、第三者のコンテンツ、製品、サービスに関して一切の責任を負わず、いかなる保証もいたしません。オラクル社およびその関連会社は、第三者のコンテンツ、製品、サービスへのアクセスまたは使用によって損失、費用、あるいは損害が発生しても、一切の責任を負いかねます。

目次

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

はじめに

- 対象読者

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

- 関連ドキュメント

- 表記規則

このガイドで説明する新機能

- 12c (12.1.2)での新機能と変更された機能

第I部 Oracle JDeveloperのスタート・ガイド

1 Oracle JDeveloperの概要

- 1.1 Oracle JDeveloperについて

- 1.2 Oracle JDeveloperの情報リソース

- 1.3 Oracle JDeveloper 12cへの移行

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.4.1 閉じているウィンドウを開く

- 3.4.4.2 開いているウィンドウを閉じる

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

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

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

- 3.5.1.1 初期設定キーボード・スキーマのロード

- 3.5.1.2 JDeveloperのコマンドおよび割当て済キーボード・ショートカットの表示

- 3.5.1.3 コマンド用キーボード・ショートカットの再定義

- 3.5.1.4 キーボード・スキーマのインポートとエクスポート

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

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

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

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

- 3.6 IDEのカスタマイズ

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

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

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

- 3.6.4 「コンポーネント」ウィンドウのカスタマイズ方法

- 3.6.4.1 「コンポーネント」ウィンドウにページを追加する方法

- 3.6.4.2 「コンポーネント」ウィンドウにJavaBeansコンポーネントを追加する方法

- 3.6.4.3 「コンポーネント」ウィンドウからページを削除する方法

- 3.6.4.4 「コンポーネント」ウィンドウからコンポーネントを削除する方法

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

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

- 3.7 「リソース」ウィンドウの操作

- 3.7.1 IDE接続の操作

- 3.7.2 「リソース」ウィンドウの検索方法

- 3.7.3 「リソース」ウィンドウのコンテンツのフィルタリング

- 3.7.4 カタログと接続のインポートとエクスポート

- 3.7.5 「リソース」ウィンドウのカタログの操作

- 3.7.5.1 カタログの作成

- 3.7.5.2 カタログの名前変更

- 3.7.6 カタログ・フォルダの操作

- 3.7.6.1 フォルダの作成方法

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

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

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

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

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

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

- 3.8.2.1 ソース・エディタのインデント・サイズの設定方法

- 3.8.2.2 ソース・エディタのフォントの設定方法

- 3.8.2.3 ソース・エディタのカレット動作の設定方法

- 3.8.2.4 ソース・エディタの表示オプションの設定方法

- 3.8.2.5 ソース・エディタの行の左余白の処理を設定する方法

- 3.8.2.6 ソース・エディタの構文ハイライト表示オプションの設定方法

- 3.8.2.7 ソース・エディタのブックマーク・オプションの設定方法

- 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 「コンポーネント」ウィンドウからソース・ファイルにコード・スニペットを挿入する方法

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

- 3.8.8.5 タスクの作成方法

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

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

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

- 3.8.11.1 開いているソース・ファイルで置換テキストを検索する方法

- 3.8.11.2 1つのテキスト文字列を検索する方法

- 3.8.11.3 プロジェクトまたはアプリケーション内のすべてのファイルを検索する方法

- 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への外部ツールの追加

- 3.12.1 JDeveloperでサポートされている外部プログラムを確認する方法

- 3.12.2 JDeveloperから外部プログラムへのアクセスを追加する方法

- 3.12.3 外部プログラムの外観を変更する方法

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

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

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

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

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

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

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

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

- 4.3.2 新規メニューを使用してプロジェクトに項目を簡単に追加する方法

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

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

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

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

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

- 4.3.5 プロジェクトでのフォルダとJavaパッケージの管理

- 4.3.5.1 フォルダまたはJavaパッケージの作成方法

- 4.3.5.2 フォルダまたはJavaパッケージの削除方法

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

- 4.3.6.1 オブジェクトをワーキング・セットにグループ化する方法

- 4.3.6.2 ファイル・フィルタとディレクトリ・フィルタを定義してワーキング・セットを作成する方法

- 4.3.6.3 「ログ」ウィンドウの検索結果からワーキング・セットを作成する方法

- 4.3.6.4 現在のワーキング・セットを特定する方法

- 4.3.6.5 アクティブ・ワーキング・セットを変更する方法

- 4.3.6.6 ワーキング・セットのファイルおよびプロジェクトを編集する方法

- 4.3.6.7 「アプリケーション」ウィンドウにすべてのファイルを表示する方法

- 4.3.6.8 ワーキング・セットを実行およびデバッグする方法

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

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

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

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

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

- 4.3.11.1 個々のプロジェクトの現在の出力パスを表示または変更する方法

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

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

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

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

- 4.3.12 ライブラリの管理方法

- 4.3.12.1 プロジェクト内の現在のライブラリを表示する方法

- 4.3.12.2 既存のライブラリをプロジェクトに追加する方法

- 4.3.12.3 新規ライブラリを作成し、新規プロジェクトに追加する方法

- 4.3.12.4 プロジェクト内の既存のライブラリを編集する方法

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

5 モデリングを使用するアプリケーション開発

- 5.1 ダイアグラムを使用したモデル化について

- 5.2 ダイアグラム・タイプについて

- 5.2.1 UMLダイアグラム

- 5.2.2 ビジネス・サービスおよびサポート・データベース構造図

- 5.3 ダイアグラムの作成、使用および管理

- 5.3.1 基本的なダイアグラム作成コマンドの使用

- 5.3.1.1 新しいダイアグラムの作成方法

- 5.3.1.2 ダイアグラムの名前変更方法

- 5.3.1.3 ダイアグラムをイメージとして公開する方法

- 5.3.1.4 別のダイアグラムに要素をコピーする方法

- 5.3.1.5 印刷用のページの設定方法

- 5.3.1.6 印刷するダイアグラム上の領域を設定する方法

- 5.3.1.7 ダイアグラム印刷領域をクリアする方法

- 5.3.1.8 印刷前にページをプレビューする方法

- 5.3.1.9 ダイアグラムのズーム・インおよびズーム・アウトの方法

- 5.3.1.10 ダイアグラムを元のサイズで表示する方法

- 5.3.1.11 ダイアグラムを全体表示する方法

- 5.3.1.12 選択した要素を最大サイズで表示する方法

- 5.3.1.13 ダイアグラムの削除方法

- 5.3.2 ダイアグラム要素の使用

- 5.3.2.1 ダイアグラムから要素を見つける方法

- 5.3.2.2 ダイアグラムから特定の要素を選択する方法

- 5.3.2.3 ダイアグラムからすべての要素を選択する方法

- 5.3.2.4 同じタイプの要素をすべて選択する方法

- 5.3.2.5 選択した要素グループから要素の選択を解除する方法

- 5.3.2.6 要素をグループ化する方法

- 5.3.2.7 グループ化された要素の管理方法

- 5.3.2.8 「プロパティ」ダイアログを使用してダイアグラム要素のプロパティを変更する方法

- 5.3.2.9 「プロパティ」ウィンドウを使用して要素プロパティを変更する方法

- 5.3.2.10 要素の色またはフォントの変更方法

- 5.3.2.11 新しいダイアグラム要素のビジュアル・プロパティの変更方法

- 5.3.2.12 別の要素にビジュアル・プロパティをコピーして貼り付ける方法

- 5.3.2.13 ダイアグラム上の要素をサイズ変更する方法

- 5.3.2.14 ダイアグラム要素の移動方法

- 5.3.2.15 ダイアグラム上で直前の操作を取り消す方法

- 5.3.3 ダイアグラムのルック・アンド・フィールのカスタマイズ

- 5.3.3.1 階層ダイアグラム・レイアウトの使用

- 5.3.3.2 対称ダイアグラム・レイアウトの使用

- 5.3.3.3 直交ダイアグラム・レイアウトの使用

- 5.3.3.4 グリッド・ダイアグラム・レイアウトの使用

- 5.3.3.5 ダイアグラム要素のレイアウト方法

- 5.3.3.6 グリッドを使用したダイアグラムのレイアウト方法

- 5.3.3.7 ダイアグラム要素の配置方法

- 5.3.3.8 ダイアグラム要素の位置合せ方法

- 5.3.3.9 ダイアグラム上の端を非表示にする方法

- 5.3.3.10 ダイアグラム上の非表示の端を表示する方法

- 5.3.3.11 ダイアグラム上の非表示のすべての端を表示する方法

- 5.3.3.12 「構造」ウィンドウに非表示の端をすべて表示する方法

- 5.3.3.13 関連クラスをダイアグラムに表示する方法

- 5.3.3.14 ダイアグラム上に端を配置する方法

- 5.3.3.15 ダイアグラム上の交差スタイルを変更する方法

- 5.3.4 ダイアグラム・ノードの操作

- 5.3.4.1 ダイアグラム上にノードを作成する方法

- 5.3.4.2 ダイアグラム要素上に内部ノードを作成する方法

- 5.3.4.3 ダイアグラム上でのノードの表示方法の変更

- 5.3.4.4 ダイアグラム上でノードのサイズを最適化する方法

- 5.3.5 ダイアグラムへの注釈の追加

- 5.3.5.1 ダイアグラムにノートを追加する方法

- 5.3.5.2 ダイアグラムの要素にノートを添付する方法

- 5.3.5.3 ノート上のフォントを変更する方法

- 5.3.6 データベース、クラスおよびインタフェースの変換

- 5.3.6.1 クラスまたはインタフェースの変換方法

- 5.3.6.2 UMLとオフライン・データベースの変換方法

- 5.3.7 ダイアグラムのローカル保存

- 5.4 ダイアグラムから独立したUML要素の作成

- 5.4.1 ダイアグラムから独立したUML要素の作成方法

- 5.5 UMLのインポートとエクスポート

- 5.5.1 XMIを使用してUMLモデルをインポートおよびエクスポートする方法

- 5.5.2 インポート時の一般的なエラー・メッセージ

- 5.5.3 UMLプロファイルの使用

- 5.5.3.1 カスタム・プロファイルの追加方法

- 5.5.3.2 UMLパッケージにプロファイルを適用する方法

- 5.5.3.3 UML変換用のデータベース・プロファイルの使用

- 5.5.4 UMLプロファイル図

- 5.5.5 MOFモデル・ライブラリの作成

- 5.6 UMLクラス図によるモデリング

- 5.6.1 クラス図の理解

- 5.6.2 クラス図機能の操作

- 5.6.2.1 ネストされたクラスとネストされたインタフェースの追加方法

- 5.6.2.2 属性と操作の追加方法

- 5.6.2.3 属性と操作を非表示にする方法

- 5.6.2.4 汎化、実現、およびアソシエーションの追加方法

- 5.6.2.5 Javaクラス、インタフェースおよび列挙の作成方法

- 5.6.2.6 内部Javaクラスおよび内部Javaインタフェースのモデリング

- 5.6.2.7 Javaクラス図でのコンポジットのモデリング

- 5.6.2.8 Javaクラス図での継承のモデリング

- 5.6.2.9 モデリングされたJavaクラスの拡張

- 5.6.2.10 モデリングされたJavaインタフェースの実装

- 5.6.2.11 Javaフィールドとメソッドのモデリング

- 5.6.2.12 クラス図のリファクタ方法

- 5.7 EJB/JPAコンポーネントのモデリング

- 5.7.1 EJB/JPAモデル化機能の操作

- 5.7.1.1 EJB/JPA関連のモデリング方法

- 5.7.1.2 Bean間の参照の使用

- 5.7.1.3 モデル化されたBeanでのプロパティの作成方法

- 5.7.1.4 モデル化されたBeanでのメソッドの作成方法

- 5.7.1.5 クロス・コンポーネント参照のモデル化の方法

- 5.7.1.6 モデル化されたBeanの実装クラスの表示方法

- 5.7.1.7 モデル化されたBeanのソース・コードの表示方法

- 5.7.1.8 プロパティまたはメソッドのアクセス・レベルの変更方法

- 5.7.1.9 ダイアグラムでのJPAエンティティのリバース・エンジニアリングの方法

- 5.8 データベース・ダイアグラムによるモデリング

- 5.8.1 データベース・モデル化機能の操作

- 5.8.1.1 データベース・ダイアグラムの作成方法

- 5.8.1.2 オフライン・データベース・オブジェクトの作成方法

- 5.8.1.3 外部キーの作成方法

- 5.8.1.4 結合オブジェクトの作成方法

- 5.8.1.5 マテリアライズド・ビューを作成および追加する方法

- 5.8.1.6 プライベート・シノニムとパブリック・シノニムを追加および作成する方法

- 5.8.1.7 基本リレーションの使用方法を定義する方法

- 5.8.1.8 シーケンスを追加および作成する方法

- 5.8.1.9 テンプレートに基づいてシーケンスを作成する方法

- 5.8.1.10 テンプレートに基づいてシノニムを作成する方法

- 5.8.1.11 表を追加および作成する方法

- 5.8.1.12 テンプレートからデータベース表を作成する方法

- 5.8.1.13 データベース・ビューの作成方法とデータベース・オブジェクトの追加方法

- 5.8.1.14 テンプレートからデータベース・ビューを作成する方法

- 5.8.1.15 データベースまたはスキーマの変更方法

- 5.9 アクティビティ図によるモデリング

- 5.9.1 アクティビティ図機能の操作

- 5.9.1.1 アクティビティ図の作成方法

- 5.9.1.2 初期ノードと終了ノードの作成方法

- 5.9.1.3 パーティションの表示方法

- 5.10 シーケンス図によるモデリング

- 5.10.1 シーケンス図機能の操作

- 5.10.1.1 シーケンス図を追加および作成する方法

- 5.10.1.2 シーケンス・トレーサの開始方法

- 5.10.1.3 相互作用に要素を自動レイアウトする方法

- 5.10.1.4 ライフラインと分類子の追加方法

- 5.10.1.5 同期メッセージの操作方法

- 5.10.1.6 作成メッセージの追加方法

- 5.10.1.7 停止または破棄メッセージの追加方法

- 5.10.1.8 戻りメッセージの追加方法

- 5.10.1.9 非同期メッセージの追加方法

- 5.10.1.10 シーケンス図の結合フラグメント・ロックの使用方法

- 5.10.1.11 結合フラグメントの使用

- 5.11 ユースケース図によるモデリング

- 5.11.1 ユースケース図機能の操作

- 5.11.1.1 ユースケース図の要素の詳細な確認

- 5.11.1.2 サブジェクトをユースケース図に追加する方法

- 5.11.1.3 アクターとユースケースの作成方法

- 5.11.1.4 アクターとユースケース間の相互関係を表現する方法

- 5.11.1.5 ユースケースとサブジェクト間の関係を表現する方法

- 5.11.1.6 ユースケース・テンプレートのソース・コードを編集する方法

- 5.11.1.7 ユースケース・テンプレートのテキストの外観を変更する方法

- 5.11.1.8 HTMLインタフェース・オブジェクト、コード・オブジェクトおよび開発入力を挿入する方法

- 5.11.1.9 ユースケース・コンポーネント・テンプレートの作成方法

- 5.12 UML要素のローカル保存

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

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

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

- 6.3 ソース・コントロールの設定と構成

- 6.3.1 SubversionとJDeveloperの設定方法

- 6.3.1.1 Subversionクライアント・ソフトウェアのインストール

- 6.3.1.2 Subversionクライアントのインストールの確認

- 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.8 作業用コピーからのSubversion管理ファイルのエクスポート

- 6.3.1.9 Subversionナビゲータからのファイルのエクスポート

- 6.3.2 Gitリポジトリの設定方法と構成方法

- 6.3.3 CVSとOracle JDeveloperの設定方法

- 6.3.3.1 JDeveloperと使用するためのCVSの構成

- 6.3.3.2 CVS接続の作成

- 6.3.3.3 CVS接続の編集

- 6.3.3.4 CVSモジュールのエクスポート

- 6.3.3.5 クリップボードへのCVSROOTパスのコピー

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

- 6.3.4.1 文字セットの選択(ローカル・クライアントのみ)

- 6.3.5 PerforceとJDeveloperの設定方法

- 6.3.5.1 JDeveloperと使用するPerforceコンポーネントのインストール

- 6.3.5.2 Perforceと使用するためのJDeveloperの構成

- 6.3.5.3 Perforceのバージョン・システムとしての選択

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

- 6.3.7 Team SystemとJDeveloperの設定方法

- 6.3.7.1 JDeveloperと使用するためのTeam Systemの設定

- 6.3.7.2 Team Systemと使用するためのJDeveloperの構成

- 6.3.7.3 バージョニング・システムとしてのTeam Systemの選択

- 6.3.7.4 JDeveloperと使用するためのTeam Systemワークスペースの設定

- 6.3.7.5 ワークスペース・ファイルのためのJDeveloperプロジェクトの作成

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

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

- 6.4 ソース・リポジトリの設定と構成

- 6.4.1 ソース・リポジトリの作成方法

- 6.4.1.1 Subversionリポジトリの作成

- 6.4.1.2 新しいGitリポジトリの初期化

- 6.4.1.3 既存のGitリポジトリのローカル・コピーの作成

- 6.4.1.4 既存のGitリポジトリへの新規ファイルの追加

- 6.4.1.5 ローカルCVSリポジトリの作成

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

- 6.4.1.7 Perforceの管理下へのファイルの移動

- 6.4.1.8 ClearCaseへのファイルの追加

- 6.4.2 ソース・コントロール・リポジトリへの接続方法

- 6.4.2.1 Subversionリポジトリの内容の表示

- 6.4.2.2 CVSへのログイン

- 6.4.2.3 CVSでのローカル・ファイルへのアクセス

- 6.4.2.4 Perforceへの接続

- 6.4.2.5 Perforceへの複数接続の作成

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

- 6.4.3 ソース・リポジトリ用にJDeveloperを構成する方法

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

- 6.4.3.2 SSH (Secure Shell)、CVSおよびJDeveloperの構成

- 6.4.3.3 CVSでのファイルの編集および監視

- 6.4.4 リポジトリをコンテンツとともにロードする方法

- 6.4.4.1 SubversionへのJDeveloperファイルのインポート

- 6.4.4.2 Subversionへのファイルの自動追加

- 6.4.4.3 Subversionへのファイルの個別追加

- 6.4.4.4 Gitのリモート・リポジトリからのファイルの移動

- 6.4.4.5 PerforceへのJDeveloperファイルのインポート

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

- 6.4.5 WebDAV接続の作成方法

- 6.4.5.1 WebDAVサーバーの要件

- 6.4.5.2 WebDAV接続の作成

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

- 6.4.5.4 WebDAV接続の変更

- 6.4.5.5 WebDAV接続のリフレッシュ

- 6.4.5.6 WebDAV接続の削除方法

- 6.5 ソース・コントロールのファイルの操作

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

- 6.5.1.1 Subversionリポジトリからのファイルのチェックアウト

- 6.5.1.2 Gitでのファイルのチェックアウト

- 6.5.1.3 CVSモジュールのチェックアウト

- 6.5.1.4 Perforceでのファイルの編集

- 6.5.2 Subversionでファイルを更新する方法

- 6.5.2.1 Subversionリポジトリからのファイルの更新

- 6.5.2.2 Subversionリポジトリの個々のファイルの更新

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

- 6.5.2.4 CVS内のファイルの使用

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

- 6.5.2.6 CVSでのファイルの追加と削除

- 6.5.3 Gitでの新規ファイルおよび変更されたファイルの操作方法

- 6.5.3.1 Gitリポジトリへの単一のファイルの追加

- 6.5.3.2 Gitリポジトリへの複数のファイルの追加

- 6.5.3.3 Gitリポジトリへの変更のコミット

- 6.5.3.4 Gitリポジトリへの複数のファイルのコミット

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

- 6.5.4.1 ローカル・ファイルとPerforce内の管理バージョンとの同期

- 6.5.4.2 Perforceナビゲータとのファイルの同期

- 6.5.4.3 Perforceワークスペースによるファイルのフィルタリング

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

- 6.5.4.5 Perforceからのファイルの削除

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

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

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

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

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

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

- 6.5.10.1 Subversion内のファイルのロックおよびロック解除

- 6.5.10.2 CVS内のファイルのロックおよびロック解除

- 6.5.10.3 Perforceでのファイルの編集

- 6.5.10.4 Team Systemのファイルのチェックアウト

- 6.5.10.5 Team Systemのファイルのステータスの表示

- 6.5.10.6 Team Systemのファイルのステータスのリフレッシュ

- 6.5.11 変更されたファイルのチェックイン方法

- 6.5.11.1 Subversionリポジトリへのファイルのコミット

- 6.5.11.2 Gitリポジトリへの変更のコミット

- 6.5.11.3 CVSへの変更のコミット

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

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

- 6.5.11.6 Team Systemへのファイルのチェックイン方法

- 6.5.12 変更セットと変更リストの使用方法

- 6.5.12.1 Subversionでの変更セットの使用

- 6.5.12.2 Perforce変更リストの作成

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

- 6.5.12.4 Perforce変更リストへのファイルの追加

- 6.5.12.5 Perforce変更リストの発行

- 6.5.12.6 Perforce変更リスト・ブラウザの使用

- 6.5.13 チェックイン用のコメント・テンプレートの使用方法

- 6.5.13.1 テンプレートの作成

- 6.5.13.2 テンプレートの共有

- 6.5.13.3 チェックイン時のテンプレートの選択と使用

- 6.5.13.4 Team Systemファイルのシェルブとアンシェルブ

- 6.5.13.5 Team Systemファイルの削除

- 6.6 ブランチおよびタグの操作

- 6.6.1 ブランチの作成方法

- 6.6.1.1 Subversionでのブランチおよびタグの操作

- 6.6.1.2 Gitでの新しいブランチの作成

- 6.6.1.3 CVSでの新しいブランチの作成

- 6.6.2 ブランチの使用方法

- 6.6.2.1 Gitでのブランチのチェックアウト

- 6.6.2.2 Gitでのブランチのマージ

- 6.6.2.3 CVSでのブランチの使用

- 6.6.3 タグの作成方法

- 6.6.3.1 Gitでのタグの作成

- 6.6.3.2 CVSタグの作成と割当て

- 6.6.3.3 CVSタグの削除

- 6.6.4 タグの使用方法

- 6.6.4.1 Gitでのタグの使用

- 6.6.4.2 CVSでのタグの使用

- 6.6.5 Subversionでのプロパティの使用方法

- 6.6.5.1 Subversionプロパティの使用

- 6.6.5.2 ファイルとプロパティのステータスの表示

- 6.6.5.3 Subversionでのプロパティ競合の解決

- 6.7 ファイルの履歴、ステータスおよびリビジョンの操作

- 6.7.1 ファイル履歴

- 6.7.1.1 Subversionファイルの履歴の表示

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

- 6.7.2 リビジョンの使用方法

- 6.7.2.1 Subversionベース・リビジョンへのファイルの置換

- 6.7.3 変更を元に戻す方法

- 6.7.3.1 Subversionでの前の状態へのファイルの回復

- 6.7.3.2 Gitでのファイルへの変更の回復

- 6.7.3.3 CVSのリビジョンおよびタグの操作

- 6.7.4 異なるファイルからの変更をマージする方法

- 6.7.4.1 Subversion内のファイルの比較

- 6.7.4.2 ファイル・バージョン間での競合の解消

- 6.7.4.3 マージ・ツールを使用した競合の解決

- 6.7.4.4 Subversion「マージ」ウィザードの使用

- 6.7.5 CVSでのファイル・バージョンとファイル履歴の操作

- 6.7.5.1 CVS内のファイルのマージ

- 6.7.5.2 CVS内のファイルの比較

- 6.7.5.3 CVSリビジョンへのファイルの置換

- 6.7.5.4 CVSでのファイルの履歴とステータスの表示

- 6.7.6 Perforceでのファイル・バージョンの操作

- 6.7.6.1 Perforceファイル・バージョン間での競合の解消

- 6.7.7 Team Systemでのファイル・バージョンの操作

- 6.7.7.1 Team Systemファイル・バージョン間での競合の解消

- 6.7.7.2 Team Systemファイルへの変更を元に戻す作業

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

- 6.7.7.4 ファイルの履歴の表示

- 6.7.7.5 Team Systemでのファイルの比較

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

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

- 6.7.10 外部差分ツールの使用方法

- 6.7.10.1 CVSでの外部差分ツールの使用

- 6.8 ソース・コントロールのパッチの操作

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

- 6.8.1.1 パッチの作成

- 6.8.1.2 パッチの適用

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

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

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

- 7.2.1 メイクと再ビルド

- 7.2.2 Apache Ant

- 7.2.3 Apache Maven

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

- 7.3.1 「プロセス」ウィンドウ

- 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 Oracle Java Cloud Serviceにデプロイするためのアプリケーションの開発

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

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

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

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

- 9.1.8 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 Oracle WebLogic Serverへの接続

- 9.3.2.2 GlassFishへの接続

- 9.3.2.3 JBossへの接続

- 9.3.2.4 Tomcatへの接続

- 9.3.2.5 WebSphere Serverへの接続

- 9.3.2.6 Oracle Java Cloud Serviceへの接続

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

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

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

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

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

- 9.3.4 デプロイメント依存関係の作成方法と編集方法

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

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

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

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

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

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

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

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

- 9.3.7.3 デプロイ用のアプレットの構成方法

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

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

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

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

- 9.3.8.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 Mac OS Xプラットフォームからのojdeployの使用

- 9.8.2 ojdeployの使用

- 9.8.2.1 ビルド・スクリプトを編集せずにオーバーライドする方法

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

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

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

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

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

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

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

- 9.8.4 ojserverの使用

- 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アプリケーションの開発

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

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

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

- 10.3 コード・インサイトの使用

- 10.3.1 コード・インサイトを使用したJavaコードへの注釈の追加

- 10.4 コード・ピークの使用

- 10.5 スクロール・ヒントの使用

- 10.6 ヒントの使用

- 10.7 インクリメンタル検索

- 10.8 ショートカット・キーの使用

- 10.9 ブックマーキング

- 10.10 Javaソースの参照

- 10.11 コード・テンプレートの使用

- 10.12 Javaソース・エディタのプリファレンスの設定

- 10.12.1 Javaソース・エディタのコメントおよびカッコの一致オプションの設定方法

- 10.12.2 Javaソース・エディタのimport文ソート・オプションの設定方法

- 10.12.3 コーディング・スタイルの選択方法

- 10.12.3.1 コーディング・スタイルの編集方法

- 10.12.3.2 拡張機能を使用したコーディング・スタイルの設定方法

- 10.13 ツールバー・オプションの使用

- 10.14 「クイック・アウトライン」ウィンドウの使用

- 10.15 Java UIビジュアル・エディタの使用

- 10.15.1 Java SwingおよびAWTコンポーネント

11 Javaコードの使用

- 11.1 Javaコードの使用について

- 11.2 Javaコードでのナビゲート

- 11.2.1 クラスおよびインタフェースの参照方法

- 11.2.1.1 JDeveloperでのJava要素の直接参照

- 11.2.1.2 ソース・ファイルでのクラスまたはインタフェースの参照

- 11.2.2 変数、クラスまたはメソッドの宣言の検索方法

- 11.2.3 クラスまたはインタフェースの使用方法の検索方法

- 11.2.4 メソッドの使用方法の検索方法

- 11.2.5 フィールドの使用方法の検索方法

- 11.2.6 ローカル変数またはパラメータの使用方法の検索方法

- 11.2.7 オーバーライド済または実装済メソッド定義の特定

- 11.2.8 クラスまたはインタフェースの階層の表示方法

- 11.2.8.1 最初にJavaビジュアル・エディタで階層を開く

- 11.2.8.2 Javaソース・エディタでのクラスまたはインタフェースの階層表示

- 11.2.9 クラスのメンバーのステップ実行

- 11.3 Javaコードの編集

- 11.3.1 Javaビジュアル・エディタでのコードの編集

- 11.3.2 Javaビジュアル・エディタを開く

- 11.3.3 Javaビジュアル・エディタのプロキシ・クラスに関する必知事項

- 11.3.4 カスタム・コンポーネントに対するJavaビジュアル・エディタ・プロキシの登録方法

- 11.3.5 コードの保護

- 11.3.6 新規Javaコードまたはインタフェースの作成方法

- 11.3.7 Javaインタフェースの実装方法

- 11.3.8 メソッドのオーバーライド方法

- 11.3.9 コード・テンプレートの使用方法

- 11.3.10 事前定義済のコード・テンプレートの使用

- 11.3.11 選択したテキストを拡張または縮小する方法

- 11.3.12 コーディング構造でコードを囲む方法

- 11.3.13 コード折りたたみ方法

- 11.3.14 import文の追加

- 11.3.15 import文の編成方法

- 11.3.16 ojformatの使用方法

- 11.4 ドキュメント・コメントの追加方法

- 11.4.1 ドキュメント・コメントの更新方法

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

- 11.4.3 ドキュメント・コメントのタグのカスタマイズ方法

- 11.4.4 クイックJavadocを使用してコード要素のJavadocを表示する方法

- 11.4.5 ドキュメント・コメントのプレビュー方法

- 11.4.6 ドキュメント・コメントの監査方法

- 11.4.7 Javadocのビルド方法

- 11.4.8 欠落している注釈要素に対する参照の作成方法

- 11.4.9 JOT構造ウィンドウの使用

- 11.4.9.1 JOT構造ウィンドウでコメントおよび空白行を表示する方法

- 11.4.9.2 JOT構造ウィンドウで「リフレッシュ・モード」を設定する方法

- 11.5 Javaプロジェクトのリファクタ

- 11.5.1 Javaクラス図でのリファクタ

- 11.5.2 リファクタ操作の呼出し方法

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

- 11.5.4 コード要素の名前の変更方法

- 11.5.5 コード要素の削除方法

- 11.5.6 クラスおよびインタフェースのリファクタ

- 11.5.7 クラスまたはインタフェースの複製方法

- 11.5.8 クラスからインタフェースを抽出する方法

- 11.5.9 スーパークラスの抽出方法

- 11.5.10 可能な場合のスーパータイプの使用方法

- 11.5.11 匿名クラスの内部クラスへの変換方法

- 11.5.12 内部クラスの移動方法

- 11.5.13 クラス・メンバーのリファクタ

- 11.5.13.1 Staticメソッドの移動

- 11.5.13.2 Staticではないメソッドの移動

- 11.5.14 メソッドをstaticメソッドに変更する方法

- 11.5.15 メソッドのシグネチャを変更する方法

- 11.5.16 メンバーをスーパークラスへプル・アップする方法

- 11.5.17 メンバーをサブクラスへプッシュ・ダウンする方法

- 11.5.18 フィールドの導入方法

- 11.5.19 メソッド・コールをインライン化する方法

- 11.5.20 変数の導入方法

- 11.5.21 パラメータの導入方法

- 11.5.22 定数の導入方法

- 11.5.23 メソッドの抽出方法

- 11.5.24 コンストラクタをファクトリ・メソッドと置換する方法

- 11.5.25 フィールドをカプセル化する方法

- 11.5.26 ブール式の反転方法

- 11.5.27 XMLスキーマのリファクタ

12 Javaプロジェクトのビルド

- 12.1 Javaプロジェクトのビルドについて

- 12.2 「メイク」コマンドおよび「再ビルド」コマンドによるビルド

- 12.2.1 コンパイラ・プリファレンスの設定方法

- 12.2.2 メイクによるコンパイル

- 12.2.3 再ビルドによるコンパイル

- 12.3 依存性チェックの理解

- 12.3.1 コンパイルするプロジェクトの設定方法

- 12.3.2 コンパイル用のネイティブ・エンコーディングの指定方法

- 12.4 アプリケーションおよびプロジェクトのコンパイル

- 12.4.1 コマンドラインからのコンパイル

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

- 12.5.1 クリーン方法

- 12.5.1.1 プロジェクトのクリーン

- 12.5.1.2 アプリケーションのクリーン

- 12.6 Apache Antによるビルド

- 12.6.1 プロジェクト・ビルドファイル・ターゲットに対するAntの実行

- 12.6.2 IDEでのAntツールの使用

- 12.7 Apache Mavenによるビルドと実行

- 12.7.1 リポジトリの理解

- 12.7.2 Mavenプラグインの理解

- 12.7.3 依存性の理解

- 12.7.4 プロジェクト・オブジェクト・モデルの理解

- 12.7.5 POMファイルの選択

- 12.7.6 連続配信の理解

- 12.7.7 連続統合の理解

- 12.7.8 開始する前に

- 12.7.9 Maven POMファイルの作成方法

- 12.7.10 POMファイルでのコンテキスト・メニューの使用

- 12.7.11 アプリケーション作成時にデフォルトのMaven構造に合わせる方法

- 12.7.12 Maven Archetypeを使用したMavenプロジェクトの作成方法

- 12.7.13 新規Mavenアプリケーション作成時の処理内容

- 12.7.14 リモート・リポジトリの指定方法

- 12.7.15 POMファイルに対するMavenゴールの実行方法

- 12.7.16 プロジェクトからMaven POMを作成する方法

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

- 12.7.18 コード・インサイトの理解

- 12.7.19 JDeveloperでのWebLogic Mavenプラグインの使用方法

- 12.7.20 ojdeployおよびojmakeの使用方法

13 Javaプロジェクトの最適化

- 13.1 Javaプロジェクトの最適化について

- 13.2 コード監査の理解

- 13.2.1 コード監査ルールの理解

- 13.2.2 コード監査メトリックの理解

- 13.2.3 コード監査ツールの使用

- 13.2.4 「コード監査」ウィンドウの「レポート」パネルの使用

- 13.2.5 「コード監査」ウィンドウのツールバーの使用

- 13.2.6 「コード監査」ウィンドウのポップアップ・メニューの使用

- 13.2.7 JDeveloperでJavaコードを監査する方法

- 13.2.8 コマンドラインからのJavaコードの監査

- 13.2.9 コード監査プロファイルの作成方法

- 13.2.10 コード監査プロファイルの削除方法

- 13.2.11 コード監査プロファイルをインポートまたはエクスポートする方法

- 13.2.12 コード監査レポート生成のためにコード監査を実行する方法

- 13.2.13 serialVersionUIDを持たないシリアル化可能フィールドのコード監査方法

- 13.2.14 シリアライズできないフィールドのコード監査方法

- 13.2.15 コード監査レポートの表示

- 13.2.16 コード監査レポートの列の編成方法

- 13.2.17 コード監査レポート行の編成方法

- 13.2.18 フィルタの使用方法

- 13.2.19 コード監査レポートの保存方法

- 13.2.20 コード監査レポートの違反またはコード測定結果のインスペクト方法

- 13.2.21 コード監査規則違反の修正方法

- 13.2.22 構成メンバーのコード監査規則違反を修正する方法

- 13.2.23 コード監査規則違反を非表示にする方法

- 13.2.24 コード監査レポートのコード測定結果を非表示にする方法

- 13.3 プロジェクトのプロファイリング

- 13.3.1 CPUプロファイラについて

- 13.3.2 メモリー・プロファイラについて

- 13.3.3 プロファイリング・セッションの開始方法

- 13.3.4 プロファイリングのウィンドウについて

- 13.3.5 プロファイリング結果について

- 13.3.6 プロファイラの調整方法

- 13.3.7 ヒープ・ダンプの取得方法

- 13.3.8 オブジェクト問合せ言語(OQL)を使用したヒープ・ダンプの分析方法

- 13.3.8.1 OQLの例

- 13.3.8.2 OQLの組込みオブジェクトと関数

- 13.3.8.3 複数の値の選択

- 13.3.8.4 その他の例

- 13.3.9 CPUパフォーマンスの分析方法

- 13.3.10 カスタム構成の作成方法

- 13.3.11 プロファイリング結果のフィルタリング

- 13.3.12 プロファイリング・フィルタの設定方法

- 13.3.13 プロファイリングのライブ結果の使用方法

- 13.3.14 アタッチ・モードを使用したプロファイリング

- 13.3.15 アプリケーションのモニター方法

- 13.3.16 プロファイリング・ポイントの設定方法

- 13.3.17 リモート・アプリケーションへのアタッチ方法

- 13.3.18 Profiler Remote Packの生成方法

- 13.3.19 ローカル・アプリケーションへのアタッチ方法

- 13.3.20 スレッド・アクティビティの表示方法

- 13.3.21 遠隔測定結果の表示方法

- 13.3.22 スナップショットの取得方法

- 13.4 JUnitによるユニット・テス

- 13.4.1 JUnitのインストール方法

- 13.4.2 Javaプロジェクトに対するJUnitテストの作成

- 13.4.3 JUnitカスタム・テスト・フィクスチャの作成方法

- 13.4.4 JunitのJDBCテスト・フィクスチャの作成方法

- 13.4.5 JUnitテスト・ケースの作成

- 13.4.6 JUnitテスト・スイートの作成

- 13.4.7 JUnitテスト・ケースの作成方法

- 13.4.8 JUnitテスト・ケースにテストを追加する方法

- 13.4.9 ビジネス・コンポーネント・テスト・スイートの作成方法

- 13.4.10 Business Componentsテスト・フィクスチャの作成方法

- 13.4.11 プロジェクトのすべてのテスト・ケースでテスト・スイートを更新する方法

- 13.4.12 JUnitテスト・スイートの実行方法

14 Javaプログラムの実行およびデバッグ

- 14.1 Javaプログラムの実行およびデバッグについて

- 14.2 プロセス・ウィンドウの理解

- 14.3 プロジェクトを実行用に構成

- 14.3.1 実行構成の選択方法

- 14.3.2 実行構成の作成方法

- 14.4 プロジェクトまたはファイルの実行方法

- 14.4.1 コマンドラインからのプロジェクトの実行方法

- 14.4.2 Java Virtual Machineの変更方法

- 14.5 プログラム用クラスパスの設定

- 14.5.1 CLASSPATH環境変数の設定(java.exeの場合)

- 14.5.2 JDeveloperライブラリのCLASSPATHの使用方法

- 14.5.3 プロジェクトを含めるようにCLASSPATHを設定する

- 14.5.4 CLASSPATHパラメータの設定(java.exeの場合)

- 14.6 アプレットの実行

- 14.6.1 引数の格納にHTMLファイルを使用

- 14.6.2 <APPLET>タグへのCLASSPATHパラメータの埋込み

- 14.7 Javaプログラムのデバッグ

- 14.7.1 デバッガのアイコンの理解

- 14.7.2 統合WebLogic Serverにデプロイされたアプリケーションのデバッグ

- 14.7.3 JDeveloperでのプロジェクトのデバッグ方法

- 14.7.4 編集および再コンパイル方法

- 14.7.5 ADFコンポーネントのデバッグ方法

- 14.7.6 プロジェクトをデバッグ用に設定する方法

- 14.7.7 デバッガ開始オプションの設定方法

- 14.7.8 デバッガの起動方法

- 14.7.9 デバッグ情報をファイルにエクスポートする方法

- 14.7.10 デバッグ時のソース・エディタの使用方法

- 14.7.11 ポップアップ・メニュー項目の使用

- 14.7.12 ツールチップの使用

- 14.7.13 デバッガでのJava式の使用方法

- 14.7.14 デバッグ中のコード内の移動

- 14.7.15 メソッドのトレース実行方法

- 14.7.16 メソッドのステップ実行方法

- 14.7.17 トレースするクラスの制御

- 14.7.18 トレース・リストに基づく動作のステップ実行方法

- 14.7.19 スレッドの実行ポイントの検索方法

- 14.7.20 カーソル位置までの実行方法

- 14.7.21 デバッガの一時停止および再開方法

- 14.7.22 デバッグ・セッションの終了方法

- 14.7.23 デバッガ・ログの表示方法

- 14.7.24 アプレットのデバッグ方法

- 14.8 デバッガ・ウィンドウの使用方法

- 14.8.1 「ブレークポイント」ウィンドウの使用方法

- 14.8.2 「スマート・データ」ウィンドウの使用方法

- 14.8.3 「データ」ウィンドウの使用方法

- 14.8.3.1 「データ」ウィンドウでの配列要素の表示方法

- 14.8.4 「監視式」ウィンドウの使用方法

- 14.8.4.1 「監視」ウィンドウを開く方法

- 14.8.4.2 監視の追加方法

- 14.8.4.3 静的フィールドの監視方法

- 14.8.5 「インスペクタ」ウィンドウの使用方法

- 14.8.6 「ヒープ」ウィンドウの使用方法

- 14.8.7 「スタック」ウィンドウの使用

- 14.8.7.1 「スタック」ウィンドウを開く方法

- 14.8.7.2 スレッドのスタックの表示方法

- 14.8.8 「クラス」ウィンドウの使用方法

- 14.8.8.1 表示順序の変更方法

- 14.8.9 「モニター」ウィンドウの使用方法

- 14.8.10 「スレッド」ウィンドウの使用方法

- 14.8.11 「デバッガ」ウィンドウの作業環境の設定方法

- 14.8.12 ウィンドウに表示される列の指定方法

- 14.9 ブレークポイントの管理

- 14.9.1 確認済および未確認ブレークポイントについて

- 14.9.2 デッドロックの理解

- 14.9.3 デッドロック・ブレークポイントの理解

- 14.9.4 グループ化されたブレークポイントの理解

- 14.9.5 ブレークポイント・オプションの編集方法

- 14.9.6 ブレークポイントの編集

- 14.9.7 ソース・ブレークポイントの設定方法

- 14.9.8 ブレークポイントの動作の制御方法

- 14.9.9 ブレークポイントの削除方法

- 14.9.9.1 ブレークポイントの無効化方法

- 14.9.9.2 ブレークポイントの有効化方法

- 14.9.10 インスタンス・ブレークポイントの設定方法

- 14.9.11 例外ブレークポイントの設定方法

- 14.9.12 ブレークポイントを条件付きにする方法

- 14.9.13 パスの回数ブレークポイントの使用

- 14.9.14 「ブレークポイント」ウィンドウでブレークポイントを調べる方法

- 14.9.15 ブレークポイント・グループの管理方法

- 14.9.15.1 ブレークポイント・グループの作成方法

- 14.9.15.2 ブレークポイント・グループへのブレークポイントの移動方法

- 14.9.15.3 ブレークポイント・グループの有効化、無効化、または削除

- 14.10 デバッガのウィンドウでプログラムの状態を確認する

- 14.10.1 データ要素のインスペクトおよび変更方法

- 14.10.1.1 データ・アイテムのインスペクト方法

- 14.10.1.2 変数の値の変更方法

- 14.10.2 監視式の設定方法

- 14.10.2.1 ソース・エディタから監視を追加する方法

- 14.10.2.2 監視の編集方法

- 14.10.2.3 監視の削除方法

- 14.10.3 「インスペクタ」ウィンドウでの式の変更方法

- 14.10.4 「フィルタ対象クラス」リストでフィールドの表示/非表示を切り替える方法

- 14.11 Javaプログラムのリモート・デバッグ

- 14.11.1 デバッグ・モードでのJavaプロセスの開始方法

- 14.11.2 リモート・デバッグ用に設定されたプロジェクトの使用方法

- 14.11.3 JPDAリモート・デバッグの設定方法

15 Java Swingユーザー・インタフェースの実装

- 15.1 旧バージョンで開発されたアプリケーションについて

- 15.2 Java SwingのUIコンポーネントとコンテナについて

- 15.3 Java GUIの設計

- 15.3.1 ガード付きブロックについて

- 15.4 フォームの作成方法

- 15.5 作成可能なフォームの理解

- 15.6 コンポーネントの追加

- 15.6.1 コンポーネント・プロパティの設定方法

- 15.6.2 ユーザー・インタフェースでのコンポーネントの選択方法

- 15.6.2.1 単一コンポーネントの選択方法

- 15.6.2.2 複数のコンポーネントの選択方法

- 15.6.3 コンポーネントの位置合せ方法

- 15.6.4 コンポーネントのサイズ設定方法

- 15.7 コンテナの使用

- 15.7.1 コンテナ内でのコンポーネントの並替え

- 15.8 レイアウト・マネージャの使用

- 15.8.1 レイアウト・マネージャの設定方法

- 15.8.2 FreeDesignレイアウトの理解

- 15.8.3 レイアウト・プロパティの設定方法

- 15.8.4 JDeveloperで提供されるレイアウトの理解

- 15.8.5 BorderLayoutの使用

- 15.8.6 CardLayoutの使用

- 15.8.7 FlowLayoutの使用

- 15.8.7.1 位置合せの変更

- 15.8.7.2 ギャップの変更

- 15.8.7.3 コンポーネントの順序変更

- 15.8.8 GridBagLayoutの使用

- 15.8.8.1 GridBagLayoutコンテナへのコンポーネントの追加

- 15.8.8.2 「プロパティ」ウィンドウでのGridBagConstraintsの設定方法

- 15.8.8.3 GridBagカスタマイザの使用方法

- 15.8.9 GridLayoutの使用

- 15.8.10 ユーザー・インタフェースのプレビュー

- 15.9 アクセス可能なフォームの作成方法

- 15.10 イベント処理の使用

- 15.10.1 メニュー・イベントへのイベント処理コードのアタッチ方法

- 15.10.2 コンポーネント・イベントへのイベント処理コードのアタッチ方法

- 15.10.3 コンポーネントのデフォルト・イベントに対してイベント・ハンドラをすばやく作成する方法

- 15.11 GUIソース・コードの変更方法

- 15.11.1 IDE外部でのGUIフォーム・コードの変更

- 15.11.2 プロパティのコード生成の変更方法

- 15.12 UIデバッガの使用

- 15.12.1 「UIデバッガ」ウィンドウの使用

- 15.12.2 UIデバッガの起動方法

- 15.12.3 アプリケーション・コンポーネント階層の検査

- 15.12.4 「監視」ウィンドウでのコンポーネント情報の表示方法

- 15.12.5 「プロパティ」ウィンドウでのUIコンポーネントのインスペクト方法

- 15.12.6 コンポーネントにより生成されるイベントのトレース方法

- 15.12.7 イベント・リスナーの表示方法

- 15.12.8 GUIアプリケーションのリモート・デバッグ

- 15.12.8.1 GUIアプリケーションのリモート・デバッグ方法

- 15.12.8.2 UIのリモート・デバッグのためのJDeveloper IDEの起動方法

- 15.12.9 リスナーの自動検出

16 JavaBeansの使用

- 16.1 JavaBeansの使用について

- 16.2 JDeveloperでのJavaBeansの使用

- 16.2.1 イベント処理メソッドの実装方法

- 16.2.2 イベント処理メソッドを作成するときに行われる処理

- 16.3 標準イベント・アダプタの理解

- 16.3.1 イベント・セットの作成方法

- 16.3.2 コンポーネントがイベントを起動できるようにする方法

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

17 Java EEアプリケーションの開発のスタート・ガイド

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

- 17.1.1 Java EEおよびOracle Application Developer Framework

- 17.2 Webページの各種ツールの使用

- 17.3 Enterprise JavaBeansおよびJava永続性コンポーネントの使用

- 17.4 Oracle TopLinkの使用

- 17.5 セキュアなアプリケーションの理解

- 17.6 XMLを使用するアプリケーションの使用

- 17.7 Webサービスを使用するアプリケーションの使用

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

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

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

- 18.1.2 ビジュアル編集環境での作業

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

- 18.1.2.2 デフォルトの環境設定の変更方法

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

- 18.1.2.4 JSPタグの実行方法

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

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

- 18.1.2.7 要素の選択方法

- 18.1.2.8 複数の要素の選択方法

- 18.1.2.9 要素の範囲の選択方法

- 18.1.2.10 テキストの選択方法

- 18.1.2.11 ビジュアル・エディタでの挿入ポイントの選択方法

- 18.1.2.12 「構造」ウィンドウでの挿入ポイントの選択方法

- 18.1.2.13 「コンポーネント」ウィンドウからの要素の挿入方法

- 18.1.2.14 要素プロパティの設定および変更方法

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

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

- 18.1.2.17 ページ要素の切取り方法

- 18.1.2.18 ページ要素の削除方法

- 18.1.2.19 ページ要素のコピー方法

- 18.1.2.20 ページ要素の移動方法

- 18.1.2.21 ページ要素のサイズ変更方法

- 18.1.2.22 データ表の作成および編集方法

- 18.1.2.23 データ表の列の使用方法

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

- 18.1.2.25 マークアップ・コードの貼付け方法

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

- 18.1.3 「プロパティ」ウィンドウの使用

- 18.1.3.1 プロパティの編集方法

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

- 18.1.4 「コンポーネント」ウィンドウの使用

- 18.1.4.1 「コンポーネント」ウィンドウの使用

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

- 18.1.5.1 JSF構成要素の追加、削除、または編集方法

- 18.1.5.2 JSF構成の子要素の使用方法

- 18.1.6 JSFナビゲーション・ダイアグラムによるページ・フローの計画

- 18.1.6.1 ナビゲーション・ダイアグラムの表示方法

- 18.1.6.2 JSFナビゲーション・ダイアグラムに要素を追加する方法

- 18.1.6.3 JSFナビゲーション・ケースをJSFナビゲーション・ダイアグラムに追加する方法

- 18.1.6.4 ナビゲーション・ダイアグラムにノートを追加する方法

- 18.1.6.5 ナビゲーション・ダイアグラム内の要素にノートを添付する方法

- 18.1.6.6 ナビゲーション・ダイアグラムでレイアウトのデフォルト・スタイルを設定する方法

- 18.1.6.7 ナビゲーション・ダイアグラムをリフレッシュして構成ファイルに変更を反映する方法

- 18.1.6.8 ナビゲーション・ダイアグラマを使用したJSFページの管理方法

- 18.1.6.9 ナビゲーション・ケースの編集と削除

- 18.1.6.10 ナビゲーション・ケースのプロパティの表示方法

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

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

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

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

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

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

- 18.2.1.3 ビジネス・サービスの選択方法

- 18.2.2 JSFビジネス・コンポーネント・フレームワークのビルド

- 18.2.2.1 JSFタグ・ライブラリの使用

- 18.2.2.2 標準JSFコンポーネントのタグ属性の使用

- 18.2.2.3 マネージドBeanの作成方法

- 18.2.2.4 概要エディタによるマネージドBeanの作成方法

- 18.2.2.5 マネージドBeanへのメソッドの追加方法

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

- 18.2.2.7 コンポジット・コンポーネントの作成方法

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

- 18.2.2.9 マネージドBeanへの自動バインドにページを設定する方法

- 18.2.2.10 プロパティにコンポーネントを値バインドする方法

- 18.2.2.11 プロパティにコンポーネント・インスタンスを手動でバインドする方法

- 18.2.2.12 自動コンポーネント・バインディングを使用した既存メソッドのバインド方法

- 18.2.2.13 自動バインディングを有効にして新規デフォルト・メソッドをバインドする方法

- 18.2.2.14 自動バインディングを無効にして新規デフォルト・メソッドをバインドする方法

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

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

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

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

- 18.2.2.19 提供されているタグを使用して標準コンバータを登録する方法

- 18.2.2.20 タグのない標準コンバータの登録方法

- 18.2.2.21 標準タグを使用して標準バリデータを登録する方法

- 18.2.2.22 変換エラーまたは検証エラーを生成したコンポーネントの横にメッセージを表示する方法

- 18.2.2.23 JSFアプリケーション構成でカスタムのコンバータまたはバリデータを登録する方法

- 18.2.2.24 構成ファイルでカスタムのコンバータまたはバリデータを編集する方法

- 18.2.2.25 構成ファイルでカスタムのコンバータまたはバリデータを削除する方法

- 18.2.2.26 コンバータ識別子を使用してコンポーネントにカスタム・コンバータを登録する方法

- 18.2.2.27 値バインディング式を使用してコンポーネントにカスタム・コンバータを登録する方法

- 18.2.2.28 コンポーネントにカスタム・バリデータ・インスタンスを登録する方法

- 18.2.2.29 コンポーネントを新規バリデータ・メソッドにバインドする方法

- 18.2.2.30 標準コンバータおよびバリデータのタグと構文の使用

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

- 18.2.2.32 ページで生成されたすべてのエラー・メッセージを表示する方法

- 18.2.2.33 JSFの標準メッセージ・テキストを置換する方法

- 18.2.2.34 メッセージが参照するフォーム・フィールドに関する情報の追加方法

- 18.2.2.35 JSFページのエラー・メッセージの外観を変更する方法

- 18.2.2.36 JSFアプリケーションの構成

- 18.2.2.37 概要エディタを使用して<application>要素を設定する方法

- 18.2.2.38 JSF構成ファイルにBeanを追加する方法

- 18.2.2.39 新規JSF構成ファイルの作成方法

- 18.2.2.40 JSF構成ファイルの編集方法

- 18.2.3 プロジェクトのFaceletへの変換

- 18.2.3.1 変換前の考慮事項

- 18.2.3.2 ログ・ウィンドウでの変換ステータスのプレビュー

- 18.2.3.3 プロジェクトをFaceletsに変換する方法

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

- 18.2.4.1 個別パッケージの実行およびテスト方法

- 18.2.4.2 プロジェクト全体を実行およびテストする方法

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

- 18.3.1 HTMLページのビルド

- 18.3.1.1 HTMLページの作成方法

- 18.3.1.2 HTMLコア・コンポーネントの使用

- 18.3.1.3 JSPファイルをHTMLとして保存する方法

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

- 18.3.2.1 テキストをHTMLページに追加する方法

- 18.3.2.2 テキスト・プロパティの設定方法

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

- 18.3.3.1 HTMLファイルにイメージを挿入する方法

- 18.3.3.2 HTMLファイルからイメージを削除する方法

- 18.3.3.3 HTMLファイルのイメージをサイズ変更する方法

- 18.3.3.4 イメージをHTMLの背景として使用する方法d

- 18.3.3.5 イメージをHTMLファイルにドラッグにより移動する方法

- 18.3.4 HTML表の使用

- 18.3.4.1 テキストを表セルに追加する方法

- 18.3.4.2 選択した1つ以上のセルからコンテンツを削除する方法:

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

- 18.3.4.4 表とセルのプロパティの設定方法

- 18.3.4.5 ビジュアル・エディタ・ツールバーを使用して表とセルのプロパティを設定する方法

- 18.3.4.6 表のサイズ変更方法

- 18.3.4.7 行および列のサイズ変更方法

- 18.3.4.8 表への行または列の追加方法

- 18.3.4.9 表の行または列の削除方法

- 18.3.4.10 表セルのマージ方法

- 18.3.4.11 表セルの分割方法

- 18.3.4.12 表構造における表示順序の変更方法

- 18.3.4.13 「構造」ウィンドウを使用して行の表示順序を変更する方法

- 18.3.4.14 表の行または列の範囲を拡大する方法

- 18.3.4.15 表の行または列の範囲を縮小する方法

- 18.3.5 HTMLフォームの使用

- 18.3.5.1 HTMLフォームの作成方法

- 18.3.5.2 HTMLのフォーム要素の削除方法

- 18.3.5.3 HTMLのフォーム・フィールドまたはボタンの挿入方法

- 18.3.5.4 ポップアップ・メニューからのフォーム・メソッドの変更方法

- 18.3.5.5 「プロパティ」ウィンドウを使用したフォーム処理情報の設定方法

- 18.3.5.6 フォーム・フィールドまたはボタンの削除方法

- 18.3.6 Cascading Style Sheetの使用

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

- 18.3.6.2 グループ化した要素の使用

- 18.3.6.3 単純なCascading Style Sheetを作成する方法

- 18.3.6.4 CSSセレクタのプロパティと値を設定または変更する方法

- 18.3.6.5 CSSプロパティによるテキストの書式設定方法

- 18.3.6.6 CSSファイルの編集方法

- 18.4 Java Server Pagesの使用方法

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

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

- 18.4.1.2 JSPページの作成方法

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

- 18.4.2 JSPでのフロー制御の理解

- 18.4.2.1 JSPフロー制御の処理方法

- 18.4.3 JSPのデバッグおよびデプロイ

- 18.4.3.1 JSPのデバッグ方法

- 18.4.3.2 Webデプロイメント・ディスクリプタの作成方法

- 18.4.3.3 Webデプロイメント・ディスクリプタのプロパティの編集方法

- 18.4.3.4 Webデプロイメント・ディスクリプタをXMLファイルとして編集する方法

- 18.4.4 JSPの実行

- 18.4.4.1 JSPの実行方法

- 18.4.4.2 実行中のJSPファイルの動的変更

- 18.4.4.3 ADFビジネス・コンポーネント・アプリケーション・モジュールを使用したJSPの実行

- 18.4.4.4 ソースJSPでのタイムスタンプの使用

- 18.4.5 JSPセグメントの理解

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

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

- 18.5.1.1 サーブレット・フィルタに関する必知事項

- 18.5.1.2 サーブレット・リスナーに関する必知事項

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

- 18.6.3.3 JavaScriptコード要素の削除

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

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

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

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

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

- 18.7 JSPおよびFaceletタグ・ライブラリの使用

- 18.7.1 Webページによるタグ・ライブラリの使用

- 18.7.1.1 プロジェクト・レベルのタグ・ライブラリを追加、削除または編集するには

- 18.7.1.2 JSPタグ・ライブラリ・ディスクリプタ(TLD)ファイルの参照方法

- 18.7.1.3 ページまたは個別JSPタグの参照方法

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

- 18.7.2.1 カスタムJSPまたはFaceletsタグ・ライブラリの作成方法

- 18.7.2.2 「コンポーネント」ウィンドウへのカスタム・タグ・ライブラリの追加方法

- 18.7.2.3 JSPまたはFaceletタグ・ライブラリの登録方法

- 18.7.2.4 XMLソース・エディタでのTLDファイルの編集方法

- 18.7.2.5 タグへのスクリプト変数の追加方法

- 18.7.2.6 カスタムJSP/Faceletsタグ・ライブラリをJARファイルとしてデプロイする方法

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

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

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

- 19.3 EJB 3.xアプリケーションのビルドおよび開発プロセス

- 19.3.1 EJB 3xアプリケーションの開発プロセス

- 19.3.1.1 エンティティの作成

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

- 19.3.1.3 EJBのデプロイ

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

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

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

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

- 19.6 永続層の構築

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

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

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

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

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

- 19.6.1.5 問合せの拡張機能

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

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

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

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

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

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

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

- 19.6.7 EJB/JPA用の注釈

- 19.6.7.1 EJB 3.x

- 19.6.7.2 JPA 2.0

- 19.6.8 Javaクラスの注釈方法

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

- 19.6.10 Java永続性問合せ言語

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

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

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

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

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

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

- 19.7.3 EJBモジュールでのセッションBeanの作成方法

- 19.7.4 EJBモジュールでのメッセージドリブンBeanの作成方法

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

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

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

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

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

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

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

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

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

- 19.9 Webアプリケーションの一部としてのEJBのデプロイ

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

- 19.10.1 JPAエンティティBeanのデプロイ

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

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

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

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

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

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

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

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

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

20 Oracle TopLinkによるアプリケーションの永続性の開発

- 20.1 TopLinkによるアプリケーションの永続性の開発について

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

- 20.2.1 JPAバージョンの指定方法

- 20.2.2 エンティティの作成方法

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

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

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

- 20.2.6 JPAマッピングの使用について

- 20.2.6.1 メタデータ注釈の使用

- 20.2.6.2 XMLの使用

- 20.2.6.3 デフォルト・プロパティ

- 20.2.6.4 エンティティの構成

- 20.2.6.5 基本プロパティ・マッピングの宣言

- 20.2.6.6 関連のマッピング

- 20.2.6.7 継承のマッピング

- 20.2.6.8 埋込みオブジェクトのマッピング

- 20.2.7 JPAマッピングの使用方法

- 20.2.8 JPAマッピング・ディスクリプタの作成方法

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

- 20.2.8.2 アクセス・タイプのデフォルトとオーバーライドの設定方法

- 20.2.9 主キーに使用する一意IDの生成方法

- 20.2.10 問合せの構成方法

- 20.2.11 マッピングでの導出IDの指定方法

- 20.2.12 TopLink拡張機能の使用

- 20.3 ネイティブTopLinkマッピングの開発

- 20.3.1 ネイティブTopLinkアプリケーションの設計

- 20.3.2 アプリケーション設計でのネイティブTopLinkの使用

- 20.3.3 ネイティブTopLinkメタデータの作成

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

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

- 20.3.6 ネイティブTopLinkディスクリプタの使用

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

- 20.3.6.2 EISディスクリプタ

- 20.3.6.3 XMLディスクリプタ

- 20.3.7 ネイティブTopLinkマッピングの使用

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

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

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

- 20.3.8 TopLinkエディタの理解

- 20.3.8.1 TopLinkマップの管理

- 20.3.8.2 TopLinkセッションの管理

- 20.3.8.3 永続性構成の管理

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

- 20.3.8.5 「アプリケーション」ウィンドウのTopLinkプロジェクト要素

- 20.3.8.6 「エディタ」ウィンドウのTopLinkエディタ・タブ

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

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

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

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

- 20.3.8.11 ネイティブTopLinkマッピング・プロジェクトの作成方法

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

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

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

- 20.4 ネイティブTopLinkリレーショナル・プロジェクトの開発

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

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

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

- 20.5 ネイティブTopLink XMLプロジェクトの開発

- 20.5.1 XMLプロジェクトおよびオブジェクト・マップの作成方法

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

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

- 20.6 ネイティブTopLink EISプロジェクトの開発

- 20.6.1 EISプロジェクトおよびオブジェクト・マップの作成方法

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

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

- 20.7 ネイティブTopLinkセッションの開発

- 20.7.1 新規のネイティブTopLinkセッション構成ファイルの作成方法

- 20.7.2 ネイティブTopLinkセッションの作成方法

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

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

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

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

- 20.8 ネイティブTopLinkアプリケーションの開発

- 20.8.1 TopLinkキャッシュの使用

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

- 20.8.1.2 問合せとキャッシュ

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

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

- 20.8.1.5 キャッシュの無効化

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

- 20.8.1.7 キャッシュの分離

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

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

- 20.8.3 問合せの使用

- 20.8.3.1 TopLink問合せ言語

- 20.8.3.2 TopLink問合せのタイプ

- 20.8.4 問合せの作成方法

- 20.8.5 基本問合せAPIの使用

- 20.8.6 詳細問合せAPIの使用

- 20.8.6.1 リダイレクト問合せ

- 20.8.6.2 履歴問合せ

- 20.8.6.3 フェッチ・グループ

- 20.8.6.4 読取り専用問合せ

- 20.8.6.5 インタフェース

- 20.8.6.6 継承階層

- 20.8.6.7 その他の結合式

- 20.8.6.8 EJBファインダ

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

- 20.8.7 TopLink式の作成方法

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

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

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

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

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

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

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

- 21.1.4 追加機能

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

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

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

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

- 21.4.1.1 BASIC認証

- 21.4.1.2 FORM認証

- 21.4.1.3 CLIENT-CERT認証

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

- 21.4.2.1 weblogic.security.Encrypt

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

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

- 21.4.5 アイデンティティ・ストアでのエンタープライズ・ロールの管理

- 21.4.5.1 アイデンティティ・ストアへのロールの追加方法

- 21.4.5.2 ユーザー・ロールに割り当てられたユーザーの管理方法

- 21.4.5.3 割り当てられたエンタープライズ・ロールの表示方法

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

- 21.7.3 資格証明の移行

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

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

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

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

- 22.2 XMLファイル・エディタの使用

- 22.2.1 XML編集機能の理解

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

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

- 22.3 XMLスキーマの使用

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

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

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

- 22.3.4 choiceコンポーネント

- 22.3.5 allコンポーネント

- 22.3.6 sequenceコンポーネント

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

- 22.3.8 complexTypeコンポーネント

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

- 22.3.10 unionコンポーネント

- 22.3.11 listコンポーネント

- 22.3.12 XMLスキーマ置換グループの使用

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

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

- 22.6 XSD文書およびコンポーネントの使用

- 22.6.1 2つのエディタにスキーマ・ファイルを表示する方法

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

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

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

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

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

- 22.6.6.1 単一のコンポーネントのエスカレーション

- 22.6.6.2 複数のコンポーネントの選択

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

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

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

- 22.6.9.1 「コンポーネント」ウィンドウを使用したXSDコンポーネントの挿入

- 22.6.9.2 ポップアップ・メニューを使用したXSDコンポーネントの挿入

- 22.6.10 XSDコンポーネントの切取り方法

- 22.6.11 XSDコンポーネントのコピー方法

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

- 22.6.13 XSDコンポーネントの貼付け方法

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

- 22.6.14.1 ドラッグによるコンポーネントの移動

- 22.6.14.2 カット&ペーストによるコンポーネントの移動

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

- 22.6.16 複数のXSDコンポーネントに対するプロパティの設定方法

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

- 22.7.1 XLIFFファイルに関する必知事項

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

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

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

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

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

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

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

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

- 22.8.8 XSQLエラーJBO-27122に関する必知事項

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

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

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

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

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

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

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

- 22.8.15.1 XML_ELEMENTの使用

- 22.8.15.2 XML_ROW_ELEMENTの使用

- 22.8.15.3 XML_CDATAの使用

- 22.8.15.4 XML_EXPLICIT_NULLの使用

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

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

- 23.1.1 JDeveloperを使用したJava EE Webサービスの開発

- 23.1.2 JDeveloperを使用したJava EE Webサービスの保護

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

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

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

- 23.2.1.1 デフォルト・ブラウザのプロキシ設定の使用

- 23.2.1.2 カスタム・プロキシ設定の構成

- 23.2.1.3 インターネットへのアクセス時のプロキシ・サーバーの使用の無効化

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

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

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

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

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

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

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

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

- 23.3.1.2 UDDIレジストリ接続の編集

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

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

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

- 23.3.2 UDDIレジストリ接続のビューの選択に関する必知事項

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

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

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

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

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

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

- 23.4 JAX-WS Webサービスおよびクライアントの作成

- 23.4.1 JAX-WS Webサービスの作成方法(ボトムアップ)

- 23.4.1.1 Java Webサービスの作成

- 23.4.1.2 Webサービス注釈の使用

- 23.4.1.3 「プロパティ」ウィンドウの使用

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

- 23.4.1.5 ソースからのWebサービスの再生成

- 23.4.1.6 ハンドラの使用

- 23.4.1.7 オーバーロード・メソッドの処理

- 23.4.2 WSDLからのJAX-WS Webサービスの作成方法(トップダウン)

- 23.4.3 JAX-WS Webサービス・クライアントの作成方法

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

- 23.4.3.2 JAX-WS Webサービス・クライアント・アプリケーションの開発

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

- 23.4.3.4 Webサービス・クライアントでのWebサービスの原子性トランザクションの有効化

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

- 23.4.3.6 Webサービス・クライアントの編集

- 23.4.3.7 Webサービス・クライアントの削除

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

- 23.4.4.1 JavaクラスでのWebサービスの原子性トランザクションの有効化

- 23.4.4.2 「プロパティ」ウィンドウでのWebサービスの原子性トランザクションの有効化

- 23.4.4.3 Webサービス・クライアントのインジェクション可能なターゲットでのWebサービスの原子性トランザクションの有効化

- 23.4.5 SOAP over JMSトランスポートの使用方法

- 23.4.5.1 JMSトランスポートを使用したWebサービスの開発

- 23.4.5.2 「プロパティ」ウィンドウでのJMSトランスポートの有効化

- 23.4.5.3 JMSトランスポートを使用したWebサービス・クライアントの開発

- 23.4.6 WSDLファイルの管理方法

- 23.4.6.1 WSDLドキュメントの作成

- 23.4.6.2 WebサービスのWSDLの表示

- 23.4.6.3 Webサービス・プロジェクトへのWSDLの追加

- 23.4.6.4 ローカル・ディレクトリへのWSDLの保存

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

- 23.4.6.6 WSDLのローカル・コピーのリフレッシュとWebサービス・クライアント・プロキシおよびクラスの再生成

- 23.4.6.7 実行時にクライアントによって使用されるWebサービスWSDLの更新

- 23.4.7 JAX-WS Webサービスの編集方法

- 23.4.8 JAX-WS Webサービスの削除方法

- 23.5 RESTful Webサービスおよびクライアントの作成

- 23.5.1 RESTful Webサービスの作成方法

- 23.5.1.1 単純なRESTful Webサービスの例

- 23.5.1.2 RESTful Webサービスの作成

- 23.5.1.3 ルート・リソースおよびサブリソースの相対URIの定義

- 23.5.1.4 受信HTTPリクエストのJavaメソッドへのマッピング

- 23.5.1.5 リクエスト・メッセージとレスポンス・メッセージのメディア・タイプのカスタマイズ

- 23.5.1.6 リクエスト・メッセージからの情報の抽出

- 23.5.1.7 エンティティ・プロバイダを使用したHTTPリクエストおよびレスポンスのエンティティ・ボディのマッピング

- 23.5.1.8 RESTful WebサービスのWADLへのアクセス

- 23.5.2 RESTful Webサービス・クライアントの作成方法

- 23.5.2.1 単純なRESTfulクライアントの例

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

- 23.6 ポリシーのアタッチ

- 23.6.1 OWSMポリシーに関する必知事項

- 23.6.2 Oracle WebLogic Webサービス・ポリシーに関する必知事項

- 23.6.3 JAX-WS Webサービスおよびクライアントへのポリシーのアタッチ方法

- 23.6.3.1 JAX-WS Webサービスへのポリシーのアタッチ

- 23.6.3.2 JAX-WS Webサービス・クライアントへのOWSMポリシーのアタッチ

- 23.6.3.3 JAX-WS Webサービス・クライアントのOWSMポリシー構成プロパティのオーバーライド

- 23.6.3.4 WebLogic Webサービス・ポリシーを使用して保護されたJAX-WS Webサービスの起動

- 23.6.3.5 JAX-WS Webサービスのポリシーの編集または削除

- 23.6.4 RESTful Webサービスおよびクライアントへのポリシーのアタッチ方法

- 23.6.4.1 RESTful Webサービスへのポリシーのアタッチ

- 23.6.4.2 RESTful Webサービス・クライアントへのポリシーのアタッチ

- 23.6.4.3 RESTful Webサービス・クライアントのOWSMポリシー構成プロパティのオーバーライド

- 23.6.4.4 RESTful Webサービスおよびクライアントのポリシーの編集または削除

- 23.6.5 異なるOWSMポリシー・ストアの使用方法

- 23.6.6 カスタムWebサービス・ポリシーの使用方法

- 23.6.6.1 カスタムOWSMポリシーの使用

- 23.6.6.2 Oracle WebLogicカスタムWebサービス・ポリシーの使用

- 23.7 Webサービスのデプロイ

- 23.7.1 統合WebLogic ServerへのWebサービスのデプロイ方法

- 23.7.2 スタンドアロン・アプリケーション・サーバーへのWebサービスのデプロイ方法

- 23.7.3 Webサービスのアンデプロイ方法

- 23.8 Webサービスのテストおよびデバッグ

- 23.8.1 ブラウザでのWebサービスのテスト方法

- 23.8.2 Webサービスのデバッグ方法

- 23.8.2.1 ローカルでのWebサービスのデバッグ

- 23.8.2.2 Webサービスのリモート・デバッグ

- 23.8.2.3 Webサービスのデバッグでの「データ」ウィンドウの使用

- 23.8.3 JUnitを使用したWebサービスのテスト方法

- 23.8.4 アプリケーション・サーバーのWebサービス・メッセージ・ログの表示方法

- 23.9 Webサービスの監視と分析

- 23.9.1 WS-Iアナライザのダウンロードおよび登録方法

- 23.9.2 「アプリケーション」ウィンドウでのWebサービスの分析方法

- 23.9.3 Webサービス・ログの作成および分析方法

- 23.9.3.1 Webサービスの実行および分析に関する必知事項

- 23.9.4 統合サーバーで実行中のWebサービスの分析方法

- 23.9.4.1 エンドポイント・アドレスの変更

- 23.9.4.2 WSDLの変更なしでのエンドポイント・アドレスの変更

- 23.9.5 HTTPアナライザを使用したWebサービスの調査方法

第V部 データベースの使用

24 データベースの使用のスタート・ガイド

- 24.1 データベースの使用について

- 24.1.1 データベースの接続および使用

- 24.1.2 データベースの設計

- 24.2 Oracle Database 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 Java DB/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 Oracle Database Cloud Serviceへの接続およびデプロイ

- 26.5.1 Oracle Database Cloud ServiceとのJDeveloper接続の種類

- 26.5.1.1 Oracle Database Cloud Service接続の作成

- 26.5.1.2 Oracle Database Cloud Service接続の編集

- 26.5.1.3 Oracle Database Cloud Serviceとの接続および切断

- 26.5.2 データベース・カートの使用

- 26.5.2.1 データベース・カートのプリファレンスの設定

- 26.5.2.2 データベース・カート・ツールの構成

- 26.5.2.3 Oracle Database Cloud Serviceへのデプロイ

- 26.5.2.4 データベース・デプロイメント・ファイルへのデプロイ

- 26.5.2.5 データベース・カートの保存

- 26.5.2.6 保存したデータベース・カートを開く

- 26.5.2.7 Oracle Database Cloud Service接続へのデプロイメントの確認

- 26.6 データのインポートとエクスポート

- 26.6.1 SQL*Loaderを使用したデータのインポート

- 26.6.2 外部表へのデータのインポート

- 26.6.3 既存の表にデータをインポートする方法

- 26.6.4 新規の表にデータをインポートする方法

- 26.6.5 SQL*Loaderを使用してデータをインポートする方法

- 26.6.6 外部表を使用してデータをインポートする方法

- 26.6.7 データベースからのデータのエクスポート

- 26.6.8 ファイルにデータをエクスポートする方法

- 26.7 データベースのコピー、比較、エクスポート

- 26.7.1 データベースのコピー方法

- 26.7.2 データベース・スキーマの比較方法

- 26.7.3 データベースのエクスポート方法

- 26.8 OracleおよびOracle以外のデータベースの使用

- 26.9 データベース・レポートの使用

- 26.9.1 データベース・レポートの使用

- 26.9.1.1 データベース・レポートの実行方法

- 26.9.1.2 レポートのSQLを表示する方法

- 26.9.1.3 ユーザー定義データベース・レポートの作成方法

- 26.9.1.4 ユーザー定義データベース・レポートの編集方法

- 26.9.1.5 レポートのフォルダの作成方法

- 26.9.1.6 ユーザー定義レポートのエクスポート方法

- 26.9.1.7 ユーザー定義レポートのインポート方法

- 26.9.2 リファレンス: 事前定義済のデータベース・レポート

- 26.10 データベース接続のトラブルシューティング

- 26.10.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.2.4 日付値と時間値の検証

- 27.3 オフライン・オブジェクトおよびデータベース・オブジェクトからのスクリプトの作成

- 27.3.1 SQLスクリプトの作成方法

- 27.3.2 表からのOMBスクリプトの作成方法

- 27.3.3 SXMLスクリプトの作成方法

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.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 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 Jdeveloperのインストール』

- 『Oracle Application Development Frameworkの理解』

- 『Oracle JDeveloperでの拡張機能の開発』

- 『Oracle Application Development FrameworkによるFusion Webアプリケーションの開発』

- 『Oracle ADF FacesによるWebユーザー・インタフェースの開発』

- 『Oracle ADFデータ・コントロールによるアプリケーションの開発』

- Oracle JDeveloper 12cオンライン・ヘルプ

- Oracle JDeveloper 12cリリース・ノート(Oracle JDeveloperインストール内およびOracle Technology Networkからアクセス)

表記規則

このマニュアルでは次の表記規則を使用します。

規則

意味

太字

太字は、操作に関連するGraphical User Interface要素、または本文中で定義されている用語および用語集に記載されている用語を示します。

イタリック体

イタリックは、ユーザーが特定の値を指定するプレースホルダ変数を示します。

固定幅フォント

固定幅フォントは、段落内のコマンド、URL、サンプル内のコード、画面に表示されるテキスト、または入力するテキストを示します。

このガイドで説明する新機能

次のトピックでは、Oracle JDeveloperの新機能や変更された機能について、およびこのガイドに記載されるその他の重要な変更について紹介し、詳細情報へのリンクを提供します。このドキュメントは、『Oracle Fusion Middleware Oracle JDeveloperユーザーズ・ガイド』の新版になります。

12c (12.1.2)での新機能と変更された機能

Oracle JDeveloper 12c (12.1.2)には、このドキュメントで説明する次の新機能と変更された機能が含まれています。

- JDeveloper全体:

- 「アプリケーション」ウィンドウ、「リソース」ウィンドウ、「プロパティ」ウィンドウ(以前のアプリケーション・ナビゲータ、リソース・パレット、プロパティ・インスペクタ)などのウィンドウが、JDeveloperメイン・メニューの「ウィンドウ」から起動されるようになりました。(以前のバージョンでは、メイン・メニューの「表示」から起動していました。)

- ソース・エディタおよびモデラー内のコード・インサイトとコード補完の機能が向上しました。

- ユーザー・ロールの選択により、ユーザーにとって必要なテクノロジと機能のみが表示されるようにJDeveloperを設定できるようになりました。

- モデリング・ツールの使用。第5章「モデリングを使用するアプリケーション開発」を参照してください。

- UML 2.4のサポート。

- プロファイル・ダイアグラムと、UMLプロファイルのダイアグラムベースのユーザー定義。詳細は、第5.5.3項「UMLプロファイルの使用」を参照してください。

- パーティション付きアクティビティ図。

- 新規ギャラリからステレオタイプ要素を作成できるようになりました。

- コード補完のサポート。

- Javaライブラリと同じように、モデル・ライブラリをアプリケーションで定義できるようになりました。

- ソース・コントロールの使用。第6章「ソース・コントロールを使用したアプリケーションのバージョニング」を参照してください。

- GITのサポート。

- チーム接続ストアのデータベース・サポート。

- デプロイメント

- Oracle Java Cloud Serviceへのデプロイメント。第9.1.3項「Oracle Java Cloud Serviceにデプロイするためのアプリケーションの開発」を参照してください。

- 統合WebLogic Serverの機能向上。第9.2項「統合アプリケーション・サーバーでのJava EEアプリケーションの実行」を参照してください。

- 統合サーバーを再起動しないでデバッグ中にアプリケーションを切り替えられるようになりました。

- 統合サーバーで最適化実行がサポートされるようになりました。

- デプロイメント・フィードバックの機能向上。

- アプリケーション・レベルのライブラリのサポート。

- プロジェクト内でのアプリケーション・サーバー共有ライブラリのサポート。

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

- Mavenサポートの強化。第12.7項「Apache Mavenによるビルドと実行」を参照してください。

- プロファイリングの機能向上。

- デバッグ・サポートの強化。

- Webアプリケーションの開発。第18章「Webページ・ツールを使用したアプリケーションの開発」を参照してください。

- Java EE 6.0のサポート。

- HTML 5のサポート。

- JSF 2.1のサポート。

- JSP 2.2のサポート。

- CSS 3のサポート。

- CSSプロパティ&スキニング・キーとセレクタのクイック・ドキュメントが追加されました。

- CSS簡易プロパティの編集機能が拡張されました。

- JSP/JSPXプロジェクト・ファイルをFaceletsに変換できるようになりました。第18.2.3項「プロジェクトのFaceletへの変換」を参照してください。

- プロキシ設定の選択機能が強化されました。

- 現在選択されているコンポーネントを設計コンテナに挿入するボタンがツールバーに追加されました。

- Expression Language (EL) 2.2のサポート。

- 新しいビジュアル・エディタWebアプリケーション機能。

- レンダリング・エンジンが、WebKitのJava実装であるJavaFXのWebViewにアップグレードされました。精度が向上し、JavaScriptを実行できるようになりました。

- panelGridLayout編集のサポート。

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

- JDeveloperは、次の機能を含むEJB 3.1仕様をサポートしています。第19.2項「EJBバージョンおよび機能のサポート」を参照してください。

- シングルトン・セッションBean – アプリケーションごとに1つのステートレス・シングルトンのみがインスタンス化されます。エンタープライズBeanコンポーネントの複数のインスタンス間、またはアプリーション内の複数のエンタープライズBeanコンポーネント間で状態を簡単に共有できます。

- インタフェース不要の簡素化されたクライアント・ビュー – EJBデプロイメントが簡素化され、ビジネス・インタフェースを作成しないでも、同じエンタープライズBean機能を提供できるようになりました。

- 非同期のセッションBeanの起動 – セッションBeanが、メソッド起動時にクライアントに即時制御を戻すようにEJBコンテナに指示する非同期クライアント起動セマンティクスを持つメソッドを公開できるようになりました。

- Context and Dependency Injection (CDI)仕様のサポート。緩くても型保証される方法でアプリケーション内の依存関係を指定するインジェクションを使用するためのサービス・セットを定義することにより、Web層とJava EEプラットフォームのトランザクション層を結び付けることができるようになりました。JDeveloperでエンタープライズ・アプリケーションを開発する際、CDIにより、インジェクション可能なクラスとAPIの自動検出および自動構成が行われ、実行時にインジェクション可能な新しいクラスが定義されるようになったので、サードパーティのフレームワークとの統合がよりスムーズに行われるようになりました。

- Oracle TopLinkは、次の機能を含むJPA 2.0機能をサポートするようになりました。

- JPA 2.0プロジェクト・タイプのサポートおよびJPA 2.0永続性ユニット・プロパティ。ダイアログとウィザードでJPA 2.0を選択して、JPA 2.0機能を構成できます。第20.2項「TopLink JPAプロジェクトの開発」および第20.2.1項「JPAバージョンの指定方法」を参照してください。ダイアログとウィザードのこれらの機能については、オンライン・ヘルプも参照できます。

- 区切られた識別子。メタデータ識別子を引用符で囲むことができ、大文字小文字を区別したデータベースとの比較が可能です。第20.2.8.1項「永続性ユニットのデフォルトの構成方法」を参照してください。

- 導出された識別子。エンティティのIdが親エンティティのIdから導出されます。第20.2.11項「マッピングでの導出IDの指定方法」を参照してください。

- 混合アクセス。管理対象クラス属性の永続状態に、構成内のフィールドおよびプロパティという複数レベルからアクセスできるようになりました。第20.2.8.2項「アクセス・タイプのデフォルトとオーバーライドの設定方法」を参照してください。

- 一方向の1対多マッピング。結合表は一方向の1対多関係には使用されません。第20.2.6項「JPAマッピングの使用について」および1対多マッピング・エディタ - ページの結合に関するオンライン・ヘルプを参照してください。

- 検証モード。自動ライフサイクル・イベント検証を有効にするかどうかを決定します。第20.2.5項「永続性ユニットの構成方法」を参照してください。

- 要素コレクション。第20.2.6.8項「埋込みオブジェクトのマッピング」および要素コレクション・マッピング・エディタに関するオンライン・ヘルプを参照してください。

- 埋込み可能マッピング。埋込みクラス(親エンティティとのみ永続するクラスの特殊型)をマップします。第20.2.6.8項「埋込みオブジェクトのマッピング」を参照してください。

- Webサービスの開発

- RESTful Webサービスとクライアントの開発および保護の完全サポート。第23.5項「RESTful Webサービスおよびクライアントの作成」を参照してください。

- WADL構造ビューとHTTPアナライザのRESTful Webサービス・セキュリティのサポート。第8.3.14.2項「RESTful Webサービスに対するHTTPアナライザの使用」を参照してください。

- 注釈を使用してOWSMポリシーをWebサービス・クライアントに添付できるようになりました。第23.6.3.1.2項「注釈を使用したポリシーのアタッチ」を参照してください。

- SOAP over JMSトランスポートにより、WebサービスとクライアントがHTTP接続ではなくJMS宛先を使用して通信できるようになりました。第23.4.5項「SOAP over JMSトランスポートの使用方法」を参照してください。

- JUnitでのWebサービスのテスト。第23.8.3項「JUnitを使用したWebサービスのテスト方法」を参照してください。

- EclipseLink MOXyまたはGlassfish RI JAXBのいずれかを使用して、JAXBプロバイダを構成できるようになりました。第23.2.4項「型マッピングの使用方法」を参照してください。

- アプリケーション・サーバーのWebサービス・メッセージ・ログを表示できるようになりました。第23.8.4項「アプリケーション・サーバーのWebサービス・メッセージ・ログの表示方法」を参照してください。

- データベースとオフライン・データベースの機能

- Oracle Database Cloud Serviceへのデプロイメント。第26.5項「Oracle Database Cloud Serviceへの接続およびデプロイ」を参照してください。

- サポート:

- Oracle Database 12.1c

- SQLite

- MySQL 5.1および5.5

- オフライン・データベース・オブジェクト用の新しいエディタ

- オフライン・データベース・オブジェクトにも履歴ビューアを使用可能

- オフライン・データベース・リファクタ操作の機能向上

- 非Oracleデータベースのビュー・サポート

- データベース・リンクを使用したオブジェクト参照のサポート

- 表領域など強化されたテンプレート・サポート

第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の概要を説明します。

この章には次の項が含まれます:

- 第1.1項「Oracle JDeveloperについて」

- 第1.2項「Oracle JDeveloperの情報リソース」

- 第1.3項「Oracle JDeveloper 12cへの移行」

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リソースのサポート

リソース

説明

OTN Oracle JDeveloper

Oracle JDeveloperのメイン・ページは、http://www.oracle.com/technetwork/developer-tools/jdev/overview/index.htmlにあります。

OTN Oracle JDeveloperのドキュメント

Oracle JDeveloperのドキュメントのメイン・ページは、http://www.oracle.com/technetwork/developer-tools/jdev/documentation/index.htmlにあります。

Oracle JDeveloperのチュートリアル

チュートリアルは、Oracle JDeveloperの特定のタスクの実行に関する段階的な指示を提供します。

チュートリアルは、http://docs.oracle.com/cd/E37547_01/tutorials/toc.htmにあります。

サンプル・アプリケーション

Oracle ADF対応Summitサンプル・アプリケーションは、ADFアプリケーションの一般的なユースケースのデモンストレーション目的で開発されたアプリケーション・セットです。ここには、Oracle ADFテクノロジ・スタック(ADF Business Components、ADF Faces、ADF DVT FacesおよびADF Controller)のコンポーネント間の統合が含まれます。サンプルには、様々なコンポーネント機能の特徴を示す複数のワークスペースが含まれています。Summitサンプル・アプリケーションのサンプル・コードについては、Oracle Application Development FrameworkによるFusion Webアプリケーションの開発の関連する章を参照してください。

サンプル・アプリケーションは、http://www.oracle.com/technetwork/developer-tools/jdev/documentation/index.htmlにあります。

OTN Oracle JDeveloperフォーラム

OTNフォーラムのOracle JDeveloperページを使用すれば、質問したり、ディスカッションに投稿したり、他のユーザーと情報を交換できます。

OTNフォーラムのOracle JDeveloperページは、http://forums.oracle.com/forums/forum.jspa?forumID=83にあります。

1.3 Oracle JDeveloper 12cへの移行

サポートされている移行パス、アプリケーションとプロジェクトの移行、またはOracle JDeveloperの前のバージョンからOracle JDeveloper 12cへのプリファレンスと設定のインポートの詳細は、「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 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項「JDeveloperでのキーボード・ナビゲーション」

- 第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です。

JDeveloperには、Oracle JDeveloper StudioとOracle JDeveloper Javaの2つのEditionがあります。Studio Editionは、JDeveloperの完全バージョンであり、すべての機能が含まれます。Java Editionは、JavaとXMLのコア機能のみを備え、ダウンロード時間が短くなります。

3.2 JDeveloperロールの操作

ロールにより、JDeveloper環境を調整できます。修正した環境では、メニュー、設定、新規ギャラリおよびダイアログの個別フィールドなどの不要項目をJDeveloperから削除します。選択するロールによって、JDeveloperで作業を行う際に使用可能な機能とオプションが決定されます。

使用できるロールは、次のとおりです。

- デフォルト・ロール。JDeveloperのすべての機能にアクセスできます。他のロールは、これらの機能のサブセットを提供します。

- カスタマイズJDeveloper。Oracle Metadata 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. オプションで、前にロードした機能をキャッシュからクリアするには、「キャッシュのクリア」をクリックします。キャッシュをクリアすると、JDeveloperを再起動するたびに機能が自動ロードされなくなります。機能は、使用するときにのみロードされます。

5. 終了したら、「ステータスの更新」をクリックします。この機能により、機能に対して行った変更をコミットできます。

注意:

「ステータスの更新」は、「更新の確認」を使用して機能をインストールした場合には使用できません。

インストール済の更新をアンインストールするには、次のようにします。

1. メイン・メニューから、「ツール」→「機能」を選択します。「機能と更新の管理」ダイアログが開きます。

2. 「インストール済の更新」をクリックして、すでにインストールされている更新を表示します。

3. 「検索」フィールドにアンインストールする更新を入力して検索するか、更新リストをスクロールします。更新または更新カテゴリをクリックして、右側の説明を表示します。

4. アンインストールする更新を選択し、「アンインストール」をクリックします。

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

JDeveloperでは、必要に応じてウィンドウを配置できます。JDeveloperでは、IDEの2種類のウィンドウを使用します。

- IDEの任意の場所に配置できるドッキング可能なウィンドウ。

- IDEの中央に固定されているタブ付きエディタ・ウィンドウ。

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

JDeveloperウィンドウはどのウィンドウでも、見やすく使い勝手がいいように最大化できます。JDeveloperのどのウィンドウの場合でも、タイトル・バーをダブルクリックして、すばやく全画面表示に最大化できます。IDE内で元の位置にウィンドウを戻すには、再度タイトル・バーをダブルクリックします。

JDeveloperをいったん閉じて再度開いた場合、ウィンドウの最大化は維持されません。ウィンドウはデフォルト・サイズに戻ります。ただし、最小化していたウィンドウについては、JDeveloperを再度開いたときも、最小化されたままになります。

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

JDeveloperでは、あらゆるドッキング可能ウィンドウを最小化するか、または常に一定の場所に表示したままにできます。デフォルトは開いたままの状態(固定表示)に設定されています。

固定表示に設定されているウィンドウの位置は変化しません。ウィンドウは、ドッキングされた位置にかかわらず常に表示されます。

最小化に設定されているウィンドウは、状況に応じて状態が変化します。ウィンドウにフォーカスを当てると、ウィンドウは、最後にドッキングされた一般領域に上下左右いっぱいに開きます。フォーカスを別の場所に移すと、最小化されたウィンドウはマージン内に縮小されます。ウィンドウが開いているか閉じているかにかかわらず、マージン内に該当するボタンが表示されているウィンドウは最小化に設定されているウィンドウです。

ドッキング可能ウィンドウを最小化するには、次のようにします。

- 開いたままに設定されているウィンドウの右端にある「最小化」アイコンをクリックします。
現在ウィンドウにフォーカスがある場合は、ウィンドウが画面いっぱいの高さに拡大された状態で固定されます。ウィンドウにフォーカスがない場合、ウィンドウはマージン内に縮小されます。

ウィンドウを最小化すると、そのウィンドウの名前が付いたボタンがマージンに表示されます。このボタンで、最小化されたウィンドウを開いたり閉じたりできます。

注意:

他のウィンドウを含むドッキング・ゾーンのウィンドウを最小化すると、ドッキング・ゾーンのすべてのウィンドウが最小化されます。

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

「アプリケーション」ウィンドウ、カスタム・ウィンドウ、「ログ」ウィンドウ、「プロパティ」ウィンドウ、「コンポーネント」ウィンドウという通常ドックされているウィンドウもフローティングできます。フローティング・ウィンドウは、サイズ変更も可能で、JDeveloperの任意の場所に配置できます。

一般に、フローティング・ウィンドウは、情報ウィンドウとソース・コードの両方を表示する余地が十分にある大型画面に適しています。小さい画面上でフローティング・パレットを使用すると、作業中に他の情報ウィンドウによって隠れてしまうことがあります。

「アプリケーション」ウィンドウ、「構造」ウィンドウ、「プロパティ」ウィンドウなどの「ウィンドウ」メニューから使用できるツールはすべて、好きなように配置できます。個別にドッキングすることも、グループにまとめてドッキングすることも可能です。また、複数のウィンドウをドッキングまたはフローティングどちらかのウィンドウとして同じ場所に表示し、タブで切り替えることもできます。

次の表には、ドッキング可能ウィンドウを移動するための情報が表示されます。

要件

アクション

単独でドッキングされたウィンドウを移動する

タイトル・バーをドラッグします。

グループでドッキングされているウィンドウの中から1つを切り離す

タイトル・バーをドラッグします。

グループでドッキングされているウィンドウ、タブ化されているウィンドウ、またはドッキングかつタブ化されているウィンドウを移動する

「×」ボタンのみが表示された一番上の水平タイトル・バー(グループ用)をドラッグします。

グループからタブとして表示されているウィンドウの1つを切り離す

該当するウィンドウのタブをドラッグします。

注意:

ドッキングされたウィンドウのタイトル・バーは、ウィンドウの横に垂直に表示されることがあります。

次の表には、ドッキング・ウィンドウを再配置するための情報が表示されます。

要件

アクション

ウィンドウ(またはウィンドウ・グループ)を開発領域の別の端にドッキングする

希望する端までウィンドウ(またはウィンドウ・グループ)をドラッグします。

ウィンドウ(またはウィンドウ・グループ)を別のウィンドウに並べてドッキングする

ドッキングされたウィンドウの上、下または横にウィンドウ(またはウィンドウ・グループ)をドラッグします。

1つのウィンドウを別のウィンドウのタブとして表示する

タブとして表示するウィンドウを、目的のウィンドウ(またはウィンドウ・グループ)の中心にドラッグして放します。

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

「アプリケーション」ウィンドウ、「データベース」ウィンドウ、「構造」ウィンドウ、「プロパティ」ウィンドウ、「コンポーネント」ウィンドウ、「リソース」ウィンドウおよび「ログ」ウィンドウを含むJDeveloper IDEの主要素は簡単に開いたり閉じたりできます。

3.4.4.1 閉じているウィンドウを開く

現在閉じているウィンドウを開くことができます。

閉じたウィンドウを開くには、次のようにします。

- 「ウィンドウ」メニューで、そのウィンドウの名前を選択します。

3.4.4.2 開いているウィンドウを閉じる

現在開いているウィンドウを閉じることができます。

開いているウィンドウを閉じるには、次のいずれかの手順を実行します

- タブ・ウィンドウの名前に表示される「閉じる」アイコンをクリックします。

- ウィンドウを選択した状態で、[Shift]を押しながら[Esc]を押すか、[Ctrl]を押しながらクリックします。

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

JDeveloperのウィンドウ・レイアウトをデフォルトの出荷時設定にリストアします。

ドッキング可能ウィンドウのレイアウトをリストアするには、次のようにします。

- 「ウィンドウ」メニューからウィンドウを出荷時設定にリストアを選択します。

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

選択を含め、マウスで実行できるすべての操作は、キーボードからも実行することができます。JDeveloperでのすべての操作は、マウスのみでなくキーボードを使用しても実行できます。

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

JDeveloperには、複数の事前定義済のキーボード・スキームが用意されています。これらの1つを使用するか、処理に割り当てるキーボード・ショートカットを変更し、既存のセットをユーザーのコーディング・スタイルにあわせてカスタマイズすることもできます。

JDeveloperにおけるショートカット・キーの基本セットは、Javaルック・アンド・フィールのガイドラインで定義されているショートカット・キーに基づいています。JDeveloperで使用可能な事前定義のキーボード・スキームは、この基本セットに重ね合せるように設定されています。ルック・アンド・フィールのガイドラインとJDeveloperのキーボード・スキームの両方に同じショートカット・キーが存在する場合は、JDeveloperのスキームが優先されます。ルック・アンド・フィールのガイドラインで定義されているショートカット・キーがJDeveloperのスキームにない場合は、そのスキームを使用可能にしたときに元のルック・アンド・フィール定義がそのまま使用されます。

3.5.1.1 初期設定キーボード・スキーマのロード

したがって、JDeveloperで使用可能なショートカット・キーは、現在選択しているスキームと、Javaルック・アンド・フィールのガイドラインとの相互関係によって決定されます。JDeveloperを最初に起動したときは、デフォルトのスキームが有効になっています。このスキームはいつでも変更可能であり、各スキーム内では、任意のショートカット・キー割当てをカスタマイズできます。別の事前定義済キーボード・スキームが有効化されている場合(または同じスキームがリロードされる場合にも)、スキーム内で作成するカスタマイズ済ショートカットは保持されないことに注意してください。

初期設定キーボード・スキームをロードするには、次のようにします。

1. メイン・メニューから、「ツール」→「プリファレンス」を選択します。

2. 「プリファレンス」ダイアログで、「ショートカット・キー」ノードを選択します。詳細は、[F1]を押すか、「プリファレンス」ダイアログ内で「ヘルプ」をクリックしてください。

3. ショートカット・キー・ページで、「その他のアクション」をクリックし、「キーボード・スキームのロード」を選択します。現在ロードされているキーボード・スキームが強調表示されて「キーボード・スキームのロード」ダイアログが表示されます。

4. 「キーボード・スキームのロード」ダイアログで、ロードするスキームを選択し、「OK」をクリックします。

5. 完了したら、「ショートカット・キー」ページで「OK」をクリックします。

3.5.1.2 JDeveloperのコマンドおよび割当て済キーボード・ショートカットの表示

JDeveloperのコマンドおよび割当て済キーボード・ショートカット(割り当てられている場合)を表示するには、次のようにします。

1. メイン・メニューから、「ツール」→「プリファレンス」を選択します。

2. 「プリファレンス」ダイアログで、「ショートカット・キー」ノードを選択します。

3. 「ショートカット・キー」ページで「使用可能なコマンド」の下に、JDeveloperコマンドの完全集合、およびそれぞれに割り当てられているキーボード・ショートカットが(存在する場合)表示されます。特定のコマンドやショートカットを探している場合、あるいは特定カテゴリのコマンドのショートカットのみを確認する場合、「検索」フィールドにフィルタリング式を入力します。

4. 新しいショートカットの定義、または既存ショートカットの変更も可能です。

3.5.1.3 コマンド用キーボード・ショートカットの再定義

キーボード・スキームでコマンドに対して現在割り当てられているキーボード・ショートカットとは異なるキーボード・ショートカットを使用したい場合、そのショートカットを指定することができます。

特定のキーボード・スキーム内のコマンドに対して新規キーボード・ショートカットを定義するには、次のようにします。

1. メイン・メニューから、「ツール」→「プリファレンス」を選択します。

2. 「プリファレンス」ダイアログで、「ショートカット・キー」ノードを選択します。詳細は、[F1]を押すか、「プリファレンス」ダイアログ内で「ヘルプ」をクリックしてください。

3. 「ショートカット・キー」ページの、「使用可能なコマンド」の下で、新しいショートカットを定義するコマンドを選択します。

4. このアクションに対して新しいショートカットを定義するには、「新しいショートカット」フィールドにフォーカスを置き、次にキーボードでキーの組合せを押します。
この指定したショートカットがすでにあるコマンドに割り当てられている場合、そのコマンドが「競合」フィールドに表示されます。新しいショートカットが割り当てられると、競合するショートカットはすべて上書きされます。

5. このショートカットを選択したアクションに割り当てるには、「割当て」をクリックします。すでに割り当てられているショートカットを削除するには、ツールバーの「削除」ボタンをクリックします。
コマンドに複数のショートカットを割り当てる場合は、コマンドを選択して「複製」ボタンをクリックします。次に、「新しいショートカット」フィールドにショートカット・キーを入力して「割当て」をクリックします。

6. 終了したら、「OK」をクリックします。

3.5.1.4 キーボード・スキーマのインポートとエクスポート

JDeveloperでは、キーボード・スキーマをインポートしたりエクスポートしたりできます。

キーボード・スキームをインポートまたはエクスポートするには、次のようにします。

1. 「ツール」メニューから、「ツール」→「プリファレンス」を選択して「プリファレンス」ダイアログを開きます。

2. 「その他のアクション」→「エクスポート」または「インポート」を選択します。キーボード・スキームはXMLファイルとして保存されます。

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

次の表は、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]

カーソルがコンボ・ボックス、シャトル・ボタンなどのコントロールにある場合を除いて、デフォルトのボタンを選択してハイライト表示する。

注意: デフォルトのボタンは、コントロールをナビゲートするごとに変わります。

n/a

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

この項では、標準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つ上の項目を選択する

[Shift]+[↑]

フォーカスがある項目を選択解除せずにリスト内の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.4 複雑なコントロールへの移動

この項では、複雑な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.5 特定のコンポーネントでのナビゲーション

この項では、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機能の外観と機能を変更できます。次の操作を実行できます。

- ルック・アンド・フィールの変更

- 全般環境のカスタマイズ

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

- IDEの次のウィンドウもカスタマイズ可能

- 「比較」ウィンドウ

- 「コンポーネント」ウィンドウ

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での比較ウィンドウをカスタマイズする方法

「比較」ウィンドウの表示をカスタマイズできます。

ファイルを比較するオプションをカスタマイズするには、次のようにします。

1. メイン・メニューから、「ツール」→「プリファレンス」を選択します。詳細は、[F1]を押すか、「プリファレンス」ダイアログ内で「ヘルプ」をクリックしてください。

2. 「設定」ダイアログで、「比較」を選択します。

3. 「比較」ページで、比較される2つのファイルの表示に使用できるオプションを選択します。

4. 「OK」をクリックします。

3.6.4 「コンポーネント」ウィンドウのカスタマイズ方法

「コンポーネント」ウィンドウでは、エディタ上に開いているファイルにコンポーネントを簡単に挿入できます。

3.6.4.1 「コンポーネント」ウィンドウにページを追加する方法

「コンポーネント」ウィンドウにページを追加して、このウィンドウ内で追加のコンポーネントをグループ化したり、既存のページにコンポーネントを追加することができます。

「コンポーネント」ウィンドウにページを追加するには、次のようにします。

1. メイン・メニューから「ツール」→「コンポーネントの構成」を選択して、コンポーネント・ウィンドウの構成ダイアログを開きます。詳細は、[F1]を押すか、コンポーネント・ウィンドウの構成ダイアログ内で「ヘルプ」をクリックしてください。

2. 必要に応じて、コンポーネント・ウィンドウの構成ダイアログで、「ページ・タイプ」から適切なタイプを選択して、「ページ」リストの表示を制限します。

3. コンポーネント・ウィンドウの構成ダイアログの「ページ」リストで、「追加」をクリックします。

4. コンポーネント・ウィンドウの作成ダイアログで、新しいページの名前を入力し、ドロップダウン・リストからタイプを選択します。ステップ2でページ・タイプを選択した場合は、そのタイプがこのダイアログに反映されます。

5. 「OK」をクリックし、コンポーネント・ウィンドウの構成ダイアログに戻ります。

6. 完了後、「OK」をクリックします。新しいページが「コンポーネント」ウィンドウのドロップダウン・リストに追加されています。コンポーネント・ウィンドウの構成ダイアログの「ページ」リストにも表示されています。

「コンポーネント」ウィンドウ上を右クリックして、「ページの追加」を選択するという方法もあります。

3.6.4.2 「コンポーネント」ウィンドウにJavaBeansコンポーネントを追加する方法

「コンポーネント」ウィンドウにページを追加して、JavaBeansコンポーネントをグループ化したり、既存のページにコンポーネントを追加することができます。「コンポーネント」ウィンドウにJavaBeansを追加すると、「コンポーネント」ウィンドウでBeanを選択することにより、Javaビジュアル・エディタ上に開いているファイルに、これらのBeanを挿入できるようになります。

「コンポーネント」ウィンドウに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.4.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.4.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.5 JDeveloperでのロールの変更方法

JDeveloperの機能を決定するために使用されるロールを変更できます。成形では、ユーザーのロールに基づいてJDeveloper環境を調整します。

新しいロールに変更する場合、JDeveloperを再起動するまでは、そのロールを使用できません。

JDeveloperのロールを変更するには、次のようにします。

- メイン・メニューから、「ツール」→「ロールの切替え」を選択して、ロールを選択します。

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

一般に使用されるファイル・タイプをJDeveloperに関連付けることができます。ファイル・タイプをJDeveloperに関連付けした後は、そのタイプのファイルを開くと、JDeveloperが自動的に起動します。(この機能はWindowsシステムでのみサポートされています。)

ファイル・タイプをJDeveloperに関連付けるには、次のようにします。

1. メイン・メニューから「ツール」→「設定」を選択し、「ファイル・タイプ」ペインを開きます。詳細は、[F1]を押すか、「プリファレンス」ダイアログ内で「ヘルプ」をクリックしてください。

2. ファイル・タイプのリストで、JDeveloperに関連付けるファイル・タイプを選択します。

3. 詳細領域で、「JDeveloperで開く」を選択します。

3.7 「リソース」ウィンドウの操作

「リソース」ウィンドウでは、アプリケーション・サーバー、データベース、WebDAVサーバーなど様々なリソースへの、これらを使用する様々なアプリケーションからの接続を作成し、これらのリソースを他のユーザーと共有できます。

アプリケーションをデザインおよびビルドする場合は、多数のソフトウェア・アセットを検索し、これを使用する必要があります。検索対象は判明していても、検索する場所が不明な場合や、コールする必要のあるアーティファクトが不明な場合があります。アーティファクトの検索場所が判明しており、何をコールするかが判明している場合でも、ソース・リポジトリへの接続の作成方法が不明な場合もあります。次の点を考慮してください。

- アプリケーション開発者は、チームの他のメンバー、および他の製品チームが作成した共有モデル、ビューおよびコントローラ・オブジェクトを検索し、組み込む必要があります。

- UIデザイナはイメージ、スタイル・シート、テンプレート、サンプル・デザインの企業カタログにアクセスし、標準に準拠したページを迅速に作成できるようにする必要があります。

- アプリケーション・インテグレータでは、対象となる各種Webサービスから特定のドメインへ簡単にアクセスできる必要があります。

- エンド・ユーザーはページのパーソナライズで使用する関連コンテンツ(ポートレットおよびUIコンポーネントなど)を検索する必要があります。

このようなケースでは、ユーザーの目的は、現在のタスクに必要なリソースを検索することのみです。アセットの検出およびアクセスのプロセスは、可能なかぎり簡単にする必要があります。

「リソース」ウィンドウにより、次のことが可能です。

- IDE接続により、基礎となる様々なリポジトリに保存されているリソースの検索

- カタログでの階層構造のブラウズによるリソースの検索

- リソースの検索および検索対象の保存

- ブラウズ時の表示可能セットを削減するためのリソースのフィルタ

- ビルド中のアプリケーションで検出したリソースの使用

- カタログ定義の共有によるリソースの検出および再利用の促進

「リソース」ウィンドウを開くには、次のようにします。

メイン・メニューで、「ウィンドウ」→「リソース」を選択します。

デフォルトでは、「リソース」ウィンドウは「JDeveloper」ウィンドウの右側に表示されます。

「リソース」ウィンドウをリフレッシュするには、次のようにします。

- 「リソース」で、「新規」をクリックし、「リフレッシュ」を選択します。
または、「リソース」ウィンドウで、「カタログ」パネルまたは「IDE接続」パネル内のオブジェクトのポップアップ・メニューから「リフレッシュ」を選択するという方法もあります。

3.7.1 IDE接続の操作

JDeveloperで接続を作成する場合に、別のアプリケーションで再利用可能、またはユーザー間で共有可能なIDE接続、あるいはアプリケーション接続として作成できます。

IDE接続は、再利用可能な、グローバル定義された接続であり、「リソース」ウィンドウの「IDE接続」パネルにリストされます。IDE接続を「アプリケーション」ウィンドウにコピーし、アプリケーション内で使用できるようにできます。

IDE接続は、「リソース」ウィンドウの「IDE接続」パネルにリストされます。さらに、接続タイプによっては、特別な接続タイプ・ウィンドウに表示されます。たとえば、データベース接続は、「データベース」ウィンドウの「IDE接続」ノードの下にもリストされ、「データベース」ウィンドウでデータベース接続を介してデータベース・オブジェクトを編集できます。

作成可能な各種接続タイプは、使用可能なテクノロジと拡張機能に応じて決まります。どこに接続を作成できるかを確認するには、「リソース」ウィンドウの「新規」ボタンから「IDE接続」を選択します。作成可能な特定の接続タイプは、使用可能なテクノロジと拡張機能によって決まります。

リソース接続ディスクリプタの定義情報は、ファイル・システムの次の場所にあります。

system-dir/jdeveloper/system12.1.2.n.nn.nn.nn/o.jdeveloper.rescat2.model/connections/connections.xml

IDE接続を作成するには、次のようにします。

1. 「リソース」ウィンドウの「IDE接続」パネルで、「新規」ボタンから「IDE接続」を選択します。

2. 作成する接続タイプを選択し、「接続の作成」ダイアログで適切な情報を入力します。作業中に詳細を参照するには、[F1]を押すか、ダイアログ内から「ヘルプ」をクリックします。

「リソース」ウィンドウでの接続の作成後は、接続の詳細は編集できますが、接続名は変更できなくなります。

IDE接続を編集するには、次のようにします。

1. 「リソース」ウィンドウの「IDE接続」パネルで、接続のポップアップ・メニューから「プロパティ」を選択します。

2. 「接続の編集」ダイアログが開き、そこで接続の詳細を変更できます。詳細は、[F1]を押すか、「接続の編集」ダイアログ内で「ヘルプ」をクリックしてください。

「リソース」ウィンドウの接続をアプリケーション内で使用できるようにできます。

接続は、JDeveloperに現在開いているアプリケーションに追加でき、「アプリケーション」ウィンドウの「アプリケーション・リソース」パネルの「接続」ノードの下にリストされます。

接続をアプリケーションに追加するには、次のようにします。

「リソース」ウィンドウの「IDE接続」パネルで、接続のポップアップ・メニューから「アプリケーションに追加」を選択します。

また、「リソース」ウィンドウからリソースをドラッグし、アプリケーション・ページにドロップします。

また、「リソース」ウィンドウの「IDE接続」から接続をドラッグし、「アプリケーション」ウィンドウの「アプリケーション・リソース」パネルにドロップします。

3.7.2 「リソース」ウィンドウの検索方法

「リソース」ウィンドウで検索する方法は2つあります。

- 標準検索の実行

- ダイアログにパラメータを入力する、拡張検索の実行

また、カタログに動的フォルダを定義できます。フォルダのコンテンツは、フォルダを開いたときに実行される問合せ式によって定義されます。

検索にかかる時間は「リソース」ウィンドウ内のリソースの数、およびリソースへの接続にかかる時間に応じて異なり、その結果は「検索結果」パネルに表示されます。

標準検索を実行した場合、検索は「リソース」ウィンドウのコンテンツ全体で実行され、時間がかかる場合があります。これは、検索中にJDeveloperがリモートのリソースに接続するためです。

標準検索を実行するには、次のようにします。

1. 「リソース」ウィンドウで「検索オプション」ボタンをクリックし、リソースの「名前」、「タイプ」、または「説明」のいずれに対して検索を実行するかを選択します。詳細は、[F1]を押すか、「リソース」ウィンドウ内で「ヘルプ」をクリックしてください。

2. フィールドに検索文字列を入力します。たとえば、名前にdepを含むリソースをすべて検索する場合は、ステップ1で「名前」を選択し、depと入力します。文字列depを含むすべてのリソースが検索結果にリストされます。

3. 「検索の開始」ボタンをクリックして検索を開始します。

または、検索条件を指定し、検索開始位置を選択できる拡張検索を実行することもできます。

拡張検索を実行するには、次の手順を実行します。

1. 「リソース」ウィンドウで、「カタログ」または「IDE接続」パネルのオブジェクトのポップアップ・メニューから「拡張検索」を選択します。詳細は、[F1]を押すか、「拡張検索」ダイアログ内で「ヘルプ」をクリックしてください。

2. 検索を開始する場所を定義します。「検索範囲」から選択するか、「階層の表示」をクリックして、「リソース」ウィンドウのコンテンツを階層リストから選択します。

3. 検索条件を入力して必要なリソースに戻り、「検索」をクリックします。

「検索の停止」ボタンをクリックして、検索の完了前に検索を停止できます。

検索は保存し、再利用できます。検索を再利用するために保存する方法は2通りあります。

- 動的フォルダでは、フォルダのコンテンツは、フォルダを開くときに検索条件に基づいて動的に作成されます。

- 静的フォルダでは、検索の結果が含まれます。

動的フォルダは、カタログで直接作成することもできます。

検索を保存するには、次のようにします。

1. 「リソース」ウィンドウの「検索結果」パネルで、ポップアップ・メニューから「検索の保存」を選択します。

2. 「検索の保存」ダイアログで、次を選択します。

- 動的フォルダを作成するための「検索条件を保存」。

- 結果の静的フォルダを作成する「検索結果の保存」。

詳細は、[F1]を押すか、「リソース」ウィンドウ内で「ヘルプ」をクリックしてください。

3. フォルダの名前を入力します。

4. フォルダを組み込むカタログを、ドロップダウン・リスト、または「階層の表示」をクリックすると表示される階層リストから選択します。

3.7.3 「リソース」ウィンドウのコンテンツのフィルタリング

フィルタを使用して、カタログ・フォルダのコンテンツを微調整できます。

「カタログ」のコンテンツをフィルタするには、次のようにします。

1. 「リソース」ウィンドウで、「カタログ」パネルまたは「IDE接続」パネルのオブジェクトのポップアップ・メニューから「フィルタ」を選択します。詳細は、[F1]を押すか、「フィルタ」ダイアログ内で「ヘルプ」をクリックしてください。

2. フィルタリングを定義する文字列を入力します。その文字列を含むフォルダのエントリのみが表示されます。

3.7.4 カタログと接続のインポートとエクスポート

カタログと接続は、別のユーザーがエクスポートしたリソース・カタログのアーカイブ(.rcx)ファイルのインポートによって共有されます。

カタログをエクスポートするには、次のようにします。

注意:

エクスポートするカタログを選択すると、カタログ内の接続もすべて選択されます。エクスポート前にカタログの選択を解除する場合は、アーカイブ・ファイルに含まない接続の選択も必ず解除します。

1. 「リソース」ウィンドウで、「カタログ」パネルまたは「IDE接続」パネルのオブジェクトのポップアップ・メニューから「エクスポート」を選択します。

2. 「カタログと接続のエクスポート」ダイアログで、エクスポートするカタログと接続を選択し、エラーの処理方法を決定します。詳細は、[F1]を押すか、「カタログと接続のエクスポート」ダイアログ内で「ヘルプ」をクリックしてください。

カタログをインポートするには、次のようにします。

1. 「リソース」ウィンドウで、「インポート元」(新規)を選択します。

2. 「カタログと接続のインポート」ダイアログで、リソース・カタログのアーカイブ・ファイル(.rcx)へのパスと名前を指定またはブラウズします。詳細は、[F1]を押すか、「カタログと接続のインポート」ダイアログ内で「ヘルプ」をクリックしてください。

3. インポートするカタログと接続を選択し、エラーの処理方法を決定します。

3.7.5 「リソース」ウィンドウのカタログの操作

カタログは、基礎となる複数のリポジトリからリソースを編成するためのユーザー定義構成です。カタログとそれに関連するフォルダ構成のコンテンツは、個々の開発者が使用できるように設計するか、開発プロジェクトのUIデザイナなど、特定のユーザー・グループを対象とすることができます。

カタログ・フォルダにより、カタログ内のリソースが整理されます。カタログ・フォルダは、ファイル・システム内のファイル、またはWebブラウザのブックマークを整理する場合と同様に使用できます。それぞれのカタログ・フォルダには、次の組合せが含まれます。

- フォルダ

- 問合せによって移入される動的フォルダ

- フォルダまたはサブツリーのコンテンツを微調整するためのフィルタ

3.7.5.1 カタログの作成

カタログで、「リソース」ウィンドウの情報を整理できます。

カタログを作成するには:

1. 「リソース」ウィンドウで、「新規」ボタンから「新規カタログ」を選択します。

2. 「カタログの作成」ダイアログで、カタログの名前を指定します。詳細は、[F1]を押すか、「カタログの作成」ダイアログ内で「ヘルプ」をクリックしてください。

3. (オプション)カタログの説明、およびカタログ管理者の電子メールを入力します。

3.7.5.2 カタログの名前変更

カタログの名前を変更できます。

カタログの名前を変更するには、次のようにします。

1. 「リソース」ウィンドウで、カタログを右クリックして、ポップアップ・メニューから「名前の変更」を選択します。

2. 「名前の変更」ダイアログで、カタログの新規の名前を指定します。詳細は、[F1]を押すか、「名前の変更」ダイアログで「ヘルプ」をクリックしてください。

3.7.6 カタログ・フォルダの操作

カタログのコンテンツを整理するためのフォルダを作成できます。

3.7.6.1 フォルダの作成方法

カタログ内の情報をフォルダで整理できます。

カタログ・フォルダを作成するには、次のようにします。

1. 「リソース」ウィンドウで、「カタログ」パネルまたは「IDE接続」パネルのカタログのポップアップ・メニューから「新規フォルダ」を選択します。詳細は、[F1]を押すか、「フォルダの作成」ダイアログ内で「ヘルプ」をクリックしてください。

2. フォルダの名前を入力します。

3.7.6.2 動的フォルダの作成方法

動的フォルダでは、カタログ・フォルダにリソースを動的に移入するための便利な方法を提供しています。フォルダのコンテンツは、フォルダを開いたときに実行される問合せ式によって定義されます。問合せ式の結果は、フォルダのコンテンツとして表示されます。

動的フォルダを作成するには、次のようにします。

1. 「リソース」ウィンドウで、「カタログ」パネルまたは「IDE接続」パネルのカタログのポップアップ・メニューから「新規動的フォルダ」を選択します。詳細は、[F1]を押すか、「動的フォルダの作成」ダイアログ内で「ヘルプ」をクリックしてください。

2. フォルダを開いたときに、このフォルダへの移入に使用される検索条件を定義します。

3.7.6.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 ソース・エディタのプリファレンスの設定方法

プリファレンスの変更により、ソース・エディタの様々な機能のデフォルト設定を変更できます。

事前定義されたキーボード・スキームを修正して、ソース・エディタのショートカット・キーを表示または変更できます。

3.8.2.1 ソース・エディタのインデント・サイズの設定方法

JDeveloperは、ソース・エディタでデフォルトのインデント・スタイルを使用します。プログラミング上便利なように、独自のインデント・サイズを設定できます。

ソース・エディタのインデント・サイズを設定するには、次のようにします。

1. メイン・メニューから、「ツール」→「プリファレンス」を選択します。詳細は、[F1]を押すか、「プリファレンス」ダイアログ内で「ヘルプ」をクリックしてください。

2. 「プリファレンス」ダイアログで、「コード・エディタ」ノード、「コード・スタイル」ページの順に選択します。

3. 「コード・スタイル」ページで、「編集」ボタンを選択します。

4. 「書式」タブで、「インデント」ノードを開き、「インデント・サイズ」を選択します。

5. 必要に応じてインデントの値を変更します。

注意:

コードの編集時に[Tab]キーを押して「タブ文字を使用」オプションの選択を解除した場合、JDeveloperでは、指定したインデント・サイズでインデントされます(デフォルトは4)。「タブ文字を使用」を選択すると、「インデント・サイズ」および「タブ・サイズ」フィールドの両方で指定された値に基づいて、JDeveloperでは、インデントにタブ文字を使用します。たとえば、インデント・サイズに4を、タブ・サイズに8を使用している場合、タブ・サイズ(8)に到達するには2つのインデント・レベル(それぞれ4つのスペース)が必要です。したがって、[Tab]を2回押して2回インデントすると、ソース・ファイルにタブ文字が挿入されます。このタブ文字によって、8つのスペースが挿入されます。

6. 「OK」をクリックしてダイアログを閉じます。

3.8.2.2 ソース・エディタのフォントの設定方法

フォント・サイズなど、ソース・エディタのフォントを設定できます。

ソース・エディタのフォントを設定するには、次のようにします。

1. メイン・メニューから、「ツール」→「プリファレンス」を選択します。詳細は、[F1]を押すか、「プリファレンス」ダイアログ内で「ヘルプ」をクリックしてください。

2. 「プリファレンス」ダイアログで、「コード・エディタ」ノード、「フォント」ノードの順に選択します。

3. フォント・ページで、フォント・タイプとフォント・サイズを選択します。必要に応じてサンプル・テキストを変更します。サンプル・テキストの表示にフォントの変更が反映されます。
デフォルトでは、すべてのシステム・フォントがロードされます。このページで使用するフォントを固定幅フォントに限定するには、「固定幅フォントのみ表示」を選択します。

4. 「OK」をクリックします。

3.8.2.3 ソース・エディタのカレット動作の設定方法

点滅、点滅速度、カレットの形など、ソース・エディタのカレット動作を設定できます。

ソース・エディタのカレットの機能を設定するには、次のようにします。

1. メイン・メニューから、「ツール」→「プリファレンス」を選択します。詳細は、[F1]を押すか、「プリファレンス」ダイアログ内で「ヘルプ」をクリックしてください。

2. 「プリファレンス」ダイアログで、「コード・エディタ」ノードを開きます。

3. 「カレットの機能」ノードを選択します。

4. 「カレットの機能」ページで、カレットの外観と機能を決定する属性を設定します。
詳細は、[F1]を押すか、ダイアログ・ページ内で「ヘルプ」をクリックしてください。

5. 「OK」をクリックします。

3.8.2.4 ソース・エディタの表示オプションの設定方法

ソース・エディタの一般的に表示機能用オプションを設定できます。 これには、ブレッドクラム、スクロール・ヒント、右マージン、カッコの一致などが含まれます。

ソース・エディタの表示オプションを設定するには、次のようにします。

1. メイン・メニューから、「ツール」→「プリファレンス」を選択します。詳細は、[F1]を押すか、「プリファレンス」ダイアログ内で「ヘルプ」をクリックしてください。

2. 「プリファレンス」ダイアログで、「コード・エディタ」ノードを開きます。

3. 「表示」ノードを選択します。

4. 「表示」ページで、右マージンの設定を入力します。

5. 「OK」をクリックします。

3.8.2.5 ソース・エディタの行の左余白の処理を設定する方法

ソース・エディタの行の左余白の表示を設定できます。JDeveloperでは、色、行選択および行番号の可視性を指定できます。

ソース・エディタの行の左余白の処理を設定するには、次のようにします。

1. メイン・メニューから、「ツール」→「プリファレンス」を選択します。詳細は、[F1]を押すか、「プリファレンス」ダイアログ内で「ヘルプ」をクリックしてください。

2. 「プリファレンス」ダイアログで、「コード・エディタ」ノードを開きます。

3. 「行の左余白」ノードを選択します。

4. 「行の左余白」ページで、行番号を表示するかどうかを決定します。

5. 他の属性を使用して、必要な行の左余白の処理を設定します。

6. 「OK」をクリックします。

3.8.2.6 ソース・エディタの構文ハイライト表示オプションの設定方法

ソース・エディタで使用される色およびフォント・スタイルを制御できます。

ソース・エディタの構文ハイライト表示オプションを設定するには、次のようにします。

1. メイン・メニューから、「ツール」→「プリファレンス」を選択します。詳細は、[F1]を押すか、「プリファレンス」ダイアログ内で「ヘルプ」をクリックしてください。

2. 「プリファレンス」ダイアログで、「コード・エディタ」ノードを開きます。

3. 「構文の色指定」ノードを選択します。

4. まず、「構文の色指定」ページで、処理する構文の適切なカテゴリを選択します。
このカテゴリのリストにある最初のスタイルの現在の設定を反映してページが表示され、この設定がハイライト表示されます。

5. 前述のカテゴリが表示された状態で、「使用可能なスタイル」リストで個々のスタイルを選択し、そのスタイルの現在の設定を表示します。

6. フォント・スタイルを選択し、背景色と前景色を必要に応じて設定します。その設定に従ってサンプル・テキストが変更されます。

7. 「OK」をクリックします。

3.8.2.7 ソース・エディタのブックマーク・オプションの設定方法

JDeveloperで作成したブックマークの永続性と検索時の処理を指定できます。

ソース・エディタのブックマーク・オプションを設定するには、次のようにします。

1. メイン・メニューから、「ツール」→「プリファレンス」を選択します。詳細は、[F1]を押すか、「プリファレンス」ダイアログ内で「ヘルプ」をクリックしてください。

2. 「プリファレンス」ダイアログで、「コード・エディタ」ノードを開きます。

3. 「ブックマーク」ノードを選択します。

4. 「ブックマーク」ページで、エディタまたはOracle JDeveloperを終了した後のブックマークの処理方法、ブックマーク間の移動方法、およびすでに存在しないと考えられる行に付けられた、ファイルの最後にあるブックマークの処理方法を決定します。

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. 挿入モードと上書きモードでの編集の集約オプションと、次の文字と前の文字の削除の集約オプションを選択または選択解除します。

6. ナビゲーションのみの変更でもUNDOを可能にする場合は、該当するチェック・ボックスをチェックします。この設定を有効にする場合は、スライダを使用し、1回のUNDOに集約するナビゲーション変更の数を設定します。

7. 「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. 「ドキュメント」ダイアログで、閉じるファイルを選択し、ドキュメントを閉じるをクリックします。

選択したファイルのみを閉じるには、次のようにします。

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に再ロードされます。確認ダイアログを表示するには、「設定」ダイアログの環境ページで、「未修正ファイルの場合、警告なしでリロード」オプションの選択を解除します。

注意:

Javaコードは、ojformat.exeを呼び出してコマンドラインからフォーマットすることもできます。ojformat.exeはJDeveloperのインストールに付属しています。

3.8.8.3 「コンポーネント」ウィンドウからソース・ファイルにコード・スニペットを挿入する方法

「コンポーネント」ウィンドウにコード・スニペットを追加した後、エディタ上に開いているファイルにそのコード・スニペットを追加できます。

他の方法として、コードの記述をより迅速および効率的にするために、ソース・エディタの作業でコード・テンプレートを使用することもできます。

「コンポーネント」ウィンドウからソース・ファイルにコード・スニペットを挿入するには、次のようにします。

1. ソース・エディタでファイルを開きます。

2. 「コンポーネント」ウィンドウが表示されていない場合は、「ウィンドウ」→「コンポーネント」を選択します。

3. 「コンポーネント」ウィンドウのドロップダウン・リストで、「コード・スニペット」または定義したスニペット・ページを選択します。
そのページに対して定義されているSnippetが、右側にリスト表示されます。リスト表示とアイコン表示を切り替えるには、右クリックしてポップアップ・メニューから表示を選択します。

4. ファイル内のSnippetを挿入する位置にカーソルを置きます。

5. 「コンポーネント」ウィンドウで、スニペットの名前またはアイコンをクリックします。

ファイル内にコード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の事前構成されたタグが用意されており、「設定」ダイアログの「タスク」ページで独自のタスク・タグを追加できます。

独自のタスク・タグを追加するには、次のようにします。

1. メイン・メニューから、「ツール」→「プリファレンス」を選択します。

2. 「プリファレンス」ダイアログで、「タスク」ノードを選択します。

3. 「タスク」ページで、ソース・タグを要件に合うよう変更します。
詳細は、[F1]を押すか、ダイアログ・ページ内で「ヘルプ」をクリックしてください。

4. 「OK」をクリックします。

ソース・コードのコメント行に関連付けるタスクを作成するには、次のようにします。

1. ソース・コード・ファイル内で、//およびタスク・タグの1つで始まるコメント行を作成します(例: //TODO)。

2. コメントの入力を続行すると、そのコメントが同時に「問題」ウインドウに項目として表示されます。

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

同一のプロジェクトあるいは外部のプロジェクトに属するソース・ファイルを比較できます。

現在編集中のファイルを保存されているバージョンと比較するには、次のようにします。

1. エディタで開いている現在のバージョンにフォーカスを当てます。

2. エディタ・ウィンドウで「履歴」タブを選択します。

保存されたファイルが、エディタ・バッファのファイルと並んで開きます。

あるファイルをディスク上の他のファイルと比較するには、次のようにします。

1. エディタで開いている現在のバージョンにフォーカスを当てます。

2. メイン・メニューから、「ファイル」→「比較対象」→「ディスク上のファイル」を選択します。

2つのファイルが、「比較」というラベルの付いたタブに並べて表示されます。

1つのファイルをプロジェクト外の別のファイルと比較するには、次のようにします。

1. 比較するエディタのファイルにフォーカスを当てます。

2. メイン・メニューから、「ファイル」→「比較対象」→「その他のファイル」を選択します。

3. 「比較対象のファイルを選択」ダイアログで、適切なファイルに移動して選択し、「開く」をクリックします。

2つのファイルが、「比較」というラベルの付いたタブに並べて表示されます。

同じプロジェクト内の2つのファイルを比較するには、次のようにします。

1. 「アプリケーション」ウィンドウで、比較する2つのファイルを選択します。

2. メイン・メニューから、「ファイル」→「比較対象」→「相互」を選択します。

2つのファイルが、「比較」というラベルの付いたタブに並べて表示されます。

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

ファイルの変更中は、いつでも最後に保存したバージョンのファイルに戻せます。

最後に保存したバージョンのファイルを回復するには、次のようにします。

1. エディタ内の変更されたファイルにフォーカスがある状態で、メイン・メニューから「ファイル」→「置換」→「ディスク上のファイル」を選択します。

2. 「置換の確認」ダイアログで、「はい」をクリックします。

最後に保存してから追加したすべての変更が元に戻ります。

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

Oracle JDeveloperには、各種コードの迅速かつ効率的な作成に役立つ強力なソース・エディタが用意されています。

3.8.11.1 開いているソース・ファイルで置換テキストを検索する方法

ソース・ファイル全体で置換するテキストを検索することができます。

テキストを置換するためのオプションを使用して、現在ソース・エディタで開いているソース・ファイルを検索するには、次のようにします。

1. エディタでファイルを開いた状態で、エディタにフォーカスがあることを確認します。

2. 検索対象のテキストが簡単に見つかった場合は、オプションでその文字列をハイライト表示できます。

3. メイン・メニューから、「検索」→「検索」を選択します。他の方法として、[Ctrl]を押しながら[F]を押します。

4. 「検索」ダイアログで、検索するテキストを入力、または選択します。
「検索文字列」ドロップダウン・リストに、JDeveloperのこのセッションで以前に検索されたテキストが表示されます。

5. 必要に応じて、他の検索パラメータも選択します。
詳細は、[F1]を押すか、ダイアログ内で「ヘルプ」をクリックしてください。

6. 「OK」をクリックします。

3.8.11.2 1つのテキスト文字列を検索する方法

ソース・ファイルで1つのテキスト文字列を検索することができます。

開いているソース・ファイル内で1つのテキスト文字列の簡易検索を実行するには、次のようにします。

1. エディタでファイルを開いた状態で、エディタにフォーカスがあることを確認します。

2. ファイル内の検索を開始する位置にカーソルを置きます。

3. メイン・メニューから、「検索」→「次をインクリメンタル検索」または「検索」→「前をインクリメンタル検索」を選択します。

4. ダイアログで、検索テキストを入力します。
入力すると、表示されている文字列の次の出現箇所にカーソルが移動します。

3.8.11.3 プロジェクトまたはアプリケーション内のすべてのファイルを検索する方法

他の方法として、検索ボックスにテキスト文字列を入力します。入力すると、表示されている文字列の次の出現箇所にカーソルが移動します。「前へ」または「次へ」ボタンを使用して、ファイル内を検索します。「大/小文字の区別」、「完全一致」または「一致した文字列を強調表示」を設定するには、検索ボックス内でクリックします。

プロジェクトまたはアプリケーション内のすべてのファイルを検索するには、次のようにします。

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を使用した、テスト・ケース、テスト・スイート、テスト・フィクスチャの作成および実行を可能にする拡張機能です。

- SQL*Plus Extension: JDeveloperの内部でSQL*Plusスクリプトのロードおよび実行を可能にする拡張機能です。

- Oracle Business Intelligence Beans: 一連の標準ベースJavaBeans(tm)で、これにより開発者はビジネス・インテリジェンス・アプリケーションを作成できます。

- JDeveloperコミュニティによる、その他のJDeveloper拡張機能。

OTNからダウンロードした拡張機能をインストールするには、次の手順を実行します。

- 現在のリリース用に作成された拡張機能については、『Oracle JDeveloper拡張機能の開発』を参照してください。

- 以前のリリースで作成された拡張機能については、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およびデータベース・ライブラリにインストール済のすべてのドキュメントを検索します。

「ヘルプ・センター」の左側には、コンテンツをナビゲートするためのタブが含まれています。

- 目次: ヘルプ・システムにあるすべてのインストール済コンテンツの目次を表示します。これには、従来のオンライン・ヘルプ、チュートリアル、開発者ガイドおよびユーザー・ガイドも含まれます。

- お気に入り - ユーザー定義のヘルプ・トピックおよびクイック検索用に保存した外部リンクのフォルダを表示します。

「ヘルプ・センター」には、右側にコンテンツおよび検索結果を表示する次のタブが含まれています。

- 「ヘルプ・コンテンツ」ビューア - 選択されたオンライン・ヘルプおよび開発者ガイドのコンテンツを表示します。選択されたコンテンツの複数のタブ付きページが開かれます。

- 検索結果 - 全文検索の結果を表示します。

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を含めて開いているすべてのウィンドウの前に維持されます。

「ヘルプ・センター」のツールバーにある「ウィンドウ」ドロップダウンから、表示するヘルプの種類を選択できます。

- 目次 - すべてのインストール済オンライン・ヘルプ・トピックおよびブックの目次を表示します。

- お気に入り - インストール済ドキュメントおよび外部ドキュメントのクイック・アクセスのための、ユーザー定義リンクのフォルダを表示します。

ヘルプ・トピック・ビューアのツールバーにある「フォント・サイズの変更」オプションを使用して、フォント・サイズを徐々に拡大または縮小できます。

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 ファイル・リスト

「ファイル・リスト」を使用すると、アプリケーション内に作成したオブジェクトの検索および操作を行えます。

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 アプリケーションの操作

「アプリケーション」ウィンドウから、複数のアプリケーションを操作できます。これには次のものがあります。

- アプリケーションのコンテンツが表示されていない初期のビューで、「新規アプリケーション」リンクを選択してアプリケーションを新規作成するか、「アプリケーションを開く」リンクを選択して既存のアプリケーションを開きます。

- 「ウィンドウ」→「window-name」を使用して、現在閉じているウィンドウを開くか、現在開いているウィンドウを前面に表示します。

- 該当するタブを右クリックするか、[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ビジネス・コンポーネント」ビュー

「アプリケーション」ウィンドウで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を使用してプロジェクトを構築する場合、ログ・ウィンドウには対応するビルド情報が表示されます。

- Maven。Mavenを使用してプロジェクトを構築すると、「ログ」ウィンドウに関連メッセージが表示されます。

- デバッガ

- 監査

- プロファイラ

ログ・ウィンドウの内容に対応したコンテキスト・メニューを表示するには、ウィンドウ内を右クリックします。ログ・ウィンドウのウィンドウとしてのコンテキスト・メニューを表示するには、タブを右クリックします。

ログ・ウィンドウのコンテキスト・メニューからは、次のことを実行できます。

- ウィンドウの内容をコピー

- ウィンドウ内のすべてのデータを選択

- ウィンドウ内のテキストの折返し

- ウィンドウの内容を消去

- ウィンドウの内容を別の形式で保存

- ウィンドウを閉じる

特定のプロセスで生成されたタブ付きセクションでは、これ以外の操作も可能な場合があります。

ウィンドウ自体のコンテキスト・メニューからは、次のことを実行できます。

- ウィンドウを閉じる

- 現在選択されているタブ以外のすべてのタブを閉じる

- ウィンドウ内のすべてのタブを閉じる

3.11.9 「問題」ウィンドウ

「問題」ウィンドウでは、アプリケーションの問題を表示および管理することができます。このウィンドウには、次の機能があります。

- ファイル、プロジェクト、ワーキング・セットまたはアプリケーション内の監査違反が表示され、問題を解決するための情報が提供されます。コード・アシストのコード監査プロファイルによって、報告されるコード監査違反が決まります。

- 「メイク」または「再ビルド」の実行後にコンパイラにより検出されたすべての警告およびエラーのリストが表示されます。
コンパイラ操作用の情報タブを固定して、タブ間を切り替えることにより、複数の「メイク」と「再ビルド」の結果を表示することができます。

- ソース・コード内で指定されているタスクを表示します。
Javaソース・ファイルで作業している場合は、// TODOと入力(つまり、コメントを作成してJDeveloperで認識されるソース・タグを使用)すると、自動的にタスクが作成されます。「問題」ウィンドウに、これらのタスクが表示されます。

- 「問題」ウィンドウ内の項目をダブルクリックすると、対応するソース・コードが表示されます。

次の表は、「問題」ウィンドウのツールバーを示しています。

要素

説明

エラー

選択範囲内のエラーのみの表示に切り替えます。

警告

選択範囲内の警告のみの表示に切り替えます。

不完全

選択範囲内の不完全問題のみの表示に切り替えます。

情報

選択したファイル内のアドバイザリを示す問題の数のみを表示するか、ファイル内のアドバイザリを示す問題をリスト表示するかを切り替えます。

タスク

タスクのみの表示に切り替えます。

ビュー・オプションの構成

次のビュー・オプションを構成できます。

- 表ビュー: フラットな表形式で項目が表示されます。

- ツリー・ビュー: ノード・ツリー構造で項目が表示されます。このビューでは、項目はまずプロジェクトでソートされ、次にファイルでソートされます。

- 現在の問題のスコープ: 表示される問題のスコープを指定できます。

- プリファレンス: 「プリファレンス」ダイアログの「問題」ページが開きます。ここで、「問題」ウィンドウの動作を設定できます。

3.11.10 依存性エクスプローラ

依存性エクスプローラは、プロジェクト・アーティファクト間の依存性についての情報を提供します。.jspxなどのADFアプリケーションの「アプリケーション」ウィンドウのノードから、またはダイアグラムのノードから、依存性エクスプローラを開くことができます。

依存性エクスプローラを開くには、次のようにします。

1. 「アプリケーション」ウィンドウで、依存性を確認する要素を右クリックします。

2. コンテキスト・メニューで、「依存性の参照」を選択します。
または、「検索」→「依存性の参照」を選択します。

詳細は、「依存性エクスプローラ」ウィンドウから[F1]をクリックします。

依存性エクスプローラの「フィルタ」ボタンをクリックして、含めないファイルのタイプを選択することにより、表示されるファイルのタイプをフィルタリングできます。

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

外部ツールとは、JDeveloperのカスタム・メニュー項目およびカスタム・ツールバー・ボタンのことで、システムにインストールされているアプリケーションで、JDeveloperのパッケージには含まれていないアプリケーションを起動するものです。

3.12.1 JDeveloperでサポートされている外部プログラムを確認する方法

JDeveloperに追加できるように、JDeveloperがすでに認識しているアプリケーションを識別できます。

JDeveloperで事前にサポートが構成されているすべてのプログラムを検索するには、次のようにします。

1. メイン・メニューから、「ツール」→「外部ツール」を選択します。

2. 「外部ツール」ダイアログで、「ツールの検索」をクリックします。

3.12.2 JDeveloperから外部プログラムへのアクセスを追加する方法

JDeveloper IDEから外部プログラムへのアクセスを追加できます。

JDeveloperから外部プログラムへのアクセスを追加するには、次のようにします。

1. メイン・メニューから、「ツール」→「外部ツール」を選択します。

2. 「外部ツール」ダイアログで、「新規」をクリックします。ウィザードの指示に従います。

3.12.3 外部プログラムの外観を変更する方法

外部アプリケーションの設定を変更したり、JDeveloper IDEから外部アプリケーションを削除したりできます。

外部プログラムの表示方法を変更する、またはJDeveloperから外部プログラムへのアクセスを削除するには、次のようにします。

1. メイン・メニューから、「ツール」→「外部ツール」を選択します。

2. 「外部ツール」ダイアログで、「編集」または「削除」をクリックします。JDeveloperから外部ツールのオプション、表示、統合または利用可能性を編集している場合は、対応するタブを選択して、値を変更します。有効な値を選択する方法のヘルプを表示するには、「ヘルプ」をクリックしてください。

3. 「OK」をクリックします。変更がただちに反映されます。

第II部

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

この部では、Oracle JDeveloperによるアプリケーションの開発方法について説明します。アプリケーションを効率的にビルド、テスト、実行およびデプロイする方法についての情報が掲載されています。

この部の内容は次のとおりです。

- 第4章「Oracle JDeveloperでのアプリケーションの開発のスタート・ガイド」
この章では、JDeveloperで使用可能なアプリケーションを開発するための機能の概要を示し、Oracle JDeveloper IDEでアプリケーションとプロジェクトを効果的に使用する方法について説明します。

- 第5章「モデリングを使用するアプリケーション開発」
この章では、モデリングの使用方法について説明します。この章では、ダイアグラムの作成方法と管理方法について説明します。

- 第6章「ソース・コントロールを使用したアプリケーションのバージョニング」
この章では、JDeveloperで使用できるバージョン・コントロールの機能について説明します。

- 第7章「アプリケーションのビルド、実行およびデバッグ」
この章では、JDeveloperのビルド、実行およびデバッグ機能の概要を説明します。

- 第8章「アプリケーションの監査とプロファイリング」
この章では、JDeveloperにおける監査、プロファイリングおよびテストの機能についての概要を説明します。

- 第9章「アプリケーションのデプロイ」
この章では、JDeveloperでアプリケーションをデプロイする方法について説明します。

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

この章では、JDeveloperで使用可能なアプリケーションを開発するための機能の概要について説明します。

この章には次の項が含まれます:

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

- 第4.2項「アプリケーションおよびプロジェクトの作成」

- 第4.3項「アプリケーションおよびプロジェクトの管理」

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

JDeveloperでは、アプリケーションを開発するために複数のツールおよび機能を提供しています。これらの機能を使用して、アプリケーションを効率的に構築、テスト、実行およびデプロイできます。次の機能が含まれます。

- アプリケーション、プロジェクトおよびファイルに関連付けられた様々なオブジェクト・タイプおよびリソースを管理および操作するための各種ウィンドウ。

- 様々なタイプのソース・ドキュメントの作成作業を簡略化するための複数のビジュアル編集およびコード編集用ツール。これらのエディタはIDE内の他のウィンドウと統合されているため、ドラッグ・アンド・ドロップ操作や、統合された様々なツール間での同時更新、自動更新がサポートされています。

- ソース・コード、プロセス、およびアプリケーション・モジュールまたはパッケージのテストおよび分析作業を簡略化するための複数のツール。

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

アプリケーションは、制御構造における最上位レベルです。作業中に必要なすべてのオブジェクトが表示されます。アプリケーションは、プログラム開発中のすべてのプロジェクトを追跡します。プロジェクトは、JDeveloperのプログラムまたはプログラムの一部を定義する一連のファイルの論理コンテナです。プロジェクトには、たとえば、複数層アプリケーションの様々な層、あるいは複合アプリケーションの様々なサブシステムなどを表すファイルが含まれます。これらのファイルは任意のディレクトリに配置でき、かつ、単一のプロジェクトに含めることができます。

アプリケーション内のすべてのプロジェクトは、通常そのアプリケーションの下に表示されます。ワーキング・セットを使用してプロジェクトをフィルタした場合、プロジェクトはアプリケーションの下に表示されません。アプリケーションまたはプロジェクトを閉じると、そのアプリケーションまたはプロジェクト内のファイルに対して開いているすべてのエディタまたはビューアが閉じられ、ファイルがメモリーからアンロードされます。アプリケーションおよびプロジェクトのコントロール・ファイルを、ディスクから削除せずにIDEから削除できます。(これは他のタイプのファイルには当てはまりません。他のタイプのファイルは、IDEから削除された時点でディスクから削除されます)。JDeveloperでは、様々なファイル・タイプを認識でき、ファイルをダブルクリックした場合、各ファイル・タイプが適切なビューアまたはエディタで表示されます。

プロジェクトをアプリケーションに追加する際には、次の処理を選択できます。

- 新規プロジェクトを作成し、特定のオブジェクトおよび属性を定義します。

- デフォルトのプロジェクト・プロパティを継承する新規の空プロジェクトを作成します。

- 新規プロジェクト内に、JDeveloper以外の既存のファイル・セットを開きます。

プロジェクトは、ディレクトリから直接ファイル・リストを制御します。アプリケーションおよびパッケージは、プロジェクト内のファイルの格納場所および格納方法も定義します。

注意:

同一オブジェクト(物理ファイル)が複数のプロジェクトに表示される場合があります。これは、あるプロジェクト内のオブジェクトについて実行されるすべてのアクションが他のプロジェクトで実行されることを意味します(ただし、プロジェクトがコンパイルされて初めて同じ効果が表れます)。パッケージの場合、2つ以上のプロジェクトでパッケージを共有できません。ただし、パッケージの生成に使用されたソースパスも共有しており、パッケージがすでにコンパイル済で変更の予定がない場合を除きます。

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

アプリケーションは、制御構造における最上位レベルです。作業中に必要なすべてのオブジェクトが表示されます。アプリケーションは、プログラム開発中のすべてのプロジェクトを追跡します。特定の機能範囲を持つアプリケーションを作成するか、任意の機能を持つようにカスタマイズできる1つのプロジェクトが含まれるカスタム・アプリケーションを作成できます。

特定の機能範囲を持つアプリケーションを新規作成するには、次のようにします。

1. 「ファイル」→「新規」を選択して「新規ギャラリ」を開きます。

2. 「新規ギャラリ」の「カテゴリ」ツリーで、「一般」の「アプリケーション」を選択します。

3. 「項目」リストで、作成するアプリケーションのタイプをダブルクリックします。

4. 「アプリケーションの作成」ダイアログで、名前やディレクトリなど、アプリケーションの詳細を入力します。ウィザードに関するヘルプを表示するには、[F1]を押します。

5. 「次へ」をクリックして「プロジェクト名」ページを開き、オプションでプロジェクトの詳細を入力します。

6. 終了したら、「終了」をクリックします。

カスタム・アプリケーションを新規作成するには、次のようにします。

1. 「ファイル」→「新規」を選択して「新規ギャラリ」を開きます。

2. 「新規ギャラリ」の「カテゴリ」ツリーで、「一般」の「アプリケーション」を選択します。

3. 「項目」リストで、「カスタム・アプリケーション」をダブルクリックします。カスタム・アプリケーションの作成・ウィザードが開きます。

4. 「カスタム・アプリケーションの作成」ダイアログで、名前やディレクトリなど、アプリケーションの詳細を入力します。ウィザードに関するヘルプを表示するには、[F1]を押します。

5. 「次へ」をクリックして「プロジェクト名」ページを開き、オプションでプロジェクトの詳細を入力します。

6. 終了したら、「終了」をクリックします。

4.2.2 プロジェクトの作成方法

プロジェクトは、JDeveloperのプログラムまたはプログラムの一部を定義する一連のファイルの論理コンテナです。特定の機能セットで構成されているアプリケーションを作成することもできます。

特定の機能範囲を持つプロジェクトを新規作成するには、次のようにします。

1. 「アプリケーション」ウィンドウで、プロジェクトを含むアプリケーションを選択します。

2. 「アプリケーション・メニュー」アイコンをクリックして「新規プロジェクト」を選択し、「新規ギャラリ」の「プロジェクト」ページを開きます。

3. 「項目」リストで、作成するプロジェクトのタイプをダブルクリックします。

4. 「プロジェクトの作成」ウィザードを完了して「終了」をクリックします。ウィザードに関するヘルプを表示するには、[F1]を押します。

「アプリケーション」ウィンドウに新しいプロジェクトが表示されます。このプロジェクトは、あらかじめ設定されているデフォルト・プロパティをすべて継承します。プロジェクトのプロパティを変更する場合は、ファイル名をダブルクリックするか、右クリックして「プロジェクト・プロパティ」を選択します。

カスタム・プロジェクトを新規作成するには、次のようにします。

1. 「アプリケーション」ウィンドウで、新しいプロジェクトを含むアプリケーションを開きます。

2. 「アプリケーション・メニュー」アイコンをクリックして「新規プロジェクト」を選択し、「新規ギャラリ」の「プロジェクト」ページを開きます。

3. 「項目」で、「カスタム・プロジェクト」を選択します。

4. 「OK」をクリックします。

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

「アプリケーション」ウィンドウを使用すれば、アプリケーションとプロジェクトを効果的に管理できます。「アプリケーション」ウィンドウは、プロジェクトを高レベルな論理コンポーネントという形で構成し、アプリケーションとそこに含まれるデータの論理的なビューを示します。このウィンドウは、様々な拡張機能をプラグインしてデータの編成に使用できるインフラストラクチャと、一貫性のある抽象的な形式のメニューを備えています。「アプリケーション」ウィンドウには個々のファイル(Javaソース・ファイルなど)を含めることができますが、複雑なデータを統合するようにも設計されています。エンティティ・オブジェクト、UMLダイアグラム、EJB、Webサービスなどの複雑なデータ型は、このウィンドウに単一ノードとして表示されます。これらの抽象ノードを構成する生のファイルは、構造ウィンドウに表示されます。

「アプリケーション」ウィンドウに表示されるアプリケーションには、1つ以上のプロジェクトが含まれます。プロジェクト内には、そのプロジェクトのパスのルート・フォルダがあります。プロジェクト内容をディレクトリ・ツリーまたはファイル・リストとして表示し、パッケージをツリーまたはリストとして表示することを選択できます。また、パッケージとディレクトリ内のノードはタイプでソートできます。

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

新規のアプリケーションおよびプロジェクトを最初から作成することも、既存のアプリケーションおよびプロジェクトを開くこともできます。作成またはインポートしたアプリケーションは、すぐに「アプリケーション」ウィンドウの「アプリケーション」ノードに追加されます。作成またはインポートしたプロジェクトは、すぐに選択したアプリケーションに追加されます。

既存のアプリケーションを開き、「アプリケーション」ウィンドウに追加するには、次のようにします。

1. 「アプリケーション」ウィンドウのドロップダウン・リストから「アプリケーションを開く」を選択します。

2. アプリケーション・ファイルの場所まで移動し、ファイルを選択します。
「ファイル・タイプ」フィールドには、.jwsファイルを指定するか、すべてのタイプを表示するようにしてください。

3. 「開く」をクリックします。
アプリケーションは「アプリケーション」ウィンドウのアプリケーション・リストに追加されます。

既存のプロジェクトを開き、アプリケーションに追加するには、次のようにします。

1. 「アプリケーション」ウィンドウで、プロジェクトを追加するアプリケーションを選択します。

2. メイン・メニューから、「ファイル」→「開く」を選択します。

3. プロジェクト・ファイルの場所まで移動し、ファイルを選択します。
「ファイル・タイプ」フィールドには、.jprファイルを指定するか、すべてのタイプを表示するようにしてください。

4. 「開く」をクリックします。
プロジェクトがアクティブなアプリケーションに追加されます。

4.3.2 新規メニューを使用してプロジェクトに項目を簡単に追加する方法

プロジェクトを作成した後、プロジェクト・ポップアップ・メニューを使用して、プロジェクトの機能に関連するコンポーネントを直接作成できます。

プロジェクト・ポップアップ・メニューを使用して項目を追加するには、次のようにします。

1. 項目を追加するプロジェクトを右クリックして、「新規」をクリックします。また、「アプリケーション」ウィンドウでプロジェクトを選択した後、ツールバーの「新規」ボタンをクリックする方法もあります。

注意:

「ファイル」→「新規」メニューには、プロジェクト・ポップアップ・メニューと同じ項目が表示され、アプリケーションレベルの追加項目も含まれます。

2. 「新規」メニューで、追加する項目をクリックします。新規ギャラリから項目を選択する場合、「ギャラリから」をクリックします。ポップアップ・メニューの2つ目のセクションには、現在のプロジェクト・タイプに対して最近作成された項目のリストが含まれます。「新規」メニューの3つ目のセクションには、最近作成された項目のリストが含まれます。

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

様々なタイプの新規ファイルを最初から作成したり、既存のファイルを開くことができます。既存のファイルを開く場合、ファイルをファイル構造とともに既存のプロジェクトにインポートするか、このファイルを使用して完全に新規のプロジェクトを作成します。

あるいは、既存のプロジェクトにソース・ファイルを追加できます。

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

新規プロジェクトを作成しながら、既存のファイルをJDeveloperにインポートできます。

既存のファイルを開き、新規JDeveloperプロジェクトにインポートするには、次のようにします。

1. 「アプリケーション」ウィンドウで、新しいプロジェクトを追加するアプリケーションを作成または選択します。

2. アプリケーションを選択した状態で「ファイル」→「新規」を選択し、「新規ギャラリ」を開きます。

3. 「カテゴリ」ツリーで、「一般」を開いて「プロジェクト」を選択します。

4. 「項目」リストで「既存のソースからのプロジェクト」をダブルクリックします。

5. 「既存のソースからのプロジェクト」ウィザードの「場所」ページで、新規.jprファイルの名前を入力するか、デフォルトを受け入れます。
ウィザードのこのページまたは後続のページの詳細は、[F1]を押すか、ウィザード内で「ヘルプ」をクリックしてください。

あるいは、「ファイル」→「インポート」を選択し、「Javaソース」または「ソースを新規プロジェクトへ」を選択する方法もあります。

6. デフォルトのディレクトリ・パスを受け入れるか、新規パスを入力するか、または「参照」をクリックしてパスまで移動します。

7. 「次へ」をクリックします。

8. 「Javaコンテンツ」領域の「ソースの指定」ページで、「追加」をクリックして「ディレクトリの選択」ダイアログを開きます。

9. このダイアログで、追加するファイルを含むディレクトリまで移動します。「選択」をクリックしてダイアログを閉じ、ウィザードにディレクトリを表示します。

10. ディレクトリの追加後、ファイル・フィルタまたはディレクトリ・フィルタを適用できます。フィルタを適用するには、「対象」タブの横にある「追加」をクリックします。

11. インポート・リストの完了後、オプションで「プロジェクト・ディレクトリにファイルをコピー」をクリックし、元のソースを指定するかわりに、選択したファイルをプロジェクトにコピーします。

12. デフォルトの出力ディレクトリとデフォルトのパッケージを定義します。

13. 「終了」をクリックします。
新規プロジェクトが選択したアプリケーション・ノードの下に表示され、インポートされたファイルが移入されます。

「プロジェクト・プロパティ」ダイアログで、プロジェクト・ディレクトリ構造を調整できます(リソース・ディレクトリを指すようにするなど)。

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

WARファイルから抽出したコンテンツを含む新規プロジェクトを作成しながら、JDeveloperにWARファイルをインポートできます。

WARファイルを開き、新規JDeveloperプロジェクトにインポートするには、次のようにします。

1. 「アプリケーション」ウィンドウで、新しいプロジェクトを追加するアプリケーションを作成または選択します。

2. アプリケーションを選択した状態で「ファイル」→「新規」を選択し、「新規ギャラリ」を開きます。

3. 「カテゴリ」ツリーで、「一般」を開いて「プロジェクト」を選択します。

4. 「項目」リストで、「WARファイルからのプロジェクト」をダブルクリックします。

5. 「WARファイルからのプロジェクト作成」ウィザードを終了します。
このウィザードを使用する際の詳細は、[F1]を押します。

このウィザードでWARファイルを分析し、そのコンテンツを抽出します。

新規プロジェクトが選択したアプリケーション・ノードの下に表示され、インポートされたファイルが移入されます。

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

EARファイルをインポートすると、JDeveloperでは新規アプリケーションを作成し、抽出したEARモジュールに基づいたプロジェクトを移入します。EARファイルのコンテンツは、既存のアプリケーションやプロジェクトに追加できません。

JDeveloperを使用して単に配布するEARファイルをインポートする場合には、この手順を使用しないでください。これを行うには、新しいアプリケーションとプロジェクトを作成し、プロジェクト・ディレクトリにEARファイルをコピーします(またはプロジェクトのコンテンツにそのファイルの場所を追加します)。EARファイルは、「アプリケーション」ウィンドウ内のプロジェクトの「アプリケーション・ソース」ノードの下に表示されます。ここからファイルを配布するには、ファイルを右クリックして「配布先」を選択します。

EARファイルを開き、新規JDeveloperアプリケーションにインポートするには、次のようにします。

1. メイン・メニューから、「ファイル」→「インポート」を選択し、「EARファイル」をダブルクリックします。
EARファイルのインポート・ウィザードはコンテキストに依存しないため、最初に「アプリケーション」ウィンドウで固有の選択をする必要はありません。

2. 「EARファイルのインポート」ウィザードを終了します。
「終了」ページに最後のアプリケーションのコンテンツが表示されます。

3. 「終了」をクリックしてリストを受け入れ、アプリケーションを作成します。
「アプリケーション」ウィンドウに新規アプリケーションが表示されます。アプリケーションには、インポートされたモジュールに基づいたプロジェクトが移入されています。

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

様々なタイプの新規ファイルを最初から作成したり、既存のファイルを開くことができます。既存のファイルを開く場合、ファイルをファイル構造とともに既存のプロジェクトにインポートするか、このファイルを使用して完全に新規のプロジェクトを作成します。

既存のソースから新規プロジェクトを作成することもできます。

注意:

「既存ソースのインポート」ウィザードを使用して、プロジェクトに.zipファイルまたは.jarファイルを追加できます。これを使用して.warファイルや.earファイルを追加することはできません。.warファイルの場合、そのコンテンツをプロジェクトへ適切に抽出するには、「WARファイルのインポート」ウィザードを使用する必要があります。EARファイルの場合、そのコンテンツを新規アプリケーションへ抽出するには、「EARファイルのインポート」ウィザードを使用する必要があります。

「既存ソースのインポート」ウィザードを使用して既存のファイルを開き、プロジェクトに追加するには、次のようにします。

1. 「アプリケーション」ウィンドウで、ファイルを追加するプロジェクトを選択します。

2. メイン・メニューから、「ファイル」→「インポート」を選択します。

3. 「インポート」ダイアログで「既存ソース」をダブルクリックします。

4. 「既存ソースのインポート」ウィザードの「ソース・ファイルとディレクトリの追加」ページで「追加」をクリックして「ファイルまたはディレクトリを選択」ダイアログを開きます。
ウィザードのこのページまたは後続のページの詳細は、[F1]を押すか、ウィザード内で「ヘルプ」をクリックしてください。

5. このダイアログで、追加するファイルを含むディレクトリに移動するか、または個々のファイルに移動し、「開く」をクリックしてダイアログを閉じ、ウィザードにファイルを表示します。
このダイアログには必要があるたびに戻ることができます。ウィザードに戻るたびに「追加」をクリックし、必要なだけ個々のファイルまたはディレクトリを追加します。

6. ファイルまたはディレクトリの追加が完了し、ウィザードに戻った後は、個々のファイルの選択または選択解除を行うか、フィルタを適用することによって、リストを修正できます。フィルタを適用するには、「ファイル・フィルタ」または「ディレクトリ・フィルタ」をクリックします。

7. インポート・リストの完了後、オプションで「プロジェクト・ディレクトリにファイルをコピー」をクリックし、元のソースを指定するかわりに、選択したファイルをプロジェクトにコピーします。このオプションを選択する場合、デフォルトのsrcディレクトリをそのまま使用するか、新しいディレクトリを入力する、または「参照」をクリックしてディレクトリに移動します。

8. 「次へ」をクリックします。

9. 「終了」ページで、新規プロジェクト・ファイルのリストを確認します。このリストを受け入れるには、「終了」をクリックします。
選択したプロジェクトにファイルが追加されます。

4.3.5 プロジェクトでのフォルダとJavaパッケージの管理

JDeveloperでは、プロジェクト・ファイルを編成しやすいように、プロジェクト内にカスタム・フォルダまたはJavaパッケージを作成できます。

4.3.5.1 フォルダまたはJavaパッケージの作成方法

フォルダまたはJavaパッケージを作成するには、次のようにします。

1. 「アプリケーション」ウィンドウで、カスタム・フォルダを作成するプロジェクトまたはフォルダを選択します。

2. 「ファイル」メニューで「新規」を選択します。

3. 「新規ギャラリ」の「カテゴリ」で、「一般」を選択します。

4. 「項目」で「フォルダ」を選択し、新規フォルダを作成します。Javaパッケージを作成するには、「項目」で「Javaパッケージ」を選択します。

5. 「フォルダの作成」ダイアログまたは「Javaパッケージの作成」ダイアログで、フォルダまたはJavaパッケージの名前と、それを作成するディレクトリを指定します。

4.3.5.2 フォルダまたはJavaパッケージの削除方法

フォルダまたはJavaパッケージを削除するには、次のようにします。

1. 削除するフォルダまたはJavaパッケージを選択します。

2. 「ファイル」メニューで「削除」を選択します。

3. 「フォルダの削除の確認」ダイアログで、フォルダまたはJavaパッケージの削除を確認します。フォルダのファイルを表示をクリックすると、フォルダまたはJavaパッケージに含まれるファイルが表示されます。

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

ワーキング・セットによって、プロジェクトでファイルのサブセットを表示するように「アプリケーション」ウィンドウを構成できます。これは特に、大規模なプロジェクトを操作する際に便利です。ワーキング・セットを作成するまで、デフォルトのワーキング・セットはありません。ワーキング・セットを作成すると、「すべてのファイル」オプションにより、デフォルト・ビューに戻ることができます。

プロジェクトの実行およびデバッグを、アプリケーション全体の実行およびデバッグと同じ方法で行えます。これにより、アプリケーション全体に影響を及ぼしたり、余分な負荷をかけたりすることなく、Java EEアプリケーションなどの大規模アプリケーションのサブセットのみで作業できます。

ワーキング・セットを定義するには、「アプリケーション」ウィンドウのファイルまたはコンテナから選択するか、「ワーキング・セットの管理」ダイアログで対象とするフィルタ・パターンと対象外とするフィルタ・パターンを指定します。

4.3.6.1 オブジェクトをワーキング・セットにグループ化する方法

「アプリケーション」ウィンドウ内のオブジェクトをワーキング・セットにグループ化するには、次のようにします。

1. 「アプリケーション」ウィンドウで、新規のワーキング・セットに含めるオブジェクトを選択します。

2. 「アプリケーション」ウィンドウで、「ワーキング・セット」アイコンをクリックし、「選択から新規」をクリックします。
これにより「別名保存」ダイアログが開きます。詳細は、[F1]を押すか、「別名保存」ダイアログ内で「ヘルプ」をクリックします。

3. ワーキング・セットの名前を入力し、「OK」をクリックします。

4.3.6.2 ファイル・フィルタとディレクトリ・フィルタを定義してワーキング・セットを作成する方法

ファイル・フィルタとディレクトリ・フィルタを定義してワーキング・セットを作成するには、次のようにします。

1. 「アプリケーション」ウィンドウで、「ワーキング・セット」アイコンをクリックし、「ワーキング・セットの管理」を選択します。
この操作により、「ワーキング・セット」ダイアログが開きます。左側のツリーを使用して、含めるプロジェクトを選択します。右側のパネルで、現在のプロジェクトに含めるファイルを選択します。詳細は、[F1]を押すか、「ワーキング・セット」ダイアログ内で「ヘルプ」をクリックします。

2. 「別名保存」をクリックして、ワーキング・セットを保存します。

4.3.6.3 「ログ」ウィンドウの検索結果からワーキング・セットを作成する方法

検索範囲に基づいて、検索結果をワーキング・セットとして保存することができます。

「ログ」ウィンドウの検索結果からワーキング・セットを作成するには、次のようにします。

1. 「ログ」ウィンドウで右クリックし、コンテキスト・メニューから「ワーキング・セットとして保存」を選択します。

2. 「ワーキング・セットの作成」ダイアログで、ワーキング・セットの名前を入力します。

4.3.6.4 現在のワーキング・セットを特定する方法

現在使用しているワーキング・セットを確認するには次のようにします。

- 「アプリケーション」ウィンドウで、「ワーキング・セット」アイコン上にマウスを置きます。現在のワーキング・セットの名前がツールチップとして表示されます。または、「ワーキング・セット」アイコンをクリックして、アクティブ・ワーキング・セットがチェックされているメニューを表示します。

4.3.6.5 アクティブ・ワーキング・セットを変更する方法

アクティブ・ワーキング・セットを変更するには、次のようにします。

- 「アプリケーション」ウィンドウで、「ワーキング・セット」アイコンをクリックし、開くワーキング・セットを選択します。
このワーキング・セットに含まれていないファイルは「アプリケーション」ウィンドウから削除されますが、エディタは閉じません。

4.3.6.6 ワーキング・セットのファイルおよびプロジェクトを編集する方法

ワーキング・セットのファイルおよびプロジェクトを編集するには、次のようにします。

1. 「アプリケーション」ウィンドウで、「ワーキング・セット」アイコンをクリックし、「ワーキング・セットの管理」を選択します。
この操作により、「ワーキング・セット」ダイアログが開きます。詳細は、[F1]を押すか、「ワーキング・セット」ダイアログ内で「ヘルプ」をクリックします。

2. 「ワーキング・セット」ドロップダウン・リストから、変更するワーキング・セットを選択します。

3. 必要に応じて変更を行います。

4.3.6.7 「アプリケーション」ウィンドウにすべてのファイルを表示する方法

「アプリケーション」ウィンドウですべてのファイルを表示するビューに戻るには、次のようにします。

- 「アプリケーション」ウィンドウで、「ワーキング・セット」アイコンをクリックし、(すべてのファイル)を選択します。

4.3.6.8 ワーキング・セットを実行およびデバッグする方法

ワーキング・セットを実行およびデバッグするには、次のようにします。

1. 実行またはデバッグするワーキング・セットを使用していることを確認します。これは、Java EEモジュール(Webアプリケーション、EJBモジュール)を使用しているとみられるプロジェクトおよびすべての依存性を含みます。
(「プロジェクト・プロパティ」ダイアログの「依存性」ページで)依存性が明確なプロジェクトはすべて、ワーキング・セットから対象外とされても、含まれることに注意してください。

2. 「実行」→「現在のワーキング・セットを使用(Java EEのみ)」を選択します。これで、「アプリケーション」ウィンドウで、ソース・エディタやファイルやプロジェクトのポップアップ・メニューを開く場合、実行およびデバッグのオプションは名前の一部に「ワーキング・セット」が付きます。たとえば、「実行(ワーキング・セット)」または「デバッグ(ワーキング・セット)」となります。

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

場合によっては、プロジェクトに直接追加することなくファイルを参照することが必要になります。ファイルは、プロジェクトに追加せずにJDeveloper IDEに取り込むことができます。

JDeveloperでファイルをプロジェクトに追加せずに参照するには、次のようにします。

1. メイン・メニューから、「ファイル」→「開く」を選択します。
ファイルの参照のみを行う場合は、「アプリケーション」ウィンドウで現在どのノードが選択されていてもかまいません。

2. 開くファイルまで移動します。ファイル・タイプ・フィールドでは、適切なファイル・タイプを指定するか、すべてのファイル・タイプを表示するよう指定してください。

3. ファイルを選択します。ファイルまたはディレクトリは、必要な数だけリストから選択できます。
アーカイブ・ファイルは1個につき2個表示され、一方は仮想ディレクトリ、もう一方はファイルとして表示されます。アーカイブ・ファイルを開く場合、リストではディレクトリとして選択します。

4. 選択を行い、「開く」をクリックします。

4.3.8 アーカイブの表示方法

JDeveloperで任意のアーカイブ・ファイルを開くことにより、そのアーカイブの内容を簡単にインスペクトできます。アーカイブの内容を既存のプロジェクトまたは新規JDeveloperプロジェクトに追加できます。

JDeveloperでアーカイブを開き、その内容を表示するには、次のようにします。

1. メイン・メニューから、「ファイル」→「開く」を選択します。
アーカイブ内容の参照のみを行う場合は、「アプリケーション」ウィンドウで現在どのノードが選択されていてもかまいません。

2. アーカイブを含むディレクトリまで移動します。アーカイブ・ファイルは1個につき2個表示され、一方は仮想ディレクトリ、もう一方はファイルとして表示されます。
アーカイブ・ファイルが表示されない場合、すべてのファイル・タイプが表示されていることを再確認してください。

3. アーカイブの2回目の表示(ファイルとしてのアーカイブ)を選択し、「開く」をクリックします。

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

.gif、.jpg、.jpegまたは.pngファイルは、JDeveloper内から簡単に表示できるようになります。

JDeveloperでイメージを開いて表示するには、次のようにします。

1. メイン・メニューから、「ファイル」→「開く」を選択します。
イメージの参照のみを行う場合は、「アプリケーション」ウィンドウで現在どのノードが選択されていてもかまいません。

2. 開くイメージまで移動します。ファイル・タイプ・フィールドでは、すべてのファイル・タイプまたはイメージ・タイプを指定してください。

3. イメージを選択します。

4. 選択を行い、「開く」をクリックします。
イメージがJDeveloperのメインの作業領域に表示されます。

JDeveloperにすでにインポートされているイメージを表示するには、次のようにします。

1. 「アプリケーション」ウィンドウで、イメージ・ファイルを選択します。

2. ファイルをダブルクリックするか、右クリックして「開く」を選択します。

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

「デフォルト・プロジェクト・プロパティ」ダイアログで指定するプロジェクト・プロパティは、その後作成するすべてのプロジェクトに対し、アプリケーションに関係なく適用されます。「プロジェクト・プロパティ」ダイアログで指定するプロジェクト設定は、現在のプロジェクトにのみ適用されます。カスタム・プロパティを設定し、現在のプロジェクトで設定されたプロパティをオーバーライドできます。これは、マルチユーザー開発環境で特に役立ちます。カスタム・プロパティは.jprファイルには格納されません。

個々のプロジェクトに対してプロジェクト・プロパティを設定した場合、そのプロジェクトについてのみデフォルト値がオーバーライドされます。

プロジェクトのデフォルト設定を表示または変更するには、次のようにします。

1. メイン・メニューから、「アプリケーション」→「デフォルト・プロジェクト・プロパティ」を選択します。

2. 「デフォルトのプロジェクト・プロパティ」ダイアログで、適切なカテゴリを選択します。

3. 必要に応じて、各プロパティを表示または設定します。

4. 完了後、「OK」をクリックします。

デフォルトのプロジェクト・プロパティの設定手順は、各プロジェクトのプロパティ設定の手順と同じです。ただしデフォルトのプロパティは、最初に各プロジェクトを選択する必要がありません。「デフォルト・プロジェクト・プロパティ」ダイアログからは設定できないプロジェクト・プロジェクトもあるので注意してください。

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

今後作成するすべてのプロジェクトに共通のプロジェクト・プロパティを設定することも、個々のプロジェクトのプロパティを微調整することもできます。個々のプロジェクトに対してプロジェクト・プロパティを設定した場合、そのプロジェクトについてのみデフォルト値がオーバーライドされます。

コンパイルまたはデバッグなどの特定のタスクに基づいて、追加のプロジェクト・プロパティも使用可能です。

4.3.11.1 個々のプロジェクトの現在の出力パスを表示または変更する方法

個々のプロジェクトについて、現在の出力パスを表示または変更できます。

個々のプロジェクトについて、現在の出力パスを表示または変更するには、次のようにします。

1. 「アプリケーション」ウィンドウで、適切なプロジェクトを選択します。

2. メイン・メニューから、「アプリケーション」→「プロジェクト・プロパティ」を選択するか、右クリックして「プロジェクト・プロパティ」を選択します。
「プロジェクト・プロパティ」ダイアログが開き、最後のページに入力パスが表示されます。

3. 「プロジェクトのソースパス」ページで、新規の値を入力するか、「参照」をクリックして、出力ディレクトリに必要な変更を加えます。

4. 完了後、「OK」をクリックします。

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

ターゲットJava SEの設定では、プロジェクトのコンパイル時および実行時にJDeveloperが使用するJava SEを指定します。

個々のプロジェクトについて、現在のJava SEを表示または変更するには、次のようにします。

1. 「アプリケーション」ウィンドウで、適切なプロジェクトを選択します。

2. メイン・メニューから、「アプリケーション」→「プロジェクト・プロパティ」を選択するか、右クリックして「プロジェクト・プロパティ」を選択します。
「プロジェクト・プロパティ」ダイアログが開き、共通の入力パスが表示されるか、最後に表示していたページが表示されます。

3. 「ライブラリとクラスパス」ページに、プロジェクトに使用される「Java SEバージョン」が表示されます。新規のJava SEを定義するには、「変更」をクリックします。

4. 完了後、「OK」をクリックします。

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

一般に、複合アプリケーションは複数のプロジェクトで構成されており、これらのプロジェクトは依存性によって関連している可能性があります。つまり、プロジェクトAがプロジェクトBのクラスまたはリソースを使用する場合、プロジェクトAはプロジェクトBに依存している必要があります。この依存性が設定されている場合、プロジェクトAをコンパイルすると、プロジェクトBが自動的にコンパイルされます。

デプロイメント・プロファイルの依存性は、「ツール」メニューから使用可能な「プロジェクト・プロパティ」ダイアログで作成および編集します。

個々のプロジェクトの依存性を管理するには、次のようにします。

1. 「アプリケーション」ウィンドウで、適切なプロジェクトを選択します。

2. メイン・メニューから、「アプリケーション」→「プロジェクト・プロパティ」を選択するか、右クリックして「プロジェクト・プロパティ」を選択します。

3. 「依存性」ノードを選択します。

4. 「依存性」ページで、プロジェクトの現在の依存階層を表示します。

5. 必要に応じて、プロジェクトを選択または選択を解除します。

6. 現在の依存順序を変更するには、「順序付け」をクリックします。

7. 完了後、「OK」をクリックします。

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

テンプレートから作成されたプロジェクトは、そのテンプレートで使用できるすべての機能を継承します。さらに、プロジェクト内にコンテンツを作成すると、プロジェクトに機能が動的に追加されます。「プロジェクト・プロパティ」→「機能」→「調整」に移動して、プロジェクトで実際に使用する機能のリストをフィルタします。

プロジェクトに機能が関連付けられると、JDeveloperの設計時に、このタイプのプロジェクトに対して最も必要性が高いと思われるものに基づいて選択肢がフィルタされます。

プロジェクト・テンプレートを使用して、プロジェクトに機能を関連付けるには、次のようにします。

注意:

この手順は、テンプレートから作成した新しいプロジェクトにのみ適用できます。

1. メイン・メニューから、「アプリケーション」→「テンプレートの管理」を選択します。

2. 「アプリケーション・テンプレートの管理」ダイアログで、機能を関連付けるプロジェクト・テンプレートをクリックします。
アプリケーション・テンプレートは、「アプリケーション・テンプレート」の下に、第1レベル・ノードとしてリストされます。プロジェクト・テンプレートは、アプリケーション・テンプレートの下に表示されます。

3. 右側のパネルで、「使用可能なプロジェクト・テンプレート」リストから適切な機能を選択し、シャトル・ボタンを使用して「選択したプロジェクト・テンプレート」リストに移動します。

4. 完了後、「OK」をクリックします。

個々のプロジェクトに機能を関連付けるには、次のようにします。

1. 「アプリケーション」ウィンドウで、適切なプロジェクトを選択します。

2. メイン・メニューから、「アプリケーション」→「プロジェクト・プロパティ」を選択するか、右クリックして「プロジェクト・プロパティ」を選択します。

3. 「機能」ノードを選択します。

4. 「機能」ページで、「機能の追加」ボタンをクリックします。

5. 「機能の追加」ダイアログで、プロジェクトに関連付ける機能を「プロジェクトの機能」リストで選択します。

6. シャトル・ボタンをクリックして、選択内容を「選択済」リストに移動します。

7. 「OK」をクリックします。

4.3.11.5 プロジェクトのJavadocプロパティの設定方法

作成するすべてのプロジェクトは、JDeveloperプロジェクトのデフォルト設定か、またはすべてのプロジェクトに対してユーザーが指定した設定になります。これらのデフォルト設定は、プロジェクトごとに置き換えることもできます。これらのプロパティの設定方法はどちらの場合でも同じであり、情報の場所および適用対象のみが異なります。

個々のプロジェクトのJavadocプロパティを設定するには、次のようにします。

1. 「アプリケーション」ウィンドウで、プロジェクトを選択します。

2. メイン・メニューから、「アプリケーション」→「プロジェクト・プロパティ」を選択するか、右クリックして「プロジェクト・プロパティ」を選択します。

3. 「プロファイル」の下の、アクティブなプロファイル・ノードを選択します。

4. 「アクティブ・プロファイル」ノードの下にある「Javadoc」ノードを選択します。

5. 完了後、「OK」をクリックして「プロジェクト・プロパティ」ダイアログを閉じます。

4.3.12 ライブラリの管理方法

ライブラリには、内部および外部の2つのカテゴリがあります。内部ライブラリ定義はプロジェクト・ファイル内( .jprファイル内)で永続化されるため、このプロジェクトを開いたすべてのユーザーがいつでも利用できます。ただし、内部ライブラリ定義は他のプロジェクトでは共有できません。内部ライブラリをプロジェクトに追加するには、「プロジェクト・プロパティ」ダイアログの「ライブラリとクラスパス」ページで「JAR/ディレクトリの追加」をクリックします。

外部ライブラリ定義は、独自のスタンドアロン・ライブラリ定義ファイル(.libraryファイル)内で永続化されています。そのため、外部ライブラリは、ソース・コントロールまでチェックし、任意の数のプロジェクトから参照し、さらにJavaソース・ファイルと同様にチーム環境内のすべてのユーザー間で共有できます。外部ライブラリには独自の一意のURLがあるため、プロジェクトに外部ライブラリを追加すると、そのURLがプロジェクトに追加されます。

4.3.12.1 プロジェクト内の現在のライブラリを表示する方法

プロジェクトにライブラリを組み込む場合は、これらのライブラリに対して定義されているソースパスが自動的にプロジェクトのクラスパスの一部になります。

個々のプロジェクトについて、現在のライブラリを表示するには、次のようにします。

1. 「アプリケーション」ウィンドウで、適切なプロジェクトを選択します。

2. ポップアップ・メニューから「プロジェクト・プロパティ」を選択します。

3. 「ライブラリとクラスパス」ノードを選択します。プロジェクトに現在含まれているライブラリが「クラスパス・エントリ」リストに表示されます。

4.3.12.2 既存のライブラリをプロジェクトに追加する方法

既存のライブラリをプロジェクトに追加できます。

既存のライブラリをプロジェクトに追加するには、次のようにします。

1. 「アプリケーション」ウィンドウでプロジェクトを選択した状態で、「プロジェクト・プロパティ」ダイアログを開きます。

2. 「ライブラリとクラスパス」ノードを選択します。

3. 「ライブラリとクラスパス」ページで「ライブラリの追加」をクリックします。

4. 選択ツリーから必要なライブラリを検索し、「OK」をクリックします。

4.3.12.3 新規ライブラリを作成し、新規プロジェクトに追加する方法

新規ライブラリを作成し、新規プロジェクトに追加することができます。

新規ライブラリを作成し、プロジェクトに追加するには、次のようにします。

1. 「アプリケーション」ウィンドウでプロジェクトを選択した状態で、「プロジェクト・プロパティ」ダイアログを開きます。

2. 「ライブラリとクラスパス」ノードを選択します。

3. 「ライブラリとクラスパス」ページで「ライブラリの追加」をクリックします。

4. 「ライブラリの追加」ダイアログで、「新規」をクリックします。

5. 「ライブラリの作成」ダイアログで、新規ライブラリの名前を入力してから、その場所を選択します。

6. パス・タイプごとに、「エントリの追加」または「URLの追加」の該当する方をクリックします。パスを削除するか、または追加内容を修正するには、「削除」をクリックします。エントリを並び替えるには、表示領域の右にある並び替えボタンを使用します。

7. 「エントリの追加」または「URLの追加」をクリックした後、表示される選択ダイアログでファイル名を入力するか、リストを参照してファイル名を選択します。入力の完了後、「選択」をクリックします。

8. 「ライブラリの作成」ダイアログで、「OK」をクリックします。

9. 「ライブラリとクラスパス」ページで作業が完了した後、「OK」をクリックします。

4.3.12.4 プロジェクト内の既存のライブラリを編集する方法

プロジェクト内の既存のライブラリを編集できます。

プロジェクト内の既存のライブラリを編集するには、次のようにします。

1. 「アプリケーション」ウィンドウでプロジェクトを選択した状態で、「プロジェクト・プロパティ」ダイアログを開きます。

2. 「ライブラリとクラスパス」ノードを選択します。

3. 「ライブラリとクラスパス」ページで、「クラスパス・エントリ」リストから変更するライブラリを選択します。

4. 「編集」をクリックします。(ライブラリが編集可能でない場合、このボタンは「表示」ボタンのままです。)

5. 「ライブラリ定義の編集」ダイアログで、最初のフィールドに変更対象のライブラリの名前が表示されます。ライブラリ名を変更する場合には、このフィールドに直接入力します。

6. 「パスの編集」ダイアログで、「エントリの追加」または「URLの追加」の該当する方をクリックします。パスを削除する、または追加内容を修正するには、「削除」をクリックします。エントリを並び替えるには、表示領域の右にある並び替えボタンを使用します。

7. 「エントリの追加」または「URLの追加」をクリックした後、表示される選択ダイアログでディレクトリ名を入力するか、リストを参照してディレクトリ名を選択します。入力の完了後、「選択」をクリックします。

8. 「ライブラリの編集」ダイアログで、「OK」をクリックします。

9. 「ライブラリとクラスパス」ページで作業が完了した後、「OK」をクリックします。

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

プロジェクトからライブラリを削除した場合は、これらのライブラリに対して定義されているソースパスがプロジェクトのクラスパスの一部ではなくなります。

プロジェクトからライブラリを削除するには、次のようにします。

1. 「アプリケーション」ウィンドウで、適切なプロジェクトを選択します。

2. メイン・メニューから、「アプリケーション」→「プロジェクト・プロパティ」を選択するか、右クリックして「プロジェクト・プロパティ」を選択します。

3. 「ライブラリとクラスパス」ノードを選択します。

4. 「ライブラリ」ページで、「ライブラリ」リストから目的のライブラリを選択し、「削除」をクリックします。

5. 完了後、「OK」をクリックします。

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

JDeveloperプロジェクト・スコープの完全に外部にあるライブラリを、ユーザー自身またはJDeveloperのユーザー・グループがプロジェクトで使用できるように設定して、このライブラリを使用できます。

プロジェクト・スコープの外部のライブラリまたはJava SEを使用するには、次のようにします。

1. メイン・メニューから「ツール」→「ライブラリの管理」を選択します。

2. 「ライブラリの管理」ダイアログで、「ライブラリ」タブまたは「Java SE定義」タブのどちらかを選択します。

3. ユーザー自身が使用するライブラリをインポートする場合は、「ユーザー」ノードを選択します。グループで使用するライブラリをインポートする場合は、「拡張」ノードを選択します。

4. 「ディレクトリ」をクリックします。

5. 「ディレクトリのロード」ダイアログで、インポートするライブラリに移動し、「選択」をクリックします。

6. 完了後、「OK」をクリックします。

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

JDeveloperプロジェクト・スコープの完全に外部にあるライブラリを、ユーザー自身またはJDeveloperのユーザー・グループがプロジェクトで使用できるように設定して、このライブラリを使用できます。

プロジェクト・スコープの外部のライブラリまたはJava SEを作成するには、次のようにします。

1. メイン・メニューから「ツール」→「ライブラリの管理」を選択します。

2. 「ライブラリの管理」ダイアログで、「ライブラリ」タブまたは「Java SE定義」タブのどちらかを選択します。

3. ユーザー自身が使用するライブラリを作成する場合は、「ユーザー」ノードを選択します。グループで使用するライブラリを作成する場合は、「拡張」ノードを選択します。

4. 「新規」をクリックします。

5. 「ライブラリの作成」ダイアログまたは「Java SEの作成」ダイアログで、新規ライブラリまたはJava SEの詳細を終了します。

6. 完了後、「OK」をクリックします。

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

JDeveloperプロジェクト構造の完全に外部にあるライブラリを、ユーザー自身またはJDeveloperのユーザー・グループがプロジェクトで使用できるよう設定して、このライブラリを使用することができます。

プロジェクト・スコープの外部のライブラリまたはJava SEを編集するには、次のようにします。

1. メイン・メニューから「ツール」→「ライブラリの管理」を選択します。

2. 「ライブラリの管理」ダイアログで、「ライブラリ」タブまたは「Java SE定義」タブのどちらかを選択します。

3. タブ・リストで、編集するライブラリを選択します。そのライブラリの属性が右側のフィールドに表示されます。

4. Java SE実行可能ファイルを変更するには、「参照」をクリックします。

5. クラスパス、ソースパスまたはドキュメント・パスを変更するには、変更するパスを選択し、「パス」パネルの下にあるボタン(「エントリの追加」、「URLの追加」または「削除」)のいずれかをクリックします。
右マージンの「上へ」ボタンと「下へ」ボタンをクリックしてエントリを並び替えることもできます。

6. 完了後、「OK」をクリックします。

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

JDeveloperプロジェクト・スコープの完全に外部にあるライブラリを、ユーザー自身またはJDeveloperのユーザー・グループがプロジェクトで使用できるように設定して、このライブラリを使用できます。

プロジェクト・スコープの外部のライブラリまたはJava SEを削除するには、次のようにします。

1. メイン・メニューから「ツール」→「ライブラリの管理」を選択します。

2. 「ライブラリの管理」ダイアログで、「ライブラリ」タブまたは「Java SE定義」タブのどちらかを選択します。

3. タブ・リストで、削除するライブラリを選択します。削除できるのは、自分で作成したライブラリのみです。

4. 「削除」をクリックし、確認ダイアログに応答します。
ライブラリがただちに削除されます。

5. 「ライブラリの管理」ダイアログを閉じるには、「OK」をクリックします。

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

アプリケーション・テンプレートおよびプロジェクト・テンプレートは、すでに指定された機能の適切な組合せで標準アプリケーションのプロジェクト構造をすばやく作成する方法を提供します。テンプレートから作成された新規アプリケーションは、階層化プロジェクトにすでにパーティション化され、関連する機能セットとともに「アプリケーション」ウィンドウに表示されます。

選択するアプリケーション・テンプレートにより、初期プロジェクト構造(アプリケーション内の指定されたプロジェクト・フォルダ)が決まります。プロジェクト・テンプレートは関連機能を定義します。また、使用可能な選択が、作業中の機能に絞り込まれるように、JDeveloperで行う作業をフィルタ処理できます。

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

アプリケーション・テンプレートは、アプリケーションで必要なプロジェクト・タイプを指定する1つ以上のプロジェクト・テンプレートをまとめたものです。こうしたテンプレートを使用することで、アプリケーションの開発方法を標準化できます。

新規アプリケーション・テンプレートを定義するには、次のようにします。

1. 新規アプリケーションの作成プロセスを開始します。

2. 「アプリケーションの作成」ダイアログで、「テンプレートの管理」をクリックします。また、このダイアログが開いていない場合は、「アプリケーション」→「テンプレートの管理」を選択します。
詳細は、[F1]を押すか、該当するダイアログ内で「ヘルプ」をクリックしてください。

3. 「テンプレートの管理」ダイアログで、「アプリケーション・テンプレート」ノードを選択し、クリックして「アプリケーション・テンプレートの作成」ダイアログを開きます。

4. 新しいテンプレートの名前を入力し、「OK」をクリックします。
新規テンプレートが、「テンプレートの管理」ダイアログのテンプレート・リストに表示されます。すべてのアプリケーション・テンプレートは、「アプリケーション・テンプレート」の下に、第1レベル・ノードとしてリストされます。

5. 「アプリケーション・テンプレート」の定義を完了します。詳細は、[F1]を押すか、「テンプレートの管理」ダイアログ内で「ヘルプ」をクリックしてください。

アプリケーション・テンプレートは、「ビジネス層」の「アプリケーション」カテゴリ内の「新規ギャラリ」に表示されます。

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

プロジェクト・テンプレートは、指定のアプリケーションで必要な各種プロジェクトを指定します。プロジェクト・テンプレートは、アプリケーション・テンプレート内に含まれます。

新規プロジェクト・テンプレートを定義するには、次のようにします。

1. 新規アプリケーション・テンプレートを定義します。
あるいは、テンプレートがすでに定義されている場合、「アプリケーション」→「テンプレートの管理」を選択します。

2. 「テンプレートの管理」ダイアログで、「プロジェクト・テンプレート」ノードを選択し、「追加」アイコンをクリックして「プロジェクト・テンプレートの作成」ダイアログを開きます。

3. 新しいテンプレートの名前を入力し、「OK」をクリックします。
新規テンプレートが、「テンプレートの管理」ダイアログのテンプレート・リストに表示されます。すべてのプロジェクト・テンプレートは、「プロジェクト・テンプレート」の下に、第1レベル・ノードとしてリストされます。

4. 「プロジェクト・テンプレート」の定義を完了します。詳細は、[F1]を押すか、「テンプレートの管理」ダイアログ内で「ヘルプ」をクリックしてください。

プロジェクト・テンプレートが、「新規ギャラリ」の「プロジェクト」カテゴリに表示されます。

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

共有の場所でアプリケーション・テンプレートまたはプロジェクト・テンプレートを作成できます。その他のユーザーは共有の場所からテンプレートを読み取り、使用するアプリケーションおよびプロジェクトについて同じテンプレートを使用できます。

共有テンプレートを作成する手順は次のとおりです。

1. 「アプリケーション」→「テンプレートの管理」を選択します。

2. 「テンプレートの管理」ダイアログで、「アプリケーション・テンプレート」ノードまたは「プロジェクト・テンプレート」ノードを選択し、「共有場所の追加」アイコンをクリックします。

3. 「テンプレート・ディレクトリの追加」ダイアログで、共有テンプレートを格納する場所を入力するか、参照します。

共有テンプレート・フォルダは、「アプリケーション・テンプレート」および「プロジェクト・テンプレート」の両ノードの下にリストされます。

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

既存のユーザー定義アプリケーション・テンプレートまたはプロジェクト・テンプレートを編集できます。

既存のアプリケーション・テンプレートまたはプロジェクト・テンプレートを編集するには、次のようにします。

1. メイン・メニューから、「アプリケーション」→「テンプレートの管理」を選択します。

2. 「テンプレートの管理」ダイアログで、編集するテンプレートを選択します。
詳細は、[F1]を押すか、「テンプレートの管理」ダイアログ内で「ヘルプ」をクリックしてください。

3. 右側のパネルで、テンプレートの属性を必要に応じて編集します。

4. 完了後、「OK」をクリックします。

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

既存のユーザー定義アプリケーション・テンプレートまたはプロジェクト・テンプレートを削除できます。

既存のアプリケーション・テンプレートまたはプロジェクト・テンプレートを削除するには、次のようにします。

1. メイン・メニューから、「アプリケーション」→「テンプレートの管理」を選択します。

2. 「テンプレートの管理」ダイアログで、削除するテンプレートの名前を選択します。
アプリケーション・テンプレートは、「アプリケーション・テンプレート」の下に、第1レベル・ノードとしてリストされます。プロジェクト・テンプレートは、「プロジェクト・テンプレート」の下に、第1レベル・ノードとしてリストされます。

詳細は、[F1]を押すか、「テンプレートの管理」ダイアログ内で「ヘルプ」をクリックしてください。

3. 「削除」をクリックします。

4. 「OK」をクリックします。

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

アプリケーションまたはプロジェクトは複数の方法で保存できます。

全アプリケーション内の、すべてのプロジェクトを含むすべてのコンポーネントを保存するには、次のようにします。

- メイン・メニューから、「ファイル」→「すべて保存」を選択するか、「すべて保存」アイコンをクリックします。

または、「ファイル」→「保存」を選択して、コンポーネントを個別に保存することもできます。

アプリケーションまたはプロジェクトのコンテナ・ファイル(.jws、.jpr)のみを保存しても、そのアプリケーションまたはプロジェクトによって管理されている個別のファイルは保存されないことに注意してください。また、コンテナに含まれている個別のファイルを保存しても、コンテナ・ノードは保存されません。

各ノードは独立したエンティティであり、別々に保存する必要があります。「すべて保存」を使用することにより、これらのコンテナ・ファイルと、それに含まれるすべてのファイルを同時に保存できます。

選択したアプリケーション・ノードやプロジェクト・ノードに対して「保存」または「別名保存」を実行すると、.jwsファイルや.jprファイルのみが保存または複製されます。ノードに含まれているファイルは保存も複製もされません。

また、アプリケーションまたはプロジェクトのコンテナ・ファイルに対して「名前を付けて保存」を実行すると、コンテナは置き換えられますが、コンテナに含まれているファイルは変更されません。個々のファイルに対して「別名保存」を実行した場合は、そのファイルが複製されます。ただし、ファイルの名前を変更する場合は「ファイル」→「名前の変更」を使用してください。

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

個々のコンポーネントを複数の方法で保存できます。

個々のコンポーネントまたはファイルを保存するには、次のようにします。

1. 「アプリケーション」ウィンドウで、保存するコンポーネントまたはファイルを選択します。

2. メイン・メニューから、「ファイル」→「保存」を選択するか、ツールバーの「保存」アイコンをクリックします。
ファイルはただちに保存され、ファイル名がイタリック体からローマン体のフォントに変わります。

アプリケーションまたはプロジェクトのコンテナ・ファイル(.jws、.jpr)のみを保存しても、そのアプリケーションまたはプロジェクトによって管理されている個別のファイルは保存されないことに注意してください。また、コンテナに含まれている個別のファイルを保存しても、コンテナ・ノードは保存されません。

各ノードは独立したエンティティであり、別々に保存する必要があります。「すべて保存」を使用することにより、これらのコンテナ・ファイルと、それに含まれるすべてのファイルを同時に保存できます。

選択したアプリケーション・ノードやプロジェクト・ノードに対して「保存」または「別名保存」を実行すると、.jwsファイルや.jprファイルのみが保存または複製されます。ノードに含まれているファイルは保存も複製もされません。

個々のファイルまたはコンポーネントは、「ファイル」→「名前の変更」を選択して変更することもできます。

また、アプリケーションまたはプロジェクトのコンテナ・ファイルに対して「別名保存」を実行すると、コンテナは置き換えられますが、コンテナに含まれているファイルは変更されません。個々のファイルに対して「別名保存」を実行した場合は、そのファイルが複製されます。

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

アプリケーション制御ファイル、プロジェクト制御ファイルおよび個々のファイルの名前を変更できます。Javaクラスの名前変更の正しい方法は、リファクタを使用する方法です。

アプリケーションまたはプロジェクトのコンテナ、あるいは個々のソース・ファイルの名前を変更するには、次のようにします。

1. 「アプリケーション」ウィンドウで、保存するノードを選択します。

2. メイン・メニューから、「ファイル」→「名前の変更」を選択します。
シンプル・ファイルの場合は「名前の変更」ダイアログが開きます。シンプル・ファイルの場合は「名前の変更」ダイアログが開き、Javaファイルの場合は「ファイルの名前変更」ダイアログが開きます。

3. 「ファイルの名前変更」ダイアログが開いた場合、選択したファイルのみの名前を変更するか、あるいは、選択したファイル、そのファイルで定義されたクラス、およびそのクラスの参照すべての名前を変更するかを選択します。
クラスの名前を変更し参照を更新するように選択した場合は、「Object_Nameの名前の変更」ダイアログが開きます。

4. 「Object_Nameの名前の変更」ダイアログが開いた場合、必要に応じて名前を変更しオプションを選択後、「OK」をクリックします。

5. 「名前の変更」ダイアログが開いた場合、必要に応じて名前を変更して「保存」をクリックします。
これで、新しい名前のノードが「アプリケーション」ウィンドウに表示されます。

また、「ファイル」→「別名保存」を選択することもできます。「名前の変更」では常にターゲット・ファイルが置換されます。「別名保存」ではアプリケーションまたはプロジェクトのコンテナ・ファイル(.jws、.jpr)が置換され、ソース・ファイルが複製されます。

ファイルを保存する際には、コンテナ・ファイルのみを保存してもアプリケーションやプロジェクト全体の内容は保存されないことに注意してください。全体の内容を保存するには、「すべて保存」を使用する必要があります。

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

「アプリケーション」ウィンドウは、アプリケーションおよびプロジェクトの論理構造を視覚的に表示します。これは、ファイル・ディレクトリではありません。また、必ずしもファイルの物理的な場所を表しているわけではありません。

個々のファイルの物理的な場所は、JDeveloperで変更できます。ファイルのグループの物理的な場所を変更する場合は、オペレーティング・システムのファイル・マネージャを使用する方が簡単です。

ファイルとプロジェクトのアソシエーションやプロジェクトとアプリケーションのアソシエーションを変更するには、「アプリケーション」ウィンドウで適宜追加または削除します。

注意:

Javaクラスの移動には、「リファクタ」メニューのオプションを使用することをお薦めします。

プロジェクトまたはコンテナ・ファイル(.jwsや.jpr)のいずれかにある、個々のファイルの物理的な場所を変更するには、次のようにします。

1. 「アプリケーション」ウィンドウで、移動するファイルを選択します。

2. メイン・メニューから、「ファイル」→「名前の変更」を選択します。Javaファイルを選択した場合は、「ファイルの名前変更」ダイアログが開きます。ファイルを移動できるのは、「ファイルの名前変更のみ行います。参照は更新しません。」オプションを選択した場合のみです。

3. 「名前の変更」ダイアログで、ファイルの新しい場所に移動し、必要な場合はファイル名を変更します。

4. 「保存」をクリックします。
ファイルが新しいディレクトリに物理的に格納されます。「アプリケーション」ウィンドウでの論理表示は、明示的に変更しないかぎり変わりません。

アプリケーション全体またはディレクトリの物理的な場所を変更するには、次のようにします。

1. オペレーティング・システムのファイル・マネージャで、ファイルが現在配置されているディレクトリに移動します。JDeveloperのデフォルト・ディレクトリに格納されるファイルは、myworkフォルダにあります。

2. 移動するディレクトリ全体(アプリケーション、プロジェクト、またはプロジェクト内のファイル)を選択し、新しい場所に移動します。
ファイルが移動します。ただし、JDeveloperではそのファイルの場所を認識しません。

3. JDeveloperに戻ったら、「アプリケーション」ウィンドウで、ドロップダウン・リストから「アプリケーションを開く」を選択します。

4. アプリケーションまたはプロジェクトの新しい物理的な場所に移動し、「開く」をクリックします。

あるプロジェクトから別のプロジェクトにファイルのグループの物理的な場所を変更するには、次のようにします。

1. オペレーティング・システムのファイル・マネージャで、ファイルが現在配置されているディレクトリに移動します。

2. 移動するファイルを選択し、新しい場所に移動します。

3. JDeveloperに戻ったら、「アプリケーション」ウィンドウでプロジェクトを選択し、ポップアップ・メニューから「プロジェクト・プロパティ」を選択します。

4. 「プロジェクト・プロパティ」ダイアログの「プロジェクトのソース・パス」ページで「追加」ボタンを使用し、追加するファイルの場所まで移動します。
ファイルは、ステップ2で配置された場所に物理的に移動し、「アプリケーション」ウィンドウではステップ4で選択された場所に論理的に関連付けられます。

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

「アプリケーション」ウィンドウでアプリケーション、プロジェクトまたはファイルを閉じると、アプリケーションまたはプロジェクトがメモリーからアンロードされます。閉じたアプリケーションまたはプロジェクトは、ノードを閉じた状態で「アプリケーション」ウィンドウに表示されます。

また、アプリケーション、プロジェクトまたはファイルは、「アプリケーション」ウィンドウのリストからのみ削除することも、その格納場所にかかわらずJDeveloper内から完全に削除することもできます。

アプリケーションまたはプロジェクトを閉じるには、次のようにします。

1. 「アプリケーション」ウィンドウで、閉じるアプリケーションまたはプロジェクトを選択します。

2. メイン・メニューから、「ファイル」→「閉じる」を選択します。
閉じるアプリケーションまたはプロジェクト内のファイルが変更済かつ未保存の場合は、保存を求めるプロンプトが表示されます。

アプリケーションまたはプロジェクトのノードが閉じられ、展開可能であることを示すプラス記号付きで「アプリケーション」ウィンドウに表示されます。

「エディタ」ウィンドウの上にある、対応する「ドキュメント」タブの「閉じる」ボックスをクリックし、ビューアまたはエディタで開かれているファイルを閉じることもできます。

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

プロジェクトからファイルを削除すると、そのファイルは「アプリケーション」ウィンドウのリストからのみ削除されます。あるいは、ファイルの格納場所にかかわらず、JDeveloperから永久的に削除することもできます。

プロジェクトからファイルを削除するには、次のようにします。

1. 「アプリケーション」ウィンドウで、削除するファイルを選択します。

2. 「ファイル」→「削除」を選択します。

3. 「削除の確認」ダイアログが表示されます。ファイルを削除する場合は、「はい」をクリックします。

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

JDeveloper内からプロジェクト制御ファイル(.jpr)を削除して、アプリケーションからプロジェクトを削除できます。

アプリケーションからプロジェクトを削除するには、次のようにします。

1. 「アプリケーション」ウィンドウで、削除するプロジェクトを選択します。

2. 「ファイル」→「プロジェクトの削除」を選択します。

3. 「プロジェクトの削除の確認」ダイアログが表示されます。削除を確認するには「はい」をクリックします。

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

アプリケーションを閉じて、「アプリケーション」ウィンドウから削除できます。アプリケーションを削除する場合

IDEからアプリケーションを削除するには、次のようにします。

1. 「アプリケーション」ウィンドウで、「アプリケーション・メニュー」をクリックします。

2. 「アプリケーションを閉じる」を選択します。

3. 「アプリケーションのクローズの確認」ダイアログが表示されます。設定に基づきオプションを選択します。

4. 「アプリケーション」→「削除」を選択して、アプリケーションとその内容を削除します。

5 モデリングを使用するアプリケーション開発

この章では、Unified Modeling Language (UML)クラス、プロファイル、アクティビティ、シーケンス、ユースケース図、さらにデータベース、EJB、および様々なビジネス・サービスとデータベース構造をモデル化するビジネス・コンポーネント・ダイアグラムを作成するためのモデリング・ツールとモデリング・テクノロジの利用方法について説明します。

この章には次の項が含まれます:

- 第5.1項「ダイアグラムを使用したモデル化について」

- 第5.2項「ダイアグラム・タイプについて」

- 第5.3項「ダイアグラムの作成、使用および管理」

- 第5.5項「UMLのインポートとエクスポート」

- 第5.6項「UMLクラス図によるモデリング」

- 第5.7項「EJB/JPAコンポーネントのモデリング」

- 第5.8項「データベース・ダイアグラムによるモデリング」

- 第5.9項「アクティビティ図によるモデリング」

- 第5.10項「シーケンス図によるモデリング」

- 第5.11項「ユースケース図によるモデリング」

- 第5.3.7項「ダイアグラムのローカル保存」

- 第5.12項「UML要素のローカル保存」

5.1 ダイアグラムを使用したモデル化について

JDeveloperは、アプリケーション用のソフトウェアおよびシステム開発をモデル化するために6つの標準UMLダイアグラム・タイプと4つの追加ダイアグラム・タイプをサポートしています。

ダイアグラムの作成は、「新規ギャラリ」ウィザードで行います。ウィザードでは、ダイアグラム・タイプを選択し、「コンポーネント」ウィンドウで使用可能とするコンポーネントを選択します。ダイアグラムと関連コンポーネントをすばやく作成できるUMLアプリケーションを作成することもできます。図5-28は、クラス図を作成するダイアログの例を示しています。

図5-1 クラス図の作成例

5.2 ダイアグラム・タイプについて

使用可能なUML図はUML準拠です。ダイアグラムが作成されると、多くのUML要素を「コンポーネント」ウィンドウからダイアグラム上にドラッグ・アンド・ドロップすることができます。

ダイアグラム・タイプはすべて、「新規ギャラリ」ウィザードを使用して作成でき、JDeveloperダイアグラム・エディタ、「コンポーネント」ウィンドウおよび「プロパティ」ウィンドウでサポートされます。データベース・オブジェクトに対する変換オプションもあります。

5.2.1 UMLダイアグラム

JDeveloperでは、6つの標準UMLダイアグラム・タイプが用意されています。

- アクティビティ図。調整されたアクションとしてシステム動作をモデル化します。アクティビティ・オブジェクトを使用して、出荷や注文処理などのビジネス目標用のタスクなどのビジネス・プロセスをモデル化できます。

- パーティション付きアクティビティ図。視覚的な分割線、モデリング・グループ構成メンバー、または似た特性を共有する分割アクティビティと分割アクションを作成します。

- クラス図。システムの構造をモデル化します。既存のクラス、インタフェース、属性、操作、アソシエーション、汎化およびインタフェース実現のアーキテクチャをインスペクトするために使用します。

- シーケンス図。システム動作のトレースをイベントのシーケンスとしてモデル化します。シーケンス図は、主にこれを、時間順のオブジェクト間のメッセージとして示します。

- ユースケース図。システムに想定される動作をモデル化します。ユースケース図は、アクター、ユースケース、およびそれらの通信をまとめたものです。

- プロファイル図。プロファイルとステレオタイプを使用してUML拡張機能を定義します。

5.2.2 ビジネス・サービスおよびサポート・データベース構造図

ビジネス・サービスをモデル化するために選択する4つのダイアグラムがあります。

- ビジネス・コンポーネント・ダイアグラム。エンティティ・オブジェクト、ビュー・オブジェクト、アプリケーション・モジュール、およびこれらの関係をモデル化します。

- データベース・ダイアグラム。オンライン・データベース表とオフライン・データベース表、およびその関係に加え、ビュー、マテリアライズド・ビュー、シーケンス、パブリック・シノニムとプライベート・シノニムをモデル化します。

- EJBダイアグラム。システム内のエンティティBean、セッションBean、メッセージドリブンBeanおよびその関係をモデル化します。

- Javaクラス図。Javaクラス、インタフェース、Enum、フィールド、メソッド、参照の関係と依存関係、継承関係、および実装関係をモデル化します。

5.3 ダイアグラムの作成、使用および管理

Oracle JDeveloperには、アプリケーション・システムをモデル化するための多様なツールと各種のダイアグラムが用意されています。ダイアグラムと要素を作成するための便利なウィザード、および編集ウィンドウを開いたままで様々な要素を簡単にドラッグ・アンド・ドロップしたり編集したりできる「コンポーネント」ウィンドウと「プロパティ」ウィンドウが用意されています。

図5-1は、クラス図が表示されているダイアグラム・エディタ・ウィンドウ、「アプリケーション」ウィンドウおよび「コンポーネント」ウィンドウを示しています。「アプリケーション」ウィンドウ上のダイアグラムをダブルクリックして、これを開き、「コンポーネント」ウィンドウからダイアグラム・エディタにコンポーネントをドラッグ・アンド・ドロップします。

図5-2 クラス図の例を表示する「コンポーネント」ウィンドウ

5.3.1 基本的なダイアグラム作成コマンドの使用

ダイアグラムを作成したら、コンポーネントを「コンポーネント」ウィンドウからダイアグラムに追加します。キーストローク・コマンドで、ダイアグラムのズーム・インおよびズーム・アウトを行ったり、元のサイズや元のサイズ率で表示したりできます。終了したら、ポップアップ・メニューやメイン・メニューのコマンドを使用して、ダイアグラムをイメージとして公開したり、印刷したりできます。

5.3.1.1 新しいダイアグラムの作成方法

「新規ギャラリ」ウィザードで、コンポーネントを追加できるダイアグラムを作成することができます。

新規のダイアグラムを作成するには:

1. 「アプリケーション」ウィンドウで、プロジェクトを選択し、「ファイル」→ギャラリから新規作成→「一般」→「ダイアグラム」を選択します。

2. ダイアグラム・タイプを選択し、「OK」を選択します。

3. ダイアグラムのデフォルト・パッケージは、そのプロジェクト設定で指定したデフォルト・パッケージです。現在のプロジェクトの指定したパッケージに、空のダイアグラムが作成され、コンテンツ領域で開かれます。「OK」をクリックします。

5.3.1.2 ダイアグラムの名前変更方法

ダイアグラムを名前変更すると、元の名前の元のダイアグラムのコピーを残さずに、ダイアグラムの名前が変更されます。

ダイアグラム名を変更するには、次のようにします。

1. 「アプリケーション」ウィンドウで、名前を変更するダイアグラムを選択します。

2. 「ファイル」→「名前の変更」を選択します。

5.3.1.3 ダイアグラムをイメージとして公開する方法

ダイアグラムをグラフィック・イメージとして公開するには、ポップアップ・メニューのオプションを使用します。イメージとして公開した後、ダイアグラムをプレビューしたり、印刷したりできます。

ダイアグラムをイメージとして公開するには、次のようにします。

1. ダイアグラムを右クリックし、「ダイアグラムの公開」を選択します。
または

ダイアグラムの表面をクリックし、「ダイアグラム」→「ダイアグラムの公開」を選択します。

2. 表からイメージ・ファイルの公開先フォルダを選択します。

3. 「ファイル・タイプ」ドロップダウン・リストを使用し、イメージ・ファイルのファイル・タイプ(SVG、SVGZ、JPEG、PNG)を選択します。

4. 「ファイル名」ボックスに、適切な拡張子(.svg、.svgz、.jpg、.png)も含めてイメージ・ファイルの名前を入力します。

5. 「保存」をクリックします。

5.3.1.4 別のダイアグラムに要素をコピーする方法

ポップアップ・メニューまたはキーストロークを使用して、異なるダイアグラム間で要素をコピーします。

ダイアグラムから要素をコピーし、別のダイアグラムに貼り付けるには、次のようにします。

1. ダイアグラム要素を選択し、ポップアップ・メニューの「コピー」を選択するか、ツールバーの「コピー」アイコンを選択するか、または[Ctrl]キーを押しながら[C]キーを押します。

2. 貼付け先のダイアグラムを開きます。

3. ダイアグラム要素を追加する場所にポインタを置き、ポップアップ・メニューから「貼付け」を選択します(または、ツールバーの「貼付け」アイコンを選択するか、[Ctrl]キーを押しながら[V]キーを押します)。

5.3.1.5 印刷用のページの設定方法

ページ設定を使用して、縦向きから横向きに変更したり、印刷余白を設定したりできます。

印刷前にページを設定するには、次のようにします。

1. 印刷するダイアグラム上をクリックし、「ファイル」→「ページ設定」を選択します。

2. 「ページ設定」ダイアログの各タブで設定を変更します。

5.3.1.6 印刷するダイアグラム上の領域を設定する方法

「ファイル」メニューの印刷領域の設定オプションを使用して、印刷するダイアグラムの特定領域を設定します。

印刷するダイアグラム上の領域を設定するには、次のようにします。

1. 「ファイル」→「印刷領域」→「印刷領域の設定」を選択します。

2. ダイアグラム上で、印刷する範囲のオブジェクトをマウス・ポインタのドラッグで囲みます。印刷する領域が点線の枠で示されます。領域を設定しない場合は、ダイアグラム全体が印刷されます。

5.3.1.7 ダイアグラム印刷領域をクリアする方法

ダイアグラム印刷領域をクリアするには、「ファイル」→「印刷領域」→「印刷領域のクリア」を選択します。

5.3.1.8 印刷前にページをプレビューする方法

ページをプレビューするには、「ファイル」→「印刷プレビュー」を選択します。「印刷オプション」を選択することにより、このページから印刷オプションも設定できます。「印刷オプション」ページで、ヘッダーおよびフッターのコンテンツをテキストとして追加できます。

5.3.1.9 ダイアグラムのズーム・インおよびズーム・アウトの方法

ダイアグラムをズーム・インおよびズーム・アウトするには、[Ctrl]キーを押しながらホイール・ボタンを使用します。サムネイル・ビューを使用している場合は、スクロールを使用してズームします。ダイアグラム・ツールバーにもズーム・オプションがあります。

5.3.1.10 ダイアグラムを元のサイズで表示する方法

ダイアグラムのツールバー上にあるズームのドロップダウン・リストで、「100%」を選択するか、ダイアグラムをクリックして「ダイアグラム」→「ズーム」→「100%」を選択します。

5.3.1.11 ダイアグラムを全体表示する方法

ダイアグラムのツールバー上にあるズームのドロップダウン・リストで、「ウィンドウに合せる」を選択するか、ダイアグラムをクリックして「ダイアグラム」→「ズーム」→「ウィンドウに合せる」を選択します。

5.3.1.12 選択した要素を最大サイズで表示する方法

ダイアグラムのツールバー上にあるズームのドロップダウン・リストで、「選択領域のズーム」を選択するか、ダイアグラムをクリックして「ダイアグラム」→「ズーム」→「選択領域のズーム」を選択します。

5.3.1.13 ダイアグラムの削除方法

メニュー・バーを使用して、ダイアグラムおよび関連ダイアグラム要素を削除します。

ダイアグラムを削除するには、次のようにします。

1. 「アプリケーション」ウィンドウで、削除するダイアグラムを選択します。

2. 「編集」→「削除」を選択します。このコマンドでダイアグラム・ファイルがシステムから削除され、ダイアグラムの編集ウィンドウが閉じます。削除したダイアグラムに対する選択内容は、「アプリケーション」ウィンドウとファイル・システムに残ります。
「アプリケーション」ウィンドウからもダイアグラムを削除できます。「アプリケーション」ウィンドウで、ダイアグラム名を右クリックし、「削除」を選択します。

5.3.2 ダイアグラム要素の使用

大部分のダイアグラム要素を「コンポーネント」ウィンドウから使用できます。要素を視覚的に管理したり、要素のプロパティを管理するための様々なツールが用意されています。

5.3.2.1 ダイアグラムから要素を見つける方法

「構造」ウィンドウで要素名をクリックします。ダイアグラムで要素が選択されます。ダイアグラムのサムネイル・ウィンドウを使用して要素を見つけることもできます。ダイアグラムのサムネイル・ビューを表示するには、「アプリケーション」ウィンドウまたはダイアグラムの背景をクリックしてダイアグラムを選択し、「ウィンドウ」→「サムネイル」を選択します。表示領域ボックスをドラッグし、ダイアグラムのサムネイル・ビューの要素上に置きます。対応する要素がメイン・ダイアグラムのビューに表示されます。

5.3.2.2 ダイアグラムから特定の要素を選択する方法

[Ctrl]キーを押しながら、ダイアグラム上の要素をクリックします。

5.3.2.3 ダイアグラムからすべての要素を選択する方法

ダイアグラムからすべての要素を選択し、そのすべての要素に対して、位置合せ、コピー、削除、移動などのアクションを同時に実行することができます。ダイアグラムの表面をクリックして、任意の要素を選択し、「編集」→「すべて選択」を選択します。ダイアグラムの表面上でドラッグして領域を選択し、すべてまたは複数の要素を選択することもできます。

5.3.2.4 同じタイプの要素をすべて選択する方法

同じタイプの多くの要素を編集または管理する必要がある場合、「すべて選択」オプションを使用します。

同じタイプの要素をすべて選択するには、次のようにします。

1. 必要なタイプのオブジェクトを選択します。

2. ポップアップ・メニューから「このタイプをすべて選択」を選択します。

5.3.2.5 選択した要素グループから要素の選択を解除する方法

要素グループを選択し、特定の要素を除外する場合、「選択解除」オプションを使用します。要素を1つずつ選択するより簡単です。

選択した要素グループから、要素の選択を解除するには、次のようにします。

1. [Ctrl]キーを押したままの状態にします。

2. ダイアグラム上で、選択を解除する要素をクリックします。

5.3.2.6 要素をグループ化する方法

要素のグループ化により、複数の要素を1つのグループとしてロックできます。これは集合コンテナになります。

ダイアグラム上の要素をグループ化するには、次のようにします。

1. 必要に応じて、ダイアグラムの注釈を開きます。「コンポーネント」ウィンドウで、「グループ」をクリックします。

2. ダイアグラム上の、要素をグループ化する範囲の角にポインタを置き、マウス・ボタンを押したままの状態にします。

3. その部分にマウス・ポインタを移動します。

4. オブジェクトを完全に囲んだら、マウス・ボタンを放します。

5.3.2.7 グループ化された要素の管理方法

「グループの管理」機能を使用して要素をグループに追加またはグループから削除、要素を他のグループへ移動、またはグループを他のグループに追加または他のグループから削除します。

ダイアグラム上でグループ化された要素を管理するには、次のようにします。

1. 管理するグループを選択します。

2. 右クリックして、「グループの管理」を選択します。
要素をグループに追加、またはグループから削除するには、[Shift]キーを押しながら目的の場所まで要素をドラッグする方法もあります。

5.3.2.8 「プロパティ」ダイアログを使用してダイアグラム要素のプロパティを変更する方法

次のいずれかの方法で「プロパティ」ダイアログを開きます。

- ダイアグラムで要素をダブルクリックします。
または

- ダイアグラム上の要素を選択し、ポップアップ・メニューから「プロパティ」を選択します。

5.3.2.9 「プロパティ」ウィンドウを使用して要素プロパティを変更する方法

1. 「ウィンドウ」→「プロパティ」を選択して、「プロパティ」ウィンドウを開きます。「プロパティ」ウィンドウには、ビジュアル・プロパティとセマンティクス・プロパティの両方が表示されます。

2. ダイアグラム要素を選択します。

3. 変更するプロパティを選択します。

4. 「プロパティ」ウィンドウの右側から、コントロールを選択し、値を変更します。(コントロールには、編集ボックス、ドロップダウン・リスト、チェック・ボックスなどがあります。)

注意:

これらのプロパティは、すべての要素において有効であるわけではありません。

5.3.2.10 要素の色またはフォントの変更方法

1. ダイアグラム上の要素(複数可)を選択します。

2. 次に、「プロパティ」ウィンドウ(「ウィンドウ」→「プロパティ」)の「グラフィック・オプション」タブで、現在の色(またはフォント・タイプのボックス)を選択し、必要な変更を行ってから[Enter]を押します。
または

ツールバーでフォント・タイプ、フォント・サイズ、または色のボックスを選択し、必要な変更を行います。

または

ポップアップ・メニューから「ビジュアル・プロパティ」を選択し、必要な変更を行います。

5.3.2.11 新しいダイアグラム要素のビジュアル・プロパティの変更方法

「プリファレンス」ダイアログを使用して、ダイアグラムに追加する要素のデフォルトのフォントと色を定義します。

ダイアグラムに追加されるダイアグラム要素の色またはフォントを変更するには、次のようにします。

1. 「ツール」→「プリファレンス」を選択し、「ダイアグラム」を選択します。ダイアグラム・タイプを選択した後、(ドロップダウン・ボックスの「次のプリファレンスを編集」から)変更する要素タイプを選択します(図5-3)。

2. 必要な変更を行います。

図5-3 クラス図の「プリファレンス」ダイアログ

5.3.2.12 別の要素にビジュアル・プロパティをコピーして貼り付ける方法

「プリファレンス」ダイアログを使用して、要素間でプリファレンスをコピーできます。

ビジュアル・プロパティを要素にコピーして貼り付けるには、次のようにします。

1. コピーするプロパティを持つ要素を選択します。

2. 右クリックして、「ビジュアル・プロパティ」を選択します。

3. 右クリックして「グラフィック・オプションの貼付け」を選択します。

5.3.2.13 ダイアグラム上の要素をサイズ変更する方法

要素のサイズを変更するには、要素が目的のサイズになるまでグラッブ・バーをドラッグします。初期ノードや終了ノードなど、一部のダイアグラム要素はサイズを変更できません。

一部の要素タイプには内部グラッブ・バーもあり、要素を選択するとそれが表示されます。内部グラッブ・バーは、ダイアグラム要素内のコンパートメントのサイズを変更する際に使用します。

ダイアグラム要素がダイアグラムの表示端に向かってサイズ変更されると、ダイアグラムは自動的にスクロールします。要素がサイズ変更され、ダイアグラム上から離れると、新しいダイアグラム・ページが追加されます。

ダイアグラム要素をサイズ変更するには、次のようにします。

1. サイズを変更する要素を選択します。

2. 要素の任意のグラッブ・バーにポインタを置き、マウス・ボタンを押したままの状態にします。グラッブ・バー上に置くと、ポインタは先頭が二重になった矢印として表示されます。

3. 要素のサイズが変更されるまでグラッブ・バーをドラッグし、マウス・ボタンを放します。

5.3.2.14 ダイアグラム要素の移動方法

ダイアグラム上で要素をドラッグする方法が、最も簡単に要素を移動できる方法です。より広い距離で要素を移動するには、切り取って貼り付けるという方法を取ります。ダイアグラム要素がダイアグラムの表示端に向かって移動した場合、ダイアグラムは自動的にスクロールされます。要素が移動してダイアグラム上から離れると、新しいダイアグラム・ページが追加されます。

ダイアグラム要素を移動するには、次のようにします。

1. 移動する要素(複数可)を選択します。

2. 要素にポインタを置き、マウス・ボタンを押したままの状態にします。

3. 選択した要素を、新しい位置までドラッグします。

4. マウス・ボタンを放します。要素が他の要素に重なる場合は、お互いに重なって表示されます。要素を右クリックし、「最前面へ移動」を選択します。

5.3.2.15 ダイアグラム上で直前の操作を取り消す方法

「編集」→「元に戻す[...]」を選択するか、「元に戻す」アイコンをクリックすることにより、最後のグラフィック操作を元に戻し、やり直すことができます。グラフィック操作は、ダイアグラム上の要素の外観を変更する、次のような操作です。

- ダイアグラムの要素の切取りおよび貼付け。

- ダイアグラム要素の位置およびサイズの変更。

- ダイアグラム要素のフォント、色およびフォント・サイズの変更。
要素のプロパティの変更など、純粋にグラフィック上の変更ではない変更をダイアグラム要素に行った場合、取り消すことはできません。要素のプロパティを変更した場合、その前に行ったグラフィック上の変更も取消が不可能になります。

アクションのやり直しを実行するには、「編集」→「やり直し[...]」を選択するか、「やり直し」アイコンをクリックします。

5.3.3 ダイアグラムのルック・アンド・フィールのカスタマイズ

ダイアグラムには、階層、対称、グリッドおよび行の各スタイルがあります。ダイアグラム内の要素も、レイアウト・スタイルをカスタマイズできます。ダイアグラムの外観をカスタマイズするためのプリファレンスが数多く用意されています。これら大部分のプリファレンスは、図5-4で示されているように、「ツール」→「プリファレンス」→「ダイアグラム」(ダイアグラム・タイプ)で表示される様々な「プリファレンス」ダイアログを使用して設定できます。新しいダイアグラムに対する特定のプリファレンスを設定するには、全般プリファレンス・ダイアログから「次のプリファレンスの編集」を選択します。全般プリファレンス・ダイアログでは、そのタイプのすべてのダイアグラムに対するプリファレンスを設定できます。右クリックして、「ビジュアル・プロパティ」を選択すると、編集ウィンドウに現在表示されているダイアグラムのプリファレンスを編集できます。

図5-4 ビジュアル・プロパティのクラス図の全般プリファレンス・ダイアログ

5.3.3.1 階層ダイアグラム・レイアウトの使用

階層レイアウトは、図5-5に示されているように、汎化構造と、定義された方向のエッジに基づいてダイアグラム要素を階層的に配置します。ノード間は、最短ルートでエッジが引かれます。他のノードに連結されていないダイアグラム上のノードは、グリッド・レイアウトでレイアウトされます。階層レイアウトは、上から下、下から上、左から右、右から左の4種類の方向で使用できます。

図5-5 階層ダイアグラム・レイアウトの例

5.3.3.2 対称ダイアグラム・レイアウトの使用

対称レイアウトでは、図5-6に示されているノード間のエッジに基づいて、ダイアグラム要素が対称的に位置合せされます。特定の状況では、対称レイアウトにより中央のノードの周囲に放射状レイアウトでノードが配置されます。他のノードに連結されていないダイアグラム上のノードは、グリッド・レイアウトでレイアウトされます。

図5-6 対称ダイアグラムの例

5.3.3.3 直交ダイアグラム・レイアウトの使用

直交ダイアグラムには、図5-7に示されているように、階層と非階層の要素が表示され、位置合せされたコンポーネントの端がすべて同じ方向になります。クラス図の場合、汎化の各階層を位置合せして表すレイアウトが作成されます。

図5-7 直行ダイアグラム・レイアウトの例

5.3.3.4 グリッド・ダイアグラム・レイアウトの使用

グリッドは、図5-8に示されているように、左から右への行または上から下への列でノードを直線的にレイアウトしたグリッド・パターンで、ダイアグラム要素をレイアウトします。ノードは、左上のノードから開始します。

図5-8 グリッド・ダイアグラム・レイアウトの例

5.3.3.5 ダイアグラム要素のレイアウト方法

レイアウト・スタイルを使用するには、ダイアグラムのポップアップ・メニューを開いて「図形のレイアウト」を選択するか、図5-9のようにダイアグラムの「レイアウト・オプション」ドロップダウンを使用します。

図5-9 ダイアグラムの「レイアウト・オプション」ドロップダウン

ダイアグラムで要素をレイアウトするには、次のようにします。

1. 次のいずれかを選択します。

- ダイアグラム上の個々の要素を選択します。

- ダイアグラムのすべての要素をレイアウトする場合は、ダイアグラム上をクリックします。

- コンテナ要素内のすべての要素をレイアウトする場合は、コンテナ要素を選択します。

2. ダイアグラム・ツールバーで、ドロップダウン・リストから必要なレイアウト・スタイルを選択します(図5-9)。

選択した要素がダイアグラム上にレイアウトされた後も、ダイアグラム上の任意の場所にまとめて移動できるように、その要素は選択された状態になっています。

ダイアグラムの新しい要素のレイアウトを設定するには、「表示」→「プロパティ」ウィンドウを選択します。

ダイアログ上の要素のデフォルト・レイアウトを設定するには、「ツール」→「プリファレンス」→「ダイアグラム」に移動します。

5.3.3.6 グリッドを使用したダイアグラムのレイアウト方法

ダイアグラムは、ダイアグラム上にグリッドが表示されていない場合でも、一番近いグリッド線に自動的に合せることができます。ダイアグラム上のグリッド・セルは正方形で、このセルの高さおよび幅両方の変更には、値が1つのみ必要です。デフォルトでは、アクティビティ図上の要素はグリッドに合せられていません。デフォルト・ダイアグラム・グリッドの表示と動作を設定するには、「ツール」→「プリファレンス」に移動し、「ダイアグラム」を選択します。ここから、「グリッドの表示」を選択してグリッドを表示するか、「グリッドに合せる」チェック・ボックスを選択して、要素をグリッドに合せることができます。要素をグリッドに合せる際に、グリッドを表示する必要はありません。

ダイアグラムのグリッド表示と動作を現在のダイアグラムに定義するには、次のようにします。

1. ダイアグラム上をクリックします。

2. 「表示」→「プロパティ」ウィンドウで、「グリッドの表示」または「グリッドに合せる」を選択します。

5.3.3.7 ダイアグラム要素の配置方法

ダイアグラム要素を、上詰め、下詰めなど、特定のポイントに合せて間隔調整して配置できます。要素が配置される際、選択した要素の中で垂直軸および水平軸から最も離れた要素が、境界として使用されます。効果的に配置するには、選択範囲にある最も離れた要素を移動してから、要素を再配置します。

ダイアグラム要素を配置するには、次のようにします。

1. 3つ以上のダイアグラム要素を選択し、「ダイアグラム」→「配置」を選択します。

2. 要素の配置方法を次のように選択します。

- 水平方向の配置を、「なし」、「左揃え」、「中央揃え」、「間隔調整」、「右揃え」から選択します。

- 垂直方向の配置を、「なし」、「上詰め」、「中央揃え」、「間隔調整」、「下詰め」から選択します。

3. 「OK」をクリックします。

5.3.3.8 ダイアグラム要素の位置合せ方法

要素は垂直または水平に位置合せできます。また、要素の垂直間隔および水平間隔が均等になるように、要素の位置を変更できます。

要素の位置合せとサイズ変更は、次のようにします。

1. 2つ以上の要素を選択します。「ダイアグラム」→「位置合せ」を選択します。

2. 次のうちから選択します。

- 水平方向の位置合せを選択します。

- 垂直方向の位置合せを選択します。

3. 選択した要素のサイズを設定する場合は、「サイズ調整」チェック・ボックスを使用します。

- 選択したすべての要素の幅を揃えるには、「同じ幅」を選択します。変更後の要素の幅は、選択した要素の平均の幅になります。

- 選択したすべての要素の高さを揃えるには、「同じ高さ」を選択します。変更後の要素の高さは、選択した要素の平均の高さになります。

4. 「OK」をクリックします。

5.3.3.9 ダイアグラム上の端を非表示にする方法

ダイアグラム上の1つの端または任意の数の端を非表示にします。ダイアグラム上で非表示になっている端も「構造」ウィンドウには表示され、名前に「(非表示)」が追加されます。非表示の端がある場合、個別または同時に再表示できます。

1つまたは複数の端を非表示にするには、次のようにします。

1. 非表示にするダイアグラムの端を選択します。(特定のタイプの端をすべて選択する場合は、1つの端を右クリックして「このタイプをすべて選択」を選択します。)

2. 右クリックして、「選択した図形の非表示」を選択します。
「構造」ウィンドウに移動して、非表示にする端(複数可)を選択し、右クリックして、「図形の非表示」を選択することもできます。

5.3.3.10 ダイアグラム上の非表示の端を表示する方法

「構造」ウィンドウで、表示する端を選択し、右クリックして、「非表示の図形の表示」を選択します。

5.3.3.11 ダイアグラム上の非表示のすべての端を表示する方法

「構造」ウィンドウで、表示する端を選択し、右クリックして、「非表示の図形の表示」を選択します。

5.3.3.12 「構造」ウィンドウに非表示の端をすべて表示する方法

「構造」ウィンドウにリストされているオブジェクトを右クリックし、「可視性順」を選択します。

5.3.3.13 関連クラスをダイアグラムに表示する方法

現在表示されている要素に関連するクラスおよびインタフェースを、ダイアグラムに取り込むことができます。これには、選択したクラスまたはインタフェースによって拡張、実装または参照されているクラスまたはインタフェースが含まれます。

次のオプションから選択して、ダイアグラム上に関連クラスを表示します。

- ダイアグラム上でクラスまたはインタフェースを選択し、「モデル」→「表示」→「関連する要素」を選択します。

- ダイアグラム上でクラスまたはインタフェースを右クリックし、「表示」→「関連する要素」を選択します。

5.3.3.14 ダイアグラム上に端を配置する方法

ダイアグラムの端は、斜線または直線のスタイルでレイアウトできます。斜線は、任意の角度で移動できます。直線は、一連の直角として常に表示される線です。

「ツール」→「プリファレンス」→「ダイアグラム」→「クラス」で「線のスタイル」を使用して、各ダイアグラムの端に対するデフォルトの線スタイルを設定したり、アソシエーション用のプリファレンスを編集したりできます。図5-10を参照してください。

図5-10 ダイアグラムのプリファレンス、プリファレンスの編集(線のスタイル)

ダイアグラム・タイプの全インスタンスに対して線のスタイルを設定することもできます。1つの端の線のスタイルが斜線に変わり、線のスタイルを直線から斜線に変更した場合、ダイアグラム上には変更は表示されませんが、後でダイアグラム上の線を任意の角度で新しい位置に移動できるようになります。

個別に端を選択して、その線のスタイルを変更できます。個別の線を斜線から直線に変更する場合、線は直角を使用して再描画されます。個別の線を直線から斜線に変更する場合、線は変更されませんが、後で任意の角度で線(または線の一部)を再配置できます。

線が交差するときのスタイルも、ブリッジ交差とトンネル交差から選択できます。ブリッジを選択すると、線が交差する場所に2本の平行線が作成されます。トンネルを選択すると、交差する場所に半円が作成されます。デフォルトのスタイルは、線が交差する2本の線を使用した標準の交差です。

5.3.3.15 ダイアグラム上の交差スタイルを変更する方法

線が交差するときのスタイルを、ブリッジ交差とトンネル交差から選択できます。ブリッジを選択すると、線が交差する場所に2本の平行線が作成されます。トンネルを選択すると、交差する場所に半円が作成されます。デフォルトのスタイルは、線が交差する2本の線を使用した標準の交差です。交差スタイルは選択なしにもできます。これがデフォルト設定です。

5.3.4 ダイアグラム・ノードの操作

ノードは表示/非表示が可能です。ノードは要素の内外に作成できます。

5.3.4.1 ダイアグラム上にノードを作成する方法

「コンポーネント」ウィンドウを使用してノードを作成します。

ダイアグラムのノードを作成するには、次のようにします。

1. ダイアグラムの「コンポーネント」ウィンドウに表示されるノード・タイプから、作成するノードのタイプを選択します。

2. ノードを作成するダイアグラムをクリックするか、コンポーネント・パレットからドラッグします。これで、ノードがデフォルトのサイズで追加されます。
または

ノードを置く場所のいずれかの隅でマウス・ボタンをクリックして押したままにし、対角上までノードの枠線をドラッグしてからマウス・ボタンを放します。

3. 新しいノード上でデフォルトの要素名がハイライト表示されたら、ノードの名前を入力します。

5.3.4.2 ダイアグラム要素上に内部ノードを作成する方法

要素は、他のダイアグラム要素の内部ノードとしてダイアグラム上に表現できます。

内部ノードを使用して次の要素を作成できます。

- 内部クラスおよび内部インタフェース

- リレーションの使用方法

図5-11 シンボリック・ダイアグラム・クラス図

図5-12 内部ノードが表示された拡張ダイアグラムのクラス・ビュー

ダイアグラム要素に内部ノードを作成するには、次のようにします。

1. 内部ノードを作成するノードをダイアグラム上で選択します。

2. 「ダイアグラム」→拡張表示を選択し、ノードの拡張ビューを表示します。

3. 拡張ボックス内に内部ノード用のノードを作成するか、「アプリケーション」ウィンドウまたはダイアグラムから適切なノードをドラッグし、内部ノードを作成するために拡張したノード内にドロップします。

5.3.4.3 ダイアグラム上でのノードの表示方法の変更

ダイアグラム要素を選択し、次のいずれかを選択します。

- 「ダイアグラム」→「表示モード」→「圧縮」

- 「ダイアグラム」→「表示モード」→「シンボル」

- 「ダイアグラム」→「表示モード」→「拡張済」

5.3.4.4 ダイアグラム上でノードのサイズを最適化する方法

ポップアップ・メニューの最適化機能を使用して、ノードを最適化できます。最適化すると、すべての属性が表示されるようにノードのサイズが調整されます。

ダイアグラム上でノードのサイズを最適化するには、次のようにします。

1. サイズを変更するノードを選択します。

2. 選択したノードを右クリックし、まとめて、または個別に「図形サイズの最適化」→「高さと幅」を選択します。

5.3.5 ダイアグラムへの注釈の追加

ノートは、ダイアグラムまたはダイアグラム上の要素に対するコメントの追加に使用します。ノートは、1つ以上の要素に添付できます。ノートは、個別のファイル・システム要素としてではなく、現在のダイアグラムの一部として格納されます。図5-13に示されているように、「コンポーネント」ウィンドウにはノート・オプションがあります。

図5-13 「コンポーネント」ウィンドウでの注釈の追加

5.3.5.1 ダイアグラムにノートを追加する方法

「コンポーネント」ウィンドウの「ダイアグラムの注釈」機能を使用して、ダイアグラムにノートを追加します。

ダイアグラムにノートを追加するには、次のようにします。

1. 「コンポーネント」ウィンドウの「ダイアグラムの注釈」セクションで、「ノート」アイコンをクリックします。

2. デフォルト・サイズでノートを作成する場合は、ダイアグラムをクリックしてノートを作成します。
または

異なるサイズでノートを作成する場合は、ダイアグラムをクリックし、ノート・ボックスを必要なサイズまでドラッグしてからマウス・ボタンを放します。

3. ノートのテキストを入力し、ダイアグラム上をクリックします。

5.3.5.2 ダイアグラムの要素にノートを添付する方法

「コンポーネント」ウィンドウの「ダイアグラムの注釈」機能には、ダイアグラム要素にノートを添付するための添付コンポーネントが含まれています。

ダイアグラムの要素にノートを添付するには、次のようにします。

1. 「コンポーネント」ウィンドウの「ダイアグラムの注釈」セクションで、「添付」アイコンをクリックします。

2. ノートをクリックします。

3. ノートを添付する要素をクリックします。

5.3.5.3 ノート上のフォントを変更する方法

ノート要素上で使用できる標準的な編集オプションを使用して、フォントを変更します。

ノート上のフォント・サイズ、フォント色、太字やイタリックの書式設定を変更するには、次のようにします。

1. ノート要素をクリックします。テキスト編集ボックスが表示されます。

2. 編集するテキストを選択します。

3. テキストの書式を選択します。

5.3.6 データベース、クラスおよびインタフェースの変換

JDeveloperでは、データベース表、Javaクラスおよびインタフェースに対するUML変換がサポートされています。これらの変換機能を使用すると、UMLなどプラットフォームに依存しないモデルから、Javaのようなプラットフォーム固有のモデルを生成できます。同じソース・モデルとターゲット・モデルを使用して、変換を何度でも実行できます。JavaクラスからUMLへの逆変換の機能もあります。

変換には、次の方法があります。

- 元の要素と同じダイアグラム上の変換。

- 変換される要素用に作成された新規ダイアグラム上の変換。

- 現在のプロジェクトのみで、ダイアグラムに表示されない変換。

5.3.6.1 クラスまたはインタフェースの変換方法

UMLモデリング・ツールを使用すると、UMLクラス・モデルを作成してオフライン・データベースに変換する、またはその逆に変換することができます。

UML、Javaクラスまたはインタフェースを変換するには、次のようにします。

1. 変更する要素を選択します。

2. 次のいずれかを実行します。

- 変換する要素の定義を作成するのみで、その要素をダイアグラムに追加しない場合は、「ダイアグラム」→「変換」→「モデルのみ」の順に選択します。

- 変換する要素を現在のダイアグラム上で作成する場合は、「ダイアグラム」→「変換」→「同一ダイアグラム」の順に選択します。

- 変換する要素の新規ダイアグラムを作成し、その上に変換された要素を表示する場合は、「ダイアグラム」→「変換」→「新規ダイアグラム」の順に選択します。

- 図5-14および図5-15に示すように、選択した要素に対して実行する変換を選択し、「OK」をクリックします。

図5-14 UMLのオプションが表示された「変換」ダイアログ

図5-15 JavaからUMLのオプションが表示された「変換」ダイアログ

5.3.6.2 UMLとオフライン・データベースの変換方法

UMLモデリング・ツールを使用すると、UMLクラス・モデルを作成してオフライン・データベースに変換する、またはその逆に変換することができます。ダイアグラム上のすべての要素を変換する場合は、「ファイル」→「新規」→「ギャラリから」→「データベース・ダイアグラム」→「オフライン・データベース・オブジェクト」→「UMLクラス・モデルからのオフライン・データベース・オブジェクト」を選択します。

UMLクラス図をオフライン・データベースに変換するには、次のようにします。

1. 変換するダイアグラムを開きます。

2. 変更する要素を選択します。右クリックして、「変換」を選択します。

3. 次のいずれかを選択します。

- モデルのみ。UMLクラス・モデルに基づくオフライン・データベース・モデルが、現在のプロジェクトの「アプリケーション」ウィンドウに作成されます。

- 同一ダイアグラム。UMLクラス図に基づくオフライン・データベース・モデルが作成されます。オフライン・データベース・モデルは、次の場所で表示できます。

- 「アプリケーション」ウィンドウ。

- UMLクラス図(モデル化された表として)。

- 新規ダイアグラム。UMLクラス図に基づくオフライン・データベース・モデルが作成されます。オフライン・データベース・モデルは、次のどちらでも表示できます。

- 「アプリケーション」ウィンドウ。

- 新規データベース・ダイアグラム(モデル化された表および制約として)。

4. UMLをオフライン・データベースへを選択します。

5. 「OK」をクリックします。

オフライン・データベース・ダイアグラムをUMLに変換するには、次のようにします。

1. 変換するオフライン・データベース・オブジェクト(複数可)を選択します。

2. 右クリックして、「変換」を選択します。次のいずれかのオプションを選択します。

- モデルのみ。データベース・スキーマに基づくUMLクラス・モデルが、現在のプロジェクトの「アプリケーション」ウィンドウに作成されます。

- 同一ダイアグラム。オフライン・スキーマに基づくUMLクラス図が作成されます。新しいクラスは、次のどちらでも表示できます。

- 「アプリケーション」ウィンドウ。

- UMLクラス図(変換された各データベース表のクラスとして)。

- 新規ダイアグラム。ウィザードが完了すると、オフライン・データベース・スキーマに基づくUMLクラス図が作成されます。クラスは、次のどちらでも表示できます。

- 「アプリケーション」ウィンドウ(新しいUMLクラスとして)。

- 新規クラス図(変換された各データベース表のクラスとして)。

3. 図5-16のように、「変換」ダイアログが表示されます。「オフライン・データベース・オブジェクトをUMLへ」を選択します。

4. 「OK」をクリックします。

図5-16 オフライン・データベースをUMLへダイアログ・オプションが表示された、変換ダイアログ

UMLからオフライン・データベース・オブジェクトを作成するには、次のようにします。

1. 「アプリケーション」ウィンドウで、変換するUMLクラスを含むプロジェクトを選択します。

2. 「ファイル」→「新規」→「ギャラリから」を選択します。

3. 「データベース層」で、「項目」→ 「UMLクラス・モデルからのオフライン・データベース・オブジェクト」を選択します。「新規ギャラリ」からウィザードを起動した場合、変換プロセス中に作成されるオフライン・データベース・オブジェクトは、「アプリケーション」ウィンドウでのみ使用可能になります。
変換中には、次の選択肢があります。

- UML名をオフライン・データベース名に変換する方法。

- UMLクラス階層と多対多のアソシエーションの処理方法。

- ブジェクトが所属するスキーマ。

- 表示するログ・メッセージ。どの変換メッセージをログに記録するか、およびメッセージをログ・ウィンドウとログ・ファイルのどちらに送信するかを選択できます。

4. 図5-17のように、「UMLクラス・モデルからのオフライン・データベース・オブジェクト」ウィザードが開きます。変換するUMLクラスとアソシエーションを選択します。

5. 「終了」をクリックします。オフライン・データベース・オブジェクトが「アプリケーション」ウィンドウに作成されます。

図5-17 UMLクラス・モデルからのオフライン・データベースの作成例

ログに記録する変換メッセージのタイプを選択するには、次のようにします。

1. 「UMLクラス・モデルからのオフライン・データベース・オブジェクト」ウィザードを起動します。

2. 「ロギング・オプションの設定」ページで、ログ・メッセージを表示する場所と、ログに記録するアクションのタイプを選択します。

変換を実行する前に変更内容を確認するオプションがあります。また、ログに記録される変換メッセージの種類と、ログ・ウィンドウとログ・ファイルのどちらに表示するかを指定できます。

汎化の変換

「UMLクラス・モデルからのオフライン・データベース・オブジェクト」ウィザードの「クラス・オプションの設定」ページでは4つのタイプの汎化を指定できます。

オプションは次のとおりです。

- ルート・クラス変換

- リーフ・クラス変換

- 全クラスを変換して汎化

- 全クラスを変換、外部キーを作成

図5-18のように、2つのルート・クラスと3つのリーフ・クラスを考えます。

図5-18 2つのルート・クラスと3つのリーフ・クラスを示すダイアグラム

「ルート・クラス変換」のオプションを選択した場合、図5-19に示すように、ルート・クラスがオフライン表に変換され、階層における子孫クラスの属性と外部キーもすべて変換されます。識別子列を作成するオプションもあります。識別子列には、特定の行に対してどのサブクラスをインスタンス化するかを判読するために、永続層に対するマーカー値が含まれます。

図5-19 変換されたルート・クラス

「汎化クラスから継承し、リーフ・クラスのみを変換します」のオプションを選択した場合、図5-20に示すように、リーフ・クラスがオフライン表に変換され、先祖クラスの列と外部キーを継承します。

図5-20 汎化したクラスから継承して変換されたリーフ・クラス

「汎化クラスから継承し、すべてのクラスを変換します」のオプションを選択した場合、変換セットのすべてのクラスに対してオフライン表が作成されます。図5-21に示すように、各表は先祖表から列と外部キーを継承しますが、その点を除けば独立しています。

図5-21 汎化クラスから継承して変換されたすべてのクラス

「全クラスを変換、外部キーを作成」のオプションを選択した場合、変換セットのすべてのクラスに対してオフライン表が作成されます。図5-22に示すように列と外部キーは継承されず、親表(複数可)に対して外部キーが作成されます。

図5-22 外部キーを作成して変換されたすべてのクラス

5.3.7 ダイアグラムのローカル保存

ダイアグラムはダイアグラム・ファイルと同じようにディスクに格納されます。ダイアグラム・ファイルは、ダイアグラムに表示される要素を参照し、その要素の表示に関する情報(サイズ、色、フォント、各種プロパティの表示など)を含んでいます。ダイアグラム・ファイルは、ダイアグラムを格納するパッケージのフォルダの中に格納され、プロジェクト設定で指定したモデル・パスに格納されます。ダイアグラムのリンクと依存性もダイアグラム・ファイルに格納されます。

モデル・パスを設定するには、「アプリケーション」→「デフォルト・プロジェクト・プロパティ」→「プロジェクトのソース・パス」→「モデラー」を選択します。

Javaクラスなどのダイアグラム要素はダイアグラム・ファイルで参照されますが、その定義と実装の詳細は各要素の実行ファイルにのみ格納されます。各要素のダイアグラムでの詳細(位置、色、サイズなど)はダイアグラム・ファイルに格納されますが、要素の個別のモデル定義は格納されません。

5.4 ダイアグラムから独立したUML要素の作成

「新規ギャラリ」で作成するUML要素は、データベース・ウィンドウに表示され、ダイアグラムから独立して作成された後、ダイアグラム上にドロップできます。

5.4.1 ダイアグラムから独立したUML要素の作成方法

「新規ギャラリ」を使用して、既存のダイアグラムがない状態でUML要素を作成します。

ダイアグラムから独立したUML要素を作成するには、次のようにします。

1. 「アプリケーション」ウィンドウでプロジェクトを選択します。

2. 「ファイル」→「新規」を選択します。新規ギャラリが表示されます。

3. 「カテゴリ」パネルで「一般」ノードを開き、「UML」ノードを選択します。「項目」パネルにUML要素がリストされます。

4. 「項目」パネルで、作成するUML要素を選択し「OK」をクリックします。選択したUML要素の「プロパティ」ダイアログが開きます。

5. 「プロパティ」ダイアログをすべて入力し、「OK」をクリックします。UML要素が「アプリケーション」ウィンドウに追加されます。

5.5 UMLのインポートとエクスポート

他のモデリング・ソフトウェアを使用して作成したモデルは、そのモデルがUML 2.1.1から2.4.1に準拠している場合は、XML Metadata Interchange (XMI)ファイルを使用してJDeveloperにインポートできます。

XMI仕様では、メタモデルを使用してUMLモデルをXMLドキュメントに変換する方法が記述されています。

5.5.1 XMIを使用してUMLモデルをインポートおよびエクスポートする方法

インポートには、次の制約事項があります。

- ダイアグラムはインポートできません。

- XMIには1つのファイルのみ含まれている必要があります。XMIによって参照されるプロファイルはすべて、「ツール」→「プリファレンス」→「UML」→「プロファイル」を使用してインポート前にJDeveloperに登録しておく必要があります。プロファイルは個別のファイルにある必要があります。詳細は、第5.5.3項「UMLプロファイルの使用」を参照してください。

XMIからUMLモデルをインポートするには、次のようにします。

1. 「アプリケーション」ウィンドウで空のプロジェクトを選択し、「ファイル」→「インポート」を選択します。

2. 「XMIからUML」を選択し、「OK」をクリックします。ダイアグラムは、インポートされたモデルから自動的に作成されます。図5-24に示すように、このオプションはプロセス中にダイアログで示されます。

3. 「UMLをXMIからインポート」ダイアログを完了します。

図5-23 「XMI」ダイアログからUMLを選択

図5-24 「XMI」ダイアログからUMLをインポート

UMLモデルをXMIとしてエクスポートするには、次のようにします。

1. プロジェクトを選択します。

2. 「ファイル」→「エクスポート」を選択します。

図5-25 「XMI」ダイアログとしてUMLを選択

図5-26 「XMI」ダイアログとしてUMLをエクスポート

5.5.2 インポート時の一般的なエラー・メッセージ

インポート中には、「XMIインポート」ログで頻繁に見られる一般的なエラーと警告があります。これらの多くは、いくつかの単純な手順のみで簡単に解決できます。詳細は、表5-1を参照してください。ログの項目をダブルクリックすると、問題のある要素に移動します。多くの場合、ネームスペースや標準オブジェクト参照が正しくないことが問題の原因です。

他のXMLと同様、有効なファイルの構造は、xmlnsネームスペースによって参照されるXMLスキーマによって指定されます。XMLは、オブジェクトまたはその親要素オブジェクトの値を表す要素と、値である属性とで構成されます。値が他のオブジェクトへの参照である場合もあり、たとえばHTMLの場合にはhrefとして表されます。

表5-1 インポート時の一般的なエラー・メッセージ

エラー・タイプ

エラー詳細

解決内容

プロファイルの欠落

- エラー(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スキーマを指定できる拡張メカニズムがあります。前述のメッセージは、関連するプロファイルが登録されていなかったことを示しています。プロファイルを登録するには、第5章「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標準プロファイル・ネームスペースが無効

- エラー(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はネームスペースとして認識されていません

これは、標準プロファイルがすでに登録されている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が欠落しています

- 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

5.5.3 UMLプロファイルの使用

UMLプロファイルは、UMLメタモデルのサブセットです。これらのサブセットは、UMLメタデータで指定されているルール以上の整形式のルールを指定します。整形式のルールとは、標準のUMLメタモデル仕様で使用される条件です。UMLメタモデル仕様には、メタモデル要素の定義に有効なUMLオブジェクト制約言語(OCL)で記述された一連の制約が記されています。JDeveloperには、UMLの標準プロファイルがいくつか付属しています。

5.5.3.1 カスタム・プロファイルの追加方法

カスタム・プロファイルを追加するには、「ツール」→「プリファレンス」→「UML」→「プロファイル」に進んで「追加」をクリックします。図5-27に示されているように、プロファイル・ページには、アプリケーションで使用できる現在のプロファイルのすべてが表示されます。カスタム・プロファイルを追加したら、そのプロファイルを選択して、「編集」をクリックすることにより、プロファイルのURI (Universal Resource Indicator)を編集します。URIは、アプリケーションがプロファイルを探す場合を示します。UMLプロファイルの詳細は、「OMG Catalog」(http://www.omg.org/technology/documents/profile_catalog.htm)内のサンプル・プロファイルを参照してください。

図5-27 UMLプリファレンスの「プロファイル」ダイアログ

5.5.3.2 UMLパッケージにプロファイルを適用する方法

UML変換を実行する際、プロファイルを選択して、UML変換のステレオタイプをターゲット書式に適用します。UMLパッケージを変換する際、使用するプロファイル、および生成されたオブジェクト(クラスまたはパッケージ)のコール元をシステムに伝える必要があります。

UMLプロファイルをパッケージに適用するには、次のようにします。

1. 「アプリケーション」ウィンドウでUMLパッケージを右クリックし、「プロパティ」を選択し、UMLパッケージの「パッケージ」の「プロパティ」ダイアログを開きます。

2. 「パッケージ」の「プロパティ」ダイアログで、「プロファイル・アプリケーション」を選択します。「追加」をクリックし、UMLプロファイルを選択します。

3. 「パッケージ」の「プロパティ」ダイアログで、「パッケージ化要素」を選択します。

4. 「クラス」ノードを展開し、「適用済ステレオタイプ」を選択して「追加」をクリックします。使用可能なプロパティは、使用するUMLプロファイルに応じて異なります。図5-28に、DatabaseProfileというUMLプロファイルの「変換後の名前」プロパティを示します。

図5-28 UML変換用に生成されたクラス名を表示する「パッケージ」の「プロパティ」ダイアログ

5.5.3.3 UML変換用のデータベース・プロファイルの使用

JDeveloperにはDatabaseProfileと呼ばれるUMLプロファイルが付属しています。このプロファイルを使用すると、オフライン・データベース・モデルに変換されるときのクラス・モデルに対する処理を指定できます。UMLプロファイルの詳細は、第5.5.3項「UMLプロファイルの使用」を参照してください。

DatabaseProfileには、要素の変換方法を制御するステレオタイプのプロパティが含まれます。このプロファイルに含まれるステレオタイプとそのプロパティは、表5-2のとおりです。

表5-2 DatabaseProfileのステレオタイプとプロパティ

ステレオタイプ

適用先

オフライン・データベースのタイプ

プロパティ

説明

データベース・パッケージ

UML::Package

SCHEMA

変換後の名前

データベース・クラス

UML::Class

TABLE

変換後の名前

データベース属性

UML::Property

COLUMN

変換後の名前
データ型
プライマリ

UMLプロパティは、"attribute"またはアソシエーションの端です。

データベース・データ型

UML::Type

n/a

DatatypePrimary

メタモデルで、TypeはClass、Association、PrimitiveTypeなどを含む広範囲の要素のスーパークラスです。このステレオタイプはすべてに適用できます。プロパティ(属性)が特定タイプの場合は常に、トランスフォーマによって読取りが可能です。

データベース・アソシエーション

UML::
Association

CONSTRAINT

変換後の名前 外部キー・ネーミング・ルール

データベースの汎化

UML::
Generalization

CONSTRAINT

変換後の名前 外部キー・ネーミング・ルール

特定のトランスフォーマは汎化から外部キーを作成し、このステレオタイプがここで適用されます。

属性(プロパティ)は、表5-3を参照してください。

表5-3 DatabaseProfileのステレオタイプのプロパティ

プロパティ

説明

データ型

変換後の名前

変換されるデータベース・オブジェクトの名前。ブランクのままにすると、デフォルトのネーミング・ルールが適用されます。

文字列

データ型

データ型のSQLテキスト。

デフォルト、ANSI、Oracleと、サポートされるその他のデータベース・タイプなど様々なデータ型があります。

文字列

外部キー・ネーミング・ルール

アソシエーションから外部キーに名前を付けるときに使用するルール。UML名を使用するか、databaseNameプロパティを使用するか、または表名からデフォルト名を導出します。

両方の表
データベース名
所有者名
UML名

プライマリ

変換された列が親表の主キーの一部であることを示すフラグ。

ブール

DatabaseProfileを使用してクラス・モデルを変換するには、次のようにします。

1. 「アプリケーション」ウィンドウで右クリックして「プロパティ」を選択し、UMLパッケージpackage.uml_pckの「パッケージ」の「プロパティ」ダイアログを開きます。
ヘルプを参照するには、[F1]を押すか、「パッケージ」の「プロパティ」ダイアログ内で「ヘルプ」をクリックしてください。

2. 「パッケージ」プロパティ・ダイアログで「プロファイル・アプリケーション」を選択し、「追加」をクリックします。

3. 図5-29に示すように、「プロパティ」ウィンドウで、使用可能なプロファイルのリストからDatabaseProfileを選択します。パッケージをオフライン・データベース・スキーマに変換した後で使用する名前を指定します。「適用済ステレオタイプ」ノードを選択し、「追加」をクリックします。「プロパティ」に、「変換後の名前」という新しいプロパティがリストされます。名前を入力します。「OK」をクリックします。これで、図5-30に示されているように、新しいファイルDatabaseProfile.uml_paが「アプリケーション」ウィンドウに加わりました。

図5-29 「パッケージ」の「プロパティ」のデータベース・プロファイル

図5-30 プロファイル・アプリケーションのプロパティ

4. データベース・プロファイル・ファイルを確認するには、「アプリケーション」ウィンドウで右クリックし、「プロパティ」を選択します。ダイアログには、変換に使用されるプロファイルが表示されます。「OK」をクリックしてダイアログを閉じます。

5. これで、プロジェクトの様々な要素にステレオタイプを適用できるようになります。図5-30に示した例では、Employee.uml_claを右クリックして「プロパティ」を選択し、Employeeクラスにステレオタイプを適用しています。これにより、この要素の「クラスのプロパティ」ダイアログが開きます。
変換後に使用する名前を指定するには、「適用済ステレオタイプ」を選択し、「追加」をクリックして「データベース・クラス」を選択します。図5-31のように、「プロパティ」で、「変換後の名前」の隣に値を入力します。

図5-31 生成される変換クラス名プロパティ

6. 適用するステレオタイプを設定後、第5.3.6.2項「UMLとオフライン・データベースの変換方法」の手順に従ってUMLクラス・モデルの変換に進むことができます。設定したDatabaseProfileのステレオタイプとプロパティが変換中に適用されます。

ステレオタイプは他の要素にも適用できます。たとえば、特定のクラスによって所有されている属性にデータ型と主キーを指定できます。同じ「クラスのプロパティ」ダイアログで、「所有された属性」を開いて、「追加」をクリックして、名前を入力することにより、既存の属性を選択するか、作成します。所有された属性のノードを開いて、「適用済ステレオタイプ」を選択し、「追加」をクリックします。図5-31では、このレベルで指定できる多くのデータ型、属性が主キーに変換されるかどうか、および変換後の名前を示しています。

図5-32 適用済ステレオタイプのデータベース属性

DatabaseProfileで変換されるステレオタイプとプロパティの詳細は、表5-2「DatabaseProfileのステレオタイプとプロパティ」および表5-3「DatabaseProfileのステレオタイプのプロパティ」を参照してください。

5.5.4 UMLプロファイル図

プロファイル図は、カスタム・ステレオタイプ、タグ付けされた値および制約を定義することにより、手軽なUML拡張メカニズムを提供する構造ダイアグラムです。プロファイルにより、様々なプラットフォームとドメインに対するUMLメタモデルまたはモデル化されたビジネス・プロセスを調整できます。メタモデルのカスタマイズは、パッケージに適用されるプロファイルで定義されます。ステレオタイプは特定のメタクラスであり、タグ付けされた値は標準メタ属性であり、プロファイルは特定種のパッケージです。

標準UMLメタモデルのセマンティクスはプロファイルで定義されます。たとえば、Javaモデル・プロファイルで、明示的に各クラス・インスタンスにJavaクラス・ステレオタイプを割り当てることなく、クラスの汎化を単一継承に制限することができます。プロファイルは、動的にモデルに適用したり、除外したりできます。また、動的に組み合せて、複数のプロファイルを同時に同じモデルに適用することもできますが、プロファイル・メカニズムは、上級の拡張メカニズムではありません。既存のメタモデルを変更したり、MOFのように新しいメタモデルを作成することはできません。プロファイルは、特定のドメイン、プラットフォームまたはメソッド固有の構成による既存メタモデルの調整またはカスタマイズのみ可能です。メタモデルに適用される制約を除外することはできませんが、プロファイルを使用して新しい制約を追加することはできます。プロファイル図を作成するには、「新規ギャラリ」を使用します。「ファイル」→「新規」→「ギャラリから」→「プロファイル図」を選択します。

5.5.5 MOFモデル・ライブラリの作成

MOF (Meta-Object Facility)モデル・ライブラリ.jarファイルを作成して、プロジェクト内のUMLオブジェクトを別のプロジェクトで再利用できます。

MOFモデルJARファイルを作成するには、次のようにします。

1. アプリケーション・プロジェクトにモデル・ノードを選択します。

2. 「新規」→「ギャラリから」→「デプロイメント・プロファイル」→「MOFモデル・ライブラリ」を選択します。「OK」をクリックします。

3. デプロイメント・プロファイルの名前を追加します。「OK」をクリックします。次のダイアログが表示されます。

4. 「MOFモデル・ライブラリ」ダイアログで、JARファイルの場所を選択し、ダイアログを確定します。「OK」をクリックします。

5. プロジェクトを選択し、右クリックして、「デプロイ」→MyMOFLibraryを選択することにより、作成したJARに対する変更をデプロイします。プロジェクトにライブラリを追加する場合は、「ツール」→「ライブラリの管理」→「ライブラリ」→「新規」に移動して、MOFモデル・ライブラリのソース・パスを追加します。再デプロイする場合は、JARを新しい変更で更新できます。

5.6 UMLクラス図によるモデリング

ダイアグラムに表されるクラスの定義、クラスのメンバー、継承およびコンポジット関係は、クラスのJavaソース・コードから直接導出されます。これらはすべてJavaコードとして作成され、ダイアグラムに表示されます。ダイアグラムに表示されているクラスのソース・コードを変更、追加または削除した場合、これらの変更内容は、ダイアグラム上のこれらのクラスおよびインタフェースに反映されます。反対に、モデリングされたクラスに対する変更は、基礎となるソース・コードにも行われます。Javaクラス図上に表示されたコンポジット関係または参照に関する情報の中には、Javadocタグとしてソース・コードに格納されているものもあります。

Javaクラス図には、他のダイアグラム・タイプ(Oracle ADF Business Components、UML要素、Enterprise JavaBeansおよびデータベース・オブジェクト)の図形を含めることができます。

5.6.1 クラス図の理解

クラスは、クラス名と詳細を含む四角形として表されます。クラスは、圧縮、シンボルまたは拡張済のノードとして表示できます。表示プロパティを設定するには、「ツール」→「プリファレンス」→「ダイアグラム」→(「ダイアグラム・タイプ」)→「表示オプション」に進みます。

ダイアグラム上の要素の表示方法を変更することもできます。ダイアグラム上で、クラスおよびインタフェースはコンパートメントに分割されており、各コンパートメントには情報が1種類のみ含まれます。大きさが不足し、内容の全体を表示できない各コンパートメントには、省略記号(...)が表示されます。モデル化されたクラスのすべての属性を表示するには、クラスを右クリックして図形の高さの最適化を選択します。図5-33に、一般的なクラス図のレイアウトの例を示します。

すべての属性および操作には、可視性を表す記号が表示されます。可視性の記号には、Public (+)、Private (-)、Protected (#)および~ Packageがあります。

図5-33 要素を含むUMLクラス図

表5-4 クラス図の要素

要素

説明

インタフェース

インタフェースは、名前コンパートメントにキーワード≪interface≫が付いて表されます。インタフェースは、圧縮、標準または拡張済のノードとして表示できます。ネストされたクラスおよびインタフェースは、標準および拡張済のインタフェース内部でモデル化できます。

列挙

列挙は、有限の、通常は小さいセットの名前付きリテラルを持つデータ型です。列挙には、列挙の値を表す名前付き識別子のセットが含まれます。

1対*アソシエーション

1対多アソシエーションは、クラス間の関係を定義します。ダイアグラム上では実線で表されます。

方向を定めた1対1アソシエーション

「有向1対1アソシエーション」は、ダイアグラムでは、アソシエーションの方向を開いた矢印で指す実線として表示されます。

方向を定めた1対多アソシエーション

「有向1対*アソシエーション」は、ダイアグラムでは、複数のアソシエーションの方向を開いた矢印で指す実線として表示されます。

有向コンポジット集約

ダイアグラムでは、アソシエーションの方向に開いた矢印と、塗りつぶされたダイアモンド型の付いた実線でアソシエーションの発生側に表示されます。

汎化

分類子間の汎化関係を定義します。ダイアグラムでは、特殊分類子またはインタフェースの方向を白抜きの矢印で指す実線として表示されます。

実現

インタフェースがクラスによって実現される位置を定義します。ダイアグラム上に破線と実装されているインタフェースに向けた白抜きの矢印で表されます。

クラス

オブジェクトを表します。クラスは、オブジェクト指向アプリケーションの主要な構築ブロックを形成します。垂直に重ねた3つのコンパートメントを含む四角形として、ダイアグラム上で表されます。

パッケージ

システムを複数のパッケージに分割するために使用し、システムを簡略化してわかりやすくします。

データ型

データ型は、データ値を定義するモデル要素です。

プリミティブ・タイプ

プリミティブ型またはプリミティブ・データ型は、ブール、バイト、小数、DateTime、Double、Float、Timeなどのデータ型です。

制約

制約は、システムの動作やソリューションをモデル化するときの自由度、または自由度の欠如です。

5.6.2 クラス図機能の操作

「プロパティ」ウィンドウを使用して、要素のプロパティを設定します。図5-34に示すように、各要素は一意のアイコンと説明で表されます。

クラスをダイアグラムにドラッグし、クラスとインタフェースを作成します。プロジェクト設定とデフォルト・プロパティのモデル・パスで指定されている場所に、要素が作成されます。(「アプリケーション」→「デフォルト・プロジェクト・プロパティ」。)パッケージをクリックしてパッケージをモデル化することもできます。モデル化されたパッケージを右クリックして「ドリル・ダウン」を選択すると、そのパッケージのダイアグラムが表示されます。

クラス・プロパティは、次のいずれかの方法でダイアグラム上にモデル化されたクラスとインタフェースに追加されます。

- モデル化されたクラスまたはインタフェースをダブルクリックし、プロパティ・ダイアログにアクセスします。

- クラスまたはインタフェースを右クリックし、「プロパティ」を選択します。

図5-34 クラス図の「コンポーネント」ウィンドウ

5.6.2.1 ネストされたクラスとネストされたインタフェースの追加方法

ネストされたクラスとネストされたインタフェースを作成するには、モデル化されたクラスまたはインタフェースにそれらを作成するか、インプレース作成(シンボル表示のみ)を使用して図形の表示設定を変更するか、またはクラスを右クリックして「表示モード」→「拡張済」を選択した後、拡張済ノード内部に別のクラスを作成します。

5.6.2.2 属性と操作の追加方法

モデル化されたクラスとインタフェースに属性と操作を追加するには、次のいずれかの方法を使用します。

- モデル化されたクラスまたはインタフェースをダブルクリックし、要素のプロパティ・ダイアログを使用して属性または操作を追加します。

- クラスまたはインタフェースを右クリックして「プロパティ」を選択し、要素のプロパティ・ダイアログを使用して属性または操作を追加します。

- ダイアグラム上の1つのクラスまたはインタフェースから、同じダイアグラム上の別のクラスまたはインタフェースに、既存の属性または操作をドラッグします。
クラスまたはインタフェースにおける属性または操作の順序を変更するには、画面で上下にドラッグします。属性または操作の「アルファベット順でソート」プロパティは、選択を解除する必要があります(「ツール」→「プリファレンス」→「ダイアグラム」→「クラス」→「次のプリファレンスを編集」: 「クラス」または「インタフェース」→「属性」または「操作」→「アルファベット順でソート」)。

5.6.2.3 属性と操作を非表示にする方法

ポップアップ・メニューを使用して、ダイアグラム上の属性および操作を表示したり非表示にしたりできます。

1つ以上の属性または操作を非表示にするには、次のようにします。

1. 非表示にする属性または操作を選択します。

2. 選択した項目を右クリックして、「非表示」→「選択した図形」を選択します。属性または操作を表示するには、「非表示のメンバーをすべて表示」を選択します。

5.6.2.4 汎化、実現、およびアソシエーションの追加方法

汎化した構造をクラス図に作成するには、クラス・コンポーネント・ウィンドウで「汎化」アイコンを使用します。

クラスによってインタフェースを実現する場所に、ダイアグラムの「クラス」の「コンポーネント」ウィンドウで「実現」アイコンを使用してインタフェースをモデル化します。

「アソシエーション」アイコンを使用し、モデル化されたクラスとインタフェースの間で様々なアソシエーションを作成できます。アソシエーションは、モデリングされたアソシエーションをダブルクリックして、そのプロパティを変更することによって変更します。

5.6.2.5 Javaクラス、インタフェースおよび列挙の作成方法

Javaクラス、インタフェースまたは列挙をダイアグラム上に作成するには、そのダイアグラムに対するJavaの「コンポーネント」ウィンドウで「Javaクラス」アイコン、「Javaインタフェース」アイコンまたは「Java Enum」アイコンをクリックし、次に、そのクラスを作成するダイアグラムをクリックします。モデリングされたクラスまたはインタフェースのJavaソース・ファイルは、プロジェクトの設定で指定された位置に作成されます。

「Javaクラス」、「Javaインタフェース」、および「Java Enum」の各アイコンは、Javaクラスの名前および詳細を含む四角形として図に表示されます。Javaクラスおよびインタフェースはコンパートメントに分割されており、各コンパートメントに含まれている情報は1種類のみです。

大きさが不足し、すべての内容を表示できない各コンパートメントには、省略記号(...)が表示されます。すべてのフィールドおよびメソッドが表示されるようにモデリングされたクラスを表示するには、クラスを右クリックし、「図形サイズの最適化」、「高さと幅」を選択します。

ダイアグラム上のクラスの各タイプは、名前コンパートメントのステレオタイプにより識別されます。これは、デフォルトでは表示されません。

メンバー(フィールドおよびメソッド)には、可視性を表す記号が表示されます。可視性の記号には、Public (+)、Private (-)およびProtected (#)があります。可視性の記号が使用されていない場合、フィールドまたはメソッドの可視性はPackageになります。

5.6.2.6 内部Javaクラスおよび内部Javaインタフェースのモデリング

様々なパッケージ、現在のアプリケーションまたはライブラリにあるプライマリ・クラスや内部クラスをダイアグラムに含めることができます。内部Javaクラスおよび内部Javaインタフェースは、それらを所有するクラスのメンバーとして定義します。そのため、これらのクラスはメンバー・クラスとも呼ばれます。

内部クラスおよび内部インタフェースは、ダイアグラム上のモデリングされたJavaクラスまたはJavaインタフェースの内部クラス・コンパートメントに表示されます。内部クラスにはClassという語が、内部インタフェースにはInterfaceという語が接頭辞として付き、可視性の記号とクラス名またはインタフェース名の間に挿入されます。

モデリングされたJavaクラスまたはインタフェースに内部クラスまたは内部インタフェースを作成するには、実装Javaコードに内部クラスを追加するか、既存のモデリングされたクラスの内部ノードとして新規Javaクラスまたはインタフェースを作成します。

内部Javaクラスおよび内部Javaインタフェースには、Javaクラス、Javaインタフェースまたはパッケージに含まれるものと同じ名前を付けることはできません。また、staticフィールドやstaticメソッドを含めることはできません。

5.6.2.7 Javaクラス図でのコンポジットのモデリング

ダイアグラムのJavaクラスのJavaクラス・コンポーネント・ウィンドウの様々な参照アイコンを使用して、ダイアグラムのクラスとインタフェースとの間に、これまでアソシエーションと呼ばれていた様々な参照をすばやく作成できます。モデリングされたJavaクラス間に作成された参照は、参照を実装するクラスのソース・コードではフィールドとして表されます。ダイアグラム上のコンポジット関係は、参照の方向で開いた実線の矢印で表示されます。表5-5は、ダイアグラムにモデリング可能な参照を示しています。

表5-5 クラスまたはインタフェース間の参照

参照

説明

参照(オブジェクト)

クラスまたはインタフェース間の唯一の直接参照。これは、<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タグが参照を表すコードに追加されます)を選択します。集約記号は、文書化の目的にのみ使用されます。

5.6.2.8 Javaクラス図での継承のモデリング

Javaソースでextends文として表現される継承構造は、ダイアグラムのJavaクラス・コンポーネント・ウィンドウの「拡張」アイコンを使用してJavaクラスのダイアグラムに作成できます。拡張関係は、ダイアグラムでは、拡張クラスまたはインタフェースの方向を白抜きの矢印で指す実線として表示されます。

インタフェースをクラスによって実装する場合、ダイアグラムのJavaコンポーネント・ウィンドウで「実装」アイコンを使用して、インタフェースを作成できます。実装関係を作成すると、実装クラスのソース・コードにimplements文が追加されます。実装関係は、ダイアグラムでは、実装されたJavaインタフェースの方向を白抜きの矢印で指す破線として表示されます。

5.6.2.9 モデリングされたJavaクラスの拡張

拡張関係は、同一クラス・モデルにおける要素間の継承をモデリングします。クラス定義にextends文を作成して、Javaクラス間およびJavaインタフェース間の拡張関係を作成できます。列挙は他のクラスを拡張したり、他のクラスで拡張することはできません。

注意:

Javaでは多重クラス継承をサポートしていないため、ダイアグラムのJavaクラスからモデリングできる拡張関係は1つのみです。多重拡張関係は、Javaインタフェースからモデリングできます。

5.6.2.10 モデリングされたJavaインタフェースの実装

実装関係は、モデリングされたJavaインタフェースを、モデリングされたJavaクラスを使用して実装することを指定します。これは、Javaクラスのソースではimplementsキーワードとして表されます。クラス図における実装関係は、実装されるインタフェースへ向けた、先端が白抜きの破線矢印で表します。列挙は、インタフェースを実装できません。

実装されたインタフェースが、モデリングされた別のインタフェースの拡張である場合(extends関係を使用)、これはインタフェースのJavaソース・コードに反映されます。

インタフェースを実装するクラスでは、そのインタフェースの一部またはすべての抽象メソッドの実装が可能です。あるクラスがインタフェースのメソッドを部分的にしか実装しない場合でも、そのクラスはabstractとして定義されます。

5.6.2.11 Javaフィールドとメソッドのモデリング

Javaクラスまたはインタフェースのメンバー(フィールドおよびメソッド)をダイアグラムに作成できます。フィールドおよびメソッドを、ダイアグラム上のモデリングされたJavaクラスおよびインタフェースに追加します。そのためには、モデリングされたJavaクラスまたはインタフェースをダブルクリックし、Javaソース・エディタを使用してフィールドまたはメソッドを追加します。

- フィールドは、モデリングされたJavaクラスまたはJavaインタフェースの特性をカプセル化するために使用されます。モデリングされたすべてのフィールドには、名前、データ型および指定された可視性があります。
フィールドまたはメソッドがダイアグラムのクラスに表示されるとき、接頭辞として+ (publicとして宣言される場合)、- (privateとして宣言される場合)または# (protectedとして宣言される場合)が付きます。staticフィールドはダイアグラム上で下線が引かれます。

- メソッドは、クラス内でそのクラスの動作を定義します。メソッドには、スカラー型または他のクラスで定義した型のいずれかの戻り型を指定できます。

5.6.2.12 クラス図のリファクタ方法

ダイアグラムでインプレース編集機能を使用してクラスの名前を変更またはクラスを移動すると、そのクラスのソース・コードが自動的にリファクタされます。ダイアグラムでJavaパッケージの名前を変更またはパッケージを移動すると、そのパッケージの内容が自動的にリファクタされます。

ダイアグラムでフィールド、メソッドまたは内部クラスを削除すると、自動的に「安全に削除」リファクタ・パターンが適用されます。ダイアグラムのJavaクラス、インタフェース、列挙またはメンバーにリファクタ・パターンを適用するには、ダイアグラムで対象となるクラスまたはメンバーを選択し、「リファクタ」メニューから目的のリファクタ・パターンを選択します。

Javaクラス図のJavaクラス、インタフェースおよび列挙では、次のリファクタ・パターンを使用できます。

- 名前の変更

- 移動(ダイアグラムで1つ選択した場合にも複数選択した場合にも適用されます)

- 複製

- インタフェースの抽出

- スーパークラスの抽出

Javaクラス図のJavaフィールドおよびメソッドでは、次のリファクタ・パターンを使用できます。

リファクタ操作を開始するには、次のようにします。

1. ソース・エディタ・ウィンドウ、データベース・ウィンドウまたは構造ペインでプログラム要素を選択します。

2. プログラム要素を右クリックします。

3. ポップアップ・メニューから操作を選択します。

4. ツールバーから「リファクタ」を選択し、ドロップダウン・リストからリファクタ操作を選択することもできます。

- 名前の変更

- 移動

- staticにする

- メンバーのプル・アップ

- メンバーのプッシュ・ダウン

- メソッドの変更(Javaメソッドのみ)

5.7 EJB/JPAコンポーネントのモデリング

Enterprise JavaBeans (EJB)のモデル化により、EJBエンティティ関連およびアーキテクチャを視覚化し、プロパティおよびメソッドを移入できるBeanのセットを迅速に作成し、またそのBeanおよびBean間の関連と参照のグラフィカル表示を作成できます。Beanがモデル化されると、基礎となる実装ファイルも常に作成されます。

EJBをモデル化するため、EJBダイアグラムの作成を開始します。詳細は、第5.3.1.1項「新しいダイアグラムの作成方法」を参照してください。UMLクラス、Javaクラス、ビジネス・コンポーネント、オフライン・データベース表、UMLユースケース、Webサービスなどの他の要素は、後で同じダイアグラムに追加できます。詳細は、第5.3.2項「ダイアグラム要素の使用」を参照してください。

モデリング・オプションは次のとおりです。

- エンティティBeanは、コンテナ管理の永続性(CMP)またはBean管理の永続性(BMP)になります。Bean管理の永続性を使用してエンティティBeanを作成する前に、そのエンティティBean間の関連を作成する必要があるかどうかを検討することもできます。関連は、コンテナ管理の永続性を持つエンティティBean間にのみ作成できます。

- セッションBeanのセッション・タイプをクラス図で変更するには、セッションBeanを右クリックし、「セッション・タイプ」、次に「ステートフル」、または「セッション・タイプ」、次に「ステートレス」を選択します。

- メッセージドリブンBeanは、(EJB参照を使用して)セッションBeanおよびエンティティBeanと対話するために最も頻繁に使用されます。

5.7.1 EJB/JPAモデル化機能の操作

Enterprise JavaBeansは、「コンポーネント」ウィンドウで「エンティティBean」アイコン、「セッションBean」アイコンまたは「メッセージドリブンBean」コンポーネントを使用して、ダイアグラム上に作成されます。コンポーネントを選択し、必要なスポットでダイアグラムをクリックします。モデル化された要素の実装ファイルは、プロジェクト設定で指定された場所に作成されます。

ヒント:

ダイアグラムでモデル化されたBeanの実装Javaクラスをモデル化する場合は、モデル化されたBeanを右クリックし、実装ファイルを表示を選択します。

プロパティとメソッドを追加するには、BeanをダブルクリックしてEJBモジュール・エディタでプロパティまたはメソッドを追加するか、モデル化されたBean自体で新規のプロパティまたはメソッドをインプレースで作成します。

モデル化されたセッションBeanとエンティティBeanは、複数のコンパートメントで構成されます。たとえば、メッセージドリブンBeanに含まれるのは、«message-driven bean»ステレオタイプおよびBeanの名前を含む名前コンパートメントのみです。EJB 3.0 Beanでは、インタフェースのコンパートメントがないため、モデルの外観は異なります。

図5-35 EJB/JPAコンポーネント・ダイアグラム

Bean間の関連とエッジに注意してください。一方のBeanからリモートまたはローカル・インタフェースを持つ他方のBeanへの参照を作成できます。参照をモデル化できるのは、現在のデプロイメント・ディスクリプタ内にあるBean間のみです。

EJB/JPAクラスのダイアグラムを作成するには、次のようにします。

1. 「新規ギャラリ」でプロジェクトまたはアプリケーションの新規EJBダイアグラムを作成します。

2. 「EJBコンポーネント」ウィンドウを使用して、ダイアグラムの要素を作成します。表5-6は、「EJBコンポーネント」ウィンドウを示しています。

表5-6 「EJBコンポーネント」ウィンドウのアイコン

ドロップダウン・リスト

アイコン

名前

EJBノード

エンティティ

メッセージドリブンBean

セッションBean

エンティティ関連

双方向の*対*関係

双方向の*対1関係

双方向の1対1関係

一方向の*対*関係

一方向の*対1関係

一方向の1対*関係

一方向の1対1関係

EJBエッジ

エンティティ継承エッジ

セッション・ファサード・エッジ

ダイアグラムの注釈

添付

グループ

Link

ノート

5.7.1.1 EJB/JPA関連のモデリング方法

関連コンポーネントを「コンポーネント」ウィンドウからドラッグして、1つのクラス図での2つのエンティティ間の関連をモデル化できます。また、ルート・エンティティと子エンティティの間の継承エッジも表示できます。

1つのダイアグラムで2つの関連をモデル化するには、次のようにします。

1. 作成する関連のアイコンをクリックします。

注意:

関連の端のナビゲーション性および多重度は、作成後に変更できます。EJBコンポーネント・アイコンが表示されない場合は、「コンポーネント」ウィンドウのドロップダウン・リストから「EJBコンポーネント」を選択してください。

2. 関連の「所有する」または「元」側のエンティティをクリックします。

3. 関連の「先」側のエンティティBeanをクリックします。

4. ダイアグラム上の関連を示す線をクリックし、アソシエーションに隣接するテキスト・フィールドをクリックして、関連名を入力します。

注意:

ダイアグラム上の関連の端の多重度を変更するには、その関連の端を右クリックして、「多重度→1」または「多重度→*」を選択します。

5.7.1.2 Bean間の参照の使用

一方のBeanからリモート・インタフェースを持つ他方のBeanへの参照は、「EJB参照」アイコンを使用して作成できます。一方のBeanからローカル・インタフェースを持つ他方のBeanへのローカル参照は、ダイアグラムの「EJBコンポーネント」ウィンドウの「EJBローカル参照」アイコンを使用して作成できます。

モデル化されたエンティティBean間の様々な関連を迅速に作成するには、1対*関係アイコン、有向1対1関係アイコン、有向1対*関係アイコンおよび「有向厳密集約」アイコンを使用します。

5.7.1.3 モデル化されたBeanでのプロパティの作成方法

モデル化されたEJBにプロパティを追加するには、BeanをダブルクリックしてEJBモジュール・エディタでプロパティまたはメソッドを追加するか、モデル化されたBeanで新規のプロパティまたはメソッドを直接作成します。

モデル化されたBeanで直接プロパティを作成するには、プロパティの名前とデータ型を入力します。次に例を示します。

name : java.lang.String

Public (+)可視性の記号が、プロパティの先頭に自動的に追加されます。

注意:

StringまたはLongなどのパッケージ接頭辞を付けずにjava.langパッケージからのプロパティ・タイプを入力すると、java.lang.プロパティ・タイプ接頭辞が自動的に追加されます。プロパティのタイプが指定されていない場合は、デフォルト・タイプ'String' (java.lang.String)が使用されます。

5.7.1.4 モデル化されたBeanでのメソッドの作成方法

クラス・ダイアグラム上で、モデル化されたBeanにローカル/リモートおよびローカル/ローカル・ホームの両方のメソッドを作成できます。

モデル化されたBeanにインプレースでメソッドを作成するには、名前を入力し、オプションでパラメータ型と名前およびメソッドの戻り型を入力します。メソッドの戻り型の前には、コロン(:)を付ける必要があります。次に例を示します。

getName(String CustNumber) : java.lang.String

Public (+)可視性の記号が、メソッドの先頭に自動的に追加されます。

注意:

StringまたはLongなど、パッケージ接頭辞を付けずにjava.langパッケージからの戻り型を入力すると、戻り型接頭辞java.lang.がメソッドのクラスのJavaに自動的に追加されます。パラメータ・タイプが指定されていない場合、メソッドはパラメータなしで定義されます。戻り型が指定されていない場合は、デフォルトの戻り型voidが使用されます。メソッドのプロパティを変更するには、ダイアグラムまたは「アプリケーション」ウィンドウでクラスをダブルクリックし、EJBエディタを使用してメソッドの詳細を変更します。

5.7.1.5 クロス・コンポーネント参照のモデル化の方法

クラス・ダイアグラム上で、モデル化されたBean間に参照を作成できます。

- 一方のBeanからリモート・インタフェースを持つ他方のBeanへのEJB参照を作成できます。

- 一方のBeanからローカル・インタフェースを持つ他方のBeanへのEJBローカル参照を作成できます。

注意:

参照を作成できるのは、現在のデプロイメント・ディスクリプタ内にあるBeanに対してのみです。

モデル化されたBean間の参照をモデル化するには、次のようにします。

1. 「EJBコンポーネント」ウィンドウで次のアイコンを選択します。

- EJB参照

- EJBローカル参照

2. 参照の「所有」または「元」側のBeanをクリックします。

3. 参照の「先」側のBeanをクリックします。

5.7.1.6 モデル化されたBeanの実装クラスの表示方法

モデル化された各Beanには、その要素の実装コードを含む基礎となるJavaソース・ファイルがあります。これらの実装ファイルは、モデル化されたJavaクラスとしてダイアグラムに表示できます。

モデル化されたBeanのモデル化された実装Javaクラスを表示するには、次のようにします。

- ダイアグラムでJava実装をモデル化するBeanを選択し、「モデル」→「表示」→「実装ファイル」を選択します。

- または、Beanを右クリックし、実装の表示→「ファイル」を選択します。

5.7.1.7 モデル化されたBeanのソース・コードの表示方法

モデル化されたBeanのJavaソース・コードは、ダイアグラムのシンプル・コマンドでソース・エディタに表示できます。

モデル要素のJavaソース・コードを表示するには、次のようにします。

- ダイアグラムの要素を右クリックします。「ソースに移動」を選択し、表示するソース・ファイルを選択します。
または

- 要素を選択し、「モデル」→「ソースに移動」を選択します。

5.7.1.8 プロパティまたはメソッドのアクセス・レベルの変更方法

ポップアップ・メニューを使用して、プロパティまたはメソッドのアクセス・レベルを変更できます。

プロパティまたはメソッドのアクセス・レベルを変更するには、次のようにします。

1. 変更するプロパティまたはメソッドを右クリックします。

2. 「次からアクセスが可能」オプションから、必要なアクセス・レベル・オプションを選択します。
アクセス・レベル・オプションは次のとおりです。

- ローカル・インタフェース

- リモート・インタフェース

- ローカル・インタフェースとリモート・インタフェース

5.7.1.9 ダイアグラムでのJPAエンティティのリバース・エンジニアリングの方法

モデル化されたエンティティBeanは、EJBのダイアグラム上で、アプリケーションのデータベース接続を介して表定義からリバース・エンジニアリングできます。

表定義をエンティティBeanにリバース・エンジニアリングするには、次のようにします。

1. ダイアグラムを開く、または作成します。

2. データベース接続の「接続」ウィンドウでノードを開きます。

3. ユーザー・ノードを展開した後、「表」ノードを展開します。

4. エンティティBeanの作成に使用する表定義をクリックし、現在のダイアグラムにドラッグします。
複数の表をエンティティBeanにリバース・エンジニアリングするには、[Ctrl]キーを押しながら、リバース・エンジニアリングする表を「データベース」ウィンドウで選択し、その表をダイアグラムにドラッグした後、[Ctrl]キーを放します。

5. EJBバージョンを選択し、「OK」をクリックします。

5.8 データベース・ダイアグラムによるモデリング

データベース構造をモデル化すると、データベース・スキーマ、およぴオンラインまたはオフラインの表間の関連をビジュアルに表示できます。変換機能を使用すると、データベース表をUMLクラスとインタフェースに、またその逆に変換できます。データベースの変換の詳細は、第5章「UMLとオフライン・データベースの変換方法」を参照してください。

5.8.1 データベース・モデル化機能の操作

JDeveloperを使用して、オフライン・データベース・オブジェクトを、稼働中のデータベース接続のデータベース・オブジェクトと同様にモデル化できます。また、表や外部キー関係などのデータベース・オブジェクトをダイアグラム上で作成し、それをオンラインまたはオフライン・データベースに統合できます。オフライン・オブジェクトは、オフライン・データベース見出しの下のプロジェクト・アコーディオンに表示され、オンライン・オブジェクトは、データベース接続の下のアプリケーション・リソース・アコーディオン→データベース接続(「データベース」ウィンドウ)に表示されます。

データベース・ダイアグラムを使用して、表および外部キー関係、ビューおよび結合オブジェクト、マテリアライズド・ビュー、シノニム、およびシーケンスなどの図コンポーネント上で直接作成、およびデータベース・オブジェクト構造と関係を表示できます。

作成した新規オブジェクトと同様、オンラインまたはオフライン・データベースのすべてのデータベース・オブジェクトは「アプリケーション」ウィンドウに表示されます。

5.8.1.1 データベース・ダイアグラムの作成方法

データベース・ダイアグラムの作成は、「新規ギャラリ」で行います。第5.3.1.1項「新しいダイアグラムの作成方法」を参照してください。

図5-36に示すとおり、データベース・ダイアグラムは、作成後に「コンポーネント」ウィンドウのコンポーネントから選択できます。

図5-36 「データベース・コンポーネント」ウィンドウ

5.8.1.2 オフライン・データベース・オブジェクトの作成方法

ダイアグラムにオフライン・データベース・オブジェクトを作成するには、データベース・オブジェクト・コンポーネント・ウィンドウで該当するアイコンをクリックし、オブジェクトの作成先であるダイアグラムをクリックします。このプロセスでは、新しいオブジェクトは作成されません。データベース・ダイアグラムに既存オブジェクトが追加されます。

「データベース」ウィンドウのデータベース接続から、または「アプリケーション」ウィンドウのオフライン・スキーマからオブジェクトをダイアグラムにドラッグすることもできます。

5.8.1.3 外部キーの作成方法

外部キーは、「データベース・コンポーネント」ウィンドウで外部キーをクリックし、外部キーの作成元の表をクリックし、外部キーの宛先表をクリックすることで作成できます。「外部キーの作成」ダイアログを使用すると、ターゲット表の既存の列を選択するか、新しい列を作成できます。

5.8.1.4 結合オブジェクトの作成方法

ビューで2つの表の使用方法の間に結合オブジェクトを作成するには、「結合オブジェクト」をクリックして、結合する2つの表の使用方法をクリックします。「結合の編集」ダイアログでは、結合を指定できます。

5.8.1.5 マテリアライズド・ビューを作成および追加する方法

テンプレートはすべてオフライン・データベース・プロパティ・ダイアログで定義されます。作成するオブジェクトに、作成元のオフライン・データベースで定義されているテンプレートがある場合、<ObjectType>コンポーネントを使用すれば、そのテンプレートに基づいたオブジェクトが作成されます。そのため、たとえば、オフライン・データベース'Database1'にテンプレート表'MyTab'があった場合、「コンポーネント」ウィンドウの表オプションを使用して、Database1で新しい表を作成すると、テンプレート'MyTab'に基づいて新しい表が作成されます。既存オブジェクトはオフライン・データベースからダイアグラムに追加されます。

5.8.1.6 プライベート・シノニムとパブリック・シノニムを追加および作成する方法

「データベース・コンポーネント」ウィンドウ上の「シノニム」をクリックし、シノニムを作成するダイアグラム上をクリックすると、ダイアグラムにシノニムが作成されます。また、オンライン・データベース接続からオブジェクトをドラッグ・アンド・ドロップしたり、データベース接続からダイアグラムに既存オブジェクトを追加することにより、データベース接続からオフライン・データベースにオブジェクトをインポートしたりできます。

パブリック・シノニムはPUBLICスキーマで作成されます。

5.8.1.7 基本リレーションの使用方法を定義する方法

「データベース・コンポーネント」ウィンドウ上の「リレーションの使用方法」をクリックした後、ビューをクリックして、ビューの基本リレーションを定義します。

5.8.1.8 シーケンスを追加および作成する方法

ダイアグラムの「データベース・コンポーネント」ウィンドウの「シーケンス」をクリックしてから、シーケンスを作成するダイアグラムをクリックすると、ダイアグラムにシーケンスが作成されます。データベース接続から、または「アプリケーション」ウィンドウのオフライン・データベースから、シーケンスをドラッグしてダイアグラム上にドロップする方法もあります。また、オンライン・データベース接続から表をドラッグしたり、データベース接続からダイアグラムに既存オブジェクトを追加することにより、データベース接続からオフライン・データベースにオブジェクトをインポートしたりできます。

5.8.1.9 テンプレートに基づいてシーケンスを作成する方法

ダイアグラムの「データベース・コンポーネント」ウィンドウ上の「テンプレートからのシーケンス」をクリックしてから、シーケンスを作成するダイアグラムをクリックすると、ダイアグラムにテンプレートに基づくシーケンスが作成されます。また、オンライン・データベース接続からシーケンスをドラッグ・アンド・ドロップすることによりシーケンスを作成したり、データベース接続からダイアグラムに既存オブジェクトを追加することによりデータベース接続からオフライン・データベースにオブジェクトをインポートすることもできます。同様に、オフライン・データベースから既存オブジェクトをダイアグラムに追加できます。「テンプレート・オブジェクトの選択」ダイアログが表示され、ここで、マテリアライズド・ビューの基準とするテンプレートを選択できます。

5.8.1.10 テンプレートに基づいてシノニムを作成する方法

ダイアグラムの「データベース・コンポーネント」ウィンドウ上の「テンプレートからのシノニム」をクリックしてから、シノニムを作成するダイアグラムをクリックすると、ダイアグラムにテンプレートに基づくシノニムが作成されます。「テンプレート・オブジェクトの選択」ダイアログが表示され、マテリアライズド・ビューの基準とするテンプレートを選択できます。また、オンライン・データベース接続から表をドラッグ・アンド・ドロップしたり、データベース接続からダイアグラムに既存オブジェクトを追加することにより、データベース接続からオフライン・データベースにオブジェクトをインポートしたりできます。

5.8.1.11 表を追加および作成する方法

「データベース・コンポーネント」ウィンドウ上の「表」をクリックした後、ダイアグラム上をクリックすると、ダイアグラムに表が作成されます。データベース接続から、または「アプリケーション」ウィンドウのオフライン・データベースから、表をドラッグしてダイアグラム上にドロップする方法もあります。同様に、オフライン・データベースから既存オブジェクトをダイアグラムに追加できます。

モデル化された表で、列が主キー、外部キー、または一意キーであることを示す表列アイコンの表示を選択できます。

モデル化された表の最初の列は、列が主キー、一意キー、または外部キーのいずれかを示します。

- 列は主キー

- 列は外部キー

- 列は一意キー

2番目の列は、表列が必須であるかどうかを示します。

注意:

表列が主キーの場合は、一意キーまたは外部キーでもある場合でも、主キーのアイコンのみが表示されます。

5.8.1.12 テンプレートからデータベース表を作成する方法

「データベース・コンポーネント」ウィンドウ上の「テンプレートからの表」をクリックした後、ダイアグラム上をクリックすると、ダイアグラムに表が作成されます。「テンプレート・オブジェクトの選択」ダイアログが表示され、マテリアライズド・ビューの基準とするテンプレートを選択できます。オンライン・データベース接続からドラッグ・アンド・ドロップすることにより、表を作成することもできます。データベース接続からダイアグラムに既存オブジェクトを追加することにより、データベース接続からオフライン・データベースにオブジェクトをインポートできます。

5.8.1.13 データベース・ビューの作成方法とデータベース・オブジェクトの追加方法

「ビュー」をクリックした後、ダイアグラム上をクリックすると、ダイアグラムにビューが作成されます。オンライン・データベース接続からオブジェクトをドラッグ・アンド・ドロップすることにより、ビューを作成することもできます。オブジェクトは、データベース接続からダイアグラムに既存オブジェクトを追加することにより、データベース接続からオフライン・データベースにインポートできます。また、オンライン・データベース接続からドラッグ・アンド・ドロップによりデータベース・ビューを作成したり、、データベース接続からダイアグラムに既存オブジェクトを追加することにより、データベース接続からオフライン・データベースにオブジェクトをインポートしたりできます。

ビューを定義するには、表とビュー、表列または他のビューの要素を新規に定義するビューに追加します。データベース接続から、または「アプリケーション」ウィンドウのオフライン・データベースから、ビューをドラッグしてダイアグラム上にドロップする方法もあります。

5.8.1.14 テンプレートからデータベース・ビューを作成する方法

「テンプレートからのビュー」をクリックした後、ダイアグラム上をクリックすると、ダイアグラムにビューが作成されます。「テンプレート・オブジェクトの選択」ダイアログが表示され、マテリアライズド・ビューの基準とするテンプレートを選択できます。

5.8.1.15 データベースまたはスキーマの変更方法

1. データベース・ダイアグラムで、右クリックして「データベース・オブジェクトの作成」→「データベース」または「スキーマ」を選択します。

2. 「場所の指定」ダイアログまたは「オフライン・スキーマの選択」ダイアログに入力します。

注意:

後続のデータベース・オブジェクトはすべて、選択したデータベースまたはスキーマで作成されます。既存のオブジェクトは変更されません。

5.9 アクティビティ図によるモデリング

ビジネス・プロセスのモデル化には、アクティビティ図を使用します。ビジネス・プロセスとは、注文処理、出荷、精算および支払いプロセス・フローなどビジネス目標を達成するために調整されたタスクです。

図5-37に示すように、アクティビティ図は、システムの動作を取得し調整されたアクションの実行を示します。

図5-37 要素を示すアクティビティ図の例

5.9.1 アクティビティ図機能の操作

「コンポーネント」ウィンドウには、アクティビティ図に使用できる要素が含まれています。「アクティビティ」は、ダイアグラムに直接配置できる唯一の要素です。他の要素は「アクティビティ」の内部に配置できます。図5-38およぴ表5-7に示すように、各要素は一意のアイコンと説明のためのラベルで表されます。

図5-38 アクティビティ図の「コンポーネント」ウィンドウ

表5-7 アクティビティ図の要素

要素

説明

アクション

アクションは、請求書の送信や支払いの受領など、動作を指定する基本単位です。アクティビティ内の1つのステップを表します。アクションは、一連の入力を受け取って一連の出力に変換します。アクションの実行は、モデル化されたシステムにおける変換または処理を表します。

アクションは、制御フローおよびオブジェクト・フローの形で入力を受け取る場合があり(後者は入力ピンを介して)、その処理または変換の結果を送信制御フローまたはオブジェクト・フローへ(後者は出力ピンを介して)、そしてさらに下流ノードに渡します。アクションの実行は、すべての前提条件が満たされるまで開始されません。

アクティビティ

ビジネス・プロセスなど、システムによって実行される動作。アクティビティは、独自の処理、オブジェクト・ノード、およびそれらの間のフローによって定義される動作です。

アクティビティ最終ノード

制御トークンを初めて受信したとき、アクティビティの実行を終了します。最終ノードは、アクティビティに複数あってもかまいません。アクティビティ最終ノードは、このダイアグラム上の各アクションが終了したことを示します。

分岐/結合

垂直または水平の棒として表示されます。分岐は1つの受信フローと複数の送信フローを持つ制御ノードです。結合は複数の受信フローを1つの送信フローに同期する制御ノードです。分岐/結合のペアを、1つのダイアグラム・ノードとして組み合せることができます。

コール動作アクション

アクションの入力と出力を適切な動作パラメータに単純にマップします。

コール操作アクション

操作コール・リクエストをターゲット・オブジェクトに転送し、そこで関連する動作を呼び出させることができます。動作の結果はアクション出力になります。アクションの引数値は、呼び出された動作の実行に使用できます。

中央バッファ

オブジェクト・ノードの一種。トークンを格納(バッファ)する機能をノードに付与します。1つ以上のオブジェクト・ノードからの受信フローに着信するトークンを管理し、送信フローを介してどのトークンをどの順序で下流のオブジェクト・ノードに渡すかを選択します。

制御フロー

制御トークンのフローを示します。

データ・ストア

一時的でないデータにバッファを渡すオブジェクト・ノードの一種。

フロー終了ノード

アクティビティ全体の実行は終了せずに受信フローを終了させます。

初期ノード

アクティビティを実行する開始点。受信フローはなく、複数の送信フローがあります。初期状態はダイアグラムに1回のみ指定できます。

オブジェクト・フロー

オブジェクト・ノードを接続します。オブジェクト・フローは、ピンを使用してアクションに接続できます。

ノードのマージ

マージ・ノードには、複数の受信フローと1つの送信フローがあります。決定には、1つの受信フローと複数の送信フローがあります。

5.9.1.1 アクティビティ図の作成方法

「新規ギャラリ」ウィザードを使用することにより、第5章「新しいダイアグラムの作成方法」の手順に従って、アクティビティ図を作成できます。

5.9.1.2 初期ノードと終了ノードの作成方法

ノードを作成するには、「コンポーネント」ウィンドウで「初期ノード」アイコン、「アクティビティ最終ノード」アイコン、または終了フロー・ノード・アイコンをクリックした後、ダイアグラム上のノードを配置する場所をクリックします

5.9.1.3 パーティションの表示方法

ダイアグラムにパーティションを作成するには、アクションを選択してから、「プロパティ」ウィンドウの「表示オプション」で「アクティビティ・パーティションの表示」を選択します。

アクティビティ図にパーティションを表示するには、次のようにします。

1. アクティビティ図で、アクションを選択します。

2. 「プロパティ」ウィンドウで、「表示オプション」ノードを開きます。

3. 「アクティビティ・パーティションの表示」を選択します。ダイアグラム上のアクションに「(パーティションなし)」というテキストが表示されます。

4. テキストをクリックします。編集ボックスが表示され、パーティションの名前を入力できます。

5.10 シーケンス図によるモデリング

シーケンス図は、クラス・インスタンス間の相互作用を表します。相互作用は、メッセージの交換としてモデル化されます。図5-39に示すように、シーケンス図の中核には、動作パターンを表すクラス・インスタンスとそれらの間で交換されるメッセージがあります。

図5-39 一般的なシーケンス図の例

5.10.1 シーケンス図機能の操作

「コンポーネント」ウィンドウから追加する要素は、シーケンス図のデフォルト位置にレイアウトされます。オブジェクト・ライフラインは垂直方向に位置合せされますが、他のオブジェクト・ライフラインに関連する場合には、作成メッセージに位置合せされます。同期メッセージと非同期メッセージは、ページの上から下へ時系列に配置されます。

図5-40に、シーケンス図で使用できる「コンポーネント」ウィンドウの要素を示します。各要素は一意のアイコンと説明のためのラベルで表されます。

図5-40 シーケンス図の「コンポーネント」ウィンドウ

表5-8 シーケンス図の要素

要素

説明

非同期メッセージ

ダイアグラム上では、対角線と開いた矢印で表されます。非同期メッセージは、送信者が処理を続行する前に応答を待つ必要がないメッセージです。

作成メッセージ

ダイアグラムでは、作成されるオブジェクトを表す四角形と破線が元のオブジェクトよりも下方向にシフトして表されます。作成メッセージは、オブジェクトの作成を導くメッセージです。

相互作用

システムでタスクを完了するためのオブジェクトの相互作用を示すことによって、1つのケースの動作を取得します。

メッセージ

メッセージは、相互作用に関与するオブジェクト間で特定の通信を定義するモデル要素です。メッセージは、相互作用に関与するあるオブジェクトから他のオブジェクトへの情報を伝達し、ライフラインで表されます。

オブジェクト・ライフライン

ダイアグラム上では、四角形と下方向への垂直の破線で表されます。オブジェクト・ライフラインは、一定期間のオブジェクトの存在を表します。

戻る

戻りメッセージは、以前にメッセージが送信されたオブジェクトから戻されるメッセージです。戻りメッセージは同期メッセージからのみ有効で、それ自体が同期します。

メッセージの停止または破棄

ダイアグラムでは、実行仕様をメッセージ終端の大きい×印で表します。停止メッセージは、オブジェクトの削除を導く(または、オブジェクトが不要になったことを示す)メッセージです。

5.10.1.1 シーケンス図を追加および作成する方法

「新規ギャラリ」ウィザードを使用することにより、第5章「新しいダイアグラムの作成方法」の手順に従って、アクティビティ図を作成できます。

5.10.1.2 シーケンス・トレーサの開始方法

シーケンス図の一部でポップアップ・メニューを開き、「トレース・シーケンス」を選択します。トレーサは、各ステップをハイライト表示しながら実行仕様とメッセージをステップごとに実行します。

注意:

「トレース・シーケンス」は、相互作用を選択した場合に使用できます。ダイアグラム上のポップアップ・メニューには表れません。

5.10.1.3 相互作用に要素を自動レイアウトする方法

システム内で相互作用をモデル化するには、「相互作用」コンポーネントをダイアグラムに追加します。相互作用は、動作を構成する特定要素のためのコンテナです。

相互作用を右クリックして「順序」、「自動レイアウト」の順に選択すると、要素が相互作用内で自動レイアウトされます。

5.10.1.4 ライフラインと分類子の追加方法

オブジェクト・ライフラインをシーケンス図に追加するには、相互作用を追加してから「オブジェクト・ライフライン」アイコンをクリックし、相互作用をクリックします。編集ボックスが開き、オブジェクトのインスタンス名を入力できます。匿名のインスタンスの場合は空白のままにできます。

分類子を追加するには、オブジェクト・ライフラインを右クリックし、「分類子の添付」を選択します。要素のリストが開き、オブジェクト・ライフラインに関連付ける要素を選択できます。分類子を添付するには、分類オブジェクトを「データベース」ウィンドウからオブジェクト・ライフラインにドラッグする別の方法もあります。これらの方法は、分類要素を表すアイコンの外観(オブジェクト・ライフラインの左上)によって確認できます。

5.10.1.5 同期メッセージの操作方法

非同期メッセージを追加するには、「メッセージ」アイコンをクリックし、そのメッセージの開始ポイントとなる垂直の破線、つまり実行仕様をクリックします。次に、そのメッセージの宛先になる垂直の破線をクリックします。

実行仕様をマージするには、ダイアグラム上で重ねます。次に右クリックして、「重複発生のマージ」を選択します。

実行仕様(および添付されているメッセージ)は、元の位置から上下に移動できます。この移動によって、ダイアグラムが無効になる場合があります。ダイアグラムが無効になると、メッセージ線が赤に変わり、宛先のオブジェクトに矢印アイコンが付きます。このアイコンは、ダイアグラムを有効にするためにオブジェクトを移動する方向を示します。

実行仕様ボックスのサイズは、実行仕様ボックスを選択したときに下隅に表示される黒色の小さいボックスをドラッグして変更できます。メッセージ線をドラッグして延長すると、実行仕様のサイズが変更されます。

テキストの編集ボックスを開くには、メッセージ線をクリックし、表示されたグレーのボックス内をクリックします。

同期メッセージの開始ポイントと宛先ポイントが同じオブジェクト・ライフラインである場合があります。この場合は、セルフ・コールを作成したことになります。

同期メッセージは、シーケンス図上では実線と塗りつぶされた矢印で表示されます。

5.10.1.6 作成メッセージの追加方法

作成メッセージを追加するには、「作成メッセージ」アイコン、元のオブジェクト、作成するオブジェクトの順にクリックします。オブジェクトを表す四角形と破線が元のオブジェクトより下方向にシフトします。

作成するオブジェクトがまだダイアグラム上にない場合には、元のオブジェクトを含む相互作用をクリックし、そのオブジェクトを表すオブジェクト・ライフラインを作成します。デフォルトでは、作成メッセージには「create」という名前が指定されます。メッセージ名の編集ボックスを開くには、メッセージ線をクリックし、表示されたグレーのボックス内をクリックします。

5.10.1.7 停止または破棄メッセージの追加方法

停止または破棄メッセージを追加する前に、このメッセージによって削除されるオブジェクトのオブジェクト・ライフラインがすでに追加されている必要があります。

停止メッセージまたは破棄メッセージを追加するには、「メッセージの停止または破棄」アイコン、元のオブジェクト、削除するオブジェクトの順にクリックします。同じオブジェクトで停止メッセージを開始して終了すると、自己削除オブジェクトが作成されます。停止メッセージの終了時の実行仕様は、大きい十字によって示されます。メッセージ行をクリックして、表示される灰色のボックス内をクリックすると、メッセージ名(たとえば、close)の編集ボックスを開くことができます。

他の実行仕様より前にメッセージの停止をシーケンスに追加した場合、その実行仕様は実装されず、警告フラグ付きで表示されます。

5.10.1.8 戻りメッセージの追加方法

戻りメッセージを追加するには、「戻る」アイコンをクリックし、終了実行仕様をクリックします。次に、対応する開始実行仕様をクリックします。この戻りメッセージ線は別のオブジェクトで終了できません。戻りメッセージは、破線と塗りつぶされた矢印で表示されます。メッセージ・テキストの編集ボックスを開くには、メッセージ線をクリックし、表示されたグレーのボックス内をクリックします。

5.10.1.9 非同期メッセージの追加方法

非同期メッセージ(およびその終わりの実行仕様)を追加するには、「非同期メッセージ」アイコンをクリックし、そのメッセージの開始ポイントとなる垂直の破線、つまり実行仕様をクリックします。次に、そのメッセージの宛先になる垂直の破線をクリックします。メッセージ・テキストの編集ボックスを開くには、メッセージ線をクリックし、表示されたグレーのボックス内をクリックします。

非同期メッセージの開始ポイントと宛先ポイントが同じオブジェクト・ライフラインである場合があります。この場合は、セルフ・コールを作成したことになります。

非同期メッセージは、シーケンス図上では対角線と開いた矢印で表示されます。

5.10.1.10 シーケンス図の結合フラグメント・ロックの使用方法

シーケンス図の相互作用には、結合フラグメント・ロックのアイコンがあります。相互作用をロックまたはロック解除すると、ダイアグラム上のその相互作用内の結合フラグメントの動作を維持し、その範囲を他の相互作用や他のダイアグラムにまで拡張できます。

5.10.1.11 結合フラグメントの使用

結合フラグメントは、相互作用の演算子とそれに対応する相互作用オペランドによって定義される相互作用の式を定義します。結合フラグメントには、相互作用の演算子によって制御される一連の相互作用(これを相互作用オペランドと言います)が反映され、それに対応するブール条件を相互作用制約と言います。透明なウィンドウとして表示され、各オペランドを示す水平の点線で分割されます。

例5-41に、現金出納係が支払いを要求した後で購入品目を反復処理するループ・フラグメントの例を示します。この時点では2つの支払いオプションを考慮して別のフラグメントも作成し、現金とクレジットカードの2つのオペランドを分割して表しています。フラグメントがトレースを完了すると、支払い条件が満たされた時点で現金出納係が顧客に領収書を発行します。

図5-41 結合フラグメントを伴う一般的なシーケンス図

図5-42は、ダイアグラム・ウィンドウでダイアグラムを開くと「コンポーネント」ウィンドウに表示される結合フラグメントを示しています。

図5-42 「コンポーネント」ウィンドウの「結合フラグメント」ドロップダウン・リスト

表5-9 結合フラグメントの相互作用演算子

相互作用演算子

説明

代替

ブール条件に基づいて相互作用フラグメントを分割します。

アサート

唯一有効なフラグメントの発生を示します。

ブレーク

オペランドが、包含する相互作用フラグメントの残りのかわりに実行されるシナリオであるという意味で結合フラグメントがブレーク・シナリオを表すことを指定します。

クリティカル

他の処理によって中断できないシーケンスを示します。

ループ

オペランドが、相互作用制約で指定される回数繰り返されることを示します。

負

フラグメントが無効であることをアサートし、他の相互作用がすべて有効であることを表します。

オプション

オプションの相互作用フラグメントを包括します。

パラレル

オペランドが並行して処理されることを示します。

順序

結合フラグメントが弱く順序付けされることを示します。発生仕様が同じライフライン上にある場合に、最初のオペランドの発生仕様が2番目の発生仕様より優先されるかぎりオペランド内の順序は維持されるが、オペランドどうしの順序は未定義であることを示します。

厳密

オペランドの動作が厳密な順序で処理されることを示します。

5.11 ユースケース図によるモデリング

ユースケース図は、システムの使用条件の概要を示します。図5-43のように、開発の目的で、ユースケース図はシステムまたはプロジェクトの実際の要件またはワークフローを表します。

図5-43 一般的なユースケース図

5.11.1 ユースケース図機能の操作

ユースケース図は、アクターとそのアクションを接続して、アクターとシステムとの相互作用を表します。アクターが情報を提供する、ユースケースを開始する、またはユースケースの結果として情報を受信する場合は、アクター間にアソシエーションがあります。

図5-44は、ユースケース図に追加できる要素が表示された「コンポーネント」ウィンドウを示しています。各要素は一意のアイコンと説明のためのラベルで表されます。

「相互作用」は、ダイアグラムに直接配置できる唯一の要素です。他の要素はすべて、「相互作用」の内部に配置します。

図5-44 「コンポーネント」ウィンドウのユースケース要素

表5-10 ユースケース要素

構成要素

説明

アクター

システム内の抽象ロールを表します。

通信

アクターが特定のユースケースに関連付けられている状況を示します。

依存関係

要素間の関係を示します。

拡張

ターゲットのユースケースがソースのユースケースの定義を拡張することを示します。

汎化

1つ以上の要素が別の要素を特化している状況を示します。たとえば、あるアクターTeam MemberがアクターManagerとアクターDeveloperに特化されている場合があります。

対象

ユースケースで、他のユースケースを含む関係を示します。

サブジェクト

サブジェクトには2つのタイプがあります。1つのシステムには通常、モデル化の対象となるシステム全体を構成するユースケースとアクターのセットが含まれます。2つ目のタイプには通常、開発の対象となる一貫性のあるシステム部分を構成するユースケースのグループが含まれます。

ユースケース

1つの要素が、相互作用を実行するために他の要素を必要とすることを示します。

5.11.1.1 ユースケース図の要素の詳細な確認

サブジェクト、アクター、その他のタイプのオブジェクトの外観や他の属性を決定するには、「プロパティ」ウィンドウでプロパティを変更するか、オブジェクトを右クリックしてプロパティを変更するか、または基礎となるテンプレート・ファイルを作成してカスタマイズします。

テンプレートを使用すると、サポートするオブジェクトを「コンポーネント」ウィンドウに追加できます。詳細は、第5章「ユースケース・コンポーネント・テンプレートの作成方法」を参照してください。

図5-45 ユースケースのサブジェクト、アクター、オブジェクトの例

5.11.1.2 サブジェクトをユースケース図に追加する方法

モデル化するシステムは、そのシステムのすべてのアクターとユースケースをサブジェクト内に囲んで表示できます。サブジェクト・ライン内のユースケースを包括するグループによって開発対象を表示します。サブジェクトをダイアグラムに追加するには、「コンポーネント」ウィンドウで「サブジェクト」をクリックし、サブジェクトが占める領域をカバーするようにポインタをドラッグします。図5-45に、関連するアクターに会計サブジェクトを接続している例を示します。サブジェクトの内部に要素をドロップすると、要素を包含するようにサブジェクト・ラインが拡張されます。手動でサブジェクトのサイズを変更することもできます。サイズを縮小して表示しきれない要素がある場合には、右下隅に省略記号が表示されます。

5.11.1.3 アクターとユースケースの作成方法

ダイアグラム上にアクターを作成するには、「コンポーネント」ウィンドウ上で「Actor」アイコンをクリックし、次にダイアグラム上でアクターを作成する位置をクリックします。

アクターまたはユースケースのプロパティを変更するには、モデル化された要素をダブルクリックして、エディタでその要素の詳細を編集します。

5.11.1.4 アクターとユースケース間の相互関係を表現する方法

アクターとユースケース間の相互作用をダイアグラム上で表現するには、「コンポーネント」ウィンドウの「通信」アイコンを使用します。また、アクター間およびユースケース間の汎化構造を作成するには、「汎化」アイコンを使用します。1つのユースケースが別のユースケースを包含する状況を表すには、「対象」アイコンを使用し、1つのユースケースが別のユースケースを拡張する状況を表すには、「拡張」アイコンを使用します。

ノート、依存関係およびURLリンクを使用して、ユースケース図に注釈を追加できます。注釈コンポーネントは、「コンポーネント」ウィンドウ下部の「ダイアグラムの注釈」から使用できます。

5.11.1.5 ユースケースとサブジェクト間の関係を表現する方法

ユースケースとサブジェクトの間の相互作用を表現するには、「コンポーネント」ウィンドウの「通信」アイコンを使用します。

5.11.1.6 ユースケース・テンプレートのソース・コードを編集する方法

「ソース」タブを選択します。HTMLタグを特定の場所に挿入するには、ポップアップ・メニューを開いて「HTMLの挿入」を選択します。

一般的なルールとして、uml:接頭辞を含むタグ(例: <uml:usecase_extends>)は削除しないでください。テンプレートのセクション全体(例: tdタグと/tdタグの間)を削除する場合、uml:接頭辞はセクションの他の内容とともに安全に削除できます。

5.11.1.7 ユースケース・テンプレートのテキストの外観を変更する方法

「エディタ」タブを選択し、変更するテキストを選択します。次に、ツールバーから書式設定オプションを1つ以上選択します。

5.11.1.8 HTMLインタフェース・オブジェクト、コード・オブジェクトおよび開発入力を挿入する方法

「エディタ」タブを選択し、挿入するテンプレート上の場所を選択してから必要な場所とオブジェクトをポップアップ・メニューから選択します。

HTMLインタフェース・オブジェクト(ボタンやチェック・ボックス)、HTMLコード・オブジェクト(アンカーや表)、開発入力(コメントや処理指示)を挿入できます。

初期状態では、選択したテンプレート項目の前後どちらにも、またテンプレートの<head>セクションにもオブジェクトを挿入できます。その後、これらのオプションが不適切である場合は選択できなくなります。ポップアップ・メニューから「HTML」または「参照」を選択すると、ダイアログ・ボックスが開き、様々なHTMLインタフェース・オブジェクトおよびコード・オブジェクトから1つを選択できます。ここで項目を選択すると、オブジェクトに適したプロパティを入力する挿入ダイアログが開きます。

5.11.1.9 ユースケース・コンポーネント・テンプレートの作成方法

新規のユースケース・テンプレートは、JDeveloperで用意されているテンプレートをコピーして作成できます。必要に応じてコピーを変更できます。

新しい「コンポーネント」ウィンドウごとに、これをサポートするユースケース・テンプレートが1つ必要です。指定したユースケース・テンプレートはコピーまたは移動されず、元の場所にそのまま存在します。

新しい「コンポーネント」ページを作成して、新しいユースケース・コンポーネントを追加するには、次のようにします。

1. 「ツール」→「パレットの設定」を選択します。

2. 「コンポーネントの構成」ダイアログで、ページ・タイプのユースケースを選択します。

3. 「追加」をクリックします。

4. 新しい「コンポーネント」ページの名前を入力します。

5. ドロップダウン・リストから「ユースケース」を選択し、「OK」をクリックします。「コンポーネント」ウィンドウに新しいページが表示されます。ポインタ・アイテムは自動的に含まれます。

6. 「コンポーネント」ウィンドウのコンポーネント領域に対してポップアップ・メニューを開いて、「コンポーネントの追加」を選択します。「ユースケース・テンプレートの追加」ダイアログが開きます。

7. 新規コンポーネントの名前を入力します。

8. 新規コンポーネントのベースとなるユースケース・テンプレートへのパスを入力します。パスにはURLを設定できます。

9. 新規コンポーネントをコンポーネント・ページに追加するには、「OK」をクリックします。

5.12 UML要素のローカル保存

UML要素は個別のファイルに格納されます。ファイルの場所は、要素のパッケージ・プロパティによって異なります。この要素ファイルには、各要素に対して定義されたプロパティが含まれていますが、ダイアグラム・ファイルには、ダイアグラムに表示される要素およびその要素のビジュアル・プロパティも定義されます。モデル化されたUML要素の要素ファイルは、プロジェクトのモデル・パスで指定されたフォルダの下の適切なパッケージ・フォルダに格納されます。モデル・パスを設定するには、「アプリケーション」→「デフォルト・プロジェクト・プロパティ」→「プロジェクトのソース・パス」→「モデラー」を選択します。

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

この章では、チーム環境で開発されたアプリケーションのバージョンをソース・コントロール・システムを使用して管理する方法について説明します。使用可能なバージョン・コントロール・システムについて、およびOracle JDeveloperで使用可能な各種バージョン・コントロール拡張機能のダウンロード方法について説明します。また、JDeveloperで使用可能な各ソース・コントロール・システムに関する指示も含まれます。

この章には次の項が含まれます:

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

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

- 第6.3項「ソース・コントロールの設定と構成」

- 第6.4項「ソース・リポジトリの設定と構成」

- 第6.5項「ソース・コントロールのファイルの操作」

- 第6.6項「ブランチおよびタグの操作」

- 第6.7項「ファイルの履歴、ステータスおよびリビジョンの操作」

- 第6.8項「ソース・コントロールのパッチの操作」

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

チームでの開発では、同一のファイルを変更する複数の開発者をコーディネーションし、プロジェクト管理またはバグ・レポート・システムに対してこれらの変更を追跡し、最終的には進行中のプロジェクトに組み込まれるコンテンツで共通に使用しているリポジトリに編集済ファイルをチェックインまたはコミットする必要が生じることがよくあります。

ソフトウェア製品のチーム開発をアシストするために、JDeveloperで使用できる機能セットには2つのポピュラーなバージョン・コントロール・システムとしてSubversionとGitが統合されています。JDeveloperインタフェースの「チーム」メニューまたは「バージョン」ウィンドウを使用すると、SubversionおよびGitの多数のコマンドに直接アクセスできます。

他のバージョン・コントロール・システムを使い慣れているユーザー、またはSubversion以外のバージョン・コントロール・システムをチームで使用しているユーザーに対して、JDeveloperはダウンロード可能な拡張機能として次のシステムへのアクセスも提供しています。

- Concurrent Version System (CVS)

- Perforce

- Rational ClearCase

- Microsoft Team System

これらの拡張機能をダウンロードするには、「ヘルプ」→「更新の確認」を選択します。ダウンロードした後は、「バージョン」ウィンドウおよび「チーム」メニューからこれらのバージョン・コントロール・システムにアクセスできます。

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

JDeveloperには、チームでの開発のためのツールが複数あります。このようなツールには、統合ソリューションであるSubversionや、JDeveloperとポピュラーなバージョン・コントロール・システムをインタフェースするいくつかの拡張機能があります。さらに、ダウンロード可能な拡張機能として、アプリケーション・ライフサイクル管理システムのOracleチーム・プロダクティビティ・センターも使用できます。

選択したバージョニング・システムに対して、チームのほとんどのメンバーがファイルをチェックインおよびチェックアウトし、作業中のプロジェクトの変更を管理するという相互作用を行いますが、このバージョニング・システムはJDeveloperと関連があるため、通常は少なくとも1人のチーム・メンバーがバージョニング・システムを管理および保持する必要があります。バージョニング・システムの管理者である場合は、ファイルのチェックインおよびチェックアウトのみではなく、追加作業が発生する可能性があります。

バージョニング・システムをJDeveloperと統合するために、JDeveloper拡張機能をダウンロードする必要のあるバージョニング・システムの1つを使用している場合、「ヘルプ」→「更新の確認」を選択すると、更新センターでバージョニング・システムを参照できます。使用しているバージョニング・システムを検索するときは、必ずすべての更新センターを選択してください。

6.3 ソース・コントロールの設定と構成

ポピュラーなチーム開発ソリューションであるSubversion (SVN)に加えて、JDeveloperではその他多くのバージョン・コントロール・ソフトウェア・パッケージをサポートしています。これらの追加パッケージはJDeveloperの拡張機能として使用可能で、「ヘルプ」→「更新の確認」を選択するとダウンロードできます。それぞれの拡張機能ベースのバージョン・コントロール・システムを構成する方法について以下に説明します。

6.3.1 SubversionとJDeveloperの設定方法

JDeveloperには、Subversion (SVN)というポピュラーなチーム開発ソリューションが統合されています。Subversionを使用するチームのメンバーである場合、JDeveloperの「チーム」メニューに含まれているコマンドから、Subversionを使用して、チームのリポジトリとの接続を保持し、変更、マージなどを追跡しながら、作業中のコンテンツを管理できます。Subversionを設定するには、ソース・コントロール対象ファイル用のリポジトリの作成、JDeveloperがリポジトリに接続できることの確認、リポジトリへのファイルのインポートなどを行う必要があります。

一般に、ファイルのバージョン・コントロールを有効にするには、まず作業用ファイルをSubversionリポジトリにインポートします。リポジトリに入れると、Subversionの作業用コピー用のローカル・フォルダにSubversionリポジトリからファイルをチェックアウトできるようになります。JDeveloperでファイルを作成するとき(またはJDeveloperにファイルを移動するとき)には、Subversionの作業用コピーに保存します。自分の作業結果をチームに提供できる状態になれば、Subversionの管理下にこれらの新しいファイルを追加します。変更したファイルや新しいファイルを他のユーザーが使用できる時点になれば、Subversionリポジトリにコミットして、使用できるようにします。チームの他のメンバーが行った作業を利用するには、変更されたファイルをSubversionリポジトリから自分の作業用コピーにコピーして自分のファイルを更新します。

設定を完了した後、Subversionでの作業は、ファイルのチェックアウト、JDeveloperでのファイルの編集、変更後のファイルのチェックインが中心になります。また、自分の変更とチームの他のメンバーの変更の競合を解決することが必要になる場合もあります。Subversionの管理下からファイルの出し入れが行われる場合もあり、さらに不具合、お客様の要求および他の特性を追跡するために特定のバージョンに関連付けられたファイルの特別なプロパティを使用する場合もあります。

6.3.1.1 Subversionクライアント・ソフトウェアのインストール

ソース・コントロール対象ファイル用のリポジトリの作成、JDeveloperがリポジトリに接続できることの確認、リポジトリへのファイルのインポートに加えて、次の状況ではSubversionクライアント・ソフトウェアのインストールが必要になる場合があります。

- JDeveloper Subversion VCS拡張機能を使用して、ローカルSubversionリポジトリを作成する場合。

- 拡張機能で提供されているSVNKit以外のJavaバインディング(ヘルパー・ライブラリ)を使用する場合。

- プロキシ・サーバー経由でSubversionリポジトリに接続する場合

前述の場合はすべて、Subversionクライアント・ソフトウェアを別途インストールする必要があります。代替のJavaバインディングを使用する場合は、バインディング・ソフトウェアを追加でインストールする必要があります。

Subversionクライアント・ソフトウェアをインストールするには、次のようにします。

1. Subversionのインストーラ(svn-1.7.8-setup.exe)をhttp://subversion.apache.org/から(c:\downloadsなどに)ダウンロードします。

2. インストーラを実行して、Subversionクライアントを便利な場所(c:\subversionなど)に置きます。コンピュータを再起動します。

この手順では、オペレーティング・システムがWindowsであると仮定しています。Windows以外の環境の場合は、オペレーティング・システムのパッケージ管理システムのドキュメントを調べて、ベンダー提供のSubversionクライアントにJavaHLが含まれていることを確認してください。

これまでのインストールを確認するために、コマンド・プロンプトを開いてsvn helpと入力します。サブコマンドのリストが表示されます。表示されない場合は、クライアント・ソフトウェアがインストールされた場所のbinディレクトリ(この例では、c:\subversion\bin)がシステム・パスに含まれていることを確認します。

6.3.1.2 Subversionクライアントのインストールの確認

Subversionクライアント・ソフトウェアのインストールが完了したら、次の操作を実行します。

インストールを確認するには:

1. JDeveloperで、Subversionをバージョニング・システムとして選択します(「チーム」→「構成」→「Subversion」)。

2. Subversionのメイン・プリファレンス・ページを開いて(「ツール」→「プリファレンス」→「バージョニング」)、必要なクライアント・インストールが使用可能であることを確認します。複数がリストされている場合は、使用するものを1つ選択します。

重要: この後に、更新センター(Oracleの公式拡張機能および更新)からJDeveloper Subversion拡張機能の更新を受け入れると、以前に代替クライアントを選択していた場合でも、クライアント・プリファレンスがSVNKitにリセットされます。

6.3.1.3 Subversion接続の作成

JDeveloperからSubversionリポジトリを使用する前に、リポジトリへの接続を作成しておく必要があります。なんらかの理由で接続の詳細が変更された場合は、後で編集できます。

通常は、チームまたはバージョン・コントロールの管理者から、Subversion接続の詳細(サーバー名、ユーザーID、パスワードなど)を入手します。Subversionリポジトリへの接続を作成する前に、これらの詳細を入手しておく必要があります。

Subversion接続を作成するには、次のようにします。

1. 「バージョン」ウィンドウ(「チーム」→「バージョン」)で、Subversionノードを右クリックし、「新規リポジトリ接続」を選択します。
「Subversion接続の作成」ダイアログが開きます。このダイアログ使用時のヘルプを表示するには、[F1]を押すか「ヘルプ」をクリックします。

2. Subversionリポジトリの場所のURLを入力します。

3. オプションで、接続の名前を入力します。

4. Subversionリポジトリがパスワードで保護されている場合は、ユーザー名とパスワードを入力します。

5. Subversionリポジトリへの接続をテストする場合は、「接続のテスト」ボタンをクリックします。結果は「ステータス」領域に表示されます。

6. 接続を完了するには、「OK」をクリックします。

6.3.1.4 Subversion接続の編集

Subversion接続の詳細(IPアドレス、ポート、ユーザーID、パスワードなど)になんらかの変更が生じた場合は、JDeveloperで接続を編集し、新しい詳細を使用して接続できるようにします。

Subversion接続を編集するには、次のようにします。

1. Subversionナビゲータ(「チーム」→「バージョン」)で、Subversion接続名を右クリックし、「プロパティ」を選択します。
「Subversion接続の編集」ダイアログが開きます。このダイアログ使用時のヘルプを表示するには、[F1]を押すか「ヘルプ」をクリックします。

2. 必要な変更を行って「OK」をクリックします。

6.3.1.5 Subversionリポジトリ接続の詳細のエクスポート

ファイルへのSubversionリポジトリ接続の詳細をエクスポートできます。接続の詳細を後でファイルからインポートすれば、Subversionリポジトリの接続を再作成できます。これにより、リポジトリ接続ファイルをチームがアクセス可能なサーバーに保管し、新しいメンバーが加入したときに必要に応じてダウンロードできるため、新しいチーム・メンバーが加入した際にSubversionリポジトリに接続するプロセスを大幅に簡略化できます。同様に、新しいサーバーが追加された場合は、チームのリーダーまたは管理者が新しい接続情報を接続詳細ファイルで配布し、そのファイルをチームの全メンバーがインポートできます。

Subversion接続の詳細をファイルにエクスポートするには、次のようにします。

1. Subversionナビゲータで、「Subversion」ノードを選択し、ポップアップ・メニューで「接続のエクスポート」を選択します。
「Subversion接続のエクスポート」ダイアログが開きます。

2. 接続の詳細を格納するファイルの場所と名前を入力して、「OK」をクリックします。

6.3.1.6 Subversionリポジトリ接続の詳細のインポート

ユーザーまたはユーザーのチームがSubversionリポジトリ接続の詳細を保存していれば、その詳細をJDeveloperにインポートすることにより、リポジトリへの接続の作成を簡略化できます。

Subversion接続の詳細をファイルからインポートするには、次のようにします。

1. Subversionナビゲータで、「Subversion」ノードを選択し、ポップアップ・メニューで「接続のインポート」を選択します。
「Subversion接続のインポート」ダイアログが開きます。

2. インポートする接続の詳細が格納されているファイルを参照して、「OK」をクリックします。

6.3.1.7 プロキシ・サーバー経由のSubversionリポジトリへの接続

プロキシ・サーバー経由でSubversionリポジトリに接続する場合は、まずSubversionクライアント・ソフトウェアを別途インストールする必要があります。

Subversionクライアント・ソフトウェアをインストールすると、WindowsのApplication DataディレクトリにSubversionサブディレクトリが作成されます。Application Dataディレクトリを見つけるには、c:/プロンプトでcd %APPDATA%と入力します。次に、Subversionサブディレクトリを開きます。(Linuxでは、このサブディレクトリは~/.subversionになります。~はホーム・ディレクトリを表します。)

注意:

プロキシ設定をJDeveloperプリファレンスに入力してある場合は、以降のパラグラフで説明するサーバー・ファイルの編集を省略できます。

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.8 作業用コピーからのSubversion管理ファイルのエクスポート

Subversionの管理下にあるJDeveloperファイルを次の2つの場所のいずれかからエクスポートできます: 「アプリケーション」ウィンドウ(この場合はSubversionの「作業用コピー」からファイルがエクスポートされます)、またはSubversionナビゲータ(この場合はSubversionリポジトリからファイルがエクスポートされます)。ファイルをエクスポートするとは、指定したローカル・ファイルシステム・ディレクトリにファイルをコピーすることです。

「アプリケーション」ウィンドウからファイルをエクスポートするには:

1. 「アプリケーション」ウィンドウで、エクスポートするファイルを含むプロジェクトを選択します。

2. 「チーム」→「ファイルのエクスポート」を選択します。
「ファイルのエクスポート」ダイアログが開きます。

3. 「宛先パス」ボックスで、ファイルをコピーする場所を入力または参照します。

4. ファイルをエクスポートするには、「OK」をクリックします。

これにより、選択したファイルがSubversionの「作業用コピー」からローカル・ファイル・システムにエクスポートされます。

6.3.1.9 Subversionナビゲータからのファイルのエクスポート

Subversionの管理下にあるファイルのコピーをSubversionナビゲータからエクスポートできます。これにより、ファイルは(「作業用コピー」からではなく) Subversionリポジトリからエクスポートされます。さらに、Subversionナビゲータを使用してエクスポートする場合は、エクスポートするファイルのリビジョンを指定できます。

Subversionナビゲータからファイルをエクスポートするには:

1. Subversionナビゲータで、エクスポートするファイルがあるリポジトリ・ノードまたはディレクトリを選択します。

2. 「チーム」→「ファイルのエクスポート」を選択します。
「ファイルのエクスポート」ダイアログが開きます。

3. 「宛先パス」ボックスで、ファイルをコピーする場所を入力または参照します。

4. ファイルの特定のバージョンをエクスポートする場合は、「リビジョンの使用」を選択して、隣のテキスト・ボックスにリビジョン番号を入力します。

5. ファイルをエクスポートするには、「OK」をクリックします。

これにより、選択したファイルがリポジトリからローカル・ファイル・システムにエクスポートされます。

6.3.2 Gitリポジトリの設定方法と構成方法

Gitはポピュラーなオープン・ソースのバージョン・コントロール・システムで、ユーザー・コミュニティが成長しつつあります。JDeveloperでGitを使用する場合、まずローカル・システムにチームのリポジトリのクローンを作成します。

この手順を完了するには次の情報が必要です。チームのGit管理者から入手してください。

- リポジトリの名前

- リポジトリが格納されているURL

- リポジトリへのアクセスに使用するユーザー名とパスワード。チームでパスフレーズを含む秘密鍵を使用するオプションもあります。Gitへの接続時にチームに適したオプションを選択できます。

- 開発用にチームが使用するリモート・ブランチの名前。

- ローカル・リポジトリの格納先となるローカル・システムの宛先パス名。

Gitに接続するには:

1. 「チーム」→「Gitに接続」を選択します。「Gitからのクローニング」ウィザードのようこそ画面が表示されます。「次へ」をクリックして続行します。

2. チームのリモートGitリポジトリに関する情報を入力し、「次」をクリックして続行します。

3. チームが開発用に使用するリモート・ブランチを指定し、「次」をクリックして続行します。

4. ローカル・リポジトリを作成するローカル・システムのパス名を指定し、「次」をクリックして続行します。

5. 「Gitクローンの要約」画面に表示されたすべての情報を確認し、「OK」をクリックします。

JDeveloperによってリモート・リポジトリに接続され、選択したブランチに基づいてローカル・クローンが作成されます。このローカル・クローンから、ファイルのチェックアウト、編集、マージおよびメイン・リポジトリへのコミットを実行できます。

6.3.3 CVSとOracle JDeveloperの設定方法

一般にCVSではJDeveloperにアクセスできるファイルの共通リポジトリが使用されます。このリポジトリは、ソフトウェア・プロジェクトの開発時にユーザーおよびチームで共有します。リポジトリ内のファイルを変更するには、最初にファイルをチェックアウトし、CVSがだれがいつどのようにファイルにアクセスしたか追跡できるようにします。2人のチーム・メンバーが同時に同じファイルを編集する場合、CVSに含まれたツールがこれらの変更が競合するかどうかの判断をします。そして問題解決のために単一または包括的ファイル内の変更をマージする場合があります。最後に、CVSでは、これらの変更済ファイルをチェックインしてリポジトリに戻し、新しい内容やマージされた内容を含む最新のファイルにビルド・ツールでアクセスできるようにします。

注意:

CVSの使用方法および管理方法の詳細は、http://www.cvshome.orgにあるCVSオンライン・マニュアルを参照してください。

CVSを使用して共有コンテンツを管理する前に、JDeveloperをCVSに接続する必要があります。JDeveloperの設定、チームのCVSリポジトリへの接続、ローカル・リポジトリの作成などの作業を行う必要があります。この項のトピックでは、「更新のチェック」からCVS拡張機能をダウンロードした後にJDeveloperからCVSを使用可能にするために必要なすべてのステップについて説明します。チームでCVSをすでに使用している場合は、組織でCVSがどのように実装されているかを確認してください。

CVSとJDeveloperを設定するプロセスには、JDeveloperの構成、CVS接続の作成、CVSリポジトリへのプロジェクトのファイルのインポート、および編集するCVSモジュールのチェックアウトが含まれます。

6.3.3.1 JDeveloperと使用するためのCVSの構成

CVSを使用する前に、プリファレンスを設定してJDeveloperを構成する必要があります。

JDeveloperをCVSとともに使用するように設定するには、次のようにします。

1. 「ツール」→「プリファレンス」を選択し、「プリファレンス」ダイアログの左側のペインから「バージョン」を選択します。

2. 右パネルで「拡張機能のロード」をクリックします。CVS設定のメイン・パネルが表示されます。その他のCVS設定パネルは、「CVS」ノードの下の項目をクリックすると表示されます。

3. 必要に応じて設定を変更します。特定の設定に関する詳細は、[F1]を押すか「ヘルプ」をクリックします。

4. 「OK」をクリックして「プリファレンス」ダイアログを閉じます。

6.3.3.2 CVS接続の作成

CVS拡張機能をJDeveloperにインストールした後、CVSへの接続を作成するとリポジトリにアクセスできるようになります。CVS接続は次のように作成します。

CVS接続を作成するには、次のようにします。

1. 「チーム」→「CVS」→「モジュールのチェックアウト」を選択します。
CVS接続の作成を求めるプロンプトがJDeveloperに表示されます。「OK」をクリックして、「CVS接続の作成」ウィザードを開きます。

2. 「CVS接続の作成」ウィザードの作業を完了します。
ウィザード使用時のヘルプを表示するには、[F1]を押すか「ヘルプ」をクリックします。

6.3.3.3 CVS接続の編集

作成後に接続詳細のいずれかが変更された場合は、CVS接続を次のように編集します。

CVS接続を編集するには、次のようにします。

1. CVSナビゲータ(「表示」→「CVSナビゲータ」)で、接続名を右クリックし、「プロパティ」を選択します。
「CVS接続の編集」ウィザードが開きます。

2. ウィザードを使用して、必要に応じて変更します。
このウィザード使用時のヘルプを表示するには、[F1]を押すか「ヘルプ」をクリックします。

6.3.3.4 CVSモジュールのエクスポート

CVSエクスポート・ウィザードを使用して、デプロイメント可能なファイル構造を作成するモジュールのファイルのリビジョンをエクスポートします。

CVSエクスポート・ウィザードを使用するには、次のようにします。

1. 「チーム」→「CVS」→「モジュールのエクスポート」を選択します。CVSエクスポート・ウィザードが表示されます。

2. ウィザードの要求に従ってエクスポートを完了します。ウィザードの使用時に詳細を参照するには、[F1]を押すか「ヘルプ」をクリックします。

指定した場所にファイルがエクスポートされます。

6.3.3.5 クリップボードへのCVSROOTパスのコピー

CVSROOTのパスは、他のアプリケーションで使用できるように、CVSナビゲータのノードからクリップボードにコピーできます。

CVSROOTパスをクリップボードにコピーするには、次のようにします。

1. 接続ナビゲータで、接続名を右クリックします。

2. ポップアップ・メニューから「CVSROOTをコピー」を選択します。

CVSROOTの完全パスがクリップボードにコピーされます。コピーされたパスは、クリップボードから別のアプリケーションに貼付けできます。

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

CVSを使用できるようにJDeveloperを設定することに加えて、JDeveloperとともにCVSを使用可能するために必要なタスクがいくつかあります。これらのタスクの一部は、管理者が実行することもできます。これらのタスクのいずれかがインストールで実行されているかを常に確認する必要があります。

通常、作業時にファイルを格納するためのローカルCVSリポジトリが必要です。また、CVSと通信するためのセキュア・シェル(SSH)を構成したり、文字セットを選択する必要がある場合もあります。最後に、CVSにログインする必要があります。

6.3.4.1 文字セットの選択(ローカル・クライアントのみ)

インストールでローカルCVSが使用されている場合、文字セットを選択する必要があります。

CVSリポジトリの接続ごとに、ファイルのエンコーディングに使用する文字セットを選択できます。デフォルトでは、プラットフォームまたはオペレーティング・システムに指定されている文字セットが使用されます。

「エンコーディングの設定」ダイアログを使用して、IDEのデフォルトまたは特定の文字セットに変更できます。

文字セットを選択するには:.

1. CVSナビゲータで、接続を選択します。

2. マウスの右ボタンをクリックして、「エンコーディングを設定」を選択します。

3. 必要な文字セットを選択します。

6.3.5 PerforceとJDeveloperの設定方法

Perforce拡張機能をダウンロードするとともに、PerforceをJDeveloperとともに使用する前に、多数のPerforce機能をインストールしてJDeveloperで使用可能にする必要があります。インストールしたら、JDeveloperを構成し、Perforceクライアント・ワークスペースに接続します。最後に、作業用ファイルをPerforceの管理下に置き、Perforceの使用時にJDeveloperでこれらのファイルを使用できるようにする必要があります。

目的のJDeveloperユーザーからアクセスできるマシン上に少なくとも1台のPerforceサーバーがインストールされている必要があります。Perforceサーバーのインストールがまだ存在しない場合、必要なソフトウェアを(www.perforce.comなどから)取得し、Perforceの説明書に従ってインストールします。Perforceサーバー・ソフトウェアがインストールされているマシンのアイデンティティを記録します。このアイデンティティは、JDeveloperを介してこれに接続する際に必要になります。

Perforce拡張機能をダウンロードするとともに、PerforceをJDeveloperとともに使用する前に、多数のPerforce機能をインストールしてJDeveloperで使用可能にする必要があります。インストールしたら、JDeveloperを構成し、Perforceクライアント・ワークスペースに接続します。最後に、作業用ファイルをPerforceの管理下に置き、Perforceの使用時にJDeveloperでこれらのファイルを使用できるようにする必要があります。

6.3.5.1 JDeveloperと使用するPerforceコンポーネントのインストール

目的のJDeveloperユーザーからアクセスできるマシン上に少なくとも1台のPerforceサーバーがインストールされている必要があります。Perforceサーバーのインストールがまだ存在しない場合、必要なソフトウェアを(www.perforce.comなどから)取得し、Perforceの説明書に従ってインストールします。

Perforceクライアントのインストール

JDeveloperが含まれる(またはJDeveloperが含まれる予定の)マシンにPerforceクライアント・アプリケーションをインストールする必要があります。Perforceクライアント・アプリケーションは、www.perforce.comから取得可能なサーバー・ソフトウェアと同じソフトウェアからインストールできます。インストールにはコマンドライン・クライアント(P4)が含まれている必要があります。

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.3.5.2 Perforceと使用するためのJDeveloperの構成

Perforceを使用できるようJDeveloperを構成する前に、Perforceサーバーおよびクライアント・ソフトウェアがインストールされている必要があります。

JDeveloperをPerforceとともに使用するように設定するには、次のようにします。

1. 「ツール」→「プリファレンス」→「バージョニング」→「Perforce」を選択します。C

2. Perforceクライアントへのパスがインストールしたとおりであることを確認します。

3. チームがコメント・テンプレートを使用している場合は、左側のペインから「コメント・テンプレート」を選択し、チームのコメント・テンプレートを構成します。詳細

4. 「プリファレンス」ダイアログの左側のペインで「一般」を選択し、アイコン、ログ・メッセージ、編集用にファイルを自動的に開く設定、およびタイムアウトまでのアイドル期間の長さに関して選択します。詳細

5. 「プリファレンス」ダイアログの左側のペインで「一般」を選択し、「保留中の変更」ウィンドウおよび「エディタのマージ」に関して選択します。詳細。

6. 設定した構成を保存するには、「OK」をクリックして「プリファレンス」ウィンドウを閉じます。

6.3.5.3 Perforceのバージョン・システムとしての選択

Perforceとともに使用するようにJDeveloperを構成すると、バージョン・システムとしてPerforceを選択できるようになります。これにより多くのデフォルト設定が指定されるため、すべてのチーム操作においてPerforceが選択済のバージョン・システムとしてデフォルトに設定されます。

Perforceをバージョン・システムとして選択するには、次のようにします。

- 「チーム」→「Perforce」を選択します。

後日チームが別のバージョン・システムに移行した場合は、このデフォルトの選択をいつでも変更できます。

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

JDeveloperでは、Rational ClearCaseリリース4.0以降(ClearCase 2002を含む)のソース・コントロール機能を使用できます。JDeveloperはClearCaseとシームレスに連携して動作するため、一度構成すると、ソース・コントロールにファイルを追加し、これらを「アプリケーション」ウィンドウでチェックインおよびチェックアウトできるようになります。

JDeveloperのRational ClearCase拡張機能を使用すると、JDeveloper内でRational ClearCaseのソース・コントロール機能を使用できます。ClearCaseインストールと連携して動作するようにJDeveloperを構成した後は、ソース・コントロールにファイルを追加し、これらを「アプリケーション」ウィンドウでチェックインおよびチェックアウトできるようになります。

ClearCaseで作業するには、ワークスペース、プロジェクトおよびファイルをClearCaseビューに格納する必要があります。新規プロジェクトおよびファイルがClearCaseソース・コントロールの管理下に置かれる前に、これらをClearCaseに明示的に追加する必要があります。ファイルがClearCaseビューに追加されたら、ファイルのチェックインおよびチェックアウト、バージョンの比較、ファイル履歴のレビュー、および(必要な場合は)ClearCase内のファイルの削除が可能になります。

ClearCaseをJDeveloperと使用するには、ClearCase 4.0以降のクライアントがJDeveloperと同じマシンにインストールされている必要があります。

ClearCaseを使用するようJDeveloperを構成するには、次のようにします。

1. 「ツール」→「プリファレンス」 →「バージョニング」→「ClearCase」を選択します。JDeveloperの新しいインストールで初めてこの選択をした場合は、「拡張機能のロード」をクリックして、ClearCaseプリファレンス・ページを表示します。

2. 最初のClearCaseページで、起動時に自動的に接続するかどうかを選択します。詳細

3. ClearCaseバージョニング・プリファレンスで「一般」ページを選択して、ナビゲータ・オーバーレイ・アイコンを表示するかどうか、ファイルを自動的にチェックアウトするかどうか、およびチェックアウト・コメントを指定します。タイムアウト期間も設定できます。詳細

4. ClearCaseバージョニング・プリファレンスの「バージョン・ツール」ページを選択して、チェックイン・ダイアログをいつ表示するか(常に、コメントが非表示のとき、または表示しない)を指定します。詳細

5. 構成を保存してから、「OK」をクリックして「プリファレンス」ダイアログを閉じます。

自動的に接続するよう(プリファレンスで)選択していない場合、ClearCaseサーバーに接続されていることを確認し、「チーム」→「ClearCase」→「ClearCaseに接続」を選択します。

これで、ClearCaseと連携して動作するようJDeveloperが構成され、マウントされているClearCaseビュー内にすでに存在するファイルおよびフォルダにアクセスできるようになります。新規ファイルおよびフォルダはClearCaseビューに作成またはコピーする必要があります。

6.3.7 Team SystemとJDeveloperの設定方法

Oracle JDeveloperのTeam System拡張機能を使用すると、JDeveloper内でMicrosoft Visual Team Systemのソース・コントロール機能を使用できます。Team Systemと連携して動作するようにJDeveloperを構成した後は、ソース・コントロールにファイルを追加し、これらを「アプリケーション」ウィンドウでチェックインおよびチェックアウトできるようになります。

Team SystemとJDeveloperの使用を開始するには、最初にTeam Systemソフトウェアを使用してワークスペースを作成してから、このワークスペースにTeam Systemサーバーの内容を移入します。ファイルはワークスペースにチェックアウトされ、ここで作業できるようになります。JDeveloper内に新しく作成されたファイルは、バージョン・コントロールに追加する必要があります。変更および新規ファイルは、Team Systemサーバーにチェックインすることによって他のユーザーが使用できるようになります。

Team SystemとJDeveloperの使用を開始する前に、実行が必要な初期ステップがいくつかあります。

1. Team Systemクライアント・ソフトウェアを設定します。第6.3.7.1項「JDeveloperと使用するためのTeam Systemの設定」を参照してください。

2. Team Systemと使用するためにJDeveloperを構成します。これには、Team SystemをJDeveloperによって認識されるソース・コントロール・システムにするためのプリファレンスおよび他の設定が含まれます。第6.3.7.2項「Team Systemと使用するためのJDeveloperの構成」を参照してください。

Team Systemは実際には(任意のバージョン管理システムと同様)、製品のライフサイクル内の位置に応じて様々な場面で使用する複数の操作で構成されています。たとえば、新規ファイルを作成する場合、これをTeam Systemコントロールに追加する必要があります。開発の段階に応じて実行できる場合がある他の操作には、次が含まれます。

- ファイルをサーバーからチェックアウトして作業できるようにします。第6.5.10.4項「Team Systemのファイルのチェックアウト」を参照してください。

- Team Systemワークスペースに保存されたファイルを変更し、他のユーザーが使用できるようにします。第6.5.11.6項「Team Systemへのファイルのチェックイン方法」を参照してください。

- Team Systemのシェルブ機能を使用して、ファイルをチェックインする必要なくTeam Systemサーバーにファイルの変更を保存します。第6.5.13.4項「Team Systemファイルのシェルブとアンシェルブ」を参照してください。

- Team Systemファイルに対して自分で行った変更とチーム・メンバーによって行われた変更の間の競合を解決します。

- ファイルをTeam Systemサーバーにチェックインします。

6.3.7.1 JDeveloperと使用するためのTeam Systemの設定

Team SystemをJDeveloperとともに使用する場合、ソフトウェアのインストール、サーバーへの接続、ワークスペースの移入などの設定手順が必要です。

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.3.7.2 Team Systemと使用するためのJDeveloperの構成

Oracle JDeveloperと使用するためにTeam Systemを設定したら、Team Systemを使用するようJDeveloperを構成できます。第6.3.7.1項「JDeveloperと使用するためのTeam Systemの設定」の手順以外にも、JDeveloper Team System VCS拡張機能が(Official Oracle Extensions and Updatesセンターから)すでにインストールされていることを確認してください。

Team Systemと使用するためにJDeveloperを構成するには、JDeveloperで次のアクティビティを実行します。

- JDeveloperバージョニング・システムとしてTeam Systemに接続します。

- JDeveloperと使用するためのワークスペースを設定します。

- ワークスペース・ファイルを保持するためのJDeveloperプロジェクトを作成します。

- JDeveloperでワークスペース・フォルダをリフレッシュします。

6.3.7.3 バージョニング・システムとしてのTeam Systemの選択

デフォルトのバージョニング・システムとしてTeam Systemに接続すると、Team Systemが「チーム」メニューからの多くのアクションのターゲットになります。

バージョニング・システムとしてTeam Systemに接続するには:

- 「チーム」→「Team Systemに接続」を選択します。

Team Systemの接続メニューが表示され、使用可能な操作から選択できます。この操作に関する詳細な指示は、Team Systemオンライン・ヘルプを参照してください。

6.3.7.4 JDeveloperと使用するためのTeam Systemワークスペースの設定

開始する前に、選択したTeam SystemワークスペースをJDeveloperと使用するように設定する必要があります。

JDeveloperと使用するためにワークスペースを設定するには、次のようにします。

1. 「チーム」→「Team System」→「ワークスペースの設定」を選択します。

2. リストから必要なワークスペースを選択します。

6.3.7.5 ワークスペース・ファイルのためのJDeveloperプロジェクトの作成

選択したTeam SystemワークスペースにJDeveloperプロジェクトを関連付けることにより、作成および編集したファイルが、チームが使用しているワークスペースの一部に留まるようになります。

ワークスペース・ファイルを保持するためにJDeveloperプロジェクトを作成するには、次のようにします。

1. 「ファイル」→「新規」をクリックして、「新規ギャラリ」を開きます。

2. 新規ギャラリを使用して、新規アプリケーションおよびプロジェクトを作成します。

3. 「アプリケーション」ウィンドウで、新しく作成したプロジェクトを選択し、ツールバーで「プロジェクト・コンテンツに追加」ボタンをクリックします。
これにより、「プロジェクト・プロパティ」ダイアログの「プロジェクト・コンテンツ」ページが開きます。

4. 「Javaコンテンツ」領域の「追加」ボタンを使用して、ワークスペースの場所を追加します。
ワークスペースにJavaソースが含まれていた場合、ダイアログが表示され、これを使用して、このソースをプロジェクト内容に追加することを確認する必要があります。

混乱を避けるために、workspace以外の場所をJavaコンテンツ・リストから削除することもできます。

5. 「OK」をクリックして、「プロジェクト・プロパティ」ダイアログを終了します。

完了したら、「チーム」→「ワークスペース・フォルダのリフレッシュ」を選択して、JDeveloperのワークスペース・フォルダをリフレッシュします。

6.3.7.6 Team Systemサーバーからのファイルのバージョンの取得

JDeveloperでは、「アプリケーション」ウィンドウにあるファイルのバージョンを(Team Systemサーバーから)取得できます。以前にTeam Systemクライアント・ソフトウェアで取得コマンドを使用してワークスペースにソース・ファイルが移入されている必要があります。

この手順を使用して取得できるファイルのバージョンは、最新のバージョン、前に保存した名前付き変更リストのファイル、特定の日付スタンプを持つファイル、前に作成した名前付きラベルのファイル、特定のワークスペース・バージョンのファイルです。

Team Systemサーバーから取得されたバージョンにより、現在「アプリケーション」ウィンドウ内にあるバージョンが置換されます。

ファイルのバージョンをTeam Systemサーバーから取得するには、次のようにします。

1. 「アプリケーション」ウィンドウで、アプリケーション、プロジェクトまたはファイルを選択し、「取得」操作の範囲を設定します。

2. 「チーム」→「Team System」→「取得」を選択します。
「取得」ダイアログが開きます。

3. ダイアログを完了します。
ダイアログの使用中に詳細を参照するには、[F1]を押します。

6.3.7.7 Team Systemコントロールへのファイルの追加

ファイルをTeam Systemソース・コントロール下に置くために使用します。ファイルはTeam Systemサーバーに追加され、ファイルを次回チェックインするときに他のユーザーが使用できるようになります。

ファイルをTeam Systemコントロールに追加するには:

1. 「アプリケーション」ウィンドウで、Team Systemコントロールに追加するファイルを選択します。

2. 「チーム」→「追加」を選択します。
「追加」ダイアログが開きます。

3. ダイアログを完了します。
ダイアログの使用中に詳細を参照するには、[F1]を押します。

4. ファイルをサーバーに追加し、他のユーザーが使用できるようにするには、ファイルをチェックインします。

6.4 ソース・リポジトリの設定と構成

バージョン・コントロール・システムをJDeveloperで初期化した後、次の重要なステップとしてソース・リポジトリを構成します。一般的に、作業中のファイルのローカル・コピーを格納しているローカル・リポジトリは個人のシステム上で管理します。通常、作業するファイルをチェックアウトし、ローカル・システムでバージョンを編集してから、リモート・リポジトリにファイルをチェックインして戻します。通常、バージョン・コントロール・システムでは、複数のユーザーが同時にファイルを編集しているときに、変更や矛盾が生じていないかを追跡または少なくとも通知します。メニューのオプションや詳細はシステムによって異なります。相違点については次の項で個別に説明します。

JDeveloperでSubversionの使用を開始する前に、リポジトリをコンテンツとともにロードして、編集するローカル・バージョンを入手する必要があります。詳細は、第6.4.4項「リポジトリをコンテンツとともにロードする方法」を参照してください。

6.4.1 ソース・リポジトリの作成方法

通常、リポジトリの作成は、プロジェクト/リリースごとに1回のみ行う作業です。いったんリポジトリを作成した後は、日常業務の一環としてファイルのチェックインやチェックアウトを行います。多くのチームにおいて、ソース・リポジトリはリポジトリの管理者ロールを割り当てられたチーム・メンバーが作成します。そのようなケースでは、この項をスキップして、既存のリポジトリにアクセスしてファイルのチェックアウトやチェックインを行えばよい場合があります。

ソース・リポジトリの作成および接続に関する詳細は、チームが使用しているバージョニング・ソフトウェアによって異なります。以降の項では、JDeveloperで使用可能なバージョニング・システム用にソース・リポジトリを作成する手順を説明します。

6.4.1.1 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.4.1.2 新しいGitリポジトリの初期化

既存のGitリポジトリにまだ含まれていない新しいファイルがある場合は、Gitリポジトリを初期化する必要があります。

すべてのファイルが新しい新規プロジェクトがある場合は、Gitリポジトリを初期化します。通常、この操作は各プロジェクトの最初に1回のみ実行します。継続中のタスクの場合は、既存のGitリポジトリ(リンク)に新しいファイルを追加するか、ファイルをチェックアウトして編集し、Gitリポジトリ(link)に戻して変更をコミットする可能性が高くなります。

Gitリポジトリを初期化するには:

1. 「チーム」→「Git」→「初期化」を選択します。「リポジトリの初期化」ダイアログが表示されます。

2. ローカル・リポジトリへのパスを入力し、「OK」をクリックします。

6.4.1.3 既存のGitリポジトリのローカル・コピーの作成

すでにチームにセントラルGitリポジトリがあり、そのローカル・コピーが作業に必要な場合は、ここに記載する方法でGitリポジトリのクローンを作成できます。

Gitリポジトリのクローンを作成するには:

- 「チーム」→「Git」→「クローン」を選択します。

「Gitからのクローニング」ウィザードが開きます。各画面でリクエストされる情報を入力します。[F1]を押すか「ヘルプ」をクリックすると、詳細が表示されます。

6.4.1.4 既存のGitリポジトリへの新規ファイルの追加

既存のGitリポジトリに新しいファイルを追加する場合、ファイルを選択してから追加し、最後に変更をコミットしてリポジトリに組み込みます。

既存のGitリポジトリに新規ファイルを追加するには:

1. 追加するファイルを選択します。これは次のいずれかで実行できます。

2. 「チーム」→「Git」→「追加」(または「チーム」→「Git」→「すべて追加」)を選択します。「追加」ダイアログが表示されます。

3. 「OK」をクリックします。

6.4.1.5 ローカルCVSリポジトリの作成

JDeveloperから、新規CVSリポジトリをローカル・ファイル・システムに作成できます。この機能は、CVS拡張機能の一部としてJDeveloperにインストールされる内部CVSクライアントではなく、外部CVSクライアント・ソフトウェアを使用している場合にのみ使用できます。

ローカルCVSリポジトリを作成するには、次のようにします。

1. 「チーム」→「CVS」→「ローカル・リポジトリの作成」を選択します。

2. 「リポジトリ・フォルダ」ボックスに、新規ローカル・リポジトリを作成するディレクトリのパスを入力します。
既存の空のディレクトリを指定または選択するか、新規ディレクトリを指定できます。指定した既存のディレクトリが空でない場合は、リポジトリに対して空または新規のディレクトリを指定するように伝える警告ダイアログが表示されます。

3. 作成しているローカル・リポジトリへの接続を作成する場合は、「リポジトリ接続の作成」ボックスを選択します。
接続には、:local:{path}の形式で名前が指定されます。この名前は後で変更できます。変更する場合は、CVSナビゲータで、接続名のポップアップメニューから「プロパティ」ダイアログを開き、「名前」タブで既存の名前を新しい名前で上書きします。

4. 「OK」をクリックします。新規ローカル・リポジトリが作成されると、確認ダイアログが表示されます。

6.4.1.6 JDeveloperプロジェクト・ファイルのCVSへのインポート

JDeveloperプロジェクトをCVSで使用するには、CVSリポジトリにプロジェクト・ファイルをインポートする必要があります。インポートすると、フォルダおよびファイルすべてがCVSリポジトリにコピーされ、ソース・コントロール下に置かれます。

CVSリポジトリにプロジェクト・ファイルをインポートするには、CVSへのインポート・ウィザードを使用します。

CVSへのインポート・ウィザードを使用するには、次のようにします。

1. 「チーム」→「CVS」→「モジュールのインポート」を選択します。「CVSへのインポート」ウィザードが表示されます。

2. ウィザードの要求に従ってインポートを完了します。このウィザード使用時のヘルプを表示するには、[F1]を押すか「ヘルプ」をクリックします。

ローカルで作業できるように、ファイルを変更する前にマシンにコピーする必要があります。

6.4.1.7 Perforceの管理下へのファイルの移動

Perforceでは、ローカル・ディレクトリ構造を使用して、仮ソース・コントロールの下に配置されるファイルを受信します。この場所はPerforceクライアント・ワークスペースと呼ばれます。JDeveloperで作成(またはJDeveloperに移動)されたファイルは、この場所に格納する必要があります。ファイルがPerforceクライアント・ワークスペースに格納された後、Perforce保管庫と呼ばれる中心的な場所にファイルを発行し、ファイルを完全にソース・コントロール下に置きます。バージョン管理して他のユーザーからアクセスできるようにするには、Perforce保管庫にファイルを発行する必要があります。

JDeveloper内で作成するファイル、または外部からJDeveloperに移動するファイルの設定JDeveloper Perforceバージョニング機能を使用するには、これらのファイルをPerforceの管理下に置く必要があります。

Perforceの管理下に置く必要がある既存のJDeveloperプロジェクトがある場合、「Perforceへのインポート」ウィザードを使用します。

JDeveloperの個々のファイルをPerforceの管理下に置くには、次のようにします。

1. 「アプリケーション」ウィンドウでファイルを選択し、「チーム」→「Perforce」→「追加のため開く」を選択します。
ここでは、自分の作業ファイルまたはJDeveloperで使用するアプリケーションやプロジェクトをファイルとして選択できます。

「ファイルをPerforceに追加」ダイアログにファイルがリスト表示されます。

2. ファイルをロックし、他のユーザーが編集できないようにするには、「ファイルのロック」ボックスを選択します。

3. Perforceの管理下にファイルを追加するには、「OK」をクリックします。
これで、ファイルは赤い十字とともに「アプリケーション」ウィンドウに表示されます。これは、これらのファイルはPerforceクライアント・ワークスペースに格納されているが、Perforce保管庫にはまだ格納されていないことを意味します。バージョン管理して他のユーザーからアクセスできるようにするには、Perforce保管庫にファイルを追加する必要があります。

4. 「Perforce」保管庫にファイルを追加するには、「アプリケーション」ウィンドウでファイルを選択し、「チーム」→「Perforce」→「発行」を選択します。
「ファイルの発行」ダイアログが表示されて、ファイルがリストされます。

5. バージョニングのコメントを「コメント」ボックスに追加します。
特定のファイルのバージョンのリストを表示すると、これらのコメントが表示されます。

6. Perforce保管庫にファイルを発行するには、「OK」をクリックします。
ファイルが緑色の点とともに「アプリケーション」ウィンドウに表示されるようになります。これは、ファイルが「Perforce」保管庫に認識され、最新状態であることを示しています。

JDeveloperの外部で作成されたファイルをPerforceの管理下に置くには、次のようにします。

1. JDeveloperファイル記憶域ディレクトリの下にある既存の\srcディレクトリ(これはPerforceクライアント・ワークスペースと同じである必要があります)にファイルをコピーまたは移動します。

2. アプリケーションまたはプロジェクトをリフレッシュします。
ファイルは「アプリケーション」ウィンドウで、\srcディレクトリを使用したプロジェクト内に表示されるようになります。青地に白の斜線の十字でファイルがマークされるようになります。これは、ファイルがJDeveloperに認識されているが、ソースの管理下にはないことを示しています。

3. 前述の手順に従って、ファイルをPerforceの管理下に置きます。

6.4.1.8 ClearCaseへのファイルの追加

ClearCaseで作業するには、ワークスペース、プロジェクトおよびファイルをClearCaseビューに格納する必要があります。新規プロジェクトおよびファイルがClearCaseソース・コントロールの下に置かれる前に、これらをClearCaseに明示的に追加する必要があります。「ClearCaseに追加」ダイアログのコメント・ペインを使用すると、様々なファイルのグループ用のコメントを作成できます。入力するコメントは、選択したファイルに適用されます。たとえば、すべてのファイルを選択し、グローバル・コメントを入力できます。次に、より少ない数のファイルを選択します。最初のコメントが表示され、これにコメントを追加できます。その後、このグループ内の単一のファイルを選択し、このファイルに固有の別のコメントを追加できます。

1つ以上のファイルをClearCaseに追加するには、次のようにします。

1. 「アプリケーション」ウィンドウでファイルを選択し、「チーム」→「追加」を選択します。「ClearCaseに追加」ダイアログが表示され、選択した項目がリストされます。
ファイルに対する作業を続行する場合は、「チェックイン」ボックスの選択は解除されたままにします。このボックスを選択すると、ファイルはチェックインされ、作業するにはチェックアウトが必要になります。

2. ClearCaseソース・コントロールにリスト内のファイルを追加するには、「OK」をクリックします。フォルダをClearCaseに追加するかどうかを尋ねる1つ以上のメッセージが表示される場合があります。「はい」をクリックします。

6.4.2 ソース・コントロール・リポジトリへの接続方法

ソース・コントロール・リポジトリを(ユーザー個人またはチーム管理者が)作成すると、通常「チーム」メニューからそのリポジトリに接続して、バージョニング・システムを「接続先...」オプションから選択します。次の項では、ソース・コントロール・リポジトリへの接続に関する仕様の一部を概説します。

6.4.2.1 Subversionリポジトリの内容の表示

Subversionリポジトリの現在の内容は、「バージョン」ウィンドウで表示できます。選択したSubversion接続の下のノードを展開すると、Subversionリポジトリの構造とファイルの内容が表示されます。

対応するポップアップ・メニューから「開く」を選択すると、Subversionリポジトリ・ファイルの読取り専用バージョンを表示できます。これにより、ローカル・バージョンをチェックアウトまたは更新した後でSubversionリポジトリ内のファイルに対して行われた変更内容を確認できます。

「バージョン」ウィンドウから表示可能なSubversionリポジトリ内のフォルダには、次の操作が用意されています。

新規

新規ギャラリを開き、アプリケーション、接続、プロジェクトおよび他のエンティティを作成できます。

新規リモート・ディレクトリ

「ディレクトリの作成」ダイアログを開き、右クリックした要素のURLに関連付ける新規ディレクトリを作成できます。

削除

確認ダイアログを表示せずに、選択した要素をJDeveloperビューから即時削除します。慎重に使用してください。

チェックアウト

デフォルトでは、「Subversionからのチェックアウト」ダイアログを開きます。

様々なバージョン・コントロール・システムに応じてJDeveloperを構成した場合、「チェックアウト」を選択すると、選択したバージョン・コントロール・ソフトウェア用のチェックアウト・ダイアログが開きます。

6.4.2.2 CVSへのログイン

CVSリポジトリへの接続の一部のタイプでは、接続とは関係なくログインする必要があります。CVS接続が存在するにもかかわらず、CVSのいずれの機能にもアクセスできない場合は、ログインする必要があります。

CVSリポジトリにログインするには、次のようにします。

1. CVSナビゲータで、「チーム」→「ログイン」を選択します。
「ログイン」メニュー・オプションが使用不可で、「ログアウト」オプションが使用可能な場合は、すでにログインしています。

2. 「CVSにログイン」ダイアログで、パスワードを入力します。パスワードを記憶して、今後CVSリポジトリに接続する際に自動的に入力されるようにする場合は、「起動時に自動的に接続」ボックスを選択します。

3. 「OK」をクリックしてログインを完了します。

6.4.2.3 CVSでのローカル・ファイルへのアクセス

JDeveloperがマシン上のCVSクライアントへのパスを検出すると、JDeveloperのCVS設定は、そのCVSクライアント(JDeveloperとともにインストールされた内部CVSクライアントではなく)を使用するようにデフォルトで設定されます。CVSクライアントへのパスが見つからない場合は、内部CVSクライアントを使用するように設定されます。

内部CVSクライアントは、ローカルCVSリポジトリ(つまり、ユーザーのマシンのリポジトリ)へのアクセスには使用できません。ローカルCVSリポジトリにアクセスする場合は、CVSの完全なクライアント/サーバー・バージョンをマシンにインストールし、JDeveloperのCVS設定を適切に設定する必要があります。

外部CVSクライアントを使用する場合は、次のクライアントをお薦めします。

- Windowsプラットフォーム用CVSNT 2.0.58a以上- http://march-hare.com/cvspro/

- 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.3.1 CVSファイル・タイプの処理

CVS管理者は、JDeveloperで作成されるイメージ・ファイル形式などのバイナリ・ファイルが自動的に処理されるよう、CVSリポジトリを構成する必要があります。

他のファイル形式の場合は更新されるような状況で、これらのファイルに対してはマージが試みられます。これが行われないようにするには、CVSリポジトリの構成を変更する必要があります。

CVSの詳細は、CVSのドキュメントまたはWebサイト(http://www.cvshome.org)を参照してください。このサイトから、CVSのソフトウェアをダウンロードすることもできます。

6.4.2.4 Perforceへの接続

JDeveloper内でPerforceを操作できるようにするには、Perforceに接続する必要があります。

Perforceに手動で接続するには、次のようにします。

1. 「チーム」→「Perforceに接続」を選択します。
「接続」ダイアログが開きます。ユーザー名、ポートおよびクライアント情報が自動的に導出され、「接続」ダイアログに表示されます。

2. 表示されていない場合は、正しいユーザー名、ポートおよびクライアント情報を入力します。

3. Perforceサーバーがパスワード保護を使用して設定されている場合、パスワードを入力します。(次回接続するときのためにパスワードが記憶されるようにする場合は、「パスワードを保存する」ボックスを選択します。)

4. Perforceサーバーへの接続をテストする場合は、「接続のテスト」ボタンをクリックします。結果は長方形のテキスト領域に表示されます。

5. 接続を完了するには、「OK」をクリックします。

6.4.2.5 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.4.2.6 ClearCaseコントロール下にあるオブジェクトのステータスのリフレッシュ

Rational ClearCaseでは、ClearCaseオブジェクトのソース・コントロール・ステータスは、「アプリケーション」ウィンドウにアイコン上の記号で次のように示されます。

表6-1 ClearCaseのステータス・アイコン

アイコン

説明

オブジェクトはチェックアウトされており、変更できます。

オブジェクトはチェックインされており、変更するにはチェックアウトする必要があります。

外部のソース・コントロール・ソフトウェアを使用したオブジェクトのチェックインなど、JDeveloper外部でオブジェクトのステータスが変更されると、新規のステータスがJDeveloperに即時に表示されない場合があります。「アプリケーション」ウィンドウに表示されるステータスをソース・コントロール・システム内のオブジェクトのステータスと確実に一致させるために、手動リフレッシュを実行できます。JDeveloperでオブジェクトのステータスをリフレッシュするには、「チーム」→「状態のリフレッシュ」を選択します。

6.4.3 ソース・リポジトリ用にJDeveloperを構成する方法

JDeveloperにデフォルトで含まれているSubversionを使用している場合は、ソース・リポジトリ用にJDeveloperを構成する必要はありません。リポジトリに接続し、ローカルの作業用コピーを更新し、ファイルをチェックアウトして作業を行い、変更が完了したファイルをチェックインするだけです。ただし、その他のバージョン・コントロール・システムには構成要件があり、使用する前にそのシステムとJDeveloperを構成する必要があります。

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

CVSを使用できるようにJDeveloperを設定することに加えて、JDeveloperとともにCVSを使用可能するために必要なタスクがいくつかあります。これらのタスクの一部は、管理者が実行することもできます。これらのタスクのいずれかがインストールで実行されているかを常に確認する必要があります。

通常、作業時にファイルを格納するためのローカルCVSリポジトリが必要です。また、CVSと通信するためのセキュア・シェル(SSH)を構成したり、文字セットを選択する必要がある場合もあります。最後に、CVSにログインする必要があります。

6.4.3.2 SSH (Secure Shell)、CVSおよびJDeveloperの構成

JDeveloperでは、CVSリポジトリに対するアクセスとしてSSHレベル1および2をサポートしています。

6.4.3.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.3.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クライアントを使用している場合は、いつでも「チーム」→「CVS」→「管理」→「SSH2キーペアの生成」を選択してSSH2キー・ファイルを生成できます。外部CVSクライアントを使用している場合、このメニュー・オプションは使用できません。

6.4.3.3 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.4 リポジトリをコンテンツとともにロードする方法

選択したバージョン・コントロール・システムのリポジトリを使用するには、通常、チームが作業するコンテンツとともにリポジトリをロードする必要があります。この操作は次のようなときに必要になる場合があります。

- チームがプロジェクトの新しいバージョンの作業を開始するとき(特に、パッチ・セットやメジャー・アップデートなど、複数のバージョンで同時に作業しているとき)

- チームが、旧バージョンまたはファイル・テンプレートのいずれかを使用して新しいプロジェクトを開始するとき

- 作業時にリポジトリのファイルを保管するローカル・ファイル・システムがまだ含まれていない新しいワークステーションでJDeveloperのクリーン・インストールを実行するとき

通常、リポジトリとコンテンツのロードは1つのプロジェクトで1回実行します。この初期ロードの後は、ローカル・リポジトリ内のファイルやフォルダを定期的に更新し、チームが作業している最新版のファイルと同じになるようにします。

6.4.4.1 SubversionへのJDeveloperファイルのインポート

JDeveloper内で作成した(またはJDeveloperに持ち込んだ)ファイルは、Subversionによる管理を使用する前に、Subversionリポジトリにインポートしてから、チェックアウトする必要があります。

JDeveloperの既存のプロジェクトやアプリケーションをSubversionにインポートするには、次のようにします。

1. 「アプリケーション」ウィンドウで、Subversionにインポートするアプリケーションまたはプロジェクトを選択します。

2. 「チーム」→「ファイルのインポート」を選択します。
「Subversionへのインポート」ウィザードが開きます。

3. ウィザードを完了します。ウィザード使用時のヘルプを表示するには、[F1]を押すか「ヘルプ」をクリックします。
インポートされたファイルのチェックアウトをウィザードで許可した場合は、横にバージョン番号が付いたファイルが「アプリケーション」ウィンドウに表示されます。ファイルを表示する前に、表示をリフレッシュすることが必要になる場合があります。

インポートされたファイルのチェックアウトをウィザードで許可しなかった場合は、ファイルの作業を始める前に、この時点でファイルをチェックアウトする必要があります。

6.4.4.1.1 Subversionへのプロジェクトのインポート

JDeveloperの「アプリケーションのバージョニング」機能を使用して、Subversionにプロジェクト全体をインポートすることもできます。

「プロジェクトのバージョニング」を使用してファイルをインポートするには:

1. バージョン管理に追加するアプリケーションを選択します。

2. 「チーム」→「プロジェクトのバージョニング」を選択します。これにより、「Subversionへのインポート」ウィザードが開きます。

3. ウィザードを完了します。ウィザード使用時のヘルプを表示するには、[F1]を押すか「ヘルプ」をクリックします。
インポートされたファイルのチェックアウトをウィザードで許可した場合は、横にバージョン番号が付いたファイルが「アプリケーション」ウィンドウに表示されます。ファイルを表示する前に、表示をリフレッシュすることが必要になる場合があります。

インポートされたファイルのチェックアウトをウィザードで許可しなかった場合は、ファイルの作業を始める前に、この時点でファイルをチェックアウトする必要があります。

「アプリケーションのバージョニング」機能を使用してファイルを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.4.4.2 Subversionへのファイルの自動追加

ローカル作業用コピーの一部である新しいファイル(つまり、バージョニングされてSVNリポジトリからチェックアウトされたアプリケーション)をJDeveloperで作成するときには、JDeveloperのSubversion機能を使用する前に、Subversionの管理下にファイルを追加してコミットしておく必要があります。JDeveloperの「プリファレンス」メニューで、この作業を自動的に実行するように設定することをお薦めします。

コミット時に新規ファイルを追加するには、次のようにします。

1. 「ツール」→「プリファレンス」→「バージョニング」→「Subversion」→「一般」の順に選択します。

2. 「作業用コピーのコミット時に自動的に新規ファイルを追加」を選択します。

3. 「OK」をクリックします。

6.4.4.3 Subversionへのファイルの個別追加

個々のファイルをSubversionの管理下に置くこともできます。

個々のファイルをSubversionの管理下に置くには:

1. 「アプリケーション」ウィンドウでファイルを選択し、「チーム」→「追加」を選択します。
ここでは、自分の作業ファイルまたはJDeveloperで使用するアプリケーションやプロジェクトをファイルとして選択できます。

「ソース・コントロールに追加」ダイアログが開いて、ファイルがリストされます。

2. Subversionの管理下にファイルを追加するには、「OK」をクリックします。
「アプリケーション」ウィンドウに黒い十字とともにファイルが表示されるようになります。これは、ファイルがJDeveloperの作業領域に保存されているが、Subversionリポジトリにはまだコミットされていないことを示しています。バージョン管理して他のユーザーからアクセスできるようにするには、Subversionにファイルをコミットする必要があります。

3. Subversionリポジトリにファイルをコミットするには、「アプリケーション」ウィンドウでファイルを選択して、「チーム」→「コミット」を選択します。
「リソースのコミット」ダイアログが表示されて、ファイルがリストされます。

4. バージョニングのコメントを「コメント」ボックスに追加します。
特定のファイルのバージョンのリストを表示すると、これらのコメントが表示されます。

5. Subversionリポジトリにファイルをコミットするには、「OK」をクリックします。
「アプリケーション」ウィンドウにオレンジ色の点とともにファイルが表示されるようになります。これは、ファイルがSubversionリポジトリに認識されていて、最新状態にあることを示しています。

6.4.4.4 Gitのリモート・リポジトリからのファイルの移動

編集中に加えた変更に対してローカルGitを使用する場合でも、多くの場合、分散チームではリモート・リポジトリを操作する必要があります。プッシュ、プルおよびクローンが、リモートGitリポジトリに適用される3つのコンセプトです。

リモート・リポジトリからコンテンツを取得するには、フェッチとプルという2つの方法があります。リモート・リポジトリからフェッチする場合、Gitはすべての変更をローカル・リポジトリにロードしますが、既存のブランチはなにも変更しません。これにより、変更を調査して適宜マージできます。

既存のブランチを変更せずにリモート・リポジトリからコピーするには:

1. 「チーム」→「Git」→「フェッチ」を選択します。

2. ウィザード画面の指示に従って、フェッチするリモート・リポジトリおよびリモート・ブランチを指定します。

3. 「終了」をクリックして、リモート・リポジトリからファイルをフェッチします。

一方、プルの場合は、リモート・リポジトリからファイルをコピーして、ローカル・リポジトリのHEADブランチを更新します。詳細

ローカル・リポジトリからリモート・リポジトリに変更をコピーするには、プッシュ・コマンドを使用してください。

6.4.4.5 PerforceへのJDeveloperファイルのインポート

Perforceでは、ローカル・ディレクトリ構造を使用して、仮ソース・コントロールの下に配置されるファイルを受信します。この場所はPerforceクライアント・ワークスペースと呼ばれます。JDeveloperで作成(またはJDeveloperに移動)されたファイルは、この場所に格納する必要があります。ファイルがPerforceクライアント・ワークスペースに格納された後、Perforce保管庫と呼ばれる中心的な場所にファイルを発行し、ファイルを完全にソース・コントロール下に置きます。バージョン管理して他のユーザーからアクセスできるようにするには、Perforce保管庫にファイルを発行する必要があります。

Perforceとともに既存のJDeveloperプロジェクトおよびソース・ファイルの使用を開始する前に、これらをPerforceクライアント・ワークスペースにインポートする必要があります。これらがPerforceクライアント・ワークスペースに格納された後、Perforce保管庫にファイルを発行し、ファイルを完全にソース・コントロール下に置きます。

「Perforceへのインポート」ウィザードを使用して、JDeveloperプロジェクト・ファイルおよびソース・ファイルをPerforceクライアント・ワークスペースにインポートします。

「Perforceへのインポート」ウィザードを使用するには、次のようにします。

1. まだPerforceに接続していない場合は、「チーム」→「Perforceに接続」を選択して接続します。

2. 「アプリケーション」ウィンドウで、Perforceの管理下に置くJDeveloperプロジェクトを選択します。

3. 「チーム」→「プロジェクトのインポート」を選択します。「Perforceへのインポート」ウィザードが表示されます。

4. ウィザードの要求に従ってインポートを完了します。ウィザードの使用時に詳細を参照するには、[F1]を押してください。
「アプリケーション」ウィンドウにプロジェクトとファイルが表示されます。オーバーレイ・アイコンを表示することを選択した場合、これらのアイコンにファイルの現在のソース・コントロール・ステータスが示されます。

5. ファイルを完全にPerforceソース・コントロール下に置くには、これらをPerforce保管庫に発行します。

6.4.4.6 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.5 WebDAV接続の作成方法

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.4.5.1 WebDAVサーバーの要件

JDeveloperをWebDAVクライアントとして使用するには、WebDAVサーバーを実行する必要があります。WebDAVサーバーは、次のいずれかである必要があります。

- 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.4.5.2 WebDAV接続の作成

JDeveloperで作成したWebDAV接続を使用し、JDeveloperプロジェクトの一部としてファイルとフォルダを表示できます。

注意:

同じJDeveloperクライアント上で複数のWebDAV接続に同じURLを使用することはできません。

JDeveloperでWebDAV接続を作成する手順は、次のとおりです。

1. 「新規ギャラリ」で、「一般」→「接続」を選択し、「OK」をクリックします。

2. 「WebDAV接続」ダイアログを使用して接続を作成します。
このダイアログの使用方法の詳細は、[F1]を押してください。

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

プロキシ・サーバーを介してインターネットにアクセスする場合、インターネット上のWebDAV対応サーバーにアクセスする前に、JDeveloperを構成する必要があります。

プロキシ・サーバーを介してWebDAV対応サーバーにアクセスする手順は、次のとおりです。

1. プロキシ・サーバーがWebDAVに対応していることをネットワーク管理者に確認します。

2. JDeveloperで、「ツール」→「プリファレンス」の順に選択し、「プリファレンス」ダイアログ・ボックスの左ペインで「Webブラウザとプロキシ」をクリックして、「HTTPプロキシ・サーバーを使用」チェック・ボックスがチェックされていることを確認し、プロキシの詳細を入力します。

3. アクセスしようとするWebDAV対応サーバーがファイアウォール内にあり、アクセスの際にプロキシ・サーバーを経由する必要がない場合は、デフォルトのWebブラウザのプロキシ例外リストにWebDAVサーバー名を追加します。通常、これは他のプロキシ設定とともにブラウザのプリファレンス/設定ページで設定されます。

6.4.5.4 WebDAV接続の変更

WebDAV接続は、「アプリケーション」ウィンドウの「アプリケーション・リソース」セクションの「接続」ノードの下にリストされます。

既存のWebDAV接続を変更できます。

WebDAV接続を変更するには、次のようにします。

1. 変更するWebDAV接続を右クリックします。

2. 「プロパティ」を選択します。

3. 「WebDAV接続プロパティ」ダイアログで、WebDAV接続の詳細を変更します。
ダイアログの使用中にヘルプを参照するには、[F1]を押します。

4. 「OK」をクリックします。

6.4.5.5 WebDAV接続のリフレッシュ

WebDAV接続は、「アプリケーション」ウィンドウの「アプリケーション・リソース」セクションの「接続」ノードの下にリストされます。

フォルダおよびファイルにWebDAVサーバーの現在の内容が正確に反映されていることを確認するには、WebDAV接続の表示を手動でリフレッシュします。

注意:

WebDAV接続に対してリストされているすべてのフォルダおよびファイルがリフレッシュされます。フォルダおよびファイルのプロパティとその内容がリフレッシュされます。

WebDAV接続の内容全体をリフレッシュする手順は、次のとおりです。

1. リフレッシュするWebDAV接続を右クリックします。

2. 「リフレッシュ」を選択します。

6.4.5.6 WebDAV接続の削除方法

WebDAV接続は、「アプリケーション」ウィンドウの「アプリケーション・リソース」セクションの「接続」ノードの下にリストされます。

JDeveloperからWebDAV接続を削除しても、WebDAVサーバー自体のファイルやフォルダには影響しません。

WebDAV接続を削除する手順は、次のとおりです。

1. 削除するWebDAV接続を右クリックします。

2. 「削除」を選択します。

削除した接続は以降に再作成できます。その場合、接続の一部になっていたファイルとフォルダは再び接続の下に表示されます。

6.5 ソース・コントロールのファイルの操作

一般的なルールとして、チームが使用するバージョン・コントロール・システムでは、次のような基本的なワークフローに従って作業が行われます。

- リポジトリからファイルをチェックアウトします

- 変更します

- ファイルをチェックイン(またはコミット)してリポジトリに戻します

状況によって、コミットしようとしている同じファイルを他のチーム・メンバーが編集していたことがわかる場合もあります。この場合は、ファイルの競合を解決する必要があります。

また、多くのバージョン・コントロール・システムでは、他のユーザーがチェックアウトできないようにファイルをロックできます。これにより、解決を要するファイルの競合を防止できます。

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

一般的に、バージョン・コントロール・システムでは、変更を開始する前にファイルをリポジトリからチェックアウトする必要があります。この場合、ユーザーがファイルにアクセスしたことが記録され、多くの場合、そのユーザーがファイルを編集中に他のチーム・メンバーがアクセスしないように、チェックアウトされたファイルがロックされます。これにより、複数のチーム・メンバーが同じファイルに対して競合する編集を行う問題を回避できます。

6.5.1.1 Subversionリポジトリからのファイルのチェックアウト

プロジェクトのファイルで編集やリビジョンを開始するには、作業するファイルをチェックアウトします。このとき、Subversionリポジトリからアプリケーション全体をチェックアウトすることをお薦めします。これにより、ローカル作業領域でそのアプリケーションのすべてのファイルにアクセスできます。Subversionは条件モジュールを使用して、チェックアウトが推奨されるアプリケーションを参照します。

注意:

Subversionには「チェックイン」手順がないため、更新したファイルをチェックインしたり、次にそのファイルでの作業が必要になった場合に再度チェックアウトしないようにしてください。かわりに、ファイルのローカル・コピーで作業を完了した後、それをSubversionリポジトリにコミットしてファイルを最新の状態に保ちます。

Subversionのファイルをチェックアウトすると、Subversionリポジトリからローカル・マシンの新しい場所(ユーザーが指定します)にファイルがコピーされます。Subversionの「作業用コピー」はこの場所とこの場所内のファイルで構成されます。

Subversionリポジトリからモジュールをチェックアウトするには、次のようにします。

1. 「バージョン」ウィンドウで、チェックアウトするファイルを含むリポジトリ・ノードまたはフォルダを選択します。

2. 「チーム」→「Subversion」→「チェックアウト」を選択します。
Subversionリポジトリに現在接続されていない場合は、接続できるように「Subversion接続の作成」ダイアログが表示されます。

「Subversionからのチェックアウト」ダイアログが表示されます。ダイアログの使用時に詳細を参照するには、[F1]を押すか「ヘルプ」をクリックします。

3. ダイアログが表示したSubversion接続が正しい接続であることを確認します(複数のSubversion接続またはリポジトリがある場合)。

4. チェックアウトするアプリケーション・ファイルが含まれたSubversion接続のパスを参照します。

5. チェックアウトしたファイルをコピーするコピー先を作業領域に入力するか、「参照」をクリックして、ローカルの作業領域にナビゲートします。

6. チームで使用する場合は、オプションで特定のタグをチェックできます。

7. このSubversionモジュールに含まれるフォルダ内のファイルをチェックアウトする場合、必ず「深さ」を選択してください。
すべてを選択したら、「OK」をクリックします。

6.5.1.2 Gitでのファイルのチェックアウト

Gitリポジトリからファイルをチェックアウトすると、そのファイルを変更および編集できるようになります。チェックアウトするリビジョンを指定することもできます。

ファイルをチェックアウトするには:

1. 「チーム」→「Git」→「チェックアウト」を選択します。
Gitの「リビジョンのチェックアウト」ダイアログが表示されます。

2. ファイルをチェックアウトするブランチを入力します。使用可能なブランチのリストを参照するには、「ブランチ」ボタンをクリックします。

3. チェックアウトするタグ(オプション)を選択します。タグのリストを表示するには、「タグ」ボタンをクリックして、必要なタグを選択します。

4. チェックアウトのコミットID (オプション)を指定します。リポジトリで使用されているコミットIDのリストを表示するには、「コミットの選択」ボタンをクリックして、コミット・リビジョンのリストから選択します。

5. オプションで、チェックアウト用の新しいブランチを作成します。

6. すべてを選択したら、「OK」をクリックします。

選択したファイルがGitからチェックアウトされます。ファイルを編集できるようになりました。

6.5.1.3 CVSモジュールのチェックアウト

これは、JDeveloperでCVSのソース・コントロール下にあるファイルやフォルダを最初に使用する際に実行する構成タスクです。このタスクは、CVSリポジトリにJDeveloperプロジェクトをインポート(必要な場合)した後に1回実行します。

CVSリポジトリからモジュールをチェックアウトするには、次のようにします。

1. CVSナビゲータで、チェックアウトするCVSモジュールを選択します。
次のいずれかの操作を行います。

「チーム」→「CVS」→「モジュールのチェックアウト」を選択します。

または

ポップアップ・メニューから「モジュールのチェックアウト」を選択します。

「CVSからのチェックアウト」ダイアログが表示されます。

2. ダイアログを完了します。このダイアログ使用時のヘルプを表示するには、[F1]を押すか「ヘルプ」をクリックします。

6.5.1.4 Perforceでのファイルの編集

一部のバージョン・コントロール・システムとは異なり、Perforceでは明示的にファイルをチェックアウトする必要はありません。Perforceでファイルの編集を開始するには、「チーム」→「Perforce」→「編集のため開く」を選択します。「編集のためファイルを開く」ダイアログが開き、ファイルを変更リストに置く、ファイルをロックして他のチーム・メンバーが同時に編集できないようにするなどのオプションが表示されます。詳細

Perforceの管理下のファイルを「アプリケーション」ウィンドウから開くのみで編集を開始できます。Perforceサーバーに接続している場合、開かれたファイルに入力できるまでに遅延が生じる可能性があります。ファイルを編集するために手動で開くまではファイルを閉じたままにしておく場合は、「ファイルを編集のために自動的に開く」設定をオフに設定します。

6.5.2 Subversionでファイルを更新する方法

作業セッションを開始するたびにファイルを更新することにより、チーム・メンバーによるすべての変更を確実に追加およびチェックインできます。これにより、ファイルが最新バージョンであることを確認してから編集を開始することが可能になり、後で変更の調整のために費やした可能性がある時間を短縮できます。

6.5.2.1 Subversionリポジトリからのファイルの更新

Subversionリポジトリを設定した後は、多くの場合、ローカルの作業用コピーをリポジトリからのファイルで更新します。これにより、作業するファイルに、チームの他のメンバーが同じファイルにコミットした可能性があるすべての変更が含まれていることを確認できます。

作業用コピーに更新操作を実行することをお薦めします。

「作業用コピーの更新」を使用すると、JDeveloperの「アプリケーション」ウィンドウで使用しているアプリケーションでどのノードが有効であるかとは関係なく、チェックアウトした作業用コピー内のすべてのファイルが更新されます。もう1つの方法は「更新」の選択です。この場合、「アプリケーション」ウィンドウで選択したフォルダまたはファイル(および子フォルダおよび子ファイル)のみが更新されます。

作業用コピーを更新するには、次のようにします(推奨)。

1. 「アプリケーション」ウィンドウで、作業用コピーに含まれるナビゲータ・ノードまたはファイルを選択します。

2. 「チーム」→「作業用コピーの更新」を選択します。
「作業用コピーの更新」ダイアログが表示されて、作業用コピーのフォルダがリストされます。

3. 表示されているフォルダが、更新する作業用コピーの正しいフォルダであることを確認します。正しくない場合は、ダイアログを取り消して、手順1からやりなおします。

4. 必要に応じて「作業用コピーの更新」ダイアログのオプションを設定します。
オプションの詳細を参照するには、[F1]を押すか「ヘルプ」をクリックします。

5. Subversionリポジトリの作業用コピーを更新するには、「OK」をクリックします。

6.5.2.2 Subversionリポジトリの個々のファイルの更新

また、個々のファイルを更新することもできます。ただし、この方法では、前回のチェックアウト以降に他のチーム・メンバーによって変更された可能性のあるすべてのファイルを更新できないというリスクもあります。

個々のファイルを更新するには、次のようにします。

1. 「アプリケーション」ウィンドウで、更新するファイルを選択して「チーム」→「更新」を選択します。
「リソースの更新」ダイアログが表示されて、ファイルがリストされます。

2. 必要に応じて「リソースの更新」ダイアログのオプションを設定します。
オプションの詳細を参照するには、[F1]を押すか「ヘルプ」をクリックします。

3. Subversionリポジトリからリストされたファイルを更新するには、「OK」をクリックします。

6.5.2.3 Subversionコントロールからのファイルの削除

Subversionコントロールからファイルを削除する場合、JDeveloperの「削除」機能を使用します。この機能は、削除するファイルの使用方法を検索し、次に進むためのオプションが含まれたダイアログで、「安全に削除」を実行します。

Subversionの管理からファイルを削除するには、次のようにします。

1. 「アプリケーション」ウィンドウで、Subversionから削除するファイルを選択します。

2. 「編集」→「削除」を選択(またはファイルを右クリックして「削除」を選択)します。

3. 「安全に削除」が選択されていることを確認してください。

4. 「OK」をクリックします。
JDeveloperが削除しようとしているファイルの使用方法を検出すると、次に進むためのオプションが含まれたダイアログが表示されます。適切なオプションを選択し、「OK」をクリックします。

6.5.2.4 CVS内のファイルの使用

原則として、CVSでのファイル操作は、最新バージョンのファイルのチェックアウト、編集、変更済ファイルのチェックインを指します。また、自分と自分のチーム・メンバーが同じファイルを編集した場合、自分の作業が失われないために変更のマージが必要になる場合があります。またCVSの他の機能では、リポジトリからの新規ファイルの追加または未使用/廃止ファイルの削除などが可能です。しかし一般的なワークフローでは、チェックアウト、編集、チェックインのパターンに従います。

CVSでのファイル操作には、CSオブジェクトの表示のリフレッシュ、ファイルの追加および削除、テンプレートの使用、ファイルの比較、CVSでのファイルの置換、ファイルの履歴およびステータスの表示、ファイルのロックおよびロック解除、およびリビジョンおよびタグの使用が含まれます。

6.5.2.5 CVSオブジェクトの表示のリフレッシュ

オブジェクトのソース・コントロール・ステータスは、表6-2に示すように、「アプリケーション」ウィンドウにアイコン上の記号で示されます。

表6-2 CVSオブジェクトのステータス

アイコン

説明

オブジェクトはCVSリポジトリからコピーされ、作業ファイル・ディレクトリに追加されています。

オブジェクトはCVSソース・コントロール下にはありませんが、CVSリポジトリに追加できます。

オブジェクト(ファイル)がCVSリポジトリから更新されたときに競合が発生しました。この場合は、手動でファイルを編集し、競合する点をすべて解決する必要があります。

オブジェクトは、次のコミット処理でCVSリポジトリから削除されるようにスケジューリングされています。

ローカルまたはリモートの変更のため、オブジェクトはCVSリポジトリと同期化されていません。

オブジェクトは最後にCVSリポジトリからコピーされてから変更されていません。

オブジェクトは最後にCVSリポジトリからコピーされてから変更されていません。ただし、このオブジェクトは読取り専用です。

CVSサンドボックス・フォルダにパッケージまたはノードがあります。

表示上のオブジェクトは基礎となる複数のオブジェクトで構成されており、それらのステータスが同じでない可能性があります。

外部のソース・コントロール・ソフトウェアを使用したオブジェクトのチェックインなど、JDeveloper外部でオブジェクトのステータスが変更されると、新規のステータスがJDeveloperに即時に表示されない場合があります。「アプリケーション」ウィンドウに表示されるステータスをソース・コントロール・システム内のオブジェクトのステータスと確実に一致させるために、手動リフレッシュを実行できます。

JDeveloperでオブジェクトのステータスをリフレッシュするには、次のようにします。

- 「アプリケーション」ウィンドウまたはCVSナビゲータで、「リフレッシュ」ボタンをクリックします。

6.5.2.6 CVSでのファイルの追加と削除

CVSにファイルを追加できるのは、そのファイルが、すでにCVSでバージョン・コントロールされているプロジェクトの一部である場合のみです。

新規ファイル(新規クラスなど)を作成した場合、これを他のCVS操作で使用するにはソース・コントロールに追加する必要があります。ファイルはソース・コントロールにローカルに追加され、CVSリポジトリは更新されません。ファイルは「アプリケーション」ウィンドウでアイコン+によって識別されます。

設定を完了した後、作業は次の操作が中心になります。

- リポジトリからのファイルの更新

- 作業に必要なファイルのチェックアウト

- JDeveloperでの編集

- 変更したファイルのリポジトリへのコミット

また、自分の変更とチームの他のメンバーの変更の競合を解決することが必要になる場合もあります。また、プロジェクトの変更に伴って、CVSの管理下からファイルの出し入れが行われる場合もあります。さらに、不具合、お客様の要求および他の特性を追跡するために特定のバージョンに関連付けられたファイルの特別なプロパティを使用する場合もあります。

「アプリケーション」ウィンドウからCVSにファイルを追加するには:

1. 「アプリケーション」ウィンドウでファイルを選択し、「チーム」→「追加」(または、バイナリ・ファイルの場合は「チーム」→「バイナリとして追加」)を選択します。通常JDeveloperでは、バイナリ・ファイルが認識されて、「アプリケーション」ウィンドウのファイル名の後に(バイナリ)と表示されます。「CVSに追加」ダイアログ(または「CVSにバイナリとして追加」ダイアログ)が表示されて、ファイルがリストされます。

2. 「OK」をクリックします。
ファイルは、次にコミットが実行される際にCVSリポジトリに追加されます。

「保留中の変更」ウィンドウに表示するファイルを追加するには、次のようにします。

1. 候補ファイル・モードの「保留中の変更」ウィンドウで、ソース・コントロールに追加するファイルを選択します。
「保留中の変更」ウィンドウの詳細を参照するには、[F1]を押すか「ヘルプ」をクリックします。

2. 「追加」ボタンをクリックします。

CVSからファイルを削除するには、次のようにします。

CVSからファイルを削除すると、そのファイルはローカル・ディスクから削除されます。

1. 「アプリケーション」ウィンドウで、削除する1つ以上のファイルを選択して「チーム」→「削除」を選択します。

2. 「CVSから削除」ダイアログにファイルがリスト表示されます。

3. 「OK」をクリックします。

ファイルは、次にコミットが実行される際にCVSリポジトリから削除されます。

6.5.3 Gitでの新規ファイルおよび変更されたファイルの操作方法

Gitバージョン・コントロール・システムでは、新規ファイルをリポジトリに初期インポートするため、および編集を行った後に変更をチェックインするためという2つの理由からファイルをコミットします。

Gitでは、基本的なファイルのワークフローは次の3つの部分で構成されます。

1. リポジトリから選択したブランチおよびコンテンツを使用してローカル・ファイル・システムを最初に作成します。これは「チーム」→「Git」→「クローン」を使用して行います。

2. 新しいファイルをリポジトリに追加します。「チーム」→「Git」→「追加」を使用して1つずつ追加するか、「チーム」→「Git」→「すべて追加」を使用して複数のファイルを追加します。

3. ファイルを編集した場合は、「チーム」→「Git」→「コミット」を使用して1つずつコミットするか、「チーム」→「Git」→「すべてコミット」を使用して複数のファイルをコミットして、ファイルをGitリポジトリに戻します。

次の各項では、これらの操作を実行する方法を説明します。

6.5.3.1 Gitリポジトリへの単一のファイルの追加

Gitリポジトリに単一のファイルを追加するには、「Git」メニューから「追加」コマンドを使用します。

単一のファイルを追加するには:

1. 「チーム」→「Git」→「追加」を選択します。

2. 追加するファイルのパス名を参照します。

3. 「OK」をクリックします。

選択したGitリポジトリにファイルが追加されます。

6.5.3.2 Gitリポジトリへの複数のファイルの追加

Gitリポジトリに複数のファイルを追加するには、「Git」メニューから「すべて追加」コマンドを使用します。このコマンドはディレクトリ内のすべてのファイルを追加します。

複数のファイルを追加するには:

1. 「チーム」→「Git」→「すべて追加」を選択します。

2. 追加するファイルが置かれているディレクトリのパス名を参照します。

3. 「OK」をクリックします。

Gitリポジトリに選択したディレクトリ内のすべてのファイルが追加されます。

6.5.3.3 Gitリポジトリへの変更のコミット

ファイルに変更を追加した場合、その変更をGitリポジトリにコミットできます。

変更をコミットするには:

1. 「アプリケーション」ウィンドウで、コミットする変更を含むファイルを選択します。

2. 「チーム」→「Git」→「コミット」を選択します。「コミット」ダイアログが表示され、ローカル・ディレクトリ内のファイル名と場所が示されます。

3. 「コミット」ダイアログでは、オプションとしてステージングされていないファイルのコミットも選択できます。

4. 「コメント」フィールドに、コミットするファイルに追加した変更の簡単な説明を入力します。

5. チームがコメント・テンプレートを使用している場合は、「コメント・テンプレート」ドロップダウン・リストからコメント・テンプレートを選択します。また、「プリファレンス」→「Git」→「コメント・テンプレート」ダイアログを表示するリンクを選択することもできます。これにより、コメント・テンプレートを追加またはインポートできます。

6. 終了したら、「OK」をクリックします。

変更されたファイルがJDeveloperからGitリポジトリにコミットされます。

6.5.3.4 Gitリポジトリへの複数のファイルのコミット

複数のファイルに変更を追加した場合、その変更すべてをGitリポジトリに1回の操作でコミットできます。

変更された多くのファイルをコミットするには:

1. 「アプリケーション」ウィンドウで、コミットする変更を含むファイルを選択します。

2. 「チーム」→「Git」→「すべてコミット」を選択します。「コミット」ダイアログが表示され、ローカル・ディレクトリ内のファイルへのパス名が示されます。

3. 「コミット」ダイアログでは、オプションとしてステージングされていないファイルのコミットも選択できます。

4. 「コメント」フィールドに、コミットするファイルに追加した変更の簡単な説明を入力します。

5. チームがコメント・テンプレートを使用している場合は、「コメント・テンプレート」ドロップダウン・リストからコメント・テンプレートを選択します。また、「プリファレンス」→「Git」→「コメント・テンプレート」ダイアログを表示するリンクを選択することもできます。これにより、コメント・テンプレートを追加またはインポートできます。

6. 終了したら、「OK」をクリックします。

変更されたファイルがJDeveloperからGitリポジトリにコミットされます。

6.5.4 Perforceでのファイルの使用方法

Perforceでは、パッチを作成して適用する機能、つまりファイルの2つのリビジョンの間の変更を特定して、それらの変更を3つ目のファイルに適用する方法が提供されています。さらに、Perforceには、リポジトリ接続の詳細およびリポジトリ内のファイルをエクスポートするための管理機能も含まれています。

6.5.4.1 ローカル・ファイルとPerforce内の管理バージョンとの同期

ファイルは別のユーザーによってPerforceクライアントを介して編集され、その変更がPerforce保管庫に発行される場合があります。これにより、ファイルのコピーが管理バージョンよりも古くなります。

ビューに最新のファイル・ステータスが表示されているかどうかテストするには、次のようにします。

- 「表示」→「リフレッシュ」を選択します。
管理バージョンよりも古いファイルには感嘆符アイコンが表示されます。

ファイルを管理バージョンと同じように最新の状態にするには、次のようにします。

1. 「接続」ドロップダウン・リストで、この変更リストに適したPerforce接続(複数存在する場合)を選択します。

2. 「アプリケーション」ウィンドウでファイルを選択し、「チーム」→「同期」を選択します。
「ファイルの同期化」ダイアログが表示されて、ファイルがリストされます。

3. ダイアログを完了します。
ダイアログ・オプションの詳細は、[F1]を押してください。

4. ファイルを同期化するには「OK」をクリックします。
ローカル・ファイルは管理バージョンのコピーに置換されます。ファイルの横に表示されるアイコンは緑色の点に変化します。

6.5.4.2 Perforceナビゲータとのファイルの同期

Perforceナビゲータを使用すると、Perforce保管庫を参照し、保管庫にある内容から作業ディレクトリを更新できます。「アプリケーション」ウィンドウを使用すると、Perforceサーバーから内容をコンピュータにダウンロードして、クライアント・ワークスペースと同期化するフォルダまたはファイルを選択できます。保管庫で新規ファイルが検出された場合、これらを処理するオプションは複数あります。

接続ノードを開くときに接続が確立されていない場合、接続ダイアログが表示されます。

Perforceナビゲータを使用してファイルを同期化するには、次のようにします。

1. 「バージョン」ウィンドウで同期化するフォルダまたはファイル(あるいはその両方)を選択して、Perforceの下にある内容を開きます。作業対象のプロジェクトのレベルまで開く場合、ファイルまたはフォルダを右クリックし、「保管庫からの同期化」を選択します。この操作により、「保管庫からの同期化」ダイアログが開きます。

2. 選択したプロジェクトが「保管庫からの同期化」ダイアログの「名前」ペインに表示されます。その下には選択または指定可能なフィールドがあります。
ヘッド・リビジョン

プロジェクトのヘッド・リビジョンと同期化します。これを選択すると、「保管庫からの同期化」ダイアログに「同期の強制実行」チェック・ボックスが表示されます。保管庫の各内容とは関係なく保管庫の内容を作業ディレクトリにダウンロードする場合(保管庫の内容のクリーン・ダウンロードから開始する必要があることがわかっている場合など)、「同期の強制実行」を選択します。

リビジョン番号

特定のリビジョン番号と同期化する場合、これを選択します。「保管庫からの同期化」に「ターゲット」フィールドが表示されます。「ターゲット」フィールドを使用して、ローカル作業コピーの同期元であるリビジョン番号を入力します。

変更リスト

特定の変更リストと同期化する場合、これを選択します。「保管庫からの同期化」に「ターゲット」フィールドが表示されます。「ターゲット」フィールドを使用して、ローカル作業コピーの同期元である変更リストの名前を入力します。

ラベル名

特定のラベル(通常は特定のブランチを識別するために使用されます)を使用してファイルを開く場合、これを選択します。「保管庫からの同期化」に「ターゲット」フィールドが表示されます。「ターゲット」フィールドを使用して、ローカル作業コピーの同期元であるラベルの名前を入力します。

日付

ローカル・ファイルの同期元の日付(および必要に応じて時間)を指定する場合、これを選択します。「保管庫からの同期化」に「ターゲット」フィールドが表示されます。「ターゲット」フィールドを使用して、ローカル作業コピーの同期元である日付(yyyy/mm/ddまたはyyyy/mm/dd:hh:mm:ss形式)を入力します。

現在のプロジェクトに適用するフィールドを選択し、「OK」をクリックします。

3. ソース内に存在しないファイルが保管庫に含まれる場合、新規ファイルが検出されたことが通知され、次のオプションがリストされます。
アクティブ・プロジェクト内でファイルを開く

ファイルをコピーし、選択したプロジェクト内でこれらを開きます。

ファイルから新規プロジェクトを作成

検出されたファイルを使用して新規プロジェクトを作成します。

ファイルをエディタで開く

ファイルをエディタ・ウィンドウで開き、これらをレビューし、最適な解決策(保持、名前変更、破棄または変更)を決定できます。

ファイルを開かない

ファイルを保管庫から作業ディレクトリにコピーせず、ファイルを閉じたままにしておきます。

6.5.4.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.4.4 Perforceコントロール下にあるファイルのステータスのリフレッシュ

ファイルのソース・コントロール・ステータスは、次に示すように、JDeveloperナビゲータにアイコン上の記号で示されます。

表6-3 Perforceのステータス・アイコン

アイコン

意味

ファイルはPerforceクライアント・ワークスペース内にありますが、まだPerforce保管庫に発行されていません。

ファイルはPerforce保管庫に次回発行されたときに削除されます。

ファイルはPerforce保管庫よりも古くなっています。

ファイルはPerforce保管庫と同じように最新の状態です。

ファイルは編集可能な状態で開いています。

ファイルはロックされています。

Perforceクライアント・アプリケーションの使用など、JDeveloperの外部でファイルのステータスが変更されると、新規のステータスがJDeveloperに即時に表示されない場合があります。「アプリケーション」ウィンドウに表示されるステータスをソース・コントロール・システム内のファイルのステータスと確実に一致させるために、手動リフレッシュを実行できます。

JDeveloperでファイルのステータスをリフレッシュするには、次のようにします。

- 「表示」→「リフレッシュ」を選択します。

6.5.4.5 Perforceからのファイルの削除

Perforceの管理下にあるファイルを削除する場合は、JDeveloper内でPerforceの機能を使用するか、Perforceクライアント・アプリケーションを使用して削除します。

Perforceの管理下のファイルを削除するには、次のようにします。

1. 「アプリケーション」ウィンドウでファイルを選択し、「チーム」→「削除のため開く」を選択します。
「ファイルの削除」ダイアログが表示されて、ファイルがリストされます。

2. 「OK」をクリックします。
ファイルはローカル・ファイル・システムから削除されます。「アプリケーション」ウィンドウで、黒い斜線の十字がファイルのアイコンに追加されます。

削除されたファイルを取得する必要がある場合は、Perforceクライアントを使用する必要があります。これを行うには、「チーム」→「Perforce」→「Perforceクライアントの起動」の順に選択します。

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

ファイルが必要なくなった場合、ClearCaseからファイルを削除できます。ファイルは、ファイルが含まれるディレクトリの現在のバージョンから削除されます。

ClearCaseからファイルを削除するには、次のようにします。

1. 「アプリケーション」ウィンドウで選択した単一または複数のファイルで、「チーム」→「削除」を選択します。「ClearCaseから削除」ダイアログにファイルがリスト表示されます。

2. リストされているファイルをClearCaseからすべて削除するには、「OK」をクリックします。

ファイルはディレクトリの現在のバージョンから削除され、作業できなくなります。

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

ファイルに対して作業を行うには、ファイルをClearCaseからチェックアウトする必要があります。

ClearCaseプリファレンス・ページで「自動的にファイルをチェックアウト」プリファレンス(「ツール」→「プリファレンス」を選択して「ClearCase」を選択することによって使用可能)が設定されている場合、ファイルの変更を開始するとファイルは自動的にチェックアウトされます。このプリファレンスは、データファイル、ワークスペース・ファイルおよびプロジェクト・ファイルに適用されます。データファイルの場合、ソース・ビューで編集を開始するとファイルはチェックアウトされます。誤ってファイルをチェックアウトした場合は、すぐに「チーム」→「チェックアウトを元に戻す」を使用して元に戻します。

1つ以上のファイルを手動でチェックアウトするには、次のようにします。

1. 「アプリケーション」ウィンドウでファイルを選択し、「チーム」→「チェックアウト」を選択します。「ClearCaseからチェックアウト」ダイアログが表示され、選択した項目がリストされます。
自分よりも前に別のユーザーが同じファイルをチェックアウトしてからチェックインできないようにするには、「ユーザーにチェックアウトが予約済」ボックスを選択します。

2. このチェックアウトに関するコメントを「コメント」ボックスに入力します。

3. リストされているファイルをチェックアウトするには、「OK」をクリックします。

リスト内のファイルがClearCaseソース・コントロールからチェックアウトされ、これらに対して作業を実行できます。

チェックアウトされたファイルが「チェックアウト・ファイル」ウィンドウに表示されます。このウィンドウはファイルが初めてチェックアウトされるときに開きます。これを後で開くには、「チーム」→「チェックアウト・ファイルの表示」を選択します。

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

ファイルをチェックアウトしたがまだ何も変更していなかったり、実行した変更を破棄する場合、このファイルの最後のチェックアウトを元に戻すことができます。

警告:

チェックアウトされた後に変更されたファイルに対してこれを使用する場合、作業が失われる可能性があります。

1つ以上のファイルのチェックアウトを元に戻すには、次のようにします。

1. 「アプリケーション」ウィンドウでファイルを選択し、「チーム」→「チェックアウトを元に戻す」を選択します。「ClearCaseのチェックアウトを元に戻す」ダイアログが表示され、選択した項目がリストされます。

2. リストされているすべてのファイルのチェックアウトを元に戻し、これらのファイルに対して行った変更を破棄するには、「OK」をクリックします。

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

ClearCaseからチェックアウトしたすべてのファイルを表示できます。これにより、たとえば、別のアクションを実行する前にチェックインが必要なファイルを確認できます。

ClearCaseのチェックアウトをリストするには、次のようにします。

- 「チーム」→「チェックアウト・ファイルの表示」を選択します。「チェックアウト・ファイル」ビューアが表示されます。

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

この操作は、ClearCaseのソース・コントロール下にあるファイルのバージョンを比較する場合に使用します。ファイルは、その直前のバージョン、ファイルの以前のリビジョン、またはファイル・システム上の他のファイルと比較できます。

ファイルを直前のバージョンと比較するには、次のようにします。

- 「アプリケーション」ウィンドウでファイルを選択し、「チーム」→「前のバージョンと比較」を選択します。

差分がない場合は、メッセージが表示されます。そうでない場合は、比較ビューアが表示され、ここで差異を見つけて調整できます。

ファイルを別のリビジョンと比較するには、次のようにします。

- 「アプリケーション」ウィンドウでファイルを選択し、「バージョニング」→「比較」を選択します。前のファイル・リビジョン・オプションが選択されていることを確認します。

ファイルの前のバージョンが「ClearCaseファイルと比較」ダイアログに表示されます。現在のファイルと比較するバージョンを選択し、「OK」をクリックします。

差分がない場合は、メッセージが表示されます。そうでない場合は、比較ビューアが表示され、ここで差異を見つけて調整できます。

ファイルをClearCaseソース・コントロール外のファイルと比較するには、次のようにします。

- 「アプリケーション」ウィンドウでファイルを選択し、「ファイル」→「比較対象」→「その他のファイル」を選択します。

「比較対象のファイルを選択」ダイアログが開きます。

現在のファイルと比較するファイルを参照して選択し、「開く」をクリックします。

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

すべてのバージョン・コントロール・システムで編集前のファイルのロックが明示的に要求されるわけではありません。また、その機能が備わっていないバージョン・コントロール・システムもあります。ファイルを自動的にチェックアウトすることによってファイルをロックし、他のチーム・メンバーがそのファイルを編集できないようにするシステムもあります。また、チーム・メンバーが誰でもファイルをチェックアウト可能で、様々な変更を結果ファイルに簡単にマージできる点に重点を置くシステムもあります。

次の項では、それぞれのバージョン・コントロール・システムでファイルのロックおよびロック解除がどのように処理されるかを説明します。

6.5.10.1 Subversion内のファイルのロックおよびロック解除

「チーム」→「ロック」

6.5.10.2 CVS内のファイルのロックおよびロック解除

注意:

新しいリリースのCVSクライアント・ソフトウェアでは、ファイルのロックはサポートされません。この機能は、JDeveloperの将来のリリースでは削除される予定です。

自分が作業しているファイルに対する他のユーザーの作業を禁止するように選択できます。通常、CVSではCVSリポジトリへのコミット中に様々なバージョンのファイルを調整できるため、通常、この機能は必要とされません。JDeveloperの比較機能とマージ機能により、各種バージョンのファイルは自動的に調整されます。また、重大な競合が存在する場合に手動でファイルを調整するためのツールが用意されています。

作業を完了するまでは、他のユーザーが同じファイルで作業しないようにする必要がある場合があります。これは、ファイルがバイナリ形式であり、基本的にはマージしにくいためです。この場合、作業するファイルをロックできます。ファイルはCVSリポジトリ内でロックされ、他のユーザーはアクセスできなくなります。他のユーザーによる作業を許可する場合は、そのファイルのロックを解除します。

CVS内のファイルをロックするには、次のようにします。

1. 「アプリケーション」ウィンドウで、ロックする単一または複数のファイルを選択して、「チーム」→「CVS」→「管理」→「ロック」を選択します。

2. ファイル選択ボックスでハイライト表示されているすべてのファイルにこの操作を適用するかどうかを確認します。

3. 「OK」をクリックします。

CVS内のファイルのロックを解除するには、次のようにします。

1. 「アプリケーション」ウィンドウで、ロックする単一または複数のファイルを選択して、「チーム」→「CVS」→「管理」→「ロック解除」を選択します。

2. ファイル選択ボックスでハイライト表示されているすべてのファイルにこの操作を適用するかどうかを確認します。

3. 「OK」をクリックします。

6.5.10.3 Perforceでのファイルの編集

デフォルトで、Perforceの管理下のファイルを「アプリケーション」ウィンドウから開くのみで編集を開始できます。ファイルを明示的にロックする必要はありません。Perforceサーバーに接続している場合、開かれたファイルに入力できるまでに遅延が生じる可能性があります。ファイルを編集するために手動で開くまではファイルを閉じたままにしておく場合は、「ファイルを編集のために自動的に開く」設定をオフに設定します。次の手順は、この設定がどちらに設定されているかとは関係なく機能します。

Perforceの管理下のファイルを編集するには、次のようにします。

1. 「アプリケーション」ウィンドウでファイルを選択し、「チーム」→「編集のため開く」を選択します。
「編集のためファイルを開く」ダイアログが表示されて、ファイルがリストされます。

2. ファイルが管理バージョンよりも古く、管理バージョンを編集する必要がある場合、ファイルの同期化対象ボックスを選択します。
ファイルを編集する前に管理バージョンを取得しない場合、ファイルとPerforce保管庫内のバージョン間に競合が生じる可能性があります。この場合、変更を管理バージョンに受け入れる前に競合を解消する必要があります。

3. ファイルをロックする場合は、「ファイルのロック」ボックスを選択します。
ファイルをロックすると、他のユーザーはファイルを編集できますが、ロックを適用したユーザーがロックを解放するまではファイルを発行できなくなります。

4. Perforceの管理下でファイルを編集可能にするには、「OK」をクリックします。
ファイルが編集可能であることがPerforceに通知されます。「アプリケーション」ウィンドウで、赤いチェック・マークがファイルのアイコンに追加されます。

5. ファイルを編集するには、ファイルのポップアップ・メニューから「開く」を選択します。

6. 変更を行い、ファイルを保存します。
必要に応じてファイルを閉じることもできます。

これで、ファイルに対して行った変更がPerforceクライアント・ワークスペースに保存されます。ファイルの管理バージョンに変更を追加し、他のユーザーに対してこれらの変更を有効にするには、ここでこれらを発行する必要があります。

6.5.10.4 Team Systemのファイルのチェックアウト

ファイルをチェックアウトして作業できるようにするために使用します。ファイルがすでにTeam Systemソース・コントロール下に置かれている必要があります。

ファイルをチェックアウトするには、次のようにします。

1. アプリケーション・ナビゲータで、チェックアウトするアプリケーション、プロジェクトまたはファイルを選択します。

2. 「チーム」→「チェックアウト」を選択します。
「チェックアウト」ダイアログが開きます。

3. ダイアログを完了します。
ダイアログの使用中に詳細を参照するには、[F1]を押します。

6.5.10.5 Team Systemのファイルのステータスの表示

この操作は、Team Systemのソース・コントロール下にあるファイルのステータスを確認する場合に使用します。第6.5.10.6項「Team Systemのファイルのステータスのリフレッシュ」も参照してください。

ファイルのステータスを表示するには、次のようにします。

1. 「アプリケーション」ウィンドウでファイルを選択し、ポップアップ・メニューを開き、「チーム」→「プロパティ」を選択します。

2. 「バージョニング」タブを選択します。

表示されるステータス・ラベルは、ファイルのソース・コントロール・ステータスをTeam Systemで記述するために使用されるステータス・ラベルです。

メイン・ステータスには、次のものがあります。

- 編集済 - JDeveloperで、ファイルはチェックアウトされており、変更されている可能性があります。

- 変更なし - JDeveloperで、ファイルは現在チェックインされています。

- 追加をスケジュール済 - JDeveloperで、ファイルは追加されている(つまり、ソース・コントロール下にある)が、まだチェックインされていません。

6.5.10.6 Team Systemのファイルのステータスのリフレッシュ

ファイルのソース・コントロール・ステータスは、次に示すように、JDeveloperナビゲータにアイコン上の記号で示されます。

表6-4 Team Systemのファイル・ステータスのアイコン

アイコン

説明

オブジェクトはチェックインされており、変更するにはチェックアウトする必要があります。

オブジェクトはチェックアウトされており、変更できます。

オブジェクトはソース・コントロール下にはありません。

ファイルはソース・コントロール下にありますが、Team Systemサーバーにはチェックインされていません。

オブジェクトは、次回チェックインされるときにTeam Systemサーバーから削除されるようスケジュールされています。

JDeveloperでファイルのステータスをリフレッシュするには、次のようにします。

- 「表示」→「リフレッシュ」を選択します。

6.5.11 変更されたファイルのチェックイン方法

チェックインは、コミットと呼ばれることもあり、ローカル・ファイル・バージョンに対する変更をセントラル・リポジトリにアップロードするプロセスです。次の項では、JDeveloperとともに使用される様々なバージョン・コントロール・システムでの手順を概説します。

6.5.11.1 Subversionリポジトリへのファイルのコミット

作業用ファイルに編集およびリビジョンを行った後は、そのファイルをSubversionリポジトリに戻します。

これまで作業してきたファイルの最新バージョンでSubversionリポジトリを更新し、同時に新規ファイル追加および不要ファイルの削除をSubversionリポジトリに対して行うには、次の手順を行います。

個々のファイルまたは作業用コピーのコンテキストに対してコミット操作を行えます。

コミットしようとする個々のオブジェクトに、コミットされていない親オブジェクトがある場合は、親オブジェクトをまずコミットする必要があります。別の方法として、オブジェクトが所属している作業用コピーをコミットすることもできます。この場合は、コミットされていないすべてのオブジェクトがコミットされます。

また、変更セットを使用すると、アプリケーション全体内の特定のサブプロジェクトまたはタスクに関連するすべてのファイルを確実にコミットする上で役に立つ、ファイルのグループを管理することもできます。

「アプリケーション」ウィンドウまたは「保留中の変更」ウィンドウに表示されている個々のファイルをコミットするには:

- ファイルを選択し、「チーム」→「コミット」を選択します。
「リソースのコミット」ダイアログが表示されて、ファイルがリストされます。必要に応じて「リソースのコミット」ダイアログのオプションを設定します。

オプションの詳細を参照するには、[F1]を押すか「ヘルプ」をクリックします。リストに表示されたファイルをSubversionリポジトリにコミットするには、「OK」をクリックします。

「アプリケーション」ウィンドウから作業用コピーをコミットするには:

1. 作業用コピーに属するナビゲータ・ノードかファイルを選択します。

2. 「チーム」→「作業用コピーのコミット」を選択します。

オプションの詳細を参照するには、[F1]を押すか「ヘルプ」をクリックします。作業用コピーの内容で、Subversionリポジトリを更新するには、「OK」をクリックします。

「作業用コピーのコミット」を使用すると、JDeveloperの「アプリケーション」ウィンドウで使用しているアプリケーションでどのノードが有効であるかとは関係なく、チェックアウトした作業用コピー内のすべてのファイルがコミットされます。もう1つの方法は「コミット」の選択です。この場合、「アプリケーション」ウィンドウで選択したフォルダまたはファイル(および子フォルダおよび子ファイル)のみがコミットされます。

さらに、「保留中の変更」ウィンドウから、作業用コピーをコミットできます。

「保留中の変更」ウィンドウで作業用コピーをコミットするには、次のようにします。

1. 「保留中の変更」ウィンドウを送信変更モードにします。
「保留中の変更」ウィンドウの詳細を参照するには、[F1]を押すか「ヘルプ」をクリックします。

2. コミットする作業用コピーからファイルを選択します。

3. 「チーム」→「作業用コピーのコミット」を選択します。

6.5.11.1.1 Oracleチーム・プロダクティビティ・センター拡張機能を使用した作業アイテムIDの保存

Oracleチーム・プロダクティビティ・センターを使用する場合、作業アイテムIDはコミット時にコメント・ダイアログでタグとして自動的に保存されます。

6.5.11.2 Gitリポジトリへの変更のコミット

変更をGitリポジトリにコミットする方法には、コミットする個々のファイルを選択するか、一度にすべてのファイルをコミットするかという2つのオプションがあります。

個々のファイルをコミットするには:

1. コミットするファイルを選択します。

2. 「チーム」→「Git」→「コミット」を選択します。「ファイルの保存」ダイアログが開きます。「OK」をクリックして続行します。「コミット」ダイアログが開きます。

3. チームがコメント・テンプレートを使用している場合(たとえば、バグ追跡システムで問題の自動追跡を簡単にするためなど)、そのテンプレートを選択するか、またはコメントを追加します。そうでない場合は、「OK」をクリックしてファイルをリポジトリにコミットします。

プロジェクト内のすべてのファイルをコミットするには:

1. コミットするファイルを含むプロジェクトを選択します。

2. 「チーム」→「Git」→「すべてコミット」を選択します。「ファイルの保存」ダイアログが開きます。「OK」をクリックして続行します。「すべてコミット」ダイアログが開きます。

3. チームがコメント・テンプレートを使用している場合(たとえば、バグ追跡システムで問題の自動追跡を簡単にするためなど)、そのテンプレートを選択するか、またはコメントを追加します。そうでない場合は、「OK」をクリックしてファイルをリポジトリにコミットします。

6.5.11.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.5.11.4 変更したファイルのPerforce保管庫への発行

ファイルに対して行った変更は、最初にPerforceクライアント・ワークスペースに保存されます。ファイルの管理バージョンにこれらの変更を追加し、他のユーザーに対してこれらの変更を有効にするには、これらを発行する必要があります。次の手順で、「発行」メニュー・オプションが使用不可である場合は、ファイルのコピーとPerforce保管庫内のファイルの間に解消されていない競合が存在することがその理由です。処理を続行する前に、競合を解消するか、競合のないバージョンにファイルを戻す必要があります。

変更をPerforce保管庫に発行するには、次のようにします。

1. 「アプリケーション」ウィンドウで選択したファイルで、「チーム」→「発行」を選択します。
「ファイルの発行」ダイアログが表示されて、ファイルがリストされます。

2. バージョニングのコメントを「コメント」ボックスに追加します。

3. Perforce保管庫にファイルを発行するには、「OK」をクリックします。
「アプリケーション」ウィンドウに緑色の点とともにファイルが表示されるようになります。これは、ファイルがPerforce格納庫内のバージョンと同じように最新状態にあることを示しています。

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

ファイルに対する作業が終了したら、これをClearCaseにチェックインする必要があります。

ClearCaseにファイルをチェックインするには:

- 「アプリケーション」ウィンドウでファイルを選択し、「チーム」→「チェックイン」を選択します。

「ClearCaseにチェックイン」ダイアログが表示され、選択したファイルがリストされます。

ファイルがClearCase内の前のバージョンと同一であってもチェックインする場合は、「ファイルが同一であっても強制的にチェックイン」ボックスを選択します。このボックスを選択しない場合、ClearCaseでこのタイプのファイルが処理される方法に応じてファイルがチェックアウトされているままである可能性があります。ファイルがチェックアウトされたままである場合、「チェックアウトを元に戻す」コマンドを使用して、前のチェックインされた状態にファイルを戻すことができます。

このチェックインに関するコメントを「コメント」ボックスに入力します。または、チェックアウト時に使用したものと同じコメントをチェックインに使用する場合は、「チェックアウトのコメントを使用」ボックスを選択します。

リストされているファイルをチェックインするには、「OK」をクリックします。リスト内のファイルがClearCaseソース・コントロールにチェックインされます。

「チェックアウト・ファイル」ウィンドウに表示されるファイルをチェックインするには、次のようにします。

1. 「チェックアウト・ファイル」ウィンドウでチェックインするファイルを選択します。「チェックアウト・ファイル」ウィンドウについて詳細を参照するには、[F1]を押してください。

2. ビューアのボタン・バーで、「チェックイン」ボタンをクリックします。

6.5.11.6 Team Systemへのファイルのチェックイン方法

ファイルをTeam Systemサーバーにチェックインするために使用します。チェックインしたファイルのバージョンは、他のユーザーが表示および操作できます。

ファイルをチェックインするには、次のようにします。

1. 「アプリケーション」ウィンドウで、チェックインするファイルを選択します。

2. 「チーム」→「チェックイン」を選択します。
「チェックイン」ダイアログが開きます。

3. ダイアログを完了します。
ダイアログの使用中に詳細を参照するには、[F1]を押します。

6.5.12 変更セットと変更リストの使用方法

一部のバージョン・コントロール・システム(特にSubversionおよびPerforce)では、変更セットまたは変更リストの概念を使用して、単一の論理グループの一部を構成するファイルをグループ化します。たとえば、JavaScript関数を呼び出すHTMLフレームワーク、関数そのものを含むJavaScriptファイル、最終アプリケーションでユーザーがクリックする前後およびクリックしたときのボタンの様々な状態を示すイメージ・ファイルのセットなど、数多くの独自のファイルを含むアプリケーションに新しい機能を追加する場合を想定します。これらのファイルを追跡し、すべてのファイルをリポジトリに確実にコミットする(またはすべてのファイルをチームのトラッキング・ソフトウェアやビルド・ソフトウェアで確実に参照する)方法として、これらすべてのファイルを単一の変更セットとしてグループ化する場合があります。

次の項では、変更セットまたは変更リストを、これらがサポートされているバージョン・コントロール・システムで使用する方法について説明します。

6.5.12.1 Subversionでの変更セットの使用

変更セット(または変更リスト)は、各変更リストに対するグループ操作を有効化するために作業用コピー・ファイルに適用可能な重要ラベルです。変更セットへのファイル追加の背景にある概念は、ディレクトリへのファイルのソートと似ていますが、変更リストは動的に作成可能であり、ラベルは各ファイルに適用され、これらはファイル・システム階層内のレベルとは関係ありません。これにより、変更セット内のすべてのファイルを単一グループとして処理できます。たとえば、3つの異なるファイルの編集が必要な単一バグ修正を行う場合、3つのファイルをすべて変更セットに追加し、JDeveloperの「保留中の変更」ウィンドウでこれらを単一論理ユニットとして追跡できます。

Subversionを使用すると、ファイルを名前付き変更セットに手動で、または自動的に関連付けることができます。変更セットへの追加はメニュー・システムを介して行います。JDeveloperによって送信中の変更が検出された場合、デフォルトのアソシエーションを介して自動追加を行うことも可能です。

名前付き変更セットの変更は「保留中の変更」ウィンドウのビューで参照できます。ここから、変更セットを操作し、関連する変更をリポジトリをコミットできます。

選択したファイルを新規変更セットに追加するには、次のようにします。

- ファイルを「保留中の変更」ウィンドウから選択し、「チーム」→「追加先」→「新規変更セット」を選択します。

ファイルを変更セットに追加するには、次のようにします。

1. 「保留中の変更」ウィンドウで、既存の変更セットに追加するファイルを選択し、右クリックします。

2. 「追加先」を選択し、既存の変更セットを選択します。

3. ダイアログに表示されている既存の変更セットの1つを選択するか、「新規変更セット」を選択し、このファイルが含まれる新規変更セットを作成します。

4. 「OK」をクリックします。

6.5.12.1.1 変更セットの編集

JDeveloperでは、インストールしたバージョン・コントロール・システムごとにデフォルトの名前なし変更セットが作成され、別の変更セットをデフォルトとして指定するまではこの変更セットが使用されます。このデフォルトの変更セットを含む個別変更セットの内容およびステータスを変更するには、任意の変更セットを右クリックし、次のいずれかを選択します。

編集

選択した変更セットの内容を変更します。

削除

選択した変更セットを保留中の変更から削除します。変更セットに関連するファイルは削除しません。

デフォルトに設定

選択した変更セットを将来の操作用のデフォルトとして設定します。新しく作成および編集されたすべてのファイルが、デフォルトを変更するかファイルを別の変更セットに手動で追加するまでは、この変更セットの一部になります。

6.5.12.2 Perforce変更リストの作成

Perforceでは、変更リストを使用すると、ファイルをまとめて操作を簡略化できます。ファイルを変更リストにまとめた後、1回の操作でこれらをチェックアウトしてすべて発行できるようになります。

Perforceでは、変更は変更リストを使用してPerforceリポジトリに発行されます。これにより、複数のファイルに対する変更を1つの論理ユニットにまとめて、1回の操作でこのユニットをPerforceリポジトリに発行できます。

変更リストは複数使用できます。自分や自分のチームの作業方法に応じて、特定のプロジェクト、関連するファイルのグループ、または他の任意のファイルのグループに関する変更リストを作成してから、1つの論理ユニットを作成する方が便利な場合があります。また、ファイルを変更リスト間で移動することもできます。

通常、変更リストを使用する場合、変更リストの作成、変更リストへのファイルの追加、ファイルの編集、編集したファイルと変更リストの発行というワークフローに従います。

また、変更リスト・ブラウザを介して既存の変更リストを参照することもできます。変更リスト・ブラウザを使用すると、変更リスト間でファイルを作成、発行および移動することもできます。変更リスト内の任意のファイルで発行操作が失敗した場合、その変更リスト全体が失敗します。つまり、Perforceリポジトリの整合性は維持されます。

Perforce変更リストを使用すると、変更された複数のファイルおよびフォルダを1回の手順で操作できるため、作業対象のファイルが複数存在する場合、プロセスが簡略化されます。

Perforce変更リストを作成するには、次のようにします。

1. 「バージョニング」メニューから「Perforce」→「変更リストの作成」を選択します。

2. 「接続」ドロップダウン・リストで、この変更リストに適したPerforce接続(複数存在する場合)を選択します。

3. 変更リストに追加するファイルを選択し、「すべて選択」を選択し、表示されているすべてのファイルをこの変更リストに追加します。

4. 必要に応じて、この変更リストにコメントを追加します。前のコメントを選択(および必要に応じて編集用のオプションを使用)することも、コメント・テンプレートを選択することもできます。

5. 目的に応じて変更リストを設定したら、「OK」をクリックします。

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

Perforceリビジョンまたは変更リストに注釈を付けると、リビジョン内のすべてのファイルにリンクされたコメントとしてPerforceリビジョンまたは変更リストを格納できます。Perforceでこれらのファイルを後で変更する場合、これらのファイルのリビジョンまたは変更リストの順序をファイルの注釈として表示できます。

変更リストに注釈を追加するには、次のようにします。

1. 「バージョニング」メニューから「チーム」→「Perforce」→「Perforce保留中変更リスト」を選択します。

2. 「変更リストの使用」セレクタをクリックして、表示する変更リストを選択します。

変更リストの「コメント」フィールドに前の注釈が表示されます。

6.5.12.4 Perforce変更リストへのファイルの追加

Perforce変更リストを使用すると、変更された複数のファイルおよびフォルダを1回の手順で操作できるため、作業対象のファイルが複数存在する場合、プロセスが簡略化されます。ファイルをPerforceに追加する場合、「追加のため開く」メニューを使用して、これらのファイルを追加する変更リストを同時に選択できます。

変更リストにファイルを追加するには、次のようにします。

1. 「バージョニング」メニューから「Perforce」→「追加のため開く」を選択します。

2. 「変更リストの使用」セレクタをクリックして、使用する変更リストを選択します。

6.5.12.5 Perforce変更リストの発行

ファイルに対する一連の編集を行ったら、これらをPerforceで発行できます。変更リストを作成した場合、この変更リスト上のすべてのファイルを1回の操作で発行することも、編集したファイルのみを選択して発行することもできます。

変更リスト内のファイルを選択して発行するには、次のようにします。

1. 「バージョニング」メニューから「Perforce」→「変更リストの発行」を選択します。

2. 実行した変更の説明を「説明」フィールドに入力します。

3. 発行するファイルを確認します。必要に応じて、「すべて選択」および「すべて選択解除」ボタンを使用します。

6.5.12.6 Perforce変更リスト・ブラウザの使用

変更リスト・ブラウザを使用すると、Perforceリポジトリ内で保留中のすべての変更リストの状態を一目で参照できます。保留中の変更リストごとに名前、説明および内容が表示されます。デフォルトの変更リストは常にブラウザの上部に表示されます。各変更リストの下で、その変更リストに関連付けられたファイルを参照できます。また、ブラウザの上部にはPerforce接続およびクライアントも表示されます。

保留中変更リスト・ブラウザで、変更リストの作成および発行、変更リスト間のファイルの移動、およびブラウザのリフレッシュを行うことができます。

変更リスト・ブラウザを使用して変更リストを作成するには、次のようにします。

1. 「バージョニング」メニューから「Perforce」→「変更リストの作成」を選択します。

2. 「接続」ドロップダウン・リストで、この変更リストに適したPerforce接続(複数存在する場合)を選択します。

3. 変更リストに追加するファイルを選択し、「すべて選択」を選択し、表示されているすべてのファイルをこの変更リストに追加します。

4. 必要に応じて、この変更リストにコメントを追加します。前のコメントを選択(および必要に応じて編集用のオプションを使用)することも、コメント・テンプレートを選択することもできます。

5. 目的に応じて変更リストを設定したら、「OK」をクリックします。

変更リストを発行するには、次のようにします。

1. 「バージョニング」メニューから「Perforce」→「変更リストの発行」を選択します。

2. 実行した変更の説明を「説明」フィールドに入力します。

3. 発行するファイルを確認します。必要に応じて、「すべて選択」および「すべて選択解除」ボタンを使用します。

変更リスト間でファイルを移動するには、次のようにします。

1. 変更リスト・ブラウザでファイルを右クリックし、「変更リストへのファイルの移動」を選択します。

2. このファイルの移動先の変更リストを選択し、「OK」をクリックします。

[F1]を押して変更リスト・ブラウザをリフレッシュすることもできます。

6.5.13 チェックイン用のコメント・テンプレートの使用方法

Subversion、CVS、GitおよびPerforceではすべて、ファイルのチェックイン時またはコミット時に使用できるようにコメント・テンプレートを構成できます。コメント・テンプレートのポピュラーな使用方法の1つに、バグ・トラッキング・システムで読み取れるようにコメント・テキストを構造化して、ファイルのチェックインと追跡中の問題を関連付けるというものがあります。たとえば、コメントを文字列bugtraqで開始して問題番号を続けると、コメントを自動的に分析して、報告対象のファイルおよびバグのレポートを生成できるようになります。

コメント・テンプレートを使用できるバージョン・コントロール・システムは、Subversion、CVS、GitおよびPerforceの4つです。次の説明は、これらのシステムすべてに共通しています。

6.5.13.1 テンプレートの作成

多くのチーム環境では、開発者がファイルのチェックイン時にコメントを入力できます。これらのコメントには、バグ・レポート番号、他のファイルへの依存性、リポジトリにコミットされるファイルに関連して格納する他の説明情報などがあります。

特に、一部のチームでは、チェックインしたファイルとそのファイルが対応するバグを関連付ける必要があります。その1つが、問題の追跡用に標準的なテンプレートを設定する方法です。たとえば、bugtraq <bug number>と設定して、<bug number>をこのファイルが対応する問題の実際のIDに置き換えて、ファイルのチェックインのコメントとして使用します。これにより、編集と追跡中の問題の関連付けにファイルのチェックインのコメントを使用できるようになります。

JDeveloperでは、このようなコメントに使用するテンプレートを作成して選択できます。テンプレートは、リポジトリに変更をコミットするプロセスをバージョン・コントロール・システムが参照する方法によって、「コミット」メニューまたは「チェックイン」メニューから入手できます。

新規テンプレートを作成する手順は、次のとおりです。

1. 「ツール」→「プリファレンス」→「バージョニング」→「Subversion」→「コメント・テンプレート」を選択します。

2. 「追加」をクリックします。「テンプレートの追加」ダイアログが表示されます。

3. 使用目的に応じてコメント・テンプレートに入力し、「OK」をクリックします。

作成したテンプレートが、ファイルのコミット時またはチェックイン時に選択できるようになります。

6.5.13.2 テンプレートの共有

JDeveloperではテンプレートをテキスト・ファイルとしてインポートおよびエクスポートできるため、テンプレートのセットをチームで共有できます。これにより、使用するトラッキング・システムで予期されるコミットのコメントの正確なフォーマットを簡単に使用できるようになるとともに、テンプレートをフォーマットする際のエラーを回避できます。

テンプレートをインポートするには:

1. 「コメント・テンプレート」ページから、「インポート」をクリックします。ファイル・ブラウザが開きます。

2. インポートするテンプレート・ファイルが含まれるディレクトリに移動し、ファイルをクリックして選択します。

3. 「開く」をクリックします。

テンプレート・ファイルがJDeveloperにインポートされます。

テンプレートをファイルとしてエクスポートして、ユーザー自身またはチーム・メンバー(ファイルを共有リソースで入手可能にしている場合)が後でインポートすることもできます。

テンプレートをエクスポートするには:

1. 選択したバージョン・コントロール・システムの「コメント・テンプレート」ページから、「エクスポート」をクリックします。ファイル・ブラウザが開きます。

2. テンプレート・ファイルを保存するディレクトリに移動します。デフォルトでテンプレートのファイル形式はXMLです。

3. テンプレート・ファイルに名前を指定して(たとえば、my_bugtraq.xml)、「保存」をクリックします。

テンプレート・ファイルがJDeveloperにインポートできるようになりました。

チームが複数のバージョン・コントロール・システムを使用している場合、「エクスポート」および「インポート」を使用して同じテンプレートをシステム間で共有できます。

6.5.13.3 チェックイン時のテンプレートの選択と使用

多くのチーム環境では、開発者がファイルのチェックイン時にコメントを入力する必要があります。これらのコメントには、バグ・レポート番号、他のファイルへの依存性、リポジトリにコミットされるファイルに関連して格納する他の説明情報などがあります。

JDeveloperでは、このようなコメントに使用するテンプレートを作成して選択できます。テンプレートは、「コミット」メニューから使用できます。

テンプレートを選択する手順は、次のとおりです。

1. 選択したバージョニング・システムの「コミット」メニューから「テンプレートまたは前のコメントの選択」をクリックします。

2. リストからテンプレートを選択します。

3. テンプレートで特定のデータ(たとえば、バグや拡張の追跡番号など)の入力が必要な場合、「コメント」フィールドで編集します。

4. 「OK」をクリックします。

選択したテンプレート(編集した場合はそれが追加されたもの)を使用してファイルがコミットされます。

6.5.13.4 Team Systemファイルのシェルブとアンシェルブ

シェルブを使用すると、ファイルをチェックインする必要なくTeam Systemサーバーにファイルの変更を保存できます。シェルブ・プロセスの一環として、変更されたファイルでの作業を続行するか、これらをビューから削除して変更前のバージョンに戻すかを選択できます。

シェルブされたファイルの変更を後で使用する場合は、変更をアンシェルブできます。

シェルブされた変更を保持する必要がなくなった場合、変更を格納したシェルブセットを削除できます。

チェックインされていないファイルの変更セットをシェルブするには、次のようにします。

チェックインされていないファイルの変更セットをシェルブするには、次のようにします。

1. 「アプリケーション」ウィンドウで、ファイルが含まれるバージョニング済プロジェクトを選択します。

2. 「チーム」→「シェルブ」を選択します。
「シェルブ」ダイアログが開きます。

3. ダイアログを完了します。

ダイアログの完了中に詳細を参照するには、[F1]をクリックします。

「OK」をクリックすると、ファイルの変更がシェルブされます。

「アプリケーション」ウィンドウのファイル・アイコンが変更されて新規ファイル・ステータス(存在する場合)が反映されます。

ファイルの変更セットをアンシェルブするには、次のようにします。

1. 「アプリケーション」ウィンドウで、ファイルの変更のアンシェルブ先のバージョニング済プロジェクトを選択します。

2. 「チーム」→「アンシェルブ」を選択します。
「アンシェルブ」ダイアログが開きます。

3. ファイルの変更が含まれるシェルブセットのシェルブセット名を選択します。

「OK」をクリックすると、ファイルの変更がアンシェルブされます。

シェルブセットが作成された後に削除されたファイルが回復され、「アプリケーション」ウィンドウのファイル・アイコンが変更されて新規ファイル・ステータスが反映されます。

シェルブセットを削除するには、次のようにします。

1. 「チーム」→「シェルブセットの削除」を選択します。
「シェルブセットの削除」ダイアログ・ボックスが開きます。

2. 削除するシェルブセットの名前を選択します。

「OK」をクリックすると、シェルブセットが削除されます。

6.5.13.5 Team Systemファイルの削除

ファイルをワークスペースおよびTeam Systemサーバーから削除するために使用します。

ファイルを削除するには、次のようにします。

1. 「アプリケーション」ウィンドウでファイルを選択し、「チーム」→「削除」を選択します。
「削除」ダイアログが表示されて、ファイルがリストされます。

2. 「OK」をクリックします。
「保留中の変更」ウィンドウ(「チーム」→「保留中の変更」)の「送信」タブで、ファイルが削除可能であることが示されます。黒い斜線の十字がファイルのアイコンに追加されます。

3. ファイルの削除を完了するには、「保留中の変更」ウィンドウでファイルを選択し、「チーム」→「チェックイン」を選択します。
「チェックイン」ダイアログが開きます。

4. コメントがある場合は追加して、「OK」をクリックします。

ファイルはワークスペースおよびTeam Systemサーバーから削除されます。

6.6 ブランチおよびタグの操作

JDeveloperとともに使用されるバージョン・コントロール・システムの多くで(特に、Subversion、GitおよびCVS)、開発プロジェクトまたはストリームを追跡するためにブランチが使用されています。ブランチは、(よくあるケースとして)チームがパッチ・リリース、メジャー・アップデート、新規プロジェクトのように複数のリリースで同時に作業している場合に、開発を分離する上で役立つ手段です。バージョン・コントロール・システムでこれらのプロジェクトをそれぞれ別個のブランチとして追跡することにより、正しい機能セット、バグ修正およびその他の変更を使用して各プロジェクトを容易に追跡、変更および更新できるようになるほか、チームの全メンバーが同じブランチの同じ問題を追跡していることを確認できます。

一方、タグは、特定の時点での開発ステータスを反映したファイルの集合体を追跡する手段です。ブランチが特定のリリース、本番またはバージョンに向けた開発のストリームを表すのに対し、タグは特定のリリース内の複数のファイルに影響する可能性がある特定のバグ修正など、ブランチ内の要素の追跡に役立ちます。

6.6.1 ブランチの作成方法

ブランチの作成方法は、システムごとに若干異なります。次の項では、ブランチおよびタグを使用する様々なバージョニング・システムで、ブランチおよびタグを操作する方法を説明します。

6.6.1.1 Subversionでのブランチおよびタグの操作

開発(「トランク」)のメイン・ラインの独立したファイルに対する作業を行う場合、ブランチを作成できます。同じ機能を使用して、タグ、特定の時点での開発ステータスを反映したファイルの集合体も作成できます。

ブランチで行ってきた作業を開発のメイン・ラインに戻す場合は、リビジョンのマージ機能を使用して、処理を開始できます。この機能では、2つのリビジョンの内容を比較し、現在の作業用コピーへ差異を適用します。1つのリビジョンの変更を別のリビジョンにコピーする場合も、この機能を使用できます。

作業用コピーを別のブランチに基づいて変更する場合、スイッチ機能を使用できます。スイッチ機能は、ブランチ作成の一部として使用することも、独立して使用することもできます。

ブランチまたはタグを作成するには、次のようにします。

1. 続行する前に、ファイルをSubversionにコミットしたことを確認してください。

2. 「アプリケーション」ウィンドウで、ブランチまたはタグを使用する開発ラインに含まれるプロジェクトまたはファイルを選択します。

3. 「チーム」→「ブランチ/タグ」を選択します。

4. 「ブランチ/タグ」ダイアログの作業を完了します。
ダイアログ完了時のヘルプを表示するには、[F1]を押すか「ヘルプ」をクリックします。

マージ機能を使用する(つまり、2つのリビジョンを比較して、作業用コピーに結果を適用する)には、次のようにします。

1. 「アプリケーション」ウィンドウで、開始リビジョン(つまり、比較対象にするリソース)にあるプロジェクトまたはファイルを選択します。

2. 「チーム」→「マージ」を選択します。

3. 「マージ」ダイアログの作業を完了します。
ダイアログ完了時のヘルプを表示するには、[F1]を押すか「ヘルプ」をクリックします。

リポジトリ内の別の場所に基づくものに作業用コピーを変更するには、次のようにします。

1. 「アプリケーション」ウィンドウで、現在の作業用コピーにあるプロジェクトまたはファイルを選択します。

2. 「チーム」→「Subversion」→「切替え」を選択します。

3. 「切替え」ダイアログの作業を完了します。
ダイアログ完了時のヘルプを表示するには、[F1]を押すか「ヘルプ」をクリックします。

6.6.1.2 Gitでの新しいブランチの作成

Gitリポジトリの名前付きのブランチを新規作成し、「ブランチの作成」ダイアログから作成した場合はオプションとしてタグを適用できます。

Gitで新規ブランチを作成するには:

1. 「チーム」→「Git」→「ブランチの作成」を選択します。

2. たとえば作業中のリリースのバージョン番号や現在のアップデートのコード名など、ブランチまたはタグの名前を入力します。

3. 使用しているブランチを、作成するブランチのソースとして入力します。使用可能なブランチから選択する場合は、「ブランチの選択」をクリックします。「ブランチ」フィールドにブランチ名が表示され、「タグ」フィールドがグレー表示になります。

4. 新規ブランチにタグを指定する場合は、「タグの選択」をクリックして、「タグの選択」ダイアログに表示される使用可能なタグのいずれかを選択します。

5. オプションで、作成するブランチのソースに特定のコミットIDを使用します。コミットIDは、手動で入力(または、コミットIDは40桁の16進数であるため、より可能性が高いのはコピーおよび貼付け)することも、「コミットの選択」をクリックして使用可能なIDからいずれかを選択することもできます。

6. 終了したら、「OK」をクリックします。

Gitで使用する名前付きのブランチが作成され、選択した場合はタグと関連付けられます。

6.6.1.3 CVSでの新しいブランチの作成

メジャー・リリースの後の不具合修正や一部のお客様用の特殊機能に関する作業をする場合など、コード・リポジトリの以前のバージョンに基づいてプロジェクトを始めようとする場合は、新しいブランチを作成します。

新規ブランチを作成するには、次のようにします。

1. CVSリポジトリで、新規ブランチのベースにするファイルまたはフォルダを選択して、マウスの右ボタンをクリックします。

2. 「ブランチ」→「CVSのブランチ」の順に選択します。

3. ブランチ名を入力します。JDeveloperでは、入力したブランチ名の最後に_BASEが付加されて、ブランチ名がブランチ用のデフォルト・タグに変換されます。

4. ブランチ・ソースがトランクか作業用コピーかを選択します。トランクを選択すると、すべてのファイルのHEADリビジョンがブランチされます。

5. 「保存」をクリックします。

ブランチが作成される前にベース・タグが適用されるので、将来のマージ・ポイントとしてこれらのバージョンを指定できるようになります。

ベースとして使用するブランチを選択して、既存のブランチから新しいブランチを作成するように指定することもできます。

既存のブランチから新規ブランチを作成するには、次のようにします。

1. 「詳細」をクリックします。

2. 既存のブランチのリストから、目的のブランチを選択します。

6.6.2 ブランチの使用方法

ブランチを作成したら、JDeveloperにはそのブランチを使用してバージョン・コントロールの対象になっているプロジェクトを管理および追跡する方法が数多くあります。通常、そのブランチが関連するプロジェクトの最初にブランチをチェックアウトして、編集またはレビューを行う個々のファイルは後でチェックアウトできます。また、ブランチの削除(たとえば、プロジェクトがアーカイブされたとき)やブランチのマージが必要になる場合もあります。これらの操作について説明します。

6.6.2.1 Gitでのブランチのチェックアウト

Gitでブランチをチェックアウトすると、そのブランチ上のファイルにアクセスできるようになります。

Gitでブランチをチェックアウトするには:

1. 「チーム」→「Git」→「チェックアウト」を選択します。

2. 「名前と場所」フィールドに使用可能なリポジトリがリストされ、チェックアウトするブランチを選択できます。使用するリポジトリを選択します。

3. 「ブランチの選択」をクリックして、「ブランチの選択」ダイアログに使用可能なブランチを表示します。必要に応じてフォルダを開いて、必要なブランチを特定します。必要なブランチを選択して、「OK」をクリックします。

4. 特定のタグに関連付けられたコンテンツをチェックアウトする場合は、「タグの選択」をクリックして、「タグの選択」ダイアログから必要なタグを選択します。終了したら、「OK」をクリックします。

5. 既存のコミットからコンテンツをチェックアウトする場合は、「コミットの選択」をクリックして、「コミット・リビジョンの選択」ダイアログから必要なコミットを選択します。ここには使用可能なコミット(40桁の16進数IDも含む)がすべてリストされるほか、コミットの日付と時間、コミットしたチーム・メンバーのID、およびコミット時にノートが追加されていた場合はメッセージ・フィールドも表示されます。コミットを選択したら、「OK」をクリックします。

6. チェックアウトしたブランチに名前を付けてこのブランチに関連付け、「OK」をクリックします。

JDeveloperにチェックアウトしたブランチ、および選択したブランチに関連付けられたプロジェクトやファイルが表示されます。これらのファイルには「アプリケーション」ウィンドウからアクセスできます。

6.6.2.2 Gitでのブランチのマージ

ブランチの変更をHEADにマージした場合でも、引き続き変更のコミットは行う必要があります。変更は、メイン・リポジトリにプッシュされた後にメイン・リポジトリで使用可能になります。

6.6.2.3 CVSでのブランチの使用

CVSでは、プロジェクトのメイン(またはトランク)・ブランチとは別に実行する必要がある開発作業に使用するブランチを定義できます。JDeveloperでは、「タグ、ブランチおよびマージ」メニューから自分のリポジトリ内のCVSブランチにアクセスできます。

CVSでは、特定の作業(不具合修正や特殊な機能の開発など)を行いたい場合、ファイルのメイン・セットには影響を与えずに、別々のブランチを作成できます。このブランチは、トランクとも呼ばれます。

一度ブランチを作成した後は、通常はCVSとやり取りして、ファイルのチェックアウト、変更のコミットなどを行います。ブランチを切り替えて、ブランチに対する変更をマージしてトランクに戻すことができます。

CVSは特定のブランチまたはブランチ内の特定のファイルにタグを適用(タグを作成する場合は、ブランチの新規タグの作成と同様に作成)することもできます。

ブランチの選択は、多くのCVS機能に統合されています。編集中のファイルやチェックアウトしたファイルのブランチやバージョンを切り替えることができます。作業領域のコンテンツの更新中だけでなく、CVSモジュールのチェックアウト中にも、タグ、ブランチまたはバージョンの日付を選択できます。

6.6.2.3.1 ブランチまたはバージョンの切替え

JDeveloperの「バージョニング」メニューまたはファイルやプロジェクトのポップアップ・メニューから、編集中のファイルのブランチまたはバージョンを切り替えることができます。

「バージョニング」メニューからブランチ、バージョンまたは日付を選択するには、次のようにします。

1. 「バージョニング」メニューで、タグ、ブランチおよびマージ→「ブランチまたはバージョンの切替」を選択します。

2. ブランチまたはバージョンのリストを表示するには、チューザをクリックします。

3. 使用するブランチまたはバージョンを選択します。

4. オプションで、「日付の追加」をクリックして、使用する日付を指定します。

5. 「OK」をクリックします。

プロジェクトのコンテキスト・メニューからブランチ、バージョンまたは日付を選択するには、次のようにします。

1. 「チーム」→「ブランチまたはバージョンの切替」の順に選択します。

2. ブランチまたはバージョンのリストを表示するには、チューザをクリックします。

3. 使用するブランチまたはバージョンを選択します。

4. オプションで、「日付の追加」をクリックして、使用する日付を指定します。

5. 「OK」をクリックします。

6.6.2.3.2 更新中のブランチの選択方法

リポジトリに対する最新のリビジョンを取得するためのコンテンツ更新中に、同時に(関連タグ経由で)ブランチするオプションがあります。

タグを選択して、更新中にブランチするには、次のようにします。

1. オブジェクトのコンテキスト・メニューで、「プロジェクト・フォルダの更新」を選択します。

2. 「CVSから更新」ダイアログで、「リビジョン、タグまたは日付の使用」チェック・ボックスを選択して、選択アイコンをクリックします。

3. 使用するタグを選択します。

4. オプションで、「日付の追加」をクリックして、使用する日付を指定します。

5. 現在の更新に適用する他の任意のチェック・ボックス(「ローカルでの変更の上書き」、「空のフォルダを削除」など)を選択して、「OK」をクリックします。

6.6.2.3.3 チェックアウト中のブランチの選択

他のCVS操作と同様に、タグとブランチは、CVSモジュールのチェックアウト処理に統合されています。

チェックアウト中にブランチを選択するには、次のようにします。

1. 「バージョン」ウィンドウでコンテンツを右クリックしてポップアップ・メニューを表示し、「モジュールのチェックアウト」を選択します。

2. 「リビジョン、タグまたは日付の使用」チェック・ボックスを選択して、選択アイコンをクリックしてタグを選択します。

3. タグを選択します。オプションで、「日付の追加」ボタンをクリックして日付を追加できます。選択が終われば、「OK」をクリックして、「タグ」ダイアログを閉じます。

4. 他の任意のオプション(「強制的に一致」、「子フォルダの無視」など)を選択してから「OK」をクリックして、「CVSからのチェックアウト」ダイアログを閉じます。

6.6.3 タグの作成方法

タグは、ブランチ内のファイルのサブセット(たとえば、特定の機能セットまたは特定のバグ修正に関連付けられているファイルのリストなど)としてグループ化されている一般的なケースなど、なんらかの形で論理的にグループ化されているコンテンツを別の方法で識別する手段です。タグを作成すると、特にバージョン・コントロール・システムからファイルをチェックアウトする際など、数多くの方法で使用できます。

6.6.3.1 Gitでのタグの作成

Gitでブランチをチェックアウトするときに、新しいタグを作成するオプションが提示されます。また、タグは「タグの作成」ダイアログを使用するといつでも作成できます。

Gitでタグを作成するには:

1. 「チーム」→「Git」→「タグの作成」を選択します。「タグの作成」ダイアログが開きます。

2. 「名前」フィールドに、作成するタグの記述名を入力します(たとえば、バージョン1.2.3ベータ・リリースなど)。

3. 「コメント」フィールドに、今後このタグを使用するときにコンテンツを識別する助けとなる説明ノートを入力します。

4. 「ブランチ」フィールドにブランチ名を入力するか、「ブランチの選択」をクリックして「ブランチの選択」ダイアログを開き、タグを作成するブランチを選択します。「ブランチの選択」ダイアログでの選択を完了したら、「OK」をクリックしてダイアログを閉じ、選択を行います。

5. 現在別のタグに関連付けられているコンテンツをこのタグのベースにする場合は、「タグの選択」をクリックして「タグの選択」ダイアログを開きます。

6. オプションで、作成するタグのソースに特定のコミットIDを使用します。コミットIDは、手動で入力(または、コミットIDは40桁の16進数であるため、より可能性が高いのはコピーおよび貼付け)することも、「コミットの選択」をクリックして使用可能なIDからいずれかを選択することもできます。

7. このタグに関するすべての情報を入力したら、「OK」をクリックします。

6.6.3.2 CVSタグの作成と割当て

CVSでは、タグを作成してコンテンツに割り当てることができます。

CVSタグを割り当てるには、次のようにします。

この手順により、選択したファイルのローカルのCVSリビジョンにシンボリック・タグを割り当てることができます。

1. 「アプリケーション」ウィンドウで、単一のファイル、プロジェクトまたはワークスペースを選択します。プロジェクトまたはワークスペースを選択すると、そのプロジェクトまたはワークスペース内の全ファイルがタグの割当て対象として選択されます。

2. 「チーム」→「タグ」→「タグ」を選択します。

3. ファイル選択ボックスでハイライト表示されているすべてのファイルにこの操作を適用するかどうかを確認します。

4. 「タグ名」ボックスにタグの名前を入力します。

5. 必要に応じて他のオプションを設定します。オプションの詳細を参照するには、[F1]を押してください。

6. 「OK」をクリックします。

CVSタグを表示するには、次のようにします。

この手順により、ファイル・リビジョンに適用された既存のタグに関する情報ダイアログが表示されます。

1. ファイルのポップアップ・メニューから、「チーム」→「プロパティ」を選択します。

2. 「バージョニング」タブを選択します。ファイル・リビジョンの既存のタグ・リストに、その時点のスティッキー・タグ、日付およびオプション(ある場合)が表示されます。

CVSタグをリセットするには、次のようにします。

この手順により、選択したファイルに適用されたスティッキー・タグまたは日付が削除され、ヘッド・リビジョンにリセットされます。

1. 「アプリケーション」ウィンドウで、リセットするタグを含むファイル(単一または複数)を選択します。

2. 「チーム」→「タグ」→「タグのリセット」を選択します。

6.6.3.3 CVSタグの削除

タグを削除しても、そのタグに関連付けられたコンテンツまでは削除されません。ただし、完了した特定のプロジェクトを識別するためにタグを使用している場合は、将来タグ付きコンテンツを選択するときに表示を簡略化するためにタグを削除できます。

CVSタグを削除するには、次のようにします。

この手順により、選択したファイルのローカルのCVSリビジョンからシンボリック・タグを削除できます。

1. 「アプリケーション」ウィンドウで、単一のファイル、プロジェクトまたはワークスペースを選択します。プロジェクトまたはワークスペースを選択すると、そのプロジェクトまたはワークスペース内の全ファイルからタグが削除されます。

2. 「チーム」→「タグ」→「タグの削除」を選択します。

3. ファイル選択ボックスでハイライト表示されているすべてのファイルにこの操作を適用するかどうかを確認します。

4. 「タグ名」ボックスにタグの名前を入力します。

5. 「OK」をクリックします。

6.6.4 タグの使用方法

Subversionでは、タグの作成はブランチの作成と類似しています。

6.6.4.1 Gitでのタグの使用

Git内の既存のタグから選択して、現在のトランザクションに選択したファイルに適用できます。

Gitでタグを選択するには:

- 「チーム」→「タグ」を選択します。リストをスクロールして、選択したファイルに適用するタグを見つけます。

ファイルに適用するタグが複数ある場合は、[Ctrl]キーを押したまま、使用するタグをそれぞれ選択します。

6.6.4.2 CVSでのタグの使用

CVSでのタグは、単一のローカル・グループとして識別および操作する必要があるブランチ、ブランチ固有のコンテンツまたはその他のコンテンツを識別する1つの方法です。ファイル、フォルダまたはプロジェクトにタグを付けることができます。後でこれらのタグを使用して、ブランチの識別、特定のタグがあるブランチのファイルの更新および他の操作を行えます。

タグの選択と参照は、ポップアップ・メニューおよび「チーム」→「CVS」→「タグ」メニューで行えます。使用できるタグは、コンテンツに対して実行中の操作のコンテキストによって異なります。

6.6.4.2.1 プロジェクトへのタグの追加

プロジェクトにタグを付けて識別できます。次に、タグ選択機能がある任意のCVSメニューでタグを選択して、このプロジェクトを操作できます。

プロジェクトにタグを追加するには、次のようにします。

1. タグを付けるプロジェクトを選択します。

2. 「チーム」→「CVS」→「タグ、ブランチおよびマージ」→「タグ」の順に選択します。

3. 使用するタグを入力するか、選択アイコンをクリックして既存のタグを参照します。

4. オプション: 「リビジョン、タグまたは日付の使用」を選択してから、タグを入力するか、アイコンをクリックしてリストを参照します。

6.6.4.2.2 プロジェクトまたはファイルの更新中のタグの適用

「CVSから更新」ダイアログの使用中に、タグを選択して適用できます。

「プロジェクト」ビューから既存のブランチ、バージョンまたは日付を選択するには、次のようにします。

1. プロジェクトのポップアップ・メニューから、「チーム」→「タグ」を選択します。

2. 「リビジョン、タグまたは日付の使用」を選択します。

3. タグ選択アイコンをクリックします。

4. 表示されたリストからタグを選択します。

6.6.4.2.3 タグの削除方法

タグを削除することもできます。タグを削除すると、タグを適用したすべてのリソースからタグが削除されます。タグを削除しても、タグの適用先のコンテンツは削除されません。使用可能なタグのリストから、コンテンツが削除されるだけです。

タグを削除するには、次のようにします。

1. 「チーム」→「タグ、ブランチおよびマージ」→「タグの削除」の順に選択します。

2. 選択アイコンをクリックします。削除するタグを選択して、「OK」をクリックします。

このコンテキストで選択できるのは、既存のタグのバージョン(ブランチではない通常のタグ)のみです。

6.6.5 Subversionでのプロパティの使用方法

6.6.5.1 Subversionプロパティの使用

Subversionを使用すると、「アプリケーション」ウィンドウでファイル、フォルダおよび他のリソースなどの様々なレベルの要素にプロパティを定義および追加できます。これらのプロパティを定義し、共通点のあるファイルまたはフォルダをトラッキングする方法としてこれらを使用できます。たとえば、新しく追加した機能に特定のSubversionプロパティを関連付けることができます。このSubversionプロパティを持つすべてのファイルまたはフォルダを表示することにより、この機能に関連付けられたすべてのファイルを表示できます。これには、HTMLファイル、JavaScriptファイル、クラス定義ファイル、またはこの新規機能のアプリケーションへの追加に関する他の任意の要素などがあります。

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でこのプロパティを適用する場合に選択します。

自分のチームがSubversionプロパティを以前から使用している場合、「Subversionプロパティの表示」メニューを使用して、選択したSubversionプロパティを使用するすべての要素のリストを表示できます。また、異なるバージョン間でSubversionプロパティを比較することもできます。

Subversionプロパティのリストを表示するには、次のようにします。

1. 「アプリケーション」ウィンドウで、Subversionの管理下にある要素を選択します。

2. 「チーム」→「Subversion」→「Subversionプロパティの表示」を選択します。

特定の側面(新規機能やバグ修正など)をトラッキングおよび管理するためにプロジェクトに新規プロパティが必要な場合、新規プロパティを追加することもできます。

Subversionプロパティを新しく追加するには、次のようにします。

1. 「アプリケーション」ウィンドウで、Subversionの管理下にある要素を選択します。

2. 「チーム」→「Subversion」→「Subversionプロパティの追加」を選択します。

3. プロパティの値を入力し、「OK」をクリックします。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

6.6.5.2 ファイルとプロパティのステータスの表示

次の手順は、Subversionのソース・コントロール下にあるファイルのコンテンツ・ステータスおよび関連するプロパティのステータスを確認する場合に使用します。ファイルのステータスをリフレッシュすることもできます。

ファイルのステータスを表示するには、次のようにします。

1. 「アプリケーション」ウィンドウでファイルを選択し、ポップアップ・メニューを開き、「チーム」→「プロパティ」を選択します。

2. 「バージョニング」タブを選択します。

表示されるステータス・ラベルは、コンテンツおよび関連するプロパティのソース・コントロール・ステータスをSubversionで記述するために使用されるステータス・ラベルです。

コンテンツの主なステータスは次のとおりです。

- 追加済 - コンテンツはソース・コントロールに追加されましたが、Subversionリポジトリにはまだコミットされていません。

- 修正済 - プロパティは、リポジトリからのコピー後にローカルで変更されています。

- 変更なし(通常) - プロパティは、Subversionリポジトリからの最終更新後に変更されていません。

- 競合 - プロパティがSubversionリポジトリから更新されたときに競合がありました。

- 削除済 - ファイル(コンテンツおよび関連するプロパティ)は、次のコミット操作でSubversionリポジトリから削除されます。

関連するプロパティの主なステータスは次のとおりです。

- 修正済 - プロパティは、リポジトリからのコピー後にローカルで変更されています。

- 変更なし(通常) - プロパティは、Subversionリポジトリからの最終更新後に変更されていません。

- 競合 - プロパティがSubversionリポジトリから更新されたときに競合がありました。

6.6.5.3 Subversionでのプロパティ競合の解決

Subversionを使用すると、フォルダまたはファイルに関連付けられたプロパティを作成および保存できます。これらのプロパティには、名前および値文字列があります。

このような競合は、Subversionの「ツリー競合の解決」機能を使用して解決できます。

Subversionのプロパティ競合を解決するには、次のようにします。

1. 「アプリケーション」ウィンドウで、Subversionの管理下にありプロパティが競合している要素を選択します。

2. マウスを右クリックして、「チーム」→「Subversion」→「競合の解決」を選択します。

これにより、バージョン比較の場合と同じように、プロパティが競合するバージョンが隣接する2つのペインに表示されます。

競合を解決するには、「Subversionプロパティ」ウィンドウで変更を行います。

6.7 ファイルの履歴、ステータスおよびリビジョンの操作

バージョン・コントロールを使用する上でもっとも役立つ点の1つが、ファイルの履歴を表示して各バージョンに追加された変更を比較できる機能です。デバッグでは、ファイル履歴を調べて不具合が発生した直前のバージョンを見つけることにより、問題が発生した場所の特定に役立ちます。チーム・メンバー同士でファイルまたはファイル・セットに対して競合する変更を追加してしまった場合、変更が行われる前のファイルのバージョンに戻ることができます。

6.7.1 ファイル履歴

リポジトリ内のファイルの履歴を参照して、プロジェクトの存続期間全体で追加された変更をレビューできます。

6.7.1.1 Subversionファイルの履歴の表示

「履歴ビューア」を使用してSubversionファイルの履歴を表示すると、特定のSubversionファイルに追加された変更の順序の確認に役立ちます。

ファイルの履歴を表示するには、次のようにします。

- 「アプリケーション」ウィンドウでファイルを選択し、ポップアップ・メニューから「チーム」→「バージョン履歴」を選択します。
履歴ビューアの使用中に詳細を表示するには、[F1]を押すか「ヘルプ」をクリックします。

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

ファイルのソース・コントロール・ステータスは、JDeveloperナビゲータ(「アプリケーション」ウィンドウおよび「チーム」ウィンドウ)にアイコン上の記号で次のように示されます。

Subversionクライアント・アプリケーションの使用など、JDeveloperの外部でファイルのステータスが変更されると、新規のステータスがJDeveloperに即時に表示されない場合があります。「アプリケーション」ウィンドウに表示されるステータスをソース・コントロール・システム内のファイルのステータスと確実に一致させるために、手動リフレッシュを実行できます。

JDeveloperでファイルのステータスをリフレッシュするには、次のようにします。

- 「表示」→「リフレッシュ」を選択します。

6.7.2 リビジョンの使用方法

リバージョン、変更の回復などを説明する項が他にもあります。統合 -- 両方の項に目を通して、どちらがわかりやすいか確認してください。

6.7.2.1 Subversionベース・リビジョンへのファイルの置換

ベース・リビジョンとファイルを置き換える場合には、次の手順を使用します。ベース・リビジョンとは、現在作業しているリビジョンの基礎となったリビジョンです。

Subversionのベース・リビジョンでファイルを置き換えるには、次のようにします。

1. 「アプリケーション」ウィンドウで、置き換えるファイルを選択します。

2. 「ファイル」→「ベース・リビジョンとの置換」を選択します。「ベース・リビジョンとの置換」ダイアログが表示されます。置換するファイルがダイアログに表示されていることを確認します。

3. 「OK」をクリックし、ファイルを置換します。

6.7.3 変更を元に戻す方法

変更を元に戻す、前のバージョンに戻す、特定のリビジョンを選択する: これらはすべて、リポジトリにチェックインしないことに決めて変更をキャンセルする際のプロセスを表すためによく使用されるフレーズです。

6.7.3.1 Subversionでの前の状態へのファイルの回復

「回復」コマンドを使用して、次のことを行います。

- ファイルのコンテンツに対するローカルな変更を元に戻します。

- まだコミットされていない追加されたファイルのステータス変更を、「未追加」に戻します。

- 「削除をスケジュール済」のファイル(「保留中の変更」ウィンドウ内)がSubversionリポジトリから削除されないようにします。

ファイルを回復するには、次のようにします。

1. 「アプリケーション」ウィンドウまたは「保留中の変更」ウィンドウでファイルを選択し、「チーム」→「回復」を選択します。
「ローカルでの変更の回復」ダイアログが表示されて、ファイルがリストされます。

ダイアログ使用時のヘルプを表示するには、[F1]を押すか「ヘルプ」をクリックします。

2. リストされているファイルを回復するには、「OK」をクリックします。

6.7.3.2 Gitでのファイルへの変更の回復

Gitリポジトリにコミット済のファイルに追加した変更を元に戻して、前の状態に戻ることができます。

変更を回復するには:

1. 「チーム」→「Git」→「回復」を選択します。前のバージョンに戻すことができるファイルのリストが、そのファイルが置かれているローカル・ファイル・システムのパスとともに表示されます。

2. 回復するファイルを選択し、「OK」をクリックします。

6.7.3.3 CVSのリビジョンおよびタグの操作

CVSでは、現在作業中のファイルの前のバージョンで作業を開始または再開する必要が生じた場合は、CVSリポジトリから特定のリビジョンを選択できます。

CVSファイルのリビジョンを開くには、次のようにします。

この手順により、CVSリポジトリからファイルのリビジョンを取得します。これにより、そのリビジョンを表示したりローカルで保存できます。

1. 「アプリケーション」ウィンドウで選択したファイルで、「チーム」→「リビジョンを開く」を選択します。

2. ダイアログで、必要に応じてオプションを設定します。オプションの説明を参照するには、[F1]を押すか「ヘルプ」をクリックします。

3. 「OK」をクリックします。

6.7.4 異なるファイルからの変更をマージする方法

多くのバージョン・コントロール・システムで、異なるファイルからの変更をマージして、最終的に複数のチーム・メンバーからの編集を含む単一のバージョンを作成する手段が提供されています。まず、ファイルの異なるバージョンを比較し、変更を選択してマージする手順に進みます。

6.7.4.1 Subversion内のファイルの比較

Subversionの管理下にあるファイルを同じファイルの他のリビジョンや他のファイルと比較するには、次の手順を使用します。

ファイルのリビジョンを比較するには、次のようにします。

1. ファイルのポップアップ・メニューで、「比較」を選択します。

2. 「前のリビジョン」、「最新のリビジョン」、または「他のリビジョン」を選択します。
差分がない場合は、メッセージが表示されます。それ以外の場合は、「履歴」ツールの「比較」パネルにリビジョンが表示されます。

別のファイルと比較するには、次のようにします。

1. ファイルのポップアップ・メニューで、「比較」→「その他のファイル」を選択します。
「比較対象のファイルを選択」ダイアログが開きます。

2. 比較対象のファイルを選択します。
ファイルは、「履歴」ツールの「比較」パネルに表示されます。

2つのファイルを比較するには、次のようにします。

1. 「アプリケーション」ウィンドウで2つのファイルを選択します。

2. いずれかのファイルのポップアップ・メニューで、「比較」→「相互」を選択します。
ファイルは、「履歴」ツールの「比較」パネルに表示されます。

「履歴」ツールの「比較」パネルを非表示にして(後で表示)、JDeveloperで他のパネルを表示できます。

6.7.4.2 ファイル・バージョン間での競合の解消

ファイルの自分のコピーとSubversionリポジトリとの間に競合がある場合は、影響があるファイルの横のアイコンに感嘆符が表示されます。そのようなファイルは、Subversionリポジトリに送信できません。この問題を解決するには、次のいずれかを行います。

- 競合のないバージョンのファイルに戻します。

- JDeveloperのマージ・ツールを使用して競合を解決します。

- 変更されない場合(通常この操作が必要になるのは、バイナリ・ファイルの場合のみ)でも、Subversionコントロール・システムに、競合が解決されたことを通知します(「チーム」→「解決済をマーク」)。

この操作が必要な可能性があるもう1つのケースは、マージ・ツールを使用するかわりに、ファイルで競合を自分で解消した場合です。これは、ファイルをローカルでマージするというより一般的な解決方法ではなく、サーバーでファイルをマージすることを選択した場合などです。

競合のないバージョンのファイルに戻すには、次のようにします。

- 「アプリケーション」ウィンドウでファイルを選択し、「チーム」→「回復」を選択します。

マージ・ツールを使用して競合を解決するには、次のようにします。

1. 「アプリケーション」ウィンドウでファイルを選択し、「チーム」→「競合の解決」を選択します。
「マージ」タブが表示された状態でファイルが開かれ、マージ・ツールが表示されます。

2. マージ・ツールを使用して、競合を解決します。
マージ・ツールの使用中にヘルプを表示するには、[F1]を押すか「ヘルプ」をクリックします。

ファイルを変更していない場合でも、競合が解決されたことを通知するには、次のようにします。

- 「アプリケーション」ウィンドウでファイル(通常はバイナリ・コンテンツのファイル)を開いて、「チーム」→「解決済をマーク」を選択します。

6.7.4.3 マージ・ツールを使用した競合の解決

この操作は、2つのリビジョンのファイルをマージする場合に使用します。リビジョンに競合する内容が含まれている場合は、「保留中の変更」ウィンドウで、競合が通知され(送信ステータスは「競合」または「マージで競合します」)、「競合の解決」ボタンがアクティブになります。

内容が競合する2つのリビジョンをマージするには、次のようにします。

1. 「保留中の変更」ウィンドウの「送信」タブで、競合しているリビジョンを選択し、「競合の解決」ボタンをクリックします。(「アプリケーション」ウィンドウでリビジョンを選択することもできます。)

2. マージ・ツールが(ファイル・エディタの「マージ」タブとして)開きます。
マージ・ツールの使用中にヘルプを表示するには、[F1]を押すか「ヘルプ」をクリックします。

マージ・ツールには3つのパネルがあります。左側のパネルには、リポジトリ内のバージョンの内容が表示されます。右側のパネルには、最新のローカル・バージョンの内容が表示されます。中央のパネルには、マージの結果が表示されます。パネル間のマージンには、各競合を解決するために提示された処理を示す記号が表示されます。

3. マージン記号のツールチップを読んで、競合を解決するために提示された処理を確認します。
詳細な処理は、マージン記号のポップアップ・メニューから選択できます。

4. それぞれに提示された処理を実施して競合を解決します。
最初に提示された処理を受け入れると、追加処理が提示される場合があります。

中央のパネルに入力して、そのパネルの内容を変更することもできます。

5. マージを完了するには、マージ・ツール上の「変更の保存」ボタン(JDeveloperの「保存」オプションではありません)をクリックして変更内容を保存します。

6.7.4.4 Subversion「マージ」ウィザードの使用

「マージ」ウィザードは、JDeveloperでSubversionのマージ・トラッキングをサポートする上で役に立ちます。Subversionのマージ・トラッキングとは基本的に、マージ内容をユーザーのかわりにSubversionが記録する機能です。「マージ」ウィザードを使用すると、特定のリビジョン、ブランチまたは変更セットなどのマージ対象のコンポーネントを簡単に選択できます。

「マージ」ウィザードには、様々なオプションが用意されています。

選択したリビジョン範囲のマージ

たとえば、バグ修正のグループを別のリリース・ブランチにバックポートする場合など、リビジョンの範囲を別のブランチにマージする場合、これを選択します。

ブランチの再統合

通常、たとえば、機能ブランチでの作業を完了した後に変更をトランクに再統合する場合など、ブランチでの変更をトランクにマージし戻す場合に使用します。

2つの異なるツリーのマージ

2つのブランチ間の差異を作業用コピーにマージする場合、これを選択します。

特定のリビジョンのマージのブロック

特定のリビジョンをトランクにマージする準備がまだ整っていないか、このマージが適切ではない場合、これを選択します。

6.7.5 CVSでのファイル・バージョンとファイル履歴の操作

CVSには、リポジトリ内のファイルの様々なバージョンをマージ、比較、置き換えおよび表示する技術が用意されています。

6.7.5.1 CVS内のファイルのマージ

この操作は、2つのリビジョンのファイルをマージする場合に使用します。リビジョンに競合する内容が含まれている場合は、「保留中の変更」ウィンドウで、競合が通知され(送信ステータスは「競合」または「マージで競合します」)、「競合の解決」ボタンがアクティブになります。

内容が競合する2つのリビジョンをマージするには、次のようにします。

1. 「保留中の変更」ウィンドウの「送信」タブで、競合しているリビジョンを選択し、「競合の解決」ボタンをクリックします。

2. マージ・ツールが(ファイル・エディタの「マージ」タブとして)開きます。
マージ・ツール使用時のヘルプを表示するには、[F1]を押してください。

マージ・ツールには3つのパネルがあります。左側のパネルには、リポジトリ内のバージョンの内容が表示されます。右側のパネルには、最新のローカル・バージョンの内容が表示されます。中央のパネルには、マージの結果が表示されます。パネル間のマージンには、各競合を解決するために提示された処理を示す記号が表示されます。

3. マージン記号のツールチップを読んで、競合を解決するために提示された処理を確認します。
詳細な処理は、マージン記号のポップアップ・メニューから選択できます。

4. それぞれに提示された処理を実施して競合を解決します。
最初に提示された処理を受け入れると、追加処理が提示される場合があります。

中央のパネルに入力して、そのパネルの内容を変更することもできます。

5. マージを完了するには、「保存」ボタンを使用して変更内容を保存します。

6.7.5.2 CVS内のファイルの比較

この操作は、CVSのソース・コントロール下にあるファイルのリビジョンを比較する場合に使用します。ファイルはその直前のリビジョン、または以前のリビジョンと比較できます。

「アプリケーション」ウィンドウに表示されるファイルを比較するには:

1. ファイルのポップアップ・メニューで、「比較」を選択します。

2. 「前のリビジョン」、「ヘッド・リビジョン」、または「他のリビジョン」を選択します。

3. 前のリビジョンと比較する場合は、以前のリビジョンのファイルがCVSファイルの比較ダイアログにリスト表示されます。比較するファイルを選択します。
差分がない場合は、メッセージが表示されます。それ以外の場合は、比較ツールが表示されます。

「保留中の変更」ウィンドウに表示されるファイルを比較するには、次のようにします。

「保留中の変更」ウィンドウのファイルは、ウィンドウのモードに従って、以前のリビジョンまたはヘッド・リビジョンのいずれかと比較できます。「保留中の変更」ウィンドウの使用時に詳細を参照するには、[F1]を押してください。

- 送信変更モードのウィンドウで、比較するファイルを選択して「前のリビジョンと比較」ボタンを選択します。

- 受信変更モードのウィンドウで、比較するファイルを選択して「ヘッド・リビジョンと比較」ボタンを選択します。

差分がない場合は、メッセージが表示されます。それ以外の場合は、比較ツールが表示されます。

6.7.5.3 CVSリビジョンへのファイルの置換

この操作は、ファイルをベースまたはヘッド・リビジョンに置換する場合、または特定のリビジョン番号またはタグのファイルに置換する場合に使用します。ヘッド・リビジョンとは最新のリビジョンです。ベース・リビジョンとは、現在作業しているリビジョンの基礎となったリビジョンです。

ファイルをCVSリビジョンに置換するには、次のようにします。

1. 「アプリケーション」ウィンドウで、置き換えるファイルを選択します。

2. 次のいずれかを実行します。

- ベース・リビジョンに置換する場合は、「ファイル」→「置換」→「ベース・リビジョン」の順に選択します。「ベース・リビジョンとの置換」ダイアログが表示されます。

- 特定のリビジョン番号またはタグに置換する場合は、「ファイル」→「置換」→「タグ付けされたリビジョン」の順に選択します。「タグ付リビジョンとの置換」ダイアログが表示されます。

- ヘッド・リビジョンに置換する場合は、「ファイル」→「置換」→「ヘッド・リビジョン」の順に選択します。「ヘッド・リビジョンとの置換」ダイアログが表示されます。

3. 置換するファイルがダイアログに表示されていることを確認します。

4. 特定のリビジョン番号またはタグに置換する場合は、ダイアログのテキスト・ボックスにリビジョン番号またはタグを入力します。

5. 「OK」をクリックし、ファイルを置換します。

6.7.5.4 CVSでのファイルの履歴とステータスの表示

ファイルの履歴およびステータスにより、ファイルにどのような処理が行われてきたか、および最後にどのような処理が行われたかがわかります。これは、ファイルを最新の状態にするために、または独自の変更を行うために実行が必要なことを決定する上で役立ちます。

この操作は、履歴ビューアを開いてCVSファイルの履歴を表示する場合に行います。

プロジェクトまたはファイルの履歴を表示するには、次のようにします。

- 「アプリケーション」ウィンドウでプロジェクトまたはファイルを選択し、ポップアップ・メニューから「チーム」→「バージョン履歴」を選択します。
履歴ビューアの使用中に詳細を表示するには、[F1]を押してください。

この操作は、CVSのソース・コントロール下にあるファイルのステータスを確認する場合に使用します。CVSコントロール下にあるファイルのステータスをリフレッシュすることもできます。

ファイルのステータスを表示するには、次のようにします。

1. 「アプリケーション」ウィンドウでファイルを選択し、ポップアップ・メニューを開き、「チーム」→「プロパティ」を選択します。

2. 「バージョニング」タブを選択します。ファイルのステータスは、タブの最初の項目です。

ステータスには、次のものがあります。

- ローカルで変更されました。 - ファイルは、リポジトリからのコピー後にローカルで変更されています。

- CVSにあります。 - ファイルは、リポジトリからのコピー後に別のユーザーによって変更されています。

- 削除されました。 - ファイルは、次回のコミットで削除されます。

- 追加されました。 - ファイルは、次回のコミットで追加されます。

- 最新です。 - ファイルは、最新のCVSリポジトリ・バージョンと一致しています。

- 競合があります。 - ファイルの更新またはコミット処理から生じている可能性があります。必要な場合は、CVS管理者に相談してください。

- 確定できません。 - たとえば、別のユーザーによりファイルが外部で更新されています。

- 変更されました。 - ファイルにはマージの競合が以前にありましたが、それ以降にタイムスタンプが変更されています。

6.7.6 Perforceでのファイル・バージョンの操作

Perforceには、ファイル・バージョン間での競合を解消するツールが用意されています。

6.7.6.1 Perforceファイル・バージョン間での競合の解消

ファイルの自分のコピーとPerforce保管庫との間に競合がある場合は、影響があるファイルの横のアイコンに感嘆符が表示されます。このようなファイルをPerforce保管庫に発行することはできません。この問題を解決するには、競合のないファイルのバージョンに戻すか、競合を解決する必要があります。

競合のないバージョンのファイルに戻すには、次のようにします。

- 「アプリケーション」ウィンドウでファイルを選択し、「チーム」→「回復」を選択します。

ファイル・バージョンの競合を解決するには(Perforceマージ・ツールを使用する場合)、次のようにします。

1. 「チーム」→「解決」を選択し、Perforceクライアントを開きます。

2. 保留中のクライアントの変更リストで、変更を識別します。

3. Perforceツールを使用して競合を解決します。
競合を自動マージできない場合、マージ・ツールを実行し、その機能を使用して競合データから確定バージョンを作成します。

4. マージを受け入れます。

5. マージを発行します。

6. JDeveloperで、「ビュー」→「リフレッシュ」を使用してファイルに緑色の点を表示します。
ファイルは編集可能な状態で開かれたままです。

7. ファイルを発行します。

6.7.7 Team Systemでのファイル・バージョンの操作

Team Systemには、リポジトリ内の異なるファイル間の競合を表示、比較および解決するなど、ファイル・バージョンを操作するツールが用意されています。

6.7.7.1 Team Systemファイル・バージョン間での競合の解消

チェックインしようとしたときにファイルの自分のコピーとTeam Systemサーバー内のファイルとの間に競合がある場合は、操作を完了できないことを示すメッセージ・ボックスが表示されます。この問題を解決するには、最初にチェックイン操作を取り消してから、次のいずれかを実行する必要があります。

- 競合のないバージョンのファイルに戻します。

- Team Systemクライアント・ソフトウェアのマージ・ツールを使用して競合を解決します。

競合のないバージョンのファイルに戻すには、次のようにします。

- 「アプリケーション」ウィンドウでファイルを選択し、「チーム」→「元に戻す」を選択します。

6.7.7.2 Team Systemファイルへの変更を元に戻す作業

ファイルに対する最新の変更を元に戻すために使用します。

変更を元に戻すには、次のようにします。

1. 「アプリケーション」ウィンドウで、その最終変更を元に戻すファイルを選択します。

2. 「チーム」→「元に戻す」を選択します。
「元に戻す」ダイアログが開きます。

「OK」をクリックすると、変更が元に戻されます。

6.7.7.3 ファイルとTeam Systemのベース・バージョンの置換

ベース・バージョンとファイルを置き換える場合には、次の手順を使用します。ベース・バージョンとは、現在作業しているバージョンの基礎となったバージョンです。

Team Systemのベース・バージョンでファイルを置き換えるには、次のようにします。

1. 「アプリケーション」ウィンドウで、置き換えるファイルを選択します。

2. 「ファイル」→「置換」→「ベース・バージョン」を選択します。
「ベース・バージョンとの置換」ダイアログが開きます。

3. 置換するファイルがダイアログに表示されていることを確認します。

4. 「OK」をクリックし、ファイルを置換します。

6.7.7.4 ファイルの履歴の表示

この操作は、履歴ビューアを開いてTeam Systemの管理下にあるファイルの履歴を表示する場合に行います。

ファイルの履歴を表示するには、次のようにします。

- 「アプリケーション」ウィンドウでファイルを選択し、ポップアップ・メニューから「チーム」→「バージョン履歴」を選択します。

履歴ビューアの使用中に詳細を表示するには、[F1]を押してください。

6.7.7.5 Team Systemでのファイルの比較

Team Systemの管理下にあるファイルを同じファイルの他のバージョンや他のファイルと比較するには、次の手順を使用します。

ファイルのバージョンを比較するには、次のようにします。

1. ファイルのポップアップ・メニューで、「比較」を選択します。

2. 「前のバージョン」、「最新バージョン」または「他のバージョン」を選択します。

差分がない場合は、メッセージが表示されます。それ以外の場合は、「履歴」ツールに1つ以上のバージョンが表示されます。

別のファイルと比較するには、次のようにします。

1. ファイルのポップアップ・メニューで、「比較」→「その他のファイル」を選択します。
「比較対象のファイルを選択」ダイアログが開きます。

2. 比較対象のファイルを選択します。
「比較」ツールにファイルが表示されます。

2つのファイルを比較するには、次のようにします。

1. 「アプリケーション」ウィンドウで2つのファイルを選択します。

2. いずれかのファイルのポップアップ・メニューで、「比較」→「相互」を選択します。

「比較」ツールにファイルが表示されます。

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

この操作は、ClearCaseのソース・コントロール下にあるファイルの履歴を表示する場合に使用します。

履歴を表示するには、次のようにします。

- 「アプリケーション」ウィンドウで選択したファイルで、「チーム」→「履歴の表示」を選択します。

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

この操作は、ClearCaseのソース・コントロール下にあるプロジェクトまたはファイルの説明を表示する場合に使用します。

説明を表示するには、次のようにします。

- 「アプリケーション」ウィンドウで選択したファイルで、「チーム」→「説明の表示」を選択します。

メッセージ・ログ・ウィンドウに説明が表示されます。

6.7.10 外部差分ツールの使用方法

CVSでは、外部ツールを使用してファイル・バージョンの差分を表示、特定および解決できます。

6.7.10.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.8 ソース・コントロールのパッチの操作

JDeveloperで使用可能なバージョン・コントロール・システムの多くでは、パッチを作成して適用する機能、つまりファイルの2つのリビジョンの間の変更を特定して、それらの変更を3つ目のファイルに適用する方法が提供されています。さらに、Subversionには、リポジトリ接続の詳細およびリポジトリ内のファイルをエクスポートするための管理機能も含まれています。

Subversion (JDeveloperに含まれる)では、次の手順でパッチを作成および適用します。また、Concurrent Version System (CVS)、PerforceおよびTeam Systemのバージョン・コントロール拡張機能でも、パッチを作成および適用する手順は同じです。

パッチを作成するには、次のようにします。

この手順により、ファイルのコントロール・リビジョンとローカル・リビジョン間の差分で構成されるパッチが生成されます。

1. JDeveloperで、パッチを作成するファイルを開きます。

2. 「履歴」タブをクリックします。
「履歴」ビューには、ファイルのすべてのリビジョンが表示されます。「履歴」ビュー下部の左ペインにはローカル・リビジョンの内容が表示され、右ペインにはコントロール・リビジョンの内容が表示されます。

3. パッチを作成するリビジョンの組合せを選択します。

4. ポップアップ・メニューから「パッチの生成」を選択します。
「パッチ・コンテキストの選択」ダイアログが開く場合があります。このダイアログ使用時のヘルプを表示するには、[F1]を押すか「ヘルプ」をクリックします。

「パッチの生成」ダイアログが開きます。必要に応じてダイアログを完了します。ダイアログ使用時のヘルプを表示するには、[F1]を押すか「ヘルプ」をクリックします。

パッチを適用するには、次のようにします。

1. 「アプリケーション」ウィンドウで、パッチを適用するリソースを選択します。
リソースは、アプリケーション、プロジェクトまたはソース・ファイルの場合があります。

2. 「チーム」→「パッチの適用」を選択します。
プロジェクトにパッチを適用する場合は、「パッチ・コンテキストの選択」ダイアログが開きます。このダイアログで、プロジェクト・ファイル(.jpr)のパッチを適用するのか、またはプロジェクトの内容を更新するのかを指定する必要があります。

「パッチの適用」ダイアログが開きます。

3. 「パッチの適用」ダイアログの上部のグリッドで、ターゲット・リソースが正しく識別されていることを確認します。

4. パッチのソースを選択します。このオプションおよびこのダイアログの他のオプションの詳細は、[F1]を押すか「ヘルプ」をクリックします。

5. 「プレビュー」をクリックします。これによって、「パッチの適用: プレビュー」ウィンドウが表示されます。このウィンドウで、特定の変更を受け入れることも拒否することもできます。「パッチの適用: プレビュー」ウィンドウのオプションの詳細は、[F1]を押すか「ヘルプ」をクリックします。

6. パッチを適用するには、「OK」をクリックします。

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

JDeveloperでは、パッチを作成して適用する機能、つまりファイルの2つのリビジョンの間の変更を特定して、それらの変更を3つ目のファイルに適用する方法が提供されています。通常、これらのパッチは別個のファイルとして、またはターゲット・ファイルにコピーして貼り付けられるテキストのセクションとして保存できます。

6.8.1.1 パッチの作成

あるファイルの2つのリビジョン間の変更内容を記録し、その変更内容を3番目のファイルに適用するとします。これを実行するには、パッチを作成して適用します。

パッチを作成するには、次のようにします。

この手順により、ファイルのコントロール・リビジョンとローカル・リビジョン間の差分で構成されるパッチが生成されます。

1. JDeveloperで、パッチを作成するファイルを開きます。

2. 「履歴」タブをクリックします。
「履歴」ビューには、ファイルのすべてのリビジョンが表示されます。「履歴」ビュー下部の左ペインにはローカル・リビジョンの内容が表示され、右ペインにはコントロール・リビジョンの内容が表示されます。

3. パッチを作成するリビジョンの組合せを選択します。

4. ポップアップ・メニューから「パッチの生成」を選択します。
「パッチ・コンテキストの選択」ダイアログが開く場合があります。このダイアログ使用時のヘルプを表示するには、[F1]を押すか「ヘルプ」をクリックします。

「パッチの生成」ダイアログが開きます。必要に応じてダイアログを完了します。ダイアログ使用時のヘルプを表示するには、[F1]を押すか「ヘルプ」をクリックします。

6.8.1.2 パッチの適用

パッチを作成したら、「チーム」メニューから適用します。

パッチを適用するには、次のようにします。

1. ナビゲータで、パッチを適用するリソースを選択します。
リソースは、アプリケーション、プロジェクトまたはソース・ファイルの場合があります。

2. 「チーム」→「パッチの適用」を選択します。
プロジェクトにパッチを適用する場合は、「パッチ・コンテキストの選択」ダイアログが開きます。このダイアログで、プロジェクト・ファイル(.jpr)のパッチを適用するのか、またはプロジェクトの内容を更新するのかを指定する必要があります。

「パッチの適用」ダイアログが開きます。

3. 「パッチの適用」ダイアログの上部のグリッドで、ターゲット・リソースが正しく識別されていることを確認します。

4. パッチのソースを選択します。このオプションおよびこのダイアログの他のオプションの詳細は、[F1]を押すか「ヘルプ」をクリックします。

5. 「プレビュー」をクリックします。これによって、「パッチの適用: プレビュー」ウィンドウが表示されます。このウィンドウで、特定の変更を受け入れることも拒否することもできます。「パッチの適用: プレビュー」ウィンドウのオプションの詳細は、[F1]を押すか「ヘルプ」をクリックします。

6. パッチを適用するには、「OK」をクリックします。

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

この章では、JDeveloperのビルド、実行およびデバッグ機能の概要を説明します。これらの機能は、このガイドの後続の章で詳細に説明されています。

この章には次の項が含まれます:

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

- 第7.2項「アプリケーションのビルド」

- 第7.3項「アプリケーションの実行」

- 第7.4項「アプリケーションのデバッグ」

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

アプリケーション設計時の各段階を完了すると、プロジェクトのビルド、実行、デバッグが可能になります。

JDeveloperでプロジェクトをビルドするには、メイクと再ビルド、Apache Ant、Mavenの3通りの方法があります。

プロジェクトを実行すると、実行、デバッグまたはプロファイリングされるプロセスを「プロセス」ウィンドウが管理します。このような複数のプロセスが同時にアクティブになると、「プロセス」ウィンドウが自動的に表示されます。プロセスが完了すると、そのプロセスは「プロセス」ウィンドウから自動的に削除されます。

デバッガを使用すると、コードを調べて問題のある領域を特定し修正できます。ローカルとリモートの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の詳細は、第12.6項「Apache Antによるビルド」を参照してください。

7.2.3 Apache Maven

Apache Mavenは、ソフトウェア・プロジェクトの管理と検査のためのツールです。Mavenはプロジェクトのビルド、レポート、中心的な情報からのドキュメンテーション、プロジェクト・オブジェクト・モデル(POM)を管理できます。プロジェクトのビルドにはこのPOMと、Mavenによって全プロジェクトで共有される一連のプラグインを使用するため、統一的なビルド・システムとなります。Mavenをプラグインで拡張すれば、レポートやプロセスのビルドに様々な開発ツールを使用できます。Mavenの詳細は、http://maven.apache.org/index.htmlを参照してください。

Apache Mavenの詳細は、第12.7項「Apache Mavenによるビルドと実行」を参照してください。

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

JDeveloperには、アプリケーションの実行方法を監視および制御するいくつかの方法があります。実行中のプロセスはすべて、「プロセス」ウィンドウで管理できます。

7.3.1 「プロセス」ウィンドウ

「プロセス」ウィンドウは、実行、デバッグ、プロファイリングが行われるプロセスを追跡します。このような複数のプロセスが同時にアクティブになっている場合、「プロセス」ウィンドウが自動的に表示されます。プロセスが完了すると、そのプロセスは「プロセス」ウィンドウから自動的に削除されます。

「プロセス」ウィンドウの詳細は、第14.2項「プロセス・ウィンドウの理解」を参照してください。

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

JDeveloperには、コードを評価および修正するための包括的なデバッガが用意されています。デバッグには、ローカルとリモートの2種類があります。

ローカル・デバッグ・セッションを開始するには、ソース・ファイルにブレークポイントを設定し、デバッガを開始します。JDeveloperでサーブレットなどのアプリケーションをデバッグする際は、実行フローを完全に制御して、変数の値を表示および変更できます。また、クラス・インスタンスのカウント数とメモリー使用量を監視することによって、アプリケーションのパフォーマンスを調べることができます。JDeveloperは、アプリケーションから他のソース・ファイルへのコールに従うか、またはソース・ファイルが使用できない場合はスタブ・クラスを生成します。

リモート・デバッグでは、2つのJDeveloperプロセスが必要です。1つはデバッガ・プロセス、もう1つはデバッグ対象プロセスです。デバッグ対象プロセスは異なるプラットフォームに存在している場合があります。デバッグ対象プロセスが開始し、デバッガ・プロセスがそのデバッグ対象プロセスにアタッチされた後は、リモート・デバッグとローカル・デバッグの動作は似ています。

7.4.1 デバッガの使用方法

デバッガでは、コード内で問題のある領域を効率的に特定できるようにする特殊な目的のデバッグ・ウィンドウが、次のように数多く提供されます。

各デバッガ・ウィンドウに表示する情報のタイプを制御できます。表示する列など、各ウィンドウで使用できるオプションを確認するには、ウィンドウを右クリックして、ポップアップ・メニューから「設定」を選択します。またはメイン・メニューから「ツール」→「設定」を選択し、「デバッガ」ノードを展開して、各デバッガ・ウィンドウの設定ページを表示することもできます。また、デバッグ情報をテキスト出力ファイルまたはHTML出力ファイルとして保存することもできます。

デバッガの使用方法の詳細は、第14.8項「デバッガ・ウィンドウの使用方法」を参照してください。

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

JDeveloperのデバッグ機能は、いくつものテクノロジによって使用されます。次の表では、これらのテクノロジと、そのデバッグに関するドキュメントへのリンクを示します。

表7-1 デバッグを使用するテクノロジ

テクノロジ

ドキュメントのリンク

ADFコンポーネント

第14.7.5項「ADFコンポーネントのデバッグ方法」

Javaサーブレット

第18.5.7項「サーブレットのデバッグ方法」

JSPページ

第18.4.3項「JSPのデバッグおよびデプロイ」

Javaプログラム

第14.7項「Javaプログラムのデバッグ」

Webサービス

第23.8.2項「Webサービスのデバッグ方法」

統合WebLogic Server

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

PL/SQLプログラムおよびJavaストアド・プロシージャ

第29.3.3項「PL/SQLおよびJavaストアド・プロシージャのデバッグの前提条件」

拡張機能

『Oracle JDeveloperでの拡張機能の開発』

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

この章では、Oracle JDeveloperの監査とプロファイリングの機能について説明します。

この章には次の項が含まれます:

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

- 第8.2項「アプリケーションの監査」

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

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

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

JDeveloperに用意されている監査とプロファイリングのツールを使用して、作成したアプリケーションのヘルス状態とパフォーマンスを分析します。これらのツールは、コードの品質向上に効果的です。JDeveloperの監査機能を使用すると、Javaコードがプログラミング規格に準拠しているかどうかを分析できます。

プロファイラを使用して収集するプログラムに関する統計によって、より多くの時間を消費するメソッド、最も多くコールされるメソッド、メモリーの使用状況および作成中のオブジェクトの種類を識別し、ボトルネックなどのパフォーマンスの問題をより簡単に診断できます。

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

監査とは、プログラミング規格を定義している規則およびメトリックに準拠しているかどうかについてのコードの静的な分析のことです。コード監査では、コードの改善および保守を困難にしている不具合が検出されます。JDeveloperの監査ツールを使用すると、このような不具合を検出および修正できます。コンパイルが不可能または実行不可能な場合でも、コードの監査は可能です。

プロファイルを作成してカスタマイズし、使用する規則を選択して個々の規則のパラメータを設定できます。詳細は、それぞれのコード監査規則およびコード測定を参照してください。

監査レポートには、ルール違反および測定結果がツリーに編成されて表示されます。ツリーの各行は構成メンバーまたは違反のいずれかに対応しており、その構成メンバーまたは理論上の違反に対するすべての測定値が含まれます。構成とは、メソッド、クラス、ファイル、プロジェクトまたはアプリケーションです。コードを監査するための監査ツールおよびステップの詳細は、第13.2項「コード監査の理解」を参照してください。

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ログ・ファイルの選択ダイアログを開く場合にクリックします。詳細は第23.9項「Webサービスの監視と分析」を参照してください。

パケット・データの保存

HTTPアナライザ・ログ・ウィンドウの内容をファイルに保存する場合にクリックします。

WS-I分析

Webサービスをパケット・レベルで検証できるWS-I Analyzeウィザードを起動する場合にクリックします。詳細は第23.9項「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 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

Java API for RESTful Web Services (JAX-RS)は、RESTアーキテクチャ・スタイルに準じたWebサービスの作成をサポートします。JAX-RSでは、RESTful Webサービスの開発を単純化するために注釈を使用します。Webサービスに注釈を追加するだけで、リソースおよびそのリソース上で実行可能なアクションを定義できます。WebLogic Serverでは、http://jcp.org/en/jsr/summary?id=311で定義されているJSR-311 JAX-RS 1.1仕様の本番品質実装である、Jersey 1.9 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のコンテンツを返すために使用されるため、「レスポンス」ペインに表示されます。
必要な場合には、左矢印を使用してペインの幅を最大化すると、コードが見やすくなります。

6. WADLファイルを任意の時点で表示するには、RESTful WebサービスのURLの右にある「WADLを開く」をクリックします。WADLファイルの読取り専用バージョンがソース・エディタで開き、RESTful Webサービス・リソースおよびメソッドのサマリー、またはWADLソースを表示できるようになります。詳細は、第23.5.1.8項「RESTful Webサービスの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プロファイリング・ツールは、次の3つのモードで機能します。

- モニター

- パフォーマンス

- メモリー

また、HeapWalkerと呼ばれる.hprofビューワも提供します。

プロファイリングと、アプリケーションおよびプロジェクトをプロファイリングする手順の詳細は、第13.3項「プロジェクトのプロファイリング」を参照してください。

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

この章では、JDeveloperのアプリケーションを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を使用して、統合アプリケーション・サーバーでアプリケーションを実行できます。

Oracle® Fusion Middleware拡張機能を使用する場合、製品に固有のデプロイ情報の詳細は、適切な開発者向けガイドを参照してください。たとえば、ADF Fusion Webアプリケーションをデプロイする場合、『Oracle Application Development FrameworkによるFusion Webアプリケーションの開発』の「Fusion Webアプリケーションのデプロイ」を参照してください。

アプリケーションは、次の方法でデプロイできます。

- アプリケーション・サーバー接続を介して直接アプリケーション・サーバーにデプロイ。

- アーカイブ・ファイルにデプロイ。デプロイメント・ターゲットとしてアーカイブ・ファイルを選択することによって、間接的にアプリケーションをデプロイできます。アーカイブ・ファイルは、ターゲットJava EEアプリケーション・サーバーに後でインストールできます。

- JDeveloper統合アプリケーション・サーバーを使用したテスト環境へのデプロイ。Java EEランタイム・サービスで、JDeveloperアプリケーションとプロジェクトをJava EEアプリケーションおよびモジュールとしてJava EEコンテナ内で実行およびテストするために使用します。

注意:

通常、JDeveloperは開発やテストの目的でアプリケーションをデプロイする場合に使用します。アプリケーションを本番用にデプロイする場合は、Enterprise Managerまたはスクリプトを使用して、本番レベルのアプリケーション・サーバーにデプロイできます。

後期テスト環境や本番環境へのデプロイの詳細は、製品固有のデプロイ情報に関する適切な開発者ガイドを参照してください。

図9-1に、デプロイ処理全体を説明したフロー・ダイアグラムを示します。ターゲット・アプリケーション・サーバーをデプロイする準備に関してはこのガイドに記載されていません。サード・パーティ・アプリケーション・サーバーに関する適切なドキュメントを参照してください。

図9-1 デプロイの概要フロー・ダイアグラム

JavaおよびJava EEアプリケーションは、標準化されたモジュール型コンポーネントに基づいており、次のアプリケーション・サーバーにデプロイできます。

- Oracle WebLogic Server
Oracle WebLogic Serverは、そうしたモジュール用のサービス一式を備えており、細かいアプリケーション動作の多くを自動的に処理するため、プログラミングは必要ありません。

- Oracle GlassFish Server
Oracle GlassFish Serverにデプロイできます

- オラクル社以外のベンダーから提供される、次のサード・パーティ・アプリケーション・サーバー

- Apache Tomcat

- IBM WebSphere

- JBoss

- GlassFish Server Open Source Edition

JDeveloperと互換性のあるサーバーのバージョンについては、JDeveloperの認定情報(http://www.oracle.com/technetwork/developer-tools/jdev/documentation/index.html)を参照してください。

アプリケーションをOracle Java Cloud Serviceにデプロイすることもできます。詳細は、第9.1.3項「Oracle Java Cloud Serviceにデプロイするためのアプリケーションの開発」を参照してください。

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では、次の作業を行って、デプロイに向けてアプリケーションまたはプロジェクトを準備します。

- ターゲット・アプリケーション・サーバーへの接続を作成。詳細は、第9.3.1項「ターゲット・アプリケーション・サーバーへの接続の作成方法」を参照してください。

- デプロイメント・プロファイルを作成(必要な場合)。詳細は、第9.3.3項「デプロイメント・プロファイルの作成および編集方法」を参照してください。

- デプロイメント・ディスクリプタを作成(必要な場合、およびターゲット・アプリケーション・サーバーに固有の場合)。第9.3.4項「デプロイメント依存関係の作成方法と編集方法」

- application.xmlとweb.xmlを更新してアプリケーション・サーバーとの互換性を確保(必要な場合)。第9.3.5.2項「デプロイメント・ディスクリプタ・プロパティの表示または変更」

- アプリケーションレベルのセキュリティ・ポリシー・データをドメインレベルのセキュリティ・ポリシー・ストアに移行。詳細は、第9.3.7.4項「Oracle WebLogic ServerでのJDBCデータソースの設定」を参照してください。

アプリケーション・サーバーがすでにインストールされている必要があります。Oracle WebLogic Serverの場合は、Oracle 11g InstallerまたはOracle Fusion Middleware 11g Application Developer Installerを使用してインストールできます。他のアプリケーション・サーバーについては、対象アプリケーション・サーバーのドキュメントの説明に従ってサーバーを取得し、インストールしてください。

データソースへの接続を必要とするアプリケーションのためにグローバルJDBCデータソースを作成して、アプリケーション・サーバーを準備します。

アプリケーションとアプリケーション・サーバーの準備が完了したら、次の作業を行うことができます。

- JDeveloperを使用して次の操作を行います。

- デプロイメント・プロファイルとアプリケーション・サーバー接続を使用して、アプリケーション・サーバーに直接デプロイします。

- デプロイメント・プロファイルを使用して、EARファイルにデプロイします。

- Enterprise Manager、スクリプト、またはアプリケーション・サーバーの管理ツールを使用して、JDeveloperで作成したEARファイルをデプロイします。詳細は、『Oracle ADFアプリケーションの管理』を参照してください。

9.1.3 Oracle Java Cloud Serviceにデプロイするためのアプリケーションの開発

Oracle Java Cloud Serviceにデプロイするためのアプリケーションの開発は、アプリケーション・サーバーにデプロイするためのアプリケーションの開発と類似しています。

次の操作が必要です。

- Oracle Java Cloud Serviceで実行可能なコードでアプリケーションが記述されていることを確認。

- Oracle Java Cloud Serviceインスタンスへの接続を作成。

詳細は、http:\\cloud.oracle.comを参照してください。

9.1.4 アーカイブ形式の理解

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.5 デプロイメント・プロファイルの理解

デプロイメント・プロファイルは、プロジェクトまたはアプリケーションのデプロイを管理するアプリケーションまたはプロジェクトのプロパティです。デプロイメント・プロファイルでは、ソース・ファイル、デプロイメント・ディスクリプタ、およびパッケージ化される他の補助ファイル、作成されるアーカイブ・ファイルのタイプと名前、依存に関する情報、プラットフォーム固有の説明などの情報を指定します。

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

デプロイメント・ディスクリプタによって、デプロイ済アプリケーションの内容および構成が定義されます。アプリケーションに必要なデプロイメント・ディスクリプタ・ファイルは、アプリケーションに使用されているテクノロジおよびターゲット・アプリケーション・サーバーによって異なります。

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

デプロイメント・プランを使用すると、web.xml、weblogic.xml、application.xmlおよびweblogic-application.xmlのアプリケーション・デプロイメント・ディスクリプタで構成を調整できるため、アプリケーションのデプロイ方法を制御できます。

デプロイメント・プランは、plan.xmlというディスクリプタを使用して制御されます。plan.xmlを使用してカスタマイズできるのは、WebLogicのデプロイメント・ディスクリプタ構成のみです。デプロイメントをカスタマイズする主な使用例としては、ベースのWebLogicディスクリプタを変更しないまま、デプロイ先のサーバーごとにWebLogic固有のアプリケーション構成を変更する場合があります。詳細は、『Oracle WebLogic Serverへのアプリケーションのデプロイ』のデプロイメント・プランに関する項を参照してください。

9.1.8 Java Editionからのデプロイ

Java EditionのJDeveloperを使用している場合は、コアJavaとXMLの機能しか含まれていないため、実行できるデプロイメントが次の操作に限られます。

- 手動でサーバーにデプロイできる、シンプルJARアーカイブの作成。
JDeveloperのJava Editionには、JARファイルにアプリケーションをパッケージ化する機能があります。Java Editionのデプロイメント・ダイアログでは、JAR名の指定、ファイルのグループ化、または他のデプロイメント・プロファイルへの依存性などの標準JARオプションの限定された構成のみが可能です。さらに構成が必要な任意のアプリケーションでは、JDeveloperのStudio Editionからデプロイする必要があります。

- 拡張機能を開発する一環としてのデプロイメント・プロファイルの作成。JDeveloper拡張機能の作成の詳細は、『Oracle JDeveloper拡張機能の開発』を参照してください。

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 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を再起動すると、統合アプリケーション・サーバーの新しいデフォルト・ドメインを作成できるようになります。

サーバーの起動後に、「ウィンドウ」メニューから「プロセス」を選択すると、統合アプリケーション・サーバーのプロセスが表示されます。

注意:

実行モードのサーバーでは同時に複数のアプリケーションを実行できますが、デバッグ・モードで一度にデバッグできるアプリケーションは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.7.4項「Oracle WebLogic ServerでのJDBCデータソースの設定」を参照してください。

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

デフォルトでは、EJB、サーブレット、またはJSPプロジェクトを実行またはデバッグするとき統合アプリケーション・サーバーが自動的に起動します。したがって、JSPやサーブレットなどのオブジェクトを「アプリケーション」ウィンドウで選択して、「実行」メニューからオプションを選択できます。

注意:

プロジェクト、ファイル、Webサービスを実行またはデバッグして統合アプリケーション・サーバーを初めて起動すると、デフォルト・ドメイン上の管理者IDのパスワードを入力するダイアログが表示されます。「OK」をクリックすると、デフォルトのドメインが作成されます。この手順は1回のみ実行する必要があります。

一度に実行できる統合アプリケーション・サーバーは1つのみです。したがって、サーバーの別のインスタンスを起動しようとすると、前のインスタンスがシャットダウンされ、「アプリケーション」ウィンドウで選択したアイコンの要求タスクを実行するために、インスタンスが再起動されます。

サーバーの起動後に、「プロセス」ウィンドウを開くと、統合アプリケーション・サーバーのプロセスが表示されます。「プロセス」ウィンドウは、メイン・メニューから「ウィンドウ」→「プロセス」を選択すると開きます。

統合アプリケーション・サーバーを起動するには、次のようにします。

1. 必要な場合は、「ウィンドウ」→「アプリケーション・サーバー」を選択して「アプリケーション・サーバー」ウィンドウを開きます。

2. 統合WebLogic Server接続を右クリックし、「サーバー・インスタンスの起動」を選択します。

あるいは、メイン・メニューから「実行」→「サーバー・インスタンスの起動」を選択します。

デバッグ・モードで統合アプリケーション・サーバーを起動するには、次のようにします。

1. 必要な場合は、「ウィンドウ」→「アプリケーション・サーバー」を選択して「アプリケーション・サーバー」ウィンドウを開きます。

2. 統合WebLogic Server接続を右クリックし、「サーバー・インスタンスのデバッグ」を選択します。

あるいは、メイン・メニューから「実行」→「サーバー・インスタンスのデバッグ」を選択します。

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

統合アプリケーション・サーバーで大きいアプリケーションを実行している場合、デプロイが完了する前に取り消すことができます。

実行中のデプロイメントを取り消すには、次のようにします。

- 「ログ」ウィンドウで「終了」ボタンをクリックし、取り消すプロファイルまたはアプリケーションを選択します。

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

統合アプリケーション・サーバーを起動すると、統合アプリケーション・サーバーのプロセスが「プロセス」ウィンドウに表示されます。詳細は、第14.2項「プロセス・ウィンドウの理解」を参照してください。

「プロセス」ウィンドウは、メイン・メニューから「ウィンドウ」→「プロセス」を選択すると開きます。

注意:

統合アプリケーション・サーバーにデプロイされたアプリケーションは、統合アプリケーション・サーバーを終了するとき自動的にアンデプロイされます。

デフォルトの動作では、すべてのアプリケーションがアンデプロイされますが、この動作は変更できます。

実行中の統合アプリケーション・サーバーを停止するには、次のようにします。

次のいずれかを実行します。

- メイン・メニューから「実行」→「終了」→「IntegratedWebLogicServer」(または統合アプリケーション・サーバーの接続名)を選択します。

- ツールバーの「終了」ドロップダウン・リストから統合アプリケーション・サーバー名を選択します。

- メイン・メニューから「ウィンドウ」→「プロセス」を選択します。統合アプリケーション・サーバー名を右クリックし、「終了」を選択します。

- 「ファイル」→「終了」を選択して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アプリケーション・サーバー接続を介して、アプリケーション・サーバーにアプリケーションをデプロイできます。

この項では、アプリケーション・サーバーへの接続を作成する一般的な方法について説明します。特定のタイプのアプリケーション・サーバーへの接続の詳細は、第9.3.2項「特定のアプリケーション・サーバー・タイプへの接続」を参照してください。

始める前に:

- アプリケーション・サーバーがインストールされ、起動していることを確認します。

- プロキシ・サーバーの内部で作業している場合は、JDeveloperが使用しているプロキシ設定の確認が必要な場合があります。

1. 「ツール」→「プリファレンス」を選択して「プリファレンス」ダイアログを開き、「Webブラウザとプロキシ」ページにナビゲートします。詳細を参照するには、「設定」ダイアログの「Webブラウザとプロキシ」ページで、[F1]を押すか「ヘルプ」をクリックします。

2. 「プロキシ設定」タブにJDeveloperが使用しているプロキシ設定が表示され、必要に応じて変更できます。デフォルトでは、JDeveloperはシステムのデフォルトのプロキシ設定を使用しています。これらの設定をオーバーライドするには、「プロキシなし」を選択するか、「手動プロキシ設定」を選択して、使用する設定を適宜入力します。
「システムのデフォルト・プロキシ設定の使用」が選択されている場合は、「例外」にマシンからの値が移入されます。SSLを使用するように構成されているOracle WebLogic Serverにデプロイする場合は、例外リストに*.company_name.comを追加する必要があります。

アプリケーション・サーバーへの接続を作成する手順:

1. 「アプリケーション・サーバー接続」ウィザードを次のように起動します。

- 「アプリケーション・サーバー」ウィンドウで、「アプリケーション・サーバー」を右クリックして、「新規アプリケーション・サーバー」を選択します。

- 「新規ギャラリ」で、「一般」を展開し、「接続」→「アプリケーション・サーバー接続」を選択して、「OK」をクリックします。

- 「リソース」ウィンドウで、「新規」→「接続の作成」→「アプリケーション・サーバー」を選択します。

2. ウィザードの「使用方法」ページが表示されたら、「スタンドアロン・サーバー」が選択されていることを確認し、「次へ」をクリックします。

3. 「名前とタイプ」ページで、新しい接続の名前を入力します。

4. 「接続タイプ」ドロップダウン・リストで、接続を作成するアプリケーション・サーバーのタイプを選択します。オプションは次のとおりです。

- Oracle WebLogic Serverへの接続を作成する場合は「WebLogic 10.3」または「WebLogic 12.x」

- Oracle GlassFish ServerまたはGlassFish Open Source Editionへの接続を作成する場合は「GlassFish 3.1」

- JBossへの接続を作成する場合は「JBoss 5.x」

- Tomcatへの接続を作成する場合は「Tomcat 7.x」

- IBM WebSphere Serverへの接続を作成する場合は「WebSphere Server 8.x」

- Oracle Java Cloud Serviceへの接続を作成する場合は「Oracle Cloud」

5. 「次へ」をクリックします。

6. 「認証」ページで、アプリケーション・サーバーへのアクセスを認可された管理ユーザーのユーザー名とパスワードを入力します。

7. 「次へ」をクリックします。

8. 「構成」ページで、アプリケーション・サーバーへの接続を作成するパラメータを入力します。

9. 「次へ」をクリックします。

10. WebSphereを選択した場合は、表示される「JMX」ページにSOAアプリケーションのデプロイに必要なJMX構成値を入力します。

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 特定のアプリケーション・サーバー・タイプへの接続

この項では、様々なタイプのアプリケーション・サーバーに関する固有の情報を示します。

JDeveloperではサーバー・クラスタへのデプロイがサポートされていますが、JDeveloperを使用して、クラスタのメンバーである個々の管理対象サーバーにデプロイすることはできません。

9.3.2.1 Oracle WebLogic Serverへの接続

Oracle WebLogic Serverに接続するには:

- 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ドメインを入力します。

9.3.2.2 GlassFishへの接続

GlassFishサーバーに対するセキュアな接続を作成する場合は、「コンフィギュレーション」ページの「ホスト名に、IPアドレスではなく、localhostなどのホスト名を指定する必要があります。そうしないと接続に失敗します。これは、サーバーへの接続の作成に使用されるURL内のホスト名が、証明書のホスト名と一致する必要があるためです。

9.3.2.3 JBossへの接続

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です。

9.3.2.4 Tomcatへの接続

Tomcatの場合:

- 「Webappsディレクトリ」フィールドで、アプリケーション.warファイルが配置されているwebappsディレクトリの場所を入力するか参照します。

9.3.2.5 WebSphere Serverへの接続

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です。

- WebSphereを選択した場合は、「JMX」ページが表示されます。「JMX」ページで、JMXの情報を入力します(オプション)。

注意:

JMXの構成はオプションで、WebSphere Application Serverへの接続には必要ありません。JMXはSOAアプリケーションのデプロイにのみ必要です。

- 「この接続のJMXの有効化」を選択してJMXを有効にします。

- 「RMIポート」フィールドに、WebSphereのRMI接続ポートのポート番号を入力します。デフォルトは2809です。

- 「WebSphereランタイムJARの場所」フィールドに、WebSphereランタイムJARの場所を入力するか、参照して指定します。

- 「WebSphereプロパティの場所(セキュアなMBeanアクセス用)」フィールドに、セキュリティ構成および有効なMBeanのプロパティを含むファイルの場所を入力するか、参照して指定します。このフィールドはオプションです。

9.3.2.6 Oracle Java Cloud Serviceへの接続

Oracle Java Cloud Serviceにサインアップすると、Oracle Java Cloud Serviceインスタンスへの接続を確立するために使用するデータ・センター、アイデンティティ・ドメインおよびサービス名に関する情報を受信します。

Oracle Java Cloud Serviceに接続するには、次の情報を入力する必要があります。

- 「認証」ページで、管理ユーザー名とパスワードを入力します。

- 「構成」ページで、データ・センターを選択し、Oracle Java Cloud Serviceインスタンスのアイデンティティ・ドメインとサービス名を入力します。

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

デプロイメント・プロファイルでは、ターゲット環境にデプロイされるアーカイブにアプリケーションがパッケージ化される方法が定義されています。デプロイメント・プロファイルには、次の役割があります。

- 作成されるアーカイブ・ファイルのフォーマットと内容を指定します。

- パッケージ対象となるソース・ファイル、デプロイメント・ディスクリプタ、およびその他の補助ファイルをリストします。

- 作成されるアーカイブ・ファイルのタイプおよび名前を記述します。

- 依存情報、プラットフォーム固有の指示、およびその他の情報を示します。

9.3.3.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. アプリケーション・レベルで「デフォルトでデプロイ済」とマークされるすべてのライブラリは、アプリケーション・ライブラリとして(EARのlibに)デプロイされます。

6. 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 Business Componentsをデプロイするためのシンプル・アーカイブ・ファイルを作成します。

- ビジネス・コンポーネントのサービス・インタフェース: ADF Business Componentsをサービス・インタフェースとしてデプロイするためのプロファイルを作成します。

- クライアントJARファイル: 標準のJava EEクライアントJARファイルをデプロイする場合に使用します。

- EJB JARファイル: Java EE EJBモジュール(EJB JAR)をデプロイする場合に使用します。EJB JARには、EJBコンポーネントとそれに対応するデプロイメント・ディスクリプタが含まれます。

- 拡張機能JAR: 拡張機能をJARファイルとしてデプロイするためのプロファイルを作成します。

- JARファイル: プロジェクトからシンプルJARアーカイブを作成します。

- MOFモデル・ライブラリ: あるプロジェクトのUMLオブジェクトを他のプロジェクトで再使用できるようにするMOF (メタオブジェクト機能)モデル・ライブラリ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.3.2 デプロイメント・プロファイルの作成

デプロイメント・プロファイルは、次の様々な方法で作成できます。

- 「アプリケーション・プロパティ」ダイアログの「デプロイ」ページを使用します。これは次のインタフェースから開くことができます。

- JDeveloperツールバーの「アプリケーション」メニュー。

- アプリケーションのコンテキスト・メニュー。

- 「アプリケーション」ウィンドウ・ツールバーのドロップダウン・リスト。

- 「プロジェクト・プロパティ」ダイアログの「デプロイ」ページを使用します。これは次のインタフェースから開くことができます。

- 「アプリケーション」ウィンドウでプロジェクトを選択し、JDeveloperツールバーの「アプリケーション」メニューから「プロジェクト・プロパティ」を選択します。

- 「アプリケーション」ウィンドウのプロジェクトのポップアップ・メニュー。

- 「新規ギャラリ」の「一般」 - 「デプロイメント・プロファイル」カテゴリのウィザードの1つを使用します(「ファイル」メニューから「新規」を選択して「新規ギャラリ」を開きます)。新規のデプロイメント・プロファイルがプロジェクト・プロパティに追加されます。アプリケーション・レベルのプロファイルを作成するには、アプリケーション・レベルで「新規ギャラリ」を起動します。プロジェクト・レベルのプロファイルを作成するには、プロジェクト・レベルで「新規ギャラリ」を起動します。

- プロジェクトにweb.xmlファイルがある場合は、そのファイルを右クリックして「WARデプロイメント・プロファイルの作成」を選択できます。

- プロジェクトがEJB 3.xの場合は、Beanクラスを右クリックすると、「EJB JARデプロイメント・プロファイルの作成」を選択できます。

- プロジェクトにapplication.xmlがある場合は、そのプロジェクトを右クリックすると、「EARデプロイメント・プロファイルの作成」を選択できます。

既存のデプロイメント・プロファイルを変更するには、次の手順を実行します。

- 「アプリケーション」ウィンドウでプロジェクトを右クリックして「プロジェクト・プロパティ」を選択し、ウィザードのツリー構造から「デプロイメント」を選択します。次に、デプロイメント・プロファイルを選択し、「編集」を選択します。

- 「アプリケーション」ウィンドウでアプリケーションを右クリックして「アプリケーション・プロパティ」を選択し、ウィザードのツリー構造から「デプロイメント」を選択します。次に、デプロイメント・プロファイルを選択し、「編集」を選択します。

プロファイル・デプロイメントをアクティブにするには:

- プロジェクト・レベルのデプロイメント・プロファイルの場合は、「アプリケーション」ウィンドウでプロジェクトを右クリックし、「デプロイ」→デプロイメント・プロファイルを選択します。

- アプリケーションのデプロイメント・プロファイルの場合は、「アプリケーション」ウィンドウでアプリケーションを右クリックし、「デプロイ」→デプロイメント・プロファイルを選択します。あるいは、次のようにします。

- 「アプリケーション」ウィンドウでアプリケーションを右クリックし、「デプロイ」→デプロイメント・プロファイルを選択します。

- アプリケーションのコンテキスト・メニューから「デプロイ」→デプロイメント・プロファイルを選択します。

- 「アプリケーション」ウィンドウのツールバーのドロップダウン・リストから「デプロイ」→デプロイメント・プロファイルを選択します。

プロジェクトおよびそのプロジェクトが依存するプロジェクトがコンパイルされ、パッケージ化されます。

作成したアプリケーションには、必要なデプロイメント・プロファイルがすでに含まれている場合があります。たとえば、Webベースのプロジェクトを作成する場合、必要な依存モデル・プロジェクトを含むデフォルトのWARデプロイメント・プロファイルがすでに存在します。

デプロイメント・プロファイルを作成する手順は、次のとおりです。

1. アプリケーション・レベルのデプロイメント・プロファイルの場合は、「アプリケーション」ウィンドウでアプリケーションを右クリックして「新規」を選択します。
プロジェクト・レベルのデプロイメント・プロファイルの場合、デプロイするプロジェクトを「アプリケーション」ウィンドウで右クリックして「新規」を選択します。

2. 「新規ギャラリ」で「一般」を展開して「デプロイメント・プロファイル」を選択し、目的のデプロイメント・プロファイル・タイプを選択して「OK」をクリックします。
「カテゴリ」ツリーに「デプロイメント・プロファイル」が表示されない場合は、「すべての機能」タブをクリックします。

3. 作成するデプロイメント・プロファイルのタイプを選択し、「OK」をクリックします。たとえばEARデプロイメント・プロファイルの場合、次のようにします。

- 「アプリケーション・アセンブリ」を選択し、続いて「Java EEモジュール」リストで、デプロイメントに組み込むすべてのプロジェクト・プロファイルを選択します(WARプロファイルを含む)。

- (オプション)「プラットフォーム」を選択し、デプロイ先となるアプリケーション・サーバーを選択した後、「ターゲット接続」ドロップダウン・リストから、ターゲット・アプリケーション接続を選択します。
デフォルトで、このプラットフォームはデプロイ時にデプロイ先のサーバーに一致するように設定されます。ファイルにデプロイする場合は、Oracle Weblogic Serverの最新リリース(この場合はOracle WebLogic Server 12.x)であるデフォルト・プラットフォームがデフォルトになります。

4. デプロイメント・プロファイルのプロパティの編集ダイアログで、プロパティ値を設定してプロファイルを構成します。たとえば、プロファイルに含まれるファイル・グループなどを変更できます。完了したら「OK」をクリックします。

デプロイメント・プロファイルは、アプリケーション・レベルのデプロイメント・プロファイルであれば「アプリケーションのプロパティ」ダイアログから、プロジェクト・レベルのデプロイメント・プロファイルであれば「プロジェクト・プロパティ」ダイアログから使用でき、それぞれ編集または削除できます。

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

デプロイメント・プロファイルを作成したら、そのプロパティを表示および変更できます。

デプロイメント・プロファイルを編集または削除するには、次のようにします。

1. アプリケーション・レベルのデプロイメント・プロファイルの場合、「アプリケーション」→「アプリケーションのプロパティ」を選択して、「アプリケーションのプロパティ」ダイアログを開きます。
プロジェクト・レベルのデプロイメント・プロファイルの場合、「アプリケーション」→「プロジェクト・プロパティ」を選択して、「プロジェクト・プロパティ」ダイアログを開きます。

2. 左パネルで「デプロイ」をクリックし、「デプロイ」ページを開きます。

3. 編集または削除するデプロイメント・プロファイルを選択し、次のいずれかをクリックします。

- デプロイメント・プロファイルのプロパティの編集ダイアログを開く場合は、「編集」をクリックします。

- デプロイメント・プロファイルを削除する場合は、「削除」をクリックします。

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

構成は、コンポーネント・ファイルからアーカイブ・ファイルをアセンブルするプロセスです。構成は、「デプロイメント・プロファイルのプロパティ」ダイアログの「ファイル・グループ」ブランチで指定します。

「ファイル・グループ」ブランチはファイル・グループのリストで構成され、各グループでコンポーネントを指定します。パッケージ化されたアーカイブは、すべてのファイル・グループを統合したものです。ファイル・グループの順序によって名前の競合が解決されます。2つのファイルに同じ名前が付けられている場合、リストの上位のファイル・グループ内のファイルが含められ、下位のファイル・グループ内のファイルが省略されます。

新規に作成されたデプロイメント・プロファイルには、1つ以上の事前定義済ファイル・グループが含まれます。ファイル・グループは追加、削除および編集できます。

ファイル・グループは、一連のフィルタで抽出されたソース元によって定義されます。ソース元はソース・ファイル、JARファイルおよびそれらを含めるために選択されたディレクトリです。フィルタは、ソース元またはソース元のコンポーネントのサブディレクトリおよびファイルに適用される規則であり、パッケージ化するセットおよびファイルを識別します。ファイル・グループには、次の3つの種類があります。

- 「パッケージ化」ファイル・グループ・タイプでは、ソース元、プロジェクト・ディレクトリなどのディレクトリ、JARファイルおよびフィルタを選択できます。このファイル・グループは柔軟で透過的なメカニズムであり、ほとんどのプロジェクトに適しています。

- 「依存性分析」ファイル・グループ・タイプでは、プロジェクト・ファイルおよびそれらの依存性であるソース元を選択できます。以前のリリースから移行したプロファイルには、依存性分析ファイル・グループが含まれます。

- 「ライブラリ」ファイル・グループ・タイプでは、プロジェクト・ライブラリであるソース元を選択できます。ライブラリ・ファイル・グループは、WARデプロイメント・プロファイルに対して作成されます。ライブラリ・ファイル・グループは、既存のJARファイルを再パッケージ化する必要があるプロジェクトに役立ちます。

9.3.4 デプロイメント依存関係の作成方法と編集方法

アプリケーションのコンポーネント間でのデプロイメントの依存性は、プロジェクトのデプロイメント・プロファイルに指定されます。プロジェクトのデプロイメント・プロファイルに、直接のアップストリームであるプロジェクトのプロファイルを指定します。デプロイメント・プロファイルがデプロイメント用にアクティブになっている場合、その依存性が最初にデプロイされます。

デプロイメント・プロファイルの「プロファイルの依存性」ページで、デプロイメント・プロファイル依存性を設定します。現在のアプリケーション内のデプロイメント・プロファイルのみが選択用にリストされます。詳細は、「ヘルプ」をクリックしてください。次のようなプロファイル依存性を選択できます。

- プロファイルとプロファイルの依存性

- プロファイルと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.4.1 ライブラリの依存性について

依存ライブラリとは、モジュールのコンパイルと実行に必要とされるライブラリです。ライブラリを含むプロジェクトの「プロジェクト・プロパティ」ダイアログの「ライブラリとクラスパス」ページで、依存ライブラリはエクスポート可能として表示されます。

アプリケーションでは、次のプロジェクトに依存ライブラリを配置できます。

- 現在のモジュールのプロファイルのプロジェクト。これはプロファイル・コンテナです。

- プロファイル・コンテナが依存するプロジェクト。

- このモジュールのプロファイルについて、プロファイルの依存性に関連付けられているプロジェクト(そのプロファイルとプロジェクトの依存性に対して再帰的に)。

プロジェクトの依存性(左側に矢印)とプロファイルの依存性(右側に矢印)の例を次に示します。

図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.4.1.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.4.1.2 ライブラリのmanifestエントリ

ライブラリが、標準の\libまたはAPP-INF\lib以外のディレクトリにあるEARアーカイブに含まれる場合は、そのライブラリを参照するモジュールに、必要なmanifestエントリが自動的に挿入されます。

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

デプロイメント・ディスクリプタは、アプリケーションのデプロイ構成を定義するサーバー構成ファイルで、必要に応じて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 WebLogic Serverスタンドアロン・クライアントの開発』のクライアント・アプリケーション・デプロイメント・ディスクリプタ要素に関する章を参照してください。

application.xml

EJBモジュールやWebモジュールなど、Java EEアプリケーションのコンポーネントを指定します。アプリケーションの追加構成を指定することもできます。このディスクリプタは、アプリケーションのEARファイルの/META-INFディレクトリに含める必要があります。

weblogic-application.xml

ファイル形式は、weblogic-application.xsdに定義されています。

詳細は、『Oracle WebLogic Server XMLアプリケーションの開発』を参照してください。

ejb-jar.xml

JAR内のEnterprise JavaBeansの特定の構造特性および依存性を定義し、Beanがコンテナとの相互作用をどのように実行するかに関する指示をEJBコンテナに提供します。

weblogic-ejb-jar.xml

このファイルの形式は、weblogic-ejb-jar.xsdに定義されています。

persistence-configuration.xml

EJB 3.x モジュールの場合。このファイルの形式は、persistence-configuration.xsdに定義されています。

詳細は、『Oracle WebLogic Server Enterprise JavaBeansの開発』を参照してください。

weblogic-cmp-rdbms-jar.xml

EJB 2.1モジュールの場合。このファイルの形式は、weblogic-rdbms20-persistence.xsdに定義されています。

ra.xml

RARファイルにパッケージ化されたリソース・アダプタの実装コード、構成プロパティおよびセキュリティ設定に関する情報が含まれています。

weblogic-ra.xml

このファイルの形式は、weblogic-ra.xsdに定義されています。

詳細は、『Oracle WebLogic Serverリソース・アダプタの開発』を参照してください。

web.xml

静的ページ、サーブレット、JSPページなど、Java EE Webコンポーネント・セットを指定して構成します。また、Webコンポーネントがコールする可能性のあるEJBなどの他のコンポーネントも指定して構成します。複数のWebコンポーネントで独立したWebアプリケーションを形成し、スタンドアロンWARファイルでデプロイできます。

weblogic.xml

このファイルの形式は、weblogic-web-app.xsdによって定義されます。

詳細は、『Oracle WebLogic Server XMLアプリケーションの開発』を参照してください。

なし。

module-name-jdbc.xml

デプロイ済アプリケーションで使用されるデータソースを定義します。

このファイルの形式は、weblogic-jdbc.xsdによって定義されます。

詳細は、『Oracle WebLogic Server JDBCデータ・ソースの管理』を参照してください。

plan.xml

このファイルの形式は、deployment-plan.xsdによって定義されます。

名前/値ペアのリストと、アプリケーションの様々なデプロイメント・ディスクリプタの説明が含まれます。管理者はこれを使用して、デプロイメント・ディスクリプタの値をオーバーライドできます。

詳細は、『Oracle WebLogic Serverへのアプリケーションのデプロイ』を参照してください。

weblogic-diagnostics.xml

このファイルの形式は、weblogic-diagnostics.xsdによって定義されます。

診断アプリケーション・モジュールで診断監視を作成または変更する際に、WebLogic Server管理コンソールで使用されます。

詳細は、『Oracle WebLogic Server診断フレームワークの構成と使用』を参照してください。

weblogic-jms.xml

このファイルの形式は、weblogic-jms.xsdによって定義されます。

Oracle WebLogic ServerでJMSドライバを構成する際に使用されます。

詳細は、『Oracle WebLogic Server JMSアプリケーションの開発』を参照してください。

weblogic-webservices.xml

このファイルの形式は、weblogic-webservices.xsdによって定義されます。

詳細は、『Oracle WebLogic Server WebLogic Webサービス・リファレンス』を参照してください。

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

必要なデプロイメント・ディスクリプタの多くは、自動的に作成されます。必要なデプロイメント・ディスクリプタが存在しない場合や、追加のディスクリプタを作成する必要がある場合は、明示的な作成が可能です。

始める前に:

デプロイメント・ディスクリプタがすでに生成されているかどうかを確認します。

デプロイメント・ディスクリプタを作成する手順:

1. 「アプリケーション」ウィンドウで、ディスクリプタを作成するプロジェクトを右クリックし、「新規」を選択します。

2. 「新規ギャラリ」で、「一般」を展開し、「デプロイメント・ディスクリプタ」、ディスクリプタ・タイプの順に選択して、「OK」をクリックします。
目的の項目が見つからない場合は、正しいプロジェクトが選択されていることを確認してから「すべての機能」タブを選択するか、「検索」フィールドを使用してディスクリプタを検索します。項目が有効になっていない場合は、そのタイプのディスクリプタがプロジェクトにまだ存在しないことを確認します。1つのプロジェクトで使用できるディスクリプタのインスタンスは1つのみです。

「デプロイメント・ディスクリプタの作成」ウィザードが起動し、選択したデプロイメント・ディスクリプタのタイプに応じて、概要エディタまたはソース・エディタでファイルが開きます。

注意:

EARファイルの場合は、1つのアプリケーションに、どのような種類であっても複数のデプロイメント・ディスクリプタを作成しないでください。実行時には、アプリケーション・リソースのディスクリプタ、またはEARレベルで生成されたディスクリプタのみが使用されます。アプリケーションの複数のプロジェクトが同じデプロイメント・ディスクリプタを使用すると、起動されたプロジェクトに属するディスクリプタが他のディスクリプタより優先されます。この制約は、application.xml、weblogic-jdbc.xml、jazn-data.xmlおよびweblogic.xmlに適用されます。

アプリケーションレベルのディスクリプタの作成に最適な場所は、「アプリケーション」ウィンドウの「アプリケーション・リソース」パネルの「ディスクリプタ」ノードです。アプリケーションは、確実に、正しいディスクリプタとともに作成されます。

デプロイメント・ディスクリプタのプロパティを確認または変更するには、次の手順を実行します。

1. 「アプリケーション」ウィンドウでデプロイメント・ディスクリプタを選択します。

2. 右クリックして、「開く」を選択します。
ファイルは、ディスクリプタ・タイプごとに固有の概要エディタで、または「XMLエディタ」ウィンドウで開かれます。

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

デプロイメント・ディスクリプタを作成したら、JDeveloperの各種ダイアログを使用するか、ソース・エディタでファイルを編集することで、そのプロパティを変更できます。デプロイメント・ディスクリプタは、通常「アプリケーション・ソース」ノードにあるXMLファイル(application.xmlなど)です。

デプロイメント・ディスクリプタのプロパティを表示または変更する手順:

1. 「アプリケーション」ウィンドウまたは「アプリケーション・リソース」パネルで、デプロイメント・ディスクリプタをダブルクリックします。

2. 概要エディタで、「概要」タブまたは「ソース」タブを選択し、プロパティ値を設定してディスクリプタを構成します。
概要エディタが使用できない場合は、ソース・エディタでファイルが開きます。

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

「プリファレンス」ダイアログの「デプロイメント」ページでグローバル・デプロイメント・オプションを設定できます。

デプロイメント設定を構成するには、次の手順を実行します。

1. メイン・メニューから「ツール」→「プリファレンス」を選択します。

2. 「デプロイメント」ノードを選択します。必要に応じて、デプロイメント・オプションを構成します。詳細は、「ヘルプ」をクリックしてください。

3. 「OK」をクリックします。

注意:

アプリケーション固有およびプロジェクト固有のデプロイメント・プロファイル・オプションは、アプリケーション・プロパティまたはプロジェクト・プロパティから設定してください。「アプリケーション・プロパティ」および「プロジェクト・プロパティ」ダイアログは「アプリケーション」メニューにあります。

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

この項では、アプリケーションを正常にアプリケーション・サーバーにデプロイするために実行する必要があるタスクについて説明します。

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

JDeveloperでアプリケーションを作成する際には、アプリケーション・サーバー接続を介して、パッケージ化されたアプリケーションをOracle WebLogic Serverにデプロイできます。パッケージ化されたアプリケーションには、デプロイするファイルの指定、それらのファイルの構成の説明、およびターゲット・サーバーの指定を行うデプロイメント・プロファイルが含まれます。ターゲットのOracle WebLogic Serverインスタンスは、ローカルでインストールするか、ネットワーク・ドライブにマップする必要があります。

Oracle WebLogic Serverへのデプロイのためにアプリケーションを構成するには、次のようにします。

1. サーバー上で、必要なJDBCデータソースを設定します。詳細は、第9.3.7.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.7.2 デプロイ用にクライアント・アプリケーションを構成する方法

Java EEクライアント・モジュールは、クライアントJARファイルとしてパッケージ化されます。このファイルには、1つ以上のJavaアプリケーション・コンポーネント、および1つのクライアント・デプロイメント・ディスクリプタ・ファイル(application-client.xml)が含まれています。デプロイメント・プロファイルとデプロイメント・ディスクリプタ・ファイルを作成した後は、クライアントJARをアプリケーション・サーバーにデプロイできます。

クライアント・アプリケーションをデプロイ用にパッケージ化するには、次の手順を実行します。

1. プロジェクト用のクライアントJARファイル・デプロイメント・プロファイルを作成します。
プロジェクトに、すでにプロファイルが作成されている場合があります。複数のターゲットにデプロイする場合は、ターゲットごとに個別のプロファイルを作成します。

2. application-client.xmlデプロイメント・ディスクリプタ・ファイルを作成します(プロジェクトに存在しない場合)。
通常、このファイルはアプリケーション・クライアントとともに作成されます。

9.3.7.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.7.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上でパスワードを設定できます。

- グローバル・データソースの作成。

- アプリケーション・レベルのデータソースの手動作成。

ojdeployの詳細は、第9.8項「コマンドラインからのデプロイ」を参照してください。

- -nodatasourcesスイッチを使用しない場合は、アプリケーション・レベルの資格証明マッピングを使用する方法でのみパスワードを設定できます。

9.3.7.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のデプロイは機能しません。

コマンドライン・オプションを渡すためにターゲット・アプリケーション・サーバー接続に直接アクセスできます。たとえば、RMI-IIOPデプロイメントをサポートするために、必要なスタブとスケルトンをクライアント側に含むクライアントJARを指定できます。これらのオプションは、サーバーのデフォルト設定を上書き(つまり無視)します。

デプロイ時にターゲット・アプリケーション・サーバー接続にオプションを渡すには、次の手順を実行します。

1. まだ作成していない場合は、適切なデプロイメント・プロファイルを作成します。

2. 「アプリケーション」ウィンドウで、プロジェクトを右クリックして「プロパティ」を選択します。

3. 「プロジェクト・プロパティ」ダイアログの左側のパネルで、「デプロイメント」を選択します。

4. 編集するデプロイメント・プロファイルを選択し、「編集」をクリックします。

5. コマンド・オプションを渡すターゲット接続タイプに対応したページが開きます。

6. ページを編集するか、または「デフォルトに戻す」をクリックしてターゲット・サーバーのデフォルト設定に戻します。
詳細は、「ヘルプ」をクリックしてください。

7. 「デプロイメント・プロファイルのプロパティ」の編集が終了したら、「OK」をクリックします。

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

デプロイメント・プランを使用すると、デプロイメントの値をオーバーライドできます。これを行う理由の1つは、テストを終了したアプリケーションを本番環境で実行できるように、デプロイメント・プロファイルを変更せずに設定を変更することです。

デプロイメント・プランを使用するように構成されているEAR、WARまたはEJB JARアーカイブをデプロイすると、アーカイブとデプロイメント・プランの両方がアプリケーション・サーバーに送信されます。1つのアプリケーションで複数のデプロイメント・プランを使用できます。

詳細は、『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.8.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.8.2 デプロイメント・プランの生成方法

デプロイメント・プランを使用すると、アプリケーションのデプロイメント構成を複数のWebLogic Server環境にエクスポートできます。

デプロイメント・プランは、JDeveloperで最初から作成できます。

または、この項で説明しているように、デプロイメント・プランを生成してJDeveloperでアプリケーションに追加し、目的に合せて編集できます。これを行うには、次の2つの方法があります。

- アプリケーションをOracle WebLogic Serverにデプロイし、管理コンソールを使用してアプリケーションに変更を加えて、生成されたデプロイメント・プランを保存します。次に、デプロイメント・プランをJDeveloperでソースにコピーし戻し、必要な場合には変更できます。詳細は、『Oracle WebLogic Serverへのアプリケーションのデプロイ』で、「製品デプロイ用のアプリケーションの構成」のデプロイメント・プランに関する項を参照してください。

- weblogic.PlanGeneratorコマンドライン・ツールを使用し、EARを使用するアプリケーションにデプロイメント・プランを生成します。詳細は、『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ファイルを作成します(前の項を参照してください)。myapp.jarなどのJARファイルが作成されます。

8. コマンドラインから次のコマンドを実行し、実行可能JARファイルを起動します。

java -jar myapp.jar

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

アプリケーションはOSGiバンドルとしてデプロイでき、それをOSGiコンテナにデプロイできます。

JDeveloperには、異なるアプリケーションに対する様々なデプロイメント・モードがあります。ただし場合によっては、アプリケーションをJARファイルとしてファイル・システムに迅速かつ簡単にデプロイすることが必要になります。

注意:

OSGiバンドルをデプロイするには、デプロイメント・プロファイルをあらかじめ作成しておく必要があります。詳細は、第9.3.3項「デプロイメント・プロファイルの作成および編集方法」を参照してください。

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の一部とするための手順ではありません。

詳細は、『Oracle Application Development FrameworkによるFusion Webアプリケーションの開発』でカスタマイズされたアプリケーションをパッケージおよびデプロイする方法に関する説明を参照してください。

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ファイルとしてアプリケーション・サーバーにデプロイできます。

詳細は、『Oracle WebLogic Serverアプリケーションの開発』の第9章「共有Java EEライブラリおよびオプション・パッケージの作成」を参照してください。

共有ライブラリ・アーカイブを作成してデプロイするには:

1. 共有ライブラリのデプロイメント・プロファイル(共有ライブラリJARファイル)を作成します。詳細は、第9.3.3.2項「デプロイメント・プロファイルの作成」を参照してください。

2. 「JARデプロイメント・プロファイルのプロパティの編集」ダイアログで、ライブラリをプロファイルに追加します。「ファイル・グループ」を選択し、「新規」をクリックして「ファイル・グループの作成」ダイアログを開き、新しいファイル・グループを定義します。

3. ターゲット・アプリケーション・サーバーへの接続を作成します。

4. 「アプリケーション」ウィンドウでプロジェクトを右クリックし、「デプロイ」→共有ライブラリ・デプロイメント・プロファイルを選択します。

5. 「共有ライブラリのデプロイ」ダイアログの「デプロイメント・アクション」ページで、Weblogicアプリケーション・サーバーへのデプロイを選択し、「終了」をクリックします。

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 Mac OS Xプラットフォームからのojdeployの使用

Mac OS Xプラットフォームでojdeployを使用している場合は、jdev_install/jdeveloper/jdev/bin/jdev.confファイル内の変数SetSkipJ2SDKCheckをtrueに設定する必要があります。エントリは次のようになります。

SetSkipJ2SDKCheck true

9.8.2 ojdeployの使用

ojdeployは、IDE全体をGUIモードで実行することなくJDeveloperデプロイメント・プロファイルのデプロイメントを可能にするコマンドライン・ツールです。JDeveloperデプロイメントを外部のビルド・スクリプトと統合するために使用できます。現在JDeveloperでは、Antスクリプトによるデプロイをサポートしています。詳細は、第9.8.3項「Antを使用したコマンドラインからのデプロイ方法」

ojdeployを使用したコマンドラインによるデプロイは、バッチ・ファイルや他のスクリプトを使用して既存のプロジェクトやアプリケーションをデプロイする場合に特に便利です。

ojdeployは、インプロセスでローカルにデプロイメントを実行することも、バックグラウンド・サーバーであるojserverに発行することもできます。詳細は、第9.8.4項「ojserverの使用」を参照してください。

ojdeployはjdeveloper_install/jdeveloper/jdev/binのコマンドラインから入手できます。次のように使用します。

ojdeploy <command>

詳細を確認するには、次のように入力します。

ojdeploy <command> help

使用可能なコマンドは次のとおりです。

- deployToApplicationArchive アプリケーション・アーカイブ・ファイルにデプロイします。

- deployToFeatureArchive 機能アーカイブ・プロファイルをFARファイルにデプロイします。

- deployToPackage iOSまたはAndroidプロファイルをパッケージにデプロイします。

- deployToSimulator iOSまたはAndroidプロファイルをシミュレータにデプロイします。

- deployToDevice iOSまたはAndroidプロファイルをデバイスにデプロイします。

- deployToArchive アーカイブ・ファイルにデプロイします(デフォルト)。

9.8.2.1 ビルド・スクリプトを編集せずにオーバーライドする方法

ビルド・スクリプトで定義したマクロ値を渡したりオーバーライドするには、-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.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.3 ワイルドカード・サンプルの使用方法

プロジェクト名とプロファイル名は、"*"、"name*"、"name1,name2,name3,..."、またはこれらの組合せとして指定できます。アプリケーション名は列挙の必要があるため、アプリケーション名に"*"は使用できませんが、"application1"または"application1,application2,application3"のように指定できます。

次に例を示します。

- 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.4 バッチ・デプロイメントのログ・ファイルの作成方法

パラメータ-statuslogfile cを使用して、ログ・ファイルの絶対パスを指定できます。このパスにマクロを含めることはできません。

ログ・ファイルには、処理されたデプロイ・タスクと各タスクのステータスがXML形式でリストされます。ステータスはSUCCESSまたはFAILEDのいずれかで、exitcode属性が含まれます。exitcodeに指定できる値は、次のとおりです。

- 0 - 成功

- 1 - 致命的エラー(NPE、OutOfMemoryなど)

- 2 - JDeveloper構成エラー(拡張子の欠落など)

- 4 - デプロイ・エラー(コンパイル、デプロイ例外など)。すべての終了コードはビットごとにOR演算されます。

各ログの最後にあるサマリー・セクションでは、組み合されたステータスを使用できます。

例9-2 バッチ・デプロイメントのログ出力の例

<?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-3 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-4 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を実行します。JDeveloper内からも実行できます。実行するには、「アプリケーション」ウィンドウでbuild.xmlノードを右クリックし、「すべて」または「デプロイ」ターゲットを選択します。

例9-5 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.8.4 ojserverの使用

ojserverは、サーバー・モードで動作し、リモート・クライアントのリクエストをリスニングする、JDeveloperのヘッドレス・バージョンです。クライアント。RMIを使用してサービス・リクエストをサーバーに送信します。ojserverの主な目的は、JDeveloperをヘッドレス・モードで実行するバッチ・スクリプトでコマンドライン・ツールを使用する際に発生する起動時間を短縮することです。ojserverはoracle/jdeveloper/jdev/binディレクトリにあります。

ojserverの使用方法、パラメータ、オプションおよび例を表示するには、jdeveloper_install/jdeveloper/jdev/binのコマンドラインでojserverと入力します。

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サーバーが提供されます。これを使用すると、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.xml Antビルドファイルを変更する必要があります。

- 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-6 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 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 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-7 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 WebLogic Server Springアプリケーションの開発と管理』でWebLogic SCA RuntimeのWebLogic Serverへのデプロイに関する章を参照してください。

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にあるsetStartupEnv.cmd (Windowsの場合)またはsetDomainEnv.sh (Linuxの場合)で行います。

まず、前述のいずれかの方法で統合WebLogic Serverを停止する必要があります。

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

JDeveloperを新しい場所に再インストールする場合、ハードコードされたJDeveloperへの参照が統合アプリケーション・サーバーに使用されていることで、問題が起こる場合があります。次のいずれかの方法を実行する必要があります。

- 新しいシステム・ディレクトリが使用されるようにJDEV_USER_DIRを設定します。これについては『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アプリケーションの開発

この部では、Oracle JDeveloperによるJavaアプリケーションの開発方法について説明します。JDeveloperは、開発ライフ・サイクル全体をサポートすることにより、Javaベースのアプリケーションとユーザー・インタフェースの開発を簡素化します。

この部に含まれる章は次のとおりです。

- 第10章「Javaアプリケーションの開発のスタート・ガイド」
この章では、Javaアプリケーションの開発に役立つJDeveloperのツールと機能について紹介します。Javaソース・エディタ、ツールバー・アイコン、コード・インサイトなどがあります。

- 第11章「Javaコードの使用」
この章では、JDeveloperのエディタ、ツールおよび機能を使用して、Javaアプリケーションのコードを作成する方法について説明します。説明には、Javaコードの参照、注釈付けおよびリファクタなどの機能が含まれます。

- 第12章「Javaプロジェクトのビルド」
この章では、Javaプロジェクトおよびアプリケーションのビルドおよびコンパイル用にJDeveloperが提供する様々なメソッドについて説明します。

- 第13章「Javaプロジェクトの最適化」
この章では、Javaプロジェクトの最適化、監査、プロファイル作成およびユニット・テストを行う方法について説明します。メモリー・プロファイリングおよびCPUプロファイリングという2つのタイプのプロファイリングがサポートされています。JDeveloperの「コード・アシスト」機能を使用すると、コードの編集中にバックグラウンド監査を実行できます。JDeveloperでは、すべてのコード監査規則違反に関するレポートが生成され、規則違反を修正できます。プロジェクトのユニット・テストを行うには、「JUnit」プラグインを使用します。

- 第14章「Javaプログラムの実行およびデバッグ」
この章では、Javaプログラムの実行およびデバッグの方法について説明します。JDeveloperには、Javaプログラムの実行方法を監視および制御するいくつかの方法があります。Javaプログラムを実行するとき、JDeveloperは実行およびデバッグされるプロセスを常時追跡します。

- 第15章「Java Swingユーザー・インタフェースの実装」
この章では、Java Swingインタフェースの開発方法について説明します。ここでは、コンポーネントとJDeveloperのUI設計ツールを使用してユーザー・インタフェースを作成する際に実行する基本的なタスクについて説明します。

- 第16章「JavaBeansの使用」
この章では、JavaBeansを使用して、JavaアプレットおよびJavaクライアント・アプリケーションをビルドするための再利用可能なソフトウェア・コンポーネントを作成する方法を説明します。JavaBeanクラスを再使用および作成するためのBeanの開発における第1ステップ、およびBeanInfoクラスの作成や標準アダプタおよび匿名アダプタの使用など、追加のステップについて説明します。

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

この章では、Javaコードを記述するプロセスを高速化するためにJDeveloperが提供するツールおよび機能の概要について説明します。

この章には次の項が含まれます:

- 第10.1項「Javaアプリケーションの開発について」

- 第10.2項「Javaソース・エディタの使用」

- 第10.3項「コード・インサイトの使用」

- 第10.4項「コード・ピークの使用」

- 第10.5項「スクロール・ヒントの使用」

- 第10.6項「ヒントの使用」

- 第10.7項「インクリメンタル検索」

- 第10.8項「ショートカット・キーの使用」

- 第10.9項「ブックマーキング」

- 第10.10項「Javaソースの参照」

- 第10.11項「コード・テンプレートの使用」

- 第10.12項「Javaソース・エディタのプリファレンスの設定」

- 第10.13項「ツールバー・オプションの使用」

- 第10.14項「「クイック・アウトライン」ウィンドウの使用」

- 第10.15項「Java UIビジュアル・エディタの使用」

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

JDeveloperでは、JavaBeansを使用してJavaアプレットおよびクライアント・アプリケーションをビルドおよびアセンブルでき、SwingおよびAWTコンポーネントを使用して対話型のデスクトップベースのGUIアプリケーションをビルドおよびアセンブルできます。JDeveloper IDEでJava Web Startを備えたJavaクライアント・アプリケーションを作成および実行することもできます。

10.2 Javaソース・エディタの使用

Javaソース・エディタではJavaソース・ファイルが表示され、Javaコードを編集できます。Javaソース・エディタはJDeveloperに用意されている特殊な形式の汎用ソース・エディタで、XML、JSPおよびHTMLなど、複数のテクノロジ間でソース・コードを編集できます。

「アプリケーション」ウィンドウでノードをダブルクリックすると、デフォルトのエディタが開かれるか、前景に表示されます。ソース・エディタでファイルを開くと、対応する要素が「構造」ウィンドウに階層形式で表示されます。「構造」ウィンドウでノードをダブルクリックすると、ソース・エディタに表示されているその要素の定義にフォーカスが移動します。

Javaソース・エディタの動作は、「プリファレンス」ダイアログでプリファレンスを指定することでカスタマイズできます。詳細は、第10.12項「Javaソース・エディタのプリファレンスの設定」を参照してください。

10.3 コード・インサイトの使用

Javaコード・インサイトでは、最上位のパッケージ、インポートしたクラス、デフォルトのオブジェクト・メソッド、非推奨の項目など、不要な情報をフィルタを使用して除外できます。また、ローカル変数、ローカルで宣言したメンバー、オーバーロードされたメソッドなど、より重要な詳細を強調できます。

コード・インサイトを使用すると、コード作成のプロセスにかかる時間を短縮できます。コード・インサイトには、構文補完インサイトおよびパラメータ・インサイトの2種類があります。それぞれの機能を個別に使用可または使用不可にしたり、該当する挿入ポイントにカーソルを置いてからポップアップが表示されるまでの遅延時間(秒単位)もそれぞれ設定できます。

構文補完を起動するには、ピリオドを入力した後で休止するか、[Ctrl]キーを押しながら[Space]キーを押します(デフォルト・キーマップの場合)。パラメータ・インサイトを起動するには、左丸カッコを入力した後、休止するか、または[Ctrl]、[Shift]および[Space]を同時に押します(デフォルト・キーマップの場合)。いずれのタイプのインサイトも、終了する場合は[Esc]キーを押します。キーマップを変更すると、これらのキーボード・アクセラレータは変わる場合があります。構文補完インサイト・リストの右下にある「QuickDoc」をクリックすると、現在選択されている要素のJavadocを表示できます。

構文補完インサイトによってメソッドが構文補完された後、メソッド・コードに基づいてパラメータが自動的に入力されます。次のメソッドが使用されます。

これらのパラメータは、タブ移動し、手動で編集したりパラメータ・インサイトを使用して編集できます。クラスへの未解決の参照の完全一致が1つのみ検出できた場合は、インポートが自動的に追加されます。この機能のプリファレンスは、「プリファレンス」ダイアログで設定できます。

また、コード・インサイトの構文補完インサイトのJava固有の実装であるメンバー・インサイトを使用および構成し、コード・インサイトのパラメータ・インサイト・ウィンドウに、非推奨のメンバーを表示するかどうかを選択できます。

メンバー・インサイトは、特定のコンテキストからアクセス可能なインスタンスおよび静的なメンバー(フィールド、メソッド、内部クラス)を示すリストを提供します。たとえば、これにより特定のメソッドからコール可能なメソッドがわかります。

コード・インサイトの設定を変更するか、アクセラレータを表示または変更するには、メイン・メニューで「ツール」→「プリファレンス」を選択して「プリファレンス」ダイアログを開き、該当のページを表示します。詳細は、第11.3.1項「Javaビジュアル・エディタでのコードの編集」を参照してください。

10.3.1 コード・インサイトを使用したJavaコードへの注釈の追加

注釈は、プログラム要素に情報を関連付けるために使用されます。注釈は、クラス、フィールド、メソッド、パラメータ、ローカル変数、コンストラクタ、列挙およびパッケージで使用できます。Javaコードに注釈を追加するには、注釈を宣言し、機能を作成し、注釈を追加します。

注釈の追加を開始すると、文コンテキストに基づいて、「メンバー・インサイト」([Ctrl]+[Space])にオプション(フィールド、メンバー、クラス)のリストが表示されます。「パラメータ・インサイト」([Ctrl]+[Shift]+[Space])には、注釈タイプの要素の名前、デフォルト値、作成された値など、注釈に関する情報が表示されます。また、ここでは、注釈内で現在カーソルの下にある要素が強調表示されます。

詳細は、第11.4項「ドキュメント・コメントの追加方法」を参照してください。

10.4 コード・ピークの使用

[Shift]キーを押しながらマウスを変数またはメソッドの上に置くと、その定義をゴースト・ウィンドウに表示できます。この機能は、現在のコードからカーソルのフォーカスを移動せずにコードをすばやく表示できるので便利です。

図10-1 コード・ピーク

10.5 スクロール・ヒントの使用

垂直スクロール・バーのドラッグ中、バーの横に小さなヒント・ウィンドウが表示され、全部または一部が表示可能なメソッドが画面に表示されます。これにより、クイック・スクロール中にどのメソッドが表示されるかが、より容易にわかります。先頭がその時点で表示されていないメソッドの名前もわかります。

10.6 ヒントの使用

ヒントは、Javaソース・コード・エディタのテキストや概要の左余白など、アプリケーション内のアイテムに関する詳細情報を表示するポップアップ・ウィンドウです。ヒントは、マウス・カーソルでアイテムをポイントするかアイテムの上にカーソルを重ねると表示されます。マウスを別の場所に移動するか、UI内の別の場所をクリックするまで表示されます。

図10-2 ヒント

10.7 インクリメンタル検索

インクリメンタル検索を実行するには、メイン・メニューから「検索」→「次をインクリメンタル検索」または「検索」→「前をインクリメンタル検索」を選択します。表示されるダイアログで入力を開始します。入力すると、入力した特定の文字の組合せに該当する、前方または後方の次のインスタンスにカーソルが移動します。この検索機能ではワイルドカードはサポートされません。

10.8 ショートカット・キーの使用

ショートカット・キー(アクセラレータ)とはキーの組合せであり、マウスではなくキーボードを使用して、移動またはなんらかの操作を実行するために使用できます。様々な事前定義済のキーマップから選択するか、または独自のアクセラレータを定義できます。

既存のアクセラレータの表示または変更、新規アクセラレータの定義、初期設定キーマップのロードを実行するには、メイン・メニューから「ツール」→「プリファレンス」を選択して「プリファレンス」ダイアログを開き、「ショートカット・キー」ページに移動します。エディタのアクセラレータを表示または変更するには、「カテゴリ」リストから「コード・エディタ」を選択します。

ブロック・コメントは、「行コメントの設定」によって指定されます。デフォルト・キーマップでは、[Ctrl]+[Shift]+[/]または[Ctrl]+[/]として定義されています。

詳細は、第3.5項「JDeveloperでのキーボード・ナビゲーション」を参照してください。

10.9 ブックマーキング

コードのブックマーキング時に、次の作業が可能です。

- 「ブックマーク」ウィンドウで、作成したすべてのブックマークのリストを表示できます。このウィンドウは、「ブックマークに移動」アイコンをクリックすると表示されます。このウィンドウには、ブックマークを含む行番号とメソッド名も表示されます。

図10-3 「ブックマークに移動」アイコン

- キーボード・ショートカット[Ctrl]+[Shift]-<数字>を使用すると、番号付きのブックマークを作成できます。[Ctrl]+<数字>を使用すると、そのブックマークにすばやくナビゲートできます。

詳細は、第3.8.7項「ソース・ファイル内のブックマークの設定方法」を参照してください。

10.10 Javaソースの参照

開いているJavaファイルの識別子のソースにナビゲートするには、参照する識別子を右クリックし、「宣言に移動」を選択します。[Ctrl]キーを押しながら識別子をクリックして、そのソースに移動することもできます。ソースが使用不可である場合、クラス・ファイルがリバース・エンジニアリングされます。インポートされたクラス、インタフェース、メンバー・フィールド、メソッドおよびローカル変数を参照できます。メソッドまたはコンストラクタのコールを参照している場合、この宣言の検索により型を解決して、適切なメソッドまたはコンストラクタのコールを決定します。たとえば、例10-1のコードの場合、SetTextで宣言検索が取り消されます。javax.swing.JButtonのソース・コードが呼び出され、setText()メソッドが表示されます。

例10-1 宣言検索の取消し

import javax.swing.JButton
...
JButton b1 = new JButton();
...
b1.SetText: ('OK');

識別子を参照できない、またはカーソル位置に何もない場合、コンテキスト依存メニューのこの検索コマンドは無効になります。適切な移動先が見つからない場合や、アクセス制約(プライベート・メンバーなど)のために識別子を参照できない場合、Javaソース・エディタのステータス・バーには、その旨を示すメッセージが表示されます。

10.11 コード・テンプレートの使用

コード・テンプレートは、コードを手動で入力しなくてすむようにソース・ファイルに挿入できる事前作成済のコードのセクションです。テンプレートでは、挿入されたコードは前後のコードに合うように適切に変更でき、コード・テンプレートに必要なインポートが自動的にインポートされます。ショートカットを使用すると、必要なテンプレートを迅速に選択できます。ソース・ファイル内の任意の位置で[Ctrl]キーを押しながら[Enter]キーを押すと、選択可能なコード・テンプレートのリストが表示されます。このリストに表示されるテンプレートはコンテキストに応じて決定され、現在の位置に適したテンプレートのみが表示されます。このリストの右下隅にある「QuickDoc」をクリックすると、選択したコード・テンプレートの構造が表示されます。たとえば、forループ用として既存のテンプレートを使用している場合は、「for」と入力し、[Ctrl]キーを押しながら[Enter]キー(デフォルト・キーマップの場合)を押します。テンプレートの内容は、次のようになります。

コード・テンプレートの完全なリストは、コード・エディタの「ヘルプ」にあります。コード・テンプレートを編集または作成するか、アクセラレータを表示または変更するには、メイン・メニューで「ツール」→「プリファレンス」を選択して「プリファレンス」ダイアログを開き、該当のページを表示します。

詳細は、第11.3.9項「コード・テンプレートの使用方法」を参照してください。

10.12 Javaソース・エディタのプリファレンスの設定

「プリファレンス」ダイアログを使用して、Javaソース・エディタの動作をカスタマイズできます。また、「プリファレンス」ダイアログを使用して、一般的なソース編集環境の設定を指定できます。詳細は、第3.8.2項「ソース・エディタのプリファレンスの設定方法」を参照してください。

Javaに適用されるコード・インサイトのオプションを設定するには、次のようにします。

1. メイン・メニューから、「ツール」→「プリファレンス」を選択します。

2. 「プリファレンス」ダイアログで、「コード・エディタ」ノードを開きます。
「ブックマーク」や「コード・テンプレート」などの選択可能なオプションのリストが表示されます。

3. オプションをクリックして、表示される新しいページでオプションを選択します。

4. 終わったら、「OK」をクリックします。

10.12.1 Javaソース・エディタのコメントおよびカッコの一致オプションの設定方法

JDeveloperでは、Javaソース・エディタのコメントおよびカッコの一致オプションを設定できます。たとえば、複数行のJavaコメントまたはJavadocコメントに新規の行を追加する際、先頭および末尾のアスタリスクを追加する場合に選択します。

ソース・エディタでJavaコメントおよびカッコの一致オプションを設定するには、次のようにします。

1. メイン・メニューから、「ツール」→「プリファレンス」を選択します。

2. 「プリファレンス」ダイアログで、「コード・エディタ」ノードを開きます。

3. 「表示」ノードを選択します。

4. 「表示」ページで、自動カッコの一致を有効または無効にして、遅延時間を設定できます。

5. 「OK」をクリックします。

6. 「プリファレンス」ダイアログを再び開き、「コード・エディタ」ノードを開いて「Java」ノードを選択します。

7. Javaページで、コメントおよびカッコの一致の属性を使用して、必要な処理を設定します。
たとえば、「閉じ大カッコまたは小カッコを自動的に追加」オプションを選択できます。

8. 「OK」をクリックします。

ブロック・コメントは、アクセラレータの機能です。デフォルト・キーマップで、[Ctrl]+[Shift]+[/]または[Ctrl]+[/]を使用して、Javaコードをブロック・コメント処理します。

10.12.2 Javaソース・エディタのimport文ソート・オプションの設定方法

Javaソース・エディタでimport文をソートするオプションを設定できます。

import文をソートするオプションを設定するには、次のようにします。

1. メイン・メニューから、「ツール」→「プリファレンス」を選択します。

2. 「プリファレンス」ダイアログで、「コード・エディタ」ノードを開きます。

3. 「Java」ノードを開いて、「インポート」を選択します。

4. 「インポート」ページでオプションを選択して、エディタのimport文のソートの際に必要な処理を設定します。

5. 「OK」をクリックします。

10.12.3 コーディング・スタイルの選択方法

「ツール」→「プリファレンス」ダイアログを使用して、Javaソース・コード・エディタで表示されるコードのスタイルを決定するプロファイルを選択します。コーディング・スタイルは、フォーマット、import文をコードで表示する方法、変数名、メンバー順序などのJavaコード表記規則を決定します。

Javaソース・コード・エディタのコーディング・スタイルを選択するには:

1. メイン・メニューから、「ツール」→「プリファレンス」を選択します。

2. 「プリファレンス」ダイアログで、「コード・エディタ」ノードを開きます。

3. 「コード・スタイル」ノードをクリックします。

4. 「コード・スタイル」ページで「プロファイル」を選択します。

5. 「OK」をクリックします。

10.12.3.1 コーディング・スタイルの編集方法

既存のコーディング・スタイルを編集して、選択可能な「プロファイル」オプションとして「コード・スタイル」ページに表示できます。また、XMLファイルから既存のコード・スタイル・プロファイルをインポートすることもできます。

既存のコード・プロファイルを編集するには:

1. 第10.12.3項「コーディング・スタイルの選択方法」の手順に従って、「プロファイル」リストで既存のプロファイルを選択します。

2. 「別名保存」をクリックして、新しいプロファイルの名前を入力します。

3. 「編集」をクリックします。

4. 「コード・スタイル・プロファイルの編集 - Javaコード表記規則」ページで、新しいプロファイルのオプションを選択します。

5. 「OK」をクリックします。

6. または、「インポート」をクリックしてコード・スタイル・プロファイルをXMLファイルからJDeveloperにインポートすることもできます。

10.12.3.2 拡張機能を使用したコーディング・スタイルの設定方法

拡張機能を使用してカスタムのコーディング・プロファイルを作成し、extension.xmlファイルを使用して、開発者などのロールに対するデフォルトとして設定します。詳細は、『Oracle Fusion Middleware Oracle JDeveloper拡張機能開発者ガイド』の「Oracle JDeveloper拡張機能の開発の概要」を参照してください。

拡張機能を使用してデフォルトのコーディング・プロファイルを設定するには:

1. 第10.12.3.1項「コーディング・スタイルの編集方法」に従ってカスタム・スタイルを編集します。

2. 「その他のアクション」リストから「エクスポート」を選択します。

3. 拡張機能に追加し、例10-2と同様にextension.xmlファイルにエントリを挿入します。

例10-2 extension.xmlファイル

<hooks>
<code-style xmlns="http://xmlns.oracle.com/ide/extension">
<profile-url>/META-INF/custom-profile.xml<profile-url>
</code-style>
<hooks>

4. プロファイルをデフォルトのスタイルとして設定するには、例10-3と同様に、ロール形成ファイルにプロファイル名が含まれるセクションを追加します。

例10-3 デフォルト・スタイルとしてプロファイルを設定

<c:settings-ui-customizations>
<c:page idref="/preferences/ceditor/style">
<c:field idref="CodingStylePreferences.profile">
<c:value>Custom Profile</c:value>
</c:field>
</c:page>
</c:settings-ui-customizations>

10.13 ツールバー・オプションの使用

Javaソース・エディタではJavaソース・ファイルが表示され、Javaコードを編集できます。表10-1に示すように、様々な機能を実行するアイコンは、Javaソース・エディタの上部にあります。

表10-1 ツールバー・オプション

アイコン

名前

説明

クイック・アウトライン

現在のクラスおよびそのスーパー・クラスの使用可能なメソッドおよびフィールドのツリーを表示する場合にクリックします。

このアイコンをクリックすると、「クイック・アウトライン」ウィンドウが表示されます(詳細は、第10.14項「「クイック・アウトライン」ウィンドウの使用」を参照)。このウィンドウはコードのすぐ上に浮かび、現在のクラスおよびそのスーパー・クラスの使用可能なメソッドおよびフィールドのツリーが表示されます。表示されるアイテムを減らすために、フィルタ・フィールドへの入力をすぐに開始できます。これによって、目的の場所に移動するための選択を迅速かつ簡単に行うことができます。

コード強調表示

カーソルが現在置かれているコード・コンポーネントのインスタンスをすべて強調表示する場合にクリックします。

すべての強調表示をクリア

すべての強調表示を取り消す場合にクリックします。

アクセッサの生成

「アクセッサの生成」ダイアログを使用してgetメソッドとsetメソッドをクラスに挿入する場合にクリックします。

メソッドのオーバーライド

フォーカスされているクラスの継承メソッドをオーバーライドする場合にクリックします。

インタフェースの実装

「インタフェースの実装」ダイアログを使用して、1つ以上のインタフェースを実装するようにターゲット・クラスを変更する場合に、またはターゲット・インタフェースを1つ以上の他のインタフェースに拡張する場合にクリックします。

再フォーマット

コードにソース・フォーマットを適用する場合にクリックします。

囲む

「コードを囲む」ダイアログを使用して、Javaソース・エディタに記述されている文字列の現在選択されているブロックをコーディング構成メンバーで囲む場合にクリックします。

ブックマークの設定

現在フォーカスされているコードの行でブックマークを挿入または削除する場合にクリックします。

次のブックマークに移動

次のブックマークにカーソルを置く場合にクリックします。

前のブックマークに移動

前のブックマークにカーソルを置く場合にクリックします。

選択した要素のみを表示

エディタで特定の1つの要素のみを表示する場合にクリックします。この機能を使用すると、メソッド、クラス、内部クラスまたはフィールド宣言に厳密なフォーカスを置くことができます。ファイル最下部のメッセージは、選択した要素の表示モードが現在アクティブであることを示します。

ブロック着色

ブロック着色を有効にする場合にクリックします。この機能を使用して、コードのブロックを強調表示して読みやすくすることができます。着色プリファレンスは、「プリファレンス」ダイアログを使用して設定できます。

10.14 「クイック・アウトライン」ウィンドウの使用

Javaソース・エディタの「検索」フィールドの右側にある「クイック・アウトライン」ツールバー・アイコン(図10-4)をクリックすると、図10-5に示すように、「クイック・アウトライン」ウィンドウが表示されます。

図10-4 「クイック・アウトライン」アイコン

このウィンドウはコードのすぐ上に浮かび、現在のクラスおよびそのスーパー・クラスの使用可能なメソッドおよびフィールドのツリーが表示されます。表示されるアイテムを減らすために、フィルタ・フィールドへの入力をすぐに開始できます。これによって、その場所に移動するための選択を迅速かつ簡単に行うことができます。

図10-5 「クイック・アウトライン」ウィンドウ

表10-2は、使用可能なアイコンとオプションを示しています。

表10-2 クイック・ツールバーのアイコン

アイコン

名前

説明

メソッドを表示

メソッドおよびコンストラクタを表示する場合にクリックします。デフォルトでは、メソッド、フィールドおよびstaticメンバーがすべて表示されます。

フィールドを表示

フィールドを表示する場合にクリックします。デフォルトでは、メソッド、フィールドおよびstaticメンバーがすべて表示されます。

staticメンバーを表示

staticメンバーを表示する場合にクリックします。デフォルトでは、メソッド、フィールドおよびstaticメンバーがすべて表示されます。

publicメンバーのみを表示

publicメンバーのみを表示する場合にクリックします。デフォルトでは未選択です。

継承メンバーの表示

継承メンバーのみを表示する場合にクリックします。

アルファベット順でソート

アルファベット順でクラス・メンバーをソートする場合にクリックします。デフォルトでは未選択です。

タイプでソート

まずクラス・メンバーをタイプでソート(コンストラクタ、メソッド、フィールド、内部クラスの順)し、次にカテゴリ内でアルファベット順にソートする場合にクリックします。デフォルトで選択されています。

「アルファベット順でソート」の横にある下矢印をクリックし、オプションを表示します。

アクセスでソート

まずアクセス修飾子でクラス・メンバーをソートし、次にカテゴリ内でアルファベット順にソートする場合にクリックします。デフォルトでは未選択です。

「アルファベット順でソート」の横にある下矢印をクリックし、オプションを表示します。

10.15 Java UIビジュアル・エディタの使用

Java UIビジュアル・エディタには、ユーザー・インタフェースのビジュアル・コンポーネントが編集モードで表示されます。詳細は、第11.3.1項「Javaビジュアル・エディタでのコードの編集」を参照してください。

注意:

Javaビジュアル・エディタはSwing/AWTアプリケーションに対してのみ使用できます。

10.15.1 Java SwingおよびAWTコンポーネント

SwingおよびAWT JavaBeansコンポーネントを使用して、Javaアプリケーションまたはアプレットのユーザー・インタフェース(UI)をアセンブルします。Javaビジュアル・エディタで、ボタン、テキスト領域、リスト、ダイアログ、メニューなどのJavaBeansを「コンポーネント」ウィンドウから選択してUIを構成します。次に、コンポーネント・プロパティの値を設定し、コンポーネント・イベントにイベント・ハンドラ・コードをアタッチします。Javaクラスを視覚的に設計およびプログラミングして、新規の複合コンポーネントまたは複雑なコンポーネントを生成できます。

詳細は、第15.2項「Java SwingのUIコンポーネントとコンテナについて」を参照してください。

11 Javaコードの使用

この章では、Javaアプリケーションのコード作成に役立つJDeveloperの各種ツールと機能の効果的な使用方法について説明します。たとえば、アプリケーション内のJava要素は、JDeveloperダイアログを使用して参照することも、Javaソース・エディタで開いているファイルから直接参照することもできます。Javaコードを直接編集するには、ソース・エディタが使用できます。Javaコードを表すダイアグラムを表示するには、ビジュアル・エディタを使用します。たとえば、フレーム・コンポーネントは長方形のボックスとして表示され、ボタンはフレームの最上部に小さ目のボタンとして表示されます。

「リファクタ」は、プログラムのソース・コードを変更して保持、拡張または再利用しやすくする場合に役立ちます。リファクタとは、プログラムの動作を変更することなくコード構造を変更する編集上の技術です。

この章には次の項が含まれます:

- 第11.1項「Javaコードの使用について」

- 第11.2項「Javaコードでのナビゲート」

- 第11.3項「Javaコードの編集」

- 第11.4項「ドキュメント・コメントの追加方法」

- 第11.5項「Javaプロジェクトのリファクタ」

11.1 Javaコードの使用について

通常は、Javaソース・エディタを使用してJavaコードの作成または編集を行います。これには、コーディングの強化を目的としたJava固有の機能が組み込まれています。たとえば、JDeveloperでは、事前定義コード・テンプレートを使用したコーディング、Javadocコメントの追加、ユーザーのコードへのフォーマット追加でさえも容易に実行できます。これらの機能は、コンテキスト・メニューまたは「ソース」メイン・メニューから使用できます。詳細は、第3.8.1項「ソース・エディタの使用方法」を参照してください。

Javaソース・エディタの動作は、「プリファレンス」ダイアログでプリファレンスを指定することでカスタマイズできます。詳細は、第3.8.2項「ソース・エディタのプリファレンスの設定方法」を参照してください。

11.2 Javaコードでのナビゲート

JDeveloperには、生産性の向上に役立つJava対応編集機能が数多く用意されています。プロジェクトのクラスとインタフェースおよびそのメンバーのソース・コードを検索し、その場所に移動するための機能があります。JDeveloperには、Javaソース・エディタでクラス定義のメンバーからメンバーまでステップ実行できるキーボード・アクセラレータも組み込まれています。

11.2.1 クラスおよびインタフェースの参照方法

JDeveloperでの作業中、JDeveloperダイアログを使用して、またはJavaソース・エディタで開いているファイルから直接、Java要素を参照できます。特定タイプのソース・コードまたはJavadocの検出も可能です。

プロジェクトのソース・パスにあるクラスのソースが表示されます。ライブラリにソースが含まれている場合は、プロジェクト・ライブラリにあるクラスのソースも表示されます。

11.2.1.1 JDeveloperでのJava要素の直接参照

図11-1に示すJDeveloperダイアログでJava要素を参照できます。

JDeveloperでJava要素を参照するには:

図11-1 Javaタイプ・ダイアログへの移動

1. メイン・メニューから「ナビゲート」→「Javaタイプに移動」を選択します。
キーボードのショートカット、[Ctrl]とマイナス記号を使用することもできます。

2. 「Javaタイプに移動」ダイアログで、検索するJavaクラスまたはインタフェースの名前を入力します。
このフィールドでテキストの入力を開始すると、テキストに一致するJavaエンティティのリストが表示されます。たとえば、jを入力すると、java.langが含まれているクラスのリストが表示されることがあります。

「Javaタイプに移動」ダイアログで返された結果をドリルダウンできます。たとえば、java.langクラスをダブルクリックすると、java.lang.Byteなどのメソッドが表示されます。

3. リストでエンティティをダブルクリックすると、エンティティがソース・エディタに開きます。

11.2.1.2 ソース・ファイルでのクラスまたはインタフェースの参照

Javaクラスまたはインタフェースを参照するには、ソース・エディタでそれを選択します。

エディタで現在開いているファイルのクラスまたはインタフェースを参照するには、次のようにします。

1. エディタでファイルを開いた状態で、エディタにフォーカスがあることを確認します。

2. ソース・ファイルでクラス名またはインタフェース名を選択し、右クリックして「宣言に移動」を選択します。
宣言が同じファイルにある場合は、カーソルがその宣言まで移動して、強調表示されます。宣言が別のファイルにある場合は、Javaソース・エディタ内でソース・ファイルによって宣言が開かれます。カーソルがその宣言まで移動して、強調表示されます。

図11-2 強調表示された宣言

11.2.2 変数、クラスまたはメソッドの宣言の検索方法

Javaソース・エディタでの作業中、任意の識別子の宣言を簡単に検索できます。

コード要素の宣言に移動するには、次のようにします。

- コード要素を右クリックし、「宣言に移動」を選択します。または、

- [Ctrl]を押しながら、コード要素を左クリックします。

選択した要素のソース・コードが開き、宣言文がハイライト表示されます。

11.2.3 クラスまたはインタフェースの使用方法の検索方法

Javaソース・エディタでの作業中、クラスやインタフェースへの参照およびそのメンバーを簡単に検索できます。デフォルトでは、現在のプロジェクトおよび依存プロジェクトの使用方法が報告されます。ライブラリのソース・ファイルにアクセス可能な場合は、検索対象をライブラリにまで拡大できます。

クラスの使用方法を検索するには、次のようにします。

1. 次のいずれかの方法で、クラスまたはインタフェースを選択します。

- Javaソース・エディタで、名前を選択します。

- 「アプリケーション」ウィンドウまたは「構造」ウィンドウで、クラスまたはインタフェースを選択します。

2. 次のいずれかの方法で、コマンドを起動します。

- 「検索」→「使用方法の検索」を選択します。

- 右クリックして「使用方法の検索」を選択します。

- [Ctrl]と[Alt]を押しながら[U]を押します。
「<オブジェクト>の使用方法」ダイアログが開きます。

3. 「検索」ボックスで、検索で返される参照のタイプを選択します。

4. 「条件」ボックスで、検索対象とするオプションの追加領域を定義します。

5. 検索の出力を設定するには、「新規タブ」を選択して、新規使用方法ログに出力します。
選択しないと、使用方法に対する直前の検索の結果が存在する場合は、その結果が破棄されます。

6. 「OK」をクリックします。
結果が使用方法ログ・ウィンドウに表示されます。

11.2.4 メソッドの使用方法の検索方法

このダイアログを使用すると、Javaソース・エディタで作業するとき、メソッドへの参照を迅速に検索できます。

検索によって、メソッドが定義されているクラスまたはインタフェースのインスタンスへの適用が表示されます。また、メソッドを継承するサブクラスまたはサブインタフェースが存在する場合は、それらのインスタンスへの適用も表示されます。

メソッドの使用方法を検索するには、次のようにします。

1. 次のいずれかの方法で、メソッドを選択します。

- Javaソース・エディタで、名前を選択します。

- 「構造」ペインでメソッドを選択します。

2. 次のいずれかの方法でコマンドを起動します。

- 「検索」→「使用方法の検索」を選択します。

- 右クリックして「使用方法の検索」を選択します。

- [Ctrl]と[Alt]を押しながら[U]を押します。
「<メソッド>の使用方法」ダイアログが表示されます。このダイアログには、使用方法を検索するために指定できる様々なオプションがあります。

- ダイアログでオプションを指定し、「OK」をクリックして検索を開始します。

11.2.5 フィールドの使用方法の検索方法

Javaソース・エディタでの作業中、フィールドへの参照を簡単に検索できます。

検索によって、メソッドが定義されているクラスまたはインタフェースのインスタンスに存在するフィールドの参照が表示されます。また、そのフィールドを継承するサブクラスまたはサブインタフェースが存在する場合は、それらのインスタンスの参照も表示されます。

フィールドの使用方法を検索するには、次のようにします。

1. 次のいずれかの方法で、フィールドを選択します。

- Javaソース・エディタで、名前を選択します。

- 「構造」ペインでフィールドを選択します。

2. 次のいずれかの方法でコマンドを起動します。

- 「検索」→「使用方法の検索」を選択します。

- 右クリックして「使用方法の検索」を選択します。

- [Ctrl]と[Alt]を押しながら[U]を押します。

3. 「<オブジェクト>の使用方法」ダイアログに入力し、「OK」をクリックします。検索を他の領域に拡張するオプションの指定、検索範囲の定義およびオプションで結果をログ・ウィンドウの新しいタブに表示する指定を行うことができます。
検索が開始され、結果が「<Object>の使用方法」の「ログ」ウィンドウに表示されます。

11.2.6 ローカル変数またはパラメータの使用方法の検索方法

Javaソース・エディタでの作業中、メソッド本体のローカル変数またはパラメータへの参照を簡単に検索できます。抽出したコードで使用されていたローカル変数およびパラメータは、新しいメソッドのパラメータになります。

ローカル変数またはパラメータの使用方法を検索するには、次のようにします。

1. Javaソース・エディタで変数名またはパラメータ名を選択します。

2. 次のいずれかの方法でコマンドを起動します。

- 「検索」→「使用方法の検索」を選択します。

- 右クリックして「使用方法の検索」を選択します。

- [Ctrl]と[Alt]を押しながら[U]を押します。
結果が使用方法ログ・ウィンドウに表示されます。

11.2.7 オーバーライド済または実装済メソッド定義の特定

Javaソース・エディタでの作業中、スーパークラスの定義をオーバーライドまたは実装するメソッドを特定できます。オーバーライドする定義には、図11-3に示すように、「オーバーライド」上矢印アイコンが付きます。

図11-3 「オーバーライド」アイコン

オーバーライド済の定義には、図11-4に示すように、Javaソース・エディタのマージンに「実装」マージン・アイコンが付きます。

図11-4 「実装」アイコン

オーバーライドされたメソッド定義を表示するには、マージンの「オーバーライド」アイコンをクリックします。オーバーライドされたメソッド定義を表示するには、マージンの「実装」アイコンをクリックします。

「メイン・ツールバー」の「戻る」ボタンをクリックすると、前のビューに戻ります。

11.2.8 クラスまたはインタフェースの階層の表示方法

Javaソース・エディタでの作業中、クラスまたはインタフェースのサブタイプおよびスーパータイプの階層をインスペクトできます。

エディタには、ノードのGUI階層全体が表示されます。表示の方法は、この階層がメニュー項目またはメニュー以外の項目のどちらで構成されるかによって異なります。

11.2.8.1 最初にJavaビジュアル・エディタで階層を開く

エディタでノードのGUI階層全体を表示できます。ノードのGUI階層全体がエディタに表示されます。表示の方法は、この階層がメニュー項目またはメニュー以外の項目のどちらで構成されるかによって異なります。

Javaビジュアル・エディタで最初に階層を開くには、次のようにします。

1. 「アプリケーション」ウィンドウでノードを選択します。

2. 右クリックして「編集」をクリックするか、「ビュー」メニューを使用します。

11.2.8.2 Javaソース・エディタでのクラスまたはインタフェースの階層表示

「階層」ウィンドウには、選択したクラスまたはインタフェースの階層が表示されます。

Javaソース・エディタでクラスまたはインタフェースの階層を表示するには、次のようにします。

1. クラスまたはインタフェースを選択し、右クリックして「タイプ」を選択するか、「ナビゲート」→「タイプ」を選択します。
「階層」ウィンドウが開き(まだ開かれていない場合)、サブタイプまたはスーパータイプのツリーが表示されます。

2. サブタイプおよびスーパータイプの表示と非表示を切り替えるには、「サブタイプ階層」ボタンまたは「スーパータイプ階層」ボタンをクリックします。

11.2.9 クラスのメンバーのステップ実行

キーボード・アクセラレータを使用すると、Javaソース・エディタで、クラス定義内でメンバー間を移動できます。

- 現在のJavaソース・ビューの次のメンバー定義または宣言に移動するには、[Alt]キーを押しながら[↓]キーを押すか、または「ナビゲート」→「次のメンバーに移動」を選択します。

- 現在のJavaソース・ビューの1つ前のメンバー定義または宣言に移動するには、[Alt]キーを押しながら[↑]キーを押すか、または「ナビゲート」、「前のメンバーに移動」の順に選択します。

次の追加のコードのステップ・コマンドも定義されていますが、デフォルトではアクセラレータは割り当てられていません。

- 次のクラスに移動

- 次のフィールドに移動

- 次のメソッドに移動

- 前のクラスに移動

- 前のフィールドに移動

- 前のメソッドに移動

これらのコマンドは、「プリファレンス」ダイアログの「ショートカット・キー」ページの「ナビゲート」カテゴリにリストされます。アクセラレータは追加または変更できます。詳細は、第3.5.1項「IDEでのショートカット・キーの使用方法」を参照してください。

11.3 Javaコードの編集

JDeveloperには、生産性の向上に役立つJava対応編集機能が数多く用意されています。グラフィカル・ユーザー・インタフェースを開発する場合は、テキスト編集のかわりにJava Visual Editorを使用できます。ソース・エディタとビジュアル・エディタは同期しているため、片方を変更すると、ただちにもう一方に反映されます。これらのJava編集機能によって、あらゆるテクノロジのコーディングをサポートする汎用ソース編集機能が強化されています。

11.3.1 Javaビジュアル・エディタでのコードの編集

Javaビジュアル・エディタには、ユーザー・インタフェースのビジュアル・コンポーネントが、図11-5に示すように、「編集」モードで表示されます。

たとえば、このエディタには、プロジェクトのクラスとインタフェースおよびそのメンバーを参照したり、特定できる機能が含まれています。クラスまたはインタフェース、メソッド、フィールド、ローカル変数またはパラメータの使用方法を検索できます。

図11-5 Javaビジュアル・エディタ

Javaビジュアル・エディタが開いている場合、対応する要素が、図11-6に示すように「構造」ウィンドウに階層表示されます。

図11-6 Javaファイルの「構造」ウィンドウ

「プロパティ」ウィンドウが開いている場合、「構造」ウィンドウまたはJavaビジュアル・エディタで要素を選択すると、「インスペクタ」の選択内容も変更されます。

Javaビジュアル・エディタにはGUI階層が表示されます。これらの要素がメニュー項目の場合、階層は1つの方式で表示されます。これらの要素がメニュー項目以外の場合、階層は別の方式で表示されます。使用している編集モードが異なるように、表示のモードも異なります。

Javaビジュアル・エディタで最初に階層を開くには、「アプリケーション」ウィンドウでノードを選択して右クリックし、「編集」を選択するか、「表示」メニューを使用します。このノードのGUI階層全体がエディタに表示されます。表示の方法は、この階層がメニュー項目またはメニュー以外の項目のどちらで構成されるかによって異なります。

「アプリケーション」ウィンドウでノードを選択した場合は、そのGUI構造も「構造」ウィンドウに表示されます。このオブジェクトのメニュー以外のGUI項目はすべて、UIというラベルが付いたノードの下に表示されます。メニュー項目は、Menuというラベルが付いたノードの下に表示されます。GUI以外の項目は、Otherというラベルが付いたノードの下に表示されます。オブジェクトのJavaビジュアル・エディタを「アプリケーション」で開いた後、メニュー以外のGUI要素とメニュー要素の表示を切り替えるには、「構造」ウィンドウで、これらのUIノードまたはMenuノードの下のノードをクリックするだけです。

Javaビジュアル・エディタでの表示はGUI階層に基づいているため、「構造」ウィンドウで(すべてのGUIオブジェクトの)ノードをクリックすると、ルート・ノードおよびその子の視覚的な表現がエディタにロードされます。階層で選択したノードに関係なく、階層全体が開きます。エディタに表示される内容は、完全なGUI階層を反映します。選択した特定の要素は、ウィンドウで選択した特定のノードを反映します。「構造」ウィンドウとJavaビジュアル・エディタの選択内容は同期化されます。

「構造」ウィンドウに孤立したノードがある場合、そのノードおよび子が階層全体を構成し、孤立したノードが階層のルートになります。Java UIの表示はこれを反映します。たとえば、親のないコントロールがあり、そのコントロールのノードを選択した場合、そのコントロールおよび子はコンテナなしでエディタに表示されます。ただし、そのコントロールに変更を加えると、コードが生成されます。

Javaビジュアル・エディタ内の任意の場所を右クリックすると、コマンドのポップアップ・メニューが表示されます。ポップアップ・メニューは、メニュー以外の項目またはメニュー項目のどちらを編集しているかによって異なります。また、ポップアップ・メニュー内で使用できるコマンドは、選択したオブジェクトによって異なります。

11.3.2 Javaビジュアル・エディタを開く

「アプリケーション」ウィンドウで変更するJavaファイルを右クリックして「開く」を選択し、「設計」タブをクリックします。

ソース・コードがコード・エディタ内でアクセス可能になります(「アプリケーション」ウィンドウでファイルを右クリックして「開く」を選択すると、ソース・コードが表示されます)。これにより、UI設計と並行してソース・コードを表示および編集できます。Javaビジュアル・エディタまたは「プロパティ」ウィンドウで行った変更は即時にソース・コードに反映され、ソース・コードに対する変更はJavaビジュアル・エディタまたは「プロパティ」ウィンドウに即時に反映されます。

Javaビジュアル・エディタのツールバーを使用すると、容易にコンポーネントを操作し、選択したコンポーネントについて表示されるポップアップ・メニューから選択できるコマンドを複製できます。次のようなコンポーネント操作があります。

- 制約: コンポーネントのスペース配分、最大化、アンカーの位置、余白および空間を指定できます。

- 位置合せ: 各コンポーネントを他のコンポーネントに対する相対位置にすばやく配置できます。

- Z順序: 重なり合ったコンポーネントの順序を変更できます。

11.3.3 Javaビジュアル・エディタのプロキシ・クラスに関する必知事項

JDeveloperは軽量(JFC)アプリケーションです。重量コンポーネントは、軽量JDeveloper環境(コード・エディタおよびUMLモデラーなど)を含めて軽量コンポーネントを常に混乱させます。

Javaビジュアル・エディタにはプロキシ・メカニズムが組み込まれており、Javaビジュアル・エディタでインスタンス化する重量コントロールを表す軽量プロキシを登録できます。JDeveloperには、デフォルトですべての標準AWTコントロールの軽量プロキシが組み込まれています。

11.3.4 カスタム・コンポーネントに対するJavaビジュアル・エディタ・プロキシの登録方法

重量(AWT)コントロールをJavaビジュアル・エディタで直接使用すると、予期せぬ動作が発生します。ただし、JDeveloperでは、Javaビジュアル・エディタで使用できるように登録した重量コンポーネントの軽量ビューをサポートしています。

プロキシ・クラスを登録するには、次のようにします。

- 例11-1に示すように、キーと値の定義をJDeveloper\lib\addins.xmlファイルのoracle.jdevimpl.uieditor.UIEditorAddinセクションに追加します。

例11-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という重量コンポーネントの実装を登録する場合、追加するプロパティは例11-2のようになります。

例11-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です。

11.3.5 コードの保護

JDeveloperには、変更中のコードに対する書込み保護機能があります。この書込み保護では、動作する必要のあるコードが保持されます。図11-7に示すSwing/AWTコードのセクションはグレーで表示されていて、このコード・セクションが保護されていることを示します。

図11-7 保護されているコード

11.3.6 新規Javaコードまたはインタフェースの作成方法

新規のクラスまたはインタフェースを作成する前に、まずアプリケーションとプロジェクトを作成する必要があります。クラスまたはインタフェースが作成されると、それはアクティブなプロジェクトに追加され、デフォルトではJavaソース・エディタに表示されます。また、「アプリケーション」ウィンドウでそれにアクセスすることもできます。

新規クラスを作成し、プロジェクトに追加するには、次のようにします。

1. 「アプリケーション」ウィンドウで、Javaクラスを追加するプロジェクト、たとえばclientを選択します。

2. 右クリックして、「新規」→「Javaクラス」を選択します。

3. Javaクラスの作成ダイアログで、クラス名またはインタフェース名、パッケージ名、および新しいクラスが拡張するスーパークラスを入力します。

4. 必要に応じて属性を選択します。

5. 「OK」をクリックします。

11.3.7 Javaインタフェースの実装方法

ソース・エディタでは、フレームワーク・コードを追加し、インタフェースを実装するターゲット・クラスを変更したり、ターゲット・インタフェースを別のインタフェースに簡単に拡張できます。

implements句またはextends句がターゲット・クラスまたはターゲット・インタフェースの宣言に追加され、import文がファイルに追加されます。ターゲットがクラスである場合には、実装されるインタフェースの各メソッドについてスタブ定義がクラスまたはインタフェースの本体に追加されます。

インタフェースを実装するには、次のようにします。

1. Javaソース・ファイルを開きます。

2. メイン・メニューから「ソース」→「インタフェースの実装」を選択します。

3. 「検索」タブまたは「階層」タブで、インタフェースの実装先となるクラスを検索し、実装するインタフェースの名前を選択します。

4. オーバーライドされるメソッドからドキュメント・コメントを組み込む場合は、「Javadocのコピー」を選択します。

5. 「OK」をクリックします。

11.3.8 メソッドのオーバーライド方法

ソース・エディタでは、スーパークラスから継承したメソッドをオーバーライドするためのスタブ定義をクラスに迅速に追加できます。オーバーライドするサブクラスによってメソッドの特定の実装が指定されますが、これはそのスーパークラスの1つですでに指定されています。

メソッドをオーバーライドする手順は次のとおりです。

1. Javaソース・ファイルを開きます。

2. メイン・メニューから「ソース」→「メソッドのオーバーライド」を選択します。

3. 「メソッド」リストで、オーバーライドするメソッドを選択します。
リストには、すべてのスーパークラスから継承されるメソッドが表示されます。abstractメソッドは太字で表示されます。これらはnon-abstractタイプによって実装される必要があります。

4. オーバーライドされるメソッドからドキュメント・コメントを組み込む場合は、「Javadocのコピー」を選択します。

5. 「OK」をクリックします。
スタブ・メソッド定義がクラスに追加されます。

6. スタブ定義を編集します。

11.3.9 コード・テンプレートの使用方法

JDeveloperには、一般的によく使用される文のテキストを挿入することで、より迅速かつ効率的にコードを記述するのに役立つ事前定義コード・テンプレートが用意されています。たとえば、Iterate over a list (itli)テンプレートでは、次のコードが挿入されます。

for (Object object : Object) {
;
}

注意:

テンプレートに変数が含まれている場合、変数はハイライト表示されています。各変数を編集して、テンプレートを完成できます。[Tab]を押すと、カレットが次のテンプレート変数に移動します。

JDeveloperで提供されるテンプレート以外に、独自のコード・テンプレートを定義することもできます。「プリファレンス」ダイアログの「コード・エディタ」→「コード・テンプレート」ページを使用します。詳細は、第3.8.3項「ソース・エディタのコード・テンプレートをカスタマイズする方法」を参照してください。

定義済のコード・テンプレートを起動するには、次のようにします。

1. エディタでファイルを開き、テンプレートを挿入する位置にカーソルを置きます。

2. テンプレートに関連付けられているショートカットを入力し、[Ctrl]を押しながら[Enter]を押します。
テンプレート内に定義されているコードがソース・ファイルに挿入されます。テンプレートに必要なimport文がある場合は、ファイルの先頭に挿入されます。

注意:

[Ctrl]+[Enter]は、デフォルトのキーマップで割り当てられているアクセラレータです。別のキーを割り当てることもできます。

11.3.10 事前定義済のコード・テンプレートの使用

JDeveloperに用意されている事前定義コード・テンプレートは次のとおりです。

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$)
{

}

11.3.11 選択したテキストを拡張または縮小する方法

「選択の拡大」または「選択の縮小」オプションを使用すると、Java構文に基づいて、選択したコード・ブロックを連続して拡大または縮小できます。このオプションを連続して適用すると、適用するたびに、開始位置に基づいて、Javaの階層で上にある次の論理ステップが含まれるように、選択が拡大されます。このことは、ファイル全体が選択されるまで行われます。たとえば、メソッド名、修飾されたメソッド・コール、割当て、定義などです。

選択したコードを拡大するには、次の手順を実行します。

1. エディタでファイルを開いた状態で、エディタにフォーカスがあることを確認します。

2. 選択を拡大する位置にカーソルを置くか、またはコードの一部を選択します。

3. メイン・メニューから「ソース」→「選択の拡大」を選択するか、[Ctrl]と[Shift]を押しながら[=]キーを押します。
前に選択した要素または前にカーソルを置いた要素を含む最小論理単位が含まれるように、選択が拡大されます。

「選択の縮小」オプションを使用すると(または、[Ctrl]および[Shift]を押しながら[-]を押すと)、選択したコードは同様に連続して縮小されます。

11.3.12 コーディング構造でコードを囲む方法

Javaソース・エディタでは、コーディング構造を使用して簡単にJavaの文およびブロックを囲むことができます。

コーディング構造でコード・ブロックを囲むには、次のようにします。

1. エディタでファイルを開いた状態で、文内で右クリックするか、またはコード・ブロックを選択してから、「囲む」を選択します。このオプションを使用可能にするには、ビジュアル・エディタで右クリックして、ポップアップ・メニューから「囲む」を選択します。または、ソース・エディタのツールバーの「囲む」({})アイコンをクリックします。

注意:

このアイコンは、選択したコードが「コードを囲む」機能を適用できる有効なコード・ブロックである場合にのみ有効です。

2. 「コードを囲む」ダイアログで、コーディング構造を選択します。

11.3.13 コード折りたたみ方法

コード折りたたみ機能を使用して、現在Javaソース・エディタで開いているファイルの各セクションを表示および非表示にすることができます。例11-3に示すようなコードがメソッドの中にある場合、コードの中央のチャンクを縮小して、メソッドの別の部分を使用している間は中央のチャンクを見ないですむように設定できます。

例11-3 コード折りたたみの例

public void main(String[] args) throws SQLException, IOException {

//... some code ...

{
Run.dbgPrnt("Extractor main() querying => BSN");
// make the basin file
query = "select * from BSN";
rset = OracleAccess.makeResultSet(query, stmt);
rset.next();
l = Basin.extract(rset, Version);
Format.writeFile(outPath, "groupings.txt", l);
}

//      ... some more code ...

Run.dbgPrnt("Extractor main() has ended");
}

内部コード・ブロック(for、while、switch、{...}など)のコードを折りたたむことができます。

11.3.14 import文の追加

Javaソース・エディタでの作業中に、必要なimport文を追加できます。ソース・エディタでの入力中に、まだインポートされていないクラスへの参照を導入すると、そのクラスの下に波線が表示されます。インポートが必要であることを示すポップアップが開き、クラスの完全修飾名が表示されます。クラスへの未解決の参照の完全一致を1つのみ検出できた場合は、JDeveloperによってインポートが自動的に追加されます。

クラスへの未解決の参照の完全一致を1つのみ検出できた場合は、JDeveloperによってインポートが自動的に追加されます。インポート・アシスタンスによって一致の可能性が複数検出された場合は、クラス・パスからすべての一致の可能性がポップアップ・リストに表示されます。その場合は、適切なインポートを選択すると、そのimport文が自動的に追加されます。

Import Assistanceのポップアップは、[Alt]を押しながら[Enter]を押すことで、いつでもトリガーできます。

左余白をベースとするコード・アシスタンスを使用して、import文を追加できます。エディタによってクラスが認識されない場合は、行がハイライト表示されたときに電球が左余白に表示され、様々なインポート・オプションが表示されます。

Import Assistanceを構成するか無効にするには、Javaソース・エディタでimport文オプションを設定できます。

11.3.15 import文の編成方法

Javaソース・エディタでは、簡単にimport文を編成できます。「設定」ダイアログで、インポートを編成するためのオプションを設定します。次のオプションがあります。

- パッケージ名およびクラス名でアルファベット順にimport文をソートおよびグループ化します。

- パッケージ用のtype-import-on-demand文を個々のクラス用のsingle-type-import文に置き換えて、インポートを縮小します。

- ある共通パッケージのクラスの2つ以上のsingle-type-import文をそのパッケージの1つのtype-import-on-demand文に置き換えて、インポートを拡大します。

- 参照されないクラスに対するimport文を削除します。

インポート編成オプションを設定または無効にできます。

ソース・ファイルでimport文を編成するには、次のようにします。

- エディタでファイルを開いた状態で、右クリックして「インポートの編成」を選択します。

11.3.16 ojformatの使用方法

ojformatはコマンドライン・ツールであり、ワークスペースまたはプロジェクトの再フォーマット化に使用できます。これは、<JDeveloper_Home>/jdev/binに置かれています。

ojformatの構文は次のとおりです。

ojformat option file

意味は次のとおりです。

optionは、-adeなどのオプションです。-adeは、バージョン・コントロール用にADE拡張機能をロードする必要があることを示しています。その他のバージョン・コントロールは自動的に機能します。

例

ojformat -ade application.jws

application.jwsにあるすべてのプロジェクトを再フォーマット化します。バージョン・コントロールはADEです。

ojformat application1.jws application2.jws

両方のアプリケーションにあるプロジェクトをすべて再フォーマット化します。

ojformat application.jws project1.jpr

application.jwsのproject1.jprを再フォーマット化します。

ojformat app1.jws project1.jpr app2.jws project2.jpr

app1のproject1とapp2のproject2を再フォーマット化します。

11.4 ドキュメント・コメントの追加方法

JDeveloperの編集コマンドを使用して、図11-8に示すようなJavadocコメントを作成および保持することができます。Javadocコメントの入力後に、「<<???>>」ダイアログを使用してそれらのコメントを検索できます。

図11-8 Javadocコメント

ソース・ファイルにドキュメント・コメントを追加するには、次のようにします。

- コメントを追加するクラス宣言、フィールドまたはメソッドのすぐ上にカーソルを置き、ドキュメント・コメントの開始(/**)を入力してから[Enter]を押します。または、

- 「構造」ウィンドウでコード要素を選択した状態で、メイン・メニューから「ソース」を選択し、「Javadocコメントの追加」を選択します。

ドキュメント・コメント用のテンプレートがファイルに挿入されます。このテンプレートにコード要素の情報を追加してください。

11.4.1 ドキュメント・コメントの更新方法

Javaソース・エディタでは、ドキュメント・コメントを更新できます。ドキュメント・コメントに対するタグが追加または削除されて、要素に加えた変更が反映されます。新しいタグに関する説明を追加します。

ソース・ファイルのドキュメント・コメントを更新するには、次のようにします。

1. 「構造」ウィンドウで、コメントを更新する要素の上にカーソルを置きます。

2. 右クリックして、「Javadocコメントの追加」を選択します。

11.4.2 プロジェクトのJavadocプロパティの設定方法

作成するすべてのプロジェクトは、JDeveloperプロジェクトのデフォルト設定か、またはワークスペース共通ですべてのプロジェクトに対してユーザーが指定した設定になります。これらのデフォルト設定は、プロジェクトごとに置き換えることもできます。これらのプロパティの設定方法はどちらの場合でも同じであり、情報の場所および適用対象のみが異なります。

個々のプロジェクトのJavadocプロパティを設定するには、次のようにします。

1. 「アプリケーション」ウィンドウで、プロジェクトを選択します。

2. メイン・メニューから、「アプリケーション」→「プロジェクト・プロパティ」を選択するか、右クリックして「プロジェクト・プロパティ」を選択します。

3. 「Javadoc」を選択します。

4. 属性を設定します。

5. 完了後、「OK」をクリックして「プロジェクト・プロパティ」ダイアログを閉じます。

11.4.3 ドキュメント・コメントのタグのカスタマイズ方法

Javaコード・エディタでは、ドキュメント・コメント・タグの使用をカスタマイズできます。カスタム・タグを定義したり、ドキュメント・コメントの作成時にどのタグを自動的に含めるかを選択できます。ここで選択した内容は、すべてのプロジェクトに適用されます。

カスタム・タグを作成する場合、タグをコード要素に関連付けて、必須かどうかを定義し、デフォルト値を割り当てて、タグ・リストでの順序を指定できます。

カスタム・タグを定義するには、次のようにします。

1. メイン・メニューから、「ツール」→「プリファレンス」を選択します。

2. 「プリファレンス」ダイアログで、「コード・エディタ」→「Java」→「Javadoc」ページを選択します。

3. 「プラス」(+)アイコンをクリックします。
デフォルト名newのタグがリストに追加されます。

4. 「タグのプロパティ」ボックスで、タグの名前を変更し、その他のプロパティを設定します。

5. 完了後、「OK」をクリックします。

11.4.4 クイックJavadocを使用してコード要素のJavadocを表示する方法

Javaソース・エディタでの作業中、クイックJavadoc機能を使用すると、コード要素(クラス、インタフェースまたは個々のメンバー)のJavadoc生成ドキュメントに簡単にアクセスできます。

図11-9に示すように、クイックJavadoc機能は、選択したエンティティをソースパスで参照し、入力されたJavadocコメントをポップアップ・ウィンドウに表示します。

図11-9 「クイックJavadoc」ウィンドウ

コード要素に対してJavadocコメントが存在しない場合には、空のJavadocコメントが表示されます。

クイックJavadoc機能は、選択したソース・コードが次の条件を満たしている場合に使用できます。次のとおりです。

- このプロジェクトのソースパスに存在する。

- 現在のプロジェクトが依存しているプロジェクトのソースパスに存在する。

- このプロジェクトに割り当てられたライブラリに使用できる。

- 使用中のJDKに組み込まれている。

コード要素のJavadocを表示するには、次のようにします。

1. コード要素を選択します。

2. メイン・メニューから、「ソース」→「クイックJavadoc」を選択するか、エディタ内で右クリックして「クイックJavadoc」を選択します。
その要素のドキュメントを表示するポップアップ・ウィンドウが開きます。そのウィンドウ以外の任意の場所をクリックしてウィンドウを閉じます。

11.4.5 ドキュメント・コメントのプレビュー方法

単一のソース要素のJavadocを表示するときと同じ方法で、ソース・ファイルのドキュメント・コメントをプレビューできます。

特定のクラス、メンバーまたはメソッド・コールのドキュメント・コメントを表示するには、次のようにします。

1. コード要素の名前を選択します。

2. 右クリックして「クイックJavadoc」を選択します。
指定した要素のJavadocのみを含むポップアップ・ウィンドウが表示されます。ブラウザと同じように、このウィンドウから別のJavadocにリンクで移動できます。

11.4.6 ドキュメント・コメントの監査方法

ソース・ファイルに記載されているドキュメント・コメントを検証できます。監査を実施すると、書式設定エラー、欠落しているタグまたは余分なタグが報告されます。

ソース・ファイルのドキュメント・コメントをチェックするには、次のようにします。

1. 「アプリケーション」ウィンドウで、チェックするファイルを選択します。

2. メイン・メニューから「ビルド」→「コード監査 <ファイル名>」を選択します。

3. 「コード監査」ダイアログで、「プロファイル」ドロップダウン・リストから「Javadocルール」を選択します。

4. 検索または無視するエラーのタイプを選択できるようにコード監査を構成する場合には、「編集」をクリックします。
「監査プロファイル」ダイアログが開きます。

5. 「実行」をクリックします。
コード監査の結果は、ログ・ウィンドウに表示されます。

11.4.7 Javadocのビルド方法

「設定」ダイアログのJavadocページでプロジェクトに対して設定したプロパティに基づいて、APIリファレンスおよびその他のドキュメントを「アプリケーション」ウィンドウから直接生成できます。ドキュメントは、ファイルのコードおよびドキュメント・コメントからjavadocユーティリティを使用して生成されます。

パッケージ、ファイルまたはプロジェクトに対してJavadocをビルドする手順は次のとおりです。

1. 「アプリケーション」ウィンドウで適切なノードを選択します。

2. メイン・メニューから「ビルド」、「Javadoc」を選択します。
Javadocがバックグラウンドで生成されます。「ログ」ウィンドウに、情報および結果が表示されます。「ログ」ウィンドウのリンクを使用して、index.htmlファイルをプロジェクトに追加できます。

11.4.8 欠落している注釈要素に対する参照の作成方法

Javaソース・コード・エディタで未解決のJava注釈に対する監査のヒントを表示する際に、欠落している注釈要素の参照を登録できます。

欠落している注釈の参照を作成する手順は次のとおりです。

1. Javaソース・コード・エディタでJavaクラスを開きます。
詳細は、第3.8項「ソース・ファイルの使用方法」を参照してください。

2. Javaクラスのソース・コードに注釈(例: @stateless)を入力します。

3. 注釈の上にカーソルを重ねます。
タイプ(例: @stateless)が見つからないというダイアログが表示されます。

4. 「詳細」リンクをクリックします。

5. 「注釈タイプ <type>の作成」リンクをクリックします。

6. 「注釈タイプの作成」ダイアログで、注釈クラス(例: project1)を特定するパッケージの名前を入力します。

7. 「OK」をクリックします。

11.4.9 JOT構造ウィンドウの使用

JOT構造ウィンドウには、ソース・エディタで選択したSourceElementの階層ツリーが表示されます。たとえば、例11-4と同様のコードがJavaファイルに含まれていることがあります。

例11-4 Javaソース・コード

public class Class1 implements Serializable{
@SuppressWarnings("serial:-4347721670334465144")
// test
private static final long serialVersionUID = -4347721670334465104;
public Class2() {
super();
}
/* Non-javadoc comment */

public void a(){}
// @SuppressWarnings("serial:23")
private class foo{}
}

これに基づき、図11-10に示すように、JDeveloperの下部にJOT構造ウィンドウが表示されます。この階層には、コード内のすべての子と親のSourceElementが表示されます。クラス、コード・ブロック、またはその他の要素などです。

図11-10 JOT構造ウィンドウ

Javaソース・エディタでSourceElementを選択すると、対応するSourceElementが対応するテキストとともにJOT構造ウィンドウで強調表示されます。

JOT構造ウィンドウを表示するには、メイン・メニューから「表示」→JOT構造ウィンドウを選択します。

11.4.9.1 JOT構造ウィンドウでコメントおよび空白行を表示する方法

Java構造ウィンドウでは、Javaコード内のJavaコメントと非Javaコメント、および空白行を表示できます。たとえば、コメントおよび空白行を表示を選択して、Javaコード内の空白行にカーソルを合わせると、その空白行が対応するテキスト(例: SourceLexicalBlankline (SRC_LEX_BLANKLINE))とともにツリーに表示されます。

コメントおよび空白行を表示する手順は次のとおりです。

1. メイン・メニューで、「表示」→JOT構造ウィンドウを選択します。

2. コメントおよび空白行を表示を選択します。

11.4.9.2 JOT構造ウィンドウで「リフレッシュ・モード」を設定する方法

「カーソル更新時にリフレッシュ」チェック・ボックスを使用して、階層ツリーのリフレッシュをオンまたはオフにすることができます。

たとえば、このチェック・ボリュームを選択した状態で、Javaソース・ファイル内のテキストにカーソルを合わせるとします。そのテキストのSourceElementとその親がJOTツリーに表示されます。JOT構造ウィンドウの状態を固定して、このSourceElementを使用するコードを開発するには、「カーソル更新時にリフレッシュ」チェック・ボックスの選択を解除します。変更するJavaソース・ファイルをロードします。作業中に、JOTツリーの固定した状態を参照できます。

リフレッシュ・モードを設定する手順は次のとおりです。

1. メイン・メニューで、「表示」→JOT構造ウィンドウを選択します。

2. カーソル更新時にリフレッシュを選択します。

11.5 Javaプロジェクトのリファクタ

リファクタとは、プログラムの動作を変更することなくコード構造を変更する編集上の技術です。リファクタ操作は一連の簡単な編集で、プログラムのコードを最終的に動作変更を伴わずに変換します。各リファクタ操作の後、プログラムは正常にコンパイルおよび実行されます。JDeveloperには、自動リファクタ操作のコレクションが用意されています。

リファクタは、プログラムのソース・コードを変更して保持、拡張または再利用しやすくする際に使用します。この変更は一連のリファクタ・ステップとして行われます。ユーザーは、ステップの終了ごとに、プログラムを再ビルドおよび再検証して、エラーが発生していないか確認できます。

表11-1に、簡単なリファクタ操作の例をいくつか示します。

表11-1 リファクタ操作

操作

説明

メソッドの名前の変更。

この操作では、ターゲット・メソッドの使用方法を検索してから、名前の各オカレンスを置き換えるかどうかを選択できます。

クラスの複製。

クラスの定義が複製され、複製された定義に含まれるクラス名のオカレンスがすべて新しい名前で置き換えられます。

メソッドへのパラメータの導入。

メソッド定義がパラメータの追加によって変更され、各メソッド・コールが変更されて、該当するタイプおよび値の引数が提供されます。

スキーマのターゲット・ネームスペースの変更。

参照するスキーマはすべて更新され、新しいターゲット・ネームスペースが割り当てられます。

また、JDeveloperには、次のようなさらに高度なリファクタ操作も用意されています。

- 選択クラス・メンバーからメンバー宣言を導出することによって、クラスからインタフェースを抽出します。

- メンバー定義をクラス間で移動することによって、クラス・メンバーをスーパークラスにプル・アップまたはサブクラスにプッシュ・ダウンします。

- クラスを抽出し、一連のフィールドまたはメソッドを新しいコンテナ・オブジェクトで置き換えます。

- 選択式で構成された新規要素への参照で選択した式を置き換えることによってフィールド、変数、パラメータまたは定数を導入します。

- 文で構成された新規メソッドへのコールで、強調表示された連続する文を置き換えることによって、メソッドを抽出します。

- メソッド・オブジェクトを抽出して既存のコード・ブロックから新規のメソッドを作成し(「メソッドの抽出」と類似)、ただしそれを新規作成した内部クラス内に移動して、すべてのローカル変数をクラスのフィールドに変換します。

- パラメータ・オブジェクトを導入し、一連のフィールドまたはメソッドを新しいコンテナ・オブジェクトで置き換えます。

リファクタ操作の結果が目的と異なる場合は、編集操作で行うように、[Ctrl]キーを押してから[Z]キーを押してリファクタ操作を元に戻すことができます。

11.5.1 Javaクラス図でのリファクタ

ダイアグラムでインプレース編集機能を使用してクラスの名前を変更またはクラスを移動すると、そのクラスのソース・コードが自動的にリファクタされます。ダイアグラムでJavaパッケージの名前を変更またはパッケージを移動すると、そのパッケージの内容が自動的にリファクタされます。

ダイアグラムでフィールド、メソッドまたは内部クラスを削除すると、自動的に「安全に削除」リファクタ・パターンが適用されます。詳細は、第11.5.5項「コード要素の削除方法」を参照してください。

ダイアグラムのJavaクラス、インタフェース、列挙またはメンバーにリファクタ・パターンを適用するには、ダイアグラムで対象となるクラスまたはメンバーを選択し、「リファクタ」メニューから目的のリファクタ・パターンを選択します。このようにしてリファクタ・パターンを適用した場合、リファクタの結果をプレビューする機能を含む適切なダイアログが表示されます。詳細は、第11.5.6項「クラスおよびインタフェースのリファクタ」を参照してください。

Javaクラス図のJavaクラス、インタフェースおよび列挙では、次のリファクタ・パターンを使用できます。

- 名前の変更

- 移動(ダイアグラムで1つ選択した場合にも複数選択した場合にも適用されます)

- 複製

- インタフェースの抽出

- スーパークラスの抽出

Javaクラス図のJavaフィールドおよびメソッドでは、次のリファクタ・パターンを使用できます。

- 名前の変更

- 移動

- staticにする

- メンバーのプル・アップ

- メンバーのプッシュ・ダウン

- メソッドの変更(Javaメソッドのみ)

11.5.2 リファクタ操作の呼出し方法

JDeveloperでは、コードの質を向上できる自動リファクタ操作を幅広く提供しています。コードの外部動作は変わりませんが、内部構造が改善されます。

リファクタ操作を開始するには、次のようにします。

1. ソース・エディタ・ウィンドウ、「アプリケーション」ウィンドウまたは構造ペインでプログラム要素を選択します。

2. プログラム要素を右クリックして、「リファクタ」を選択します。

3. ポップアップ・メニューから操作、たとえば「名前の変更」、「移動」、または「削除」を選択します。

ツールバーから「リファクタ」を選択し、ドロップダウン・リストからリファクタ操作を選択することもできます。

図11-11に示すように、リファクタのポップアップ・メニューでは、JDeveloperのどこを右クリックしてメニューを表示しているかによって、表示される項目が異なります。

図11-11 ドロップダウン・リストのリファクタ

たとえば、次のものを右クリックしたときに異なるリファクタ操作が表示される異なるポップアップ・メニューを表示できます。

- 構造メニュー

- メソッドの行頭

- IDEにおけるメソッドの戻り型

- IDEにおけるメソッドの名前

- IDEにおけるメソッドのパラメータ・リストのパラメータ

リファクタ操作の結果が目的と異なる場合は、編集操作で行うように、[Ctrl]を押しながら[Z]キーを押してリファクタ操作を元に戻すことができます。

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

多くの使用方法を変更する可能性があるリファクタ操作を実行する場合、手動での変更が必要な使用方法や除外が必要な使用方法を識別する場合には、使用方法のプレビューが役に立ちます。プレビューするには、「プレビュー」ボタンを使用します。「プレビュー」ログ・ウィンドウに表示される使用方法を確認して、それらの使用方法をインスペクトして解決し、必要に応じて操作をコミットすることができます。

ログには、閉じることが可能なパッケージとJavaファイルのツリーが表示されます。各ファイルの下には、使用方法を含むコード行が表示されます。

- 「編集」ウィンドウに使用方法を表示するには、ログのエントリをダブルクリックします。

- リファクタ操作から使用方法を除外するには、使用方法を右クリックして「対象外」を選択します。

リファクタ操作をコミットするには、次のようにします。

1. 使用方法に影響する編集を行った場合は、ログ・ツールバーの「リフレッシュ」アイコンをクリックし、使用方法の検索を再実行します。

2. 「プレビュー」ログ・ウィンドウで「リファクタ」ボタンをクリックします。

11.5.4 コード要素の名前の変更方法

Javaアプリケーションを開発する際に、パッケージ、クラス、インタフェース、メソッド、フィールド、パラメータまたは変数へのすべての参照および定義の名前を簡単に変更できます。必要に応じて、最初にプレビュー(置換する使用方法のリスト)を生成できます。使用方法をツリー形式で表示するには、「使用方法の表示」ボタンを使用します。

名前の変更操作の有効範囲は、プロジェクト内の要素の全範囲になります。プロジェクト、クラス、インタフェースおよびメンバーの各使用方法は、プロジェクト内で表示されるすべての場所で置換されます。パラメータおよび変数の名前は、定義の字句範囲でのみ変更されます。同じ名前を持つその他の要素は変更されません。

デフォルトでは、操作は、コメント(ただし、コード要素を指定するドキュメント・コメント・タグではない)および注釈を除いた、.javaファイルに制限されます。あいまいではない使用方法が置換されます。クラスとインタフェースの使用方法の名前は、完全修飾されている場合、またはimport文で指定されている場合に置換されます。

パッケージ、型およびメンバー要素の場合、操作はコメントまたはその他のファイルにまで拡張できます。操作をコメントにまで拡張する場合は、行コメント、コメント・アウトされたコード、ドキュメント・コメントの本体および注釈で置換が行われます。操作をその他のファイルにまで拡張する場合、「設定」ダイアログの「ファイル・タイプ」ページでテキスト・ファイルとして指定されているタイプのプロジェクト・ファイルでもテキスト置換が行われます。コメントおよびその他のファイルでの置換は、Javaコードでの置換よりもアグレッシブに行われます。

コード要素の名前を変更するには、次のようにします。

1. 次の2つの方法のいずれかで、名前を変更する要素を選択します。

- Javaソース・エディタで、要素名を選択します。

- 「アプリケーション」ウィンドウまたは「構造」ウィンドウなどのウィンドウで、要素名を選択します。

2. 次の2つの方法のいずれかで、コマンドを起動します。

- メイン・メニューまたはポップアップ・メニューから「リファクタ」→「名前の変更」を選択します。

- [Ctrl]と[Alt]を押しながら[R]を押します。
「名前の変更」ダイアログが開きます。

3. 「変更後の名前」ボックスに、新しい名前を入力します。名前は有効で、まだ使用されていない必要があります。

4. テキスト置換の深さを設定します。

- 「テキスト使用方法のJavadocの検索」を選択して、操作をコメント、ドキュメント・コメントの本体および注釈にまで拡張します。

- (パッケージ、タイプおよびメンバー要素のみ)操作対象をプロジェクト内にある他のタイプのテキスト・ファイルにまで拡張する場合は、「テキスト・ファイルの検索」を選択します。

5. 名前の変更操作をコミットする前に置換される使用方法をインスペクトする場合は、「プレビュー」を選択します。

6. 「OK」をクリックします。
「プレビュー」を選択して、変更中の使用方法をすべて回避する場合は、「プレビュー」ログ・ウィンドウからの名前変更操作を完了してください。

11.5.5 コード要素の削除方法

Javaアプリケーションを開発する際に、クラス、インタフェース、メソッドまたはフィールドの定義を安全に削除できます。要素が使用中の場合は、ユーザーの確認なしに定義の削除が実行されることはありません。

要素が使用中である場合は、使用方法を示すログが表示されます。このリストを使用して、使用方法をインスペクトおよび解決します。このため、削除を確認しても、残りの使用方法は未定義の参照としてコード内に残ります。

コード要素を削除するには、次のようにします。

1. 次のいずれかの方法で、削除する要素を選択します。

- Javaソース・エディタで、名前を選択します。

- 「アプリケーション」ウィンドウまたは「構造」ウィンドウなどのウィンドウで、名前を選択します。

2. 次のいずれかの方法でコマンドを起動します。

- メイン・メニューまたはポップアップ・メニューから「リファクタ」→「削除」を選択します。

- [Alt]を押しながら[Delete]を押します。
使用方法についてプロジェクト・ファイルが検索されます。検出された使用方法の数が「削除の確認」ダイアログに表示されます。

3. 「使用方法の表示」ボタンをクリックして、ログ・ウィンドウ内で使用方法をインスペクトおよび解決します。

4. 「プレビュー」を選択して、ログ・ウィンドウ内で削除されたファイルの使用方法をインスペクトします。

5. 「OK」をクリックします。

11.5.6 クラスおよびインタフェースのリファクタ

Javaアプリケーションを開発する際に、新規クラスとインタフェースの定義、および既存のクラスの再利用が簡単に実行できます。たとえば、パッケージ、クラスまたはインタフェースを別のパッケージに移動することができます。オプションで、最初にプレビュー(置換する使用方法のリスト)を生成できます。プレビューを使用して、移動を完了する前に、選択した使用方法を調査、変更するかまたは除外します。

タイプを移動する場合、プライマリ・クラスおよびプライマリ・インタフェース(ファイルと同じ名前を持つもの)のみが移動対象として選択できます。実際には、ファイルの名前が変更され、セカンダリ・クラスおよびセカンダリ・インタフェースの定義はプライマリとともに残ります。アクセス・レベルは保持されます。元のパッケージの他のクラスが移動対象のクラスを参照している場合、移動対象のクラスにはpublicアクセス権が付与されます。移動対象のクラスが元のパッケージの他のクラスを参照している場合は、元のパッケージの他のクラスがpublicになります。

クラスまたはインタフェースを移動する操作の範囲は、プロジェクト全体です。

デフォルトでは、操作は、コメント(ただし、コード要素を指定するドキュメント・コメント・タグではない)および注釈を除いた、.javaファイルに制限されます。あいまいではない使用方法が置換されます。完全修飾されている場合、またはimport文に指定されている場合は、使用方法が置換されます。

操作をコメントまたはその他のファイルにまで拡張することを選択できます。操作をコメントにまで拡張する場合は、行コメント、コメント・アウトされたコード、ドキュメント・コメントの本体、および注釈に含まれるテキストが置換されます。操作をその他のファイルにまで拡張する場合は、「設定」ダイアログの「ファイル・タイプ」ページでテキスト・ファイルとして指定されるタイプのプロジェクト・ファイルに対しても置換が行われます。コメントおよびその他のファイルでの置換は、Javaコードでの置換よりもアグレッシブに行われます。

クラスまたはインタフェースを移動するには、次のようにします。

1. 次のいずれかの方法で、移動するパッケージ、クラスまたはインタフェースを選択します。

- Javaソース・エディタで、名前を選択します。

- 「アプリケーション」ウィンドウまたは「構造」ウィンドウで、名前を選択します。

2. 次のいずれかの方法でコマンドを起動します。

- メイン・メニューまたはポップアップ・メニューから「リファクタ」→「移動」を選択します。

- [Ctrl]と[Alt]を押しながら[M]を押します。
「移動」ダイアログが開きます。

3. 「移動先」フィールドに、新しいパッケージ名を入力します。
また、フィールドの横の「検索」アイコンをクリックして、既存のパッケージに移動することもできます。

4. テキスト置換の深さを設定します。

- 「参照の更新」: ドロップダウン・リストで、参照が更新される場所を選択します。

- 「テキスト使用方法のJavadocの検索」: 操作をコメント、ドキュメント・コメントの本体および注釈にまで拡張します。

- 「テキスト・ファイルの検索」: 操作をプロジェクト内にある他のタイプのテキスト・ファイルにまで拡張します。

5. 移動操作をコミットする前に置換される使用方法をインスペクトする場合は、「プレビュー」を選択します。

6. 「OK」をクリックします。
「プレビュー」を選択して、変更中の使用方法をすべて回避する場合は、「プレビュー」ログ・ウィンドウからの名前変更操作を完了してください。詳細は、第11.5.4項「コード要素の名前の変更方法」を参照してください。

クラスは、「アプリケーション」ウィンドウで複数のクラスを1つのパッケージから別のパッケージにドラッグして移動することもできます。

11.5.7 クラスまたはインタフェースの複製方法

Javaアプリケーションを開発する際に、クラスまたはインタフェースを簡単に複製できます。

プライマリ・クラスおよびプライマリ・インタフェース(ファイルと同じ名前を持つもの)のみが複製対象として選択できます。複製されたクラスまたはインタフェースは、同じパッケージにオリジナルとして追加されます。

新しいクラスのメンバー名には、オリジナルでのメンバー名と同じ名前が付けられます。ただし、オリジナル・クラスやオリジナル・インタフェースの名前から導出されたメンバー名は除きます。オリジナル名がメンバー名に埋め込まれている場合は、新しい名前に置換されます。

クラスまたはインタフェースを複製するには、次のようにします。

1. Javaソース・エディタで、複製するクラスまたはインタフェースの名前を選択します。

注意:

プライマリ・クラスおよびプライマリ・インタフェース(ファイルと同じ名前を持つもの)のみが移動対象として選択できます。

2. メイン・メニューから「リファクタ」→「複製」を選択します。
「タイプの複製」ダイアログが開きます。

3. 「クラス名」ボックスで、新しい名前を入力します。
また、クラス(例: client.frame1)を使用して新しいパッケージを指定することもできます。

4. 「OK」をクリックします。
新規クラスがプロジェクトに追加されます。

11.5.8 クラスからインタフェースを抽出する方法

Javaアプリケーションを開発する際に、既存のクラスに定義されている選択したメソッドおよびstaticフィールドから新しいインタフェースを簡単に導出できます。

オプションとして、パラメータ、変数およびメンバーのタイプ仕様などの宣言を、宣言に含まれるタイプ名を新規インタフェース名で置き換えることによって、宣言を汎化することもできます。ただし、すべての宣言を置換できるわけではありません。たとえば、メソッドの起動に使用される変数の宣言は、このメソッドが新規インタフェースに抽出されていない場合は、置換できません。置換はプロジェクト内のすべての場所で行われます。

クラスの宣言が変更され、新しいインタフェースが実装されたことが示されます。

インタフェースを抽出するには、次のようにします。

1. 次のいずれかの方法で、インタフェースを導出するクラスを選択します。

- Javaソース・エディタで、クラス名を選択します。

- 「アプリケーション」ウィンドウまたは「構造」ウィンドウで、クラス名を選択します。

2. メイン・メニューから、「リファクタ」→「インタフェースの抽出」を選択します。
「インタフェースの抽出」ダイアログが開きます。

3. 「パッケージ」フィールドで、新しいインタフェースのパッケージの名前を入力します。

4. 「インタフェース」フィールドで、新しいインタフェースの名前を入力します。

5. 「抽出するメンバー」表で、新しいインタフェースに含めるメンバーを選択します。

6. クラスを指定する既存の宣言を、インタフェースを指定する宣言に変換する場合は、「使用方法の置換」を選択します。

7. 抽出操作をコミットする前にクラスの使用方法をインスペクトする場合は、「プレビュー」を選択します。

8. 「OK」をクリックします。

11.5.9 スーパークラスの抽出方法

スーパークラスを抽出すると、コードの作成後であっても追加レベルを階層に追加することができます。スーパークラスは、選択したクラスの選別メンバーに基づいて作成できます。スーパークラスは、選別メンバーに一致するフィールド宣言とメソッド宣言で構成されます。

スーパークラスを抽出するには、次のようにします。

1. 「アプリケーション」ウィンドウ、「構造」ウィンドウ、またはJavaソース・エディタのウィンドウでクラス名を選択します。

2. メイン・メニューから、「リファクタ」→「スーパークラスの抽出」を選択します。
「スーパークラスの抽出」ダイアログが開きます。

3. 「パッケージ」フィールドで、新しいスーパークラスが属するパッケージの名前を入力します。

4. 「クラス名」フィールドで、新しいスーパークラスの名前を入力します。

5. 「抽出するメンバー」表で、新しいスーパークラスに含めるメンバーを選択します。
メソッドをスーパークラスのabstractメソッドとして作成する場合は、そのメソッドの「抽象」ボックスを選択します。スーパークラスにメソッドの依存性を含める場合は、「依存性」ボックスを選択します。

6. クラスを指定する既存の宣言を、スーパークラスを指定する宣言に変換する場合は、「使用方法の置換」を選択します。

7. 置換をコミットする前に、「プレビュー」を選択して使用方法のリストを表示します。このオプションは、「使用方法の置換」を選択した場合にのみ有効になります。

8. 「OK」をクリックします。

11.5.10 可能な場合のスーパータイプの使用方法

Javaアプリケーションを開発する際に、選択したクラスの参照をスーパータイプの1つへの参照で置き換えることによって、パラメータ、変数およびメンバーのタイプ仕様などの宣言を簡単に汎化できます。ただし、すべての宣言を置換できるわけではありません。たとえば、メソッドの起動に使用される変数の宣言に対する置換は、このメソッドもスーパータイプに定義されていない場合は行われません。置換はプロジェクト内のすべての場所で行われます。

宣言を汎化する手順は次のとおりです。

1. 次のいずれかの方法で、宣言を汎化するクラスまたはインタフェースを選択します。

- Javaソース・エディタで、名前を選択します。

- 「アプリケーション」ウィンドウまたは「構造」ウィンドウで、名前を選択します。

2. メイン・メニューから「リファクタ」→「スーパータイプを可能であれば使用」を選択します。
「スーパータイプの使用」ダイアログが表示されます。

3. 「スーパータイプ」表で、宣言を汎化するスーパータイプを選択します。

4. 「OK」をクリックします。

11.5.11 匿名クラスの内部クラスへの変換方法

メソッドの本体内でインナー・クラスを宣言できます。また、メソッドの本体内で、名前を付けずにインナー・クラスを宣言することもできます。これを匿名インナー・クラスといいます。JDeveloperでは、無名のインナー・クラス(匿名クラス)を名前付きインナー・クラスに変換できます。

匿名クラスを内部クラスに変換するには、次のようにします。

1. Javaソース・エディタ・ウィンドウで、匿名クラスの宣言を選択します。

2. メイン・メニューから、「リファクタ」→「無名を内部クラスに変換」を選択します。
「無名クラスを内部クラスに変換」ダイアログが開きます。

3. 「クラス名」ボックスで、内部クラスの名前を入力します。

4. 内部クラスにstatic修飾子を指定する場合は、「static」ボックスを選択します。

5. 匿名クラスを内部クラスに変換するには、「OK」をクリックします。

11.5.12 内部クラスの移動方法

最上位レベルに新しく作成したクラスに内部クラスを移動できます。クラスが不適切なパッケージにあるため、より適合する別のパッケージに移動する必要がある場合などにこの操作が使用できます。

内部クラスを移動するには、次のようにします。

1. 「構造」ウィンドウまたはJavaソース・エディタのウィンドウで、インナー・クラス名を選択します。

2. メイン・メニューから、「リファクタ」→「移動」を選択します。
「内部クラスの移動」ダイアログが開きます。

3. 新しい最上位レベルのクラスを作成する際に、ダイアログに表示された名前を使用しない場合は、この名前を上書きするか、新しい名前を選択します。

4. ダイアログに表示された詳細内容を使用して新しい最上位レベルのクラスを作成する場合は、「OK」をクリックします。

11.5.13 クラス・メンバーのリファクタ

Javaアプリケーションを開発する際に、メンバー定義をクラス間で簡単に移動できます。たとえば、クラス・メンバー(メソッドなど)を別のクラスに移動できます。

11.5.13.1 Staticメソッドの移動

staticキーワードを使用して修飾子として宣言されたメソッドをstaticメソッドまたはstaticクラス・メンバーといいます。

staticメソッドでは、それが定義されているクラスのインスタンス変数は使用されません。mainメソッドのメソッド・シグネチャはstaticであり、mainメソッドを呼び出すためにクラスのインスタンスを作成する必要がないことを示しています。メソッドをstaticに定義した場合、インスタンス変数にアクセスしようとすると、コンパイラがエラー・メッセージを表示します。

staticメソッドを移動するには、次の手順を実行します。

1. 「構造」ウィンドウまたはJavaソース・エディタ・ウィンドウで、メソッド名を選択します。

2. メイン・メニューから、「リファクタ」→「移動」を選択します。
「メンバーの移動」ダイアログが開きます。

3. 「ターゲット」パネルで、メンバーの移動先のクラスを入力または選択します。

4. 移動するメンバーごとに、「抽出するメンバー」リストのメンバーの左側にあるチェック・ボックスが選択されていることを確認します。

5. メンバーの依存性も移動する場合、「依存性」列で対応するチェック・ボックスを選択します。

11.5.13.2 Staticではないメソッドの移動

staticではないメソッドを静的なコンテキストから参照することはできません。staticではないメソッドをstaticメソッドから呼び出すには、staticではないメソッドが含まれているクラスのインスタンスを割り当てる方法しかありません。staticではないメソッドは、クラス内のインスタンス・レベルのデータ(例: staticではないフィールド)にアクセスする必要があります。

staticではないメソッドを移動するには、次の手順を実行します。

1. 「構造」ウィンドウまたはJavaソース・エディタ・ウィンドウで、メソッド名を選択します。

2. メイン・メニューから、「リファクタ」→「移動」を選択します。
メンバーの移動先に適したターゲットが少なくとも1つ存在する場合は、「メンバーの移動」ダイアログが開きます。そうでない場合は、メッセージ・ボックスが表示されます。

3. 「ターゲット」パネルで、メンバーの移動先のクラスを選択します。

4. 新しい場所でメソッドおよびパラメータに新しい名前を使用する場合、「メソッド名」および「パラメータ名」ボックスに新しい名前を入力します。

5. 移動後にメンバーの使用方法を処理する方法を選択します。

- 新規作成された代行メソッドを通じて使用方法を処理する場合は、「代行の使用」を選択します。

- すべての使用方法を、移動後のクラス・メンバーを直接呼び出す使用方法に置き換える場合には、「置換」を選択します。

11.5.14 メソッドをstaticメソッドに変更する方法

メソッドにstatic修飾子を割り当てることができます。要素をstaticにする際に、staticではないコンテキストでの使用方法が見つかった場合のアクションを指定することもできます。

メソッドをstaticメソッドに変更するには、次のようにします。

1. 「構造」ウィンドウまたはJavaソース・エディタで、メソッド名を選択します。

2. メイン・メニューから、「リファクタ」→「staticにする」を選択します。
クラスがクラス階層の一部である場合、「staticにする」ダイアログが開きます。そうでない場合は、ただちにstatic修飾子が追加されます。

3. 「staticにする」ダイアログが開いた場合は、次の操作を行います。

- 「名前」ボックスで、変更済メソッド内で参照として使用する名前を入力または選択します。
表示されるオプションはローカル・オブジェクト名から導出されます。

- オーバーライドできないメソッドを作成する場合は、「finalを宣言」ボックスを選択します。

11.5.15 メソッドのシグネチャを変更する方法

メソッドのシグネチャを変更できます。メソッドのシグネチャは、メソッドの名前とパラメータの番号およびタイプ(およびそれらの順序)の組合せです。

メソッドのシグネチャを変更するには、次のようにします。

1. 「構造」ウィンドウまたはJavaソース・エディタで、メソッド名を選択します。

2. メイン・メニューから、「リファクタ」→「メソッドの変更」を選択します。
「メソッドの変更」ダイアログが開きます。

3. 必要に応じて、メソッドの名前、戻り型、アクセス・レベルおよびパラメータを変更します。
メソッドの名前をすでにクラスに存在する名前に変更する場合は、次に2番目のダイアログが表示されます。このダイアログを使用して、変更するメソッドのすべての使用方法を既存のメソッドの使用方法に置換できます。

4. 変更内容に基づいてタスクを作成し、「タスク」ウィンドウに追加する場合、「タスクをタスク・ウィンドウに追加」ボックスを選択します。

注意:

この機能はコンストラクタには適用されません。

11.5.16 メンバーをスーパークラスへプル・アップする方法

Javaアプリケーションを開発する際に、メンバーの定義をクラス(ソース・クラス)からそのスーパークラスの1つ(ターゲット・クラス)に簡単に移動できます。プロジェクト内にこのクラスの潜在的なターゲット・クラスが1つ以上存在する場合にのみ、この操作をクラスに適用できます。メンバーをライブラリ・クラスにプル・アップすることはできません。同様に、このリファクタ・コマンドは、スーパークラス句または実装されているインタフェースの一覧で宣言されているクラスにのみ適用されます。

デフォルトでは、メソッドをプル・アップすると、その定義はソース・クラスからターゲット・クラスに移動されます。メソッドを抽象化するように選択することもできます。この場合、メソッド定義はソース・クラスに残り、メソッドの宣言がターゲット・クラスに追加されます。メソッドを抽象化すると、ターゲット・クラスが未変換の場合は、ターゲット・クラスが抽象クラスに変換されます。

プル・アップ対象のメンバーには依存性がある場合があります。依存性がプル・アップ対象のメンバーの定義で使用されている場合、メンバーに依存性があります。依存性をプル・アップしないでメンバーをプル・アップすると、ターゲット・クラスに未定義の参照が発生します。プル・アップするメンバーを選択すると、そのメンバーの依存性が示されます。この場合、依存性もプル・アップするかどうかを選択できます。

privateとして宣言されたメンバーをプル・アップする場合、アクセスはprotectedに変更されます。

メンバーをプル・アップするには、次のようにします。

1. 次のいずれかの方法で、メンバーのプル・アップ元にするクラスを選択します。

- Javaソース・エディタで、名前を選択します。

- 「アプリケーション」ウィンドウまたは「構造」ウィンドウで、名前を選択します。

2. メイン・メニューから「リファクタ」→「メンバーのプル・アップ」を選択します。
「メンバーのプル・アップ」ダイアログが開きます。

3. 「ターゲット」ドロップダウン・メニューからターゲット・クラスとなるスーパークラスを選択します。

4. 「抽出するメンバー」表で、プル・アップするメンバーを選択します。
存在する場合、選択したメンバーに依存性があるメンバーが示されます。

5. メソッドをターゲット・クラスに抽象化する場合、「抽象」列のチェック・ボックスを選択します。

注意:

抽象化されるメンバーには依存性はありません。

6. メンバーのすべての依存性もプル・アップする場合は、「依存性」列のチェック・ボックスを選択します。
この選択によって依存オブジェクトが生成されます。すなわち、依存性の依存性もプル・アップされます。

7. 「OK」をクリックします。

11.5.17 メンバーをサブクラスへプッシュ・ダウンする方法

Javaアプリケーションを開発する際に、メンバーの定義をクラス(ソース・クラス)から直下のサブクラス(ターゲット・クラス)に簡単に移動できます。

デフォルトでは、メソッドをプッシュ・ダウンすると、メソッドの定義はソース・クラスからターゲット・クラスに移動します。メソッドの宣言をソース・クラスに残し、ソース・クラスが未変換の場合は、ソース・クラスを抽象クラスに変換するように選択することもできます。

プッシュ・ダウン対象のメンバーには依存性がある場合があります。メンバーがプッシュ・ダウン対象のメンバーの定義を使用している場合、このメンバーには依存性があります。依存性をプッシュ・ダウンしないでメンバーをプッシュ・ダウンすると、ソース・クラスに未定義の参照が発生します。プッシュ・ダウンするメンバーを選択すると、その依存性が示されます。この場合、依存性もプッシュ・ダウンするかどうかを選択できます。

メンバーをプッシュ・ダウンするには、次のようにします。

1. 次のいずれかの方法で、メンバーのプル・アップ元にするクラスを選択します。

- Javaソース・エディタで、名前を選択します。

- 「アプリケーション」ウィンドウまたは「構造」ウィンドウで、名前を選択します。

2. メイン・メニューから「リファクタ」→「メンバーのプッシュ・ダウン」を選択します。
「メンバーのプッシュ・ダウン」ダイアログが開きます。

3. 「抽出するメンバー」表で、プッシュ・ダウンするメンバーを選択します。
存在する場合、選択したメンバーに依存性があるメンバーが示されます。

4. メンバーの抽象定義をソース・クラスに残す場合は、「抽象」列のチェック・ボックスを選択します。

5. 「依存性」列で、メンバーのすべての依存性をそのメンバーとともにプッシュ・ダウンするためのチェック・ボックスを選択します。

6. 「OK」をクリックします。

11.5.18 フィールドの導入方法

Javaアプリケーションを開発する際に、式を名前付き要素に簡単に変換できます。たとえば、式をフィールドの参照に変換できます。新しいフィールド宣言がクラスに追加され、選択した式によって初期化されます。元の式は、新しいフィールドの参照と置き換えられます。

式のタイプがvoidである場合、式をフィールドに変換することはできません。

フィールドを導入するには、次のようにします。

1. ソース・エディタで、式を選択します。

2. メイン・メニューから「リファクタ」→「フィールドの導入」を選択します。
「フィールドの導入」ダイアログが開きます。

3. 「タイプ」ドロップダウン・メニューからフィールドのタイプを選択します。
メニューには、この式に一致するタイプがすべて表示されます。このオプションは、有効なタイプが1つのみの場合に表示されます。

4. 「名前」テキスト・ボックスに名前が表示されます。
表示された名前を変更または置換したり、ドロップダウン・メニューから別の名前を選択できます。

5. 初期化方法を選択します。

- 「現在のメソッド」を選択し、式を含む文の直前にフィールドの代入文を配置します。

- 「フィールド宣言」を選択し、宣言文でフィールドに値を割り当てます。式にローカル・スコープの変数またはパラメータがある場合、このオプションは無効になります。

- 「コンストラクタ」を選択し、クラスのコンストラクタ・メソッドでフィールドに値を割り当てます。式にローカル・スコープの変数またはパラメータがある場合、このオプションは無効になります。

6. 「OK」をクリックします。

11.5.19 メソッド・コールをインライン化する方法

メソッド本体をコール元の本体に取り込み、元のメソッドを削除できます。これは、メソッド・コールのインライン化と呼ばれます。

メソッド・コールをインライン化するには、次のようにします。

1. Javaソース・エディタで、インライン化するメソッド・コールのインスタンスを選択します。

2. メイン・メニューから「リファクタ」→「インライン」を選択します。

- このクラスのメソッドに対するコールが1つのみである場合は、ただちに変更が行われます。

- このクラスのメソッドに対するコールが複数ある場合は、「インライン」ダイアログが開きます。

3. 「インライン」ダイアログが開いた場合は、次のようにします。

- 選択したコールのインスタンスのみをインライン化するか、コールのすべてのインスタンスをインライン化するかを選択します。

- 「OK」をクリックします。

11.5.20 変数の導入方法

Javaアプリケーションを開発する際に、式を変数の参照に簡単に変換できます。新しい変数宣言がメソッドに追加され、選択した式によって初期化されます。元の式は新しいメンバーの参照と置き換えられます。

式のタイプがvoidである場合、この式をメンバーに変換することはできません。

メンバーを導入するには、次のようにします。

1. ソース・エディタで、式を選択します。

2. メイン・メニューから「リファクタ」→「変数の導入」を選択します。
「変数の導入」ダイアログが開きます。

3. 「タイプ」ドロップダウン・メニューからフィールドのタイプを選択します。
メニューには、この式に一致するタイプがすべて表示されます。有効なタイプが1つのみの場合、このオプションは表示されません。

4. 「名前」テキスト・ボックスには、名前が表示されます。
表示された名前を変更または置換したり、ドロップダウン・メニューから別の名前を選択できます。

5. 変数の宣言にfinal修飾子を追加する場合は、「finalを宣言」を選択します。

6. 「OK」をクリックします。

11.5.21 パラメータの導入方法

Javaアプリケーションを開発する際に、メソッド本体の定数式をメソッドの新しいパラメータに簡単に変換できます。式は新しいパラメータの名前に置き換えられ、新しいパラメータがメソッドのパラメータ・リストに追加されます。また、すべてのメソッドの起動で、この式は追加引数として挿入されます。

リテラルまたはリテラルの操作が存在する場合にのみ、式をパラメータとして導入できます。

この操作は、インタフェースを実装するメソッドに対しては禁止されています。このようなメソッドのシグネチャを変更すると、実装が無効化されます。

パラメータを導入するには、次のようにします。

1. ソース・エディタで、式を選択します。

2. メイン・メニューから「リファクタ」→「パラメータの導入」を選択します。

3. 「タイプ」ドロップダウン・メニューからフィールドのタイプを選択します。
メニューには、この式に一致するタイプがすべて表示されます。有効なタイプが1つのみの場合、このオプションは表示されません。

4. 「名前」テキスト・ボックスに名前が表示されます。
表示された名前を変更または置換したり、ドロップダウン・メニューから別の名前を選択できます。

5. 変数の宣言にfinal修飾子を追加する場合は、「finalを宣言」を選択します。

6. 「OK」をクリックします。

11.5.22 定数の導入方法

Javaアプリケーションを開発する際に、定数式を定数参照に簡単に変換できます。定数式によって初期化された新しい定数宣言がクラスに追加され、元の定数式は定数の名前によって置き換えられます。

リテラルまたはリテラルの操作が存在する場合にのみ、式を定数として導入できます。

定数を導入するには、次のようにします。

1. ソース・エディタで、式を選択します。

2. メイン・メニューから「リファクタ」→「定数の導入」を選択します。
「定数の導入」ダイアログが開きます。

3. 「タイプ」ドロップダウン・メニューからフィールドのタイプを選択します。
メニューには、この式に一致するタイプがすべて表示されます。有効なタイプが1つのみの場合、このオプションは表示されません。

4. 「名前」テキスト・ボックスに名前が表示されます。
表示された名前を変更または置換したり、ドロップダウン・メニューから別の名前を選択できます。

5. 「OK」をクリックします。

11.5.23 メソッドの抽出方法

Javaアプリケーションを開発する際に、メソッドの本体の一部を抽出して別のメソッドを簡単に作成できます。抽出したコードは、元のメソッドで新しいメソッドへのコールに置き換えられます。抽出したコードで使用されていたローカル変数およびパラメータは、新しいメソッドのパラメータになります。抽出したコードの文によって行われる割当てが存在する場合は、元のメンバーで新しいメソッドへのコール値を使用する割当てに変換されます。

抽出を行うには、コードが次の制限を満たす必要があります。

- 単一の完全な式または一連の完全な文で構成されていること。

- 選択したコードの外部に宣言がある、複数の変数に割り当てることができないこと。

- 複数の終了ポイントを使用できないこと。終了ポイントとは、選択したコードで捕捉されない例外をスローする文、選択したコードの外部のループのbreakまたはcontinue文、またはreturn文です。

新しいメソッドは、元のメソッドと同じクラスに追加されます。新しいメソッドは、privateとして宣言されます。

注意:

選択したコード・ブロックのみが、抽出されたメソッドによって置換されます。その他の同じコード・ブロックは置換されません。

メソッドを抽出するには、次のようにします。

1. ソース・エディタで、抽出する式または一連の式を選択します。

2. メイン・メニューから、「リファクタ」→「メソッドの抽出」を選択します。

3. 新しいメソッドの名前を入力します。

4. 「パラメータ」リストで、選択したコードに表示されるローカル変数およびパラメータに対して行う置換を指定します。

- 「名前」列には、元の名前と似ているか同じ置換名が表示されます。これらの名前を選択して変更できます。

- 「対象」列で、新しいメソッドのパラメータとなる提案パラメータを選択します。選択しないパラメータは、新しいメソッドでは初期化されていないローカル変数になります。

- 「上へ」ボタンと「下へ」ボタンを使用してパラメータを並べ替えます。

5. 新しいメソッドをstaticとして宣言する場合は、「static」を選択します。
メソッドがstaticメソッドからコールされるためにメソッドが強制的にstaticに設定されている場合、またはstatic以外のメンバーを使用するためにメソッドがstatic以外に強制的に設定されている場合は、このオプションは無効です。

6. 「OK」をクリックします。
新しいメソッドはクラスに追加され、選択したコードは新しいメソッドへのコールによって置き換えられます。

7. 「パラメータ」リスト内の提案パラメータを選択しない場合は、新しいメソッドを編集してローカル変数を初期化します。

11.5.24 コンストラクタをファクトリ・メソッドと置換する方法

コンストラクタをファクトリ・メソッドに変換できます。コンストラクタによって、クラスのインスタンスが作成されます。ファクトリ・メソッドは、ネイティブ・クラスのインスタンスを返すstaticメソッドです。ファクトリ・メソッドは、コンストラクタが非常に制約的な状況で使用できます。

コンストラクタをファクトリ・メソッドに変換するには、次のようにします。

1. 「構造」ウィンドウまたはJavaソース・エディタで、コンストラクタ名を選択します。

2. メイン・メニューから、「リファクタ」→「コンストラクタをファクトリ・メソッドと置換」を選択します。

3. 「メソッド名」ボックスで、新しいメソッドの名前を入力します。
ボックスには、現在のクラス名に基づいて提案された名前がすでに表示されています。

4. コンストラクタをファクトリ・メソッドに変換するには、「OK」をクリックします。

11.5.25 フィールドをカプセル化する方法

カプセル化によってクラス内のフィールドがprivateになり、publicメソッド経由でフィールドにアクセスできるようになります。フィールドがprivateと宣言された場合、クラスのアウトラインからそのフィールドにアクセスすることはできません。これにより、クラス内のフィールドが非表示になります。publicアクセス可能なクラスのフィールドを、クラス内からのみアクセス可能に変更できます。

フィールドをカプセル化するには、次のようにします。

1. 「構造」ウィンドウまたはJavaソース・エディタでフィールド名(またはその親クラス)を選択します。

2. メイン・メニューから、「リファクタ」→「フィールドのカプセル化」を選択します。

3. 「フィールド」表で、カプセル化する各フィールドの隣にあるボックスを選択します。
メソッドまたはフィールドのアクセス・レベルおよび置換の有効範囲に関するオプションを、フィールドごとに指定することもできます。

4. 「アクセッサの置換」ボックスで、カプセル化の一部としてアクセッサを置換する方法を選択します。

5. 変更内容に基づいてタスクを作成し、「タスク」ウィンドウに追加する場合、「タスクをタスク・ウィンドウに追加」ボックスを選択します。

6. 「OK」をクリックします。

11.5.26 ブール式の反転方法

Javaアプリケーションの開発中に、ブールのフィールド、パラメータまたはローカル変数を選択し、反対の値で初期化できます。JDeveloperは自動的にすべての参照を修正し、同じコード機能を維持します。JDeveloperがすべてのフィールド、パラメータ、ローカル変数を参照し、すべての使用方法を反転します。このリファクタによって、ブールのメソッドまたは変数の意味が反転します。trueに評価されるブール式はfalseになります。同様に、falseに評価されるブール式はtrueになります。

たとえば、有効になっている変数があり、その意味を反転する場合には、「ブールの反転」メニューの選択によって、使用方法を無効にします。

ブールを反転するには、次のようにします。

1. ソース・エディタで、ブール式を選択します。

2. 式を右クリックし、「リファクタ」→「ブールの反転」を選択します。
表11-2は、反転したブール式の例を示しています。

表11-2 ブールの反転の例

前

後

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;}

11.5.27 XMLスキーマのリファクタ

スキーマのターゲット・ネームスペースが変更されると、参照するスキーマはすべて更新され、新しいターゲット・ネームスペースが割り当てられます。

ファセットのあるsimpletype要素に対してベース・タイプを変更した場合、すべてのファセットが削除されることはありません。そのかわりに、まだ有効なファセットが保持されます。

12 Javaプロジェクトのビルド

JDeveloperでは、メイク操作および再ビルド操作、Apache Ant、Apache Mavenなど、プロジェクトのビルドとコンパイルに複数の方法がサポートされています。

「メイク」操作によって、最後にコンパイルされてから変更されたソース・ファイルをコンパイルします。「再ビルド」操作によって、プロジェクトまたはワークスペース内のすべてのソース・ファイルをコンパイルします。

Antには多数の組込みタスクがあり、Javaアプリケーションのコンパイル、アセンブル、テストおよび実行が可能です。プロジェクトをビルドするには、XMLで作成されたAntビルドファイルを使用します。各ビルドファイルには、1つのプロジェクトと少なくとも1つ(デフォルト)のターゲットが含まれています。

MavenサポートはAntサポートと非常によく似ています。WebLogic Mavenプラグインを使用すると、JavaプロジェクトをWebLogicサーバーにデプロイするMavenスクリプトを作成できます。

この章には次の項が含まれます:

- 第12.1項「Javaプロジェクトのビルドについて」

- 第12.2項「メイク・コマンドおよび再ビルド・コマンドによるビルド」

- 第12.3項「依存性チェックの理解」

- 第12.4項「アプリケーションおよびプロジェクトのコンパイル」

- 第12.5項「アプリケーションおよびプロジェクトのクリーン」

- 第12.6項「Apache Antによるビルド」

- 第12.7項「Apache Mavenによるビルドと実行」

12.1 Javaプロジェクトのビルドについて

JDeveloperは、ソース・ファイルを無条件でコンパイルする再ビルド操作をサポートしています。最後にコンパイルされてから変更されたソース・ファイル、または変更された依存性のあるソース・ファイルをコンパイルするには、メイク・コマンドを使用します。「プロジェクト・プロパティ」ダイアログでオプションを設定すると、コンパイルするプロジェクトごとにJavaコンパイラを構成できます。

Antには、アプリケーションをビルドするもう1つの方法があります。AntをJDeveloperのメイン・メニューおよびツールバーから起動し、現在のプロジェクトのプロジェクト・ビルドファイルに定義されているターゲットを構築できます。AntはJDeveloperに統合されています。XMLソース・エディタを使用して、12cアプリケーションおよびプロジェクト向けAntビルドファイルの追加または作成を行ったり、それらを編集したりすることができます。

Maven 12c統合プロジェクトでは、一貫性があり、自動ビルド、テスト、およびデプロイを行うプロセスがプロジェクト用に使用できます。Mavenを使用して、プロジェクトのビルド、Oracleおよびサード・パーティのアーティファクトでの依存性管理、内部または外部(パブリック) Mavenリポジトリの自動ダウンロードを実行できます。

12.2 「メイク」コマンドおよび「再ビルド」コマンドによるビルド

表12-1に示すメイク・コマンドと再ビルド・コマンドは、JDeveloperでプロジェクトをコンパイルするための標準操作を実行します。

表12-1 メイク・コマンドおよび再ビルド・コマンド

コマンド

説明

「プロジェクトのメイク」

プロジェクトが依存しているすべてのプロジェクトを(再帰的に)メイクしてから、プロジェクトをメイクします。

「プロジェクトのみメイク」

プロジェクトをメイクしますが、そのプロジェクトが依存するプロジェクトはメイクされません。

「プロジェクトをワーキング・セットにする」

ワーキング・セットにあるすべてのプロジェクトをメイクします。

「プロジェクトの再ビルド」

プロジェクトが依存しているすべてのプロジェクトを(再帰的に)再ビルドしてから、プロジェクトを再ビルドします。

「プロジェクトのみ再ビルド」

プロジェクトを再ビルドしますが、そのプロジェクトが依存するプロジェクトは再ビルドされません。

「プロジェクト・ワーキング・セットの再ビルド」

ワーキング・セットにあるすべてのプロジェクトを再ビルドします。

「すべてメイク」

すべてのプロジェクトをメイクします。

「すべてクリーン」

すべてのプロジェクトをクリーンします。

「プロジェクトのクリーン」

プロジェクトが依存しているすべてのプロジェクトを(再帰的に)クリーンしてから、プロジェクトをメイクします。

12.2.1 コンパイラ・プリファレンスの設定方法

「プリファレンス」ダイアログの「コンパイラ」ページでコンパイラ・オプションを設定できます。

デプロイメント設定を構成するには、次の手順を実行します。

1. メイン・メニューから「ツール」→「プリファレンス」を選択します。

2. 「コンパイラ」ノードを選択します。必要に応じて、コンパイラ・オプションを構成します。詳細は、「ヘルプ」をクリックしてください。

3. 「OK」をクリックします。

12.2.2 メイクによるコンパイル

「メイク」操作によって、最後にコンパイルされてから変更されたソース・ファイルや依存性が変更されたソース・ファイルをコンパイルします。一方、「再ビルド」操作の場合、ソース・ファイルを無条件にコンパイルします。「メイク」は、個々のソース・ファイル、作業セット、またはパッケージ、プロジェクトおよびワークスペースなどのコンテナに対してメイクを起動できます。

より選択的にコンパイルする場合、Antビルドファイルをプロジェクトに追加したり、追加ターゲットを定義できます。また、Antを実行してこれらのターゲットをメイクすることもできます。

現在進行中のコンパイルを取り消すには、メイン・ツールバーの「ビルドの取消」アイコンをクリックします。

このアイコンをクリックすると、「コンパイラ - ログ」ウィンドウの最上部の行にエラー・メッセージが出力されます。

ソース・ファイルをメイクするには、次のいずれかを実行します。

- ファイルのソース・エディタで右クリックして、「メイク」を選択します。

- 「アプリケーション」ウィンドウで1つ以上のプロジェクトを選択して、ツールバーの「メイク」をクリックします。

- 「アプリケーション」ウィンドウで1つ以上のプロジェクトを選択して、「ビルド」メニューから項目「メイク」を選択します。

- 「アプリケーション」ウィンドウで1つ以上のプロジェクトを選択し、右クリックして、「メイク」を選択します。

12.2.3 再ビルドによるコンパイル

「再ビルド」操作によって、プロジェクトまたはワークスペース内のすべてのソース・ファイルをコンパイルします。変更されたソース・ファイルまたは依存性が変更されたソース・ファイルのみを再コンパイルする「メイク」操作とは異なり、「再ビルド」操作には、条件はありません。

より選択的にコンパイルする場合、Antビルドファイルをプロジェクトに追加したり、追加ターゲットを定義できます。また、Antを実行してこれらのターゲットをメイクすることもできます。Antには多数の組込みタスクがあり、Javaアプリケーションのコンパイル、アセンブル、テストおよび実行が可能です。

現在進行中のコンパイルを取り消すには、メイン・ツールバーの「ビルドの取消」アイコンをクリックします。このアイコンをクリックすると、「コンパイラ - ログ」ウィンドウの最上部の行にエラー・メッセージが出力されます。

ソース・ファイルを再ビルドするには、次のいずれかを実行します。

- 「アプリケーション」ウィンドウでソース・ファイルを1つ以上選択し、「再ビルド」(ファイルが1つの場合)、または「選択されたものを再ビルド」(ファイルが複数の場合)をクリックします。

- 「アプリケーション」ウィンドウで1つ以上のプロジェクトまたはワークスペースを選択し、ツールバーで「再ビルド」をクリックします。

- 「アプリケーション」ウィンドウで1つ以上のプロジェクトまたはワークスペースを選択し、「ビルド」メニューから項目「再ビルド」を選択します。

- 「アプリケーション」ウィンドウで1つ以上のプロジェクトまたはワークスペースを選択し、「再ビルド」を選択します。

12.3 依存性チェックの理解

JDeveloperでは、ビルド時に依存性を分析することにより、コンパイルを高速かつ完全に行うことができます。依存性チェックにより、相互に依存するソース・ファイルの不要なコンパイルを減らし、編集およびコンパイルのサイクルを高速化できます。

JDeveloperを使用してコンパイルを行う際に、「メイク」を使用してコンパイルする場合は、常に依存性チェックが実行されます。「メイク」では、JDeveloper内で自動的に作成される依存性ファイルが使用されます。

コマンドラインからコンパイルする場合は、次のパラメータを指定して依存性ファイルを作成または使用します。

javac -make <makedepfile>

12.3.1 コンパイルするプロジェクトの設定方法

「プロジェクト・プロパティ」でオプションを設定すると、プロジェクトごとに、Javaコンパイラを構成できます。

たとえば、コンパイラで次のようなメッセージが表示されないようにしたい場合があります。

例12-1 コンパイラ・メッセージ

- 注意: 入力ファイルの中には、未チェック操作または安全でない操作を使用するものがあります。

- 注意: 詳細は、-Xlint:uncheckedで再コンパイルしてください。

プロジェクト・プロパティをコンパイル用に設定するには、次のようにします。

1. 「アプリケーション」ウィンドウでプロジェクトを右クリックし、コンテキスト・メニューから「プロジェクト・プロパティ」を選択します。
また、「アプリケーション」ウィンドウで、プロジェクト・ノードをダブルクリックすることもできます。

2. 「プロジェクト・プロパティ」ダイアログで、「コンパイラ」ノードを開きます。

3. 「オプション」をクリックします。

4. 「コンパイラ・オプション」の下で、「Javac」ノードを展開します。

5. オプションで、「警告」ノードを開きます。
オプションとしてまずここをクリックすると、どのオプションがデフォルトでオンになるかを確認できます。たとえば、「-Xlint:all」がオンになっている場合、すべての-Xlint警告がオンになります。

例12-1に示す「-Xlint」メッセージを表示しないようにするには、「プロジェクト・プロパティ」ダイアログの個別の警告をオフ・セクションに進みます。これで、特定のXlintメッセージのみ表示をオフにし、他のメッセージはデフォルトで表示するようにできます。

6. オプションで、個別の警告をオフ・ノードを開きます。

7. 「-Xlint Unchecked」チェック・ボックスの選択を解除します。

8. すべてのダイアログを閉じて再コンパイルします。

注意:

コンパイル前にすべてのプロジェクト・ファイルを自動的に保存するには、「プリファレンス」ダイアログの「コンパイラ」ページでこれを指定します。

12.3.2 コンパイル用のネイティブ・エンコーディングの指定方法

コンパイラによるマルチバイト文字の解釈方法を制御するコード体系を指定できます。指定しない場合、プラットフォームのデフォルトのネイティブ・エンコーディング・コンバータが使用されます。

テキスト文字は、様々なコード体系を使用して表現されます。これらは、Windows環境ではコード・ページ、Javaではネイティブ・エンコーディングと呼ばれます。データをあるコード体系から別のコード体系に移動する場合、変換が必要です。各体系の拡張文字セットは異なる場合があるので、変換によってデータが失われないようにする必要があります。

JDeveloperソース・エディタを含むほとんどのテキスト・エディタでは、動作しているプラットフォームのネイティブ・エンコーディングが使用されます。たとえば、日本語のWindowsではシフトJISが使用されます。ソース・コードがシフトJISを使用してエンコードされている場合、これを米語のWindows環境でコンパイルするには、ソースが正しく読み込まれるようにコンパイラに対してシフトJISエンコーディングを指定する必要があります。

JDeveloperは、現在インストールされているJ2SEに含まれている文字コード体系をサポートしています。

エンコーディング・オプションを設定するには、次のいずれかを実行します。

1. JDeveloperで、「プロジェクト」→「プロジェクト・プロパティ」を選択します。

2. 「プロジェクト・プロパティ」ダイアログで、「コンパイラ」ノードを選択します。

3. コマンドラインで、javacコマンドと-encodingオプションを使用し、その後ろにエンコーディング名を入力します。

4. 次のいずれかの方法で、エンコーディング名を選択します。

- 「文字コード」ドロップダウン・リストから名前を選択します。

- 使用環境のデフォルト・エンコーディングを使用する場合は、「文字コード」ドロップダウン・リストから「default」を選択します。

Java SDKでサポートされるエンコーディングの一覧は、次を参照してください。
http://download.oracle.com/javase/6/docs/technotes/guides/intl/encoding.doc.html

12.4 アプリケーションおよびプロジェクトのコンパイル

JDeveloperは、Javaコンパイラ(Javac)を使用してJavaソース・コード(.javaファイル)をJavaバイトコード(.classファイル)にコンパイルします。生成されるバイトコードは、Java Virtual Machine (JVM)のマシン・コードです。Javaソース・ファイルのコンパイルにより、各クラス宣言およびインタフェース宣言に対して個別のクラス・ファイルが生成されます。生成されたJavaプログラムを特定のプラットフォームで実行すると、そのJVMによってclassファイルに含まれるバイトコードが実行されます。

Javacでは、指定されたJavaファイルの他に、対応するクラス・ファイルのないインポート・ファイルがコンパイルされます。(-makeオプションを使用して)依存性チェックを指定しないかぎり、すべてのターゲットJavaファイルがコンパイルされます。詳細は、第12.3項「依存性チェックの理解」を参照してください。

JDeveloper内部で操作する場合、コンパイラとしてJavacが使用されます。コンパイラのオプションは、「プロジェクト・プロパティ」→「コンパイラ」→「オプション」と選択して設定できます。「コンパイラ・オプション」ページに表示される各オプションの横に説明が表示されます。

12.4.1 コマンドラインからのコンパイル

アプリケーション(ワークスペース)とプロジェクトをコンパイルするには、次の2つの方法があります。

- JDeveloper内部で、アプリケーションとプロジェクトのノードに対してビルドおよびコンパイルの各オプションを使用します。

- コマンドラインから、ojmakeおよびojdeployを使用します。

jdeveloper/jdev/binディレクトリに「ojmake」と「ojdeploy」の両方があります。

- ojmakeは、デプロイメントを伴わないアプリケーションとプロジェクト、たとえばデプロイメント・プロファイルが定義されていないプロジェクトなどに対して使用できます。

- ojdeployは、すべてのアプリケーションおよびプロジェクト(デプロイメントを伴うものを含む)のビルドを扱うことができます。これは、ojmakeのスーパーセットと考えられます。

ツールのヘルプは、コマンドラインでojmakeまたはojdeployを実行するだけで表示できます。ヘルプはコンソールに表示されます。

注意:

コマンドラインから操作する場合にはJavacを使用してJavaファイルをコンパイルできますが、Javacを手動で実行してアプリケーションとプロジェクトをビルドすることはできません。ojmakeまたはojdeployを使用する必要があります。

ojmakeの使用方法の詳細は、第12.7.20項「ojdeployおよびojmakeの使用方法」を参照してください。

ojdeployの使用方法の詳細は、第9.8.2項「ojdeployの使用方法」を参照してください。

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

クリーンを実行すると、以前のビルドのアーチファクトを削除し、新規に操作を開始できます。「クリーン」コマンドを使用して、アプリケーションまたはプロジェクトのクリーンを実行できます。このコマンドを実行すると、プロジェクトまたはアプリケーションの出力ディレクトリおよびデプロイ・ディレクトリがクリーンされます。

「クリーン」コマンドをアプリケーションまたはプロジェクトに対して実行すると、クラス・ファイル、コピーしたリソース・ファイル、およびデプロイしたファイルのすべてが削除されます。このことを実行すると、出力ディレクトリおよびデプロイ・ディレクトリに古いファイルが確実に残らないようにできます。たとえば、名前変更、移動または削除を行ったクラスと、このようなクラスに属する古いクラス・ファイルは削除する必要があります。同様に、名前変更、移動または削除を行ったリソースやデプロイと、出力ディレクトリまたはデプロイ・ディレクトリに残っているそれらの古いコピーも削除する必要があります。

アプリケーションのデプロイ・ディレクトリの内容が削除されます。

「クリーン」コマンドを正常に実行するには、次の条件が満たされている必要があります。

- クリーンするプロジェクトの出力ディレクトリ、またはクリーンするアプリケーションの各プロジェクトの出力ディレクトリが指定されていること

- 出力場所がファイルではなく、ディレクトリとして指定されていること

12.5.1 クリーン方法

「クリーン」コマンドを使用すると、新しいビルド・プロセスを開始するために、以前のビルドから残されたアーチファクトを削除できます。

12.5.1.1 プロジェクトのクリーン

アプリケーション内で単一プロジェクトをクリーンすることができます。

プロジェクトをクリーンするには、次のようにします。

1. 「アプリケーション」ウィンドウで、クリーンするプロジェクトを選択します。

2. 「ビルド」メニューで、「<project>のクリーン」を選択します。

3. 「<project>をクリーン中」ダイアログで、「はい」をクリックします。

12.5.1.2 アプリケーションのクリーン

アプリケーションのクリーンによって、アプリケーションとそのすべてのプロジェクトがクリーンされます。アプリケーションのクリーンを実行すると、次の処理が行われます。

- アプリケーションを構成する各プロジェクトの出力ディレクトリおよびデプロイ・ディレクトリの内容が削除されます。

- アプリケーションのデプロイ・ディレクトリの内容が削除されます。

アプリケーションをクリーンするには、次のようにします。

1. 「アプリケーション」ウィンドウで、クリーンするアプリケーションを選択します。

2. 「ビルド」メニューで、「すべてクリーン」を選択します。

3. 「アプリケーションをクリーン中」ダイアログで、「はい」をクリックします。

12.6 Apache Antによるビルド

Apache Antは、Unixのmakeユーティリティの機能と似たビルド・ツールです。Antは、XML形式のビルドファイルを使用して、アプリケーションとそのコンポーネントを構築するためのプロセスを記述および制御します。Antはクロス・プラットフォームのコンパイルをサポートしており、簡単に拡張できます。Apache Antは、Apache Software Foundationの製品です。詳細は、Webサイト(http://ant.apache.org/index.html)を参照してください。

Antビルドファイルでは、ターゲットの定義とターゲット間の依存性の定義を行います。各ビルドファイルには、1つのプロジェクトと少なくとも1つのターゲットが含まれています。ターゲットは、プログラミングされたタスクのシーケンスです。Antを実行してターゲットを作成する場合、ターゲットが依存する他のターゲットを最初に作成してから、ターゲット独自のタスクが実行されます。

AntはJDeveloperに統合されていて、その一部としてインストールされるため、JDeveloperを拡張機能として追加する必要はありません。アプリケーションまたはプロジェクト用にAntビルドファイルを追加または作成したり、空のビルドファイルを作成することができます。Antビルドファイルを編集するために、JDeveloperでXMLソース・エディタが使用できます。

アプリケーション・レベルでのAntビルドファイルの作成:

1. 「ファイル」→「新規」を選択して「新規ギャラリ」を開きます。

2. 「新規ギャラリ」の「カテゴリ」ツリーで、「一般」の「Ant」を選択します。

3. 「項目」リストで、「アプリケーションからのビルドファイル」をダブルクリックします。ビルドファイルの作成ダイアログが開き、デフォルトのファイル名とディレクトリを変更できます。ダイアログの使用中にヘルプを参照するには、[F1]を押します。

4. 「OK」をクリックします。新しいbuild.xmlファイルが作成され、XMLソース・エディタで開きます。生成されたbuild.propertiesファイルも作成されます。このファイルは両方とも「アプリケーション」ウィンドウの「アプリケーション・リソース」に表示されます。

プロジェクト・レベルでのAntビルドファイルの作成:

1. 「ファイル」→「新規」を選択して「新規ギャラリ」を開きます。

2. 「新規ギャラリ」の「カテゴリ」ツリーで、「一般」の「Ant」を選択します。

3. 「項目」リストで、「プロジェクトからのビルドファイル」をダブルクリックします。ビルドファイルの作成ダイアログが開き、デフォルトのファイル名とディレクトリを変更できます。ダイアログの使用中にヘルプを参照するには、[F1]を押します。

4. 「OK」をクリックします。新しいbuild.xmlファイルが作成され、XMLソース・エディタで開きます。生成されたbuild.propertiesファイルも作成されます。このファイルは両方とも「アプリケーション」ウィンドウの「アプリケーション・リソース」に表示されます。

空のAntビルドファイルの作成:

1. 「ファイル」→「新規」を選択して「新規ギャラリ」を開きます。

2. 「新規ギャラリ」の「カテゴリ」ツリーで、「一般」の「Ant」を選択します。

3. 「項目」リストで、「空のビルドファイル」をダブルクリックします。ビルドファイルの作成ダイアログが開き、デフォルトのファイル名とディレクトリを変更できます。ダイアログの使用中にヘルプを参照するには、[F1]を押します。

4. 「OK」をクリックします。新しいbuild.xmlファイルが作成され、XMLソース・エディタで開きます。これは、「アプリケーション」ウィンドウの「リソース」ノードに表示されます。

ビルドファイル・ターゲットに対するAntの実行:

- プロジェクト・ビルドファイル内のターゲットに対して実行する場合。プロジェクトには複数のAntビルドファイルを含めることができますが、プロジェクトのビルドファイルとして指定できるのは1つのみです。「プロジェクトでAntを実行」ツールバー・アイコンおよびドロップダウン・メニューから、プロジェクトのビルドファイルのターゲットに簡単にアクセスできるように構成できます。

- Antビルドファイルの編集時に「構造」ウィンドウから実行する場合。XMLソース・エディタでAntビルドファイルを開くと、そのターゲットが「構造」ウィンドウに表示されます。これらを選択して実行できます。

- 独自に定義した外部ツールから実行する場合。「外部ツールの作成」ウィザードを使用して、Antターゲットを作成するメニュー項目およびツールバー・ボタンを定義します。

12.6.1 プロジェクト・ビルドファイル・ターゲットに対するAntの実行

AntをJDeveloperのメイン・メニューおよびツールバーから起動し、現在のプロジェクトのプロジェクト・ビルドファイルに定義されているターゲットを構築できます。

プロジェクトには複数のAntビルドファイルを含めることができ、これらの1つをプロジェクトのビルドファイルとして指定できます。「<project>でAntを実行」ツールバー・ボタンおよびドロップダウン・メニューから、プロジェクトのビルドファイルのターゲットに簡単にアクセスできるように構成できます。

プロジェクトのビルドファイルを選択して構成するには、Antプロジェクトのプロパティ・ページに移動します(「プロジェクト」→「プロジェクト・プロパティ」→「Ant」を選択)。

プロジェクトのビルドファイルのターゲットに対してAntを実行するには、次のようにします。

- ツールバーで、「<project>でAntを実行」をクリックします。
Antによって、プロジェクトに指定されているデフォルトのターゲットが作成されます。

- メイン・メニューから、 「ビルド」→「<project>でAntを実行」をクリックします。
Antによって、プロジェクトに指定されているデフォルトのターゲットが作成されます。

- 「構造」ペインからターゲットを選択します。

12.6.2 IDEでのAntツールの使用

Antログ・ウィンドウには、Antビルドに固有のメッセージが表示されます。Antログ・ウィンドウには次のような特徴があります。

- このウィンドウには、1つ以上のターゲットのビルドのためAntを起動することによって生成されたメッセージが表示されます。

- Antタスクによって生成されたメッセージは、Antビルドファイル内のこれらのタスクの定義にリンクされます。一方、コンパイル・エラーおよび警告は、これらの生成元のソース・コードにリンクされます。

- カラー・コーディングは、メッセージの出力レベルを示します。

12.7 Apache Mavenによるビルドと実行

Apache Mavenは、ビルド・プロセスの管理と自動化に広く利用されるツールです。また、プロジェクト管理、特に依存性およびリリース管理にも利用されます。

JDeveloperを使用してビルドされたアプリケーションのビルド、テストおよびデプロイを、一貫性をもって自動的に行うことができます。これを使用すると、開発者は、Mavenを使用するプロジェクトでの作業時に、Mavenを使用する別のプロジェクトに容易に移動できるという利点を享受できます。以前にMavenを使用したことのある開発者の多くは、Mavenを使用する馴染みのないプロジェクトでも迅速にダウンロードし、ビルドして、デプロイすることができます。

Mavenはプロジェクトのビルド、レポート、中心的な情報からのドキュメンテーション、プロジェクト・オブジェクト・モデル(POM)を管理できます。プロジェクトをビルドする際に、そのプロジェクトのPOMと、Mavenを使用するすべてのプロジェクトで共有される一連のプラグインを使用すると、統一されたビルド・システムが提供されます。

アプリケーションの開発にOracle Fusion Middleware 12cが使用できる場合は、Mavenを使用して次の処理が行えます。

- プロジェクトをビルドします。

- Oracleおよびサード・パーティのアーティファクトに対して依存性を管理します。

- 内部または外部(パブリック)Mavenリポジトリからアーティファクトを自動的にダウンロードします。

Mavenの詳細は、http://maven.apache.org/index.htmlを参照してください。

12.7.1 リポジトリの理解

Mavenリポジトリは、アーティファクトのコレクションをホストしている共有可能な場所です。アーティファクトは、中央のパブリック・リポジトリまたはプライベート・リポジトリからプルできます。Mavenでは、指定されたパブリックまたはプライベート・リポジトリのアーティファクトが更新されます。各アーティファクトはローカルのMavenリポジトリにビルド実行としてプルされます。アーティファクトは、特定のディレクトリ構造で整理されています。これには、コンパイル済コード (JARファイル、WARファイル)と、そのコードに関するメタデータが含まれます。これらはホーム・ディレクトリの外に置かれます。ホーム・ディレクトリにはローカル・リポジトリもあります。このリポジトリはアーティファクトのキャッシュとして動作します。

Mavenローカル・リポジトリは、プロジェクトに必要なすべてのアーティファクトと依存性がダウンロードされるシステム専用のものです。Mavenはこの場所にアクセスして、アーティファクトの解決に対応します。この場所にあるコンテンツは編集しないでください。

Mavenゴールを実行してプロジェクトをビルドすると、必要なすべての依存性がアップストリーム・リポジトリからダウンロードされて、ユーザーのローカル・リポジトリに保存されます。Mavenはこの場所にアクセスして、アーティファクトの解決に対応します。

JDeveloperはMavenリポジトリを管理し、通常はHTTPを通してユーザーがそれを利用できるようにします。また、その他の、通常は外部のMavenリポジトリのプロキシとして動作し(アーティファクトをキャッシュ)、ビルド時間を短縮したり、ネットワーク使用率を低減することもできます。つまり、Maven POMは、開発者が集中する製品のアーティファクト別に用意されます。したがって、該当するMavenリポジトリを指し示すようにMavenを構成することができます。

12.7.2 Mavenプラグインの理解

プラグインを使用してMavenを拡張することができます。プラグインにより、レポート用またはビルド・プロセス用に他にも多数の開発ツールが使用できるようになります。プラグインにより、Mavenゴールの実行が可能になります。すべての作業はプラグインによって処理されます。次のように、多数のコア・プラグインがあります。

- ビルド・プラグインはビルド時に実行するため、POMの「<build/>」要素に構成する必要があります。

- レポート・プラグインはサイト生成時に実行するため、POMの「<reporting/>」要素に構成する必要があります。

利用可能なMavenプラグインのリストについては、http://maven.apache.org/plugins/index.htmlを参照してください。

12.7.3 依存性の理解

Maven依存性は、プロジェクトのビルドに必要なJARファイルが含まれているライブラリの指定に使用します。ローカル・リポジトリに存在しない依存性を使用してプロジェクトをビルドすると、Mavenでその依存性が検索され、ユーザーのローカル・リポジトリに追加されます。プロジェクトがMavenプロジェクトであり(つまり、POMファイルが関連付けられている)、依存性がプロジェクトに追加されている場合は、変更もPOMにコミットされます。

Mavenは、コンパイルおよび、依存性を必要とするその他のゴールに対する依存性をダウンロードして、リンクします。また、これらの依存性(推移依存性)の依存性を取り入れて、プロジェクトで必要とされる依存性のみにリストを集中させることができます。

依存性は、「依存性」タブでの選択とPOMファイルとの間で同期化されます。たとえば、プロジェクトの依存性がPOMにはなく、プロジェクトから別の依存性を追加した場合、Maven: 依存性ダイアログで「OK」をクリックすると、両方の依存性がPOMに追加されます。

POMファイルの依存性は、jprプロジェクトまたは、POMファイルと関連するjwsアプリケーションを使用して常に同期化されます。依存性(リポジトリの依存性を除く)も、「プロジェクト・プロパティ」ダイアログと「アプリケーション・プロパティ」ダイアログから追加できます。これらの依存性は、関連するPOMファイルと自動的に同期化されます。

12.7.4 プロジェクト・オブジェクト・モデルの理解

プロジェクト・オブジェクト・モデル(POM)は、Mavenがプロジェクトをビルドする際に使用するプロジェクトと構成詳細に関する情報を含むXMLファイルです。プロジェクトのビルドに必要なほとんどの情報が、このXMLファイルに含まれています。POMで指定できる構成情報としては、プロジェクトの依存性、プラグイン、実行可能なゴール、ビルド・プロファイルなどがあります。

POMは階層編成されています。

プラグイン同様、MavenアーティファクトはORACLE_HOME/maven/artifactにインストールされています。

POMファイルは、Application/Project resourcesディレクトリにあります。

Mavenプロジェクト・オブジェクト・モデルの詳細は、次のサイトを参照してください。http://maven.apache.org/index.html

12.7.5 POMファイルの選択

プロジェクトに対してPOMファイルを選択すると、jprのパスと依存性が自動的に同期化します。

POMファイルを設定する手順は次のとおりです。

1. 「アプリケーション」ウィンドウで、設定する必要のあるPOMファイルのプロジェクトを選択します。

2. 「メイン・ツールバー」から、「プロジェクト」→「プロジェクト・プロパティ」を選択します。

3. 「Maven」を選択します。

4. 「参照」ボタンをクリックして、必要なPOMファイルを選択します。

12.7.6 連続配信の理解

連続配信とは、ソフトウェアのビルド・プロセスから実際の配信にまでわたる方法の機能拡張の1つです。連続配信では、連続統合の終了時点から始まり、ソフトウェアのリリース管理とエンド・ユーザーへのデプロイの自動化、ソフトウェアのビルドとテストの自動化のためのステップが実行されます。この目的は、ユーザーが要件を表明して、その要件に対応できる製品が配信されるまでの時間を最小化することです。これによって、大規模ソフトウェアのデプロイメント・プロジェクトによく見られる問題が回避されます。

12.7.7 連続統合の理解

連続統合とは、品質管理をわずかな労力で頻繁に実行することによって品質の向上とソフトウェア配信時間の短縮を図るためのソフトウェア・エンジニアリング方法の1つです。この特徴的な手法は次のとおりです。

- バージョン管理システムの使用

- 開発者が毎日、メインのコードラインにコミットすること

- 製品がすべてのコミットに対してビルドされること

- ビルドは自動化され、高速に処理されること

- 本番に似た環境に自動的にデプロイされること

- 自動テストを採用すること

- ビルド違反者が誰でも確認できるように、すべてのビルドの結果が公開されること

- 配信可能なものを開発者、テスター、その他のステークホルダーが容易に利用できること

12.7.8 開始する前に

Mavenを使用するには、まずアプリケーションを作成し、その後でアプリケーション内の少なくとも1つのプロジェクトに対してオプションを選択します。

「新規ギャラリ」を使用すると、アプリケーションとそのすべてのプロジェクトに対してPOMファイルを生成できます。これによって、アプリケーション、アプリケーションの最上位プロジェクト・オブジェクト・モデル・ファイル(pom.xml)、およびプロジェクトごとのデフォルトのpom.xmlファイルが生成されます。

Mavenアプリケーションとプロジェクトを作成して使用する手順は次のとおりです。

1. メイン・メニューから、「ファイル」→「新規」→「ギャラリから」→「Maven」→「アプリケーションPOM」を選択します。

2. ダイアログの手順に従って、Mavenテクノロジで使用するために構成されるアプリケーションの作成オプションを指定します。

3. ウィザードで(必須)とマークされたオプションを入力したことを確認します。

- グループID: プロジェクトの一意の識別子(例: Project.)。

- アーティファクトID: グループIDによって指定されたグループ内で一意のアーティファクトを表す識別子(例: Project1.jpr)。プロジェクトに対してMavenにより生成されたアーティファクトの例として、JAR、ソースおよびバイナリ・ディストリビューション、WARがあります。

- バージョン: このプロジェクトにより生成されたアーティファクトの現在のバージョン。

POMのグループID、アーティファクトID、およびバージョンは、<groupId>:<artifactId>:<version>のフォームでプロジェクトの完全修飾アーティファクト名を形成します。

4. ウィザードを終了すると、1つのMavenプロジェクトを示した「アプリケーション」ウィンドウが表示されます。

注意:

また、別のタイプのアプリケーション、たとえばカスタム・アプリケーションを作成し、「新規ギャラリ」を使用してそれに既存のMavenをインポートすることもできます。

5. 「アプリケーション」ウィンドウで、プロジェクトのPOMファイルをダブルクリックして開きます。
デフォルトでは、POMファイルの名前は「pom.xml」です。これは通常、「アプリケーション」ウィンドウの「プロジェクト」→「アプリケーション・ソース」→「<project_name>」に置かれています。

6. 「概要」タブで、「リポジトリ」をクリックします。

7. 「ローカル・リポジトリ」フィールドで、赤の下線をチェックします。赤の下線は、現在指し示しているディレクトリが無効であることを示します。有効なディレクトリに対しては表示されません。
このフィールドには、ローカルMavenリポジトリの場所が表示されます。このリポジトリには、プロジェクトで必要になる可能性のあるすべてのアーティファクトと依存性のローカル・コピーが保持されています。

デフォルトでは、ローカル・リポジトリの場所は「USER_HOME/.m2/repository」です。ローカル・リポジトリの場所に赤の下線が引かれている場合、その場所は無効です。ファイル・エクスプローラ、または「ローカル・リポジトリ」フィールドの横の参照アイコンを使用して、ディレクトリを作成します。有効なディレクトリが選択されると、赤の下線が消えます。

ローカル・リポジトリは、明示的に変更されないかぎり、すべてのプロジェクトに共通です(推奨)。

8. 「ファイル」→「保存」を選択して、すべての変更を保存します。

9. メイン・メニューから、「ツール」→「プリファレンス」→「Maven」→「設定」を選択します。

10. オプションで、「ユーザー設定」フィールドのパスを変更します。
Mavenアプリケーションの作成時には、デフォルトにより、settings.xmlというファイルもUSER_HOME/.m2/に作成されます。これはメインのMaven制御ファイルであり、ローカル・リポジトリ・パスやプロキシ設定などの情報へのアクセスに使用します。settings.xmlファイルは、明示的に変更されないかぎり、すべてのプロジェクトに共通(推奨)です。

11. 「OK」をクリックします。

12. メイン・メニューから、「ツール」→「プリファレンス」→「Webブラウザとプロキシ」を選択します。
デフォルトでは、settings.xmlにはアクティブなプロキシ情報が含まれていませんが、JDeveloperのプロキシ設定は有効になっています。

13. 「プロキシ設定」タブをクリックして、「システムのデフォルト・プロキシ設定の使用」または「手動プロキシ設定」のいずれかを選択します。
Mavenでは、リモート・リポジトリからのアーティファクトのダウンロードにプロキシが使用されます。

14. 終わったら、「OK」をクリックします。

12.7.9 Maven POMファイルの作成方法

Maven POMファイルはJDeveloper .jprファイルと類似しています。Mavenでは、POMファイルを使用するプロジェクトについてすべて理解しています。プロジェクトに関するすべての内容が含まれています。

POMを作成するには、次のようにします。

1. 「アプリケーション」ウィンドウで、POMを検索するプロジェクトまたはファイルを選択します。

2. 「ファイル」→「新規」→「ギャラリから」を選択し、「新規ギャラリ」を開きます。

3. 「カテゴリ」リストで、「一般」を開いて「プロジェクトのMaven POM」を選択します。

4. ダイアログの必須および任意のオプションを選択します。

5. 「OK」をクリックします。
デフォルトでは、POMが「概要エディタ」に開きます。

12.7.10 POMファイルでのコンテキスト・メニューの使用

「Mavenゴールの実行」や「Mavenフェーズの実行」などのコマンドのメニューにアクセスするには、「pom.xml」ソース・タブ内のテキストを右クリックします。

12.7.11 アプリケーション作成時にデフォルトのMaven構造に合わせる方法

Mavenアプリケーションを新しく作成する際、デフォルトのMaven構造に合わせることができます。これは推奨されています。

デフォルトのMaven構造を変更する手順は次のとおりです。

1. 「ファイル」→「新規」→「ギャラリから」を選択し、「新規ギャラリ」を開きます。

2. 「カテゴリ」リストで「一般」を開き、「アプリケーション」を選択します。

3. 「カスタム・アプリケーション」を選択し、「OK」を選択します。

4. デフォルトのオプションを選択して、「次へ」をクリックします。

5. 「プロジェクトの機能」タブで、「Maven」にスクロール・ダウンします。

6. シャッフル・アイコンをクリックして、「Maven」を「プロジェクトの機能」タブの「選択済」列まで移動します。

7. 「次へ」をクリックします。

8. 「デフォルトのMaven構造に合わせて標準プロジェクト構造を変更」チェック・ボックスを選択します。
デフォルトでは、これが選択されます。

9. 「終了」をクリックして、カスタム・アプリケーションを作成します。

12.7.12 Maven Archetypeを使用したMavenプロジェクトの作成方法

Archetypeは、Mavenを使用してアプリケーションをすばやく作成するためのテンプレートに類似しています。Archetypeは、Mavenプロジェクトを生成するための一貫した手段となります。詳細は、
http://maven.apache.org/guides/introduction/introduction-to-archetypes.htmlを参照してください。

Archetypeを使用してMavenアプリケーションを作成する手順は次のとおりです。

1. 「ファイル」→「新規」→「ギャラリから」を選択します。

2. 「カテゴリ」リストで、「一般」を開いて「Maven」→「Archetypeからの生成」を選択します。

3. 「Archetypeからのプロジェクトの作成」ダイアログで、新規プロジェクトのオプションを入力します。ダイアログで(必須)とマークされたオプションを入力したことを確認します。

4. 「Maven Archetype」フィールドの横の参照アイコンをクリックします。

5. 表示されたダイアログ上部のフィールドに、使用するArchetypeを検索するための検索テキストとフィルタを入力します。
たとえば、検索テキストとしてj2eeを入力して、maven-archetype-j2ee-simpleというArchetypeを検索することができます。また、検索を特定のリポジトリに絞り込むように選択することもできます。

注意:

使用可能なリポジトリのリストは、「Maven」 - 「リポジトリ」ページで設定されます。詳細は、第12.7.14項「リモート・リポジトリの指定方法」を参照してください。

リモート・リポジトリにアクセスするには、「Webブラウザとプロキシ」ダイアログでプロキシ情報が指定されていることを確認します。詳細は、第23.2.1項「プロキシ設定およびJDeveloperの使用方法」を参照してください。

6. [Return]キーを押します。
「一致するArchetype」リストに、検索基準を満たすすべてのArchetypeが表示されます。

7. リスト内のArchetype(たとえば、maven-archetype-j2ee-simple)にドリルダウンして、それを選択します。

8. 「OK」をクリックします。
Archetypeソースがダウンロードを開始します。

9. 新規Mavenアプリケーション・ダイアログで、Mavenアプリケーションの名前と場所を入力します。
新規MavenアプリケーションがArchetypeから作成されます。これは、図12-1に示すように、「アプリケーション」ウィンドウに表示されます。

図12-1 「アプリケーション」ウィンドウのMavenアプリケーション

注意:

「新規ギャラリ」→「一般」→「Maven」→「Mavenプロジェクトのインポート」を選択して、既存のMavenプロジェクトをJDeveloperにインポートすることもできます。これにより、インポートされたMavenソースのコンテンツに基づいてMavenアプリケーションと関連のプロジェクトが作成されます。

12.7.13 新規Mavenアプリケーション作成時の処理内容

図12-1に示すアプリケーションには、多数のMavenプロジェクトが含まれています。

1. 「アプリケーション」ウィンドウで、作成したMavenアプリケーションの下のejbsプロジェクトまでスクロールします。

2. ejbsを開き、さらに「リソース」を開きます。

3. プロジェクト・ファイルをダブルクリックします。デフォルトでは、これは「pom.xml」です。エディタが開きます。

4. 「依存性」タブをクリックします。

5. 「依存性」タブの依存性、たとえば、図12-2に示す依存性に注目してください。

図12-2 Mavenの依存性

6. 「メイン・ツールバー」から、「プロジェクト」→「プロジェクト・プロパティ」→「ライブラリとクラスパス」を選択します。

7. 図12-2と同じ2つの依存性がここに表示されていることに注目してください。
依存性は、アプリケーションとそれに関連するプロジェクトPOMファイルとの間で同期化されています。アプリケーションまたはPOMファイルに新規の依存性を追加して、同期プロセスを観察します。同期化は、JDeveloperビルド・ツールとMavenの両方を使用してプロジェクトを管理するために必要です。

8. 「プロジェクト・プロパティ」ダイアログで、「Maven」をクリックします。
このPOMファイルは、プロジェクトのデフォルトpomとして設定されています。

12.7.14 リモート・リポジトリの指定方法

様々な理由でリモート・リポジトリにアクセスする必要があります。たとえば、プロジェクトで様々な外部ベンダーの依存性を使用する場合があります。これらの依存性は、異なるリモート・リポジトリで使用可能です。JDeveloperでは、リモート・リポジトリでのアーティファクトの構成と検索を行うことができます。

リモート・リポジトリを管理する手順は次のとおりです。

1. 「メイン・メニュー」から、「ツール」→「プリファレンス」→「Maven」→「リポジトリ」を選択します。

2. 「リモート・リポジトリ」表で、「追加」(+)アイコンをクリックします。
表に新しい行が追加されます。

3. 新しい行を選択します。

4. 「Maven」 - 「リポジトリ」ページの「リポジトリの詳細」セクションで、リモート・リポジトリのURL (例: http://repo1.maven.org./maven2.)を入力します。

5. 「索引更新URL」フィールドに、nexus-maven-repository-index.zipおよびnexus-maven-repository-index.propertiesのダウンロード元であるベースの場所を入力します。
リポジトリ内でアーティファクトを検索する索引場所を指定して、実際にそれをダウンロードしなくてよいようにする必要があります。

注意:

「テスト」ボタンをクリックすると、リポジトリとその索引データにアクセス可能かどうかをチェックすることができます。

6. 「リモート・リポジトリ」表で行の横にあるチェック・ボックスを選択します。

7. 「リポジトリの索引付け」ボタンをクリックします。
これで、選択したリモート・リポジトリの索引データがダウンロードされます。

12.7.15 POMファイルに対するMavenゴールの実行方法

Mavenは、ビルド・ライフサイクルの概念に基づいています。ビルド・ライフサイクルは、ゴールとしても知られるフェーズで構成されています。Mavenには、プロジェクトの管理に使用されるクリーン、コンパイル、ビルド、パッケージなど、デフォルトのゴールがいくつか用意されています。すべてのプロジェクトでは、フェーズ内にゴールが含まれている同じコア・フェーズを実行します。

Mavenゴールを実行する手順は次のとおりです。

1. 「メイン・メニュー」から、「ツール」→「プリファレンス」→「Maven」→「フェーズ/ゴール」を選択します。
また、「ソース」タブのPOMファイルを右クリックして、「ゴール・プロファイルの管理」を選択することもできます。

2. オプションで、将来使用するために保存できるゴールのコレクションであるプロファイルを設定するには、「ゴール・プロファイル」フィールドの横のプラス(+)アイコンをクリックします。

- 「ゴール・プロファイル」フィールドにプロファイルの名前を入力して、「OK」をクリックします。

3. 「使用可能なライフサイクル・フェーズ」リストで、1つ以上のゴールを選択します。

注意:

これをはじめて試行する場合は、このリストにデフォルトのゴール・セットが含まれていることを確認してください。

4. シャトル・ボタンをクリックして、選択内容を「選択したフェーズ/ゴール」リストに追加します。

5. 「OK」をクリックします。

6. 「アプリケーション」ウィンドウで、実行する必要のあるプロジェクトのPOMファイルにスクロール・ダウンします。

7. 右クリックして、「Mavenフェーズ"compile"の実行」を選択します。
これによって、コンパイル・ゴールの実行に必要なアーティファクトがリモート・セントラル・リポジトリからローカル・リポジトリに自動的にダウンロードされます。これは1回かぎりのプロセスです。これらのアーティファクトがローカル・リポジトリにコピーされたら、今後ダウンロードする必要はありません。

ダウンロード後に、コンパイル・ゴールが実行されます。プロジェクトとその中に含まれているJavaクラスは、Mavenを使用してコンパイルされます。

注意:

依存性またはアーティファクトの解決時にエラーが報告された場合は、「リポジトリ」ページを使用してリポジトリをPOMファイルに追加してから、再度試みてください。URLが指し示しているリポジトリが稼働中であり、アクセス可能であることを確認します。

12.7.16 プロジェクトからMaven POMを作成する方法

「アプリケーション」ウィンドウで選択した既存のプロジェクトに基づいて、Maven POMを作成できます。複数のソース・ディレクトリについてビルド要素が追加されます。プロジェクトに対して指定したJavaコンパイラに関する設定が追加されます。

プロジェクトのMaven POMを作成する手順は次のとおりです。

1. 「アプリケーション」ウィンドウで、POMを作成するためのプロジェクトを選択します。

2. 「ファイル」→「新規」を選択し、「新規ギャラリ」を開きます。

3. 「カテゴリ」リストで、「一般」を開いて「Maven」を選択します。

4. 「プロジェクトのMaven POM」を選択します。

5. ダイアログを完了した後で、「OK」をクリックします。

12.7.17 Mavenアプリケーションの監査

pom.xmlを編集している間、ビルドの実行時に空のタグや無効な値によってエラーが生じることがあります。このようなエラーは、監査の一環として捕捉して報告する必要があります。監査では、pom.xmlに対してMavenプロジェクトを作成しているときに報告されたエラーをすべて処理する必要があります。

検証の2つの例を次に示します。

継承後にアーティファクトID、グループID、従属性バージョン、プラグインなどの無効な値/空の値が適用されます。

プロファイル・アクティブ化ルールのエントリが重複しています。

12.7.18 コード・インサイトの理解

コード・インサイトを使用すると、pom.xmlソース・ファイルでのコード作成プロセスにかかる時間を短縮できます。

コード・インサイトを確認する手順は次のとおりです。

1. 「コード・エディタ」でpom.xmlファイルを開きます。

2. 「プラグイン」タブで、プラグイン要素を追加します。

3. プラグインの<executions>セクションを追加します。

コード・インサイトのサポートは、ローカル・リポジトリからフェッチされる「概要」タブの値に基づいています。たとえば、パッケージ・タイプの場合、コード・インサイトは「パッケージ・タイプ」の「概要エディタ」に表示される値リストを表示します。

次のコード・インサイトの値リストもサポートされています。

- フェーズ、プラグインの中

- 更新ポリシー、チェックサム・ポリシーおよびレイアウト

- タイプおよびスコープ、依存性の中

12.7.19 JDeveloperでのWebLogic Mavenプラグインの使用方法

プラグインを使用すると、Mavenを使用してビルドされたアプリケーションをMaven環境内からWebLogic Serverにデプロイ、再デプロイして、更新することができます。詳細は、「Oracle WebLogic Serverへのアプリケーションのデプロイ」のデプロイのためのWebLogic Mavenプラグインの使用に関する項を参照してください。

12.7.20 ojdeployおよびojmakeの使用方法

現在JDeveloperでは、Antスクリプトによるデプロイをサポートしています。デプロイ・ターゲットをbuild.xmlファイルに追加すると、このサポートが有効になります。詳細は、第9.8.3項「Antを使用したコマンドラインからのデプロイ方法」

Maven POMファイルでは、ojdeployと同様にojmakeも使用できます。JDeveloperでは、例12-2に示すように、POMファイルが変更され、必要に応じてojdeployおよびojmakeのデプロイメント・プラグインが追加されます。

例12-2 ojdeployおよびojmakeのデプロイメント・プラグイン

<build>
<plugins>
<plugin>
<groupId>oracle.jdeveloper.deploy.maven</groupId>
<artifactId>maven-ojdeploy-plugin</artifactId>
<version>1.0.0</version>
<configuration>
<ojdeploy>/scratch/jdoe/view_storage/pmed_jdev_l/oracle/jdeveloper/
jdev/bin/ojdeploy</ojdeploy>
<workspace>/home/jdoe/jdeveloper/mywork/Application1/Application1.jws
</workspace>
<project>ViewController</project>
<profile>Application1_ViewController_webapp</profile>
<usemaven/>
</configuration>
<executions>
<execution>
<phase>install</phase>
<goals>
<goal>deploy</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>

ojmakeの使用法、パラメータ、オプション、および例を参照するには、jdeveloper_install/jdeveloper/jdev/binのコマンドラインで「ojmake」と入力します。

13 Javaプロジェクトの最適化

JDeveloperには、Javaプロジェクトの最適化、コード監査、プロファイリング、およびユニット・テストに対応できる多数の機能が用意されています。

最適化では、コードの改善および保守を困難にしている不具合が検出されます。JDeveloperの最適化ツールは、不具合を見つけ出して修正し、プログラムの高速実行、サイズ縮小、すぐれた保守容易性を実現するのに役立ちます。

JDeveloperのコード監査ツールを使用すると、このような不具合を検出および修正できます。コード監査は、構文が正しいかどうかではなく、プログラミング規格に準拠しているかどうかを調べるものです。コードは、コンパイルが不可能または実行不可能な場合も監査できます。

プロファイラは、プログラムに関する統計を収集して、パフォーマンスの問題を診断できるようにします。プロファイラは、実行中のプログラムによるプロセッサおよびメモリーのリソースの使用状況を監視し、ログに記録します。また、統計を収集して、パフォーマンスの問題をより容易に診断し、コードの非効率な部分を修正できるようにします。

JDeveloperには、アプリケーションをテストするために「新規ギャラリ」からアクセス可能なJUnitウィザードがあり、テスト・フィクスチャ、テスト・ケース、およびテスト・スイートを作成できます。JUnitなどの自動テストツールにより、通常の、信頼できるユニット・テストをより簡単に実行できます。JUnitは、JDeveloperにインストールおよび統合できるオプション機能です。

この章には次の項が含まれます:

- 第13.1項「Javaプロジェクトの最適化について」

- 第13.2項「コード監査の理解」

- 第13.3項「プロジェクトのプロファイリング」

- 第13.4項「JUnitによるユニット・テスト」

13.1 Javaプロジェクトの最適化について

JDeveloperでは、Javaコードの品質およびパフォーマンスを分析するためのツールが提供されています。これらのツールを使用すると、コードの品質とプログラミング・スキルの両方が向上します。JDeveloperの監査機能を使用すると、Javaコードがプログラミング規格に準拠しているかどうかを分析できます。

最適化の前に、まず最適化が必要かどうかを検討します。

13.2 コード監査の理解

監査とは、プログラミング規格を定義している規則およびメトリックに準拠しているかどうかについてのコードの静的な分析のことです。ソフトウェアのコード監査は、バグ、セキュリティ侵害またはプログラミング規則違反を発見する目的で行われる、プログラミング・プロジェクト内のソース・コードの包括的な分析です。

- 規則は、ある機能の有無に関する定性試験です。たとえば、Javaコーディングの共通のスタイルとして、クラス名を大文字にする必要があります。規則に準拠していない場合は、違反が発生します。

- コード測定は、サイズまたは複雑さの定量測定です。たとえば、メソッドのサイズが大きすぎたり、メソッドで扱うケースの数が多すぎる場合、その機能の一部を別のメソッドに委譲する必要があります。指定の上限を超えると、しきい値超過異常が発生します。

プロファイルを作成してカスタマイズし、使用する規則を選択して個々の規則のパラメータを設定できます。詳細は、それぞれのコード監査規則およびコード測定を参照してください。

JDeveloperのコード監査およびコード測定の機能は拡張できます。コード監査およびコード測定は、それぞれカスタマイズおよび拡張可能なソース・コード分析および変換フレームワークのある2つの側面です。コード監査およびコード測定用のパブリックAPIは、oracle.jdeveloper.auditパッケージです。

Javaコードを監査するには、次のようにします。

- 監査ツールをソース・ファイルに対して実行し、コード監査レポートを生成します。詳細は、第13.2.12項「コード監査レポート生成のためにコード監査を実行する方法」を参照してください。

- 編集中にコード監査を行う場合は、コード・アシストを使用します。「コード・アシスト」により、編集中にバックグラウンドでコード監査を実行できます。編集時に、監査違反が強調表示されます。自動修正を適用できます。

- コマンドラインからコード監査を実行して、コード監査レポートを生成します。詳細は、第13.2.8項「コマンドラインからのJavaコードの監査」を参照してください。

- 「問題」ウィンドウが表示されます。「問題」ウィンドウは、コードの監査を支援するJDeveloperの機能の1つです。このウィンドウには、「ファイル・リスト」で選択したドキュメント内の監査違反が表示され、問題を解決するための情報が提供されます。

監査レポートには、ルール違反および測定結果がツリーに編成されて表示されます。ツリーの各行は構成メンバーまたは違反のいずれかに対応しており、その構成メンバーまたは理論上の違反に対するすべての測定値が含まれます。構成メンバーは、メソッド、クラス、ファイル、プロジェクトまたはワークスペースです。

13.2.1 コード監査ルールの理解

コード監査規則は、静的かつ定性的なコード分析です。

コード監査プロファイルで、プロパティを設定することによって個別ルールの有効化や構成を実行できます。コード構成メンバーが規則に従っていない場合、規則違反が報告されます。一部の規則には自動修正が定義されており、ユーザーが適用を選択できます。

ルールには、表13-1に示すプロパティが含まれています。

表13-1 ルール・プロパティ

プロパティ

説明

デフォルト修正

この規則の違反に対する修正が使用されるのは、「デフォルトの修正を適用」が構成メンバーに適用されている場合です。

パターン

規則と異なる識別子を検出するフィルタとして使用される正規表現です。

重大度

コード監査レポートで規則違反をソートする場合に使用します。

可視性

アクセス・レベルのキーワードに基づくしきい値です。違反は、可視性が選択されているクラスまたはメソッドで発生した場合にのみ報告されます。

13.2.2 コード監査メトリックの理解

監査のコード測定は、静的かつ量的なコード分析です。

コード監査プロファイルで、個別メトリックの有効化と構成が実行できます。コード測定は、しきい値を使用して設定します。コード構成メンバーがしきい値を超えると、しきい値超過の測定がコード監査レポートに報告されます。

JDeveloperでは、表13-2に示すメトリックが測定されます。

表13-2 コード監査メトリック

メトリック

説明

継承ツリーの深度(DIT)

クラスの継承ツリーの深さ。通常、java.lang.ObjectのDITは1、java.lang.Objectを直接拡張したクラスのDITは2のようになります。

文の数(NOS)

Java文でのメソッド、クラスまたは他の構成メンバーのサイズ。

循環的複雑度(V(G))

メソッドのブランチの複雑さ。メソッドを含む構成メンバー(クラスやプロジェクトなど)には、そのメソッドについて測定されたうち最大の複雑度が割り当てられます。値が10を超える場合は通常、問題ありと判断されます。

13.2.3 コード監査ツールの使用

監査ツールを使用すると、監査レポートを表示したり、規則違反やしきい値を超える測定結果を調査および修正できます。コード監査が開始されると、「ログ」ウィンドウに新しいタブが作成され、このタブにコード監査レポートが表示されます。

監査とは、プログラミング規格を定義している規則およびメトリックに準拠しているかどうかについてのコードの静的な分析のことです。コード監査では、コードの改善および保守を困難にしている不具合が検出されます。JDeveloperの監査ツールを使用すると、このような不具合を検出および修正できます。コンパイルが不可能または実行不可能な場合でも、コードの監査は可能です。

13.2.4 「コード監査」ウィンドウの「レポート」パネルの使用

コード監査レポートとは、構成に編成されたツリーとして表示される規則違反およびコード測定結果のセットのことです。構成には、メソッド、クラス、パッケージ、ファイル、プロジェクトまたはワークスペースがあります。監査プロファイルに規則が含まれている場合、表には「重大度」列が含まれ、指定した構成の重大度が表示されます。監査プロファイルにメトリックが含まれている場合、表にはメトリックごとに列が追加され、構成の測定結果が表示されます。

列のコンテンツを基にレポートをソートするには、列ヘッダーをクリックします。ソート順序を逆にするには、再度クリックします。

13.2.5 「コード監査」ウィンドウのツールバーの使用

「ログ」ウィンドウのツールバーから、表13-3に示した操作を実行できます。

表13-3 「コード監査」ウィンドウのツールバー・アイコン

アイコン

名前

説明

リフレッシュ

同じプロファイルを使用して同じ選択項目に対してコード監査を再実行する場合にクリックします。

取消

実行中の監査を中断する場合にクリックします。結果の一部が表示される場合があります。

エクスポート

レポートをファイルに保存できる「結果のエクスポート」ダイアログを開く場合にクリックします。結果は、XML、HTMLまたはプレーン・テキストで保存できます。

すべて展開

レポート内のすべてのコンテナ・ノードを展開し、すべての行を表示する場合にクリックします。

すべて閉じる

レポート内のすべてのコンテナ・ノードを閉じ、トップレベルの構成以外のすべてを非表示にする場合にクリックします。

構成をグループ化

表示するコンテナ構成のタイプを指定できる「グループ化」ダイアログを開く場合にクリックします。構成別にグループ化すると、結果の適切な編成、不具合および違反の迅速な追跡、結果を簡単に分析できます。

修正

ドロップダウン・メニューから規則違反に対する修正を選択します。個々の規則違反に対して、その違反タイプに定義されている修正から選択します。グループ構成には、「デフォルトの修正を適用」のみを選択できます。これにより、そのタイプに定義されているデフォルトの修正(存在する場合)が適用されます。

しきい値を超えるもののみ表示

許容範囲内にある測定結果の表示を切り替えます。しきい値は、コード測定の設定可能なプロパティの1つです。

13.2.6 「コード監査」ウィンドウのポップアップ・メニューの使用

1つ以上の構成(コンテナ・ノード)または規則違反(リーフ・ノード)を選択し、右クリックしてポップアップ・メニューを開きます。ポップアップ・メニューから、選択した構成または規則違反に対して、表13-4に示す操作を実行できます。

表13-4 「コード監査」ウィンドウのポップアップ・メニュー項目

名前

説明

デフォルトの修正を適用

選択した各規則違反または選択した構成内のすべての違反にデフォルトの修正(存在する場合)を適用する場合に選択します。デフォルトの修正は、「ツール」→「プリファレンス」→「コード監査: プロファイル」ページを使用して定義できます。

<修正>の適用

構成内の選択した規則違反に対してこの修正を適用する場合に選択します。

<規則>について

この規則違反に対して適用される規則の説明を表示する場合に選択します。

<規則>違反を非表示

選択した規則のすべての違反をレポートから削除する場合に選択します。

非表示の違反を表示

前に非表示にしたすべての違反をリストアする場合に選択します。

しきい値を超えるもののみ表示

許容範囲内にある測定結果の表示を切り替える場合にクリックします。

取消

実行中のコード監査を終了する場合に選択します。

リフレッシュ

コード監査を再実行する場合に選択します。

グループ化

表示するコンテナ構成のタイプを指定できる「グループ化」ダイアログを開く場合に選択します。

すべて展開

レポート内のすべてのコンテナ・ノードを展開し、すべての行を表示する場合にクリックします。

すべて閉じる

レポート内のすべてのコンテナ・ノードを閉じ、トップレベルの構成以外のすべてを非表示にする場合にクリックします。

ソースに移動

規則違反があった位置でソース・ファイルを開く場合に選択します。必要に応じて、ファイルを編集して違反を修正できます。

エクスポート

レポートをファイルに保存できる「結果をエクスポート」ダイアログを開く場合に選択します。

13.2.7 JDeveloperでJavaコードを監査する方法

JDeveloperのコード監査ツールを使用すると、コードの改善および保守を困難にしている不具合が検出されます。コードは、コンパイルが不可能または実行不可能な場合も監査できます。監査のフォーカスは、コード監査の規則およびコード測定のセットであるプロファイルによって定義されます。

Javaコードを監査するには、次のようにします。

1. Javaプログラムの分析に使用する規則、コード・アシスト、コード測定を指定するコード監査プロファイルを作成します。コード監査プロファイルで、プロパティの設定によって個別の規則やメトリックを有効にしたり、構成できます。コード構成メンバーが規則に従っていない場合、規則違反が報告されます。詳細は、第13.2.9項「コード監査プロファイルの作成方法」を参照してください。

2. 監査レポートを実行します。

- メイン・メニューから監査のビルド....を選択します。詳細は、第13.2.12項「コード監査レポート生成のためにコード監査を実行する方法」を参照してください。

- Javaコードは、ojaudit.exeを呼び出してコマンドラインから監査することもできます。ojaudit.exeはJDeveloperのインストールに付属しています。詳細は、第13.2.8項「コマンドラインからのJavaコードの監査」を参照してください。

3. 完了した監査レポートで規則違反をインスペクトします。詳細は、第13.2.20項「コード監査レポートの違反またはコード測定結果のインスペクト方法」を参照してください。
監査レポートには、ルール違反および測定結果がツリーに編成されて表示されます。ツリーの各行は構成メンバーまたは違反のいずれかに対応しており、その構成メンバーまたは理論上の違反に対するすべての測定値が含まれます。構成メンバーは、メソッド、クラス、ファイル、プロジェクトまたはワークスペースです。

4. コード監査規則違反を、手動でソースを編集して修正できます。一部の規則違反については、自動修正を選択して修正します。詳細は、第13.2.21項「コード監査規則違反の修正方法」を参照してください。

5. 監査を再実行する場合には、規則、コード・アシストおよびメトリックを有効化または無効化するか、またはそれらの構成を変更することによって、コード監査プロファイルを変更できます。詳細は、第13.2.9項「コード監査プロファイルの作成方法」を参照してください。

完了したコード監査レポートをXMLファイル、HTML形式またはテキスト・ファイルとして保存できます。詳細は、第13.2.19項「コード監査レポートの保存方法」を参照してください。書式設定は、/jdev//audit/stylesheetsディレクトリ(このディレクトリはコード監査を実行するまで作成されません)のXSLスタイルシート・ファイルで定義されます。カスタム・フォーマットを作成するには、事前定義されたスタイルシート・ファイルの1つをコピーして、このディレクトリに追加します。

13.2.8 コマンドラインからのJavaコードの監査

JDeveloperインストールに付属している<jdev_install>/jdeveloper/jdev/binディレクトリ内のojaudit.exeを起動すると、コマンドラインからワークスペース、プロジェクトまたはソース・ファイルを監査できます。

シノプシス

ojaudit option... file...

表13-5は、監査の際に使用できるパラメータを示しています。

表13-5 コマンドライン・パラメータ

パラメータ

説明

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

監査するファイルのワークスペース・コンテキストを設定します。

13.2.9 コード監査プロファイルの作成方法

コード監査プロファイルでは、Javaコードの分析に使用する規則、コード・アシストおよびメトリックを指定することによって、監査対象を定義します。「コード監査プロファイル」プリファレンス・ページから、コード監査プロファイルのルール、コード・アシストおよびメトリックをアクティブ化および非アクティブ化することができます。いくつかのプロファイルは事前定義済ですが、既存のプロファイルを変更してその他のプロファイルを作成できます。規則、コード・アシストおよびメトリックを有効化または無効化するか、またはそれらの構成を変更することによって、コード監査プロファイルを変更できます。

表13-6に示すように、特定の監査プロファイルは、デフォルトでは、一部のJDeveloperプロセスと機能により使用されます。

表13-6 監査プロファイル

プロファイル

説明

コード・アシスト・ルール

ソース・エディタ、「問題」ウィンドウ、「アプリケーション概要」、および「ファイル・リスト」により使用されます。

コンパイル・ルール

「プリファレンス」ダイアログの「コード監査」ページで「コンパイル中のコード監査」が選択されている場合に、コンパイルの最後で使用されます。

コード監査ルール

Auditコマンドの初期値です。ただし、「監査」ダイアログでは最後に選択されたプロファイルが記憶されるため、設定は永続的ではありません。

Javadocルール

<<Note to Dave: Add description of these options?>>

ADFルール

JDeveloperには事前定義プロファイルがあり、使用可能なルール、コード・アシスト、およびメトリックの組合せがそれぞれ異なっています。

- ADFベスト・プラクティスのルール

- すべてのメトリック

- すべてのルール

- コード監査ルール

- コード・アシスト・ルール

- コンパイル・ルール

- Javadocルール

監査プロファイルを作成する手順:

1. メイン・メニューから、「ツール」→「プリファレンス」を選択します。

2. 「コード監査」→「プロファイル」を選択します。

3. 「プロファイル」ドロップダウン・メニューからコピーするプロファイルを選択します。
図13-1に示すように、選択されたプロファイルのプロパティ名と現在の値が右側のパネルに表示されます。選択されたアイテムの説明が「説明」ボックスに表示されます。そのプロパティと設定が右側のペインに表示されます。

図13-1 「コード監査プロファイル」ページ

4. 新しいプロファイルを有効にするための規則、アシストおよびコード測定を選択します。

5. 「別名保存」をクリックします。

6. 新しいプロファイルの名前を入力し、「保存」をクリックします。

注意:

名前では大/小文字および空白は区別されませんが、大/小文字および空白は保持されます。新しい名前が既存の名前と大/小文字または空白のみが異なる場合は、そのことを通知する警告メッセージが表示されます。

新しいプロファイル名が、プリファレンスの「コード監査」→「プロファイル」ページの「プロファイル」ボックスに表示されます。

7. 「OK」をクリックします。

13.2.10 コード監査プロファイルの削除方法

既存のコード監査プロファイルは削除できますが、事前定義プロファイルは削除できません。「コード監査」 - 「プロファイル」ページで事前定義のコード監査プロファイルを選択すると、「削除」ボタンがグレーアウトになります。

既存のコード監査プロファイルを削除する手順は次のとおりです。

1. メイン・メニューから、「ツール」→「プリファレンス」を選択します。
「設定」ダイアログが開きます。

2. 「コード監査」 - 「プロファイル」ページを選択します。

3. 「プロファイル」ドロップダウン・メニューから削除するプロファイルを選択します。

4. 「削除」をクリックします。
該当するプロファイルの名前が「プロファイル」ボックスから削除されます。

5. 「OK」をクリックします。

13.2.11 コード監査プロファイルをインポートまたはエクスポートする方法

コード監査プロファイルをインポートまたはエクスポートできます。この操作によって、たとえば、プロファイルを共有したり、ojauditおよび夜間ビルドによって使用されるチェックイン済プロファイルを管理できます。コード監査プロファイルは、XMLファイルとしてインポートまたはエクスポートされます。

コード監査プロファイルをインポートまたはエクスポートするには、次の手順を実行します。

1. 「ツール」メニューで、「プリファレンス」を選択して「プリファレンス」ダイアログを開きます。

2. 「コード監査」→「プロファイル」を選択します。

3. 「インポート」または「エクスポート」をクリックし、インポートまたはエクスポートするプロファイルを選択します。

13.2.12 コード監査レポート生成のためにコード監査を実行する方法

Javaプログラムを監査する際に、コード監査レポートを生成できます。コード監査レポートは、規則違反およびしきい値を超えている測定結果のリストです。コード監査レポートでは、これらの問題を調べ、手動または自動で修正できます。

コード監査レポートを生成する手順は次のとおりです。

1. 「アプリケーション」ウィンドウで、1つ以上のアプリケーション、プロジェクト、またはJavaソース・ファイルを選択します。
コード監査コマンドは、エディタや「構造」ウィンドウなど、他のビューから選択して実行することもできます。

2. メイン・メニューから、「ビルド」→「コード監査 - <target>」、たとえば、「ビルド」→「コード監査 - helloWorld.java」を選択します。

3. 「コード監査 - <target>」ダイアログで、使用するプロファイルを次の2つの方法のいずれかで選択します。

- 「プロファイル」ドロップダウン・メニューから使用するプロファイルを選択します。

- 「編集」をクリックしてプロファイルを作成または変更します。

4. 「実行」をクリックします。
コード監査レポートが「ログ」ウィンドウに表示され、コード監査が開始されます。監査を停止する場合には、ログのツールバーの停止アイコンをクリックします。

13.2.13 serialVersionUIDを持たないシリアル化可能フィールドのコード監査方法

オブジェクトは、java.io.Serializableインタフェースを実装することによってシリアル化可能とマークされます。これは、バイトにフラット化し後で展開できることを示します。

バージョニングを可能にする、serialVersionUIDという識別子があります。

java.io.Serializableを実装しているがserialVersionUIDを持たないすべてのクラスにフラグを設定するコード監査を実行できます。

コード監査規則を設定するには、次のようにします。

- メイン・メニューから、「ツール」→「設定」→「コード監査」→「プロファイル」を選択します。

13.2.14 シリアライズできないフィールドのコード監査方法

オブジェクトは、java.io.Serializableインタフェースを実装することによってシリアル化可能とマークされます。これは、バイトにフラット化し後で展開できることを示します。

オブジェクトのフィールドでシリアル化を無効にするには、そのオブジェクトのクラスのフィールドに、Javaのtransientキーワードでタグを設定します。クラスがシリアル化可能とマークされていても、transientとしてマークされておらずシリアル化できないフィールドを含んでいる場合、そのクラスはシリアル化できません。コード監査を実行すると、このようなシリアル化できないフィールドを検出できます。

コード監査規則を設定するには、次のようにします。

- メイン・メニューから、「ツール」→「設定」→「コード監査」→「プロファイル」を選択します。

13.2.15 コード監査レポートの表示

図13-2に示すように、コード監査レポートは「ログ」ウィンドウのタブ付きペインとして表示されます。

図13-2 コード監査レポート

コード監査レポートを使用すると、ルール違反およびしきい値を超えている測定結果を調べ、これを修正できます。

リフレッシュにより、同じプロファイルを使用してコード監査を再実行できます。コードを変更および修正した後でリフレッシュすることもできます。

コード監査レポートをリフレッシュするには、次のようにします。

- 「ログ」ウィンドウのツールバー内をクリックするか、右クリックして「リフレッシュ」を選択します。

「コード監査結果のエクスポート」ダイアログがクリアされ、新しいコード監査が始まります。コード監査を停止するには、ログのツールバーをクリックします。

13.2.16 コード監査レポートの列の編成方法

コード監査レポートの列を左または右の位置に再配置できます。

コード監査レポート列を編成するには、次のようにします。

- 列ヘッダーを、任意の位置の左または右までドラッグします。

13.2.17 コード監査レポート行の編成方法

コード監査レポート行は、ルール違反や測定結果、または違反および測定結果のグループです。レポートはツリーとして編成されます。ツリーの行は、構成メンバーまたは違反に対応しており、構成メンバーまたは理論上の違反の測定値が含まれます。構成メンバーは、メソッド、クラス、ファイル、パッケージ・ディレクトリ、プロジェクトまたはワークスペースです。

レポートに表示される構成メンバーを選択できます。

コード監査レポート行を編成するには、次のようにします。

1. 「ログ」ウィンドウのツールバーで、「グループ化」をクリックします。

2. 表示する構成を選択します。

3. 「OK」をクリックします。

4. 列ヘッダーをクリックして、その列で行をソートします。
ソート順序を逆にするには、再度クリックします。

13.2.18 フィルタの使用方法

違反が表示されているJavaクラスのセットを削除する場合はフィルタを指定します。パッケージ名、クラス名またはその両方を基準にしてフィルタできます。フィルタは、カンマで区切られた1つ以上のパターンで構成されます。

パターンには、次の特殊文字を含めることができます。

- *は、任意の数の文字に一致します。

- ?は、任意の1文字に一致します。

- !がパターンの先頭にある場合は、除外パターンを示します。

フィルタを渡すクラスのセットは、パターンの順序を考慮して決定されます。非除外パターンでは、パターンに一致するすべてのクラスがセットに追加され、除外パターンでは、パターンに一致するすべてのクラスがセットから削除されます。表13-7は、指定できるフィルタを示しています。

表13-7 フィルタ

名前

説明

パッケージ

完全修飾クラス名の最後の要素以外のすべてに適用されるフィルタのパターンを入力します。このフィールドが空の場合、フィールドは無効です。

ファイル

完全修飾クラス名の最後の要素にのみ適用されるフィルタのパターンを入力します。このフィールドが空の場合、フィールドは無効です。

適用

特定の「パッケージ」フィルタおよび「ファイル」フィルタをレポート行に適用する場合にクリックします。

クリア

「パッケージ」フィルタおよび「ファイル」フィルタを消去する場合やレポート行をリストアする場合にクリックします。

コード監査レポート行をフィルタするには、次のようにします。

1. コード監査のログ・ウィンドウの「パッケージ」フィールドで、完全修飾クラス名の最後の要素を除くすべての要素に適用される一連のパターンを入力します。このボックスは、「ファイル」フィルタを指定した場合、空白にしておくこともできます。

2. 「ファイル」フィールドで、完全修飾クラス名の最後の要素のみに適用される一連のパターンを入力します。このボックスは、「パッケージ」フィルタを指定した場合、空白にしておくこともできます。

3. 「適用」をクリックします。
選択した行のみを示したレポートが再表示されます。

4. 「クリア」をクリックして、テキストを「パッケージ」ボックスおよび「ファイル」ボックスから削除します。

13.2.19 コード監査レポートの保存方法

コード監査レポートをXMLファイル、HTML形式またはテキスト・ファイルとして保存できます。

フォーマットは、<jdev_install>/jdev/< system>/audit/stylesheetsディレクトリのXSLスタイルシート・ファイルによって定義されます(このディレクトリはコード監査を実行するまで作成されません)。カスタム・フォーマットを作成するには、事前定義されたスタイルシート・ファイルの1つをコピーして、このディレクトリに追加します。

コード監査レポートを保存するには、次のようにします。

- 「ログ」ウィンドウのツールバー内をクリックするか、右クリックして「エクスポート」を選択します。
「コード監査結果のエクスポート」ダイアログが表示されます。タイトル、書式およびレポートの保存先を選択して、「OK」をクリックします。

13.2.20 コード監査レポートの違反またはコード測定結果のインスペクト方法

JDeveloperでは、すべてのコード監査規則違反に関するレポートが生成されます。このウィンドウでは、ドロップダウン・メニューから規則違反に対する修正を選択できます。個々の規則違反に対して、その違反タイプに定義されている修正から選択します。

コード監査規則違反をインスペクトするには、次のようにします。

1. コード監査レポートで、表示する構成を選択します。

2. 右クリックして「ソースへ移動」を選択するか、構成メンバーをダブルクリックします。
ソース・ファイルのエディタが開き、規則違反または測定されたコード要素の場所にカーソルが移動します。

3. 違反または異常を右クリックし、「情報」を選択すると、違反が発生した規則の詳細を知ることができます。図13-3に示すように、ルールを記述したポップアップが表示されます。

図13-3 ポップアップについて

13.2.21 コード監査規則違反の修正方法

コード監査規則違反を、手動でソースを編集して修正できます。一部の規則違反については、自動修正を選択して修正できます。個々の規則違反に対して、その違反タイプに定義されている修正から選択します。グループ構成には、「デフォルトの修正を適用」のみを選択できます。これにより、そのタイプに定義されているデフォルトの修正(存在する場合)が適用されます。

コード監査の規則違反を手動で修正する手順は次のとおりです。

1. コード監査レポートで、規則違反(「構成」ツリー内のリーフ・ノード)を選択します。

2. 右クリックし、「ソースへ移動」を選択します。
ソース・ファイルのエディタが開き、規則違反の場所にカーソルが移動します。

3. コードを編集して、違反の原因を修正します。

コード監査規則違反に自動修正を適用するには、次のようにします。

1. コード監査レポートで、規則違反(「構成」ツリー内のリーフ・ノード)を選択します。

2. 右クリックし、<規則>修正の適用メニュー項目があれば、それを選択します。
または

「ログ」ウィンドウのツールバー内をクリックし、<規則>修正の適用メニュー項目のいずれかを選択します。

13.2.22 構成メンバーのコード監査規則違反を修正する方法

構成メンバーでのすべての規則違反に自動修正を適用できます。Default FixプロパティがNone以外の値に設定されている構成メンバーでは、デフォルトの修正が各規則違反に適用されます。

構成メンバーのコード監査規則違反を修正するには、次のようにします。

1. コード監査レポートで、構成メンバー(「構成」ツリー内のコンテナ・ノード)を選択します。

2. デフォルトの修正は、次の2つの方法のいずれかを使用して適用できます。

- 右クリックして「デフォルトの修正を適用」を選択します。

- 「ログ」ウィンドウのツールバー内をクリックし、デフォルトの値を適用を選択します。

13.2.23 コード監査規則違反を非表示にする方法

コード監査レポートで特定のタイプの規則違反をすべて非表示にできます。この操作によって、特定の規則の違反がすべて非表示になるため、レポートが読みやすくなります。個別の規則違反を非表示にすることはできません。

コード監査規則違反を非表示するには、次のようにします。

1. コード監査レポートで、規則違反(「構成」ツリー内のリーフ・ノード)を選択します。

2. 右クリックして「< Rule>違反を非表示」を選択します。
<Rule>のすべての違反がコード監査レポートから削除されます。削除された規則が親の構成メンバーのサマリーに記録されることはありません。「しきい値を超えるもののみ表示」が有効になっている場合は、空の構成メンバーは削除されます。有効になっていない場合は、違反のみが削除されます。

非表示のコード監査規則違反を復元するには、次のようにします。

1. コード監査レポートで右クリックして、ポップアップ・メニューを開きます。

2. 「非表示の違反を表示」を選択します。
以前非表示にされたすべての規則違反が、コード監査レポートに復元されます。

13.2.24 コード監査レポートのコード測定結果を非表示にする方法

コード測定レポートには、分析対象コードの構成メンバーに関する測定結果が表示されます。しきい値以下の結果を非表示にすると、しきい値を超えている測定結果にレポートをフォーカスできます。しきい値は、コード測定の設定可能なプロパティの1つです。

しきい値を超えている測定結果のみを表示するには、次のようにします。

- 「ログ」ウィンドウのツールバーで、しきい値超過のアイコンをクリックします。もう一度クリックすると、すべての測定結果が表示されます。

削除された測定が、その親となる構成メンバーのサマリーに記録されることはありません。「しきい値を超えるもののみ表示」が有効になっている場合は、空の構成メンバーは削除されます。有効になっていない場合は、違反のみが削除されます。

13.3 プロジェクトのプロファイリング

JDeveloperには、次の3つのプロファイリング・モードが用意されています。

- JVM遠隔測定グラフとスレッド・タイムラインを含むオーバーヘッドなしモニタリングに対応するモニター。スレッドのアクティビティやメモリー割当てなどの、ターゲットJVMのプロパティに関する概要を取得する場合にこれを選択します。

- 動的バイトコード計測を利用するクイック・サンプリング、または高度にカスタマイズされたパフォーマンス・プロファイリングに対応するCPU。メソッドの実行時間やメソッドが呼び出された回数などの、アプリケーション・パフォーマンスに関する詳細データを取得する場合にこれを選択します。

- 特定のタイプのメモリー・リークを特定するための存続世代メトリックを含むメモリー・プロファイリング。オブジェクト割当てとガベージ・コレクションに関する詳細データを取得する場合にこれを選択します。

13.3.1 CPUプロファイラについて

CPUプロファイラは、アプリケーションがプロセッサに及ぼす影響を分析するために使用します。CPUプロファイラを使用すると、起動、初期化、再描画およびコンパイルなどのアプリケーションの機能をテストできます。CPUプロファイラでは、アプリケーションのCPU使用率に関する統計が収集されます。

CPUプロファイリングを使用すると、プログラムでCPU時間を最も多く消費するメソッドとスレッドを特定できます。CPUプロファイラによって、アプリケーションのパフォーマンスに関する統計データが表示されます。

プロファイラを使用して、アプリケーションによるCPU時間の使用方法をサンプリングしたり、メソッド・コールをカウントできます。一度に1つのモードだけが選択できます。一度に両方を選択することはできません。

注意:

一度に1つのモードだけが選択できます。両方のモードを同時に選択することはできません。

13.3.2 メモリー・プロファイラについて

メモリー・プロファイラを使用すると、プログラムがどのようにJavaヒープを使用しているかを把握できます。メモリー・リークやヒープの非効率な使用、および一般にメモリーに関する疑わしい動作を検出できます。プロファイラには、メモリー・プロファイリングの2つのツール、クイック(サンプリング済)および拡張(計測済)が組み込まれています。

- クイック(サンプリング済): アプリケーションをサンプリングし、定期的にスタック・トレースを取得します。このオプションは、メソッドをインストゥルメントする方法と比較して正確性が低下しますが、オーバーヘッドは低くなります。このオプションは、インストゥルメントが必要になる可能性のあるメソッドを見つけるのに役立ちます。

- 拡張(計測済): プロファイルされたアプリケーションのメソッドがすべて計測されます。ルート・メソッドを定義することによって、計測されるアプリケーションのコード部分を制限するように選択できます。このオプションにより、プロファイリングのオーバーヘッドを大幅に削減できます。

13.3.3 プロファイリング・セッションの開始方法

実行の対象となるプロジェクトがローカル・マシンに存在している場合は、追加構成なしでプロジェクトをプロファイルすることができます。ローカル・プロジェクトをプロファイルする際、プロジェクトを起動してJDeveloperの中からプロファイリング・セッションを開始します。

ローカル・アプリケーションのプロファイリングを実行したいけれども、JDeveloperからアプリケーションを開始できない、または開始したくない場合には、アプリケーションにIDEをアタッチしてアプリケーションをプロファイルすることができます。詳細は、第13.3.14項「アタッチ・モードを使用したプロファイリング」を参照してください。

ローカル・プロジェクトをプロファイルするには、エディタでプロジェクトを開く必要があります。IDEでプロファイラを使用するには、事前にプロファイラを調整しておく必要があります。プロファイラの調整は1回だけで十分です。詳細は、「プロジェクトをはじめてプロファイルする場合、IDEでプロジェクト・ビルド・スクリプトを変更してプロファイラを統合する必要があります」に関する項を参照してください。IDEでは、プロジェクト・ビルド・スクリプトのバックアップを作成した後で変更が実行されます。

プロファイリング・セッションを開始する手順は次のとおりです。

- メイン・メニューから、「実行」→プロファイラ <project_name>をクリックします。
プロファイラをアタッチするには、メイン・メニューから「実行」→「プロファイラのアタッチ」をクリックします。

13.3.4 プロファイリングのウィンドウについて

アプリケーションをプロファイリングする際、IDEで提供される一連のウィンドウによってプロファイリング・プロセスの制御とプロファイリングの結果表示が可能になります。次のウィンドウを開くには、「ウィンドウ」→「プロファイリング」→「ウィンドウ名」(例: 「ウィンドウ」→「プロファイリング」→「プロファイリング・ポイント」)を選択します。

次のウィンドウを使用すると、プロファイリング・セッションの制御と構成を実行できます。

- 「プロファイラ」ウィンドウ: このウィンドウには、プロファイリング・セッションを開始、停止、変更するコントロール、プロファイリング結果が表示されるウィンドウを開くコントロール、およびスナップショットを管理するコントロールが表示されます。

- 「プロファイリング・ポイント」ウィンドウ: このウィンドウを使用して、プロファイリング・ポイントの表示と管理を実行できます。

プロファイラは、次のウィンドウを使用してプロファイリング結果を表示します。

- 「プロファイリングのライブ結果」

- 「遠隔測定の概要」ウィンドウ

- 「VM遠隔測定」ウィンドウ

- 「スレッドのプロファイリング」ウィンドウ

- 「スナップショット」ウィンドウ

- 「ヒープ」ウィンドウ

13.3.5 プロファイリング結果について

プロファイリング・セッションから取得したプロファイリング結果は、選択するプロファイリング・タスクによって異なります。プロファイリング・セッションが進行中の場合は、プロファイリング・タスクのライブ結果を確認することができます。プロファイリング・セッションの任意の時点で、結果を取得して保存できます。

「ライブ結果」

「ライブ結果」ウィンドウには、プロファイリング・セッションの進行中にわたるプロファイリング・タスクの結果が表示されます。

- 「VM遠隔測定」: 「VM遠隔測定」ウィンドウには、スレッド・アクティビティおよび、VMでのメモリー・ヒープとガベージ・コレクションに関する高水準のデータが表示されます。

- 「スレッド」: 「スレッド」ウィンドウには、アプリケーションのスレッド・アクティビティに関する詳細情報が表示されます。

- 「遠隔測定の概要」: 「遠隔測定の概要」ウィンドウには、「VM遠隔測定」ウィンドウに表示されるグラフの小型バージョンが表示されます。

- 「プロファイリングのライブ結果」: 「プロファイリングのライブ結果」ウィンドウには、実行中のプロファイリング・セッションのライブ・データが表示されます。表示されるライブ結果は、選択されたプロファイリング・タスクによって異なります。注意: 「プロファイリングのライブ結果」ビューは、アプリケーションを監視しているときには使用できません。

これらのウィンドウを開くには、メイン・メニューから「ウィンドウ」→「プロファイリング」→「ウィンドウ名」を選択します。

取得した結果

取得した結果のウィンドウには、プロファイリング・セッションの特定の時点におけるプロファイリング・データが表示されます。結果の取得はプロファイリング・セッション中のどの時点でも可能であり、その結果はプロジェクトまたはローカル・システムに保存できます。保存した取得結果を表示するのに、プロファイリング・セッションを実行中である必要はありません。

- 「スナップショット」: このビューには、プロファイリング・セッションの取得結果が表示されます。スナップショットに含まれているデータは、スナップショットの撮影時に実行しているプロファイリング・タスクによって異なります。

- 「ヒープ」: このビューにはヒープ・ダンプが表示されます。このビューで、ヒープのコンテンツを調べることができます。

- ビューをイメージとして保存: 結果ウィンドウに表示されている現在のビューの.pngイメージは、ツールバーの「現在のビューを画像に保存」ボタンを使用して保存できます。このボタンは、プロファイル・ビューで画像への保存をサポートしている場合にかぎり、使用できます。

13.3.6 プロファイラの調整方法

IDEを使用してアプリケーションのプロファイリングを実行するには、事前にIDEを調整しておく必要があります。この調整プロセスは、プロファイリングに使用するJDKごとに実行する必要があります。これは、アプリケーションのバイトコード計測によってある程度のオーバーヘッドが生じ、より正確な結果を得るためには、コード計測にかかる時間を要因から取り除く必要があるために行います。

ローカル・システム用にIDEを調整する手順は次のとおりです。

1. 実行中のその他のプログラムをすべて終了します。
他のアプリケーションを実行中であっても調整は実行されますが、調整の実行時にCPU集中型プログラムを実行すると、正確なプロファイリング結果が得られない可能性があります。

2. メイン・メニューから、「実行」→「プロファイラ」→プロファイリング調整の実行を選択します。

3. プロファイリングに使用するJavaプラットフォームを選択して、「OK」をクリックします。

注意:

Javaプラットフォームは、「ツール」→「ライブラリの管理」ページでJava SE定義に追加されている場合のみ、調整できます。

「OK」をクリックすると、選択したJavaプラットフォームに関する調整データが収集されます。調整プロセスが完了したら、IDEを使用してアプリケーションのプロファイリングを開始できます。

複数のコンピュータまたはシステム間で調整データを共有しないようにしてください。

注意:

IDEの調整は、使用するJDKごとに1回だけで十分です。ただし、システムのパフォーマンスに影響するような変更をローカル構成またはリモート構成に加えた場合には、調整プロセスを再実行することをお薦めします。システム・パフォーマンスに影響を与える可能性のある変更とは、次のようなものです。

- ハードウェアのアップグレード

- オペレーティング・システムの有意な変更またはアップグレード

- プロファイリングに使用するJavaプラットフォームのアップグレード

13.3.7 ヒープ・ダンプの取得方法

プロファイリング・セッションの進行中にヒープ・ダンプを取得できます。ヒープ・ダンプを取得するときに、ヒープをプロジェクトまたはローカル・ファイル・システムに保存するよう要求されます。ヒープ・ダンプを保存した後で、随時ヒープ・ダンプをロードして、ヒープ上のオブジェクトを参照したり、個別オブジェクトの参照を特定したり、ヒープ・ダンプの比較によるスナップショット間の相違を確認したりすることができます。ヒープ・ダンプをロードしたり参照したりするために、プロファイリング・セッションが実行中である必要はありません。

ヒープ・ダンプを取得するには、アプリケーションがJDK 1.5.0_12またはそれ以降で実行している必要があります。

プロファイリング・ポイントを使用してヒープ・ダンプを取得する手順は次のとおりです。

1. プロファイリング・ポイントを配置するコードが含まれているソース・ファイルを開きます。

2. プロファイリング・ポイントを配置するコードの行を右クリックして、「プロファイリング・ポイントの追加」を選択します。

3. 「プロファイリング・ポイント・タイプ」リストで、次のスナップショット・ポイントのいずれか1つを選択して「次へ」をクリックします。

- スナップショットの取得

- 時間によるスナップショットの取得

- トリガーによるスナップショットの取得

4. ウィザードの「プロパティのカスタマイズ」ページで、スナップショットのタイプとして「ヒープ・ダンプ」を選択し、追加設定を変更します。「ヒープ・ダンプ」オプションは、「設定」→「取得」から使用できます。

プロファイリング・ポイントを使用してヒープ・ダンプを取得する際、プロファイリング・ポイントを配置するソース・コード内のポイントを指定します。たとえば、スレッドが特定のメソッドに入ったときに、ヒープ・ダンプを取得する必要が生じることがあります。

OutOfMemoryエラー時にヒープ・ダンプを取得する手順は次のとおりです。

1. メイン・メニューから、「ツール」→「設定」→「プロファイラ」を選択します。

2. 「OutOfMemoryError時」リストで、OutOfMemoryError発生時のIDEの動作を指定するオプションをドロップダウン・リストから選択します。
デフォルトの動作は、ヒープ・ダンプをプロファイル済プロジェクトに保存することです。

13.3.8 オブジェクト問合せ言語(OQL)を使用したヒープ・ダンプの分析方法

OQLはSQLに似た問合せ言語であり、Javaヒープに問い合わせて、そのJavaヒープから要求された情報のフィルタ処理/選択を可能にします。「クラスXのすべてのインスタンスを表示」というような事前定義の問合せはツールによってすでにサポートされていますが、OQLでは柔軟性が高くなっています。OQLは、JavaScript式言語に基づいています。

「ヒープ」ウィンドウでJavaヒープをロードする際、このウィンドウの「OQLコンソール」タブをクリックしてOQLエディタを開くことができます。OQLコンソールには、OQLエディタ、保存済OQL問合せウィンドウ、および問合せ結果を表示するウィンドウが含まれています。任意のサンプルOQL問合せを使用したり、ヒープ・データをフィルタ処理および選択する問合せを作成して、Javaヒープから必要な情報を特定することができます。問合せを選択または作成した後で、Javaヒープに対して問合せを実行して、結果を表示できます。

OQL問合せのフォームは次のとおりです。

select <JavaScript expression to select>
[ from [instanceof] <class name> <identifier>
[ where <JavaScript boolean expression to filter> ] ]

ここでは、class nameは完全修飾Javaクラス名(例: java.net.URL)または配列クラス名、char[] (または[C)はchar配列名、java.io.File (または[Ljava.io.File;)はjava.io.File[]の名前、というようになります。完全修飾されたクラス名が、実行時にJavaクラスを常に一意に識別するとはかぎりません。同名であっても、別のローダーによってロードされた複数のJavaクラスが存在している場合もあります。したがって、クラス名にはクラス・オブジェクトのID文字列が使用できます。instanceofキーワードが使用されている場合は、サブタイプ・オブジェクトが選択されます。このキーワードが指定されていない場合は、指定されたクラスのインスタンスのみが選択されます。from句とwhere句は両方ともオプションです。

select句および(オプションとして)where句では、式はJavaScript式で使用されます。フィールドに自然構文でアクセスできるようにするために、Javaヒープ・オブジェクトは便利なスクリプト・オブジェクトとしてラップされます。たとえば、Javaフィールドはobj.field_name構文でアクセスでき、配列要素はarray[index]構文でアクセスできます。選択されたJavaオブジェクトはそれぞれ、from句で指定された識別子名のJavaScript変数にバインドされます。

13.3.8.1 OQLの例

長さが100以上のStringをすべて選択します。

select s from java.lang.String s where s.count >= 100

長さが256以上のint配列をすべて選択します。

select a from int[] a where a.length >= 256

正規表現に一致するStringのコンテンツを表示します。

select {instance: s, content: s.toString()} from java.lang.String s
where /java/(s.toString())

すべてのFileオブジェクトのパス値を表示します。

select file.path.toString() from java.io.File file

すべてのClassLoaderクラスの名前を表示します。

select classof(cl).name
from instanceof java.lang.ClassLoader cl

指定されたID文字列によって識別されるClassのインスタンスを表示します。

select o from instanceof 0xd404b198 o

0xd404b198はClassのIDです(セッション内)。これを検索するには、そのクラスのページに表示されたIDを調べます。

13.3.8.2 OQLの組込みオブジェクトと関数

ヒープ・オブジェクト

ヒープ組込みオブジェクトは、次のメソッドをサポートしています。

- heap.forEachClass: Javaクラスごとにコールバック関数をコールします。

heap.forEachClass(callback);

- heap.forEachObject: Javaオブジェクトごとにコールバック関数をコールします。

heap.forEachObject(callback, clazz, includeSubtypes);

clazzは、インスタンスが選択されているクラスです。これが指定されない場合、java.lang.Object. includeSubtypesのデフォルトは、サブタイプ・インスタンスを含めるかどうかを指定するブール・フラグになります。このフラグのデフォルト値はtrueです。

- heap.findClass: 指定された名前のJavaクラスを検索します。

heap.findClass(className);

この場合のclassNameは、検索するクラスの名前です。結果として得られるClassオブジェクトのプロパティは、次のとおりです。

- name: クラスの名前。

- superclass: スーパークラスのClassオブジェクト(または、java.lang.Objectの場合はnull)。

- statics: Classの静的フィールドの名前と値のペア。

- fields: フィールド・オブジェクトの配列。フィールド・オブジェクトのプロパティはnameとsignatureです。

- loader: このクラスをロードしたClassLoaderオブジェクト。

Classオブジェクトのメソッドは、次のとおりです。

- isSubclassOf: 指定されたClassがこのクラスの直接または間接サブクラスかどうかをテストします。

- isSuperclassOf: 指定されたClassがこのクラスの直接または間接のスーパークラスかどうかをテストします。

- subclasses: 直接および間接サブクラスの配列を返します。

- superclasses: 直接および間接スーパークラスの配列を返します。

- heap.findObject: 指定されたオブジェクトIDからオブジェクトを検索します。

heap.findObject(stringIdOfObject);

- heap.classes: すべてのJavaクラスの列挙を返します。

- heap.objects: Javaオブジェクトの列挙を返します。

heap.objects(clazz, [includeSubtypes], [filter])

clazzは、インスタンスが選択されているクラスです。これが指定されない場合、java.lang.Object. includeSubtypesのデフォルトは、サブタイプ・インスタンスを含めるかどうかを指定するブール・フラグになります。このフラグのデフォルト値はtrueです。このメソッドでは、オプションのフィルタ式を受け入れてオブジェクトの結果セットをフィルタ処理します。

- heap.finalizables: - ファイナライズが保留中であるJavaオブジェクトの列挙を返します。

- heap.livepaths: - 指定されたオブジェクトがアライブしているパスの列挙を返します。このメソッドでは、ブール・フラグであるオプションの第2パラメータを受け入れます。このフラグにより、弱い参照のあるパスを含めるかどうかが指定されます。デフォルトでは、弱い参照のあるパスは含まれません。

select heap.livepaths(s) from java.lang.String s

この配列の各要素が、別の配列になっています。後の配列には、パスの「参照チェーン」に入っているオブジェクトが含まれています。

- heap.roots: - ヒープのRootの列挙が返されます。
各Rootオブジェクトのプロパティは、次のとおりです。

- id: このルートにより参照されるオブジェクトの文字列ID

- type: Rootの記述タイプ(JNIグローバル、JNIローカル、Java Staticなど)

- description: Rootの文字列の記述

- referrer: このルートに責任を持つ、またはnullであるThreadオブジェクトまたはClassオブジェクト

例

- クラスjava.lang.Systemの静的フィールド'props'にアクセスします。

select heap.findClass("java.lang.System").statics.props
select heap.findClass("java.lang.System").props

- java.lang.Stringクラスのフィールド数を取得します。

select heap.findClass("java.lang.String").fields.length

- オブジェクトIDが指定されているオブジェクトを検索します。

select heap.findObject("0xf3800b58")

- 名前パターンjava.net.*を持つクラスをすべて選択します。

select filter(heap.classes(), "/java.net./(it.name)")

個別のオブジェクトに対する関数

- allocTrace関数
指定されたJavaオブジェクトがある場合は、その割当てサイト・トレースを返します。allocTraceはframeオブジェクトの配列を返します。各frameオブジェクトのプロパティは、次のとおりです。

- className: メソッドがframeで実行中であるJavaクラスの名前。

- methodName: - frameで実行中のJavaメソッドの名前。

- methodSignature: frameで実行中のJavaメソッドのシグネチャ。

- sourceFileName: frameで実行中のJavaクラスのソース・ファイルの名前。

- lineNumber: メソッド内のソース行番号。

- classof関数
指定されたJavaオブジェクトのクラス・オブジェクトを返します。結果として得られるオブジェクトは次のプロパティをサポートしています。

- name: クラスの名前。

- superclass: スーパークラスのクラス・オブジェクト(または、java.lang.Objectの場合はnull)

- statics: クラスの静的フィールドの名前と値のペア

- fields: fieldオブジェクトの配列。fieldオブジェクトのプロパティはnameとsignatureです。

- loader: このクラスをロードしたClassLoaderオブジェクト。

Classオブジェクトのメソッドは、次のとおりです。

- isSubclassOf: 指定されたクラスがこのクラスの直接または間接サブクラスかどうかをテストします。

- isSuperclassOf: 指定されたクラスがこのクラスの直接または間接のスーパークラスかどうかをテストします。

- subclasses: 直接および間接サブクラスの配列を返します。

- superclasses: 直接および間接スーパークラスの配列を返します。

例

- 各Referenceタイプ・オブジェクトのクラス名を表示します。

select classof(o).name from instanceof java.lang.ref.Reference o

- java.io.InputStreamのすべてのサブクラスを表示します。

select heap.findClass("java.io.InputStream").subclasses()

- java.io.BufferedInputStreamのすべてのスーパークラスを表示します。

show all superclasses of java.io.BufferedInputStream

- forEachReferrer関数
指定されたJavaオブジェクトのリファラごとにコールバック関数をコールします。

- identical関数
指定された2つのJavaオブジェクトが同一かどうかを返します。次に例を示します。

select identical(heap.findClass("Foo").statics.bar, heap.findClass("AnotherClass").statics.bar)

- objectid関数
指定されたJavaオブジェクトの文字列IDを返します。このIDはheap.findObjectに渡すことができ、識別のためにオブジェクトを比較する場合にも使用できます。次に例を示します。

select objectid(o) from java.lang.Object o

- reachables関数
指定されたJavaオブジェクトから推移的に参照されるJavaオブジェクトの配列を返します。オプションとして、カンマ区切りフィールド名である第2パラメータがアクセス可能性の計算から除外されることを受け入れます。フィールドはclass_name.field_nameパターンで作成されます。

例

- 各Propertiesインスタンスからアクセス可能なオブジェクトをすべて印刷します。

select reachables(p) from java.util.Properties p

- 各java.net.URLからアクセス可能なオブジェクトをすべて印刷しますが、指定されたフィールド経由でアクセス可能なオブジェクトは省略されます。

select reachables(u, 'java.net.URL.handler') from java.net.URL u

- referrers関数
指定されたJavaオブジェクトの参照を保持するJavaオブジェクトの列挙を返します。このメソッドでは、ブール・フラグであるオプションの第2パラメータを受け入れます。このフラグにより、弱い参照を含めるかどうかが指定されます。デフォルトでは、弱い参照は含まれません。

例

- java.lang.Objectインスタンスごとにリファラ数を印刷します。

select count(referrers(o)) from java.lang.Object o

- java.io.Fileオブジェクトごとにリファラを印刷します。

select referrers(f) from java.io.File f

- 2つ以上で参照された場合のみ、URLオブジェクトを印刷します。

select u from java.net.URL u where count(referrers(u)) > 2

- referees関数
指定されたJavaオブジェクトが直接参照するJavaオブジェクトの配列を返します。このメソッドでは、ブール・フラグであるオプションの第2パラメータを受け入れます。このフラグにより、弱い参照を含めるかどうかが指定されます。デフォルトでは、弱い参照は含まれません。たとえば、java.io.Fileクラスのすべての静的参照フィールドを印刷するには、次のようにします。

select referees(heap.findClass("java.io.File"))

- refers関数
最初のJavaオブジェクトが2番目のJavaオブジェクトを参照するかどうかを返します。

- root関数
指定されたオブジェクトがオブジェクトのrootセットのメンバーである場合、この関数は、その理由を説明する説明Rootオブジェクトを返します。指定されたオブジェクトがrootではない場合、この関数はnullを返します。

- sizeof関数
指定されたJavaオブジェクトのサイズをバイト数で返します。次に例を示します。

select sizeof(o) from int[] o

- retainedsize関数
指定されたJavaオブジェクトの保持セットのサイズをバイト数で返します。注意: この関数をヒープ・ダンプに対してはじめて使用する場合は、かなり時間がかかる場合があります。

retainedsize関数の使用例は次のとおりです。

select rsizeof(o) from instanceof java.lang.HashMap o

- toHtml関数
指定されたJavaオブジェクトのHTML文字列を返します。これは、select式によって選択されたオブジェクトに対して自動的にコールされます。ただし、より複雑な出力の印刷に役立つ場合があります。たとえば、ハイパーリンクを太字で印刷するには、次のようにします。

select "<b>" + toHtml(o) + "</b>" from java.lang.Object o

13.3.8.3 複数の値の選択

JavaScriptオブジェクトのリテラルまたは配列を使用して、複数の値を選択できます。

たとえば、スレッド・オブジェクトごとに名前とスレッドを表示します。

select { name: t.name? t.name.toString() : "null", thread: t }
from instanceof java.lang.Thread t

配列/イテレータ/列挙操作関数

これらの関数は、配列/イテレータ/列挙および式文字列[または、コールバック関数]を入力として受け入れます。これらの関数は、配列/イテレータ/列挙を反復し、各要素に対して式(または関数)を適用します。注意: JavaScriptオブジェクトは連想配列です。したがって、これらの関数は任意のJavaScriptオブジェクトとともに使用することもできます。

- concat関数
指定された配列/列挙に、指定されたブール式がコードで指定した要素が含まれているかどうかを返します。評価されたコードは、次の組込み変数を参照できます。

- it: 現在参照している要素

- index: 現在の要素の索引

- array: 反復中の配列/列挙

たとえば、一部の静的オブジェクトのいくつかのクラスによって参照されるPropertiesオブジェクトをすべて選択するには、次のようにします。

select p from java.util.Properties p
where contains(referrers(p), "classof(it).name == 'java.lang.Class'")

- count関数
指定されたブール式を満たす入力配列/列挙の要素の件数を返します。ブール式のコードは、次の組込み変数を参照できます。

- it: 現在参照している要素

- index: 現在の要素の索引

- array: 反復中の配列/列挙

たとえば、特定の名前パターンを持つクラスの数を印刷します。

select count(heap.classes(), "/java.io./(it.name)")

- filter関数
指定されたブール式を満たす入力配列/列挙の要素が含まれている配列/列挙を返します。ブール式のコードは、次の組込み変数を参照できます。

- it: 現在参照している要素

- index: 現在の要素の索引

- array: 反復中の配列/列挙

- result: 結果の配列/列挙

例

- java.io.*名前パターンを持つクラスをすべて表示します。

select filter(heap.classes(), "/java.io./(it.name)")

- リファラがjava.netパッケージに属していないURLオブジェクトのすべてのリファラを表示します。

select filter(referrers(u), "! /java.net./(classof(it).name)")
from java.net.URL u

- length関数
配列/列挙の要素数を返します。

- map関数
指定されたコードを各要素で評価することにより、指定された配列/列挙を変換します。評価されたコードは、次の組込み変数を参照できます。

- it: 現在参照している要素

- index: 現在の要素の索引

- array: 反復中の配列/列挙

- result: 結果の配列/列挙

Map関数は、入力配列/列挙の要素ごとにコードを繰り返しコールすることによって作成された値の配列/列挙を返します。

たとえば、次の名前と値を持つjava.io.Fileの静的フィールドをすべて表示します。

select map(heap.findClass("java.io.File").statics, "index + '=' + toHtml(it)")

- max関数
指定された配列/列挙の最大要素を返します。オプションとして、配列の要素を比較するコード式を受け入れます。デフォルトでは、数値比較が使用されます。比較式では、次の組込み変数が使用できます。

- lhs: 比較の左辺の要素

- rhs: 比較の右辺の要素

例

- 最大長のstringインスタンスを検索します。

select max(map(heap.objects('java.lang.String', false), 'it.count'))

- 最大長であるstringインスタンスを検索します。

select max(heap.objects('java.lang.String'), 'lhs.count > rhs.count')

- min関数
指定された配列/列挙の最小要素を返します。オプションとして、配列の要素を比較するコード式を受け入れます。デフォルトでは、数値比較が使用されます。比較式では、次の組込み変数が使用できます。

- lhs: 比較の左辺の要素

- rhs: 比較の右辺の要素

例

- 最小サイズのvectorインスタンスを検索します。

select min(map(heap.objects('java.util.Vector', false), 'it.elementData.length'))

- 最大長であるvectorインスタンスを検索します。

select min(heap.objects('java.util.Vector'), 'lhs.elementData.length < rhs.elementData.length')

- sort関数
指定された配列/列挙をソートします。オプションとして、配列の要素を比較するコード式を受け入れます。デフォルトでは、数値比較が使用されます。比較式では、次の組込み変数が使用できます。

- lhs: 比較の左辺の要素

- rhs: 比較の右辺の要素

例

- すべてのchar[]オブジェクトをサイズ順に印刷します。

select sort(heap.objects('char[]'), 'sizeof(lhs) - sizeof(rhs)')

- すべてのchar[]オブジェクトをサイズ順に印刷しますが、サイズも併せて印刷します。

select map(sort(heap.objects('char[]'), 'sizeof(lhs) - sizeof(rhs)'),
'{ size: sizeof(it), obj: it }')

- top関数
指定された配列/列挙の上位N個の要素を返します。オプションとして、配列の要素と上位要素の数を比較するコード式を受け入れます。デフォルトでは、外観の順序で上位10個の要素が返されます。比較式では、次の組込み変数が使用できます。

- lhs: 比較の左辺の要素

- rhs: 比較の右辺の要素

例

- 5つの最長文字列を印刷します。

select top(heap.objects('java.lang.String'), 'rhs.count - lhs.count', 5)

- 5つの最長文字列を印刷しますが、サイズも併せて印刷します。

select map(top(heap.objects('java.lang.String'),
'rhs.count - lhs.count', 5), '{ length: it.count, obj: it }')

- sum関数
指定された入力配列または列挙のすべての要素の合計を返します。オプションとして、第2パラメータとして式を受け入れます。これは、入力要素を合計する前のマッピングに使用します。

たとえば、各Propertiesオブジェクトからアクセス可能なサイズの合計を返します。

select sum(map(reachables(p), 'sizeof(it)'))
from java.util.Properties p

// or omit the map as in ...
select sum(reachables(p), 'sizeof(it)')
from java.util.Properties p

- toArray関数
入力配列/列挙の要素が含まれている配列を返します。

- unique関数
指定された入力配列/列挙の一意の要素が含まれている配列/列挙を返します。

次の例では、文字列から参照される一意のchar[]インスタンスを選択しています。複数の文字列インスタンスでコンテンツに対して同じchar[]を共有できます。

// number of unique char[] instances referenced from any String
select count(unique(map(heap.objects('java.lang.String'), 'it.value')))

// total number of Strings
select count(heap.objects('java.lang.String'))

13.3.8.4 その他の例

次の例では、各クラス・ローダーのヒストグラムと、それによってロードされたクラス数が印刷されます。

java.lang.ClassLoaderには、タイプjava.util.Vectorのクラスであるprivateフィールドがあり、Vectorにはベクター内の要素数であるelementCountというprivateフィールドがあります。この問合せでは、JavaScriptオブジェクトのliteral関数およびmap関数を使用して複数の値(loader、count)を選択します。これは、sort関数を比較式とともに使用して、結果を件数(つまり、ロードされたクラス数)別にソートします。

select map(sort(map(heap.objects('java.lang.ClassLoader'),
'{ loader: it, count: it.classes.elementCount }'), 'lhs.count < rhs.count'),
'toHtml(it) + "<br>"')

次の例では、クラス・ローダー・インスタンスごとに親子チェーンを示しています。

select map(heap.objects('java.lang.ClassLoader'),
function (it) {
var res = '';
while (it != null) {
res += toHtml(it) + "->";
it = it.parent;
}
res += "null";
return res + "<br>";
})

java.lang.ClassLoaderクラスの親フィールドが使用されていて、コールをマップするためにコールバック関数を使用して親がnullになるまで検索していることに注意してください。

次の例では、すべてのSystemプロパティの値が印刷されます。この問合せ(および、その他の多くの問合せ)は、Javaプラットフォーム・クラスのprivateフィールドが通知(実装の詳細)なしに変更または削除された可能性があるため、安定していないことがあります。ただし、ユーザーのクラスを制御できる場合は、このような問合せをユーザーのクラスに使用しても安全です。

select map(filter(heap.findClass('java.lang.System').props.table, 'it != null && it.key != null && it.value != null'),
function (it) {
var res = it.key.toString() + ' = ' + it.value.toString();
return res;
});

- java.lang.Systemには、タイプjava.util.Propertiesの'props'という名前の静的フィールドがあります。

- java.util.Propertiesには、タイプjava.util.Hashtable$Entryの'table'というフィールドがあります(このフィールドはjava.util.Hashtableから継承されます)。これはハッシュ表バケット配列です。

- java.util.Hashtable$Entryにはキー、値、およびnextフィールドがあります。各エントリは、同じハッシュ表バケット内で次のエントリ(またはnull)を指します。

- java.lang.Stringクラスには、タイプchar[]のvalueフィールドがあります。

13.3.9 CPUパフォーマンスの分析方法

このタスクでは、ターゲット・アプリケーションのパフォーマンスを分析します。アプリケーション全体をプロファイルするか、またはプロファイル対象のクラスを制御するフィルタを指定することによって計測されるコードを制限するように選択できます。

このプロファイリング・タスクを実行すると、次のようなプロファイリング結果が得られます。

- コンテキストでのメソッド実行の時間(%)と実際の所要時間

- 各メソッドがコンテキスト内で起動した回数

- メソッドの起動に達するメソッド・コールのチェーン

- コンテキストでのメソッド実行の時間/数

アプリケーションのパフォーマンスを分析する手順は次のとおりです。

1. 分析するアプリケーションを開きます。

2. メイン・メニューから、「実行」→「プロファイル」を選択します。

3. 「プロファイル」ウィンドウの左側のペインで「CPU」をクリックします。

4. 「フィルタ」リストで、フィルタを選択します。

5. 選択すると、プロファイリング・ポイントを使用してプロファイラのアクションを制御できます。

6. 新しいカスタム構成を作成する必要がある場合には、「カスタムを作成」をクリックします。

7. 「実行」をクリックします。

「実行」をクリックすると、ターゲット・アプリケーションが起動してプロファイリング・セッションが開始します。

13.3.10 カスタム構成の作成方法

カスタム構成を作成する際、そのプロファイリング・タスクに対して使用可能なすべての内部設定を完全に制御できます。カスタム・プロファイリング設定のセットごとに作成、保存、および名前の割当てを実行できます。カスタム構成は特定のプロジェクトに関連付けられており、「プロファイル」ダイアログの「CPU」セクションで選択可能です。

「詳細設定」をクリックすると、より詳細なプロファイリング・オプションを設定できます。カスタム構成は、再使用したり変更したりできるように、IDE作業セッション間で自動的に保存されます。

カスタム構成の作成の手順:

1. カスタム構成を作成するアプリケーションを開きます。

2. メイン・メニューから、「実行」→「プロファイル」を選択します。

3. 「プロファイル」ウィンドウの左側のペインで「CPU」をクリックします。

4. 構成に組み入れる必要のあるオプション、たとえばフィルタ、プロファイリング・ポイントなどを選択します。

5. 「カスタムを作成...」をクリックします。

6. 「名前」テキスト・ボックスに、新しい構成の名前を入力します。

7. 「OK」をクリックします。

13.3.11 プロファイリング結果のフィルタリング

「プロファイリングのライブ結果」ウィンドウと結果スナップショットで、表示された結果の下のフィルタ・ボックスを使用して結果を名前別にフィルタ処理できます。

名前別に結果をフィルタ処理する手順は次のとおりです。

1. メイン・メニューから、「ウィンドウ」→「ライブ結果」をクリックします。

2. 表示された結果の下のフィルタ・ボックス内でフィルタ条件を入力します。
スナップショットにおいてフィルタ・ボックスが使用できるのは、CPUスナップショットでは「ホットスポット」タブおよび「結合」タブであり、メモリー・スナップショットでは「メモリー」タブです。

3. 条件に対して次のフィルタリング・パラメータの1つをドロップダウン・メニューから選択します。

- Starts with(大/小文字の区別)

- Contains(大/小文字の区別)

- Does Not Contain(大/小文字の区別なし)

- Ends with(大/小文字の区別)

- Regular expression(大/小文字の区別)

4. 右側のチェックをクリックして、フィルタを結果に適用します。

フィルタ・ボックスの右にある矢印をクリックすると、前のフィルタ条件を表示したり、選択したりできます。完全な未フィルタの結果をリストアするには、フィルタ・ボックスの右にある「フィルタのクリア」をクリックします。

13.3.12 プロファイリング・フィルタの設定方法

アプリケーションのパフォーマンスを分析する際、フィルタを使用して、計測に含めるクラス、または計測から除外するクラスを指定できます。フィルタの使用時に計測するクラス数を制限すると、プロファイリングのオーバーヘッドが縮小されます。フィルタを選択するには、プロファイリング・セッションを構成するときに「フィルタ」ドロップダウン・リストからフィルタを選択します。

「簡易フィルタ」の設定を変更する手順は次のとおりです。

1. カスタム構成を作成するアプリケーションを開きます。

2. メイン・メニューから、「実行」→「プロファイル」を選択します。

3. 「フィルタ」リストで、「簡易フィルタ」を選択します。

4. フィルタ・タイプとして、「除く」または「含む」を選択します。

5. フィルタ値を入力して、「OK」をクリックします。

フィルタを複数回使用する場合は、カスタム・フィルタ・セットを作成できます。

カスタム・フィルタ・セットを変更または作成する手順は次のとおりです。

1. プロファイリング・タスクの選択ダイアログで、「CPU」を選択します。

2. 「フィルタ・セットを編集」をクリックします。

3. 既存のフィルタ・セットを選択するか、「追加」をクリックして新しいフィルタ・セットの名前を入力します。

4. 「フィルタ・セット・タイプ」を指定します。

5. 「グローバル・フィルタ」リストで、フィルタ・セットに含めるグローバル・フィルタを、そのフィルタのチェック・ボックスを選択してアクティブにします。
カーソルを値の上に置くと、そのフィルタに含まれているすべてのパターンが表示されます。

6. 「OK」をクリックして、新しいカスタム・フィルタ・セットを保存します。

新しいフィルタ・セットを作成した後で、「フィルタ」ドロップダウン・リストからそのフィルタを選択できます。プロジェクトのパフォーマンスを分析する際、その新しいフィルタが使用できます。

13.3.13 プロファイリングのライブ結果の使用方法

「プロファイリングのライブ結果」ウィンドウには、実行中のプロファイリング・セッションのライブ結果が表示されます。ツールバーとポップアップ・メニューを使用して、「プロファイリングのライブ結果」ウィンドウに表示される結果を操作できます。「プロファイリングのライブ結果」ウィンドウを開くには、プロファイリング・セッション中に次のいずれか1つを実行します。

- メイン・メニューから、「ウィンドウ」→「プロファイリング」→「ライブ結果」を選択します。

- 「プロファイラ」ウィンドウで、「ライブ結果」をクリックします。

要素

説明

「自動的に結果を更新」

有効になっている場合(デフォルト)、結果が短い間隔で更新されます。無効の場合は、「ただちに結果を更新」をクリックして結果を更新します。

「ただちに結果を更新」

結果をただちに更新する場合にクリックします。

ガベージ・コレクションの実行と結果の更新

ガベージ・コレクションを実行します。

「収集結果をリセット」

すでに蓄積されたプロファイリング結果を廃棄する場合にクリックします。

「収集結果のスナップショットを取得」

結果をスナップショットとして保存する場合にクリックします。未保存のスナップショットはソース・エディタで開かれます。

「現在のビューを保存」

表示された結果を.png画像として保存する場合にクリックします。

結果をソートするには、それぞれの列ヘッダーをクリックするか、結果エントリを右クリックしてポップアップ・メニューからコマンドを選択します。表示される結果と使用可能なポップアップ・メニュー項目は、次のどのプロファイリング・タスクを実行しているかによって異なります。

13.3.14 アタッチ・モードを使用したプロファイリング

ただし、IDEの外側でアプリケーションを開始する必要がある場合は、アタッチ・モードを使用してアプリケーションをプロファイルすることができます。たとえば、次のような場合にアタッチ・モードを使用できます。

- アプリケーションをコマンドラインから開始する必要がある、または複雑な起動スクリプトを使用している。

- アプリケーションまたはターゲットJVMの起動時にプロファイリング・データを取得する必要がある。

- アプリケーションを再起動せずにアプリケーションをプロファイルする必要がある。

次のような場合は、アタッチ・モードを使用する必要があります。

- リモートJVM(リモート・アプリケーション・サーバーなど)で実行中のアプリケーションをプロファイルする必要がある。

アタッチ・モードを使用すると、すでに実行しているアプリケーション、またはローカル・マシンまたはリモート・マシンで起動しようとしているアプリケーションにプロファイリング・ツールをアタッチすることができます。アタッチ・モードの使用は、長時間実行しているアプリケーションのプロファイリング、特にアプリケーション・サーバーで実行しているWebアプリケーションまたはエンタープライズ・アプリケーションのプロファイリングに役立ちます。また、アタッチ・モードを使用して、アプリケーション・サーバー自体のコードをプロファイルすることもできます。

アプリケーションにアタッチするには、ターゲット・アプリケーションまたはサーバーの起動オプションを事前に構成しておく必要があります。「アタッチ・ウィザード」を使用して、プロジェクトのアタッチメント設定を指定します。アタッチメント設定の構成は、1回だけで十分です。アタッチメント設定はプロジェクト固有です。つまり、プロジェクトにはそれぞれ独自の設定が割り当てられています。アタッチメント設定を変更したい場合には、いつでも「アタッチ・ウィザード」を実行できます。

「アタッチ・ウィザード」で、アプリケーションのタイプと場所を指定します。「アタッチ・ウィザード」は、指定された詳細に基づいてアプリケーションまたはサーバーの構成方法に関する手順を示し、プロファイラをアタッチできるようにします。

選択するアタッチ・モードは、取得する必要のあるプロファイリング・データのタイプと、ターゲットJVMプラットフォームの詳細によって異なります。次の表に、アタッチ・モードの概要を示します。

- Local Direct
このモードは、ローカル・アプリケーションの起動に関するプロファイリング・データを取得したい場合に使用します。

このモードを使用する場合、ターゲットJVMとアプリケーションはプロファイラがアタッチされるまで待機した後で起動します。アプリケーションからデタッチした後で、アプリケーションを再起動して別のプロファイリング・セッションを開始する必要があります。

- Local Dynamic (JDK 1.6が必要)
このモードは、ローカル・アプリケーションに関するプロファイリング・データを取得したい場合に使用します。このモードを使用するには、アプリケーションがJDK 1.6で実行している必要があります。

このモードを使用すると、アプリケーションを再起動せずにアプリケーションへのアタッチとアプリケーションからのデタッチを実行できます。

- Remote Direct
このモードは、リモートJVMで実行しているアプリケーションのプロファイリング・データを取得したい場合に使用します。このモードを使用するには、ターゲット・マシンにProfiler Remote Packをインストールする必要があります。リモート・システムの詳細を指定し、「アタッチ・ウィザード」を使用してProfiler Remote Packを生成してください。

このモードを使用すると、プロファイラがアタッチされた後でリモート・アプリケーションが起動します。このモードを使用すると、ターゲットJVMの起動に関するプロファイリング・データを取得できます。

13.3.15 アプリケーションのモニター方法

「プロファイリング・タスク」ボックスで「アプリケーションのモニター」を選択すると、ターゲット・アプリケーションは計測なしで実行します。スレッドのアクティビティやメモリー割当てなどの、ターゲットJVMのプロパティに関する高水準の情報のみが結果として表示されます。

アプリケーションをモニターする手順は次のとおりです。

1. モニターするアプリケーションを開きます。

2. メイン・メニューから、「実行」→「プロファイル」を選択します。

3. 「モニター」をクリックします。

4. オプションとして、「スレッドのモニターを有効化」を選択します。
このオプションは、アプリケーションの起動からスレッドをモニターする場合に選択します。

5. 「実行」をクリックします。

「実行」をクリックすると、ターゲット・アプリケーションが起動してプロファイリング・タスクが開始します。「プロファイラ」ウィンドウで「遠隔測定」ボタンまたは「スレッド」ボタンをクリックして、結果を表示します。

デフォルトでは、アプリケーション・スレッド・アクティビティはモニターされません。「スレッド」タブを開き、「スレッド」ボタンをクリックすると、プロファイリング・セッション中にいつでもスレッド・アクティビティのモニターを開始できます。

アプリケーション起動からスレッドをモニターする場合は、プロファイリング・セッションを開始する前に「スレッドのモニターを有効化」を選択します。

13.3.16 プロファイリング・ポイントの設定方法

プロファイリング・ポイントはソース・コード内のマーカーであり、特定のプロファイリング・アクションを起動できます。コードにプロファイリング・ポイントを設定するには、ソース・エディタのポップアップ・メニューを使用するか、「プロファイリング・ポイント」ウィンドウのツールバーを使用します。

次のタイプのプロファイリング・ポイントを設定できます。

- 「結果のリセット」

- 「ストップウォッチ」

- スナップショットの取得

- 時間によるスナップショットの取得

- トリガーによるスナップショットの取得

注意: 「時間によるスナップショットの取得」および「トリガーによるスナップショットの取得」のアイコンは、コード・エディタには表示されません。これらのアイコンは「プロファイリング・ポイント」ウィンドウにのみ表示されます。

プロファイリング・ポイントを使用して、プロファイリング結果のリセット、スナップショットの取得、またはコード・フラグメントのタイムスタンプまたは実行時間の記録を行うことができます。

プロファイリング・ポイントは、一度設定されると、削除されるまでプロジェクトに含まれます。

プロファイリング・ポイントを設定する手順は次のとおりです。

1. プロファイリング・ポイントを追加するクラスを特定して、ソース・エディタでそのクラスを開きます。

2. ソース・エディタで、プロファイリング・ポイントを追加する行の左余白を右クリックします。

3. プロファイリング・ポイントの追加を選択して、「新規プロファイリング・ポイント」ウィザードを開きます。

4. プロファイリング・ポイント・タイプとプロジェクトを選択します。

5. 「次へ」をクリックします。

6. 必要に応じて、プロファイリング・ポイントのプロパティをカスタマイズします。

7. 「終了」をクリックします。

プロファイリング・ポイントのタイプを表すアイコンが、プロファイリング・ポイントを挿入したソース・エディタに表示されます。

プロファイリング・ポイントを有効または無効にするには、ソース・エディタで、プロファイリング・ポイントが含まれている行の左余白を右クリックして、<プロファイリング・ポイント名>→「有効化」または「無効化」を選択します。

アクティブなプロファイリング・ポイントを表示する手順は次のとおりです。

1. アプリケーションを開きます。

2. メイン・メニューから、「実行」→「プロファイル」を選択します。

3. プロファイリング・タスク(CPUまたはメモリー)を選択します。

4. 「アクティブなプロファイリング・ポイントを表示」を選択します。

また、「ウィンドウ」→「プロファイリング」→「プロファイリング・ポイント」を選択することもできます。

13.3.17 リモート・アプリケーションへのアタッチ方法

プロファイリング・ツールをアプリケーションにアタッチすることにより、Webサーバーなどのリモート・システムで実行しているアプリケーションのプロファイリングを実行できます。このモードを使用すると、プロファイラがアタッチされた後でリモート・アプリケーションが起動します。このモードを使用すると、ターゲットJVMの起動に関するプロファイリング・データを取得できます。

プロファイリング・ツールをアタッチするには、「アタッチ・ウィザード」を使用してプロジェクトのアタッチメント設定を指定します。「アタッチ・ウィザード」で、アプリケーションのタイプとリモート位置を指定します。「アタッチ・ウィザード」は、指定された詳細に基づいてリモート・システムの構成方法に関する手順を示し、プロファイリングをサポートします。

リモート・システムにアタッチするには、リモート・システムにRemote Profiler Packをインストールして、そのパック上でリモート・システムを起動する必要があります。「アタッチ・ウィザード」を使用してリモート・システムの詳細を指定し、そのシステム用にRemote Profiler Packを生成してください。詳細は、第13.3.18項「Profiler Remote Packの生成方法」を参照してください。

手順に従ってリモート・システムを構成した後、リモート位置にプロファイラをアタッチできます。アタッチ・モードは1回構成するだけで十分です。アタッチメント設定はプロジェクトに関連付けられています。いつでも「アタッチ・ウィザード」を実行して、アタッチメント設定を変更できます。

リモート・アプリケーションのプロファイリング手順は次のとおりです。

1. アプリケーションを開きます。

2. メイン・メニューから、「実行」→「プロファイラのアタッチ」を選択します。

3. 「プロファイラ」ダイアログで、「定義...」をクリックしてアタッチメント設定を構成します。

4. 「アタッチ方法」で「リモート」を選択します。

5. 「アタッチ・ウィザード」を完了すると、ターゲット・アプリケーションに従ってアタッチメント設定が指定されます。

6. 「終了」をクリックして、「アタッチ・ウィザード」を終了します。

7. ターゲットの場所を構成し、「アタッチ・ウィザード」の最終ページの手順に従ってリモート・アプリケーションを起動します。生成済のProfiler Remote Packがまだインストールされていない場合は、リモート・システムにそれをインストールする必要があります。
リモート・アプリケーションを起動すると、アプリケーションはIDEがアタッチされるまで待機してから起動します。

8. 「プロファイラ」ページで、プロファイリング・タスクと任意のプロファイリング・オプションを選択します。

9. 「アタッチ」をクリックします。

「アタッチ」をクリックすると、JDeveloperがリモートJVMにアタッチして、アプリケーションが起動します。ローカル・アプリケーションの場合と同様に、プロファイリング・データを表示できます。

IDEがリモート・アプリケーションにアタッチされた後で、次の操作を実行できます。

- リモート・アプリケーションからデタッチする
リモート・アプリケーションからデタッチすると、リモート・アプリケーションは停止しませんが、リモート・アプリケーションに関するプロファイリング・データの受信が停止します。リモート・アプリケーションにアタッチするには、「アタッチ・ウィザード」の起動オプションを使用してリモート・アプリケーションを再起動する必要があります。

- プロファイリング・セッションを変更する
プロファイリング・セッションの変更は、リモート・アプリケーションからデタッチしなくても実行できます。たとえば、プロファイリング・タスクをプロファイリングのオーバーヘッド削減のためのモニタリングに変更した後で、タスクを再度変更することができます。この方法では、リモート・アプリケーションを再アタッチして再起動する必要がありません。

13.3.18 Profiler Remote Packの生成方法

プロファイリング・ツールをリモート・システムにアタッチするには、リモート・システムにRemote Profiler Packをインストールする必要があります。Remote Profiler Packは、プロファイリング・ツールをリモート・システムにアタッチできるライブラリのアーカイブです。

Remote Profiler Packを生成する手順は次のとおりです。

1. アプリケーションを開きます。

2. メイン・メニューから、「実行」→「プロファイラのアタッチ」を選択します。

3. 「プロファイラのアタッチ」ダイアログの下部で、「定義...」をクリックします。

4. 「アタッチ方法」で「リモート」を選択します。

5. 「ホスト名」および「オペレーティング・システム」を指定します。

6. アタッチ手順を読み、Remote Profiling Packの作成をクリックします。

「リモート・パックを生成」をクリックすると、Profiler Remote Packの保存場所を指定するように要求されます。IDEでパックが生成された後、「アタッチ・ウィザード」の手順に従ってパックをインストールし、そのパック上でリモート・システムを起動する必要があります。

13.3.19 ローカル・アプリケーションへのアタッチ方法

アプリケーションをIDEの外側で起動したい、または起動する必要がある場合は、アタッチ・モードを使用してローカル・アプリケーションのプロファイリングを実行できます。たとえば、次のような場合にアタッチ・モードを使用できます。

- アプリケーションをコマンドラインから開始する必要がある、または複雑な起動スクリプトを使用している。

- アプリケーションまたはターゲットJVMの起動時にプロファイリング・データを取得する必要がある。

- アプリケーションを再起動せずにアプリケーションをプロファイルする必要があります(動的アタッチ・モード、JDK 1.6が必要)。

ローカル・アプリケーションにアタッチするには、「アタッチ・ウィザード」を使用して、まずアタッチメント設定を構成する必要があります。これらの設定は、プロファイリング中のプロジェクトに関連付けられています。プロジェクト用のアタッチ設定の構成は1回だけですみますが、設定の変更はいつでも「アタッチ・ウィザード」を再実行して行えます。

ローカル・アプリケーションにアタッチするための設定を構成する際、次のアタッチメント・モードから選択できます。

- 「直接」: このモードを使用すると、ローカル・アプリケーションの起動に関するプロファイリング・データを取得できます。

- 動的(JDK 1.6が必要): このモードを使用すると、アプリケーションを停止せずにアプリケーションからのデタッチとアプリケーションへの再アタッチを実行できます。

ローカル・アプリケーションにリモートにアタッチする手順は次のとおりです。

1. アプリケーションを開きます。

2. メイン・メニューから、「実行」→「プロファイラのアタッチ」を選択します。

3. 「アタッチ先」リストで、プロジェクトがある場合は、そのプロジェクトを選択します。

4. 「プロファイラのアタッチ」ダイアログの下部で、「定義...」をクリックします。

5. 「アタッチ設定」ウィザードで、「ローカル」アタッチ・モードを選択します。

6. 「アタッチ・ウィザード」を完了すると、ターゲット・アプリケーションに従ってアタッチメント設定が指定されます。

7. 「OK」をクリックして、「アタッチ設定」ウィザードを終了します。

8. ターゲットの場所を構成し、「アタッチ・ウィザード」の手順に従ってローカル・アプリケーションを起動します。生成済のProfiler Remote Packがまだインストールされていない場合は、ローカル・システムにそれをインストールする必要があります。詳細は、第13.3.18項「Profiler Remote Packの生成方法」を参照してください。
ローカル・アプリケーションを起動すると、アプリケーションはIDEがアタッチされるまで待機してから起動します。

9. プロファイリング・タスクと任意のプロファイリング・オプションを選択します。

10. 「アタッチ」をクリックします。

IDEがローカル・アプリケーションにリモートにアタッチされた後で、次の操作を実行できます。

- リモート・ローカル・アプリケーションからデタッチする
リモート・ローカル・アプリケーションからデタッチすると、アプリケーションは停止しませんが、アプリケーションに関するプロファイリング・データの受信が停止します。リモート・アプリケーションにアタッチするには、「アタッチ・ウィザード」の起動オプションを使用してリモート・アプリケーションを再起動する必要があります。

- プロファイリング・セッションを変更する
プロファイリング・セッションの変更は、リモート・アプリケーションからデタッチしなくても実行できます。たとえば、プロファイリング・タスクをプロファイリングのオーバーヘッド削減のためのモニタリングに変更した後で、タスクを再度変更することができます。この方法では、リモート・アプリケーションを再アタッチして再起動する必要がありません。

13.3.20 スレッド・アクティビティの表示方法

プロファイリング・セッション中に、「スレッド」ウィンドウでアプリケーションのスレッド・アクティビティに関する詳細情報を表示できます。

「スレッド」タブを開き、「スレッド」ボタンをクリックすると、プロファイリング・セッション中にいつでもスレッド・アクティビティのモニターを開始できます。デフォルトでは、アプリケーション・スレッド・アクティビティは呼び出されるまでモニターされません。

「スレッド」ウィンドウを開くには:

- メイン・メニューから、「ウィンドウ」→「プロファイリング」→「スレッド」を選択します。
アプリケーション起動からスレッドをモニターする場合は、プロファイリング・セッション開始時に「スレッドのモニターを有効化」を選択します。この詳細設定は「プロファイル」ダイアログにあります。

13.3.21 遠隔測定結果の表示方法

「VM遠隔測定」ウィンドウでは、スレッド・アクティビティおよび、VMでのメモリー・ヒープとガベージ・コレクションに関する高水準のデータを表示できます。「VM遠隔測定」ウィンドウは通常は、メイン・エディタ・ウィンドウに表示されます。

「VM遠隔測定要」ウィンドウを開くには、プロファイリング・セッション中に次のいずれか1つを実行します。

- メイン・メニューから、「ウィンドウ」→「プロファイリング」→「VM遠隔測定」を選択します。

- 「プロファイラ」タブで、「VM遠隔測定」をクリックします(メイン・メニューから、「ウィンドウ」→「プロファイリング」→「プロファイラ」をクリック)。

VM遠隔測定の結果が次のタブに表示されます。

- 「メモリー(ヒープ)」: このタブには、ヒープの合計サイズと使用済サイズが表示されます。

- 「メモリー(GC)」: このタブには、ガベージ・コレクションにかかった相対的な時間と存続世代数が表示されます。

- 「スレッド/ロードされたクラス」: このタブには、プロファイル済アプリケーションJVMにおけるスレッド合計数が表示されます。

それぞれのタブでは、グラフの上にカーソルを合わせてツールチップを呼び出すと、詳細データを表示できます。

13.3.22 スナップショットの取得方法

スナップショットでは、特定の時点のプロファイリング・データが取り込まれます。スナップショットに取り込まれるデータは、スナップショットの撮影時に進行中のプロファイリング・セッションのタイプによって異なります。スナップショットを検索するには、「スナップショット」ウィンドウのツールバーを使用して表示された結果をフィルタ処理します。また、結果を右クリックして、ポップアップ・メニューで追加のコマンドを選択することもできます。

スナップショットは、次の点でプロファイリングのライブ結果とは異なります。

- スナップショットは、プロファイリング・セッションが実行中でなくても確認できます。

- スナップショットには、ライブ結果よりも詳細なプロファイリング・データの記録が含まれます。

- スナップショットは容易に比較できます。

プロファイリング・セッションの進行中のみ、スナップショットを取得できます。スナップショットを手動で取得するか、プロファイリング・ポイントを設定してアプリケーション内の正確なポイントでスナップショットを自動的に取得できます。プロファイリング・ポイントを使用してスナップショットを取得する際、スナップショットを取得するソース・コード内のポイントを特定します。たとえば、スレッドが特定のメソッドに入ったときに、スナップショットを取得する必要が生じることがあります。

取得したスナップショットは、メイン・エディタ・ウィンドウで開きます。そのスナップショットは、あとでプロジェクトに保存できます。

スナップショットを手動で取得する手順は次のとおりです。

1. プロファイリング・セッションを開始します(詳細は、第13.3.3「プロファイリング・セッションの開始方法」を参照のこと)。

2. メイン・メニューから、「ウィンドウ」→「プロファイリング」→「プロファイラ」をクリックします。

3. 「スナップショットの取得」をクリックします。

プロファイリング・ポイントを使用してスナップショットを取得する手順は次のとおりです。

1. プロファイリング・ポイントを配置するコード行が含まれているソース・ファイルを開きます。

2. プロファイリング・ポイントを配置するコード行の横の左余白を右クリックして、「プロファイリング・ポイントの追加」を選択します。

3. 「新規プロファイリング・ポイント」ウィザードでスナップショット・オプションの1つを選択して、「次へ」をクリックします。

4. ウィザードの「プロパティのカスタマイズ」ページで、任意のプロファイリング・ポイントのプロパティを変更します。

5. 「終了」をクリックします。

スナップショットは、プロジェクトに保存することも、ローカル・ファイル・システムの場所に保存することもできます。スナップショットをプロジェクトに保存すると、そのスナップショットが「プロファイラ」ウィンドウ内の「保存スナップショット」に表示されます。スナップショットを保存するには、スナップショット・ツールバーのプロジェクトに保存ボタンをクリックします。あるいは、「ツール」→「設定」→「プロファイラ」ウィンドウを使用して、スナップショット取得時の動作を構成できます。

13.4 JUnitによるユニット・テスト

JUnitは、Java対応のリグレッション・テスト用オープン・ソース・フレームワークです。JUnitを使用して、Javaコードを検証するテストを記述および実行します。

テスト・フィクスチャ、テスト・ケースおよびテスト・スイートを作成するには、JDeveloperのJUnitウィザードを使用します。一般的なプロジェクト用のテスト・コンポーネントを作成するウィザードに加えて、ビジネス・コンポーネント・プロジェクトの専用ウィザードが提供されています。

JUnitは、JDeveloperにインストールおよび統合できるオプション機能です。

13.4.1 JUnitのインストール方法

JUnitは、JDeveloperとともに配布されないオプション機能です。これを使用する場合は、ダウンロードおよびインストールする必要があります。

注意:

JUnitは、IBMのパブリック・ライセンス契約に基づいて提供されています。JUnitをダウンロードする前に、ライセンス契約を受け入れる必要があります。

JDeveloperにJUnitをインストールする手順は、次のとおりです。

1. 「ヘルプ」→「更新の確認」に移動して、Oracle Technology Network (OTN)からJUnitをダウンロードします。

2. JDeveloperを終了し、再起動します。

3. JUnitがインストールされます。アンインストールする場合は、拡張機能マネージャを使用します。

13.4.2 Javaプロジェクトに対するJUnitテストの作成

JUnitテスト・アプリケーションは、次のコンポーネントで構成されます。

- 1つ以上のテスト・ケース。テスト対象のメソッドを呼び出し、予測される結果についてのアサーションを作成します。デフォルトで生成されるテスト・ケース・クラスは「Test」という名前ですが、ユーザーが任意の有効なJava名を指定できます。

- テスト・フィクスチャ。テストが実行される状態を提供します。任意のクラスをテスト・フィクスチャとして使用できますが、JDeveloperには専用のテスト・フィクスチャ・クラスを作成するウィザードも用意されています。デフォルトで生成されるテスト・フィクスチャ・クラスは「Fixture」という名前ですが、ユーザーが任意の有効なJava名を指定できます。

- テスト・スイート。テスト・ケースを呼び出します。デフォルトのテスト・スイート・クラスは、「AllTests」という名前です。

- ランナー。テスト・スイートを呼び出し、テスト結果を相関付けて表示します。

13.4.3 JUnitカスタム・テスト・フィクスチャの作成方法

テスト・フィクスチャとは、既知の値を持つオブジェクトのセットで、テスト・ケースにデータを提供します。任意のクラスをテスト・フィクスチャとして使用できますが、JDeveloperにはカスタムのテスト・フィクスチャ・クラスや様々な専用のテスト・フィクスチャを作成できるウィザードも用意されています。

注意:

UnitTestFixtureはpublicクラスです。そのインスタンスを作成した場合、生成されたコードにエラーは生じません。

AppModuleAMFixtureはprivateクラスです。そのインスタンスを作成した場合、生成されたコードにはエラーが生じます。

JUnitのカスタムのテスト・フィクスチャ・クラスを作成するには、次のようにします。

1. 「アプリケーション」ウィンドウで、プロジェクトを選択します。

2. 「ファイル」→「新規」→「ギャラリから」を選択します。

3. 「カテゴリ」ツリーで「一般」を開き、「ユニット・テスト」を選択します。

4. 「項目」リストで、「テスト・フィクスチャ」をダブルクリックします。

5. ウィザードを完了するとテスト・フィクスチャ・クラスが作成されます。
ウィザードによって作成されたクラスが、編集用に開かれます。

6. 「カテゴリ」ツリーで「一般」を開き、「ユニット・テスト」(JUnit)を選択します。

7. 「項目」リストで、「カスタム・テスト・フィクスチャ」をダブルクリックします。

8. ウィザードを完了するとテスト・フィクスチャ・クラスが作成されます。

9. 「カテゴリ」ツリーで、「ユニット・テスト」を展開します。

10. 「テスト・スイート」→「OK」をクリックします。

11. 「項目」リストで、「テスト・フィクスチャ」をダブルクリックします。

12. ウィザードを完了するとテスト・ケースが作成されます。
ウィザードによって作成されたクラスが、編集用に開かれます。

ウィザードを使用してテスト・フィクスチャを作成した場合、デフォルトではコンストラクタが指定されます。

13. 必要に応じてファイルを変更します。
特に、テスト・フィクスチャ・オブジェクトを初期化するコードをsetUp()メソッドに追加します。取得したリソースをすべてリリースするコードをtearDown()メソッドに追加します。

13.4.4 JunitのJDBCテスト・フィクスチャの作成方法

テスト・フィクスチャとは、既知の値を持つオブジェクトのセットで、テスト・ケースにデータを提供します。JDBCテスト・フィクスチャは、使用するテスト・ケースにデータベース接続を確立するコードを提供します。

JUnitのJDBCテスト・フィクスチャ・クラスを作成するには、次のようにします。

1. 「アプリケーション」ウィンドウで、プロジェクトを選択します。

2. 「ファイル」→「新規」→「ギャラリから」を選択します。

3. 「カテゴリ」ツリーで「一般」を開き、「ユニット・テスト」(JUnit)を選択します。

4. 「項目」リストで、「JDBCテスト・フィクスチャ」をダブルクリックします。

5. ダイアログを完了するとテスト・フィクスチャ・クラスが作成されます。
作成されたクラスが、編集用に開かれます。

6. 必要に応じてファイルを変更します。具体的には、テスト・フィクスチャ・オブジェクトを初期化するコードをsetUp()メソッドに追加し、取得されたリソースを解放するコードをtearDown()メソッドに追加します。

13.4.5 JUnitテスト・ケースの作成

テスト・ケース・クラスには、JUnitのアサーションを呼び出してテストを実行する1つ以上のメソッドがあります。例13-1に、JUnit 3.xでの典型的なテスト・ケースを示します。この例では、テスト対象のメソッドにテスト・フィクスチャ・データを渡してから、その結果を既知の値と比較し、予測どおりかどうかを確認しています。

例13-1 JUnit 3.xのテスト・ケース

public void testCountChars()
{
int expected = 4;
int actual = fixture1.countChars('a');
assertEquals(expected, actual);
}

例13-2 JUnit 4のテスト・ケース

@Test
public void testCountChars()
{
int expected = 4;
int actual = fixture1.countChars('a');
Assert.assertEquals(expected, actual);
}

例13-2に示したテスト・ケースでは、countChars()がテスト対象であり、テストの結果をassertEquals()でチェックしています。これは、JUnit Assertクラスで定義されているアサーション・メソッドの一種です。テスト・フィクスチャfixture1の状態はsetUp()メソッドで確立され、このメソッドは例13-3で示すようにテスト・ケースの呼出しより前に呼び出されていました。

例13-3 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. ウィザードを完了するとテスト・フィクスチャ・クラスが作成されます。ウィザードによって作成されたクラスが、編集用に開かれます。

13.4.6 JUnitテスト・スイートの作成

テスト・スイートは、テスト・ケースを呼び出すクラスです。

「JUnitテスト・スイート」ウィザードには、main()メソッドと、TestRunnerクラスへのコールを挿入するオプションがあります。「JUnit TestRunner」ログ・ウィンドウが開き、テスト結果が表示されます。別のテスト・ランナーを使用する場合には、メソッドを編集します。

例13-4に示したJUnit 3.xテスト・スイートでは、suite()メソッドによってTestSuiteインスタンスが作成され、それにテスト・ケースが追加されます。テスト・ケースを追加または削除する場合には、このメソッドを編集します。

例13-4 JUnit 3.xのテスト・スイート

public class AllTests {
public static Test suite() {
TestSuite suite;
suite = new TestSuite("project1.AllTests");
return suite;    }

例13-5に示したJUnit 4テスト・スイートでは、テスト・ケース・クラスは@Suiteおよび@RunWithの注釈を付けて記述されています。

例13-5 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()メソッドで、必要に応じてランナーの呼出しを置き換えます。

13.4.7 JUnitテスト・ケースの作成方法

JUnitテスト・ケースを作成する前に、テストされるプロジェクトの作成を完了している必要があります。

JUnitテスト・ケースを作成するには:

1. 「アプリケーション」ウィンドウで、テスト・ケースを作成するプロジェクトを右クリックし、「新規」をクリックします。

2. 「新規ギャラリ」で、「ユニット・テスト」、続いて「テスト・ケース」を選択して、「OK」をクリックします。

3. 「テスト・ケースの作成」ダイアログの「テストするクラスの選択」ページで、「テスト中のクラス」に入力するか、「参照」をクリックします。

4. 「クラス・ブラウザ」ダイアログで、テストするクラスを確認します。または、「クラス名を一致」フィールドに最初の文字を入力します。「一致するクラス」リストは識別しやすいようにフィルタ処理されます。
クラスを選択し、「OK」をクリックして、ダイアログを閉じます。「次へ」をクリックします。

5. テストする個別のメソッドを選択し、「次へ」をクリックします。

6. 「テスト・ケース・クラスの設定」ダイアログで、テスト・ケース、パッケージ、その拡張対象のクラスの名前を入力し、JUnitでスタブが作成される組込み機能のリストを選択します。「次へ」をクリックします。

7. 「テスト・フィクスチャの選択」ページで、テスト・ケースに追加するテスト・フィクスチャを選択するか、「参照」をクリックします。

8. テスト・ケースに追加するテスト・フィクスチャがすべてリスト中で選択されていることを確認し、「終了」をクリックします。

13.4.8 JUnitテスト・ケースにテストを追加する方法

メソッドに対するユニット・テストを、既存のJUnitテスト・ケース・クラスに追加できます。

JUnitテスト・ケース・クラスにテストを追加するには、次のようにします。

1. コード・エディタで、新しいユニット・テストを作成するメソッドを選択します。

2. メイン・メニューから「ソース」→「新規メソッドのテスト」を選択します。

3. 「既存のTestCaseクラスに追加」を選択します。

4. 「クラス名」ドロップダウン・ボックスから、または「参照」を使用して、新しいテストを追加するテスト・ケース・クラスを選択します。

5. 新しいテストをテスト・ケースに追加するには、「OK」をクリックします。

13.4.9ビジネス・コンポーネント・テスト・スイートの作成方法

作成されるテキスト・フィクスチャは、接続数を減らすシングルトン・クラスです。テスト・ケースごとに接続または切断する場合は、JUnit 4の注釈、@Beforeおよび@Afterを使用してテスト・ケースをカスタマイズします。

JUnit BC4Jテスト・スイート・ウィザードでは、アプリケーション・モジュールの各ビュー・オブジェクトに対してテストが生成されます。アプリケーション・モジュールがメソッドをエクスポートしていない場合、ウィザードによって、アプリケーション・モジュールそのもののテストも生成されます。生成されるビュー・オブジェクト・クラスの形式はview_objectVOTest.javaであり、形式がpackage.view.viewobjectVOのパッケージに収められます。この場合のpackageはアプリケーション・モジュール・パッケージです。生成されるアプリケーション・モジュール・テストの形式はapplication_moduleAMTest.javaであり、形式がpackage.applicationModuleのパッケージに配置されます。生成されるテスト・フィクスチャ・クラスの形式はapplicationmoduleAMFixture.javaであり、アプリケーション・モジュール・テストと同じパッケージに配置されます。

生成されるすべてのテスト・スイート・クラスの形式はAllapplicationmoduleTest.javaであり、アプリケーション・モジュールのパッケージ名と同じ名前でパッケージに配置されます。

各アプリケーション・モジュールまたはビュー・オブジェクト・テストについてテスト・ケースのXMLファイルも生成されます。このXMLファイルには、アプリケーション・モジュールまたはビュー・オブジェクト・テスト・ケースで定義されているテスト・メソッドが含まれます。重複が多くなりすぎる可能性があるため、ベース・クラス(ある場合)のテスト・メソッドは含まれません。

ビジネス・コンポーネント・テスト・スイートを作成するには:

1. メイン・メニューから、「ファイル」を選択し、「新規」を選択します。
ビジネス・コンポーネント・テスト用に別のプロジェクトを作成します。

2. 「新規ギャラリ」で、「一般」を展開し、「プロジェクト」、「Javaプロジェクト」の順に選択して、「OK」をクリックします。

3. 「Javaプロジェクトの作成」ウィザードの「プロジェクト名」ページで、テスト・プロジェクトの名前とディレクトリ・パスを入力し、「次へ」をクリックします。

4. プロジェクトのJava設定ページで、パッケージ名、プロジェクトのJavaソース・コードのディレクトリ、および出力クラス・ファイルが配置される出力ディレクトリを入力し、「終了」をクリックします。

5. 「アプリケーション」ウィンドウで、テストするアプリケーション・モジュールをダブルクリックします。

6. 概要エディタで、「Java」ナビゲーション・タブをクリックします。

7. 「Java」ページで、「Javaクラス」セクションの「編集」アイコンをクリックします。

8. 「Javaオプションの選択」ダイアログで「アプリケーション・モジュール・クラスの生成」を選択して、「OK」をクリックします。

9. 概要エディタの「Java」ページで、クラス・インタフェース・セクションの「編集」アイコンをクリックします。

10. 「クライアント・インタフェースの編集」ダイアログで、テストするメソッドを「選択済」ペインに移動して、「OK」をクリックします。

11. 「アプリケーション」ウィンドウで、作成したテスト・プロジェクトを右クリックして、「新規」を選択します。

12. 「新規ギャラリ」で、「一般」を展開し、「ユニット・テスト」、「ビジネス・コンポーネントのテスト・スイート」の順に選択して、「OK」をクリックします。

13. JUnit BC4Jテスト・スイート・ウィザードの「テストの構成」ページで次の値を選択し、「次へ」をクリックします。

- ビジネス・コンポーネント・プロジェクト: テストするアプリケーション・モジュールを含むプロジェクトを選択します。

- アプリケーション・モジュール: テストするアプリケーション・モジュールを選択します。

- 構成: ローカル・アプリケーション・モジュールまたは共有アプリケーション・モジュールを選択します。

- 「ベース・クラスのテスト」→「アプリケーション・モジュール拡張」: 様々なベース・クラスを指定できます。生成されるテスト・ケース・クラスはそのベース・クラスから拡張されます。このとき、ベース・クラスのすべてのpublic抽象メソッドの本体は単純なデフォルトの実装になります。

- 「ベース・クラスのテスト」→「ビュー・オブジェクト拡張」: ビュー・オブジェクトが拡張するクラスを指定できます。生成されるテスト・ケース・クラスはそのベース・クラスから拡張されます。このとき、ベース・クラスのすべてのpublic抽象メソッドの本体は単純なデフォルトの実装になります。

14. 「サマリー」ページで選択内容を確認して、「終了」をクリックします。

13.4.10 Business Componentsテスト・フィクスチャの作成方法

ビジネス・コンポーネントのテスト・スイートを作成すると、ビジネス・コンポーネントのテスト・フィクスチャも一緒に作成されます。また、ビジネス・コンポーネントのテスト・フィクスチャを個別に作成することもできます。

生成されるビュー・オブジェクト・クラスの形式はapplicationmoduleAMFixture.javaであり、形式がpackage.applicationModuleのパッケージに配置されます。この場合のpackageはアプリケーション・モジュール・パッケージです。

ビジネス・コンポーネント・テスト・フィクスチャを作成するには:

1. メイン・メニューから「ファイル」を選択し、[z]を選択します。
ビジネス・コンポーネント・テスト用に別のプロジェクトを作成します。

2. 「新規ギャラリ」で、「一般」を展開し、「プロジェクト」、「Javaプロジェクト」の順に選択して、「OK」をクリックします。

3. 「Javaプロジェクトの作成」ダイアログの「プロジェクト名」ページで、テスト・プロジェクトの名前とディレクトリ・パスを入力し、「次へ」をクリックします。

4. プロジェクトのJava設定ページで、パッケージ名、ソース・ディレクトリおよび出力ディレクトリを入力し、「終了」をクリックします。

5. 「アプリケーション」ウィンドウで、テストするアプリケーション・モジュールをダブルクリックします。

6. 概要エディタで「Java」ナビゲーション・タブをクリックし、「Javaクラス」セクションの「編集」アイコンをクリックします。

7. 「Javaオプションの選択」ダイアログで「アプリケーション・モジュール・クラスの生成」を選択して、「OK」をクリックします。

8. 概要エディタの「Java」ページで、クラス・インタフェース・セクションの「編集」アイコンをクリックします。

9. 「クライアント・インタフェースの編集」ダイアログで、テストするメソッドを「選択済」ペインに移動して、「OK」をクリックします。

10. 「アプリケーション」ウィンドウで、作成したテスト・プロジェクトを右クリックして、「新規」を選択します。

11. 「新規ギャラリ」で、「一般」を展開し、「ユニット・テスト」、「ビジネス・コンポーネントのテスト・フィクスチャ」の順に選択して、「OK」をクリックします。

12. JUnit BC4Jテスト・フィクスチャ・ウィザードの「テストの構成」ページで次の値を選択し、「次へ」をクリックします。

- ビジネス・コンポーネント・プロジェクト: テストするアプリケーション・モジュールを含むプロジェクトを選択します。

- アプリケーション・モジュール: テストするアプリケーション・モジュールを選択します。

- 構成: ローカル・アプリケーション・モジュールまたは共有アプリケーション・モジュールを選択します。

13. 「サマリー」ページでテスト・フィクスチャ・クラスを確認して、「終了」をクリックします。

13.4.11 プロジェクトのすべてのテスト・ケースでテスト・スイートを更新する方法

プロジェクトのすべてのテスト・ケースでテスト・スイートを更新します。

テスト・スイートを更新するには、次のようにします。

1. suite()メソッドを持つクラスで、メイン・メニューから「ソース」→「テスト・スイートのリフレッシュ」を選択します。

2. テスト・ケースのリストにあるすべての項目がチェックされていることを確認してください。

3. テスト・スイートを更新するには「OK」をクリックします。

13.4.12 JUnitテスト・スイートの実行方法

テスト・スイートが正常にコンパイルされたら、実行できます。

JUnitテスト・スイートを実行するには、次のようにします。

1. 「アプリケーション」ウィンドウで、テスト・スイート・クラスを選択します。

2. 右クリックして「実行」を選択します。
テストが実行され、テスト・ランナーによって結果が表示されます。

14 Javaプログラムの実行およびデバッグ

この章では、JDeveloperで提供されるツールや機能を使用して、Javaプログラムを実行およびデバッグする方法について説明します。デバッグとは、プログラム内のエラーを検出して修正するプロセスです。JDeveloperに統合されているデバッガでは、Javaアプリケーション、アプレット、サーブレット、JavaServer Pages (JSP)およびEnterprise JavaBeans (EJB)をデバッグできます。JDeveloperでは分散デバッグがサポートされているため、同一のマシンまたは別のマシンにある1つまたは複数のオブジェクトをデバッグできます。

JDeveloperでは、コード内の問題のある領域を特定できる複数のデバッグ・ウィンドウ(たとえば、ブレークポイント、ヒープ、スタックなど)が用意されています。さらに、様々なJDeveloperのデバッガおよびランナー・アイコンがJDeveloperユーザー・インタフェースの様々な領域で使用可能であり、これらについて説明します。

この章には次の項が含まれます:

- 第14.1項「Javaプログラムの実行およびデバッグについて」

- 第14.2項「プロセス・ウィンドウの理解」

- 第14.3項「プロジェクトを実行用に構成」

- 第14.6項「アプレットの実行」

- 第14.4項「プロジェクトまたはファイルの実行方法」

- 第14.7項「Javaプログラムのデバッグ」

- 第14.8項「デバッガ・ウィンドウの使用方法」

- 第14.9項「ブレークポイントの管理」

- 第14.10項「デバッガのウィンドウでプログラムの状態を確認する」

- 第14.11項「Javaプログラムのリモート・デバッグ」

14.1 Javaプログラムの実行およびデバッグについて

JDeveloperには、Javaプログラムの実行方法を監視および制御するいくつかの方法があります。Javaプログラムを実行するとき、JDeveloperは実行、デバッグおよびプロファイリングされるプロセスを常時追跡します。また、JDeveloperでは、Java、JSPおよびサーブレット・ソース・ファイルのリモート・デバッグとローカル・デバッグを提供しています。

JDeveloperでは、ローカルおよびリモートの2種類のデバッグをサポートしています。ローカル・デバッグ・セッションを開始するには、ソース・ファイルにブレークポイントを設定し、デバッガを開始します。リモート・デバッグでは、2つのJDeveloperプロセスが必要です。1つはデバッガ・プロセス、もう1つはデバッグ対象プロセスです。デバッグ対象プロセスは異なるプラットフォームに存在している場合があります。デバッグ対象プロセスが開始し、デバッガ・プロセスがそのデバッグ対象プロセスにアタッチされた後は、リモート・デバッグとローカル・デバッグの動作は似ています。

14.2 プロセス・ウィンドウの理解

「プロセス」ウィンドウは、実行、デバッグ、プロファイリングが行われるプロセスを追跡します。このような複数のプロセスが同時にアクティブになっている場合、「プロセス」ウィンドウが自動的に表示されます。プロセスが完了すると、そのプロセスは「プロセス」ウィンドウから自動的に削除されます。

- 「プロセス」ウィンドウを開くには、メイン・メニューから「ウィンドウ」→「プロセス」を選択します。

- 「プロセス」ウィンドウでプロセスを終了するには、「プロセス」ウィンドウ内を右クリックして、ポップアップ・メニューから「終了」をクリックします。

- 「実行ログ」を表示するには、「プロセス」ウィンドウでプロセスを右クリックして、ポップアップ・メニューから「ログの表示」を選択します。

14.3 プロジェクトを実行用に構成

ターゲット、起動オプション、およびデバッガ、ロガー、プロファイラの動作など、プログラムの実行方法を制御する設定が実行構成にまとめられます。

プロジェクトには、プロジェクトの特定のファセットや開発プロセスのフェーズ用に設定された実行構成が複数含まれています。実行構成をプロジェクトにバインドし、プロジェクトで作業するすべてのユーザーに使用可能とするか、ユーザー固有のカスタム構成とすることができます。

注意:

JDeveloperから実行されるJavaプログラム(たとえば、Oracle ADFモデル・テスターなど)は、JDeveloper IDEのJavaオプションを継承していません。したがって、通常は、実行構成で使用する実行/デバッグのJavaオプションを設定する必要があります。

14.3.1 実行構成の選択方法

新規プロジェクトごとにデフォルトの実行構成が作成されます。実行構成、または作成したその他の構成を選択して、選択したプロジェクトを実行することができます。

実行構成を選択する手順は次のとおりです。

1. メイン・メニューから「アプリケーション」→「プロジェクト・プロパティ」を選択します。

2. 「実行/デバッグ」を選択します。

注意:

以前に「実行/デバッグ/プロファイル」ページにアクセスしたことがない場合は、「起動」というボタンが表示されます。このボタンをクリックして、「実行/デバッグ/プロファイル」ページにアクセスします。

3. 「実行構成」リストで、実行構成を選択します。

14.3.2 実行構成の作成方法

新しい実行構成を作成するには、既存のもの(たとえば、Default)をコピーします。その後で、新しい構成用に設定を変更します。

実行構成を作成するには、次のようにします。

1. 第14.3.1項「実行構成の選択方法」で説明するように、実行構成を選択します。

2. 「新規」をクリックします。

3. 「名前」ボックスで、新しい実行構成の名前を入力します。

4. 「設定のコピー元」ドロップダウン・ボックスで、コピー元の既存の実行構成を選択します。

5. コピー元と同じ設定で新しい実行構成を作成するには、「OK」をクリックします。

6. 新しい実行構成を異なる設定で作成するには、新しい設定を選択して、「OK」をクリックします。

14.4 プロジェクトまたはファイルの実行方法

プロジェクトまたはファイルのコンパイルが終了したら、それを実行できます。プロジェクトまたはファイルのビルドの詳細は、第12章「Javaプロジェクトのビルド」を参照してください。実行中に発生する可能性のある警告またはエラー・メッセージがログ・ウィンドウに表示されます。

プロジェクトまたはファイルを実行するには、次の手順に従います。

1. 「アプリケーション」ウィンドウで、実行する必要のあるプロジェクトまたはファイルを選択します。

2. 次のいずれかの方法でアプリケーションを実行します。

- プロジェクトの場合のみ、メイン・メニューから「実行」→「実行」→「<target>」を選択します。

- 右クリックして、ポップアップ・メニューから「実行」を選択します。

- ツールバーの「実行」アイコンをクリックします。

- [F11]キーを押します。

Javaアプリケーションのメイン・メソッドが起動します。

14.4.1 コマンドラインからのプロジェクトの実行方法

オペレーティング・システムのコマンドラインからプロジェクトを実行する手順は次のとおりです。

- プロジェクトはスタンドアロン実行可能プロジェクトである必要があります。

- アプリケーションのmain()メソッドを含むクラス・ファイルを選択すること

アプリケーションを起動するには、次のように入力します。

次のように入力します。

java -cp <jdev_install>\jdeveloper\jdev\mywork\Workspace1\Project1\classes package1.Application1

コマンドラインから実行可能JARファイルを起動するには、次のように入力します。

次のように入力します。

java -jar <application>.jar

ここで、<application>は使用しているJARファイルの名前です。

14.4.2 Java Virtual Machineの変更方法

オペレーティング・システムの要件によって、開発対象のJava Virtual Machine (VM)を変更する必要がある場合があります。たとえば、クライアント側アプリケーションの場合は、HotSpot Client VMを使用し、長時間実行のサーバー・アプリケーションを実行するにはServer VMを使用します。

Java Virtual Machineを変更するには、次のようにします。

1. 「アプリケーション」ウィンドウでプロジェクトを右クリックし、コンテキスト・メニューから「プロジェクト・プロパティ」を選択します。

2. 「実行/デバッグ/プロファイル」ページを開きます。

3. 実行構成を選択し、「編集」をクリックします。
「実行構成の編集」ダイアログが表示されます。

4. 「起動設定」ページの「仮想マシン」リスト・ボックスで、使用可能なオプションを選択します。
プロジェクトの実行およびデバッグに、選択したJVMが使用されます。

5. 詳細は、「ヘルプ」をクリックしてください。

14.5 プログラム用クラスパスの設定

コマンドラインから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環境変数を設定する方法を選択できます。

14.5.1 CLASSPATH環境変数の設定(java.exeの場合)

Java2 Standard Edition (J2SE)にはjava.exeファイルが含まれています。これは開発ツールとして使用するためのファイルで、Javaプログラムとともに配布するためのライセンスは供与されていません。コマンド・プロンプト画面からJavaアプリケーションをテストする際に使用します。

コマンド・プロンプト画面からJavaアプリケーションを実行するには、プログラムの実行に必要なすべてのクラスが含まれるように、システム環境変数CLASSPATHを定義する必要があります。これには、プログラムで使用される、JDeveloperによって提供されるすべてのライブラリ・クラスが含まれます。

14.5.2 JDeveloperライブラリのCLASSPATHの使用方法

JDeveloperには、Javaプログラムの生成に役立つ数百のライブラリ・クラスが付属しています。クラスは、J2SE、サード・パーティの開発者、およびオラクル社から提供されます。各ライブラリは、アップグレードを容易に行うために個別に管理されます。このため、JDeveloperで作成するプログラムをコマンド・プロンプト画面から実行するには、クラスパスに多数のアーカイブ・ファイルを含める必要があります。

プロジェクトで使用される各ライブラリへのパスのみをリストに含めることをお薦めします。プロジェクトで使用されないパスをリストに含めた場合でもプログラムは起動しますが、パフォーマンス上の理由から、不要なライブラリはすべて排除してください。

注意:

パスの1つにスペースが含まれる場合でも、クラスパスに引用符を使用しないでください。

14.5.3 プロジェクトを含めるようにCLASSPATHを設定する

出力パスにデフォルトのディレクトリを使用した場合、クラスパスに次のディレクトリを追加し、java.exeを使用してJavaアプリケーションをテストできます。

C:\<jdev_install>\jdeveloper\jdev\mywork\Workspace1\Project1\classes

この変数を設定することで、java.exeを使用して、出力ディレクトリmyworkからアプリケーションを実行できます。

Javaプログラムを他のディレクトリにデプロイした場合、アプリケーション・パッケージの親ディレクトリへのパスを追加する必要があります。

CLASSPATH変数は長い文字列であるため、入力を誤る可能性があります。CLASSPATHをシステム環境変数として設定すると、入力時間と入力ミスを減らすことができます。

14.5.4 CLASSPATHパラメータの設定(java.exeの場合)

Javaランタイム・エンジン(java.exe)では、CLASSPATH環境変数は使用しません。CLASSPATHを、java.exeコマンドのパラメータとして使用する必要があります。コマンドの書式は次のとおりです。

java -cp <classpath> package.Application

classpathは、Javaプログラムおよびプログラムで使用される依存クラスへの完全なCLASSPATHです。CLASSPATHディレクトリ名にスペースが含まれない場合、引用符は使用しなくてもかまいません。

14.6 アプレットの実行

JDeveloperでは、アプレット・ビューアまたは統合WebLogic Serverインスタンスでアプレットを実行できます。アプレット・ビューアを使用すると、Webブラウザを起動せずにアプレットを実行できます。ブラウザでアプレットを実行する場合は、統合WebLogic Serverインスタンスで実行できます。

アプレットを作成し、HTMLファイルでクラスパスが正しく設定されていることを確認した後、「実行」コマンドを実行して、アプレットを実行できます。

アプレットを実行する手順は次のとおりです。

1. 「アプリケーション」ウィンドウで、<APPLET>タグが含まれているHTMLファイルを選択します。

2. HTMLファイルを右クリックして、「実行」を選択します。

3. ダイアログで、ターゲット・アプレットを起動する方法を選択し、「OK」をクリックします。

- アプレット・ビューア内: アプレット・ビューアからアプレットが起動されます。

- サーバー・インスタンス内: 統合サーバーが起動し、アプレットがサーバーで実行されます。

14.6.1 引数の格納にHTMLファイルを使用

アプレットはHTMLページで実行され、このページから表示サイズおよびその他のパラメータを取得します。アプレットをJDeveloperで実行するには、適切な<APPLET>タグを含むHTMLファイルを指定する必要があります。

大文字と小文字は、パラメータ・タグでは区別されませんが、パラメータ名では区別されます。

<APPLET CODE="foo.class" WIDTH=200 HEIGHT=20> </APPLET>

<APPLET>タグと</APPLET>タグの間に次のような<PARAM>タグを挿入して、パラメータをアプレットに渡すこともできます。

<PARAM NAME=foo VALUE=true>

例14-1に、パラメータを渡す際に使用するHTMLフラグメントを示します。

例14-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>
...

14.6.2 <APPLET>タグへのCLASSPATHパラメータの埋込み

アプレットを実行する場合、ブラウザによって、ホストの*.htmlファイルの<APPLET>タグにARCHIVEおよびCODEBASEパラメータで指定するCLASSPATHが提供されます。

CODEBASEパラメータでは、インターネット・ブラウザがクラス・ファイルを検索するルート・ディレクトリを設定します。クラスがアプレットをコールするHTMLページと同じディレクトリに格納されている場合、CODEBASEパラメータを省略できます。異なるディレクトリに格納されている場合は、HTMLファイルからCODEBASEディレクトリの場所までの絶対パスまたは相対パスを使用します。ディレクトリを示す場合、円記号(\)ではなくフォワード・スラッシュ(/)を使用します。

ARCHIVEパラメータでは、アプリケーションで使用するCLASSPATHと同様、プログラムおよびプログラムをサポートするライブラリ・ファイルを含むJARファイルの場所と名前のリストを指定します。これらには3つの重要な違いがあります。

- Javaアーカイブ・ファイル名は、セミコロン(;)ではなくカンマ(,)で区切られます。

- Javaアーカイブ・ファイルがCODEBASEのサブディレクトリに格納されている場合、ディレクトリを示すには、円記号(¥¥)ではなくフォワード・スラッシュ(/)を使用します。

- アプレットのJavaセキュリティ・モデルに対する制約により、ARCHIVEパラメータが参照するクラスは、CODEBASEディレクトリのサブディレクトリにのみ置くことができます。つまり、親ディレクトリ(./)を使用してアーカイブ・ファイルの場所を設定しようとすると、セキュリティ違反エラーが発生します。

14.7 Javaプログラムのデバッグ

デバッガにより、コードを調べて問題のある領域を特定し修正するための多くの機能が提供されます。コードの分析には、ローカルとリモートの2種類のデバッグが可能です。

ローカル・デバッグ・セッションを開始するには、ソース・ファイルにブレークポイントを設定し、デバッガを開始します。JDeveloperでサーブレットなどのアプリケーションをデバッグする際は、実行フローを完全に制御して、変数の値を表示および変更できます。また、クラス・インスタンスのカウント数とメモリー使用量を監視することによって、アプリケーションのパフォーマンスを調べることができます。JDeveloperは、アプリケーションから他のソース・ファイルへのコールに従うか、またはソース・ファイルが使用できない場合はスタブ・クラスを生成します。

リモート・デバッグでは、2つのJDeveloperプロセスが必要です。1つはデバッガ・プロセス、もう1つはデバッグ対象プロセスです。デバッグ対象プロセスは異なるプラットフォームに存在している場合があります。デバッグ対象プロセスが開始し、デバッガ・プロセスがそのデバッグ対象プロセスにアタッチされた後は、リモート・デバッグとローカル・デバッグの動作は似ています。

表14-1では、コード内で問題のある領域を効率的に特定できるようにする特殊な目的のデバッグ・ウィンドウを示しています。

表14-1 デバッグ・ウィンドウ

ウィンドウ

説明

ブレークポイント

現在のワークスペースとプロジェクトのブレークポイントを表示します。詳細は、第14.8.1項「「ブレークポイント」ウィンドウの使用方法」を参照してください。

スマート・データ

実行中のコードで使用されているデータを表示します。詳細は、第14.8.2項「「スマート・データ」ウィンドウの使用方法」を参照してください。

データ

現在のコンテキストの引数とローカル変数を表示します。「プロジェクト・プロパティ」ダイアログの「コンパイラ」ページで、「完全なデバッグ情報」が選択されている必要があります。詳細は、第14.8.3項「「データ」ウィンドウの使用方法」を参照してください。

監視

フィールドまたは変数に対して作成された監視を表示します。監視式は、現在のコンテキストに応じて式を評価します。新しいコンテキストに移動すると、その新しいコンテキストに対して式が再評価されます。詳細は、第14.8.4項「「監視式」ウィンドウの使用方法」を参照してください。

インスペクタ

1つのデータ項目を専用のフローティング・ウィンドウに表示します。インスペクタは、現在のコンテキストに応じて式を評価します。詳細は、第14.8.5項「「インスペクタ」ウィンドウの使用方法」を参照してください。

ヒープ

デバッグ中のプログラムのヒープに関する情報を表示します。プログラムのメモリー・リークの検出に役立ちます。詳細は、第14.8.6項「「ヒープ」ウィンドウの使用方法」を参照してください。

スタック

現在のスレッドのコール・スタックを表示します。詳細は、第14.8.7項「「スタック」ウィンドウの使用方法」を参照してください。

クラス

各クラスの名前およびパッケージなど、アプリケーションが実行される際にロードされたクラスに関する情報を表示します。デバッガによって、各クラスのライブ・インスタンスの数、およびこれらのインスタンスで消費されるメモリーの量も表示できます。詳細は、第14.8.8項「「クラス」ウィンドウの使用方法」を参照してください。

モニター

アプリケーションのアクティブなモニターに関する情報に加えて、それらのモニターにアクセスするスレッドのステータス情報も表示します。このウィンドウは、デッドロックや他のスレッドの同期化に関する問題を調べる場合に役立ちます。詳細は、第14.8.9項「「モニター」ウィンドウの使用方法」を参照してください。

スレッド

スレッドおよびスレッド・グループを表示し、現在のスレッドを強調表示します。また、各スレッドの名前、ステータス、優先度およびグループを表示します。詳細は、第14.8.10項「「スレッド」ウィンドウの使用方法」を参照してください。

14.7.1 デバッガのアイコンの理解

表14-2は、JDeveloperのデバッガおよびランナー・アイコンを示しています。これらのアイコンは、「デバッガ」ウィンドウおよび「ログ」ウィンドウなど、JDeveloperのユーザー・インタフェースの各領域で使用されます。

表14-2 デバッガおよびランナー・アイコン

アイコン

名前

説明

配列

JDeveloperのすべてのデータ関連ウィンドウの配列クラスを表します。

ブレークポイントの追加

ブレークポイントの作成に使用する「ブレークポイント」ツールバー・ボタンを表します。

「ブレークポイント」メニュー

「表示」→「デバッガ」→「ブレークポイント」メニュー・オプション、または「ブレークポイント」ウィンドウのタブ・アイコンを表します。

クラス

「表示」→「デバッガ」→「クラス」メニュー・オプション、「クラス」ウィンドウのタブ・アイコン、および「クラス」ウィンドウのクラスを表します(クラスのトレースが無効の場合はグレー表示)。

行番号表がない「クラス」

「クラス」ウィンドウに表示されます。行番号表がないクラス(曖昧なクラス)を表します。

現在の実行ポイント

ソース・エディタのマージンに表示される現在の実行ポイントを表します。「実行」→「実行中の行を表示」メニュー・オプションを選択して表示できます。

現在のスレッド

スレッド・ウィンドウの現在のスレッドを表します。

データ

「表示」→「デバッガ」→「データ」メニュー・オプション、「表示」→「デバッガ」→「スマート・データ」メニュー・オプション、および「データ」ウィンドウと「スマート・データ」ウィンドウのタブ・アイコンを表します。

デバッグ([Shift]+[F9])

「実行」→「<project_name>のデバッグ」メニュー・オプション、「デバッグ」ツールバー・ボタン、「プロセス」ウィンドウのプロセス・フォルダに含まれるデバッグ・プロセス、デバッグ・プロセスのログ・ページ、デバッグ・レイアウト、「リモート・デバッグとプロジェクトのプロファイリング」ウィザードを表します。

デバッグ・リスナー・ノード

「プロセス」ウィンドウでdebug listenerノードを表します。

無効なブレークポイント

ソース・エディタのマージンおよび「ブレークポイント」ウィンドウ内の無効なブレークポイントを表します。また、このアイコンは、ブレークポイントを無効にする「ブレークポイント」ツールバー・ボタンを表します。

ブレークポイントの削除

ブレークポイントを削除するための「ブレークポイント」ツールバー・ボタンを表します。

ブレークポイントの編集

選択したブレークポイントの編集に使用できる「ブレークポイント」ツールバー・ボタンを表します。

ガベージ・コレクション

「実行」→「ガベージ・コレクション」メニュー・オプション、およびクリック可能な「ガベージ・コレクション」ツールバー・ボタンを表します。

インタフェース

「クラス」ウィンドウのインタフェースを表します。

ヒープ

「表示」→「デバッガ」→「ヒープ」メニュー・オプション、および「ヒープ」ウィンドウのタブ・アイコンを表します。

「ヒープ」フォルダ

ヒープ・ウィンドウのフォルダを表します。

方法

「スタック」ウィンドウのメソッドを表します。

モニター

「表示」→「デバッガ」→「モニター」メニュー・オプション、および「モニター」ウィンドウのタブ・アイコンを表します。

オブジェクト

JDeveloperのすべてのデータ関連ウィンドウのオブジェクトを表します。

パッケージ

「クラス」ウィンドウのパッケージを表します(パッケージのトレースが無効な場合はグレー表示)

プログラムの停止

「実行」→「プログラムの停止」メニュー・オプション、およびクリック可能な「プログラムの停止」ツールバー・ボタンを表します。

プリミティブ

JDeveloperのすべてのデータ関連ウィンドウの基本項目を表します。

再開

「実行」→「再開」メニュー・オプション、およびクリック可能な「再開」ツールバー・ボタンを表します。

実行

「プロセス」ウィンドウで、実行中プロセスの場合はログ・ページで、および選択したノードを実行する場合はツールバーで、実行中のプロセスを表します。

カーソルまで実行([F4])

「実行」→「カーソルまで実行」メニュー・オプションを表します。指定した場所までコードを実行します。

スタック

「表示」→「デバッガ」→「スタック」メニュー・オプション、および「スタック」ウィンドウのタブ・アイコンを表します。

スタック・フォルダ

「データ」ウィンドウのstaticフォルダを表します。

メソッドの最後まで実行

「実行」→「メソッドの最後まで実行」メニュー・オプションおよびクリック可能な「メソッドの最後まで実行」ツールバー・ボタンを表します。

トレース実行([F7])

「実行」→「トレース実行」メニュー・オプション、およびクリック可能な「トレース実行」ツールバー・ボタンを表します。

ステップ・アウト([Shift]+[F7])

「実行」→「ステップ・アウト」メニュー・オプション、およびクリック可能な「ステップ・アウト」ツールバー・ボタンを表します。

ステップ実行

「実行」→「ステップ実行」メニュー・オプション、およびクリック可能な「ステップ実行」ツールバー・ボタンを表します。

終了

クリックして、アプリケーションのデバッグを停止できる終了ツールバー・ボタンを表します。

スレッド

「表示」→「デバッガ」→「スレッド」メニュー・オプション、および「スレッド」ウィンドウのタブ・アイコンを表します。

スレッド

「表示」→「デバッガ」→「スレッド」メニュー・オプション、および「スレッド」ウィンドウのタブ・アイコンを表します。

スレッド・グループ

スレッド・ウィンドウのスレッド・グループを表します。

未確認ブレークポイント

ソース・エディタのマージンおよび「ブレークポイント」ウィンドウの未確認ブレークポイントを表します。

確認済ブレークポイント

ソース・エディタのマージンで検証済ブレークポイントを表します。

14.7.2 統合WebLogic Serverにデプロイされたアプリケーションのデバッグ

統合WebLogic Serverにデプロイされたアプリケーションをデバッグする際、ファイルに変更を加えることができ、その変更は実行中のアプリケーションに反映されます。その際にアプリケーションを停止したり再デプロイする必要はありません。

- JSFファイルの変更
変更したページを現在表示している場合は、ブラウザを保存してリフレッシュします。または、ページをまだ表示していない場合は、そのページに移動します。加えられたばかりの変更がページに反映されます。

- 変更を保存して再コンパイルします。変更されたコードが次に実行されるときに、アプリケーションを再起動することなく変更を確認できます。

ブレークポイントで停止したときには、次の操作を実行できます。

- 現在停止しているメソッドを含め、現在停止しているクラスを変更します。

- エディタを右クリックして、個別のクラスを再ビルドします。

- 「スタック」タブを選択します(このタブは、デフォルトでは、「アプリケーション」ウィンドウで「構造」タブに分類されています)。スタックの最上部に、停止しているメソッドが廃止されたことが表示されます。

- 前のメソッドを右クリックして、「ここに戻る」メニュー項目を選択します。廃止されたメソッドを呼び出したコードにカーソルが再配置されます。

実行を再開すると、クラスまたはメソッドに加えられた変更が反映されます。

注意:

クラスに対してプライベートなコードのみを変更できます。再コンパイル後にコンソール出力を確認します。出力により、再コンパイルされたコードが実行時に使用可能かどうかが明確になります。

14.7.3 JDeveloperでのプロジェクトのデバッグ方法

「データ」ウィンドウで引数やローカル変数を確認するなど、デバッガ機能の一部を使用するためには、先にデバッグ情報付きでコードをコンパイルする必要があります。これによって、アプリケーションのデバッグとテスト時に時間が節約されます。

ブレークポイントを設定し、コードをステップ実行するには、次のようにします。

1. ソース・エディタで文の左マージンをクリックして、実行可能文にブレークポイントを設定します。詳細は、第14.9項「ブレークポイントの管理」を参照してください。
未確認のブレークポイントのアイコンが左マージンに表示されます。

2. 「実行」→「[filename.java]のデバッグ」を選択します。
クラスが実行され、最初のブレークポイントで停止します。

3. ツールバーから、「トレース実行」をクリックしてメソッド・コールをトレース実行するか、「ステップ実行」をクリックしてメソッド・コールをステップ実行します。

4. 「スタック」ウィンドウで、プログラムを現在の状態に導いた一連のメソッド・コールを調べます。

5. ソース・エディタに関連ソース・コードを表示するには、メソッドをダブルクリックします。

6. 「スマート・データ」ウィンドウと「データ」ウィンドウで、引数と変数を調べます。

7. 「スレッド」ウィンドウを表示して、プログラムの他のスレッドのステータスを調べます。

14.7.4 編集および再コンパイル方法

Java Hotswap機能を使用すると、デバッグ・セッション中のソースの編集および再コンパイルが可能になり、クラス・ファイル内の新しいコードがデバッガで「ホットスワップ」されます。デバッグ・セッションを明確に終了する必要はありません。デバッグ・セッションを続行でき、次回の実行で新しいコードに到達したときに、そのコードが使用されます。

14.7.5 ADFコンポーネントのデバッグ方法

JDeveloperでは、ADF宣言デバッガを使用してブレークポイントに対するデバッグを実行できます。エラーを簡単に特定できない場合は、JDeveloperでADF宣言デバッガを使用してブレークポイントを設定できます。ブレークポイントに達すると、アプリケーションの実行が一時停止され、Oracle ADFバインディング・コンテナの作業対象データを調べて、予測されるデータと比較することができます。ブレークポイントのタイプによっては、ステップ機能を使用して、1つのブレークポイントから別のブレークポイントに移動できます。

表14-3では、ADFコンポーネントのデバッグに使用できるウィンドウを示しています。

表14-3 ADFコンポーネントのデバッグ・ウィンドウ

ウィンドウ

説明

ADFデータ

アプリケーションがブレークポイントで一時停止すると、「ADF構造」ウィンドウでの選択内容に基づいて、関連データを表示します。詳細は、第14.8.3項「「データ」ウィンドウの使用方法」を参照してください。

ELエバリュエータ

デバッグ・セッション中にブレークポイントに達したときにEL式を評価します。JSFアプリケーションのみがELエバリュエータを使用できます。

ADF構造

ブレークポイントでアプリケーションが停止すると、ここにADFランタイム・オブジェクトとその関係のツリー構造を表示します。詳細は、第3.11.6項「「構造」ウィンドウ」を参照してください。

各デバッガ・ウィンドウに表示する情報のタイプを制御できます。表示する列など、各ウィンドウで使用できるオプションを確認するには、ウィンドウを右クリックして、ポップアップ・メニューから「設定」を選択します。またはメイン・メニューから「ツール」→「設定」を選択し、「デバッガ」ノードを展開して、各デバッガ・ウィンドウの設定ページを表示することもできます。また、デバッグ情報をテキスト出力ファイルまたはHTML出力ファイルとして保存することもできます。詳細は、第14.7.9項「デバッグ情報をファイルにエクスポートする方法」を参照してください。

JDeveloperデバッガを使用してプログラムの実行を制御するには、次のようにします。

1. ブレークポイントまで実行します。詳細は、第14.9項「ブレークポイントの管理」を参照してください。
ブレークポイントは、そこまで到達したときプログラムの実行が一時停止するトリガーです。これを利用して、プログラム変数の一部または全部の値を調べることができます。プログラムの実行中にブレークポイントに達すると、プログラムは一時休止し、デバッガのソース・エディタにブレークポイントを含む行が表示されます。

2. 1つのメソッドをトレース実行したり、1つのプログラム文を一度に実行したりすることが可能です。詳細は、第14.7.15項「メソッドのトレース実行方法」を参照してください。
実行ポイントがメソッドのコール上にあるときに「トレース実行」コマンドを選択すると、そのメソッドがトレース実行され、実行ポイントはメソッドの最初の文上に置かれます。

3. メソッドをステップ実行します。詳細は、第14.7.16項「メソッドのステップ実行方法」を参照してください。
実行ポイントがメソッド・コール上にあるときに「ステップ実行」コマンドを発行すると、デバッガはトレース実行するかわりに、停止せずにメソッドを実行します。プログラム文は、一度に実行されます。

4. カーソル位置まで実行します。詳細は、第14.7.20項「カーソル位置まで実行する方法」を参照してください。
これを利用すると、シングル・ステップ実行やブレークポイントの設定を必要とせずにプログラム中の特定の場所まで進むことができます。

5. デバッガを一時停止して再開します。詳細は、第14.7.21項「デバッガの一時停止および再開方法」を参照してください。
デバッガでプログラムを実行中、プログラムを一時休止できます。その後、デバッガを使用して、プログラムのこの部分に関して状態を確認できます。プログラムの該当部分の確認を終了すると、プログラムの実行を継続できます。

6. デバッグ・セッションを終了します。詳細は、第14.7.22項「デバッグ・セッションの終了方法」を参照してください。

終了すると、プログラム値を変更して、プログラム実行中に不具合の仮修正をテストできます。変更によってプログラムのエラーが修正されたことを確認した場合、デバッグ・セッションを終了し、プログラム・コードを修正した後、プログラムを再コンパイルして修正を確定します。

14.7.6 プロジェクトをデバッグ用に設定する方法

JDeveloperでは、パッケージおよびクラスを有効または無効にしたり、リモート・デバッグ・オプションを設定するなど、プログラムのデバッグ方法を制御できます。

JDeveloperでデバッガおよびリモート・デバッガのオプションを設定するには、次のようにします。

1. 「アプリケーション」→「デフォルト・プロジェクト・プロパティ」(すべてのプロジェクトに適用されるプリファレンスを設定するため)を選択します。

2. 「アプリケーション」→「プロジェクト・プロパティ」(現在のプロジェクトのみに適用されるプリファレンスを設定するため)を選択します。

3. 「実行/デバッグ」ノードを選択します。

4. 実行構成を選択します。詳細は、第14.3項「プロジェクトを実行用に構成」を参照してください。

5. 「編集」をクリックします。

6. 「ツール設定」→「デバッガ」を選択します。

7. 「デバッガ」ページおよび「リモート」ページでオプションを設定します。

8. 終了したら、「OK」をクリックします。

14.7.7 デバッガ開始オプションの設定方法

デバッガ開始オプションを設定することで、新しいデバッグ・セッション開始時の、デバッガの動作を指定できます。具体的には、ブレークポイントに達するまでデバッガを実行させるか、もしくはプロジェクトのコード(たとえばアプリケーションのメイン・メソッドの先頭)に達した時点でデバッガを停止させるかを指定します。

デバッガ開始オプションを設定するには、次のようにします。

1. メイン・メニューから「ツール」→「設定」→「デバッガ」を選択します。

2. 「デバッグの開始オプション」を選択します。

表14-4 デバッグの開始オプション

オプション

説明

ブレークポイントが発生するまで実行

デバッグを開始すると、デバッガによって、デバッグ対象のプログラムがブレークポイントに達するまで実行されます。

ステップ実行

デバッグを開始すると、デバッガによって、デバッグ対象のプログラムがトレース可能なクラスのメソッドに達するまで実行されますが、クラスのstaticイニシャライザ・メソッドでは停止しません。

トレース実行

デバッグを開始すると、デバッガによって、デバッグ対象のプログラムがクラスのstaticイニシャライザ・メソッドも含めたいずれかのメソッドに達するまで実行されます。

注意:

[F7]を押して、トレース実行する必要のあるメソッドの選択を表示できます。複数のメソッドがある場合、[F7]を押すと、これらのメソッドが強調表示されます。トレース実行するメソッドをクリックできます。

行に複数のメソッド・コールがあり、必要なメソッド・コールが最初に表示されるとは限らない場合に、この機能が役立ちます。

14.7.8 デバッガの起動方法

デバッグの前にプロジェクトをビルドする必要があります。プロジェクトは、「プロジェクト・プロパティ」の「コンパイラ」ページで指定したオプションを使用してビルドされます。

プロジェクトをビルドしてデバッガを起動するには、次のようにします。

1. 「アプリケーション」ウィンドウで、プロジェクトを選択します。

2. 右クリックして、「プロジェクト・プロパティ」→「コンパイラ」を選択します。

3. 「完全なデバッグ情報」がまだ選択されていない場合は選択します。

4. 「OK」をクリックしてダイアログを閉じます。

5. デバッガを起動するには、次のいずれかの操作を行います。

- 現在の実行構成を使用してデバッガを開始するには、メイン・メニューから「実行」→「<target>のデバッグ」を選択します。

- 実行構成を選択してデバッガを起動するには、ツールバーの「デバッグ」アイコンの横のドロップダウン・メニューから必要な実行構成の名前をクリックします。

プロジェクトのビルドに成功すると、デバッガが起動します。

14.7.9 デバッグ情報をファイルにエクスポートする方法

JDeveloperのデバッガによって生成されたデバッグ情報は、デバッガ・ウィンドウのいずれかからテキスト出力ファイルまたはHTML出力ファイルにエクスポートできます。

デバッグ情報をファイルにエクスポートするには、次のようにします。

1. ツールバーで「デバッグ」をクリックし、デバッグを開始します。

2. デバッガがブレークポイントで停止すると、エクスポートする情報が含まれているデバッガ・ウィンドウを見つけます。

3. デバッガ・ウィンドウで右クリックし、ポップアップ・メニューから「プリファレンス」を選択します。

4. 該当する「プリファレンス - デバッガ」ページの「列」の下で、「デバッガ」ウィンドウおよび出力ファイルで表示または非表示にする列を選択します。

5. 「OK」をクリックして「プリファレンス」ダイアログを閉じます。

6. デバッガ・ウィンドウで右クリックし、「エクスポート」を選択します。

7. 「エクスポート」ダイアログで、ファイルの名前を入力します。出力ファイルはテキスト・ファイルとして保存され、列の間にはタブが、行の間には改行が挿入されます。HTMLファイルにエクスポートする場合は、.html拡張子または.htm拡張子(大/小文字の区別なし)を追加します。

プロジェクトのビルドに成功すると、デバッガが起動します。

14.7.10 デバッグ時のソース・エディタの使用方法

(ステップ・コマンド完了後のブレークポイントで、または一時停止によって)デバッガが停止すると、ソース・エディタに現在のクラスのソース・ファイルが開き、図14-1に示すように実行ポイントが付きます。

図14-1 「実行ポイント」アイコン

デバッグ中にクラスのソース・ファイルが見つからない場合、「ソース・ファイルが見つかりません」ダイアログが表示され、ソース・ファイルの場所の入力を求めるメッセージが表示されます。

ソース・エディタを使用して、次のデバッグを実行できます。

- 値を表示するために変数名の上をホバーします。

- ブレークポイントを設定して、ソース・エディタの余白をクリックします。

- ブレークポイントを削除し、ソース・エディタの余白でブレークポイントをクリックします。

図14-2 「ブレークポイント」アイコン

14.7.11 ポップアップ・メニュー項目の使用

デバッガにより、ソース・エディタのポップアップ・メニューには表14-5に示すようなメニュー項目が追加されます。

表14-5 デバッガのポップアップ・メニュー項目

項目

機能

カーソルまで実行

カーソルの現在位置まで実行し、その位置に到達するまでコードを実行します。

監視式([Ctrl]+[F5])

「監視」ウィンドウに式を追加します。

インスペクト

フロートしている「インスペクタ」ウィンドウを開きます。

カーソル位置のトレース実行メソッド

「カーソルまで実行」を実行してから、現在のカーソル位置にあるメソッドをトレース実行します。

14.7.12 ツールチップの使用

データ・アイテム名の上にマウスを合わせると、デバッガによりソース・エディタにツールチップが表示されます。デフォルトでは、ツールチップにデータ項目の名前、値、タイプが表示され、「データ」ウィンドウまたは「監視式」ウィンドウに追加することなく、データ項目を簡単にインスペクトできます。データ項目が配列またはオブジェクトの場合は、オブジェクト階層の下位にある、選択した項目の子もインスペクトできます。ツールチップに表示される子データ項目は20個までで、残りのデータ項目を表示するにはナビゲーション・ボタンを使用してください。

このツールチップに表示される列は、「ツール」→「設定」→「デバッガ」→「ツールチップ」ページで有効にした列設定によって異なります。

プロジェクトのビルドに成功すると、デバッガが起動します。

14.7.13 デバッガでのJava式の使用方法

Java式は、「監視式」ウィンドウ、「インスペクタ」ウィンドウ、ブレークポイント条件、ブレークポイント・ログ式で使用されます。デバッガで監視またはインスペクトするJava式を指定できます。式は、デバッガで評価できる有効なJava式にする必要があります。デバッガでは、表14-6に示した形式のJava式を使用できます。

表14-6 デバッガで使用できる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

14.7.14 デバッグ中のコード内の移動

JDeveloperのデバッガでは、プログラムの実行を制御できます。つまり、プログラムの1コード行、メソッド全体またはプログラム・ブロック全体を実行するかどうかを制御できます。プログラムの実行と一時休止のタイミングを手動で制御することにより、正常に機能していることがわかっているセクションを素早く通過し、問題の原因となっているセクションに集中できます。詳細は、第14.7.7項「デバッガ開始オプションの設定方法」を参照してください。

デバッガでは、プログラムの実行を次の方法で制御できます。

- メソッドのトレース実行

- メソッドのステップ実行

- トレースするクラスの制御

- スレッドの実行ポイントの検索

- カーソル位置まで実行

- デバッガの一時停止および再開

- デバッグ・セッションの終了

「トレース実行」および「ステップ実行」コマンドを使用すると、プログラム・コードを簡単に移動できます。2つのコマンドはよく似ていますが、コード実行の制御方法は異なります。

プログラムの実行単位は、最小で1コード行ずつ増やすことができます。1行に複数のプログラム文がある場合、1コード行として処理されます。1行に含まれる複数の文を個別にデバッグすることはできません。1行を1文で構成すると、最も簡単です。この方法を使用するとコードがわかりやすくなり、管理も容易です。

14.7.15 メソッドのトレース実行方法

トレース実行コマンドでは、1回に1つずつプログラム文が実行されます。実行ポイントがメソッドのコール上にあるときに「トレース実行」コマンドを選択すると、そのメソッドがトレース実行され、実行ポイントはメソッドの最初の文上に置かれます。

トレース実行アクションは、複数のメソッドを含む行上で呼び出されたときはいつでも、行上のメソッドを強調表示します。現在の実行ポイントによって、デバッガがトレース実行の対象とするコード行が決定します。カーソルを移動しても実行ポイントが変わることはなく、別のセットのメソッドがトレース実行に使用できるようになることもありません。

この機能は、選択された外部メソッドがインタフェースに属していて、実際にコールされるメソッドの実装場所が事前に判明していない場合に特に役立ちます。

実行ポイントがメソッドの最後の文上にあるときに「トレース実行」を選択すると、デバッガはそのメソッドから戻り、実行ポイント()はそのメソッドのコールに続くコード行上に置かれます。

シングル・ステップ実行という用語は、トレース実行を使用して、プログラム・コードの文を連続して実行することを指します。

次のいずれかの方法で、メソッドをトレース実行できます。

- 「実行」→「トレース実行」を選択します。

- [F7]キーを押します。

- ツールバーの「トレース実行」ボタンをクリックします。

図14-3 「トレース実行」ボタン

注意:

「トレース実行」は、すでに開始されているデバッグ・プロセスでのみ機能します。

デバッガをトレース実行で開始するように設定すると、デバッガによって、デバッグ対象のプログラムがトレース可能なクラスのメソッドに達するまで実行されます。

デバッグ時は、一部のメソッドをトレース実行し、他のメソッドをステップ実行できます。メソッドが正常に機能し、メソッドのコールによってエラーが発生しないことがわかっている場合は、そのメソッドのコールをステップ実行します。メソッドが正常に機能するかどうかわからない場合は、メソッドをトレース実行し、正常に機能するかどうかをチェックします。

14.7.16 メソッドのステップ実行方法

トレース実行の場合と同様に、ステップ実行コマンドでも1回に1つずつプログラム文を実行できます。ただし、実行ポイントがメソッド・コール上にあるときに「ステップ実行」コマンドを発行すると、そのメソッドは停止せずに実行され(トレース実行されません)、実行ポイントはそのメソッド・コールに続く文上に置かれます。

実行ポイントがメソッドの最後の文上にあるときに「ステップ実行」を選択すると、デバッガはそのメソッドから戻り、実行ポイントはそのメソッドのコールに続くコード行上に置かれます。

次のいずれかの方法で、メソッドをトレース実行できます。

- 「実行」→「ステップ実行」を選択します。

- [F8]キーを押します。

- ツールバーの「ステップ実行」ボタンをクリックします。

図14-4 「ステップ実行」ボタン

以前のリリースのJDeveloperとは異なり、「ステップ実行」ボタンをクリックしてデバッグを開始することはできません。「ステップ実行」は、すでに開始されているデバッグ・プロセスでのみ機能します。

ステップ実行で開始するように設定した場合、デバッガによって、トレース可能なクラスのメソッドに達するまでデバッグ対象のプログラムが実行されますが、クラスのstaticイニシャライザ・メソッドでは停止しません。

デバッグ時は、一部のメソッドをトレース実行し、他のメソッドをステップ実行できます。メソッドが正常に機能し、メソッドのコールによってエラーが発生しないことがわかっている場合は、そのメソッドのコールをステップ実行します。メソッドが正常に機能するかどうかわからない場合は、メソッドをトレース実行し、正常に機能するかどうかをチェックします。

14.7.17 トレースするクラスの制御

通常、デバッグを開始する前に、プロジェクト・プロパティでトレースの対象リストと対象外リストを設定する必要があります。ただし、トレースの対象リストと対象外リストを変更する必要がある場合は、クラス・ウィンドウから変更できます。クラス・ウィンドウを右クリックし、ポップアップ・メニューから「トレース」を選択します。「トレース」ダイアログが表示され、トレースの対象リストと対象外リストを修正できます。

パッケージをトレースの対象または対象外として指定すると、そのパッケージ内の下部クラスも、個別に指定した場合を除いてトレースの対象または対象外となります。

プログラムの一部を詳しく調べるために、デバッガでステップ実行するファイルに対してのみトレースを有効にすることができます。たとえば、通常J2SEライブラリ内のクラスのトラブルシューティングは行わないので、これらをトレースする必要はありません。通常は独自に作成したクラスのみトレースします。

14.7.18 トレース・リストに基づく動作のステップ実行方法

クラスまたはパッケージを対象外とした場合、そのクラスをステップ実行するように指定しても、デバッガは一時休止することなくそのコードを通過します。デバッガは、対象となっているクラスの次のコード行で一時休止します。トレースの対象リストおよび対象外リストは、「トレース実行」、「ステップ実行」、「ステップ・アウト」を含むすべてのステップ・コマンドで使用されます。これらのリストを使用する場合も、対象外のクラスにブレークポイントを設定できます。デバッガがそのようなブレークポイントで停止しても、ステップ・コマンドは無効です。クラスのトレースを有効にするには、次の方法でクラスまたはパッケージを対象または対象外に指定して、トレースの対象リストまたは対象外リストを修正します。

トレーシングの対象または対象外リストを調整する手順は次のとおりです。

1. 「アプリケーション」ウィンドウでプロジェクトを右クリックし、コンテキスト・メニューから「プロジェクト・プロパティ」を選択します。

2. 「実行/デバッグ」ノードを選択します。

3. 実行構成を選択し、「編集」をクリックします。

4. 「実行構成の編集」ダイアログで、「ツール設定」→「デバッガ」を選択します。

5. 「対象とするクラス/パッケージのリスト」フィールドおよび「対象外のクラス/パッケージのリスト」フィールドに、対象または対象外とするパッケージやクラスの名前を適切なフィールドにセミコロン(;)で区切って入力します。次に例を示します。

oracle.xml;org.apache;org.omg;org.w3c;org.xml

また、「編集」をクリックして、「対象とするクラス/パッケージのリスト」/「対象外のクラス/パッケージのリスト」ダイアログを開き、「追加」または「削除」をクリックします。「追加」をクリックすると、「クラスおよびパッケージ・ブラウザ」ダイアログが表示されます。「削除」をクリックすると、クラスまたはパッケージが該当するトレース・リストから削除されます。追加するクラスまたはパッケージに移動し、「OK」をクリックしてください。クラスまたはパッケージが該当するトレース・リストに追加されます。

対象リストを空にすると、対象外リストで個別に指定したパッケージを除くすべてのパッケージをトレースするように指定されます。次に例を示します。

include:
exclude:java;javax

14.7.19 スレッドの実行ポイントの検索方法

デバッグ中は、現在のスレッドで現在実行ポイントとなっているコード行がハイライト表示され、ソース・エディタの左マージンに実行ポイント・アイコンが表示されます。

実行ポイントは、デバッガによって実行される次のソース・コード行を示します。

現在の実行ポイントを検索するには、次のようにします。

1. メイン・メニューから「実行」→「実行ポイントの検索」を選択します。

2. 「スレッド」ウィンドウでスレッドを右クリックし、スレッドのソースに移動を選択します。
ソース・エディタに実行ポイントを含むコードのブロックが表示されます。

14.7.20 カーソル位置までの実行方法

デバッガでアプリケーション・コードをステップ実行する場合、特定の場所まではシングル・ステップ実行やブレークポイント設定をすることなく実行した方がよい場合があります。

プログラムの特定の場所まで実行するには、次のようにします。

1. ソース・エディタで、デバッガを停止するコード行にテキスト・カーソルを置きます。

2. 次のいずれかの方法で、カーソル位置まで実行します。

- ソース・エディタで、右クリックして「カーソルまで実行」を選択します。

- メイン・メニューから「実行」→「カーソルまで実行」オプションを選択します。

- [F4]キーを押します。[F4]キーは、オペレーティング・システム(OS)でインターセプトされていないかぎり、機能します。

注意:

ADCマシンまたはSLCマシンでは、[F4]キーはインターセプトされているため、デバッガに到達できません。

次のいずれかの状態になります。

- カーソルまで実行する場合、プログラムは、ソース・エディタでテキスト・カーソルが置かれた場所に達するまで停止することなく実行されます。

- テキスト・カーソルが置かれているコード行が実際には実行されない場合、「カーソル位置まで実行」コマンドを選択すると、プログラムはブレークポイントに達するまで、またはプログラムが終了するまで実行されます。

14.7.21 デバッガの一時停止および再開方法

デバッガでプログラムを実行中、プログラムを一時休止できます。その後、デバッガを使用して、プログラムのこの部分に関して状態を確認できます。プログラムの該当部分の確認を終了すると、プログラムの実行を継続できます。

デバッガの使用中、プログラムは実行中またはデバッガによって一時休止中のどちらかの状態になります。プログラムがユーザー入力を待機している場合は、実行中とみなされます。プログラムが実行中の場合、「一時休止」を使用できます。プログラムがデバッガによって一時停止中の場合、「再開」、「ステップ実行」、「トレース実行」を含むデバッガ・ボタンを使用できます。

デバッガは次の方法で一時停止できます。

- メイン・メニューから「実行」→「プログラムの停止」を選択します。

- デバッガのツールバーから「プログラムの停止」アイコンをクリックします。

図14-5 「プログラムの停止」アイコン

プログラムは、ソースを使用できない場所で一時休止することがあります。この場合、ソース・ファイルが見つかりませんダイアログが表示され、ソース・ファイルの場所、またはスタブ・ファイルを生成するかどうかを指定するよう求められます。

また、クラスがトレースの対象外リストに含まれているためにトレースが無効な場所でプログラムが一時休止することがあります。たとえば、java.lang.Object.waitメソッドで一時停止するような場合があります。

デバッガの一時休止中に、ガベージ・コレクションを強制的に実行できます。ガベージ・コレクションの結果は、ただちに「クラス」ウィンドウおよび「ヒープ」ウィンドウに反映されます。これにより、アプリケーションのメモリー・リークを検出できます。

一時停止したデバッガを再開するには、「実行」→「再開」を選択します。

14.7.22 デバッグ・セッションの終了方法

場合によりデバッグ中に、プログラムを最初から再起動する必要があります。たとえば、不具合のある箇所を通過してしまった場合、プログラムを再起動します。

現在のデバッグ・セッションを終了するには、次のようにします。

- 「実行」→「終了 - <target>」メニュー・オプションを選択します。または、

- デバッガのツールバーで「終了」をクリックします。

デバッグ・セッションを終了すると、すべてのデバッガ・ウィンドウが閉じます。ただし、この処理によって、設定したブレークポイントや監視式が削除されることはありません。このため、デバッグ・セッションを簡単に再開できます。

14.7.23 デバッガ・ログの表示方法

デバッガ・ログには、デバッグ・プロセスに関する情報が表示されます。デバッガ・ログは、デバッグ対象のプロセスがアクティブである間はいつでも表示できます。

プロセスがまだアクティブな間にデバッガ・ログを表示する手順は次のとおりです。

- 「表示」メニューで「デバッガ」を選択し、次に「ログ」を選択します。または、

- 「プロセス」ウィンドウでプロセスを右クリックし、ポップアップ・メニューで「ログの表示」を選択します。

14.7.24 アプレットのデバッグ方法

JDeveloperでは、アプレット・プログラムのデバッグ方法を制御できます。アプレットの実行方法の詳細は、第14.6項「アプレットの実行」を参照してください。

アプレットをデバッグするには、次のようにします。

1. 「アプリケーション」ウィンドウで、<APPLET>タグが含まれているHTMLファイルを選択します。

2. ツールバーの「デバッグ」をクリックします。
アプレットが起動します。デバッガは、アプレットのソース・コードで設定したブレークポイントで停止します。

14.8 デバッガ・ウィンドウの使用方法

JDeveloperでは、コードの分析と問題領域の特定に役立つ、特定の用途向けのデバッグ・ウィンドウが数多く提供されます。デバッガ・ウィンドウを開くには、「表示」→「デバッガ」を選択し、さらにメニューからウィンドウ(たとえば、「ブレークポイント」)を選択します。

14.8.1 「ブレークポイント」ウィンドウの使用方法

ブレークポイントの設定に関する情報は、ブレークポイント・ウィンドウで参照できます。ポップアップ・メニュー・オプションなど、「ブレークポイント」ウィンドウの詳細は、[F1]を押してください。

「ブレークポイント」ウィンドウを開いて、設定されたブレークポイントを一覧表示する手順は次のとおりです。

- メイン・メニューから「表示」→「ブレークポイント」を選択します。「ブレークポイント」ウィンドウが表示されます。

14.8.2 「スマート・データ」ウィンドウの使用方法

現在のメソッドのすべての引数、ローカル変数およびstaticフィールドが表示されるデータ・ウィンドウとは異なり、スマート・データ・ウィンドウには、ステップ実行しているソース・コードに関連のあるデータのみ表示されます。具体的には、デバッガにより実行ポイント()付近のソース・コードが分析され、ステップ実行しているコード行で使用されている変数、フィールドおよび式が検索されます。

詳細は、第14.7.19項「スレッドの実行ポイントの検索方法」を参照してください。

また、非voidメソッドでブレークポイントを設定し、「メソッドの最後まで実行」コマンドまたは「ステップ・アウト」コマンドを発行した場合、「スマート・データ」ウィンドウには非voidメソッドの現在の戻り値が表示されます。「ステップ実行」または「トレース実行」コマンドでは戻り値は表示されません。

デフォルトでは、1箇所につき1コード行のみ分析され、最大2箇所が分析されます。これらの設定は、「ツール」→「プリファレンス」→「デバッガ」→「スマート・データ」ページで調整できます。このページは、「スマート・データ」ウィンドウを右クリックし、ポップアップ・メニューから「プリファレンス」を選択して表示することもできます。

「スマート・データ」ウィンドウを開くには、次のようにします。

1. ソース・エディタでブレークポイントを設定し、デバッグ・セッションを開始します。

2. ツールバーから「デバッグ」をクリックします。

3. デバッガがブレークポイントに達したときに、「表示」→「デバッガ」→「スマート・データ」を選択します。

14.8.3 「データ」ウィンドウの使用方法

データ・ウィンドウを使用して、プログラムの変数に関する情報を表示します。現在のコンテキストは、「スタック」ウィンドウでの選択内容により制御されます。新しいコンテキストに移動すると、データ・ウィンドウが更新され、新しいコンテキストのデータが表示されます。現在のクラスがデバッグ情報なしでコンパイルされた場合、ローカル変数を表示することはできません。デバッガによってスタック・フレームのローカル変数のメモリー位置が分析され、可能な範囲の情報が表示されます。

また、非voidメソッドでブレークポイントを設定し、「メソッドの最後まで実行」コマンドまたは「ステップ・アウト」コマンドを発行した場合、データ・ウィンドウには非voidメソッドの現在の戻り値が表示されます。「ステップ実行」または「トレース実行」コマンドでは戻り値は表示されません。

データ・ウィンドウを開くには、次のようにします。

1. ソース・エディタでソース・ファイルを開き、ブレークポイントを設定します。

2. ツールバーで「デバッグ」をクリックします。

3. デバッガがブレークポイントで一時停止しているときに、メイン・メニューから「ウィンドウ」→「デバッガ」→「データ」を選択します。

14.8.3.1 「データ」ウィンドウでの配列要素の表示方法

「データ」ウィンドウに表示するアレイの要素数を設定できます。

「データ」ウィンドウで配列要素を表示するには、次のようにします。

1. プロジェクトのデバッグを開始し、「データ」ウィンドウを開きます。

2. 「データ」ウィンドウで配列を選択し、展開して配列の要素を表示します。
配列に20個を超える要素が含まれている場合、「データ」ウィンドウには最初の20個の要素が表示されます。

- 次の20個のエントリを表示するには、「次へ」をクリックします。

- 前の20個のエントリを表示するには、「前へ」をクリックします。

- 最初の20個のエントリを表示するには、「先頭へ」をクリックします。

- 最後の20個のエントリを表示するには、「最後へ」をクリックします。

- デフォルトの表示制限を20から変更する場合には、配列を選択して右クリックし、ポップアップ・メニューから「範囲の調整」を選択して、「新しいカウント」フィールドに新しい値を入力します。完了したら、「OK」をクリックします。

14.8.4 「監視式」ウィンドウの使用方法

監視式を使用すると、プログラムの実行に従って変化する、変数および式の値を監視できます。監視式を入力すると、「監視」ウィンドウに式の現在の値が表示されます。プログラムの実行時、プログラムによって監視式の変数の値が更新されるため、監視の値が変化します。

監視は、「スタック」ウィンドウでの選択内容によって制御される現行のコンテキストに従って、式を評価します。新しいコンテキストに移動すると、式は新しいコンテキストで再評価されます。監視式の変数が定義されていない場所に実行ポイントが移動すると、監視式全体が未定義になります。監視式を評価できる場所に実行ポイントが戻ると、「監視」ウィンドウに再び監視式の値が表示されます。

14.8.4.1 「監視」ウィンドウを開く方法

「監視」ウィンドウには、ソース・ファイルで設定したブレークポイントに基づく監視対象プログラムの値が表示されます。

監視式ウィンドウを開くには、次のようにします。

1. ソース・エディタでソース・ファイルを開き、ブレークポイントを設定します。

2. ツールバーから「デバッグ」をクリックします。

3. デバッガがブレークポイントで一時停止しているときに、メイン・メニューから「ウィンドウ」→「デバッガ」→「監視」を選択します。

14.8.4.2 監視の追加方法

監視を追加するには、複数の方法があります。

監視式を追加するには、次のようにします。

- 「データ」ウィンドウで項目を右クリックし、ポップアップ・メニューから「監視式」を選択します。

- データ・ウィンドウから監視式ウィンドウに変数、フィールドおよびオブジェクトをドラッグ・アンド・ドロップします。

- ソース・エディタでテキストを選択し、右クリックして、ポップアップ・メニューから「監視式」を選択します。

14.8.4.3 静的フィールドの監視方法

staticフィールドを監視するには、次のようにします。

後ろにピリオド(.)とフィールド名を付けたクラスのフルネームを入力します。次に例を示します。

java.io.File.separator

例外ブレークポイントで停止中に現在の例外を監視するには、次のように入力します。

_throw

14.8.5 「インスペクタ」ウィンドウの使用方法

「インスペクタ」ウィンドウでは、特定の変数、フィールドまたはオブジェクトを選択し、「監視式」ウィンドウまたは「データ」ウィンドウに表示される情報と同じ情報を表示できます。ポップアップ・メニュー・オプションなど、「インスペクタ」ウィンドウの詳細は、「インスペクタ」ウィンドウで[F1]を押してください。

「インスペクタ」ウィンドウは、デフォルトで浮動するという点で他のウィンドウとは多少異なり、「インスペクタ」ウィンドウの複数のインスタンスを使用できます。各「インスペクタ」ウィンドウにデータ項目が1つ含まれます。「インスペクタ」ウィンドウを別の「インスペクタ」ウィンドウにドラッグしてドッキングできます。

インスペクタ・ウィンドウを開くには、次のようにします。

1. ソース・エディタで少なくとも1つのブレークポイントを設定します。

2. ツールバーから「デバッグ」をクリックします。

3. デバッガがブレークポイントに達したときは、ソース・エディタで変数を選択し、右クリックして「インスペクト」を選択します。
選択した変数を含む「インスペクト」フローティング・ウィンドウが表示されます。他の項目を調べる場合は、テキスト・フィールドに新しい式または変数を入力するか、ドロップダウン・リストから前に選択した項目を選択します。

変数または式が選択されていない場合、「インスペクト」ダイアログには、エディタ内のカーソルの下にあるテキストが、調べる式として事前に表示されます。「インスペクタ」ウィンドウを開くには、「OK」をクリックします。

「インスペクタ」ウィンドウが画面中央にフローティング・ウィンドウとして表示されますが、「インスペクタ」ウィンドウを他のウィンドウとともにドッキングできます。ドッキングしないようにするには、[Ctrl]キーを押しながら「インスペクタ」ウィンドウを移動します。インスペクタは、「スタック」ウィンドウの現在のコンテキストに応じて式を評価します。詳細は、第14.8.7項「「スタック」ウィンドウの使用方法」を参照してください。

新しいコンテキストに移動すると、その新しいコンテキストに対して式が再評価されます。式の変数が定義されていない新しい場所に実行ポイントが移動すると、式全体が未定義になります。実行ポイントが式を評価できる場所に戻ると、その式の値が再度表示されます。

14.8.6 「ヒープ」ウィンドウの使用方法

ヒープ・ウィンドウには、デバッグ中のプログラム内のヒープに関する情報が表示されます。このウィンドウは、プログラムのメモリー・リークの検出に役立ちます。クラスのすべてのインスタンスとオブジェクトのガベージ・コレクションが行われなかった理由を表示できます。

「ヒープ」ウィンドウには次の2種類のフォルダが表示されます。

- 「クラス」フォルダ
クラス名、メモリーに存在するクラスのインスタンス数が表示され、展開すると、ヒープの特定のインスタンスおよびそのアドレスが一覧表示されます。

- 参照パス・フォルダ
直接または間接的に特定オブジェクトを指すすべてのルート参照が含まれます。ルート参照は、staticフィールド、スタック変数、確保済オブジェクトです。ルート参照がある場合、オブジェクトはガベージ・コレクタによって破棄されません。ルート参照を展開すると、ルート参照から指定したオブジェクトまでの参照パスが表示されます。

ヒープ・ウィンドウを開くには、次のようにします。

1. ソース・エディタでソース・ファイルを開き、ブレークポイントを設定します。

2. ツールバーで「デバッグ」をクリックします。

3. デバッガがブレークポイントに達したときに、メイン・メニューから「ウィンドウ」→「デバッガ」→「ヒープ」を選択します。

4. 「ヒープ」ウィンドウを右クリックし、ポップアップ・メニューから「新規タイプの追加」を選択します。「クラス」ウィンドウから「ヒープ」ウィンドウに「クラス」ノードをドラッグする方法もあります。または、「クラス」ウィンドウで「クラス」ノードを右クリックし、ポップアップ・メニューから「ヒープ・ウィンドウに表示」を選択します。クラスに関する情報が「ヒープ」ウィンドウに表示されます。

14.8.7 「スタック」ウィンドウの使用

スタック・ウィンドウには、現在のスレッドのコール・スタックが表示されます。スタック・ウィンドウで行をハイライト表示すると、データ・ウィンドウ、監視式ウィンドウおよびすべてのインスペクタ・ウィンドウが更新され、選択したすべてのメソッドのデータが表示されます。

14.8.7.1 「スタック」ウィンドウを開く方法

「スタック」ウィンドウでは、スタック・スレッドの行を強調表示して、「データ」ウィンドウ、「監視」ウィンドウおよび「インスペクタ」ウィンドウの値を更新することができます。

スタック・ウィンドウを開くには、次のようにします。

1. ソース・エディタでソース・ファイルを開き、ブレークポイントを設定します。

2. ツールバーから「デバッグ」をクリックします。

3. デバッガがブレークポイントで一時停止しているときに、メイン・メニューから「ウィンドウ」→「デバッガ」→「スタック」を選択します。

14.8.7.2 スレッドのスタックの表示方法

「スタック」ウィンドウで選択したスレッドのスタックを表示できます。

スレッドのスタックを表示するには、次のようにします。

1. プロジェクトのデバッグを開始し、「スタック」ウィンドウを開きます。

2. ドロップダウン・リストから、列の上のスレッドを選択します。
「スタック」ウィンドウには、選択したスレッドのスタックがすぐに反映されます。

14.8.8 「クラス」ウィンドウの使用方法

クラス・ウィンドウには、ロードされたクラスが表示されます。また、クラスのインスタンス数などの有益な情報も表示される場合があります。Javaガベージ・コレクタを強制的に実行できるように、デバッガにはクラス・ウィンドウとともにガベージ・コレクション・ツールも含まれています。ガベージ・コレクタを実行すると、その影響がクラス・ウィンドウに即座に表示されます。デバッガでガベージ・コレクタを使用できる仮想マシンを使用している場合のみ、ガベージ・コレクタを強制的に実行できます。

クラス・ウィンドウを開くには、次のようにします。

1. ソース・エディタでブレークポイントを設定し、デバッグ・セッションを開始します。

2. デバッガがブレークポイントに達したときに、「ウィンドウ」→「デバッガ」→「クラス」を選択します。
「クラス」ウィンドウに、現在ロードされているすべてのクラス、そのクラスで使用中のインスタンス数、およびその数のインスタンスに必要なメモリー容量が表示されます。

14.8.8.1 表示順序の変更方法

「クラス」ウィンドウの各列のアイテムの表示順序を変更できます。

表示の昇順と降順を変更するには、次のようにします。

- 列の上部をクリックしてソート順を変更します。次の項目でソートできます。

- 名前

- カウント

- メモリー

- ファイル

「パッケージを表示」チェック・ボックスが選択されている場合、デフォルトでは、クラスがツリー構造で表示され、各ブランチがパッケージを表します。アイコンおよび各クラスまたはパッケージの隣にあるエントリは、クラスがトレースに含まれているか除外されているかを示します。行番号表のないクラスの特殊なアイコン(図14-6)は、クラスが取り除かれたか曖昧なためにトレースが不可能であることを示します。

図14-6 トレース実行できないことを示すアイコン

「クラス」ウィンドウで、ポップアップ・メニューから「設定」を選択し、表示する列を次の使用可能なオプションから選択します。

- カウント

- メモリー

- ファイル

14.8.9 「モニター」ウィンドウの使用方法

Javaでは、同期による言語レベルでのマルチスレッドがサポートされています。同期とは、複数スレッド間でアクティビティとデータ・アクセスを調整することです。Javaが同期のサポートに使用するメカニズムはモニターです。モニター・ウィンドウには、アクティブなモニターのステータスおよび制御情報が表示されます。

デバッガがデッドロック状態になっている場合は、「モニター」ウィンドウも自動的に開きます。

モニター・ウィンドウを開くには、次のようにします。

1. ソース・エディタでソース・ファイルを開き、ブレークポイントを設定します。

2. ツールバーで、「デバッグ」アイコンをクリックします。

3. デバッガがブレークポイントで停止しているときに、「ウィンドウ」→「デバッガ」→「モニター」を選択します。

14.8.10 「スレッド」ウィンドウの使用方法

「スレッド」ウィンドウには、プログラム内のすべてのスレッドおよびスレッド・グループの名前とステータスが表示されます。このウィンドウに表示される列は、「ツール」→「設定」→「デバッガ」→「スレッド」ページで、または「スレッド」ウィンドウを右クリックすると表示される「スレッド」ウィンドウのポップアップ・メニュー・オプションから「設定」を選択して有効になった列設定によって決まります。

「スレッド」ウィンドウを開くには:

1. ソース・エディタでソース・ファイルを開き、ブレークポイントを設定します。

2. ツールバーから「デバッグ」をクリックします。

3. デバッガがブレークポイントで停止しているときに、メイン・メニューから「ウィンドウ」→「デバッガ」→「スレッド」を選択します。
「ステップ実行」、「トレース実行」および「次の文を設定」を含むステップ・コマンドは、現在のスレッドに適用されます。別のスレッドを選択するには、スレッドを右クリックし、ポップアップ・メニューから「スレッドの選択」を選択します。

スレッド・ウィンドウでスレッドを選択すると、スタック・ウィンドウが自動的に更新され、選択したスレッドのスタックが表示されます。

14.8.11 「デバッガ」ウィンドウの作業環境の設定方法

列のサイズ変更モードや表示する他のオプションなど、デバッガ・ウィンドウの様々な設定をカスタマイズできます。

ヒント:

デバッガをデバッグ対象プロセス(デバッグするプログラム)に接続できない場合は、接続再試行の設定値を上げてください。

デバッグ・ウィンドウの作業環境を設定するには、次のようにします。

1. 「ツール」→「設定」→「デバッガ」を選択します。
デバッグ・パネルにカスタマイズ可能なフィールドが表示されます。

2. 表示されるフィールドおよびオプションから選択します。

3. 特定の「デバッガ」ウィンドウのオプションを設定するには、「デバッガ」ノードを展開し、該当するウィンドウ・ノードをクリックします。たとえば、スマート・データ・ウィンドウに表示する列を変更する場合は、「スマート・データ」をクリックします。

4. 必要に応じて、設定可能なオプションを編集します。

5. 終了したら「OK」をクリックします。

14.8.12 ウィンドウに表示される列の指定方法

各デバッガ・ウィンドウに表示される列は選択可能です。*

ウィンドウに表示される列を指定する手順は次のとおりです。

- ウィンドウを右クリックし、ポップアップ・メニューから「設定」を選択します。「列」で、「ブレークポイント」ウィンドウに表示する列を選択します。

- または、ウィンドウで列見出しを右クリックして、列名を選択します。

14.9 ブレークポイントの管理

ブレークポイントはプログラム内のトリガーで、その箇所に達するとプログラムの実行が一時休止され、プログラム変数の一部またはすべての値を調べることができます。ソース・コードの問題が発生する可能性のある箇所にブレークポイントを設定することにより、デバッグの必要な箇所に達するまでプログラムを実行できます。プログラムの実行中にブレークポイントに達すると、プログラムは一時休止し、デバッガのソース・エディタにブレークポイントを含む行が表示されます。デバッガを使用してプログラムの状態を表示できます。ブレークポイントは、プログラムの実行を開始する前やデバッグ中など、いつでも設定できます。図14-7 に、Javaアプリケーションのソース・ファイルにおけるブレークポイントの例を示します。

図14-7 ソース・エディタでのブレークポイント

コードのコメント行、空白行、宣言およびその他実行不可能な行で設定されたブレークポイントは無効となり、デバッガでは検証されません。

JDeveloperのデバッガでは、様々なタイプのブレークポイントがサポートされています。

- ソース・ブレークポイント

- 例外ブレークポイント

- メソッド・ブレークポイント

- クラス・ブレークポイント

- ファイル・ブレークポイント

- デッドロック・ブレークポイント

デッドロック・ブレークポイントは、デッドロックのソースの場所を特定するのが困難な場合に便利です。デッドロック・ブレークポイントが検出されると、デバッガは停止します。デッドロック・ブレークポイントは、デバッグの開始時に自動的に有効になります。

ブレークポイントの設定に関する情報は、ブレークポイント・ウィンドウで参照できます。

14.9.1 確認済および未確認ブレークポイントについて

デバッグ中、ソース・エディタのコード行の左側でブレークポイントを設定できます。ただし、ブレークポイントを有効にするには、コードの実行可能な行に設定する必要があります。メソッドを初めて実行する前に、デバッガによりメソッドのすべての有効なブレークポイントが確認されます。コードのコメント行、空白行、宣言およびその他実行不可能な行で設定されたブレークポイントは無効となり、デバッガでは検証されません。

ブレークポイントが有効であると確認されると、ソース・エディタのマージンおよび「ブレークポイント」ウィンドウに表示されるアイコンが図14-8に変化します。

図14-8 確認済の「確認済ブレークポイント」アイコン

14.9.2 デッドロックの理解

デッドロックは、プログラム内の1つ以上のスレッドがリソースにアクセスできなくなるか、待機状態のままいつまでも処理できない場合に発生します。Javaでの一般的なデッドロックは、モニター・ブロック・サイクル・デッドロックです。

モニター・ブロック・サイクル・デッドロックは、複数のスレッドが、他のスレッドがすでに実行中の同期コードを実行するために待機し、処理ができなくなる場合に発生します。

例14-2に、典型的なJavaの同期デッドロックを示します。

例14-2 Javaの同期デッドロック

synchronized (a)
{
...
synchronized (b)  {
...
}
...
}

同時に、スレッド2は次のコードを実行しています。

synchronized (b)
{
...
synchronized (a)
{
...
}
...
}

スレッド2がsynchronized (b)を実行中、スレッド1がsynchronized (a)に入るとデッドロックが発生します。スレッド1は、スレッド2がsynchronized (b)を終了するまでsynchronized (b)に入ることができず、スレッド2は、スレッド1がsynchronized (a)を終了するまでsynchronized (a)に入ることができません。デッドロックは「デッドリ・エンブラス」とも呼ばれます。この例ではスレッドは2つですが、スレッドの数が3、4、5などの場合にも同じ状況が発生する可能性があります。デッドロック・ブレークポイントでは、このようなタイプのデッドロックを検出できます。

1つのスレッドが特定のオブジェクトでwaitメソッドをコールし、他のスレッドがそのオブジェクトでnotifyメソッドをコールしない場合にもデッドロックが発生します。このタイプのデッドロックの最も一般的な原因はタイミングです。待機側のスレッドがwaitをコールする前に、通知側のスレッドがnotifyをコールした可能性があります。waitをコールする場合に注意が必要な点は、notifyが前に何度もコールされていたとしても、waitメソッドはnotifyがもう1度コールされるまで待機するという点です。また、待機しているスレッドがない場合、notifyはエラーを返しません。デッドロック・ブレークポイントでは、このタイプのデッドロックは検出できません。

プログラムがハングしている可能性がある場合は、デバッガで「プログラムの停止」をクリックしてプログラムを一時停止し、「モニター」ウィンドウを開きます。コードを調べて、待機しているスレッドを見つけます。最初のスレッドがwaitをコールする前に別のスレッドがnotifyをコールしている場合はデッドロックが発生しています。このタイプのデッドロックの検出は非常に困難です。他のどのスレッドがnotifyをコールしたかを検出するには、作成したコードをよく理解しておく必要があります。

14.9.3 デッドロック・ブレークポイントの理解

JDeveloperのデバッガでは、実行を開始すると永続デッドロック・ブレークポイントが設定されます。デッドロック・ブレークポイントは、デッドロックのソースの場所を特定するのが困難な場合に便利です。デバッガは、デッドロック・ブレークポイントに達すると停止します。デバッガは、前述のモニター・ブロック・サイクル・デッドロックを検出できます。モニター・ウィンドウは、デッドロックを処理する場合に有益です。

デッドロック・ブレークポイントには、次の特徴があります。

- JDeveloperを使用するときに自動的に作成される永続ブレークポイントです。

- 削除できませんが、無効にすることはできます。

- モニター・ブロック・サイクル・デッドロックが検出されるとデバッガを一時休止します。モニター・ブロック・サイクル・デッドロックは、複数のスレッドが、他のスレッドがすでに実行中の同期コードを実行するために待機し、処理ができなくなる場合に発生します。

JDeveloperのデバッガでは、永続デッドロック・ブレークポイントが自動的に作成されます。このブレークポイントは、モニター・ブロック・サイクルが検出されるたびに発生します。永続ブレークポイントは削除できません。新規デッドロック・ブレークポイントの作成はできませんが、既存の永続デッドロック・ブレークポイントの編集は可能です。

デッドロック検出がサポートされていないJava Virtual Machineもあります。たとえば、HotSpot VMでは、デッドロック検出はサポートされていません。

14.9.4 グループ化されたブレークポイントの理解

ブレークポイントのグループ化によって、ブレークポイントのセットを有効にすることができます。デバッガがコードの特定の場所に達したときに、無効になっているブレークポイントまたはブレークポイントのグループを有効にするように指定できます。

たとえば、コードによってNullPointerExceptionが検出されるものの、コードが正しく動作しない場合があります。このとき、NullPointerExceptionが予想以上に頻繁に発生し、このためにデバッガが繰り返し停止しますが、これらのNullPointerExceptionの中にはコードにとって意味のないものが含まれているとします。この状況は、ブレークポイント・グループを作成し、このブレークポイントをグループに追加して、デバッグ中にデバッガがこのブレークポイントで停止しないようにブレークポイント・グループを無効にすることで解決できます。

次に、問題のあるNullPointerExceptionがスローされる直前に実行されるコードにソース・ブレークポイントを作成できます。ソース・ブレークポイントに対して、このブレークポイントが発生したときに、例外ブレークポイントを含むブレークポイント・グループを自動的に有効にする処理を設定できます。

14.9.5 ブレークポイント・オプションの編集方法

JDeveloperでは、ソース・コードに追加した後でもブレークポイントのオプションを編集できます。「ブレークポイントの編集」ダイアログでは、次のことを実行できます。

- ブレークポイント・オプションを設定します。

- ブレークポイントを適用するスレッドの設定

- ブレークポイントのパスの回数の設定

- ブレークポイント・グループへのブレークポイントの挿入

- ブレークポイントが発生した際にデバッガで実行する処理の選択

ブレークポイントのオプションを表示および編集するには、次のようにします。

1. 「ブレークポイント」ウィンドウが開いていない場合は、メイン・メニューから「表示」→「ブレークポイント」を選択します。

2. 「ブレークポイント」ウィンドウで、ブレークポイントを選択します。

3. 右クリックして「編集」を選択するか、「ブレークポイント」ツールバーで「編集」アイコンをクリックします。
「定義」タブ、「条件」タブおよび「処理」タブを含む「ブレークポイントの編集」ダイアログが表示されます。

4. ブレークポイントのオプションに必要な変更を加えます。

5. 変更を受け入れるには、「OK」をクリックします。

14.9.6 ブレークポイントの編集

ソース・エディタに配置されているブレークポイントを右クリックすると編集できます。図14-9に示す「ブレークポイントの編集」ダイアログ・ボックスが表示され、ブレークポイントの定義を指定できます。このダイアログで、有効/無効、条件などブレークポイントの重要な属性の一部を編集できます。

- 図14-9 「ブレークポイントの編集」ダイアログ

ソース・エディタでブレークポイントにカーソルを重ねて、図14-9のダイアログを表示することもできます。

14.9.7 ソース・ブレークポイントの設定方法

ソース・ブレークポイントは、ソース・コードで設定するブレークポイントで、デフォルトのブレークポイント・タイプです。

ソース・ブレークポイントを設定するには、次のいずれかを実行します。

- ソース・エディタで、実行可能なコード行の隣の左マージンをクリックします。

- ソース・エディタで、コード行の横の左余白を右クリックし、「ブレークポイントの設定」([F5])を選択します。

- 「表示」→「ブレークポイント」を選択して、「ブレークポイント」ウィンドウを開きます。次に、このウィンドウの任意の場所を右クリックし、ポップアップ・メニューから「ブレークポイントの追加」を選択します。サブメニューから、ブレークポイント型として「ソース・ブレークポイント」を選択し、ダイアログにパッケージ、ソース・ファイル名、行番号情報を入力します。ソース・ファイル名には、ディレクトリ情報は指定しませんが、ファイルの拡張子を指定する必要があります。たとえば、次のように指定します。次に例を示します。

Application1.java or MyWebApp.jsp

通常は、デバッグを開始する前に少なくとも1つのブレークポイントを設定しますが、この作業は必須ではありません。デバッガでプログラムを実行中に、ブレークポイントを設定できます。ブレークポイントに達すると、プログラムは一時休止します。

14.9.8 ブレークポイントの動作の制御方法

ブレークポイントが発生した場合のデバッガの動作を制御できます。

ブレークポイントが発生した場合のデバッガの動作を制御するには、次のようにします。

1. 「ブレークポイント」ウィンドウのツールバーで、「ブレークポイントの追加」をクリックします。または、ブレークポイントを設定して「編集」をクリックします。

2. 「新規ブレークポイント」ダイアログまたは「ブレークポイントの編集」ダイアログで「処理」タブをクリックします。「処理」タブでは、次の動作を変更できます。

- 実行の停止(デフォルト)

- ビープ音

- ブレークポイントの発生を記録(タグまたは式を入力)

- ブレークポイントのグループを使用可にする

- ブレークポイントのグループを使用不可にする

14.9.9 ブレークポイントの削除方法

ブレークポイントでコードを確認する必要がなくなった場合は、ブレークポイントを削除できます。削除には、ソース・エディタまたは「ブレークポイント」ウィンドウを使用します。

ブレークポイントを削除するには、次のいずれかを実行します。

- ソース・エディタの左マージンで、削除するブレークポイントをクリックします。

- ソース・エディタの左マージンで削除するブレークポイントを右クリックし、「ブレークポイントの設定」を選択します。

- ソース・エディタで、そのブレークポイントが含まれているコード行にカーソルを置き、[F5]キーを押します。

- 現在設定されているブレークポイントをすべて削除するには、「ブレークポイント」ウィンドウで右クリックし、「すべて削除」を選択します。

- 「ブレークポイント」ウィンドウでブレークポイントを選択し、ツールバーで「ブレークポイントの削除」をクリックします。

警告:

削除したブレークポイントを元に戻すことはできません。

14.9.9.1 ブレークポイントの無効化方法

ブレークポイントを無効にすると、ブレークポイント設定の定義はすべてそのままですが、プログラムの実行時にブレークポイントがトリガーされません。プログラムは無効なブレークポイントでは停止しません。現在は使用しないが、後で必要になるブレークポイントを定義した場合は、ブレークポイントを無効にすると便利です。

ブレークポイントを無効化するには、次のいずれかを実行します。

- ソース・エディタで、左マージンにあるブレークポイント記号を右クリックし、「ブレークポイントを無効化」を選択します。

- 「ブレークポイント」ウィンドウ(「ウィンドウ」→「デバッガ」→「ブレークポイント」)で、無効にするブレークポイントを右クリックして「無効化」を選択します。

- 「ブレークポイント」ウィンドウでブレークポイントのグループを無効にするには、無効にするグループを選択し、右クリックして「グループを無効化」を選択します。
また、「ブレークポイント」ツールバーからブレークポイントを無効にすることもできます。ブレークポイントまたはブレークポイント・グループを選択し、ツールバーで「無効化」をクリックします。

- 現在のブレークポイントをすべて無効にするには、「ブレークポイント」ウィンドウで右クリックし、ポップアップ・メニューで「すべて無効化」を選択します。

14.9.9.2 ブレークポイントの有効化方法

無効化したブレークポイントを再有効化することができます。

無効化したブレークポイントを再有効化する手順は次のとおりです。

- 無効化したブレークポイントを有効にするには、そのブレークポイントの記号(または「ブレークポイント」ウィンドウのエントリ)を右クリックし、「有効化」を選択します。

- 無効化したすべてのブレークポイントを有効にするには、「ブレークポイント」ウィンドウで右クリックし、「すべて有効化」を選択します。

- ブレークポイントのグループを有効にするには、「ブレークポイント」ウィンドウでブレークポイント・グループを右クリックし、「グループの有効化」を選択します。
また、「ブレークポイント」ツールバーからブレークポイントを有効にすることもできます。ブレークポイントまたはブレークポイント・グループを選択し、ツールバーで「有効化」をクリックします。

14.9.10 インスタンス・ブレークポイントの設定方法

通常、ブレークポイントに達すると常になんらかの影響があります。インスタンス・ブレークポイントは、ブレークポイントが表示されるメソッドを定義するクラスの特定のインスタンスに関連付けられます。

インスタンス・ブレークポイントは、選択したインスタンスを識別するインスタンス・フィルタに関連付けられているソース・ブレークポイントです。インスタンス・ブレークポイントは、デバッガの複数の実行にわたっては保持されません。インスタンス・フィルタは、「ブレークポイント」ウィンドウの「インスタンス・フィルタ」列に表示されます。

インスタンス・ブレークポイントを設定するには、次のようにします。

1. インスタンス・ブレークポイントに変換するソース・ブレークポイントを設定します。ソース・ブレークポイントは、インスタンスのクラスのメソッド内にある必要があります。詳細は、第14.9.7項「ソース・ブレークポイントの設定方法」を参照してください。

2. 目的のインスタンスがアクセスできる位置に2番目のブレークポイントを設定します。

3. 次のように、インスタンス・フィルタを定義します。

- デバッガを開始または再開します。

- デバッガが2番目のブレークポイントで停止したら、「データ」ウィンドウ、「スマート・データ」ウィンドウまたは「監視式」ウィンドウで目的のインスタンスを検索します。

- インスタンスを右クリックして「インスタンス・フィルタ」を選択し、インスタンス・ブレークポイントになるソース・ブレークポイントを選択します。
追跡するその他のインスタンスに対して、この作業を繰り返します。

4. デバッガを再開します。
デバッガは、選択したインスタンスのインスタンス・ブレークポイントでのみ停止します。

14.9.11 例外ブレークポイントの設定方法

一般に、ブレークポイントは特定のコード行に追加され、そのコード行が実行される直前にデバッガを一時休止します。また、特定タイプの例外が発生したときにアクティブになるようにブレークポイントを設定することもできます。例外ブレークポイントは、特定のコード行には関連付けられません。

例外ブレークポイントを設定するには、次のようにします。

1. 「ブレークポイント」ウィンドウで、「ブレークポイント」ツールバーの「ブレークポイントの追加」をクリックします。サブメニューから「例外ブレークポイント」を選択します。
例外ブレークポイントの作成・ダイアログが表示されます。

2. 「定義」タブで、例外クラス名を入力または選択します。

3. 必要に応じて、「例外の検出で常にブレーク」チェック・ボックスまたは「捕捉されない例外の検出でブレーク」チェック・ボックスの選択を切り替えることができます。デフォルトでは両方のチェック・ボックスが選択されています。

4. 「OK」をクリックします。

これで、指定したタイプの例外がスローされるとデバッガは一時停止します。

デフォルトでは、デバッガにより、java.lang.Throwableに未検出の例外がスローされた場合の永続例外ブレークポイントが自動的に作成されます。このブレークポイントは、未検出の例外がスローされると発生します。永続ブレークポイントは無効にできますが、削除できません。

14.9.12 ブレークポイントを条件付きにする方法

ブレークポイントを条件付きにすると、デバッガは特定の条件が満たされた場合に一時休止します。ブレークポイントを初めて設定すると、デバッガはブレークポイントを検出するたびにプログラムの実行を一時休止します。ただし、「ブレークポイントの編集」ダイアログを使用して、特定の条件でのみアクティブになるように、ブレークポイントをカスタマイズできます。

「ブレークポイントの編集」ダイアログの「条件」タブで、プログラムの実行中にデバッガがブレークポイントを検出するたびに評価される式を入力します。式がtrueと評価された場合、プログラムはブレークポイントで一時停止します。ブレークポイント条件を評価できない場合、デバッガは、無条件ブレークポイントであるかのようにその場所で停止します。

条件付きブレークポイントのある行でデバッガが停止すると、ブレークポイント・アイコンの横にブレークポイント条件を示すゴースト・ウィンドウが表示されます。条件がtrueであったためにデバッガが停止した場合は、緑色のチェックマーク・アイコン付きで条件が表示されます。条件を評価できなかったためにデバッガが停止した場合は、疑問符アイコン付きで条件が表示されます。

たとえば、変数mediumCountが10より大きい場合のみコード行で一時停止するブレークポイントを設定するとします。

ブレークポイントの条件を設定するには、次のようにします。

1. ソース・エディタで行の左側をクリックして、コード行にブレークポイントを設定します。

2. 「表示」→「デバッガ」→「ブレークポイント」を選択して、「ブレークポイント」ウィンドウを開きます。

3. 「ブレークポイント」ウィンドウで、設定したブレークポイントを右クリックし、「編集」を選択します。

4. 「ブレークポイントの編集」ダイアログで、「条件」をクリックします。

5. 「条件」フィールドに、たとえばmediumCount > 1のように入力します。

6. 「OK」を選択します。

「ブレークポイントの編集」ダイアログには有効なJava言語式を入力できますが、ブレークポイントの場所から式に含まれるすべての記号にアクセスできる必要があります。また、式にはメソッド・コールを含めることはできません。例外ブレークポイントの場合、_throwを使用して条件に例外オブジェクトを使用できます。

ソース・エディタに配置されているブレークポイントを右クリックして条件を設定することもできます。または、エディタ・ウィンドウの左余白にあるブレークポイント・アイコンの上にマウス・カーソルを重ねます。詳細は、第14.9.6項「ブレークポイントの編集」を参照してください。

14.9.13 パスの回数ブレークポイントの使用

「パスの回数」フィールドでは、ブレークポイントをアクティブにするまでのパスの回数を指定します。パスの回数は、ループがn回目の繰返しで失敗したと考えられる場合に便利です。デバッガはプログラムの実行中にブレークポイントをn回検出するとプログラムを一時休止します。デフォルト値は1です。

ブレークポイント・ウィンドウに「パスの回数」列が表示されている場合、プログラムの実行中にコードのブレークポイント行が検出されるたびにパスの回数の値が減少することが確認できます。ブレークポイント行が検出されたときにパスの回数が1の場合、ブレークポイントがアクティブになり、プログラムはその行で一時休止します。

パスの回数をブレークポイント条件とともに使用すると、プログラムは、条件がtrueとなったn回目にブレークポイントで一時停止します。パスの回数は、条件がtrueの場合のみ減少します。

14.9.14 「ブレークポイント」ウィンドウでブレークポイントを調べる方法

ブレークポイントのリストを表示するには、メイン・メニューから「ウィンドウ」→「デバッガ」→「ブレークポイント」を選択します。デバッガによって有効であると確認されたブレークポイントが、図14-8のようなアイコンで示されます。「ブレークポイント」ウィンドウを使用して、ソース・コード内のブレークポイントの場所を素早く検索できます。

「ブレークポイント」ウィンドウを使用して、ソース・エディタでブレークポイントを検索するには、次のようにします。

1. 「ブレークポイント」ウィンドウで、ブレークポイントを選択します。

2. 右クリックして、ポップアップ・メニューから「ソースに移動」を選択します。

14.9.15 ブレークポイント・グループの管理方法

ブレークポイント・グループを作成し、ブレークポイントをこのグループに追加することにより、複数のブレークポイントを1回の処理で有効または無効にできます。ブレークポイント・グループを作成すると、このグループをブレークポイントと同じように有効化、無効化および削除できます。

14.9.15.1 ブレークポイント・グループの作成方法

ブレークポイント・グループを作成するには、まずブレークポイントを作成し、その後でブレークポイント・グループを作成するために編集します。これにより、選択したグループに含まれるすべてのブレークポイントが有効になります。ブレークポイントが有効である場合、ブレークポイントが発生すると、条件および処理が実行されます。

ブレークポイント・グループを作成するには、次のようにします。

1. 「ブレークポイント」ウィンドウで、ブレークポイントを右クリックし、ポップアップ・メニューから「編集」を選択します。
「ブレークポイントの編集」ダイアログが表示されます。

2. 「ブレークポイントのグループ名」フィールドにブレークポイントのグループ名を入力します。

3. 「OK」をクリックします。
ブレークポイント・ウィンドウに新しいグループが作成され、フォルダ・アイコンで示されます。編集したブレークポイントは、自動的に新しいグループに入ります。

14.9.15.2 ブレークポイント・グループへのブレークポイントの移動方法

ブレークポイントを移動するには、ブレークポイント・グループまでドラッグ・アンド・ドロップするか、または、次の手順を実行します。

ブレークポイント・グループにブレークポイントを移動するには、次のようにします。

1. 「ブレークポイント」ウィンドウで、ブレークポイントを右クリックし、ポップアップ・メニューから「編集」を選択します。
「ブレークポイントの編集」ダイアログが表示されます。

2. 「ブレークポイントのグループ名」フィールドで、ドロップダウン・リストからブレークポイントのグループを選択するか、新規グループ名を入力します。

3. 「OK」をクリックします。
ブレークポイントが指定したグループに追加されます。

14.9.15.3 ブレークポイント・グループの有効化、無効化、または削除

ブレークポイント・グループを有効化、無効化または削除するには、「ブレークポイント」ウィンドウで、ブレークポイント・グループを右クリックし、ポップアップ・メニューから「グループの有効化」、「グループを無効化」または「グループの削除」を選択します。

「ブレークポイント」ツールバーからグループを有効化または無効化することもできます。「ブレークポイント」ウィンドウでグループ名を選択し、ツールバーの「有効化」または「無効化」アイコンをクリックします。選択したグループのすべてのブレークポイントが有効化または無効化されます。

14.10 デバッガのウィンドウでプログラムの状態を確認する

プログラムは、ステップ実行すると表示できますが、通常はプログラム変数の値を調べて不具合を検出する必要があります。たとえば、ループをステップ実行する際に索引変数の値を確認したり、メソッド・コールで渡されるパラメータの値を確認できると便利です。プログラムがデバッガで一時休止したときに、変数、引数、フィールドおよび配列項目の値を調べることができます。

14.10.1 データ要素のインスペクトおよび変更方法

デバッグ・セッション中にデータ、スマート・データ、インスペクタ、監視式ウィンドウを使用して、データ項目の値をインスペクトおよび変更できます。

JDeveloperでは、「データ」ウィンドウを追加せずにデータ項目をインスペクトすることもできます。ソース・エディタで、デバッガがブレークポイントで停止したら、データ項目の上にマウス・カーソルを重ねると、名前、値、タイプが表示されます。データ項目がオブジェクトまたは配列の場合は、オブジェクト階層の下位にある、選択した項目の子もインスペクトできます。

14.10.1.1 データ・アイテムのインスペクト方法

データ項目をインスペクトするときには、デバッグ・セッションの実行中に異なる式で評価します。プログラム・データ値を変更して、プログラム実行中に不具合の仮修正をテストできます。変更によってプログラムのエラーが修正されたことを確認した場合、デバッグ・セッションを終了し、プログラム・コードを修正した後、プログラムを再コンパイルして修正を確定できます。

データ項目をインスペクトするには、次のようにします。

1. デバッガがブレークポイントで停止している間にデータ・ウィンドウを開きます。

2. 「データ」ウィンドウで項目を右クリックし、ポップアップ・メニューから「インスペクト」を選択します。
フローティング形式の「インスペクタ」ウィンドウが開き、項目の名前、値、その他の関連情報が表示されます。このウィンドウに表示される列は、「ツール」→「プリファレンス」→「デバッガ」→「インスペクタ」ページで有効にした列設定によって異なります。詳細は、第14.8.5項「「インスペクタ」ウィンドウの使用方法」を参照してください。

3. 項目の式を評価するには、ポップアップ・メニューから「式の編集」を選択します。
監視式を追加することも、データ項目をさらにインスペクトすることもできます。

4. 終わったら、「インスペクタ」ウィンドウを閉じます。

14.10.1.2 変数の値の変更方法

また、デバッグ・セッション中にプログラム・データ値を変更して、プログラム実行中に不具合の仮修正をテストできます。変更によってプログラムのエラーが修正されたことを確認した場合、デバッグ・セッションを終了し、プログラム・コードを修正した後、プログラムを再コンパイルして修正を確定できます。

変数の値を変更する場合、変更はその特定のプログラム実行に対してのみ有効です。「データ」ウィンドウまたは「監視式」ウィンドウで行った変更は、プログラムのソース・コードまたはコンパイル済のプログラムには影響しません。変更を確定するには、ソース・エディタでプログラムのソース・コードを変更し、プログラムを再コンパイルする必要があります。

新しい値の型と割当先の変数の型とには互換性が必要です。割当てによってコンパイルに時間がかかったり、実行時エラーが発生したりした場合には、有効な変更値とは言えません。

データ・ウィンドウで変数の値を変更するには、次のようにします。

1. デバッガがブレークポイントで停止している間にデータ・ウィンドウを開きます。

2. データ・ウィンドウで項目を右クリックし、ポップアップ・メニューから「値の変更」を選択します。
選択した項目の名前と現在の値を示す「値の変更」ダイアログが表示されます。

3. 項目の新しい値を入力します。

- プリミティブ値を変更する場合、新しい値を入力できます。

- (文字列以外の)参照ポインタを変更する場合、既存オブジェクトまたは配列のメモリー・アドレスを入力できます。

- 文字列を変更する場合、新しい文字列値または既存文字列のメモリー・アドレスを入力できます。

4. 「OK」をクリックして、項目の値を変更し、ダイアログを閉じます。
データ・ウィンドウ、スマート・データ・ウィンドウ、インスペクタ・ウィンドウまたは監視式ウィンドウに新しい値が表示されます。

14.10.2 監視式の設定方法

監視式を使用すると、プログラムの実行に従って変化する、変数および式の値を監視できます。監視式を入力すると、監視式ウィンドウに、式の現在の値が表示されます。プログラムの実行時、プログラムによって監視式の変数の値が更新されるため、監視の値が変化します。

監視は、「スタック」ウィンドウでの選択内容によって制御される現行のコンテキストに従って、式を評価します。新しいコンテキストに移動すると、その新しいコンテキストに対して式が再評価されます。監視式の変数が定義されていない場所に実行ポイントが移動すると、監視式全体が未定義になります。監視式を評価できる場所に実行ポイントが戻ると、「監視」ウィンドウに再び監視式の値が表示されます。

「監視」ウィンドウを開くには、メイン・メニューから「ウィンドウ」→「デバッガ」→「監視」を選択します。

また、次のいずれかの方法で監視を追加できます。

- データ・ウィンドウでデータ項目を選択します。右クリックして、「監視式」を選択します。

- 「監視式」ウィンドウを右クリックし、「監視式の追加」を選択します。

- マウスを使用してデータをデータ・ウィンドウから監視式ウィンドウにドラッグ・アンド・ドロップします。

14.10.2.1 ソース・エディタから監視を追加する方法

ソース・エディタで、式に監視を追加できます。

ソース・エディタから監視式を追加するには、次のようにします。

1. ソース・エディタで、監視する式をカーソルを使用して選択します。

2. 右クリックし、ポップアップ・メニューから「監視式」を選択して、「監視式」ウィンドウに式を追加します。
式が入力されたダイアログが表示されます。

3. 必要に応じて式を編集します。

4. 「OK」をクリックします。

14.10.2.2 監視の編集方法

監視を編集するには、「監視」ウィンドウでその式を選択します。

監視式を編集するには、次のようにします。

1. 監視式ウィンドウで式を選択して右クリックし、「監視式の編集」を選択します。
「監視式の編集」ダイアログが表示されます。

2. 新しい式を入力するか、既存の式を変更して、「OK」をクリックします。

14.10.2.3 監視の削除方法

監視を編集するには、「監視」ウィンドウでその式を選択します。

監視式を削除するには、次のようにします。

1. 「監視」ウィンドウで式を選択します。

2. [Del]キーを押すか、右クリックして、ポップアップ・メニューから「監視の削除」を選択します。
ポップアップ・メニューから「すべての監視式を削除」を選択して、すべての監視式を削除することもできます。

警告:

削除した監視式を元に戻すことはできません。

14.10.3 「インスペクタ」ウィンドウでの式の変更方法

「インスペクタ」ウィンドウで、既存の式を変更できます。

インスペクタ・ウィンドウで式を変更するには、次のようにします。

1. 対応するテキスト・ボリュームに新しい式を入力するか、「インスペクタ」ウィンドウで右クリックして、ポップアップ・メニューから「式の編集」を選択します。
「式の編集」ダイアログが表示されます。

2. 新しい式を入力します。

3. 「OK」をクリックします。

14.10.4 「フィルタ対象クラス」リストでフィールドの表示/非表示を切り替える方法

デバッグ中、フィルタを使用して、データ関連「デバッガ」ウィンドウでオブジェクトを展開するときに表示するフィールド数を減らすことができます。このタスクは、「スマート・データ」ウィンドウ、「データ」ウィンドウ、「インスペクタ」ウィンドウ、「監視式」ウィンドウ、および「モニター」ウィンドウの左側で「オブジェクト設定」ダイアログを使用して実行できます。フィールド数を減らすことにより、デバッグの対象範囲が絞られ、プログラムの問題を容易に検出して切り離すことができるようになります。

たとえば、データ・ウィンドウでクラスに対してフィルタを作成し、必要なフィールドのみを表示できます。これにより、画面が見やすくなり、関連するデータを簡単に見つけることができます。

「フィルタ対象クラス」リストでフィールドを表示または非表示にするには、次のようにします。

1. データ関連「デバッガ」ウィンドウでオブジェクトを選択します。右クリックして、ポップアップ・メニューから「オブジェクト設定」を選択します。
「オブジェクト設定」を選択することで、この特定のオブジェクトに関する「オブジェクト設定」ダイアログに直接移動でき、このダイアログで、オブジェクトを展開するときに表示するフィールドと表示しないフィールドを制御するフィルタを指定できます。

2. 「オブジェクト設定」ダイアログでは、選択したオブジェクトのスーパークラス階層を簡単に横断しながら、各スーパークラスのフィルタを定義および更新できます。「タイプ」ウィンドウでクラスを選択し、「デバッガ」ウィンドウの「値」列に表示する、または表示しないフィールドを選択します。

3. 「表示するフィールド」リストから「非表示にするフィールド」リストにフィルタを移動するには、矢印をクリックします。

4. 終了したら「OK」をクリックします。

14.11 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プログラムをデバッグする場合は、このオプションを選択します。

14.11.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を参照してください。

14.11.2 リモート・デバッグ用に設定されたプロジェクトの使用方法

任意のプロジェクトを構成して、リモート・デバッグを実行できます。

リモート・デバッグ用にプロジェクトを設定するには、次のようにします。

1. ツールバーから「デバッグ」をクリックします。
適切なアタッチ・ダイアログが表示されます。

2. 「ホスト」リスト・ボックスで、リモートのデバッグ対象プロセスを開始するマシンの名前またはIPアドレスを入力するか、選択します。

3. 「ポート」リスト・ボックスで、リモートのデバッグ対象プロセスのポート番号を入力するか、選択します。

4. 「OK」をクリックします。
デバッガが接続されると、ログ・ウィンドウに、接続に成功したことを示すメッセージが表示されます。

5. JSPまたはサーブレットをデバッグしている場合は、ブラウザを起動してJSPまたはサーブレットにアクセスする必要があります。
EJBをリモート・デバッグしている場合は、EJBにアクセスするEJBクライアントを実行する必要があります。

6. 通常と同じようにデバッグ・セッションを続けます。

7. デバッグ対象プロセスを終了することなく、リモートのデバッグ対象プロセスからデバッガの接続を解除するには、「実行」→「連結解除」メニュー・オプションを選択します。T
このオプションは、アプリケーション・サーバーをリモート・デバッグする場合に適しています。

8. リモートのデバッグ対象プロセスを終了するには、「実行」→「終了」メニュー・オプションを選択するか、「終了」アイコンを選択します。

14.11.3 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にアクセスします。ブレークポイントが検出され、すべて予想どおりに動作します。

15 Java Swingユーザー・インタフェースの実装

この章では、Swingコンポーネントを使用するアプリケーションのユーザー・グラフィカル・インタフェース(GUI)を作成する方法について説明します。

JDeveloperのSwing GUIビルダーを使用すると、Swingコンポーネントを使用したJavaアプリケーションのユーザー・インタフェース(UI)の要素を、迅速かつ容易に作成できます。このUIは、「コンポーネント」ウィンドウから選択したコンポーネント(ボタン、テキスト領域、リスト、ダイアログ、メニューなど)を使用して構成します。次に、コンポーネント・プロパティの値を設定し、コンポーネント・イベントにイベント・ハンドラ・コードをアタッチします。

これには、AWTおよびSwingベースのクライアント・アプリケーション専用のユーザー・インタフェースのデバッグに使用されるUIデバッガの説明が含まれます。UIデバッガには、GUIアプリケーションのデバッグについて代替方法が用意されています。

この章には次の項が含まれます:

- 第15.2項「Java SwingのUIコンポーネントとコンテナについて」

- 第15.3項「Java GUIの設計」

- 第15.4項「フォームの作成方法」

- 第15.5項「作成可能なフォームの理解」

- 第15.8項「レイアウト・マネージャの使用」

- 第15.6項「コンポーネントの追加」

- 第15.7項「コンテナの使用」

- 第15.9項「アクセス可能なフォームの作成方法」

- 第15.10項「イベント処理の使用」

- 第15.11項「GUIソース・コードの変更方法」

- 第15.12項「UIデバッガの使用」

15.1 旧バージョンで開発されたアプリケーションについて

旧バージョンのJDeveloperで開発されたSwingを使用するアプリケーションを本バージョンのJDeveloperに移行して開くことができます。また、以前に設計されたビジュアル・クラスの使用も完全にサポートされています。レガシー・エディタでは、jbInit()メソッドを持つすべてのクラスが使用できます。

以前のJavaビジュアル・エディタを使用する旧アプリケーションで、視覚的にフォームを編集できますが、以前の動作方法と新しいSwing GUIビルダーの動作方法は異なります。また、アプリケーション間を移行する方法はありません。

15.2 Java SwingのUIコンポーネントとコンテナについて

Java Swingのコンポーネントには、ボタン、表、テキスト・コンポーネント、および分割区画のすべてが含まれます。たとえば、JCheckboxコンポーネントは四角いボックスで、ブール値(true/false)の表示に使用します。多くのコンポーネントには、ソート、印刷、ドラッグ・アンド・ドロップの機能があり、その他にもサポートされる機能が組み込まれています。

http://docs.oracle.com/javase/tutorial/uiswing/から表示可能なチュートリアルで、Java Swingの使用例を参照できます。

JDeveloperでUIを設計するためにフォームをレイアウトする際、コンテナを使用します。コンテナもコンポーネントです。コンテナでは、その他のコンポーネントが保持および管理されます。コンテナのプロパティの取得と設定、メソッドのコール、さらに、その他のコンポーネントと同様にイベントへの応答を通してコンテナと対話します。JDeveloperには、コンテナの生成に役立つツールが用意されています。詳細は、第15章「コンテナの使用」を参照してください。

レイアウト・マネージャでは、そのレイアウト・マネージャ固有の特定のルール・セットに従ってコンテナ内のコンポーネントが自動的に配置されます。これによって、コンテナ内でのコンポーネントのサイズと位置が決まります。たとえば、BorderLayoutは、最初、最後、前、後および中央の領域にコンテナのコンポーネントを配置します。

図15-1 BorderLayout

15.3 Java GUIの設計

IDEのGUIビルダーによって、視覚的にGUI(グラフィカル・ユーザー・インタフェース)を設計できます。GUIの作成および変更が行われている間に、IDEはインタフェースを実装するJavaコードを自動的に生成します。

GUIフォームを開くときには必ず、ソース・ビューと設計ビューとを切り替えるためのタブが同時に表示されます。デザイン・ビューではGUIフォームを視覚的に使用できるのに対し、ソース・ビューではフォームのソース・コードを直接編集できます。

通常は、「コンポーネント」ウィンドウを使用してコンポーネントをフォームに追加し、GUIビルダー・ワークスペースに配置します。作業が進むにつれて、GUIビルダーは、追加するコンポーネントに望ましい位置合せと配置指定を提案するガイドラインを表示します。「プロパティ」ウィンドウを「構造」ウィンドウと併用すると、フォームのコンポーネントとレイアウト・マネージャのプロパティの調査と調整、コンポーネント・イベント・ハンドラの管理、およびコードの生成方法の定義を行うことができます。

注意:

- GroupLayoutは、Javaプラットフォームのバージョン6に追加されました。このバージョンのGroupLayoutを、フォームごとにプロパティ・シートに設定できます。

- GUIビルダーを使用するには、IDEのGUIフォーム・テンプレートで作成されたファイルを使用する必要があります。IDEの外側で作成されたGUIフォーム(つまり、Javaファイル)は、GUIビルダーを使用して編集することはできません。

15.3.1 ガード付きブロックについて

設計ビューでフォームを使用して作業を進めるうちに、GUIビルダーによってコードが自動的に生成され、そのコードはソース・ビューにグレーの背景で表示されます。このコードはガード付きコードと呼ばれ、直接編集することはできません。

注意:

ガードされていないコードはすべて、自由に編集できます。たとえば、UIの初期化またはカスタマイズ用のコードを作成できます(initComponents()コールの直後のコンストラクタの中に入れます)。

すべてのコンポーネントにはフィールドが関連付けられているため、Javaクラス内のどこからでもアクセスできます。

GUIビルダーにより生成されるガード付きテキストには、次のものがあります。

- コンポーネントの変数宣言のブロック。

- initComponents()メソッド(この中でフォーム初期化が実行されます)。このメソッドはフォームのコンストラクタからコールされます。これは手動で編集できませんが、コンポーネントのプロパティ・シートでCodeプロパティを編集することにより、その生成方法に影響を与えることができます。

- すべてのイベント・ハンドラのヘッダー(および末尾のカッコ)。

15.4 フォームの作成方法

既存のプロジェクト内でフォームを作成できます。

新しいフォームを作成する手順は次のとおりです。

1. 「アプリケーション」ウィンドウで、フォームを作成するためのプロジェクトを選択します。

2. メイン・メニューから、「新規」→「ギャラリから」→「クライアント層」→「Swing/AWT」を選択します。

3. 作成するフォームのタイプを選択します。

4. ウィザードへの入力を完了させて、「OK」をクリックします。

5. 「アプリケーション」ウィンドウで、フォームのソース・ファイル(例: NewPanel.java)にスクロールします。

6. ソース・ファイルをダブルクリックします。
GUIビルダーで、フォームが編集可能な場所が表示されます。

15.5 作成可能なフォームの理解

次の表に、JDeveloperでビルドできるフォームを示します。

Form

説明

JPanelフォーム

新しいSwingパネルを作成します。パネルは、いくつかの他のコンポーネントを1箇所にまとめるために頻繁に使用します。JPanel自体も、JFrameまたはJDialog内でコンポーネントとして使用できます。

JFrameフォーム

新しいSwingフレームを作成します。フレームは一般に、アプリケーションのメイン・ユーザー・インタフェースとして、スタンドアロンのトップレベルのウィンドウとして使用されます。大半のSwingアプリケーションがこのフォームから開始してビルドされます。

JDialogフォーム

新しいSwingダイアログを作成します。ダイアログはモーダルまたはモードレスのウィンドウで、通常はユーザーに入力を促すために使用します。

JInternalFrameフォーム

新しいSwing内部フレームを作成します。このフレームをJDesktopPaneの中に配置すると、MDIユーザー・インタフェースを提供することができます。

Beanフォーム

任意のJavaBeansコンポーネント(ビジュアルまたは非ビジュアルのいずれか)に基づいて、新しいフォームを作成します。ウィザードでBeanクラスを指定する必要があります。

Panelフォーム

新しいAWT (Abstract Window Toolkit)パネルを作成します。パネルは、いくつかの他のコンポーネントを1箇所にまとめるために頻繁に使用します。

AWTは、旧バージョンのJDeveloperで使用されるツールキットです。現在はSwingを推奨しています。

Frameフォーム

新しいAWTフォームを作成します。フレームは一般に、アプリケーションのメイン・ユーザー・インタフェースとして、スタンドアロンのトップレベルのウィンドウとして使用されます。

Dialogフォーム

新しいAWTダイアログを作成します。ダイアログはモーダルまたはモードレスのウィンドウで、通常はユーザーに入力を促すために使用します。

15.6 コンポーネントの追加

新しいフォームが作成されると、表示および制御用にコンポーネントを追加できます。コンポーネントの追加は、次のようにいくつかの方法で実行できます。

「コンポーネント」ウィンドウから1つのコンポーネントを追加する手順は次のとおりです。

1. 「コンポーネント」ウィンドウで、コンポーネントのアイコンをクリックしてそのコンポーネントを選択します。

2. マウス・ボタンを押したまま、コンポーネントをフォーム内の目的の位置までドラッグします。

3. 設計したコンテナのビジュアル階層の外に非ビジュアル・コンポーネント、またはビジュアル・コンポーネントを追加する場合は、そのコンポーネントをフォームの周りの白いエリアに配置します。それが、「構造」ウィンドウ内の「他のコンポーネント」ノードの下に表示されます。

「コンポーネント」ウィンドウから複数のコンポーネントを追加する手順は次のとおりです。

1. 「コンポーネント」ウィンドウで、コンポーネントのアイコンをクリックしてそのコンポーネントを選択します。マウス・ボタンを放します。

2. [Shift]キーを押しながら、パレットで選択したコンポーネントのインスタンスをフォーム内で配置する各位置をクリックします。

3. 最後のコンポーネントを追加したら[Shift]キーを放します。または、追加を取り消す場合は[Esc]キーを押すか、右クリックします。

4. 設計したコンテナのビジュアル階層の外に非ビジュアル・コンポーネント、またはビジュアル・コンポーネントを追加する場合は、そのコンポーネントをフォームの周りの白いエリアに配置します。それが、「構造」ウィンドウ内の「他のコンポーネント」ノードの下に表示されます。

ポップアップ・メニューを使用して1つのコンポーネントを追加する手順は次のとおりです。

1. 「構造」ウィンドウで、コンポーネントの追加先のコンテナを右クリックします。

2. 「パレットから追加」サブメニューから目的のコンポーネントを選択します。

15.6.1 コンポーネント・プロパティの設定方法

コンポーネントがフォームに追加されると、「プロパティ」ウィンドウでそのコンポーネントの動作と外観を調整できます。

コンポーネントのプロパティを編集する手順は次のとおりです。

1. GUIビルダーまたは「構造」ウィンドウでコンポーネントを選択し、「プロパティ」ウィンドウにそのプロパティを表示します。複数のコンポーネントを選択した場合は、それらの共通プロパティが表示されて、変更が加えられた場合は選択されたすべてのコンポーネントに変更が適用されます。

2. 「プロパティ」ウィンドウでコンポーネントのプロパティを編集するには、プロパティを選択して、目的の値を入力します。

3. 編集するプロパティに省略記号(...)ボタンが付いている場合は、それをクリックすると、より高度な編集オプション(たとえば、カラー・タイプのプロパティ用のカラー・チューザなど)、あるいは、プロパティ値を表すコードを直接入力できる機能も含め、プロパティ値を指定する代替方法(たとえば、テキスト・プロパティ用にリソース・バンドルを使用)を提供する特別なプロパティ・エディタを開くことができます。
これを使用すると、プロパティ・ウィンドウで小さいインプレース・エディタを使用する方法とは別の方法で、指定されたプロパティを編集できます。また、上部のコンボ・ボックスを使用してプロパティ値を入力する場合にも、いくつかの方法から選択できます。

15.6.2 ユーザー・インタフェースでのコンポーネントの選択方法

UIの既存のコンポーネントを選択する前に、GUIビルダー・ツールバーの選択矢印が押下されていることを確認してください。そうでない場合、コンポーネントを意図せずにUIに配置してしまうことがあります。

15.6.2.1 単一コンポーネントの選択方法

単一コンポーネントを選択するには、次のいずれかの操作を実行します。

- GUIビルダーでコンポーネントをクリックします。

- GUIビルダーにフォーカスを置き、[Tab]を使用してコンポーネントに移動します([Tab]を押すと正方向へ移動し、[Shift]を押しながら[Tab]を押すと逆方向へ移動します)。

- 「構造」ウィンドウでコンポーネントを選択します。

15.6.2.2 複数のコンポーネントの選択方法

複数のコンポーネントを選択するには、[Ctrl]キーを押しながら次のいずれかの操作を実行します。

- [Ctrl]キーを押しながら、GUIビルダーまたは「構造」ウィンドウでコンポーネントをクリックし、選択したコンポーネントを1つずつ追加/削除します。

- 選択するコンポーネントの範囲の外側をクリックしてドラッグします。ドラッグして複数コンポーネントを(投げ縄で囲むように)方形で囲みます。選択するコンポーネントがすべてこの方形で囲まれた時点で、マウス・ボタンを放します。必要な場合は、[Ctrl]キーを押しながらクリックして、選択したグループのコンポーネントを個別に追加または削除できます。
サブコンテナ内の選択をドラッグする必要がある場合、通常はサブコンテナそのものをドラッグします。この方法を避けたい場合は、[Shift]キーを押しながらドラッグします。

- [Shift]キーを押しながら「構造」ウィンドウでコンポーネントをクリックして、間隔選択を実行します。デザイン・キャンバスで[Shift]をクリックすると、1つずつ選択に追加されますが、選択からの削除は行われません。

15.6.3 コンポーネントの位置合せ方法

コンポーネントが追加されたら、実行時に意図したとおりにフォームが表示されるようにコンポーネントの位置合せを調整できます。

多くの場合、ドラッグする際に提案された位置にコンポーネントを「スナップ」することによって、望ましい位置合せが達成できます。さらに、ツールバーまたはポップアップ・メニューから位置合せアクションを使用して、さらに位置合せを調整できます。

注意:

これはフリー・デザイン(デフォルトのレイアウト・モード)のみに適用されます。その他のレイアウト・マネージャには適用できません。

コンポーネントを位置合せする手順は次のとおりです。

1. GUIビルダーで位置合せをするコンポーネントを選択します。

2. GUIビルダーのツールバーで、適切な位置合せボタンをクリックします。
または、いずれかのコンポーネントを右クリックして、ポップアップ・メニューから「位置合せ」→「列内で左揃え」(または、「位置合せ」→「列内で右揃え」)を選択することもできます。

IDEでは、指定されたエッジの位置合せが行われて、コンポーネントのアンカー関係が更新されるようにコンポーネントの位置をシフトします。

15.6.4 コンポーネントのサイズ設定方法

モーダル・ダイアログでのボタンなどのように複数の関連コンポーネントを同じサイズに設定しておくと、類似機能を提供するものとして容易に認識できるため、役立ちます。また、コンポーネント間の関係が実行時に維持されるように、コンポーネントのサイズ変更動作を調整することもできます。

フリー・デザイン・モードでは、必要に応じてマウスを使用してコンポーネントのサイズを設定できます。ただし、マウスを使用する場合はよく考えてください。コンポーネントをデフォルトのサイズから固定サイズに変更すると、コンポーネントがハードコード化されたサイズ(ピクセル単位)で設定されるため、クロス・プラットフォームのレイアウト原則に反する場合があります。通常は、ボタンやラベルのサイズを変更する必要はありません。これらのサイズはそれぞれのテキストによってのみ定義されます。「自動サイズ変更」に設定されている固定コンテンツを持たないコンポーネントをサイズ変更することは通常は問題ありません。その理由は、このようなコンポーネントは実行時にサイズを調整できるためです(たとえば、テキスト・フィールド)。

null、AbsoluteLayout、またはGridBagLayoutを使用している場合は、最初にUIに配置するときにコンポーネントのサイズを設定したり、後でコンポーネントをサイズ変更して移動できます。

注意:

これはフリー・デザイン(デフォルトのレイアウト・モード)のみに適用されます。その他のレイアウト・マネージャには適用できません。

コンポーネントを同じサイズにするには:

1. GUIビルダーで同じサイズにする必要のあるコンポーネントをすべて選択します。

2. いずれかのコンポーネントを右クリックし、ポップアップ・メニューから「同じサイズ」→幅の設定(または、「同じサイズ」→高さの設定)を選択します。

コンポーネントのサイズ変更の動作を設定する手順は次のとおりです。

1. 自動設定変更動作を設定するコンポーネントを選択します。

2. いずれかのコンポーネントを右クリックし、ポップアップ・メニューから「自動サイズ変更」→「水平方向」(または、「自動サイズ変更」→「垂直方向」)を選択します。
あるいは、ツールバーのボタンを使用します。

コンポーネントの自動サイズ変更動作は、実行時に水平方向のサイズ変更に設定されています。位置合せガイドラインとアンカーのインジケータが更新され、新しいコンポーネントの関係を示すように更新されます。

15.7 コンテナの使用

Java GUIは最上位レベルのコンテナで構成されたフォームであり、その中にはグループ化されたサブコンテナと、必要な情報の提供および機能の制御に使用される各種コンポーネントがあります。

GUIビルダーで通常表示されるフォーム全体ではなく、単一のサブコンテナに作業をフォーカスさせるほうが効果的です。複雑にネストしたコンテナの階層が含まれている大容量のフォームを使用する場合、GUIビルダーのフォーカスの範囲をインタフェースの特定の部分に集中するように変更できます。

GUIビルダーのフォーカスを特定のコンテナに変更する手順は次のとおりです。

1. GUIビルダーまたは「構造」ウィンドウで、編集するコンテナを右クリックします。

2. ポップアップ・メニューから「このコンテナをデザイン」を選択します。
作業領域全体に現在のコンテナが表示されるようにワークスペースの表示が調整され、フォームのその他のコンポーネントが非表示になります。フォームの階層全体は、「構造」ウィンドウに表示されたままです。

GUIビルダーの表示フォーカスをフォーム全体に戻す手順は次のとおりです。

1. GUIビルダーでコンテナをクリックします。

2. ポップアップ・メニューから「トップ・コンテナをデザイン」を選択します。
フォーム全体が表示されるように作業領域の表示が調整されます。「トップ・コンテナをデザイン」メニュー項目が明るく表示されない場合は、フォーム全体がすでに設計されています。

15.7.1 コンテナ内でのコンポーネントの並替え

コンテナ内のコンポーネントの順序は、コンポーネントの追加順序に従っています。コンテナ用に選択したレイアウト・マネージャで制約(FlowLayout、BoxLayout、およびGridLayout)を使用していない場合は、コンポーネントの順序によってビジュアルな配置方法も決定します。ただし、「構造」ウィンドウを使用するか、コンポーネントをフォームの中にドラッグすることによって、コンポーネントを並べ替えることができます。

制約(BorderLayout、GridBagLayout、CardLayout、AbsoluteLayout、およびNull Layout)を適用するレイアウト・マネージャを使用した場合、コンテナ内のコンポーネントの順序によってコンポーネントの表示順序が決まることはありません。このようなコンテナの場合は、「構造」ウィンドウでのみコンポーネントの順序を変更できます。GridBagLayoutでは制約を使用してコンポーネントの配置方法が決定しますが、グリッドXとグリッドYの制約が使用されない場合は、コンポーネントの順序によってレイアウトが決定します。

15.8 レイアウト・マネージャの使用

Javaプログラムは複数のプラットフォームでデプロイできます。標準的なUI設計技術を使用してUIコンポーネントの絶対位置とサイズを指定する場合は、そのUIがすべてのプラットフォームで適切に表示されるとはかぎりません。このため、製品UIではAbsoluteLayoutおよびnullレイアウトは使用しないでください。これらのレイアウトはクロス・プラットフォームUIには適していません。その制約を十分認識したうえで、プロトタイプのみに使用することをお薦めします。開発システムで適切に表示されても、別のプラットフォームでは使用できない場合があります。この問題を解決するために、Javaでは移植可能なレイアウト・マネージャのシステムが提供されています。レイアウト・マネージャを使用すると、UIのレイアウトに関するルールと制約を移植可能な方法で指定できます。

レイアウト・マネージャでは、コンテナ内でのコンポーネントのサイズと位置を決定することによって、ビジュアル・コンポーネントがGUIフォームで配置される方法を制御します。これは、LayoutManagerインタフェースを実装して処理されます。

JDeveloperのレイアウト・マネージャを使用して、コンテナ内のコンポーネントの配置とサイズを表示のたびに制御します。レイアウト・マネージャでは、そのレイアウト・マネージャ固有の特定のルール・セットに従ってコンテナ内のコンポーネントが自動的に配置されます。

レイアウト・マネージャには、次のメリットがあります。

- フォント、画面の解像度およびプラットフォームの違いに関係なく、コンポーネントの位置を正確に設定できます。

- 実行時に動的にサイズが変わるコンテナに対応する、インテリジェントなコンポーネント配置ができます。

- 様々なサイズの文字列を容易に調整できます。文字列が長くなっても、コンポーネントの正しい位置合せが保たれます。

レイアウト・マネージャでは、コンポーネントのサイズと位置が次のように様々なファクタに基づいて設定されます。

- レイアウト・マネージャのレイアウト・ルール

- レイアウト・マネージャのプロパティ設定(存在する場合)

- すべてのコンポーネントに共通する特定のプロパティ(preferredSize、minimumSize、maximumSize、alignmentXおよびalignmentYなど)

- コンテナのサイズ

通常、UIを手動でコーディングする場合は、コンテナにコンポーネントを追加する前にデフォルトのレイアウト・マネージャをオーバーライドします。コンテナ上でレイアウト・マネージャを変更するには、デザイナ領域または「構造」ウィンドウでコンテナを右クリックし、「レイアウトを設定」メニューに移動して目的のレイアウト・マネージャを選択します。詳細は、第15.8.1項「レイアウト・マネージャの設定方法」を参照してください。

GUIビルダー(またはビジュアル・エディタ)を使用すると、いつでもレイアウトを変更できます。JDeveloperにより必要に応じてコードが調整されます。

注意:

GUIビルダーを使用してレイアウト・マネージャのプロパティを変更する場合は、「プロパティ」ウィンドウでプロパティにアクセスできるように、コンテナのレイアウトを明示的に指定する必要があります。

コンテナに必要な設計全体に基づいてレイアウト・マネージャを選択します。レイアウトによっては、コンテナに追加した直後にコンポーネントの配置とサイズ変更を引き継ぐため、GUIビルダーで操作しにくいものがあります。初期のレイアウト・プロトタイプ作成中にこの問題を軽減するため、JDeveloperにはnullというレイアウトが用意されています。このレイアウトでは、コンポーネントの配置と指定したサイズが正確に維持されます。nullを土台にすると、コンテナでのプロトタイプ作成が容易になります。その後、コンポーネントをコンテナに追加してから、設計に適した移植可能なレイアウトに切り替えることができます。

フリー・デザイン・モードで必要な内容が得られない場合は、様々なレイアウトを試して、コンテナのコンポーネントに対する効果を確認してください。たとえば、複合レイアウトの実行可能な代替方法としてGridBagLayoutがあります。詳細は、第15.8.8.3項「GridBagカスタマイザの使用方法」を参照してください。選択したレイアウト・マネージャで期待通りの結果が得られない場合は、別のレイアウト・マネージャを試行するか、異なるレイアウトで複数のパネルのネストを試して目的の効果が得られるか確認してください。

15.8.1 レイアウト・マネージャの設定方法

新しいコンテナを作成する場合、通常は、IDEのフリー・デザイン機能を活用できるように、デフォルトのレイアウトを使用して作成されます。必要に応じてGUIビルダーまたは「構造」ウィンドウを使用して、ほとんどのコンテナのレイアウトを変更できます。

GUIビルダーからレイアウト・マネージャを設定する手順は次のとおりです。

1. 変更したいレイアウトのあるコンテナを右クリックします。

2. 「レイアウトを設定」とレイアウト・メニューを選択します。

「構造」ウィンドウからレイアウト・マネージャを設定する手順は次のとおりです。

1. 変更したいレイアウトのあるコンテナのノードを右クリックします。

2. ポップアップ・メニューで、「レイアウトを設定」サブメニューから目的のレイアウトを選択します。

レイアウトを変更した場合、IDEでは、廃棄したレイアウト・マネージャのプロパティが保存されます。前のレイアウト・マネージャに戻った場合、フォームも以前の状態に戻ります。

15.8.2 FreeDesignレイアウトの理解

FreeDesignでは、最適な位置合せと間隔調整を自動的に提案するビジュアル・ガイドラインを使用してフォームのレイアウトを設定します。作業を進めていくうちに、GUIビルダーによってデザインの決定が機能UIに変換されていくため、レイアウト・マネージャを指定する必要がありません。フリー・デザインでは動的レイアウト・モデルを採用していて、フォームのサイズ変更やロケールの切替えが行われるたびに変更が受け入れられるようにGUIで調整されるため、コンポーネント間の関係は変更されません。

- FreeDesignコンテナと、他のレイアウト・マネージャを使用しているコンテナを同じフォームにまとめて結合できます。FreeDesignを使用すると、最適な位置合せとコンポーネントの間隔調整を自動的に提案するビジュアル・ガイドラインを使用してフォームのレイアウトを設定できます。

15.8.3 レイアウト・プロパティの設定方法

フォームの外観を変更するには、一般的なレイアウト・マネージャ・プロパティとコンポーネントに固有のプロパティを調整します。

次の変更を行えます。

- 一般的なレイアウト・プロパティ: コンテナ内のすべてのコンポーネント、つまり、コンポーネントの位置合せやコンポーネント間のギャップなどに影響します。

- コンポーネントに固有のレイアウト・プロパティ: 特定のレイアウト・マネージャにより管理され、そのコンポーネントのみに適用されます。このタイプのプロパティを制約ともいいます。

一般的なレイアウト・マネージャのプロパティを設定する手順は次のとおりです。

1. 「構造」ウィンドウでレイアウト・マネージャのノードを選択します。

2. 「プロパティ」ウィンドウで、編集するプロパティを選択して、目的の値を入力します。プロパティはレイアウト・マネージャによって異なり、一部のレイアウト・マネージャにはプロパティが割り当てられていません。

コンポーネントのレイアウト・のプロパティを設定する手順は次のとおりです。

1. 「構造」ウィンドウでコンポーネントを選択します。

2. 「プロパティ」ウィンドウで、「レイアウト」にスクロール・ダウンし、編集するプロパティを選択して、目的の値を入力します。

注意:

コンポーネントのポップアップ・メニューから「コードをカスタマイズ」を選択すると、コンポーネントのカスタム・コードをより自然な方法で編集できます。

15.8.4 JDeveloperで提供されるレイアウトの理解

IDEで次のレイアウト・マネージャの中から選択できます。

- FlowLayout
FlowLayoutでは、コンテナ内のコンポーネントを1ページに表示される単語のように配置できます。最上行を左から右へ、適合するコンポーネントがなくなるまで埋めていき、以下の行についても1行ずつ同様の処理が継続されます。

- BorderLayout
BorderLayoutでは、コンテナの端または中央に沿ってコンポーネントが配置されます。BorderLayoutを使用すると、コンテナのComponentOrientationに対して、次のように使用可能な5つの位置にコンポーネントを配置できます。

- 最初: BorderLayout.PAGE_STARTに対応。

- 最後: BorderLayout.PAGE_ENDに対応。

- 前: BorderLayout.LINE_STARTに対応。

- 後: BorderLayout.LINE_ENDに対応。

- 中央: 内部領域に対応。

- GridLayout
GridLayoutでは、等サイズのセルのグリッドにコンポーネントが配置されます。コンポーネントは、グリッドに左から右へ、上から下へと追加されます。

- GridBagLayout
GridBagLayoutは強力なレイアウト・マネージャであり、コンテナがサイズ変更された場合でも、「制約」という複雑なコンポーネント・プロパティのセットを使用してレイアウトのあらゆる側面を正確に制御します。これは、プラットフォーム全体にわたって一貫性のある外観を維持する自由形式のレイアウトを作成できるため、特にマルチプラットフォームのJavaアプリケーションに役立ちます。

GridBagLayoutでは行と列のグリッドにコンポーネントが配置されますが、この場合、グリッド・セルがすべて同じサイズである必要はありません。さらに、コンポーネントは複数の行、列、またはその両方にわたることができます。

- CardLayout
CardLayoutでは、同じ表示領域を使用する2つ以上のコンポーネントを管理できます。CardLayoutを使用する場合、それぞれのコンポーネントは1組のカードのようなもので、カードのサイズはすべて同じですが、常に一番上のカードだけが表示されます。コンポーネントは同じ表示領域を共有するため、デザイン時に「構造」ウィンドウを使用してコンポーネントを個別に選択する必要があります。

- BoxLayout
BoxLayoutでは複数のコンポーネントを垂直に、または水平に配置できますが、その両方に配置することはできません。BoxLayoutにより管理されるコンポーネントは、左から右に、または上から下に、コンテナへ追加された順序で配置されます。BoxLayoutでは、複数のコンポーネントが追加された場合、またはコンテナがサイズ変更された場合でも、コンポーネントは2行目または2列目に折り返されません。

- AbsoluteLayout
AbsoluteLayoutでは、コンポーネントをフォーム内で正確な位置に配置したり、IDE内を自由に移動させたり、選択中の境界線を使用してサイズ変更したりすることができます。これは、正式な制限がなく、プロパティ設定を入力する必要がないため、特にプロトタイプの作成に役立ちます。ただし、コンポーネントの固定位置とサイズが環境に応じて変更できないため、本番アプリケーションにはお薦めできません。

- Nullレイアウト
Nullレイアウトは、レイアウト・マネージャを一切使用しないでフォームをデザインする場合に使用します。AbsoluteLayoutのようにクイック・プロトタイプの作成には役立ちますが、コンポーネントの固定位置とサイズが環境に応じて変更できないため、本番アプリケーションにはお薦めできません。

15.8.5 BorderLayoutの使用

BorderLayoutは、最初、最後、前、後および中央の領域にコンテナのコンポーネントを配置します。

- 最初および最後のコンポーネントには高さの推奨値が指定され、コンテナの幅全体にわたって拡張されます。

- 前および左のコンポーネントには幅の推奨値が指定され、最初と最後の領域に挟まれた空白を埋めるよう垂直に拡張されます。

- 中央のコンポーネントは、残りのすべての領域を埋めるよう拡張されます。

図15-2 BorderLayout

図15-2に示すBorderLayoutは、コンテナの1つ以上の端にコンポーネントを配置したり、コンテナの中央を1つのコンポーネントで埋める場合に効果的です。また、単一コンポーネントでコンテナを完全に埋めるために使用するレイアウトでもあります。

BorderLayoutは、UI内の大き目のコンテナに最も有用なレイアウト・マネージャであることがわかります。BorderLayoutの各領域内にパネルをネストしてから、これらの各パネルに各種レイアウトのその他のパネルを移入することで、非常に複雑なUI設計を実現できます。

コンポーネントは、constraintsプロパティに基づき、BorderLayout内の5つの領域のいずれかに配置されます。「プロパティ」ウィンドウで、コンポーネントのconstraintsプロパティを、「最初」、「最後」、「前」、「後」または「中央」のいずれかの値に設定できます。

たとえば、BorderLayoutコンテナの最上部全体にツールバーを配置するには、ボタンのFlowLayoutパネルを作成し、これをコンテナの「最初」領域に配置します。このためには、パネルを選択し、「プロパティ」ウィンドウでconstraintsプロパティに対し「最初」を選択します。

この5つの領域にはそれぞれ、任意の数のコンポーネント(または、コンポーネントのパネル)を含めることができます。ただし、最上位のコンポーネントが不透明でないかぎり、同じ領域内の下位コンポーネントはすべて最上位コンポーネントによってカバーされます。

複数のコンポーネントおよびBorderLayoutの使用に関する一般的なガイドラインを次に示します。

- コンテナ内に含まれるコンポーネントが5つ以下になるようにします。

- BorderLayoutの1つの領域に配置するコンポーネントを増やす必要がある場合には、「含める」ポップアップ・メニュー・オプションを使用して、選択したコンポーネントを1つのサブパネルにグループ化します。

注意:

BorderLayoutでは、コンポーネントをコンテナに追加する順序は無視されます。

デフォルトにより、BorderLayoutが管理するコンポーネント間にギャップは挿入されません。ただし、「プロパティ」ウィンドウを使用して、コンテナに関連付けられたBorderLayoutに対し、水平または垂直のギャップをピクセル単位で指定できます。

BorderLayoutコンポーネントの周囲のギャップを変更するには、「構造」ウィンドウで、(BorderLayoutが管理するコンテナの真下に表示される) BorderLayoutオブジェクトを選択してから、「プロパティ」ウィンドウで、水平ギャップおよび垂直ギャップ・プロパティのピクセル値を変更します。

15.8.6 CardLayoutの使用

CardLayoutでは、コンポーネント(通常はパネル)が1組のカードのようにスタック内に相互に重ねられます。一度に1つのコンポーネントのみが表示され、別のコントロールを使用してパネルを順にめくり、最上位にくるパネルを選択できます。

図15-3 Cardレイアウト

CardLayoutは、異なる時点で別のコンポーネントが含まれる可能性のある領域がある場合に使用すると効果的なレイアウトです。これによって、同じ表示領域を共有する必要がある2つ以上のパネルを管理できます。

「構造」ウィンドウでCardLayoutを選択すると、「プロパティ」ウィンドウ内のコンポーネント・スタックを囲む水平ギャップおよび垂直ギャップの量を指定できます。

15.8.7 FlowLayoutの使用

FlowLayoutでは、各コンポーネントのpreferredSizeを使用して、コンポーネントが行内に左から右へ、続いて上から下へ配置されます。FlowLayoutでは、1行にできるだけ多くのコンポーネントが並べられた後、新しい行に移動します。通常、FlowLayoutはパネル上にボタンを配置する際に使用します。

図15-4 FlowLayout

FlowLayoutコンテナの行内にコンポーネントを配置する方法を選択するには、左、右または中央の位置合せの理由を指定します。また、コンポーネントと行の間のギャップの量(水平および垂直間隔)を指定できます。GUIビルダーを使用している場合、alignmentおよびgapプロパティを両方とも変更するには「プロパティ」ウィンドウを使用します。

15.8.7.1 位置合せの変更

位置合せを変更するには、「構造」ウィンドウでFlowLayoutオブジェクトを選択してから、「プロパティ」ウィンドウでalignmentプロパティの値を指定します。

15.8.7.2 ギャップの変更

FlowLayoutにおけるコンポーネント間のデフォルトのギャップは5ピクセルです。

水平または垂直のギャップを変更するには、「構造」ウィンドウでFlowLayoutオブジェクトを選択してから、「プロパティ」ウィンドウで水平ギャップまたは垂直ギャップのプロパティのピクセル値を変更します。

15.8.7.3 コンポーネントの順序変更

FlowLayoutコンテナ内のコンポーネントの順序を変更するには、コンポーネントを新しい位置にドラッグするか、コンポーネントを右クリックし、「上へ移動」または「下へ移動」を選択します。

15.8.8 GridBagLayoutの使用

GridBagLayoutはきわめて柔軟かつ強力なレイアウトであり、グリッド内のコンポーネントのレイアウトをGridLayoutよりも厳密に制御します。GridBagLayoutでは、コンポーネントが動的な矩形グリッドに水平および垂直に配置されます。各コンポーネントのサイズが同じである必要はなく、複数のセルを埋めることもできます。

図15-5 GridBagLayout

GridBagLayoutでは、各コンポーネントの制約と最小サイズ、およびコンテナの優先サイズに基づいてコンポーネントの位置が決定されます。

このトピックで使用する用語の意味は次のとおりです。

- コンポーネントのセルは、コンポーネントが占めているグリッド・セルのセット全体を指します。

- コンポーネントの表示領域は、コンポーネントが占めているセルのうち、コンポーネントの外部余白(空間)に使用されていないすべてのスペースを指します。

GridBagLayoutは複合グリッドに対応できますが、コンポーネントを小さいパネルに編成してGridBagLayoutコンテナ内でネストする方が正常に(かつ予測どおりに)動作します。このようにネストしたパネルでは、他のレイアウトを使用したり、必要に応じてさらにコンポーネント・パネルを含めることができます。この方法には、次の2つのメリットがあります。

- ボタン・バーのような特定の領域に、より適切なレイアウトを使用できるため、コンポーネントの配置とサイズを個別に正確に制御できます。

- 使用するセルの数が少なくなり、GridBagLayoutが簡素化されて制御が容易になります。

一方、GridBagLayoutの方が使用するコンテナ数が多いため、他のレイアウト・マネージャを使用した場合に比べてプログラムのメモリー使用量が大きくなります。

15.8.8.1 GridBagLayoutコンテナへのコンポーネントの追加

コンポーネントをデザイン・キャンバスに追加した場合、それらのコンポーネントは、デフォルトでは、1行に表示されます。そのコンポーネントをマウスを使用して配置することはできません。かわりに、GridBagカスタマイザを使用する必要があります。詳細は、第15.8.8.3項「GridBagカスタマイザの使用方法」を参照してください。

15.8.8.2 「プロパティ」ウィンドウでのGridBagConstraintsの設定方法

「プロパティ」ウィンドウを使用して、いくつかのGridBagConstraintsを指定できます。

図15-6 「プロパティ」ウィンドウでのレイアウト・プロパティ

GridBagLayoutコンテナ内のすべてのボタンに同じ内側のパディングを使用する場合は、[Ctrl]キーを押しながらボタンを1つずつ選択し、対応するレイアウト制約プロパティを編集できます。

「プロパティ」ウィンドウでのレイアウト・プロパティの設定方法:

1. 「構造」ウィンドウまたはGUIビルダーで、GridBagLayoutコンテナ内で変更するコンポーネントを選択します。

2. 「プロパティ」ウィンドウで、「レイアウト」を選択します。

3. 「プロパティ」ウィンドウでconstraintsプロパティの値を選択します。

4. プロパティ・エディタで必要な制約を設定して「OK」をクリックします。

15.8.8.3 GridBagカスタマイザの使用方法

GridBagカスタマイザを使用すると、GridBagLayoutでのコンポーネントの配置と制約を視覚的に調整できます。

図15-7 「レイアウト」ダイアログのカスタマイズ

これには、GridBag制約のプロパティ・シート、制約調整ボタン、およびコンポーネントのレイアウトの概略描写が含まれています。GUI Builderでは、コンポーネントが実行時にどのように表示されるかがより詳細に反映されます。

GridBagカスタマイザを使用する手順は次のとおりです。

1. フォームに必要なコンポーネントを追加し、そのコンポーネントに対してGridBagLayoutが設定されていることを確認します。

2. カスタマイザを開くには、「構造」ウィンドウでGridBagLayoutノードを右クリックして、ポップアップ・メニューから「カスタマイズ」を選択します。

3. コンポーネントを右側のペインにドラッグして、必要に応じて再配置します。
コンポーネントをドラッグしている間、その「グリッドX」および「グリッドY」プロパティは新しい位置を反映するように変更されます。

4. コンポーネントのおおよそのレイアウトが確立されたら、コンポーネントを1つ選択して、左側のペインで必要に応じてその制約を調整します。
値を直接入力することも、表示されるボタンを使用してコンポーネントの制約を調整することもできます。

編集しながら、次の操作を行います。

- 右側のペインの上のツールバーに、「再実行」、「元に戻す」、「パディング」、および「レイアウトをテスト」の各ボタンが必要な場合があります。

- 列/行ヘッダーを右クリックして、列/行を追加または削除することができます。

- また、空のセルを右クリックして、新しいコンポーネントを追加できます(したがって、パレットにアクセスするために、GridBagカスタマイザのダイアログを閉じる必要がありません)。

数行を追加し、設計が特定数の列に適切に収まった後、コンポーネント数が奇数である必要のある1行に気づいた場合は、1行全体を占めている行にパネルをドロップし、そのパネル内で別のレイアウトを使用して必要な外観にすることを検討してください。

5. そのレイアウトに満足できる場合は、「閉じる」をクリックしてカスタマイザを終了します。

15.8.9 GridLayoutの使用

GridLayoutでは、行および列内のセルのグリッドにコンポーネントが配置されます。GridLayoutでは各コンポーネントが拡張され、セル内の使用可能な領域が埋まります。各セルはサイズが完全に同じであり、グリッドは均一です。GridLayoutコンテナをサイズ変更すると、コンテナに使用できる領域が与えられて、GridLayoutによりセルができるだけ大きくなるようセルのサイズが変更されます。

図15-8 GridLayout

グリッド内の列および行の数を指定できますが、ゼロにできるのは行または列の一方のみです。少なくともどちらか一方に値を指定し、GridLayoutマネージャがもう一方を計算できるようにする必要があります。

たとえば、15のコンポーネントが含まれるグリッドに対して4列およびゼロ行を指定した場合、GridLayoutでは4列および4行が作成され、最後の行には3つのコンポーネントが含められます。または、3行およびゼロ列を指定した場合、GridLayoutでは3行および5列が作成されます。

行および列の数だけでなく、水平ギャップおよび垂直ギャップのプロパティを変更して、セル間のピクセル数を指定できます。デフォルトの水平および垂直ギャップはゼロです。

GridLayoutコンテナのプロパティ値を変更するには、「構造」ウィンドウでGridLayoutオブジェクトを選択してから、「プロパティ」ウィンドウで、rows、columns、horizontal gapおよびvertical gapの各プロパティの値を編集します。

15.8.10 ユーザー・インタフェースのプレビュー

コンパイルおよび実行時のGUIの表示状況を簡単にテストするには、GUIビルダーのツールバーで「デザインのプレビュー」ボタンをクリックします。フォームで実際に表示されるとおりにコンポーネントが配置されたダイアログ・ボックスが表示されます。

プレビューされたGUIフォームをクリックすると、マウス・イベントが実際のコンポーネントに伝えられて、「動作中」のコンポーネントを確認できます。したがって、たとえばスライダを動かしたり、テキスト・フィールドに入力したり、ボタンをクリックしたときに「押下」されたように見えますが、クロス・コンポーネント・コードやイベント処理コードは実行されません。

15.9 アクセス可能なフォームの作成方法

作成したGUIフォームとその中に含まれるコンポーネントがアクセシビリティ要件を満たしていることを確認するために、それぞれのアクセシビリティ・プロパティを調整できます。スクリーン・リーダーなどの各種アシスティブ・テクノロジで動作する場合、GUIはアクセス可能であると見なされます。

次のプロパティを編集して、アクセシビリティを支援することができます。

- アクセシビリティ対応の名前: コンポーネントの名前を設定します。デフォルトでは、この名前はコンポーネントのtextプロパティ値に設定されます。

- アクセシビリティ対応の説明: コンポーネントの説明を設定します。

- アクセシビリティ対応の親: アクセス可能な親コンポーネントの名前を設定します。

フォームまたはコンポーネントのaccessibilityプロパティを編集する手順は次のとおりです。

1. 「構造」ウィンドウで、変更する必要のあるaccessibilityプロパティを持つフォームまたはコンポーネントを選択します。

2. 「プロパティ」ウィンドウで、Accessibilityプロパティまでスクロール・ダウンします。

3. 省略記号(...)ボタンをクリックしてプロパティ・エディタを開き、目的の値を入力します。
あるいは、現在のプロパティ値をクリックして選択し、新しい値を入力できます。

15.10 イベント処理の使用

JDeveloperのUI設計ツールを使用して、コンポーネント・イベントとメニュー・イベントにイベント・ハンドラ・コードをアタッチします。

Javaプログラムの構築時は、コードを初期化コードおよびイベント処理コードの2つのカテゴリに分けられるものとみなすことができます。

- 初期化コードは、UIコンポーネントの作成時に実行されます。これは主にコンポーネントの起動コードとみなすことができます。この初期化コードには、JDeveloperで設計されたすべてのGUIクラスに含まれるinitComponents()メソッド内のすべての要素が含まれます。JDeveloperでは、UI設計に基づいてこのコードが生成されます。たとえば、「プロパティ」ウィンドウを使用してボタンのtextプロパティを「OK」に設定したため、JDeveloperではbutton1.setLabel("OK")メソッドのコールが生成されます。

- イベント処理コードは、ユーザーがボタンを押したりメニュー項目を使用するなどのアクションを実行したときに実行されるコードです。そのコンポーネントのイベント名を「構造」ウィンドウに入力し、[Enter]を押すと、JDeveloperではスタブ(空)イベント処理メソッドが作成されます。そのスタブにおいて、イベントにより引き起こされる実際のアクションを処理するコードを記述します。

プログラム全体は、要素が最初に表示されたときの外観を示す初期化コードと、ユーザー入力に応じた処理内容を示すイベント処理コードで構成されています。

15.10.1 メニュー・イベントへのイベント処理コードのアタッチ方法

Swingでは、メニュー項目にactionPerformedイベントがあり、CheckboxMenuItemsにはitemStateChangedイベントがあります。メニュー項目のactionPerformedイベントに追加するコードは、ユーザーがそのメニュー項目を選択するか、対応するアクセラレータ・キーを使用するたびに実行されます。

メニュー項目のイベントにコードを追加する手順は、次のとおりです。

1. ビジュアル・エディタでJFrameフォームを開きます。

2. UIフレームにメニュー・バーを追加し、メニュー・バーにメニューとメニュー項目を挿入します。または、すでにメニューが含まれているファイルを開く方法もあります。

3. メニュー・エディタまたは「構造」ウィンドウでメニュー項目を選択します。

4. 「プロパティ」ウィンドウで、Eventsノードを開いて、目的のイベント値フィールドをクリックします。

5. イベントの「値」フィールドにイベントのスタブ名を入力し、[Enter]を押して、イベント処理メソッド・スタブを指定の名前でソース・コードに作成します。
イベントの「値」フィールドに名前を入力すると、コード・エディタが開いて「構造」ウィンドウにソース・コードが表示されます。カーソルは新規に作成したイベント処理メソッドの本体に置かれており、コードを入力できます。

6. 左カッコと右カッコの間に、ユーザーがこのメニュー・コマンドをクリックしたときに実行させるコードを入力します。

15.10.2 コンポーネント・イベントへのイベント処理コードのアタッチ方法

「プロパティ」ウィンドウの「イベント」カテゴリを使用すると、コンポーネント・イベントにハンドラをアタッチしたり、既存のイベント・ハンドラを削除したりできます。

コンポーネント・イベントにイベント処理コードをアタッチする手順は、次のとおりです。

1. GUIビルダーまたは「構造」ウィンドウでコンポーネントを選択します。

2. 「プロパティ」ウィンドウで、「イベント」タブを選択して、そのコンポーネントのイベントを表示し、目的のイベント値フィールドをクリックします。

3. イベントの「値」フィールドにイベントのスタブ名を入力し、[Enter]を押して、イベント処理メソッド・スタブを指定の名前でソース・コードに作成します。
イベント・ハンドラが新しい名前で作成され、ソース・コード内でそのイベント・ハンドラにフォーカスが移ります。また、イベントからイベント処理メソッドへの接続を確立するために、adapterクラスに追加のコードも挿入されます。

4. イベント・ハンドラのスタブ内でコードを記述して、そのコンポーネント・イベントに対するレスポンスを指定します。

15.10.3 コンポーネントのデフォルト・イベントに対してイベント・ハンドラをすばやく作成する方法

GUIビルダーでイベント・ハンドラを作成できます。

コンポーネントのデフォルト・イベントに対するイベント・ハンドラをすばやく作成する手順は、次のとおりです。

1. 「コンポーネント」ウィンドウでコンポーネントを選択して、それをUIに追加します。

2. GUIビルダーでコンポーネントをダブルクリックします。イベント・スタブが作成され、ソース・コード内でそのイベント・ハンドラにフォーカスが移ります。

3. イベント・ハンドラに必要なコードを追加して完成します。

注意:

デフォルト・イベントはBeanInfoで定義されるか、未指定の場合はactionPerformedとして定義されます。

15.11 GUIソース・コードの変更方法

GUIビルダーでGUIフォームを作成すると、IDEでは、グレーのガード付きコード・ブロックが自動的に生成されます。ただし、初期化コードの生成方法は変更可能であり、初期化コード内に配置されるカスタム・コードを作成することもできます。

コンポーネント、フォーム、またはコンポーネントのプロパティに対する初期化コードの生成方法を変更するには、「プロパティ」ウィンドウでそのCodeプロパティを編集します。さらに、カスタム・コードを作成して、それを初期化コード内に配置する場所を指定できます。

フォーム・コンポーネントのガード付きブロックを変更する手順は次のとおりです。

1. 「構造」ウィンドウで、編集する必要のある初期化コードを持つコンポーネントを選択します。

2. ガード付きコード内の指定されたコンポーネントに対して生成されるカスタム・コードを追加するために、個別のプロパティを示したCode Generationプロパティ・グループまでスクロール・ダウンします。
あるいは、コンポーネントを右クリックして、ポップアップ・メニューから「コードをカスタマイズ委」を選択します。こうして開いたダイアログでは、あらゆるタイプのカスタム・コードをより快適に編集できます。

注意:

Javaクラス内でガードされていないその他のすべてのコードは自由に編集できるため、必要に応じてUIをカスタマイズできます。すべてのコンポーネントにはフィールドがあるため、任意の場所でさらに変更できます。最適な場所は、initComponents()コールの直後のコンストラクタの中です。通常は、ここにコードを作成するだけで十分です。これは、GUIビルダーで適切なコード・プロパティにコードを入力することによってinitComponents()の中にそのコードを表示させようとするよりも、ずっと簡単に行えます。この方法は、特殊な場合のみ使用してください。

15.11.1 IDE外部でのGUIフォーム・コードの変更

IDEでは、それぞれのフォームは次の2つのファイルで構成されます。

- .javaファイル: フォームのJavaソース・コードが含まれています。

- .formファイル: GUIビルダーでフォームを変更する際、.javaファイルの生成に使用される情報が格納されています。このファイルは、アプリケーションで配信する必要はありません。このファイルが削除されると、GUIビルダーを使用してフォームを変更できなくなります。

.javaファイルは、外部エディタを使用して編集できます(IDEでフォームを編集中の場合を除く)。ただし、次の例外があります。

- initComponents()メソッドのコンテンツを変更しないでください。このメソッドの本体は、IDEでフォームが開かれると常に再生成されます。

- IDEのGUIビルダーによりソース内に配置された特別のコメント(// GEN-...)を削除または変更しないでください。これらのコメントは、フォームを正しく開くために必要です。これらのコメントは、IDEのソース・エディタ内では表示されません。

- イベント・ハンドラのヘッダーまたはフッターを変更しないでください。

15.11.2 プロパティのコード生成の変更方法

プロパティ値はカスタム・コードとして設定できます。

コード生成を変更する手順は次のとおりです。

1. GUIビルダーまたは「構造」ウィンドウでコンポーネントを選択し、「プロパティ」ウィンドウにそのプロパティを表示します。複数のコンポーネントを選択した場合は、それらの共通プロパティが表示されて、変更が加えられた場合は選択されたすべてのコンポーネントに変更が適用されます。

2. 「プロパティ」ウィンドウでコンポーネントのプロパティを編集するには、プロパティを選択して、目的の値を入力します。

3. 編集するプロパティに省略記号(...)ボタンが付いている場合は、それをクリックすると、より高度な編集オプション(たとえば、カラー・タイプのプロパティ用のカラー・チューザなど)、あるいは、プロパティ値を表すコードを直接入力できる機能も含め、プロパティ値を指定する代替方法(たとえば、テキスト・プロパティ用にリソース・バンドルを使用)を提供する特別なプロパティ・エディタを開くことができます。
これを使用すると、プロパティ・ウィンドウで小さいインプレース・エディタを使用する方法とは別の方法で、指定されたプロパティを編集できます。また、上部のコンボ・ボックスを使用してプロパティ値を入力する場合にも、いくつかの方法から選択できます。

15.12 UIデバッガの使用

JDeveloperでは、標準的なJavaおよびPL/SQLデバッガ機能のみでなく、AWTおよびSwingベースのクライアント・アプリケーションおよびアプレット専用のグラフィカル・ユーザー・インタフェース(GUI)のデバッグをサポートしています。

UIデバッガには、GUIアプリケーションのデバッグについて代替方法が用意されています。従来のデバッガでは、データ構造を調べてプログラム・フローをトラッキングしていました。UIデバッガでは、かわりにGUI構造とイベントの順序を調べることができます。UIデバッガを使用すると、画面に表示されるUIコンポーネントと実際のデータの関係を確認できます。また、UIコンポーネントにより起動されるイベントとイベントを受信するリスナーも表示されます。

UIデバッガを使用するには、「ヘルプ」→「更新のチェック」を選択し、ウィザードの指示に従い、最初にUIデバッガをダウンロードする必要があります。

UIデバッガの使用に特別な追加前提条件はなく、JDeveloperデバッガを使用する場合と同じですが、「プロジェクト・プロパティ - ライブラリ」ページでJDeveloperランタイム・ライブラリjdev-remote.jarを選択する必要があります。

従来のほとんどのデバッガでは、GUIアプリケーションのツリー構造を調べるのが容易ではなく、アプリケーションに表示される内容の詳細も表示されないため、GUIアプリケーションのデバッグは困難な場合がありました。

デバッグを開始するには、プロジェクトを選択して「実行」→「UIデバッグ<projectname>.jpr」を選択することで、デバッグを開始できます。

15.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アウトライン」ウィンドウで「イベント」ポップアップ・メニューのオプションを選択すると表示されます。このウィンドウでイベントを選択すると、そのソース・コンポーネントがツリー・ウィンドウとアウトライン・ウィンドウで選択されます。

15.12.2 UIデバッガの起動方法

UIデバッガ・タスクを実行する前に、まずUIデバッガを起動する必要があります。

UIデバッガを起動する手順は、次のとおりです。

1. 「アプリケーション」ウィンドウで、デバッグするプロジェクトを選択します。

2. 実行構成を選択します。詳細は、第14.3項「プロジェクトを実行用に構成」を参照してください。

3. 「実行」→「UIデバッグ<projectname>.jpr」を選択し、プロジェクトのデフォルト・ターゲットを起動してアプリケーションを実行します。
JDeveloperによって、UIデバッガが起動します。アプリケーションが起動し、「UIツリー」ウィンドウと「UIアウトライン」ウィンドウが自動的に表示されます。ただし、UIデバッガのウィンドウにはまだ情報が表示されません。

4. アプリケーションが完全に起動した後、デバッグ対象のダイアログまたはウィンドウに移動して選択します。

5. 一方のUIデバッガ・ウィンドウで「スナップショット」([F5])ボタンをクリックします。
「UIツリー」ウィンドウにアプリケーションの階層構造が表示され、「UIアウトライン」ウィンドウにアプリケーションのユーザー・インタフェースのグラフィカル表現が表示されます。

15.12.3 アプリケーション・コンポーネント階層の検査

「UIツリー」に表示される情報、「UIアウトライン」ウィンドウに表示される情報、および両者間の関係は、常に同期化されています。この2つのウィンドウには(表示方法が異なるのみで)同じ情報が表示されるため、「UIツリー」階層でコンポーネントを選択すると、「UIアウトライン」ウィンドウ内で同じオブジェクトが検索されてハイライトされ、その逆も同じです。

アプリケーション・コンポーネント階層を調べる前に、UIデバッガを起動してスナップショットを生成する必要があります。アプリケーションのUIが更新されるたびに、「スナップショット」を再度クリックして、UIデバッガのウィンドウに表示される情報を更新する必要があります。

アプリケーション・コンポーネント階層を検査する手順は次のとおりです。

- 「UIツリー」ウィンドウのツリーを使用してコンポーネントの階層構造を調べるか、「UIアウトライン」ウィンドウを使用してコンポーネントを目視で探します。

- 「UIアウトライン」ウィンドウの上部にある「イメージ」および「アウトライン」チェック・ボックスを使用して、それぞれコンポーネントのイメージと枠線をトグルします。

- 「UIアウトライン」ウィンドウの下部にあるアイコンを使用すると、アプリケーションのイメージをズーム・インまたはズーム・アウトできます。イメージがウィンドウよりも大きい場合は、イメージをクリックしてドラッグすると必要な部分を表示できます。

- 「UIアウトライン」ウィンドウで選択されていないコンポーネントは、赤い網掛け付きで表示されます。

- 非表示のコンポーネントは、「UIツリー」にグレーのテキストで表示されます。

- どちらのウィンドウでもコンポーネントを右クリックすると、ポップアップ・メニューのオプションが表示されます。詳細は、「UIツリー」または「UIアウトライン」を参照してください。

15.12.4 「監視」ウィンドウでのコンポーネント情報の表示方法

コンポーネントに関連付けられているデータを調べるために、JDeveloperの「監視」ウィンドウで監視対象のコンポーネントを選択できます。監視式を使用すると、プログラムの実行に従って変化する、変数および式の値を監視できます。

「監視」ウィンドウにコンポーネント情報を表示する手順は、次のとおりです。

1. まだ実行していない場合は、UIデバッガを起動してスナップショットを生成します。

2. 「UIツリー」または「UIアウトライン」ウィンドウでコンポーネントを右クリックし、ポップアップ・メニューから「監視」を選択します。
「監視」ウィンドウが「スマート・データ」ウィンドウのタブとして開き(まだ開いていない場合)、このタブにコンポーネントの構造を表すツリーが表示されます。

15.12.5 「プロパティ」ウィンドウでのUIコンポーネントのインスペクト方法

JDeveloperの「プロパティ」ウィンドウで、UIコンポーネントの状態を表示できます。

「プロパティ」ウィンドウでUIコンポーネントを表示する手順は次のとおりです。

1. まだ実行していない場合は、UIデバッガを起動してスナップショットを生成します。

2. 「UIツリー」または「UIアウトライン」ウィンドウでコンポーネントを右クリックし、ポップアップ・メニューから「インスペクト」を選択します。
「インスペクト」ウィンドウが「スマート・データ」ウィンドウのタブとして開き(まだ開いていない場合)、このタブにコンポーネントの構造を表すツリーが表示されます。

15.12.6 コンポーネントにより生成されるイベントのトレース方法

イベント・トレース機能を使用して、UIコンポーネントにより生成されたイベントのうち、選択したイベントの起動を監視できます。この情報を使用して、イベントの内容と順序を判別します。

コンポーネントにより生成されるイベントをトレースする手順は、次のとおりです。

1. まだ実行していない場合は、UIデバッガを起動してスナップショットを生成します。

2. 「UIツリー」または「UIアウトライン」ウィンドウでコンポーネントを右クリックし、ポップアップ・メニューから「イベントのトレース」を選択します。
「イベントのトレース」ダイアログが開き、コンポーネントにより起動されたイベント・タイプを受信するリスナーのリストが表示されます。

注意:

表示されるのは、スナップショットの生成時に参照可能だったUIコンポーネントのイベント・リスナーのみです。以降の実行によりUIコンポーネントが追加または削除されていても、その変更はリストに表示されません。

3. (オプション)「子を含める」を選択します。これにより、選択したコンポーネントの子により起動されるイベント・タイプも追加表示されます。

4. 「リスナー」ダイアログで、トレース対象のイベント・リスナーを選択します(複数選択可)。たとえば、「FocusListener」を選択すると、すべてのフォーカス・イベントがトレースされます。

5. 「OK」をクリックします。

6. 選択したリスナーにより起動されたイベントが「イベント」ウィンドウに表示されます。ウィンドウを右クリックしてウィンドウの内容を消去するか、または特定のリスナーを削除します。

15.12.7 イベント・リスナーの表示方法

「リスナーの表示」機能を使用すると、UIコンポーネントにより起動されたイベントの受信者を検索できます。この情報を使用してUIイベントのエクステントを判別します。

警告:

表示されるのは、スナップショットの生成時に参照可能だったUIコンポーネントのイベント・リスナーのみです。以降の実行によりUIコンポーネントが追加または削除されていても、その変更はリストに表示されません。

コンポーネントにより生成されるイベントをトレースする手順は、次のとおりです。

1. まだ実行していない場合は、UIデバッガを起動してスナップショットを生成します。

2. 「UIツリー」または「UIアウトライン」ウィンドウでコンポーネントを右クリックし、ポップアップ・メニューから「リスナーの表示」を選択します。
選択したコンポーネントの「リスナー」ダイアログが開き、コンポーネントにより通知されたリスナー・タイプ、各リスナー・タイプの登録済リスナーのクラスおよび各クラスで実装されているイベント・メソッドのリストが表示されます。

注意:

リスナーのリストにはデバッガのトレーシング・フィルタが適用されます。フィルタによりクラスが除外されたリスナーは、リストに表示されません。

3. メソッドを選択します。

4. 「ソースに移動」をクリックします。
編集ウィンドウが開き、選択したメソッドのソース・コードが表示されます。

15.12.8 GUIアプリケーションのリモート・デバッグ

JDeveloperでは、コマンドラインを介したGUIアプリケーションのリモート・デバッグをサポートしています。そのためには、デバッグ対象のプログラムを手動で起動する必要があります。プログラムが開始し、JDeveloperのデバッガがアタッチされた後は、リモート・デバッグとローカル・デバッグの動作はよく似ています。

UIのリモート・デバッグの実行方法は、アプリケーションのリモート・デバッグに似ています。最初に、次の要件が満たされていることを確認してください。

- ライブラリにJDeveloperランタイムjdev-remote.jarを追加すること。

- UIデバッガ・エージェントのメイン・クラスをアプリケーションのメイン・クラスの前に指定すること。

15.12.8.1 GUIアプリケーションのリモート・デバッグ方法

GUIアプリケーションのリモート・デバッグは、コマンドラインにコマンドを入力して実行します。

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デバッガを起動するときにもポート番号を指定する必要があります。

15.12.8.2 UIのリモート・デバッグのためのJDeveloper IDEの起動方法

JDeveloper IDEを使用して、プロジェクトのUIのリモート・デバッグを実行できます。

UIのリモート・デバッグのためにJDeveloper IDEを起動するには:

1. リモート・デバッグ用に設定した実行構成を選択します(「実行」→「アクティブな実行構成を選択」)。

2. 「デバッグ」→「UIデバッグ<project_name>.jpr」を選択します。
Javaアプリケーションのメイン・メソッドが起動します。

3. 「JPDAにアタッチ」ダイアログが表示され、ホスト名とUIデバッガ・ポートを指定するように要求されます。
-uidportオプションを使用していないかぎり、この値をデフォルトの4030のままにしてください。

4. UIのローカル・デバッグを実行しているかのようにUIデバッグ・セッションが動作します。任意のUIデバッガ・タスクの実行を開始できます。

15.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(){...}

16 JavaBeansの使用

この章では、JavaBeansテクノロジに対するOracle JDeveloperのサポートについて説明します。

この章には次の項が含まれます:

- 第16.1項「JavaBeansの使用について」

- 第16.2項「JDeveloperでのJavaBeansの使用」

- 第16.3項「標準イベント・アダプタの理解」

16.1 JavaBeansの使用について

JavaBeansコンポーネント・テクノロジにより、Javaオブジェクトのデータ取得、永続性および操作に対して独自のフレームワークを実装できます。JavaBeansテクノロジは、JavaアプレットおよびJavaクライアント・アプリケーションのビルドに再利用可能なソフトウェア・コンポーネントを作成するために使用できます。Java EEアプリケーションでは、アプレットおよびアプリケーション・クライアントは、Web層コンポーネントを介してビジネス層コンポーネントと直接または間接的に通信できます。たとえば、ブラウザで実行されているクライアントは、JSPページまたはサーブレットを介してビジネス層と通信します。

JavaBeansコンポーネントはJava EE仕様ではJava EE Webコンポーネントとみなされませんが、JavaBeansコンポーネントは、サーバー・コンポーネントとクライアント層のアプリケーション・クライアントまたはアプレット間、またはサーバー・コンポーネントとバックエンドのデータベース間のデータ・フローを処理するために使用されます。

JavaBeansの基本的な概念、JavaBeansの作成、Beanの構成要素など、JavaBeansの詳細は、http://download.oracle.com/javase/tutorial/javabeans/を参照してください。チュートリアルには、簡単なBeanの記述、Beanのプロパティ、イベントの操作、その他に関する演習も含まれています。

16.2 JDeveloperでのJavaBeansの使用

JavaBeansは、Swing GUIビルダーでプログラムのビルドに使用されるJava構成要素です。各JavaBeanは、ユーザー・インタフェース・オブジェクト、データ対応コントロールまたはシステム機能などのプログラム要素を表します。これらの要素を選択および連結してプログラムを構築します。

今後のUI設計作業の高速化を図るために、「コンポーネント」ウィンドウに追加したり、変更なしで(または軽微な変更のみで)再利用できるJavaBeanコンポーネント(ツールバー、ステータス・バー、チェック・ボックス・グループまたはダイアログ・ボックスなど)を作成します。

JavaBeansは、trueオブジェクト指向プログラミング(OOP)の観念におけるオブジェクトです。trueオブジェクトであるため、JDeveloperコンポーネントには次の特徴があります。

- 一部のデータ・セットおよびデータアクセス機能のカプセル化。

- スーパークラスからのデータおよび動作の継承。

- 共通スーパークラスから導出された他のオブジェクトと置き換えても同じように機能する多相性。

各コンポーネントは、ウィンドウやダイアログ・ボックス、データベース内のフィールドまたはシステム・タイマーなどの一部のプログラム要素をカプセル化します。ビジュアル・コンポーネントは、最終的にjava.awt.Componentまたはそこから導出される他の一部のクラス(javax.swing.Panelなど)を拡張する必要があります。非ビジュアルJavaBeansコンポーネントではこれは必要ありません。

JDeveloperで認識および使用されるためには、コンポーネントがJavaBeans仕様に準拠している必要があります。

プログラムで役立つために、JavaBeanは、その他のコンポーネントにより操作またはこれらのコンポーネントと対話できる手段を提供する必要があります。JavaBeansは、プロパティ、メソッドおよびイベントを定義することでこの要件を満たします。

すべてのコンポーネントには、プロパティ、メソッドおよびイベントが組み込まれています。コンポーネントが提供する一部のプロパティ、メソッドおよびイベントは、実際には祖先のクラスから継承されます。つまり、これらの要素をその他のコンポーネントと共有することを意味します。たとえば、UIコンポーネントはすべて、コンポーネントの背景色を表すbackgroundというプロパティを継承します。各コンポーネントは、独自の一意のプロパティ、メソッドおよびイベントを導入することもできます。たとえば、Swingチェックボックス・コンポーネントにはselectedというプロパティがあり、このコンポーネントが初期状態で選択されて表示されるかどうかを示します。

16.2.1 イベント処理メソッドの実装方法

GUIビルダーでは、イベントは主としてイベント処理メソッドとして表示されます。このイベント処理メソッドは、コンポーネントが含まれているクラスに実装する必要があります。たとえば、NewJFrameというコンテナにjButton1というボタンがあり、エンド・ユーザーがjButton1をクリックしたときに動作が発生するようにしたいとします。

イベント処理メソッドを実装する手順は次のとおりです。

1. NewJFrameエディタでjButton1を選択します。

2. 「プロパティ」ウィンドウで、Eventsノードを開きます。使用可能なイベントが表示され、actionPerformedが、ボタンを押したときに生成されるイベントです。

3. actionPerformedの横のフィールドから、ハンドラのデフォルト名、jButton1ActionPerformedを選択します。

4. JDeveloperはNewJFrameのソース・ビューに切り替わり、そのイベントの発生時にコールされるイベント処理メソッドがNewJFrameに挿入されます。
メソッドのデフォルト名はjButton1ActionPerformed()です。

5. ボタンが押されたときに応答するコードをメソッドに追加します。

エンド・ユーザーに対して、「プロパティ」ウィンドウの「イベント」ページに表示されるjButton1のすべての潜在的イベントが表示されます。コンポーネントの作成者は、コンポーネント・クラスを作成する際に、そのクラスで生成されるすべてのイベントが「プロパティ」ウィンドウに表示されるようにする責任があります。Beanを使用するためにエンド・ユーザーに必要なことは、イベント処理メソッドのコードを記述することのみです。

16.2.2 イベント処理メソッドを作成するときに行われる処理

バックグラウンドで、JDeveloperはイベント・リスニングの他の側面を処理する追加コードもFrame1.javaファイルに生成します。

- ActionListenerインタフェースを実装するアクション・アダプタの匿名の内部クラスを生成します。

- これによってFrame1でのクラスがインスタンス化されます。

- button1.addActionListener()をコールすることにより、自分自身をbutton1イベントのリスナーとして登録します。

このコードはすべてソース・ビューに表示されますが、主たるタスクは、イベント発生時にアクション・アダプタによってコールされるイベント処理メソッドを記述することです。

16.3 標準イベント・アダプタの理解

「リスナー生成スタイル」プロパティの説明。そのデフォルト値はSwing GUIビルダーのプリファレンスに含まれていて、ヘルプですでに説明済です。このデフォルト値は、新規に作成されたGUIフォームに使用されます。この値は、フォーム別に変更可能です。GUIフォームを開き、「構造」ウィンドウでこの値のrootノードを選択し、さらに「コード生成」プロパティで「リスナー生成スタイル」プロパティを設定します。

JDeveloperによるアダプタ・クラスの生成方法を制御するには、「プロジェクト・プロパティ」ダイアログの「コード・スタイル」ページから目的のオプションを選択します(詳細は、第4.3.11項「個別プロジェクトのプロパティの設定方法」を参照)。

16.3.1 イベント・セットの作成方法

イベント・セットは、イベントのタイプ、イベントの通信内容、およびイベントの生成およびリスニングに必要な要素を定義します。カスタム・イベントのセットを作成し、そのイベントをサポートするEventListenerインタフェースとEventObjectクラスを作成できます。イベント・リスナー・インタフェースは、イベント・セットのイベントを記述します。

イベント・セットを作成するには、次のようにします。

1. 「アプリケーション」ウィンドウで、Beanの追加先プロジェクトを選択します。

2. メイン・メニューから、「ファイル」→ギャラリから新規を選択します。

3. 新規ギャラリの「カテゴリ」ツリーで、「一般」を開き、「Java」を選択します。

4. 「項目」リストで、「イベント・セット」をダブルクリックします。

5. 「イベント・セットの作成」ダイアログの「名前」フィールドで、イベント・セットの名前を入力します。

6. イベントの追加、編集、または削除は、「通知」フィールドで行います。

7. 「OK」をクリックすると、新規イベント・セット・クラスがプロジェクトに追加されます。

16.3.2 コンポーネントがイベントを起動できるようにする方法

Beanを開発する場合、Beanで生成する必要があるすべてのイベントについて考慮する必要があります。コンポーネントが相互に通信する手段を「イベントの受渡し」といいます。コンポーネントはイベントを起動します。起動されたイベントは、通知の対象であるコンポーネントに配信されます。通知を受け取ったコンポーネントは、発生したイベントに基づいてアクションを実行できます。

コンポーネントをイベントが起動できるようにするには、次のようにします。

1. どのような種類のイベントを起動する必要があるかを決定し、次のどちらかを実行します。

- 該当する既存のイベント・セットをAWTまたはJFCから選択します。または、

- 新規イベント・セットを作成します。

2. コンポーネント用のイベント登録メソッドを作成します。

3. イベントに対するイベント通知/伝播のメカニズムを作成します。fire<yourEventName>Event()

4. 起動されたイベントを、Bean内でイベント送信を必要とする主要なポイントからコールし、イベント通知メカニズムをコールします。

第IV部

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

この部では、エンタープライズ・アプリケーションの起動、実行および終了に必要なフロントエンドおよびビジネス・テクノロジのすべてを含め、Oracle JDeveloperでJava EEアプリケーションを開発する方法について説明します。この部に含まれる章は次のとおりです。

- 第17章「Java EEアプリケーションの開発のスタート・ガイド」
この章では、Java EEアプリケーションを作成するためにサポートされているテクノロジについて説明します。

- 第18章「Webページ・ツールを使用したアプリケーションの開発」
この章では、HTML、JSF/Facelets、JSP、サーブレット、スクリプティングを使用してWebページや関連ビジネス・コンポーネントを作成するための機能を紹介し、そのためのタスクについて説明します。Webページの開発に使用できる関連ツールやテクノロジについても説明します。

- 第19章「EJBおよびJPAコンポーネントを使用した開発」
この章では、セッションBeanや永続性テクノロジを含めたEJBおよびJPAを使用してビジネス・コンポーネントを作成するための機能を紹介し、その作成方法について説明します。

- 第20章「Oracle TopLinkを使用したアプリケーションでの永続性の開発」
この章では、リレーショナル・データ構造に基づいてオブジェクト指向プログラム上で永続性機能を構築するためのTopLinkテクノロジと、それに関連する手順について説明します。

- 第21章「セキュアなアプリケーションの開発」
この章では、セキュアなアプリケーションの開発、デプロイおよび管理に必要な機能を紹介し、そのための手順について説明します。

- 第22章「XMLを使用したアプリケーションの開発」
この章では、XMLマッピングと構成ファイルのテクノロジを紹介し、XMLファイルの作成と終了についても説明します。

- 第23章「Webサービスの開発および保護」
この章では、既存システムのWebサービスを検出および実装する機能を紹介し、新しいWebサービスをデプロイする手順について説明します。

17 Java EEアプリケーションの開発のスタート・ガイド

この章では、アプリケーションの開発に使用できるJava EEの各種ツールとテクノロジの概要を示します。

この章には次の項が含まれます:

- 第17.1項「Java EEアプリケーションの開発について」

- 第17.2項「Webページの各種ツールの使用」

- 第17.3項「Enterprise JavaBeansおよびJava永続性コンポーネントの使用」

- 第17.4項「Oracle TopLinkの使用」

- 第17.5項「セキュアなアプリケーションの理解」

- 第17.6項「XMLを使用するアプリケーションの使用」

- 第17.7項「Webサービスを使用するアプリケーションの使用」

17.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

17.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 Application Development Frameworkの理解』を参照してください。

17.2 Webページの各種ツールの使用

JDeveloperには、Java EEアプリケーションのWeb層またはフロントエンドを開発するための各種ツールが用意されています。すべてのHTMLページ、JSPページ、JavaServer Faces (JSF)/Faceletページおよび関連ファイルを作成するためのウィザードを使用できます。

また、JDeveloperには、Webページの開発に使用する多数のタスクに関して、Webページのツールや手順を追った説明が用意されています。JSF/Facelets、JavaServer Pages (JSP)、Javaサーブレット、HyperText Markup Language (HTML)およびCascading Style Sheets (CSS)などの、サポートされているすべてのJava EEのWebアプリケーション・テクノロジを使用してWeb層コンポーネントをビルドできます。Java EEアプリケーションのWebコンポーネントにはプレゼンテーション・ロジックが含まれており、統合サーバー上で実行されます。

詳細は、第18章「Webページ・ツールを使用したアプリケーションの開発」を参照してください。

17.3 Enterprise JavaBeansおよびJava永続性コンポーネントの使用

新規ギャラリのウィザードを使用して、EJBプロジェクト、エンティティ、Java永続性ユニット、セッションBeanおよびメッセージドリブンBeanを作成できます。エンティティは、オンラインまたはオフラインのデータベース表定義から、およびアプリケーション・サーバーのデータソース接続から構築できます。

EJBの詳細は、第19章「EJBおよびJPAコンポーネントを使用した開発」を参照してください。

17.4 Oracle TopLinkの使用

Oracle TopLinkは、オブジェクト永続性およびオブジェクト変換フレームワークであり、開発とメンテナンスの作業を削減し、エンタープライズ・アプリケーションの機能性を高める開発ツールおよびランタイム機能を提供します。

TopLinkを使用して、TopLinkディスクリプタを構成し、Javaクラス、EJBおよびJPAエンティティをリレーショナル・データベース、企業情報システム(EIS)およびXMLスキーマなど別のデータソースにマップします。TopLinkエディタを使用すると、Javaコードを作成せずにこの情報を作成できます。TopLinkエディタでは、JPA、JAXBおよびJava EEなど複数の標準がサポートされています。

詳細は、第20章「Oracle TopLinkを使用したアプリケーションでの永続性の開発」を参照してください。

17.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と十分に統合されています。

詳細は、第21章「セキュアなアプリケーションの開発」を参照してください。

17.6 XMLを使用するアプリケーションの使用

JDeveloperには、アプリケーション内でXMLファイルを使用するために必要なツールが用意されています。XMLソース・エディタ、XMLバリデータ、およびXMLスキーマを使用するためのツールがあります。また、JDeveloperを使用してXSQLファイルを作成および編集することもできます。

JDeveloperでは、スキーマ・ドキュメントを最初から作成したり、スキーマをXMLドキュメントから(またはこの逆に)生成できます。スキーマが作成されたら、XSDビジュアル・エディタと「コンポーネント」ウィンドウを使用して要素を管理します。

詳細は、第22章「XMLを使用したアプリケーションの開発」を参照してください。

17.7 Webサービスを使用するアプリケーションの使用

Webサービスは、一連のメッセージ・プロトコルおよびプログラミング規格であり、オープン・スタンダードを使用してインターネット上でビジネス機能を公開します。Webサービスは、プログラムによってアクセスされ、レスポンスを戻す、再利用可能な独立したソフトウェア・コンポーネントです。JDeveloperには、既存のWebサービスの管理、および新規Webサービスの開発とデプロイを行うツールが用意されています。

Webサービスは、Javaクラス、EJBのリモート・インタフェース、およびEJBとしてラップされたADF Business Componentsサービス・セッションBeanから作成できます。Webサービスの各種ウィザードによって、アプリケーション・サーバー用のデプロイメント・ファイルが作成されます。詳細は、第23.4.1項「JAX-WS Webサービスの作成方法(ボトムアップ)」を参照してください。

JDeveloperは、一連の標準的なJava-to-XMLタイプのマッピングもサポートしています。また、一意のオブジェクト・タイプに対してカスタム・シリアライザを作成することもできます。詳細は、第23.2項「JDeveloperを使用したWebサービスの作成および使用」を参照してください。

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

この章では、ページ・ビルド・ウィザード、ビジュアル・エディタおよびソース・エディタ、「コンポーネント」ウィンドウ、および「プロパティ」ウィンドウなどのOracle JDeveloperの各種ツールと機能を使用して、HTML、JSP、JSF/facelet、式言語、スクリプト、およびサーブレットを使用するユーザー・インタフェースとビジネス・サービスをビルドおよび編集する方法について説明します。

この章には次の項が含まれます:

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

- 第18.2項「JavaServer Facesを使用したアプリケーションの開発」

- 第18.3項「HTMLページを使用したアプリケーションの開発」

- 第18.4項「Java Server Pagesの使用」

- 第18.5項「Javaサーブレットを使用したアプリケーションの開発」

- 第18.6項「スクリプト言語を使用したアプリケーションの開発」

- 第18.7項「JSPおよびFaceletタグ・ライブラリの使用」

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

Oracle JDeveloperには、Java EEアプリケーションのフロントエンドまたはビュー・レイヤーを開発するための各種ツールが用意されています。

Webツールの中心には、ソース・エディタやビジュアル・エディタの他、ページとページ内の要素および関連プロパティ(ビジネス・サービスやローカライゼーション・コンポーネントを含む)を追加したり編集するために統合されたコンポーネント・ツールおよびプロパティ・ツールがあります。スタイルシートとタグ・ライブラリを作成および変更したり、コード・インサイトのコードとタグの補完ツールを使用してHTML、JSPおよびJSF/FaceletまたはJavaソース・ファイルを効率的にコーディングできます。

さらに、すべてのHTMLページ、JSPページ、JSF/Faceletページおよび関連ファイルを作成するための便利なウィザードもあります。ウィザードを使用してWebページを作成すると、構成ファイル、Beanマッピング、タグ・ライブラリおよびJARファイルが自動的に設定され、編集可能になります。

この章では、Webページ・ツールについて説明するとともに、アプリケーションのWebページを開発するために使用する多くのタスクについて段階的に説明します。

18.1.1 ソース・エディタの使用

ソース・エディタは、Webページを対象とした基本的なコード・エディタです。ソース・エディタを使用して、ページをビジュアル表示できるビジュアル・エディタとともにページのカスタム・コードを作成します。図18-1は、JSFページ用のソース・エディタを示しています。

図18-1 一般的なJSFコードが表示されたソース・エディタ

ソース・エディタには、コード作成タスクを簡略化する機能が組み込まれています。表18-1に、ソース・エディタの主な機能を示します。

表18-1 ソース・エディタの主な機能

機能

説明

タグのクイック・ドキュメント

コーディング中にタグ定義を表示します。タグ上にカーソルを置いて[Ctrl]+[D]を押します。タグ定義の詳細が表示された小さいウィンドウがエディタの上部に表示されます。エディタで「戻る」をクリックすると、ウィンドウが閉じます。また、右クリックして「クイックTagDoc」を選択することもできます。

コード・テンプレート

コードを手動で入力するのではなく、事前に作成されたコードをソース・ファイルに挿入することにより、時間を節約します。テンプレートでは、挿入したコードが前後のコードに合せて適切に変更されます。ショートカットを使用すると、必要なテンプレートをより迅速に選択できます。

コード・インサイト

要素オプションとパラメータ・オプションを表示およびフィルタし、コード補完を取得します。ソース・エディタには、タグ、属性名と属性値、および埋込みCSSおよびJavaScriptコード用のコード・インサイトが用意されています。

マネージドBeanへのジャンプ

WebページのソースからマネージドBeanのコードに迅速にジャンプします。ソース・エディタまたは「構造」ウィンドウで右クリックして「移動先」を選択し、このページから参照されるすべてのBeanのリストから選択肢を選択します。

行コメントの設定

選択したブロックの各行の先頭にあるコメント・マーカーを追加または削除します。単一行を選択してこの行のみをコメント化または非コメント化します。

エディタの分割

スプリッタを使用してコード表示とビジュアル表示を切り替えます。ファイルを水平方向に分割するには、垂直スクロール・バーのすぐ上(ウィンドウの右上隅)でスプリッタをクリックし、下にドラッグします。ファイルを垂直方向に分割するには、水平スクロール・バーのすぐ右(ウィンドウの右下隅)でスプリッタをクリックし、左にドラッグします。

18.1.2 ビジュアル編集環境での作業

JSP/HTMLビジュアル・エディタは、JSP、JSF、FaceletsおよびHTMLページを含むすべてのWebページをWYSIWYG編集するために使用します。

Webページの要素は、ビジュアル・エディタでは視覚的に表示されるか、または構造的に表されます。JSTLを含むJSPタグおよびBC4Jタグはアイコンおよびタグ名として表示されますが、HTMLページはブラウザのルック・アンド・フィールに基づいてレンダリングされます。画面を前後に切り替えたり分割することにより、デザイン時にソース・エディタを表示できます。

ビジュアル・エディタは「コンポーネント」ウィンドウと同時に開き、図18-2に示すように、ページへのドラッグ・アンド・ドロップに対応します。

図18-2 JSFページに対するビジュアル・エディタ

表18-2に詳細を示すとおり、いくつかのビジュアル編集機能が使用できます。

表18-2 ビジュアル・エディタの主な機能

機能

説明

即時のルック・アンド・フィール

ビジュアル・エディタでファイルを開くと、そのファイルはHTMLおよび関連のWebフォーマットでレンダリングされます。編集結果は即座に表示されます。

視覚的および非視覚的要素をサポート

視覚的なコンポーネントとタグ、およびスクリプト言語、式、値がページに追加されます。

スタイルシートの関連付け

スタイルシートをページに追加、またはページから削除したり、テキスト・スタイルを変更します。

ページ要素の移動とサイズ変更

「プロパティ」ウィンドウで、または右クリックして「プロパティ」を選択することによって、要素を手動でドラッグしてサイズ変更したり、ページ要素のプロパティを変更します。

エディタの分割

スプリッタを使用してコード表示とビジュアル表示を切り替えます。ファイルを水平方向に分割するには、垂直スクロール・バーのすぐ上(ウィンドウの右上隅)でスプリッタをクリックし、下にドラッグします。ファイルを垂直方向に分割するには、水平スクロール・バーのすぐ右(ウィンドウの右下隅)でスプリッタをクリックし、左にドラッグします。

表およびフォームのデザイン

表またはフォームのコンポーネントをページにドラッグして、そのデザインを視覚的に編集します。

要素属性の変更

ページ要素を選択し、「プロパティ」ウィンドウに移動して属性の追加または編集を行います。

ネストしたコンポーネントを時系列順に表示

ネストしたコンポーネントを、ブラウザのような関連のWebフォーマットを使用して時系列順に表示、および選択します。レンダリングされた結果は即時に表示されます。

構造レビュー

ページ要素の構造を「構造」ウィンドウに表示します。

コンテキスト依存の編集ツール

「コンポーネント」ウィンドウのタグ・ライブラリは、コンテキストで使用可能なコンポーネントのみを表示します。

コンテキストのコマンド・メニュー

ページの任意の場所を右クリックすると、選択内容に応じて使用可能なコマンドのメニューが表示されます。

全体的なツールの統合

ビジュアル・エディタは、Javaソース・エディタ、「構造」ウィンドウ、「コンポーネント」ウィンドウ、「プロパティ」ウィンドウおよびデータ・バインディング・パレットと統合されており、単純なドラッグ・アンド・ドロップ操作を使用した、データバインドWebページのアセンブリをサポートしています。ツールに加えられた変更は、すべてのツールに即時に反映されます。

ビジュアル・エディタのウィンドウの上部にアイコンとして表示される追加の編集ツールや機能もいくつかあり、これらについては表18-3に詳しく説明します。

表18-3 ビジュアル・エディタのツールバー・アイコン機能

アイコン

名前

説明

リフレッシュ

2種類のリフレッシュのタイプから選択できます。「リフレッシュ」ボタンのドロップダウン・メニューを使用します。

「ページのリフレッシュ」は、ページの内部データ構造を再構築し、再度レンダリングします。このツールはインクルードされたページ(ページ・テンプレートなど)が変更され、このインクルードされたページでの効果を確認したい場合に使用します。

「完全リフレッシュ」を使用して、ページ・プロジェクトの内部デザインタイムを完全に再起動します。このとき、web.xmlのサーブレット・コンテキストとタグ・ライブラリが、またFacesプロジェクトの場合はfaces-config.xmlからのFacesコンテキストが再構築されます。「完全リフレッシュ」によって、アクティブなページの内部データ構造が再構築され、再度レンダリングされます。

設計モード

ファセット表やコンテナの余分な間隔調整などの設計アフォーダンスを表示するかどうかを選択できます。Trueを指定すると、アフォーダンスが非表示になり、ページは実行時に表示されるとおりに表示されます。

設定

ビジュアル・エディタの「設定」タグを表示します。これらのオプションは、「ツール」→「設定」→「JSP/HTMLビジュアル・エディタ」と選択して表示することもできます。

表示カスタマイズ

モニター解像度に合わせた表示、ウィンドウの適合サイズを含め、ビジュアル編集ウィンドウの様々なカスタム表示サイズから選択できます。

ブラウザ選択

使用可能なブラウザの中から、ページの表示に優先的に使用するブラウザを選択できます。

表18-4に、Webページの編集時に簡単なキーストローク・コマンドで使用可能な機能を示します。

表18-4 ビジュアル・エディタの主なキーストローク・コマンド機能

機能

説明

ブレッドクラム

ビジュアル・エディタ・ウィンドウの下部に表示されるブレッドクラムを使用して、ネストしたコンポーネントを時系列で表示し、選択します。

コンポーネントの選択

カーソルをページのコンポーネント上に置くと、このコンポーネントのアウトラインがオレンジでハイライト表示されます。

コンテナの編集

「構造」ウィンドウまたはビジュアル・エディタ・ウィンドウで、コンテナを選択します。コンテナを右クリックして、「このコンテナにフォーカス」を選択します。このコンテナは編集するウィンドウで選択されます。この機能を使用すると、選択したコンテナ内の個々のコンポーネントの表示と編集が簡単になります。

ビジュアルEL式の表示プリファレンス

表示のために式を解決するかどうか、および解決されない式の表示方法を選択します。「表示」ツールバー機能を選択してELレンダリングのプリファレンスを選択します。または、「ツール」→「プリファレンス」→「JSP/HTMLビジュアル・エディタ」を選択することもできます。

式ビルダーとテキスト・ポップアップ

コンポーネントを選択します。ゆっくりダブルクリックするか、または[F1]を押してポップアップ・ウィンドウを表示します。この値フィールドで式またはテキストを編集します。

対応する要素の表示

ページ要素が「構造」ウィンドウに階層状に表示されます。「構造」ウィンドウでノードをダブルクリックすると、フォーカスが「プロパティ」ウィンドウに移ります。

ビジュアル・エディタとコード・エディタの分割

ビジュアル・エディタとソース・エディタを使用してファイルを同時に編集します。同時に編集するには、2つのエディタの一方でページを開き、分割線を使用して他方のエディタでもう1つのページ・ビューを開きます。

ファイルを水平方向に分割するには、垂直スクロール・バーのすぐ上(ウィンドウの右上隅)でスプリッタをクリックし、下にドラッグします。

ファイルを垂直方向に分割するには、水平スクロール・バーのすぐ右(ウィンドウの右下隅)でスプリッタをクリックし、左にドラッグします。

簡易編集フォーカス

デフォルトでは、新しいJSPページまたはHTMLページはフォーカスのあるビジュアル・エディタで開かれます。「アプリケーション」ウィンドウでノードをダブルクリックすると、デフォルトのエディタが開かれるか、前面に表示されます。

現在作業しているファイルに対応するノードを「アプリケーション」ウィンドウで特定するには、右クリックして「アプリケーション・ウィンドウで選択」を選択します。または、キーボード・ショートカット(デフォルトのキーマップでは[Alt]+[Home])を使用します。

タグ表示

ボディ・コンテンツが埋め込まれたタグのスコープは、影付きの四角形で囲まれたタグのアイコンと名前によって構造的に表現されます。タグ・コンテナはネストされて(構造的に)表示され、たとえば表内の繰り返し行などを表します。タグをクリックするとカーソルが現れ、タグ・コンテナにコンテンツを入力できます。

HTML/JSPファイルからCSSファイルへのCSSコードの抽出

HTML/JSPファイルから新規CSSファイルにCSSブロックを抽出すると、すべての参照が自動的に更新されます。このオプションは、コード・エディタおよび「構造」ウィンドウから使用できます。これはJavaScriptにも使用できます。

HTMLファイルにリンクしたスタイルシート

スタイルシートをHTMLファイルにリンクするには、「コンポーネント」ウィンドウの共通タブから<style>タグまたは<link>タグをHTMLページにドロップするだけです。

モバイル・デバイスの表示

モバイル対応JSPドキュメントの場合、選択したデバイス・カテゴリのビュー・ポートが設計ビューでエミュレートされます。ツールバーには、デバイス・カテゴリ・アイコンが参照デバイス・ドロップダウン・リストとともに表示されます。

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

図18-3および図18-4に示すように、ネストされたJSPおよびHTMLのページ要素をビジュアル・エディタと「構造」ウィンドウで展開または縮小することによって、Webページに関する詳細の表示を調整するように選択できます。

図18-3 ネストされた長方形内のコンテナ・タグ

図18-4 縮小されたHTML表

コンテナ要素を縮小するには、次のようにします。

次のいずれかのオプションを選択します。

- コンテナ要素のプラス(+)記号をクリックします。

- コンテナ要素を右クリックし、ポップアップ・メニューから「下をすべて展開」を選択します。

18.1.2.2 デフォルトの環境設定の変更方法

「設定」ページを使用して、ビジュアル編集ウィンドウのルック・アンド・フィールを変更します。次の機能を使用できます。

- テキストの前景色/背景色、要素/タグの輪郭色、およびカレットの色

- ビジュアル・エディタと「構造」ウィンドウまたはソース・エディタの同期化

- エラーと警告の表示

- タグ名の表示

デフォルト設定を変更する手順は次のとおりです。

1. メイン・メニューから、「ツール」→「プリファレンス」を選択します。

2. 「JSP/HTMLビジュアル・エディタ」を選択します。

3. オプションを選択し、フィールドを設定します。

4. 「OK」をクリックします。

18.1.2.3 非表示要素の表示方法

デフォルトでは表示されない要素(次のものがあります)を非表示にする、または非表示にしないように選択します。

- HTML名前付きアンカー、スクリプト・タグおよび改行

- JSPタグ・ライブラリ・ディレクティブおよびBeanタグ

非表示要素の表示を変更する手順は次のとおりです。

1. メイン・メニューから、「ツール」→「プリファレンス」を選択します。

2. 「設定」ダイアログで、「JSP/HTMLビジュアル・エディタ」を開いて「非表示要素」を選択します。

3. 終了したら、「OK」をクリックします。作業中に、非表示要素の表示をオンとオフに切り替えることができます。メイン・メニューに移動して、「設計」→「表示」を選択し、「非表示HTML要素」または「非表示JSP要素」を選択します。

18.1.2.4 JSPタグの実行方法

実行時のページの外観のスナップショットを取得するには、シミュレートされたJSP/サーブレット・コンテナでタグ・ライブラリを実行します。「ライブラリの管理」ページを使用して、ビジュアル・エディタで実行するようにタグ・ライブラリを構成します。

JSPタグ・ライブラリが設計時に実行されるように設定する手順は次のとおりです。

1. メイン・メニューから、「ツール」→「ライブラリの管理」を選択するか、プロジェクトを選択してダブルクリックします。

2. 「ライブラリの管理」ダイアログの「JSPタグ・ライブラリ」を選択します。

3. タグを選択し、「JSPビジュアル・エディタでのタグの実行」を選択します。

4. 「OK」をクリックします。

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

ページの表示を簡単にしたい場合は、名前のみでJSPタグを表示します。「設定」ページに移動して、埋込みEL構文を表示しないように選択します。たとえば、<c:out value="$\{Row.Deptno\}"></c:out>は$\{Row.Deptno\}ではなくoutと表示されます。

JSPタグを名前のみで表示するには、次のようにします。

1. メイン・メニューから、「ツール」→「プリファレンス」を選択します。

2. 「JSP/HTMLビジュアル・エディタ」を選択します。

3. 「JSPタグ名のみ表示」チェック・ボックスを選択します。このチェック・ボックスは、デフォルトでは選択が解除されています。

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

「設定」ページを使用して、デフォルトのキーマップ設定をカスタマイズし、ショートカット・キーの割当てを指定します。

キーマップのショートカット・キーをカスタマイズする手順は次のとおりです。

1. メイン・メニューから、「ツール」→「プリファレンス」を選択します。

2. 「設定」ダイアログで、「ショートカット・キー」を選択します。

3. 初期設定キーマップを選択し、ショートカットに変更を加えます。

4. 「OK」をクリックします。

18.1.2.7 要素の選択方法

単独の要素、表などの要素も含めたコンテナ要素、または複数の要素を選択します。選択内容は点線で囲まれます。構造ウィンドウでは、選択した要素はハイライト表示されます。

要素を選択するには、次のようにします。

1. ビジュアル・エディタまたは「構造」ウィンドウで、要素上にポインタ・カーソルを置きます。

2. 要素をクリックします。選択した要素に要素が含まれている場合は、含まれている要素もすべて選択されます。コンテナをコピー、移動または削除すると、含まれている要素もすべて対象になります。
または

要素を右クリックします。要素を右クリックすると、オプションのポップアップ・メニューが表示されます。たとえば、ページ・ソースで要素コードを強調表示するには、右クリックして「ソースに移動」を選択します。

注意:

要素をダブルクリックすると、そのタグ用のエディタ・ダイアログが表示されます。

18.1.2.8 複数の要素の選択方法

[Ctrl]キーを使用して、グループ化された要素を選択および管理します。

複数の要素を選択するには、次のようにします。

1. ビジュアル・エディタまたは「構造」ウィンドウで、開いているWebページの要素上にポインタ・カーソルを置きます。

2. 最初の要素をクリックします。

3. [Ctrl]キーを押したままの状態にします。

4. その他の要素をクリックします。他の要素を選択したままで1つの要素のみを選択解除するには、[Ctrl]キーを押したまま選択解除する要素を再度クリックします。削除以外の目的で隣接しない複数の要素を選択した場合、予想外の結果になることがあります。たとえばWeb階層の異なるレベルにある要素を選択し、ページ内の別の場所に移動またはコピーした場合、要素間の相対的な位置関係が失われることがあります。

18.1.2.9 要素の範囲の選択方法

要素を個別にスクロールして選択するかわりに、[Shift]を押しながらクリックすると、2回のクリックで広範囲の要素を選択できます。

隣接する要素をまとめて選択するには、次のようにします。

1. ビジュアル・エディタまたは「構造」ウィンドウで、最初の要素上にポインタ・カーソルを置きます。

2. 要素をクリックします。

3. 選択範囲の最後までスクロールし、[Shift]を押しながらクリックします。

ヒント:

JSPタグ・ライブラリでは、要素上にマウス・ポインタを動かすとタグ名を示したツールチップが表示され、選択する必要のある項目が容易に判断できます。

別の要素に含まれる要素のコンテナ要素を選択するには、[Ctrl]、[Shift]および[↑]を同時に押します。この方法は、ネストしたコンテナをスクロールする際にも役立ちます。たとえば、テキストにリンクを追加する場合、リンク・ターゲットに移動するためには、[Ctrl]、[Shift]および[↑]を2回押す必要があります。

18.1.2.10 テキストの選択方法

マウスを使用して、ページ上の語、文字列、またはテキストのグループを選択および編集します。

テキストを選択するには、次のようにします。

次のオプションのいずれか1つを選択します。

- ダブルクリックして単語を選択します。

- 行全体を3回クリックします。

- 希望するテキスト範囲をカーソルでドラッグして選択します。

- 選択の開始地点をクリックして終了地点までスクロールし、[Shift]を押しながら終了地点をクリックします。

18.1.2.11 ビジュアル・エディタでの挿入ポイントの選択方法

ターゲット要素の前、後あるいは内部に含まれる挿入ポイントを特定するための視覚的な合図があります。

ビジュアル・エディタで挿入ポイントを選択するには、次のようにします。

- 要素をドラッグする際、縦線 | が表示されて、目的の挿入ポイントが正確に指定されます。マウス・ボタンを放すと、要素がそのスポットに挿入されます。

- 挿入を示す視覚的な合図は、次のとおりです。

- ページ上の希望する場所を選択します。選択した位置にはカーソルが点滅して表示されます。

- 挿入する要素を含むコンテナとなる要素を選択します。コンテナ要素が点線で表示されます。

18.1.2.12 「構造」ウィンドウでの挿入ポイントの選択方法

「構造」ウィンドウで、ページ全体で要素を移動させます。要素は時系列順に、つまり、ページに追加されるたびに表示されます。「構造」ウィンドウで要素の位置を変更すると、ページ上での順序も変更されます。

構造ウィンドウで挿入ポイントを選択するには、次のようにします。

これらのオプションの中から、ページ要素を挿入ポイントにドラッグするように選択します。

- ターゲット要素の前に挿入する場合は、その要素の上部にドラッグし、中央に上向きの矢印のある横線が表示された後、マウスのボタンを放します。

- ターゲット要素の後ろに挿入する場合は、その要素の下部にドラッグし、中央に下向きの矢印のある横線が表示された後、マウスのボタンを放します。

- 挿入する要素がターゲット要素に含まれるようにするには、要素の上にドラッグし、要素がボックスで囲まれた時点でマウスのボタンを放します。挿入する要素をターゲット要素に含めることができない場合、その要素はターゲット要素の後に挿入されます。

クリックしてターゲット位置を選択する場合には、ターゲット要素を選択します。

注意:

通行止め(円に斜めの線)によって、挿入ポイントが使用できないことが示されます。

18.1.2.13 「コンポーネント」ウィンドウからの要素の挿入方法

UIとデータ要素をWebページに追加するには、「コンポーネント」ウィンドウを使用します。挿入ポイントを選択すると、そのポイントは「構造」ウィンドウとページの両方で選択されるため、挿入位置を視覚的にも階層的にも確認できます。

詳細は、第18.1.4項「「コンポーネント」ウィンドウの使用方法」を参照してください。

ページ要素を挿入するには、次のようにします。

1. 「コンポーネント」ウィンドウのパッケージまたはページをドロップダウン・リストから選択します。「コンポーネント」ウィンドウはコンテキスト依存であり、アクティブなファイルに関連するオプションのみが表示されます。

2. 次のいずれかのオプションを選択します。

- 挿入ポイントを選択して、挿入する要素をクリックします。

- 要素を「コンポーネント」ウィンドウから挿入ポイントまでドラッグします。

3. 要素のタイプによっては挿入ダイアログが表示され、ファイルの選択や挿入、またはタグ属性の入力を求められます。現在の挿入ポイントでコンポーネントが有効でない場合、挿入は失敗します。

ページ要素を挿入すると、その要素のソース・コードが自動的に生成されます。要素を削除すると、コードが削除されます。

18.1.2.14 要素プロパティの設定および変更方法

「プロパティ」ウィンドウに、選択した要素のプロパティが表示されます。プロパティの設定または変更は、どの要素に対しても実行できます。設定済のプロパティ値には緑色のボックスが表示されます。「プロパティ」ウィンドウが表示されていない場合は、「表示」→「プロパティ」ウィンドウを選択するか、ショートカット・キーを使用して[Ctrl]と[Shift]を押しながら[I]を押します。変更を元に戻すには、メイン・メニューから「編集」→「操作を戻す」を選択します。プロパティを元の値にリセットするには、「デフォルトに設定」ボタンを使用します。

詳細は、第18.1.3項「「プロパティ」ウィンドウの使用方法」を参照してください。

要素のプロパティを設定するには、次のようにします。

1. 要素を選択します。

2. プロパティを選択します。簡単な説明が下部に表示されます。

注意:

「プロパティ」ウィンドウの最上部の「検索」を使用して、プロパティを検索することもできます。

3. 次のオプションから選択します。

- テキスト・フィールドには、そのプロパティに対する文字列値(テキスト値や数値など)を入力し、[Enter]を押します。

- 値フィールドに下向きの矢印が表示されている場合、矢印をクリックし、リストから値を選択して[Enter]を押します。

- 省略記号(...)をクリックして、そのプロパティ用のエディタ(色またはフォント・セレクタなど)を表示します。値を設定して、「OK」をクリックします。

プロパティのエディタを表示するには、要素をダブルクリックします。

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

データ・コントロール・パレットでデータバインドされたUIコンポーネントを作成するかわりに、ビジュアル・エディタにADFバインディングを設定できます。

要素プロパティのデータ・ソースを設定または削除するには、「プロパティ」ウィンドウを使用します。「値バインディング」ダイアログで、オブジェクトで定義される使用可能なデータソース、またはEL式に指定するアプリケーションのADFバインディング・コンテキストを選択します。ADFバインディングをデータソースとして指定するには、事前にバインディングを作成しておく必要があります。

要素のプロパティをデータ・バインドするには、次のようにします。

1. ビジュアル・エディタまたは「構造」ウィンドウで要素を選択します。

2. そのプロパティのデータ・ソースを選択します。

3. 「データにバインド」をクリックします。プロパティ値のフィールドにEL式が表示され、省略記号ボタン(...)が表示されます。

4. 省略記号ボタンをクリックして「値バインディング」ダイアログを表示し、データソースを選択します。

5. 「OK」をクリックします。

ヒント:

JSP要素のプロパティからデータソースを削除するには、「データにバインド」ボタンの選択を解除します。

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

デフォルトでは、「プロパティ」ウィンドウに、選択した要素のプロパティがすべて表示されます。「プロパティ」ウィンドウのツールバーの「統合して表示」をクリックすると、選択した要素のプロパティをすべて表示することと、選択した要素に共通のプロパティのみを表示すること(共通部分)を切り替えられます。イタリック体で表示された値は、異なる値を持つ共通プロパティです。

複数の要素にプロパティを設定するには、次のようにします。

次のいずれかのオプションを選択します。

- [Ctrl]キーを押しながら各要素を選択します。

- 「プロパティ」ウィンドウによって表示されるプロパティのリストを変更するには、ツールバーの「統合して表示」ボタンをクリックします。

- プロパティを選択して編集します。値がイタリック体で表示されている場合、選択される要素によって値が異なります。共有プロパティの値を編集すると、選択したすべての要素が同じ値になります。

18.1.2.17 ページ要素の切取り方法

標準的なコマンドを使用してWebページの要素を切り取り、それをクリップボードに置いてから、別の場所に貼り付けます。

ページ要素を切り取る手順は次のとおりです。

1. 切り取るページ要素を選択します。

2. [Ctrl]を押しながら[X]を押すか、または右クリックして「切取り」を選択します。メイン・メニューから、「編集」→「切取り」を選択することもできます。
要素はエディタから削除され、システム・クリップボードではなく、アプリケーションからのみアクセス可能なローカル・クリップボードに置かれます。要素を貼り付けずにJDeveloperを終了した場合、切り取った要素は失われます。

切取りコマンドは、切取り/貼付け操作の最初のステップです。要素を削除することもできます。要素を削除すると、クリップボードの内容は変更されずに要素が削除されます。

18.1.2.18 ページ要素の削除方法

Webページ要素を削除すると、それはシステムから完全に除去されます。この操作によって、既存のクリップボードのコンテンツが変更されることはありません。選択した要素に組み込まれた要素がある場合、その要素を削除すると組み込まれている要素もすべて削除されます。

ページ要素を削除する手順は次のとおりです。

1. 削除する1つまたは複数のページ要素を選択します。

2. [Del]または[Back Space]を押します。右クリックして「削除」を選択することも、メイン・メニューから「編集」→「削除」を選択することもできます。

18.1.2.19 ページ要素のコピー方法

標準的なコマンドを使用するか、コピーのドラッグ機能を使用して、ページ要素をコピーします。

ページ要素をコピーする手順は次のとおりです。

1. コピーするページ要素を選択します。

2. [Ctrl]を押しながら[C]を押します。右クリックして「コピー」を選択することも、メイン・メニューから「編集」→「コピー」を選択することもできます。
ビジュアル・エディタでは、次の方法でもコピーできます。

- 要素を右クリックして挿入ポイントまでドラッグし、マウスを放して、ポップアップ・メニューから「ここにコピー」を選択します。

- [Ctrl]を押しながら選択した要素のコピーをページ上の挿入ポイントまでドラッグします。

18.1.2.20 ページ要素の移動方法

ほとんどの要素は、1つの場所から別の場所へドラッグできます。ビジュアル・エディタまたは「構造」ウィンドウで、元の位置から挿入ポイントまで要素を右クリックでドラッグし、ポップアップ・メニューから「ここに移動」を選択します。

18.1.2.21 ページ要素のサイズ変更方法

ページ要素をサイズ変更するには、「プロパティ」ウィンドウを使用するか、その要素のポップアップ・メニューを使用します。

1. 「プロパティ」ウィンドウでスタイル・サイズに移動し、サイズの設定を選択するか、ページの100パーセント幅であるデフォルトに戻ります。

2. 要素をダブルクリックし、エディタ・ダイアログでサイズのプロパティを設定し、「OK」をクリックします。また、要素を右クリックして「タグの編集」を選択し、エディタ・ダイアログでサイズのプロパティを設定して「OK」をクリックするか、要素を選択し、「プロパティ」ウィンドウでサイズのプロパティを設定することもできます。

18.1.2.22 データ表の作成および編集方法

h.dataTableタグを使用して、データ表を表示します。「データ表の作成ウィザード」を使用すると、このタグがJSFページに挿入されます。このウィザードでは、基本的な書式設定も提供されます。表を作成した後は、属性値を設定または変更して、表をさらに編集できます。また、列を追加または削除したり、コンポーネントを追加したりすることもできます。

データ表を作成および編集する手順は、次のとおりです。

1. ビジュアル・エディタでJSFページを開きます。

2. 「コンポーネント」ウィンドウで、ドロップダウン・リストからJSFを選択します。

3. 「コンポーネント」ウィンドウからデータ表をダブルクリックまたはドラッグします。データ表の作成ウィザードが開きます。

4. ウィザードのステップに従います。

5. ウィザードを使用してアクセスされない属性の値を変更または設定する手順は、次のとおりです。

- 「構造」ウィンドウでh:dataTableコンポーネントを選択します。

- 「プロパティ」ウィンドウで、値を設定する属性の横のフィールドをクリックします。様々な属性に関する情報は、右クリックで表示されるポップアップ・メニューの「ヘルプ」を使用してください。

18.1.2.23 データ表の列の使用方法

右クリックによるポップアップ・メニューを使用して、データ列の編集、移動、挿入、削除など、様々なオプションにアクセスします。

データ表の列を使用するには、次のようにします。

- 単一の列を追加するには、新しい列を追加する場所の横にある既存列を右クリックし、「h:columnの前に挿入」→「列」の順に選択するか、または「h:columnの後ろに挿入」→「列」の順に選択します。選択した列の前または後に列が追加されます。新規列が選択された状態になります。

- 複数の列を追加するには、次のようにします。

- 新しい列を追加する場所の横にある既存列を右クリックし、「データ表」→「列の挿入」の順に選択します。

- ダイアログを完了します。

- 列の順序を変更するには、「構造」ウィンドウまたはビジュアル・エディタで列をドラッグ・アンド・ドロップします。

- コンポーネントや他のオブジェクトを列に追加するには(データを表示するためなど)、列を右クリックし、「列の中に挿入」を選択します。

注意:

ビジュアル・エディタまたは「構造」ウィンドウで列表を選択することもできます。ビジュアル・エディタのドロップダウン・メニューで、「列の中に挿入」→「出力テキスト」を選択します。

- 列を削除するには、列を右クリックして「削除」を選択します。

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

HTML表を表示するには、JSFのpanelGridタグを使用してします。パネル・グリッド内にその他のコンポーネントを追加できます。グリッドの作成には、「PanelGridの作成ウィザード」を使用します。

「コンポーネント」ウィンドウを使用して、パネル・グリッドを追加します。作成が終了したら、「構造」ペインで「h:panelGrid」コンポーネントをダブルクリックして、ウィザードで設定した属性値を変更できます。プロパティ・エディタが開きます。必要に応じて値を変更します。

グリッドにコンポーネントを挿入するには、構造ペインで既存のコンポーネントを右クリックし、コンポーネントを既存のコンポーネントの前に配置するか、後に配置するかを選択します。セル内にコンポーネントをネストする必要がある場合は、最初にセル内にpanelGroupタグを配置する必要があります。その後は、panelGroupタグ内に他のコンポーネントを配置できます。パネル・グリッドに行を追加することはできません。列属性を使用して列を追加できるのみです。また、コンポーネントは、構造ウィンドウ内の表示順に、1つの行の列内に配置されます。

コンポーネントの順序を変更するには、構造ウィンドウまたはビジュアル・エディタで列をドラッグ・アンド・ドロップします。

グリッドまたはグリッド内のコンポーネントを削除するには、該当するコンポーネントを右クリックして「削除」を選択します。

パネル・グリッドを作成および編集する手順は、次のとおりです。

1. ビジュアル・エディタでJSFページを開きます。

2. 「コンポーネント」ウィンドウで、ドロップダウン・リストからJSFを選択します。

3. パネル・グリッドを選択します。「PanelGridの作成」ウィザードが開きます。

4. ウィザードを完了します。

18.1.2.25 マークアップ・コードの貼付け方法

ソース・コードは、同じプロジェクトまたは別々のプロジェクトのJSPファイルとHTMLファイル間でコピーして貼り付けることができます。サンプル・コードとして貼り付ける場合など、解釈せずにソース・コードを貼り付ける場合は、「マークアップ挿入の確認」ダイアログで「いいえ」を選択してください。

マークアップ・コードを貼り付けるには、次のようにします。

1. ソース・コードをローカルのシステム・クリップボードにコピーします。

2. 「編集」→「特殊貼付け」を選択します。

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

スタイル定義やブラウザ・ウィンドウのタイトルといったHTMLのheadコンテンツは、Webページには表示されない要素です。

最初のコンテンツを表示するには、「設計」→「非表示要素の表示」→「最初のコンテンツ」を選択します。headセクション内の各要素に対して、ページ上段のバーにアイコンが表示されます。

headセクション・バーから要素を選択すると、その要素に対するソース・コードがコード・エディタで選択されます。

ページのheadセクションの要素を編集するには、次のようにします。

1. 「設計」→「表示」→「HEADのコンテンツ」を選択し、開いているWebページに<head>セクション要素を表示します。

2. 次のオプションから選択します。

- ヘッド・セクション・バーの要素をクリックして選択し、「プロパティ」ウィンドウでその要素のプロパティを設定または変更します。

- 要素を右クリックしてポップアップ・メニューから「タグの編集」を選択し、エディタのダイアログを表示します。Cascading Style Sheetを開いて編集するには、ポップアップ・メニューから「css/filename.cssを開く」を選択します。

18.1.3 「プロパティ」ウィンドウの使用

「プロパティ」ウィンドウを使用してコンポーネントのプロパティの表示と編集を行います。

編集しているページでコンポーネントを選択すると、図18-5に示すように、「プロパティ」ウィンドウのタイトル・バーにコンポーネントの名前が表示されます。メイン・エリアには、コンポーネントのプロパティとその値が表示されます。アクティブなツールで1つまたは複数のコンポーネントを選択した場合、タイトル・バーに「複数」と表示され、選択したコンポーネント間で共有されるプロパティのみが表示されます。

図18-5 「プロパティ」ウィンドウ

「プロパティ」のメイン・エリアには、プロパティのグループが、開閉できる名前の付いたセクションに表示されます。コンポーネントのプロパティがフィールド、ドロップダウン・リストまたはコンボ・ボックスに表示されます。ブール型プロパティの場合は、プロパティ名の前のチェック・ボックスに現在の値が示されます。EL式を受け入れるブール型プロパティは、現在値が式であるか、またはtrueかfalseの明示的な値であるかに応じて、フィールドまたはドロップダウン・リストのいずれかを使用します。

プロパティの説明または追加オプションを表示するには、プロパティ名、フィールド、ドロップダウン・リストまたはコンボ・ボックスを右クリックして、ポップアップ・ウィンドウを表示します。ポップアップ・ウィンドウのサイズを変更するには、ウィンドウの右下隅をドラッグします。ポップアップ・ウィンドウのサイズを変更すると、サイズを再変更するまでは、プロパティの後続のポップアップ・ウィンドウすべてに新規サイズが使用されます。

「プロパティ」ウィンドウの最上部には、表18-5に示すように、共通タスク用にいくつかのアイコン・ツールが表示されます。

表18-5 「プロパティ」ウィンドウのツールバーのアイコン機能

アイコン

名前

説明

自動拡張の有効化/無効化

「プロパティ」ウィンドウの自動展開をオンとオフに切り替えて、カーソルがウィンドウにあるときに全コンテンツを表示するために使用します。フォーカスがユーザー・インタフェースの他の部分に移動すると、ウィンドウはデフォルトの位置に戻ります。

ADFコントロールにバインド

クリックすると、選択したADFデータ・コントロールにプロパティがバインドまたはリバインドされます。

18.1.3.1 プロパティの編集方法

プロパティ値を編集するには、新しい値をフィールドに入力するか、またはドロップダウン・リストを使用して値の固定セットから値を選択します。プロパティ値を編集する場合、緑色のドット・アイコンがプロパティ名の横に表示され、プロパティがデフォルト設定から変更されたことを示します。プロパティの編集に使用可能な追加オプションは次のとおりです。

- フィールドまたはボックスの後ろにあるドロップダウン矢印をクリックして、プロパティ・エディタまたはブラウザ・ツールを使用してプロパティの値を選択または入力します。

- フィールドまたはボックスの後ろにあるドロップダウン矢印をクリックしてポップアップ・ウィンドウを表示し、コマンドを選択するか、プロパティ・エディタまたはビルダー・ツールを選択してプロパティの値を選択または入力します。

- チェック・ボックスのあるブール・プロパティの場合、チェック・ボックスを選択または選択解除して値を変更します。

- EL式の受入れが可能なブール・プロパティの場合、フィールドに式を入力するか、フィールドの後ろにある下矢印をクリックしてビルダー・ツールを使用して値を入力します。

18.1.3.2 カスタム・プロパティ・エディタの作成方法

独自のプロパティ・エディタを作成して、表示をカスタマイズします。プロパティ・エディタでタグがサポートされている場合、タグは、固定された値セットとして表示されます。エディタでタグがサポートされていない場合は、カスタム編集がサポートされているかどうかのチェックが行われます。どれもサポートされていない場合は、テキスト・エディタが表示されます。

JDeveloperアプリケーションを起動すると、ロールを選択するためのオプションが表示されます。「カスタマイズ開発者」を選択すると、次のオプションが表示されます。

- プロパティ値を編集すると、オレンジのドットがプロパティ名の横に表示されます。(「デフォルト」ロールで編集されたプロパティ値の場合、プロパティの横に緑色のドットが表示されます)。

- テキストのみのプロパティの横にあるプロパティ・メニューから、「カスタマイズの削除」を選択して、同じカスタマイズ・レイヤー・コンテキストで適用されていた既存のカスタマイズを削除します。

18.1.4 「コンポーネント」ウィンドウの使用

「コンポーネント」ウィンドウにはコンポーネント・ライブラリが表示され、簡単なドラッグ・アンド・ドロップ操作が使用できます。使用可能なプロパティは、開いているファイルのタイプによって異なります。たとえば、HTMLファイルを編集している場合、図18-6に示すように、共通するHTMLコンポーネントのリストが「コンポーネント」ウィンドウに表示されます。

図18-6 「コンポーネント」ウィンドウのHTMLコンポーネント

18.1.4.1 「コンポーネント」ウィンドウの使用

ファイルとページのコンポーネントは、「コンポーネント」ウィンドウでページとして編成されます。上部のドロップダウン・リストから、目的のページを選択します。

コンポーネントをファイルに挿入するには、そのファイルをエディタの挿入ポイントまでドラッグします。コンポーネントをクリックし、エディタ内をクリックして挿入できる場合もあります。

次のように、様々な機能が使用できます。

- コンポーネントを名前で検索するには、名前または名前の一部を双眼鏡アイコン・フィールドに入力して、緑色の実行矢印をクリックします。

- デフォルトで、コンポーネントはリスト・ビュー(アイコンと名前)で表示されます。表示をアイコンのみの表示に変更するには、コンポーネントを右クリックして、「アイコンで表示」または「一覧で表示」を選択します。

- よく使用されるコンポーネントを追加するには、コンポーネントを右クリックして「お気に入りに追加」を選択します。コンポーネントが「お気に入り」パネルに追加されます。

- JSPタグ・ライブラリのあるプロジェクトの場合、選択可能なJSPタグ・ライブラリのリストを変更するには、「コンポーネント」ウィンドウを右クリックして「タグ・ライブラリの編集」を選択します。

18.1.5 JSF構成ファイルの概要エディタの使用

図18-7に示すように、概要エディタを使用して、faces-config.xmlに保存されている構成データの追加および編集を行います。

図18-7 JSF構成ファイルの概要エディタ

faces-config.xmlを開くと、その内容がエディタ・グループに表示されます。このグループの下部にある「概要」タブを選択すると、概要エディタが表示されます。

概要エディタには、次の3つのセクションがあります。

- 左側の列には、メインJSF構成要素が表示されます。

- メイン・パネルの上部エリアには、左側の要素リストに対して子要素が表示されます。

- メイン・パネルの下部エリアには、上部エリアの子要素が表示されます。

JSF構成要素にアクセスする手順は次のとおりです。

1. 「アプリケーション」ウィンドウで、JSFアプリケーションが含まれているワークスペースを開きます。

2. そのワークスペースの中で、プロジェクトを開きます。

3. WEB-INFノードを開きます。

4. faces-config.xmlファイルをダブルクリックして開きます。

5. エディタの下部にある 「概要」 タブを選択します。

6. 左側の要素リストから要素を選択します。対応する構成可能な子要素がメイン・パネルの上部の表に表示されます。

18.1.5.1 JSF構成要素の追加、削除、または編集方法

ほとんどの要素は、要素を選択したときに表示される簡単なコマンドとダイアログを使用して管理できます。

JSF構成要素を追加または削除する手順は次のとおりです。

- 新規の子要素を追加するには: 「新規」をクリックします。ダイアログ・ボックスが開き、要素を作成できます。新しいボタンが表示されない場合、その子要素は既存のクラスです。「参照...」をクリックしてクラスを選択します。参照ボタンが表示されない場合、またはエントリがクラス名でない場合は、値を直接入力できます。

- 既存の子要素を削除するには: 要素を表から選択して「削除」をクリックします。要素が表から削除されます。削除ボタンが表示されない場合は、エントリを手動で削除できます。

18.1.5.2 JSF構成の子要素の使用方法

ほとんどの子要素は、要素を選択すると表示される簡単なコマンドとダイアログを使用して管理できます。

子要素を表示、追加、削除、または編集する手順は次のとおりです。

- 子要素を表示する方法。左側の要素リストから要素を選択します。メイン・パネルが表示されます。メイン・パネル上部の表から子要素を選択します。設定されている子要素がメイン・パネルの下部の表に表示されます。子要素の設定が可能であり、かつ、現在は子が定義されていない場合は、子に対するリスト領域が表示されないことがあります。リスト領域を表示して子を追加するには、領域のタイトルの左側にある表示の矢印をクリックします。リスト領域を非表示にするには、非表示の矢印をクリックします。

- 新規の子要素を追加する方法。「新規」をクリックします。新しいボタンが表示されない場合、その子要素は既存のクラスです。「参照...」をクリックしてクラスを選択し、「クラス・エディタ」ダイアログ・ボックスを開きます。参照ボタンが表示されない場合、またはエントリがクラス名でない場合は、値を直接入力できます。

- 既存の子要素を編集する方法。表から要素を選択します。その要素のプロパティのパネルが開き、値を変更できます。既存の子要素を削除するには、削除する子要素を表から選択して「削除」をクリックし、既存の子要素を削除します。表から選択して「削除」をクリックします。要素が表から削除されます。「削除」ボタンが表示されない場合は、右クリックの削除を使用して、手動でエントリを削除できます。

18.1.6 JSFナビゲーション・ダイアグラムによるページ・フローの計画

JSFナビゲーション・ダイアグラマを使用すると、JSFページおよびページ間のナビゲーションのダイアグラムを作成できます。JSFページを作成すると、ダイアグラマが自動的に有効になり、編集ツールで実行中の操作に同期化します。

18.1.6.1 ナビゲーション・ダイアグラムの表示方法

ナビゲーション・ダイアグラムをはじめて表示する場合は、すべての設定を保持しているJSF構成ファイルを含め、ダイアグラムの詳細を網羅したダイアグラム・ファイルが作成されます。バージョニングやソース制御を使用している場合、ダイアグラム・ファイルもそれが表す構成ファイルと同様に含められます。

ページはアイコンで表され、ページ間のナビゲーションは線で表されます。ナビゲーションは、faces-config.xmlファイル内のナビゲーション・ケースでアプリケーション用にミラー化されます。JSFナビゲーション・ダイアグラムが表示されると、「コンポーネント」ウィンドウも表示されます。「コンポーネント」ウィンドウの「JSFダイアグラム・オブジェクト」ページには、JSFナビゲーション・ダイアグラムに含めることのできる要素のエントリが表示されます。JSFダイアグラム要素を追加するには、「コンポーネント」ウィンドウを使用します。

ナビゲーション・ダイアグラムを表示する手順は次のとおりです。

1. 「アプリケーション」ウィンドウで、JSFアプリケーションを開きます。

2. アプリケーションが含まれるプロジェクトを開きます。JSFが組み込まれたテンプレートを使用してアプリケーションを作成した場合、プロジェクト名は「ViewController」です。

3. プロジェクトで、WEB-INFノードを開き、JSF構成ファイルをダブルクリックして開きます。デフォルトの構成ファイル名はfaces-config.xmlです。

4. アプリケーションに対するナビゲーション・ダイアグラムが表示されていない場合は、ウィンドウの下にある「ダイアグラム」タブを選択します。

「カテゴリ別にグループ化」を使用して「アプリケーション」ウィンドウを表示する場合(デフォルト)、1つのJSF構成ファイルのエントリで構成ファイルとその関連ダイアグラム・ファイルの両方が表されます。「ディレクトリでグループ化」を使用してすべてのファイルを表示する場合、これらの2つのファイルが別々のノードとして表示されます。この場合、構成ファイルには完全ファイル名が使用され、ダイアグラム・ファイルには拡張子.jsf_diagramが付いた名前が使用されます。

JSF構成ファイルをはじめて開いた場合は、JSF構成ファイルにまだ変更を加えていなくても、「アプリケーション」ウィンドウに表示される構成ファイル・ノードは変更があったことを示しています。これは、「アプリケーション」ウィンドウに表示されるノードでは、JSF構成ファイルとナビゲーション・ダイアグラムの両方が表されるためです。JSF構成ファイルが変更されていなくても、ナビゲーション・ダイアグラム・ファイルが作成されています。同様に、レイアウトの変更など、JSF構成ファイルに影響を与えない変更をナビゲーション・ダイアグラムに加えた場合、「アプリケーション」ウィンドウ内のノードは変更が加えられたことを示します。

大規模アプリケーションまたは複雑なアプリケーションの場合は、JSFファイルと関連のダイアグラム・ファイルのサイズが大きくなる可能性があり、ロードにも時間がかかる場合があります。ダイアグラムをデフォルト・エディタとして使用しないように選択すると、特に必要な場合を除き、JSFファイルとともに関連のダイアグラム・ファイルが作成されることはありません。

18.1.6.2 JSFナビゲーション・ダイアグラムに要素を追加する方法

アプリケーション内でページおよびページ間のナビゲーション・ケースを表すダイアグラムを作成するには、JSFナビゲーション・ダイアグラムと「コンポーネント」ウィンドウを使用します。ダイアグラムに追加したナビゲーション・ケースは、JSF構成ファイルに自動的に追加されます。

ナビゲーション・ダイアグラムの要素を追加する手順は次のとおりです。

1. ダイアグラムを開きます。

2. 「コンポーネント」ウィンドウの「JSFダイアグラム・オブジェクト」→「コンポーネント」ページで、「JSFページ」を選択します。

3. ダイアグラムにページを追加するには、ページを表示する場所でダイアグラムをクリックするか、JSFページをダイアグラムの表面にドラッグします。ページのアイコンがページ名のラベルとともにダイアグラム上に表示されます。最初は、新規JSFページを定義するまで、図18-8に示すように、ページがまだ作成されていないことを示すアイコンが表示されます。

図18-8 ページが作成されていないことを示すアイコン

4. ページの名前を指定するには、ダイアグラムでアイコンのラベルをクリックし、ラベルを編集します。ページを実行可能にするために名前の先頭にスラッシュが必要です。ページ名を変更するときにスラッシュを削除しても、スラッシュが復元されます。

5. 新規ページを定義するにはアイコンをダブルクリックして「JSFページの作成」ダイアログを使用します。ページを作成すると、図18-9に示すように、ダイアグラム上のアイコンがページが作成されたことを示すアイコンに変わります。

6. 変更を保存します。

図18-9 ページが作成されたことを示すアイコン

18.1.6.3 JSFナビゲーション・ケースをJSFナビゲーション・ダイアグラムに追加する方法

ナビゲーション・ケースを追加するには、「コンポーネント」ウィンドウを使用します。

ダイアグラムにJSFナビゲーションを追加する手順は次のとおりです。

1. ダイアグラムを開きます。

2. 作成するナビゲーション・ケースのリンク元の<from-view-id>およびリンク先の<to-view-id>となるJSFページを定義します。

3. 「コンポーネント」ウィンドウ→「JSFダイアグラム・オブジェクト」→「コンポーネント」ページで、「JSFナビゲーション・ケース」を選択します。

4. ダイアグラム上で、リンク元JSFページのアイコンをクリックし、次にリンク先JSFページのアイコンをクリックして、ナビゲーション・ケースを1つ作成します。ナビゲーション・ケースをリンク元ページとリンク先ページの間の直線で描画するには、図18-11に示すように、リンク元ページをクリックした後でリンク先ページをクリックします。

図18-10 直線が表示されたナビゲーション・ケース

角度のある線でナビゲーション・ケースを描画する場合は、図18-11に示すように、エディタのツールバーで「ポリライン」または「直交」を選択します。

図18-11 角度のある線が表示されたナビゲーション・ケース

5. JSFナビゲーション・ダイアグラムに対する変更を保存し、JSF構成ファイルに対する変更を保存します。

ナビゲーション・ケースはダイアグラム上に実線で表示され、ナビゲーション・ケースのラベルとしてデフォルトの<from-outcome>値が表示されます。<from-outcome>値を編集するには、ラベルをクリックして新しい値を入力します。

リンク元ページに対するナビゲーション・ルールが存在していない場合は、ナビゲーション・ルールがJSF構成ファイルに追加され、そのルールに対してナビゲーション・ケースが追加されます。

18.1.6.4 ナビゲーション・ダイアグラムにノートを追加する方法

「コンポーネント」ウィンドウのダイアグラム注釈機能を使用して、ナビゲーション・ダイアグラムにノートを追加します。

JSFナビゲーション・ダイアグラムにノートを追加するには、次のようにします。

1. 対象プロジェクトのJSFナビゲーション・ダイアグラムを表示します。

2. 「コンポーネント」ウィンドウの「JSFダイアグラム・オブジェクト」の「ダイアグラムの注釈」ページで、「ノート」を選択します。

3. ダイアグラム上のノートを追加する場所をクリックします。ダイアグラム上にノートが表示され、テキストを入力できる場所にカーソルが表示されます。

4. テキストを入力した後、ノートの外側をクリックします。

5. ノート内のテキストを選択して編集するには、ノート内の任意の場所をクリックします。ノート自体を選択するには、右上隅をクリックします。テキストを編集するには、ノートの真ん中をクリックします。

6. JSFナビゲーション・ダイアグラムに対する変更を保存します。ノートはJSFナビゲーション・ダイアグラムにのみ表示され、JSFアプリケーション構成ファイルには表示されません。

18.1.6.5 ナビゲーション・ダイアグラム内の要素にノートを添付する方法

「コンポーネント」ウィンドウの注釈機能を使用して、ナビゲーション・ダイアグラムにノートを添付します。

JSFナビゲーション・ダイアグラム内の要素にノートを添付する手順は、次のとおりです。

1. 対象プロジェクトのJSFナビゲーション・ダイアグラムを表示します。

2. ノートがダイアグラムに存在していない場合は、ノートを追加します。

3. 「コンポーネント」ウィンドウの「JSFダイアグラム・オブジェクト」の「ダイアグラムの注釈」ページで、「ノートの添付」を選択します。

4. ダイアグラムでノートをクリックし、次にノートを添付する要素をクリックします。図18-12に示すように、点線が表示されます。この点線は選択されているページのノート添付を示しています。

図18-12 ノートの添付ダイアグラム

5. JSFナビゲーション・ダイアグラムに対する変更を保存します。ノート添付はJSFナビゲーション・ダイアグラムにのみ表示され、JSF構成ファイルには表示されません。

18.1.6.6 ナビゲーション・ダイアグラムでレイアウトのデフォルト・スタイルを設定する方法

エディタ・ツールバー上のアイコンを使用して、レイアウト・スタイルを選択します。

ナビゲーション・ダイアグラムでレイアウトのデフォルト・スタイルを設定する手順は次のとおりです。

1. エディタのツールバーからレイアウト・スタイルを選択します。表18-6に、レイアウト・スタイルの一覧を示します。

2. 変更を保存します。

表18-6 ナビゲーション・ダイアグラムのレイアウト・スタイル

アイコン

アイコン説明

ページ・アイコン間でナビゲーション・ケースに直線を引きます。

ページ・アイコン間でナビゲーション・ケースに角度のある線を引きます。

ページ・アイコン間でナビゲーション・ケースに直角の線を引きます。

アイコンを水平方向のレイアウトで配置します。

アイコンを垂直方向のレイアウトで配置します。ダイアグラム上の要素が、選択したパターンに従ってレイアウトされます。

18.1.6.7 ナビゲーション・ダイアグラムをリフレッシュして構成ファイルに変更を反映する方法

ナビゲーション・ダイアグラムをリフレッシュすると、編集ツール全体にわたって変更が表示されます。

1. 「ダイアグラムのリフレッシュ」を選択します。ダイアグラムのリフレッシュ速度は、ダイアグラム内のノード数およびノード間の連結数によって異なります。

2. 変更を保存します。

18.1.6.8 ナビゲーション・ダイアグラマを使用したJSFページの管理方法

ナビゲーション・ダイアグラマを使用して、JSFページを追加、編集、名前変更および削除できます。表18-7に、ダイアグラマで実行する様々なアクションの効果を示します。

表18-7 ダイアグラマのページ管理アクションと効果

アクション

効果

削除

関連付けられたWebページはJSFナビゲーション・ダイアグラムに表示されなくなります。ファイルを作成している場合は、「アプリケーション」ウィンドウの「ViewController」プロジェクトにある「Webコンテンツ」フォルダから引き続き使用可能です。

編集

Webページを手動で編集すると、JSFナビゲーション・ダイアグラムまたはJSF構成ファイルは自動的に更新されません。

名前の変更

ナビゲーション・ダイアグラムでJSFページの名前を変更した場合は、元の名前のページをダイアグラムから削除し、新しい名前の新規ページを追加したことになります。そのページに下層ページがある場合は、それらのページは元の名前でファイル・システムに残ります。ダイアグラム上では、ページが存在していないことを示すアイコンでページが表されます。

作成済のJSFページがダイアグラムに表示されていて、そのページの名前を「アプリケーション」ウィンドウで変更した場合も、元のファイルを削除し、新しいファイルを作成したことになります。ダイアグラムには元の名前が残り、ページが存在しないことを示すページ・アイコンが表示されます。

JSFナビゲーション・ダイアグラムでページの名前を変更すると、JSF構成ファイル上のナビゲーション・ルールとそのケースに影響します。

18.1.6.9 ナビゲーション・ケースの編集と削除

ナビゲーション・ケースを編集または削除すると、関連の構成ファイルも更新されます。

表18-8 ダイアグラマのページ管理アクションと効果

アクション

効果

削除

関連付けられた<navigation-case>がJSF構成ファイルから削除されます。

関連付けられたWebページはダイアグラムに引き続き表示され、ページが作成されている場合は、「アプリケーション」ウィンドウの「ViewController」プロジェクトにある「Webコンテンツ」フォルダから引き続き使用可能です。

編集

ダイアグラムでナビゲーション・ケースのラベルを編集した場合は、関連付けられた<navigation-case>がJSF構成ファイルで更新されます。

JSFナビゲーション・ダイアグラムでナビゲーション・ケースを作成した場合、そのナビゲーション・ケースのリンク先は変更できません。既存のナビゲーション・ケースのリンク先を変更するには、既存のケースを削除し、正しいリンク先に対して新しいケースを作成します。

ダイアグラム・ファイルのサイズが大きく、ダイアグラマで開くのに時間がかかる場合は、別のエディタでJSF構成ファイルを開くオプションが使用できます。

18.1.6.10 ナビゲーション・ケースのプロパティの表示方法

ナビゲーション・ケースのプロパティを表示および編集するには、「プロパティ」ウィンドウを使用します。

ナビゲーション・ケースのプロパティを表示する手順は次のとおりです。

ナビゲーション・ケースはダイアグラム上に実線で表示され、<from-outcome>要素の値がラベルとして表示されます。

1. 「プロパティ」ウィンドウが表示されていない場合は、「ウィンドウ」メニューからそれを開きます。

2. プロパティを表示するナビゲーション・ケースを選択します。ナビゲーション・ケースのプロパティは、「プロパティ」ウィンドウに表示されます。

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

ドキュメントまたはWebページで使用するためにダイアグラムを.jpgファイル、.pngファイル、.svgファイルまたは.svgzファイルとして保存するオプションがあります。.jpg形式でイメージを保存するとファイルが最大になり、.svg形式、.png形式、.svgz形式の順に小さくなります。

ダイアグラムをグラフィックとして公開するには、次のようにします。

1. ダイアグラム上を右クリックし、「ダイアグラムの公開」を選択します。
または

ダイアグラム上をクリックし、「ダイアグラム」→「ダイアグラムの公開」を選択します。

2. 「場所」ドロップダウン・リストを使用して、グラフィック・ファイルの宛先フォルダを選択します。

3. ファイル名として、ファイル拡張子を含むグラフィック・ファイル名を入力します。

4. ファイル・タイプのドロップダウン・リストから、グラフィック・ファイルのファイル・タイプを選択します。

5. 「保存」をクリックします。

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

「コード・インサイト」を使用してコーディングの高速化を図り、使用可能なオプションの動的リストからコード部分、パラメータ、要素をすばやく挿入します。

コード・インサイトには、構文補完インサイトおよびパラメータ・インサイトという2種類のコーディング・アシスタンスがあります。構文補完インサイトは、定期的に使用されるコード・スニペットを完成させます。パラメータ・インサイトは、そのインスタンスで使用可能なパラメータ・オプションのクイックピック・リストを提供します。

構文補完インサイトを起動するには、ピリオドを入力した後で休止するか、[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」を選択し、パネルを表示して該当するオプションを選択します。

コード・インサイトはCSSファイルでも使用できます。CSSにコード・インサイトを使用するには、任意の<STYLE>タグ内にカーソルを置き、左山カッコを入力して[Ctrl]キーを押しながら[Space]キーを押します。使用可能な構文補完のリストが表示されます。使用可能な構文補完をフィルタするには、要素の最初の文字を入力します。

JavaScriptファイルまたはCSSファイルでコード・インサイトを使用する手順は次のとおりです。

- JavaScriptファイルの場合は、任意の<SCRIPT>タグ内にカーソルを置き、左山カッコを入力して[Ctrl]を押しながら[Space]を押します。CSSファイルの場合は、<STYLE>タグ内にカーソルを置き、左山カッコを入力して[Ctrl]を押しながら[Space]を押します。

使用可能な構文補完のリストが表示されます。使用可能な構文補完をフィルタするには、最初の文字を入力します。たとえば、文字「d」を入力すると、「D」から始まる構文補完(「Date」、「decodeURI」など)が表示されます。

コード・インサイトでは、JavaScript固有のXML属性内でも構文補完を使用できます。

18.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テクノロジを使用していることを前提としています。

JSFアプリケーションをエンドツーエンドでクイックスタートするには、次のようにします。

1. 簡易ウィザードを使用してWebアプリケーションを構築します。第18.2.1.1項「アプリケーション・フレームワークの構築方法」を参照してください。

2. 新規ギャラリJSFウィザードを使用してJSFページを作成します。「JSFページを作成するには、次のようにします。」を参照してください。

3. ビジネス・サービスを選択します。「ビジネス・サービスの選択方法」を参照してください。

4. ビジネス・サービスのバッキングBeanを作成します。第18.2.2.5項「マネージドBeanへのメソッドの追加方法」を参照してください。

5. インタフェース・コンポーネントをデータにバインドします。第18.2.2.6項「EL式を使用したコンポーネントのバインド方法」を参照してください。

6. アプリケーション・リソースをマネージドBeanをfaces-config.xmlに追加します。第18.2.2.40項「JSF構成ファイルの編集方法」を参照してください。

7. JSFページを実行します。第18.2.4項「JSFアプリケーションの実行およびテスト」を参照してください。

18.2.1 JSFアプリケーションのビルド

JDeveloperに用意されている機能を使用してアプリケーションを最初から構築できます。最初の手順は、アプリケーション・テンプレートを使用して、Webページ用にフレームワークまたはアプリケーション・テンプレートをビルドすることです。新規ギャラリ・ウィザードで提供される一連のテクノロジの中から選択します。図18-9に示すように、選択するアプリケーションにより、作成されるプロジェクト・フォルダや、フォルダに追加されるライブラリが決まります。

表18-9 Webアプリケーション・テンプレート

アプリケーション

説明

Fusion Webアプリケーション(ADF)

データバインドされたADF Webアプリケーションを作成します。このアプリケーションには、ビュー・コンポーネントとコントローラ・コンポーネント(ADF FacesとADFタスク・フロー)用に1つのプロジェクト、そしてデータ・モデル(ADF Business Components)用に別のプロジェクトが含まれています。

Java EEアプリケーション

データバインドされたWebアプリケーションを作成します。このアプリケーションには、ビュー・コンポーネントとコントローラ・コンポーネント(JSF)用に1つのプロジェクト、そしてデータ・モデル(EJBおよびJPAエンティティ)用にもう1つのプロジェクトが含まれています。

汎用アプリケーション

1つのプロジェクトでアプリケーションを作成します。プロジェクトはJDeveloperテクノロジで事前構成されておらず、どのテクノロジも含めるようにカスタマイズできます。

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

ウィザードの使用から開始して、カスタマイズされたアプリケーション・フレームワークをビルドします。

JSFアプリケーション用のWebアプリケーションおよびプロジェクトを作成するには、次のようにします。

1. メイン・メニューから、「ファイル」→「新規」→「ギャラリから」→「一般」→「アプリケーション」を選択します。

2. 作成するアプリケーションを選択します。

3. ステップを完了します。「Model」および「ViewController」というプロジェクト・フォルダが作成され、「アプリケーション」ウィンドウの新規アプリケーション・ノードの下にリストされます。「汎用アプリケーション」を選択した場合は、「Project」フォルダのみが表示されます。

4. 「ViewController」プロジェクトをダブルクリックして「プロジェクト・プロパティ」ダイアログを開き、「依存性」を選択します。「プロジェクトの依存性」の下に、Modelプロジェクトが選択されていることを確認します。

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

アプリケーションのフレームワークを作成したら、ページのビルド、編集およびモデリング・ツールを使用してページを起動して実行します。

JSFページを作成するには、次のようにします。

1. 「アプリケーション」ウィンドウで、新規のJSF 2.0ページまたはドキュメント用のプロジェクトを選択します。JSFページはナビゲーション・モデラーでも作成できます。

2. 「ファイル」→「新規」を選択し、「新規ギャラリ」を開きます。

3. 「カテゴリ」ツリーでWeb Tierを開き、「JSF」を選択します。このウィザードで、JSF/FaceletページまたはJSP XMLページを作成します。ADF Facesページ・テンプレートまたはクイック・スタート・レイアウトを選択します。ADF Facesページ・テンプレート(.jsfファイル)では、ページ・テンプレート定義ファイルにページ・レイアウト全体が定義され、再利用およびパラメータ化が可能になります。クイック・スタート・レイアウトは、レイアウトの外観と動作の実装に必要なADF Facesコンポーネントを自動的に挿入して構成する事前定義済のページ・レイアウトです。

18.2.1.3 ビジネス・サービスの選択方法

ビジネス・サービスの場合は、Enterprise JavaBeans (EJB)、JavaBeans、またはOracle TopLinkを使用してJavaクラスおよびEJBをデータベース表にマップするというオプションが使用できます。バックエンド・ビジネス・サービスを作成する必要はないが、既存のビジネス・サービス(EJBコンポーネント、データベースのストアド・プロシージャ、Javaまたは他の言語を記述する他のサービス)を公開する必要がある場合、Webサービスを使用できます。

図18-10に示すように、「新規ギャラリ」を開き、用意されているウィザードとダイアログを使用してビジネス・サービスを作成するか、Webサービスの場合はプロジェクトにエンティティを公開できます。

表18-10 ビジネス・サービスの新規ギャラリのオプション

目的

選択する新規ギャラリのオプション

ModelプロジェクトでEnterprise JavaBeansを使用する

「ビジネス層」カテゴリのEJB

ModelプロジェクトでOracle TopLinkを使用する

「ビジネス層」カテゴリの「TopLink」

ModelプロジェクトでJavaBeansを使用する

「General」カテゴリの「JavaBeans」

レガシー・コード、ソフトウェア・コンポーネント(EJBコンポーネントなど)、またはデータベース内のPL/SQLに基づいて作成されたWebサービスを使用し、HTTPを介して迅速かつ容易にアクセスできるようにする

「ビジネス層」カテゴリの「Web Services」

ビジネス・サービスを作成するには、次のようにします。

1. Webアプリケーションおよびプロジェクトを作成します。表18-9のWebアプリケーションのオプションを参照してください。

2. 「アプリケーション」ウィンドウで、作成したアプリケーション・ノードから「Model」プロジェクトを選択し、「ファイル」→「新規」を選択して「新規ギャラリ」を開きます。

3. 「カテゴリ」リストでノードを開き、選択したテクノロジ・スコープに関連するカテゴリを表示します。「ビジネス層」ノードの下には、ADF Business Components、EJB、ToplinkおよびWebサービスなどのビジネス・サービスのオプションが表示されます。ビジネス・サービスを選択して、ウィザードの手順を実行します。

18.2.2 JSFビジネス・コンポーネント・フレームワークのビルド

「コンポーネント」ウィンドウには、JSFページにドラッグ・アンド・ドロップできる標準的なJSFコンポーネントが表示されています。JSFページを作成すると、バッキングBeanが作成され、ページに配置するすべてのコンポーネントおよび対応するプロパティに自動的にバインドされます。

ローカライゼーションの場合、コンテンツ・コンポーネントをページに追加すると、リソース・バンドルが自動的に追加されます。リソース・バンドルを管理したり、アプリケーションのプロジェクト・プロパティ機能で新規リソース・バンドルを作成できます。

用意されている多くの標準コンポーネント・オプションの中には、図18-13に示すように、「プロパティ」を使用して構成可能な検証および変換用のコンポーネントや、JSFページのエラー・メッセージ出力を設定する上で役立つメッセージ・コンポーネントなどがあります。

図18-13 「コンポーネント」ウィンドウで使用可能なコアJSFコンポーネント

18.2.2.1 JSFタグ・ライブラリの使用

「コンポーネント」ウィンドウで使用可能なコンポーネントは、JSF 2.0 Faceletのタグ・ライブラリに対応しています。このタグについては、表18-11に詳しく説明しています。

このタグの詳細、およびすべてのJavaServer Faces 2.1のコンポーネント・タグとAPIの詳細は、Oracle Technology Network (OTN)オンライン・ドキュメント・ライブラリを参照してください。

JavaServer Faces 2.1 Faceletsのタグ・ライブラリ・ドキュメント: http://docs.oracle.com/javaee/6/javaserverfaces/2.1/docs/vdldocs/facelets/

JavaServer Faces Technology 2.1 JSPタグ・ライブラリ・ドキュメント:

http://docs.oracle.com/javaee/6/javaserverfaces/2.1/docs/vdldocs/jsp/

表18-11 標準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タグのすべての属性およびネストされた子コンテンツもこのタグで有効になります。

18.2.2.2 標準JSFコンポーネントのタグ属性の使用

コンポーネントのタグ属性を表示および設定するには、「プロパティ」ウィンドウを使用します。属性を選択すると、属性リストの下のテキスト領域に、その属性の簡単な説明が表示されます。ほとんどのJSF標準コンポーネントのタグ属性には、値バインディング式(#{expression})を使用できます。

コンポーネントをJSFページに追加すると、「プロパティ」ウィンドウには、そのコンポーネントのタグに対してサポートされる属性が、次のカテゴリにグループ化されて表示されます。

- 共通: id、titleのように一般的に使用されます。ローカライゼーションの場合、langおよびdirなどの言語翻訳属性があります。

- 外観: リンクやテキストなどがページ上でどのように表示されるかを定義します。

- スタイル: background、fontなどのHTMLのプレゼンテーション属性に使用されます。

- JavaScript: onclick、onkeypress、onmouseoverなど、クライアント側のスクリプトをイベントに関連付けるためのJavaScript属性に使用されます。

18.2.2.3 マネージドBeanの作成方法

マネージドまたはバッキングBeanは、JSFページのUIコンポーネントに対するロジックとプロパティが含まれているBeanです。図18-14に示すように、「JSFページの作成」ダイアログの「マネージドBean」タブを使用して、バッキングBeanを自動的にバインドします。このオプションを選択すると、作成しているページに対してデフォルトのBeanが作成され(または任意のマネージドBeanを選択)、ページに配置したすべてのコンポーネントが、そのBeanの対応するプロパティに自動的にバインドされます。関連するアクセッサ・メソッドも作成されます。

表18-12 マネージドBeanのバインド・オプション

実行する処理

方法

JSFページに対してデフォルトのマネージドBeanを使用する

新規マネージドBeanでのUIコンポーネントの自動公開。デフォルト名をそのまま使用するか、名前を入力します。

JSFページに対して選択した既存のマネージドBeanを使用する

既存のマネージドBeanでのUIコンポーネントの自動公開。次に、ドロップダウン・リストからマネージドBeanを選択します。

ページを作成し、自動コンポーネント・バインディングを選択した場合は、次の機能が表示されます。

- バッキングBeanの作成を選択する場合、JSFまたはJSPXと同じ名前を使用したJavaBeanが作成され、view.backingパッケージに配置されます。バッキングBeanのfaces-config.xmlファイルにもマネージドBeanのエントリが作成されます。デフォルトでは、マネージドBean名は、backing_<page_name>で、このBeanではリクエスト・スコープが使用されます。

- 新規に作成されたBeanまたは選択されたBeanで、ページに配置した各コンポーネント・タグにプロパティとアクセッサ・メソッドが追加されます。

- EL式をバインディング属性の値として使用して、コンポーネント・タグがそのプロパティにバインドされます。作成時にフォーム・コンポーネントがJSFまたはJSPXページに自動的に配置されるため、フォーム・コンポーネントに対するプロパティとアクセッサ・メソッドは自動的に作成されます。

- ページからコンポーネントを削除すると、プロパティとメソッドが削除されます。

図18-14 JSFの作成ダイアログ - マネージドBeanの作成タブ

マネージドBeanを作成するには、次のようにします。

1. 「新規ギャラリ」からJSFページまたはJSPXページを作成します。

2. 「マネージドBean」タブを選択します。

3. 「新規マネージドBeanでのUIコンポーネントの自動公開」を選択します。新しいバッキングBeanが、JSFページと同じ名前で作成されます。model.backingディレクトリに配置されます。

4. 必要に応じて、JSFページに対してコンポーネント・タグの追加または削除を実行します。編集がバッキングBeanで自動的に更新されます。属性にメソッド・バインディングが必要なコンポーネント・タグの場合は、「プロパティ」ウィンドウを使用してメソッド・バインディング式を入力し、ページのバッキングBean内の既存メソッドから選択します(メソッドをバッキングBeanに追加する方法については、後述の手順を参照)。または、新規メソッド名を入力できます。JDeveloperでは、ページのバッキングBeanに新規スケルトン・メソッドが作成されます。ロジックをメソッドに追加します。

18.2.2.4 概要エディタによるマネージドBeanの作成方法

XML概要エディタを使用して、JSPXページ用にマネージドBeanを作成します。

概要エディタを使用してマネージドBeanを作成する手順は次のとおりです。

1. 「アプリケーション」ウィンドウで、faces-config.xmlファイルをダブルクリックして開きます。このファイルは、Web Content/WEB_INFディレクトリにあります。

2. ウィンドウの最下部で、「概要」タブを選択します。編集ウィンドウが表示されます。

3. 左側にある要素リストで、「Managed Bean」を選択します。

4. プラス記号をクリックして、「マネージドBeanの作成」ダイアログを開きます。

5. Beanの名前および完全修飾クラス・パスを入力します。

6. スコープを選択し、「Javaファイルの生成」チェック・ボックスを選択して「OK」クリックします。この手順を実行すると、publicコンストラクタ・メソッドが含まれるマネージドBean用のJavaファイルが作成されます。すべてのプロパティと他のメソッドを手動で追加します。ファイルは、「クラス」の値として設定された完全修飾クラス名を使用して名前が設定され、配置されます。新しいファイルが、「アプリケーション」ウィンドウのプロジェクトのApplication Sourcesノード内に表示されます。

18.2.2.5 マネージドBeanへのメソッドの追加方法

「イベント」ドロップダウン・メニューを使用してBeanメソッドを作成します。

メソッドをマネージドBeanに追加する手順は、次のとおりです。

1. ソース・エディタでバッキングBeanを開きます。

2. エディタの上部にあるメソッド・バインディング・ツールバーで、「アプリケーション」ウィンドウの「コンポーネント」ドロップダウン・メニューからコンポーネントを選択します。

3. 「イベント」ドロップダウン・メニューから、作成するメソッドのタイプを選択します。コンポーネントに対するスケルトン・メソッドが追加されます。

4. // Add event code here...というコメント部分を適切なビジネス・ロジックで置換します。

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

JavaServer Facesには、JSFページでページBeanおよびWebアプリケーション内の他のBean (セッションBeanおよびアプリケーションBeanを含む)のJavaBeansコンポーネントにアクセスするために使用可能な式言語(JSF EL)が用意されています。コンポーネントのプロパティをバインドするには、コンポーネントをページに追加し、「プロパティ」ウィンドウからコンポーネントを選択してバインドを作成します。

図18-15に示すように、「式ビルダー」ダイアログ・ボックスを使用して、コンポーネント・プロパティをバインドするJavaBeansプロパティを選択し、ツールを使用してEL式を作成できます。

図18-15 「式ビルダー」ダイアログ

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式を追加または編集することもできます。

18.2.2.7 コンポジット・コンポーネントの作成方法

コンポジット・コンポーネントは一種のテンプレートであり、コンポーネントとして動作して、一連のマークアップ・タグやその他の既存コンポーネントを収めています。これは、特定の定義済機能に関してアプリケーション用に作成する再使用可能なコンポーネントです。コンポジット・コンポーネントには、他のすべてのコンポーネントと同様に、バリデータ、コンバータ、およびリスナーをアタッチできます。

コンポジット・コンポーネントを作成するには、「新規ギャラリ」ウィザードを使用できます。

コンポジット・コンポーネントを作成する手順は次のとおりです。

1. 「ファイル」→「新規」→「ギャラリから」に移動します。

2. Web Tierノードを開いて、「JSF/Facelets」を選択します。

3. 「アイテム」リストから「コンポジット・コンポーネント」を選択します。「JSFコンポジット・コンポーネントの作成」ダイアログの指示に従って、情報を入力します。

18.2.2.8 自動コンポーネント・バインディングの使用

ページの自動コンポーネント・バインディングは、コマンドおよび入力コンポーネントの次の属性に対するメソッド・バインディング式の入力方法に影響を与えます。

- action

- actionListener

- launchListener

- returnListener

- valueChangeListener

- validator

図18-15に示すように、「式ビルダー」ダイアログ・ボックスを使用して、バインドするコンポーネント・プロパティを選択します。

自動コンポーネント・バインディングが無効な場合は、コンポーネント属性にメソッド・バインディング式を入力するときに、既存のマネージドBeanを選択するか、新規のバッキングBeanを作成する必要があります。新規のバッキングBeanを作成した場合は、マネージドBeanがアプリケーションのfaces-config.xmlに自動的に構成されます。

自動コンポーネント・バインディングが有効な場合は、マネージドBeanを選択する必要はありません。コンポーネント属性にメソッド・バインディング式を入力するときに、Beanにある既存のメソッドから選択できます。または新規のメソッド名を入力すると、スケルトン・メソッドが自動的に作成されます。

また、バッキングBeanであるJavaファイルを編集する際、メソッド・バインディング・ツールバーがソース・エディタに表示され、選択したページのコンポーネントに適切なメソッドをバインドできます。

ファイル名myfile.jspを付けてJSFページを作成し、デフォルトのマネージドBeanを自動作成するように選択した場合は、.backing.Myfile.javaというバッキングBeanが作成され、「ViewController」プロジェクトの\srcディレクトリに配置されます。このバッキングBeanはアプリケーション・リソース・ファイル(faces-config.xml)でマネージドBeanとして構成され、デフォルトのマネージドBean名はbacking_myfileとなります。

自動コンポーネント・バインディングが有効な場合、ページに挿入するコンポーネントは、例18-1および例18-2に示すように、バッキングBeanのプロパティに(binding属性を介して)自動的にバインドされます。

例18-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>
...

例18-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>
...

編集中に、自動バインド・オプションの有効化/無効化を切り替えたり、マネージドBeanの選択を変更できます。

- 自動バインドが有効な状態でマネージドBeanの選択を変更する場合は、既存と新規のすべてのコンポーネント・バインディングが新規のBeanに切り替えられます。

- 自動バインドを無効にした場合、そのページの既存のコンポーネント・バインディングは変更されません。

- 自動バインドを有効にした場合、新規と既存のすべてのコンポーネント・バインディングは選択したマネージドBeanにバインドされます。

自動コンポーネント・バインディングを有効または無効にするには、次のようにします。

1. ビジュアル・エディタでJSFページを開きます。

2. 「設計」→「ページ・プロパティ」を選択します。

3. 「コンポーネント・バインディング」をクリックします。

4. 「自動バインド」オプションの選択を解除するか、このオプションを選択します。

18.2.2.9 マネージドBeanへの自動バインドにページを設定する方法

コンポーネント・バインドを有効化するには、メニュー・バーの「設計」オプションを使用します。

ページに自動バインディングを設定する手順は次のとおりです。

1. ビジュアル・エディタでJSFページを開きます。

2. 「設計」→「ページ・プロパティ」を選択します。

3. 「自動バインド」オプションが選択されていることを確認します。

4. ドロップダウン矢印をクリックして既存のマネージドBeanを選択するか、「新規...」をクリックして新規のマネージドBeanを定義します。バインドされている既存のコンポーネントと、新たに挿入したコンポーネントのすべてが、選択したマネージドBeanにバインドされます。

18.2.2.10 プロパティにコンポーネントを値バインドする方法

プロパティを値バインドするには、「プロパティ」ウィンドウを使用します。

コンポーネントをプロパティに値バインドするには、次のようにします。

1. ビジュアル・エディタでコンポーネントを選択します。

2. 「プロパティ」ウィンドウで、適切なフィールドのドロップダウン・メニューをクリックし、「式ビルダー」を選択します。

3. Beanのプロパティまたはリソース・バンドル内の値にバインドするEL式を入力します。

18.2.2.11 プロパティにコンポーネント・インスタンスを手動でバインドする方法

プロパティにコンポーネント・インスタンスをバインドするには、「プロパティ」ウィンドウを使用します。

コンポーネント・インスタンスをプロパティに手動でバインドするには、次のようにします。

1. ビジュアル・エディタでコンポーネントを選択します。

2. 「プロパティ」ウィンドウで、「バインディング」属性の横の下矢印をクリックします。Bindingダイアログが表示されます。

3. マネージドBeanを選択するか、「新規...」をクリックして新規のBeanを作成します。

4. ドロップダウン・メニューを使用して既存のプロパティを選択するか、「プロパティ」の横にある「新規...」をクリックして新規プロパティ名を追加します。

5. 終了したら、「OK」をクリックします。新規プロパティを作成した場合は、このプロパティが選択したBeanにアクセッサ・メソッドのコードとして挿入されます。

18.2.2.12 自動コンポーネント・バインディングを使用した既存メソッドのバインド方法

既存のメソッドを自動バインディングによってバインドするには、「プロパティ」ウィンドウを使用します。

自動コンポーネント・バインディングを使用して既存のメソッドにバインドするには、次のようにします。

1. ビジュアル・エディタで、コンポーネントを選択します。自動コンポーネント・バインディングを使用して既存のメソッドにバインドするには、該当するメソッドが、JSFページに関連付けられているバッキングBeanにすでに存在している必要があります。

2. 「プロパティ」ウィンドウで、メソッド・バインディングを受け入れる属性の横にある列をクリックします。

3. ドロップダウン・メニューをクリックし、メソッド名を選択します。選択できるのは、適切なシグネチャのあるバッキングBeanのメソッドのみです。

18.2.2.13 自動バインディングを有効にして新規デフォルト・メソッドをバインドする方法

自動バインディングを無効にして新規デフォルト・メソッドをバインドするには、「イベント」ドロップダウン・メニューを使用します。

自動コンポーネント・バインディングを使用して新規デフォルト・メソッドにバインドするには、次のようにします。

1. 関連付けられているバッキングBeanを開きます。

2. ソース・エディタで、メソッド・バインディング・ツールバーを使用し、「コンポーネント」ドロップダウン・メニューからコンポーネントを選択します。

3. 「イベント」ドロップダウン・メニューから適切な属性を選択します。ページの下部にデフォルト・メソッドが挿入されます。カーソルは、新規メソッドに置かれます。JSFページにはバインディング式も作成されます。

4. ソース・エディタで、メソッドのコードを入力します。

18.2.2.14 自動バインディングを無効にして新規デフォルト・メソッドをバインドする方法

自動バインディングを無効にして新規デフォルト・メソッドをバインドするには、「プロパティ」ウィンドウを使用します。

自動バインディングを無効にして新規デフォルト・メソッドをバインドする手順は次のとおりです。

1. ビジュアル・エディタでコンポーネントを選択します。「プロパティ」ウィンドウで、メソッド・バインディングを受け入れる属性の横にあるドロップダウン・メニューをクリックします。

2. マネージドBeanを選択するか、「新規...」をクリックして新規のマネージドBeanを作成します。

3. ドロップダウン・メニューを使用して既存のメソッドを選択するか、「メソッド」の横にある「新規...」をクリックして新規メソッド名を追加します。

4. 「OK」をクリックします。JSFページにバインディング・コードが作成されます。新規メソッドを作成した場合は、バッキングBeanにデフォルト・メソッドのコードが自動的に挿入されます。

5. ソース・エディタでBeanを開き、メソッドのコードを入力します。

18.2.2.15 JSFでのローカライズ・リソース・バンドルの使用

JSFアプリケーション・コンポーネントで構築するすべてのコンテンツはリソース・バンドルに格納されます。リソース・バンドルは、「デフォルト・プロジェクト・プロパティ」ダイアログで簡単にアプリケーションに追加したりアプリケーションから削除できます。

開発時に、コンポーネントを右クリックしてテキスト・リソースを選択します。プロジェクトに使用可能なリソース・バンドルが表示されます。作業対象のプロジェクトで使用可能にするリソース・バンドルを選択します。選択したリソース・バンドルに新規テキストが格納されます。

キー値文字列を割り当てることにより、リソース・バンドル内のテキスト・オブジェクトを一意に特定することもできます。デフォルトでは、表示名として入力した名前または名前の一部を使用します。この値は、ローカライズされたパートナにベース・コンテンツを関連させるためトランスレータによって使用されます。新規コンテンツを追加する場合、リソース・バンドルに前に追加した既存のコンテンツ文字列が使用可能で表示されます。既存のコンテンツ文字列を使用すると、ローカライゼーションに要する労力を最大限に活用でき、別の識別子を持つ重複文字列がすでに存在する際に一意の識別子を持つ新規コンテンツ文字列を追加しなくてすみます。リソース・バンドルを使用してプロジェクトおよびアプリケーション全体にわたってコンテンツ文字列を再利用することにより、翻訳に要する労力とコストを削減できます。

JSFページでは、値バインディング式(例: #{bundle.key})を受け入れるどのコンポーネント・タグ属性からでもリソース・バンドル文字列を参照できます。

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

リソース・バンドルをJSFページに追加するには、「コンポーネント」ウィンドウからLoadBundleコンポーネントをドラッグします。

JSFでローカライズ・リソース・バンドルを使用する手順は、次のとおりです。

1. ローカライズ・メッセージおよびデータ文字列に対するキーと値のペアを含んだリソース・バンドルを作成します。ローカライズ・バンドルをアプリケーションのクラスパスに配置します。

2. 「アプリケーション」ウィンドウで、faces-config.xmlをダブルクリックしてJSF構成エディタで開きます。「概要」に切り替えます。

3. 「アプリケーション」をクリックし、右矢印をクリックして「ロケール構成」を開きます。

4. 「ロケール構成」の下にある「デフォルトのロケール」の値を入力します。「サポートされているロケール」で、「新規」をクリックして、サポートされているロケールに対するISOロケール識別子を追加します。サポートされているロケールは複数追加できます。

5. ビジュアル・エディタでJSFページを開きます。

6. 「コンポーネント」ウィンドウで、ドロップダウン・リストから「JSF Core」を選択して、LoadBundleをページにドラッグ・アンド・ドロップします。リソース・バンドルのベース名、およびリクエスト範囲指定で使用されるマップ変数の任意の名前を入力するためのダイアログが表示されます。

例18-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>

18.2.2.17 ファセットの使用方法

多くのコンポーネントでファセットを使用しています。ウィザードを使用して複雑なコンポーネント(表やパネルなど)を作成すると、出力タグが自動的に作成されてファセット内に挿入されます。これらのコンポーネントの編集、およびファセットへの他のコンポーネントの追加は手動で実行できます。「構造」ウィンドウのポップアップ・メニューを使用してファセットの追加または削除を行うこともできます。

ファセットを追加および編集する手順は次のとおりです。

1. 「構造」ウィンドウで、親タグの左側にあるプラス記号をクリックし、親タグ(h:dataTableなど)を開きます。ツリーの下部にファセット・フォルダが表示されます。

2. 「+」アイコンをクリックしてファセット・フォルダを開きます。その親に関連するすべてのファセット・フォルダが表示されます。

3. ファセット・フォルダ内のコンポーネントを編集する手順は、次のとおりです。

- フォルダを開き、コンポーネントを選択します。

- 属性値を編集するには、「プロパティ」ウィンドウを使用します。

4. ファセットにコンポーネントを追加する手順は、次のとおりです。

- フォルダを右クリックします。

- 「<facet-name>の中に挿入」を選択します。

- 結果のメニューを使用して、適切なオブジェクトを選択します。

- 属性値を設定するには、「プロパティ」ウィンドウを使用します。

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

JDeveloperでは、Faceletテクノロジをサポートしています。

次の機能を使用できます。

- UIの開発およびデプロイ時間の短縮

- コンパイル時間が短縮されます。

- コンパイル時間の検証

- パフォーマンスの高いレンダリング

- カスタマイズを介したコンポーネントおよびサーバー側のテクノロジの機能拡張

- テンプレート作成コンポーネントおよびコンポジット・コンポーネントを介したコードの再利用のサポート

Faceletsのタグ・ライブラリ

JSFでは、様々なタグを使用してWebページのUIコンポーネントを表現します。Faceletsは、XMLネームスペース宣言を使用してJSFタグ・ライブラリのメカニズムをサポートしています。これらすべてのライブラリはJDeveloperに含まれます。

表18-13 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では、${}と#{}は区別されません。

Faceletを作成するには、次のようにします。

1. 「ファイル」→「新規」→「新規ギャラリ」→「Web層」→「JSF/Facelets」→「ページ」を選択します。

2. Faceletのファイル名とパスを入力し、「OK」をクリックします。

- 例18-4 web.xmlに追加されるFaceletコード

<context-param>
<param-name> Facelets.VIEW_MAPPINGS </param-name>
<param-value> *.xhtml</param-value>
</context-param>

例18-5 ADFに追加されるFaceletコード

<context-param>
<param-name&gt;torg.apache.myfaces.trinidad.FACELETS_VIEW_MAPPINGS</param-name>
<param-value>*.xhtml</param-value>
</context-param>

これが追加されることにより、デフォルトのJSPマッピングを使用せずに、Faceletsが正しく表示されるようになります。Facelets JARのjsf-Facelets.jarは、Faceletsランタイム・ライブラリを介してクラスパスに追加されます。

18.2.2.19 提供されているタグを使用して標準コンバータを登録する方法

JSF入力データの変換と検証を行うために、名前付きコンバータ・インスタンスや変換番号を登録したり、「コンポーネント」ウィンドウで日時を変換するためのコンバータ・コンポーネントが用意されています。

コンバータ・プロパティおよびバリデータ・プロパティは、faces-config.xmlファイルの概要エディタで構成できます。

提供されているタグを使用してJSF標準コンバータを登録する手順は、次のとおりです。

1. ビジュアル・エディタで、標準コンバータを登録するコンポーネントを選択します。

2. 「コンポーネント」ウィンドウで、ドロップダウン・リストから「JSF Core」を選択し、標準コンバータ(例: ConvertDateTime)をクリックします。

3. 「プロパティ」ウィンドウで、コンバータの属性を設定します。

例18-6 登録された標準コンバータのコード例

<h:inputText id="hiredate" value="#{employee.hireDate}"
<f:convertDateTime dateStyle="full"/>
<f:convertDateTime dateStyle="full"/>
</h:inputText>

18.2.2.20 タグのない標準コンバータの登録方法

コンバータを登録するには、「コンポーネント」ウィンドウまたは「プロパティ」ウィンドウを使用します。

固有のタグのないJSF標準コンバータを登録する手順は、次のとおりです。

1. ビジュアル・エディタで、標準コンバータを登録するコンポーネントを選択します。

2. 「コンポーネント」ウィンドウで、ドロップダウン・リストから「JSF Core」を選択し、「コンバータ」をクリックします。コンバータの登録済IDを入力するためのダイアログが表示されます。

3. ドロップダウン・リストからコンバータID (例: javax.faces.Integer)を選択します。「OK」をクリックします。ページにf:converterタグが挿入されます。f:converterタグを使用するかわりに、「プロパティ」ウィンドウを使用して、コンバータIDをコンポーネントのconverter属性に入力することもできます。

例18-7 コンポーネント内のf:converterタグを使用して登録された標準コンバータのコード例

<h:inputText id="age" ...>
<f:converter converterId="javax.faces.Integer" />
</h:inputText>

例18-8 コンポーネント内のf:converter属性を使用して登録された標準コンバータのコード例

<h:inputText id="age" converter="javax.faces.Integer" />

18.2.2.21 標準タグを使用して標準バリデータを登録する方法

標準タグを使用してバリデータを登録するには、「コンポーネント」ウィンドウまたは「プロパティ」ウィンドウを使用します。

標準タグを使用してコンポーネントにJSF標準バリデータを登録する手順は、次のとおりです。

1. ビジュアル・エディタで、標準バリデータを登録する入力コンポーネントを選択します。

2. 「コンポーネント」ウィンドウで、ドロップダウン・リストから「JSF Core」を選択し、選択する標準バリデータ(例: ValidateLength)をクリックします。

3. 「プロパティ」ウィンドウで、バリデータの属性を設定します。1つのコンポーネントに複数のバリデータを登録できます。JSFによって、コンポーネントに追加された順にバリデータがコールされます。

例18-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>

18.2.2.22 変換エラーまたは検証エラーを生成したコンポーネントの横にメッセージを表示する方法

IDを割り当ててメッセージを追加するには、「プロパティ」ウィンドウおよび「コンポーネント」ウィンドウを使用します。

変換または検証エラーを生成したコンポーネントの横にメッセージを表示する手順は、次のとおりです。

1. ビジュアル・エディタでページを開きます。

2. 一意のIDをコンポーネントに割り当ててメッセージを表示するには、「プロパティ」ウィンドウを使用します。

3. 「コンポーネント」ウィンドウで、ドロップダウン・リストから「JSF」を選択し、「Message」をページにドラッグ・アンド・ドロップし、メッセージを表示するコンポーネントの横に配置します。一意のIDを入力するためのダイアログが表示されます。

4. IDを入力し、「OK」をクリックします。

5. 「プロパティ」ウィンドウで、メッセージ・タグの属性を設定します。

例18-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>

18.2.2.23 JSFアプリケーション構成でカスタムのコンバータまたはバリデータを登録する方法

カスタム・コンバータを登録するには、「概要エディタ」を使用します。

構成ファイルでカスタムのコンバータまたはバリデータを登録する手順は次のとおりです。

1. 「アプリケーション」ウィンドウで、アプリケーションのfaces-config.xmlファイルをダブルクリックしてJSF概要エディタで開きます。エディタで、「概要」タブをクリックします。

2. 構成エディタの「概要」ページで、「コンバータ」または「バリデータ」をクリックし、「新規」をクリックします。「コンバータの作成」または「バリデータの作成」ダイアログが表示されます。表示されたダイアログで、識別子および完全修飾クラス名を入力します。カスタム・コンバータの場合は、特定のデータ型に対する識別子または完全修飾クラス名で登録できます。

3. 必要な情報を入力します。「OK」をクリックします。

4. (オプション)属性またはプロパティを追加するには、「属性」または「プロパティ」パネルの横にある「新規」をクリックします。「新規」が表示されていない場合は、右矢印をクリックしてパネルを開きます。「属性の作成」または「プロパティの作成」ダイアログが表示されます。表示されたダイアログで、カスタムのコンバータまたはバリデータに構成可能な汎用属性またはJavaBeansプロパティを指定します。

18.2.2.24 構成ファイルでカスタムのコンバータまたはバリデータを編集する方法

カスタムのコンバータまたはバリデータを編集するには、「概要エディタ」を使用します。

カスタムのコンバータまたはバリデータを編集する手順は次のとおりです。

1. 「アプリケーション」ウィンドウで、アプリケーションのfaces-config.xmlファイルをダブルクリックして概要エディタで開きます。エディタで、「概要」タブをクリックします。

2. 構成エディタの「概要」ページで、「コンバータ」または「バリデータ」をクリックします。表示されたリストからコンバータまたはバリデータを選択し、「編集」をクリックします。コンバータまたはバリデータのプロパティ・ダイアログが表示されます。

3. 必要な変更を入力します。

18.2.2.25 構成ファイルでカスタムのコンバータまたはバリデータを削除する方法

編集するには、「概要エディタ」を使用します。

JSFアプリケーション構成ファイルでカスタムのコンバータまたはバリデータを削除する手順は、次のとおりです。

1. 「アプリケーション」ウィンドウで、アプリケーションのfaces-config.xmlファイルをダブルクリックしてJSF構成エディタで開きます。エディタで、「概要」タブをクリックします。

2. 構成エディタの「概要」ページで、「コンバータ」または「バリデータ」をクリックします。表示されたリストからコンバータまたはバリデータの定義を選択し、「削除」をクリックします。コンバータまたはバリデータの定義が削除されます。

18.2.2.26 コンバータ識別子を使用してコンポーネントにカスタム・コンバータを登録する方法

コンポーネントにカスタム・コンバータを登録するには、「コンポーネント」ウィンドウを使用します。

コンバータ識別子を使用してコンポーネントにカスタム・コンバータを登録する手順は、次のとおりです。

1. ビジュアル・エディタで、カスタム・コンバータを登録するコンポーネントを選択します。

2. 「コンポーネント」ウィンドウで、「JSF Core」を選択し、「コンバータ」をクリックします。アプリケーションに登録されているとおりにカスタム・コンバータIDを入力するためのダイアログが表示されます。

3. ドロップダウン・リストから登録済コンバータ識別子を選択します。選択できるのはconverterインタフェースの実装のみです。「OK」をクリックします。f:converterタグが挿入されます。登録済のコンバータIDを入力するには、「プロパティ」ウィンドウが使用できます。

例18-11 f:converterタグを使用したカスタム・コンバータのコード例

<h:inputText id="memberNumber" ... >
<f:converter converterId="customConverter"/>
</h:inputText>

例18-12 converter属性を使用したカスタム・コンバータのコード例

<h:inputText id="memberNumber" converter="customConverter"/>

18.2.2.27 値バインディング式を使用してコンポーネントにカスタム・コンバータを登録する方法

値バインディング式を使用してコンポーネントにカスタム・コンバータを登録するには、「プロパティ」ウィンドウを使用します。

値バインディング式を使用してコンポーネントにカスタム・コンバータを登録する手順は、次のとおりです。

1. ビジュアル・エディタで、登録するコンポーネントを選択します。

2. 「プロパティ」ウィンドウで、converterプロパティを選択してドロップダウン矢印をクリックし、「式ビルダー」を選択します。

3. 式ビルダーを使用してEL式を入力します。converterプロパティを使用するかわりに、f:converterタグをコンポーネントに追加できます。式ビルダーを使用して値バインディング式を入力します。Beanプロパティは、converterインタフェースを実装するクラスのオブジェクトである必要があります。

例18-13 値バインディング式を使用したカスタム・コンバータ・インスタンスのコード例

<h:inputText id="age" converter="#{someBean.someProperty}" />

18.2.2.28 コンポーネントにカスタム・バリデータ・インスタンスを登録する方法

コンポーネントにカスタム・バリデータ・インスタンスを登録するには、「コンポーネント」ウィンドウを使用します。

コンポーネントにカスタム・バリデータ・インスタンスを登録する手順は、次のとおりです。

1. ビジュアル・エディタで、使用する入力コンポーネントを選択します。

2. 「コンポーネント」ウィンドウで、ドロップダウン・リストから「JSF Core」ページまたは「ADF Facesコア」ページを選択し、「Validator」コンポーネントをクリックします。

3. 「プロパティ」ウィンドウで、ドロップダウン・リストから登録済バリデータ識別子を選択するか、バインディング式を入力します。「OK」をクリックします。

例18-14 登録されたカスタム・バリデータ・インスタンスのコード例

<h:inputText id="name"
value="#{MyBean.name}"
size="10" ... >
<f:validator validatorId="customValidator" />
<f:attribute name="someName" value="someValue" />
</h:inputText>

18.2.2.29 コンポーネントを新規バリデータ・メソッドにバインドする方法

コンポーネントを新規バリデータ・メソッドにバインドするには、Bind Validatorプロパティのダイアログを使用します。

コンポーネントを新規バリデータ・メソッドにバインドする手順は、次のとおりです。

1. ビジュアル・エディタで、入力コンポーネントをダブルクリックします。「バインドValidatorプロパティ」ダイアログが表示されます。

2. 「マネージドBean」ドロップダウン・リストからマネージドBeanを選択します。新規マネージドBeanを作成する場合は「新規...」をクリックします。

3. 「メソッド」に新規メソッドの名前を入力するか、デフォルトの名前をそのまま使用します。

4. 「OK」をクリックします。バッキングBeanにデフォルトのバリデータ・メソッド・コードが挿入され、バッキングBeanの.javaファイルがソース・エディタで開きます。カーソルは、新規メソッドに置かれます。

5. ソース・エディタで、バリデータ・メソッドのコードを入力します。

例18-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...
}
...

18.2.2.30 標準コンバータおよびバリデータのタグと構文の使用

JDeveloperでサポートされているすべての属性を表18-14および表18-15に示します。大カッコ([ ])で囲まれている属性は必須ではありません。事前定義の受入れ可能な全属性値が縦線(|)で区切られ、デフォルト値は太字で表示されます。受け入れられる固定の値セットがない属性については、値がイタリック体で表示されます。

表18-14 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"]

表18-15 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"]

/>

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

属性を定義するための「プロパティ」ウィンドウおよびMessageコンポーネントを使用してエラー・メッセージを作成および定義します。

エラーを生成したコンポーネントの横に1つのエラー・メッセージを表示する手順は、次のとおりです。

1. ビジュアル・エディタでJSFページを開きます。

2. 「プロパティ」ウィンドウで、一意のIDをメッセージを表示するコンポーネントに割り当てます。

3. 「コンポーネント」ウィンドウで、ドロップダウン・リストから「JSF」を選択し、Messageをページにドラッグ・アンド・ドロップし、メッセージを表示するコンポーネントの横に配置します。IDを入力するためのダイアログが表示されます。

4. For*の横にある列をクリックして、コンポーネントのIDを入力します。次に、「OK」をクリックします。

5. 「プロパティ」ウィンドウで、メッセージ・タグの属性を設定します。

例18-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タグを手動で追加する必要はありません。

18.2.2.32 ページで生成されたすべてのエラー・メッセージを表示する方法

メッセージに対して表示属性を設定するには、「プロパティ」ウィンドウを使用します。

ページで生成されたすべてのエラー・メッセージを表示する手順は、次のとおりです。

1. ビジュアル・エディタでJSFページを開きます。

2. 「コンポーネント」ウィンドウで、ドロップダウン・リストから「JSF」を選択し、Messagesをページにドラッグ・アンド・ドロップし、ページの最上部に配置します。

3. 「プロパティ」ウィンドウで、Messagesタグの属性を設定します。

例18-17 すべてのエラー・メッセージの表示のコード例

<h:form>
<h:messages globalOnly="true" layout="table"/>
...
</h:form>

ヒント:

コンポーネントに関連付けられていないグローバル・メッセージのみを表示する場合は、globalOnly属性をtrueに設定します。ADFデータ・コントロールを使用してJSFのフォームや表を作成している場合、JDeveloperでは、h:messagesタグが自動的に追加されます。タグを手動で追加する必要はありません。

18.2.2.33 JSFの標準メッセージ・テキストを置換する方法

テキスト・リソースのバンドルを作成し、概要エディタを使用して構成ファイルを編集して、バンドル・クラスパスを追加します。

JSFの標準メッセージ・テキストを置換する手順は、次のとおりです。

1. 置換テキストに対するキーと値のペアを含んだプロパティ・リソースのバンドルを作成し、このバンドルをアプリケーションのクラスパスに配置します。詳細は、第18章「JSFでのローカライズ・リソース・バンドルの使用方法」を参照してください。

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を参照してください。

18.2.2.34 メッセージが参照するフォーム・フィールドに関する情報の追加方法

構成ファイルにフェーズ・リスナーを追加するには、「概要エディタ」を使用します。

メッセージの対象のフォーム・フィールドに関する情報を追加する手順は、次のとおりです。

1. 汎用属性を取得してメッセージに追加するPhaseListener実装を作成します。

2. 「アプリケーション」ウィンドウで、faces-config.xmlをダブルクリックしてJSF構成エディタで開きます。必要な場合は、「概要」モードに切り替えます。

3. 「ライフ・サイクル」をクリックし、「新規」をクリックしてカスタム・フェーズ・リスナーを追加します。

4. 「フェーズ・リスナーの作成」で、フェーズ・リスナー実装の完全修飾パスを入力するか、または「参照」をクリックしてパスを選択します。

5. JSFページを開き、対象の入力コンポーネントを探します。

6. 「コンポーネント」ウィンドウで、ドロップダウン・リストから「JSF Core」を選択し、Attributeを入力コンポーネントにドラッグ・アンド・ドロップします。必要な汎用属性の情報を入力するためのダイアログが表示されます。

18.2.2.35 JSFページのエラー・メッセージの外観を変更する方法

スタイルシートを使用してメッセージの外観を変更します。

JSFページのエラー・メッセージの表示形式を変更する手順は、次のとおりです。

1. ビジュアル・エディタでJSFページを開きます。

2. CSSスタイルシートをページにリンクします。

3. h:messageまたはh:messagesコンポーネントを選択します。

4. 「プロパティ」ウィンドウで、特定のタイプのメッセージに適用するCSSクラスを設定します。たとえば、重大度レベルが「ERROR」のメッセージで特定のスタイルシートを使用する場合は、CSSファイルに定義されているスタイル・クラスの名前をErrorClass属性に設定します。これを行うには、「プロパティ」ウィンドウで ErrorClassの横の列をクリックして、スタイル・クラスを選択します。

注意:

1つ以上のインライン・スタイルを使用するには、「プロパティ」ウィンドウで「ErrorStyle」を開き、指定するスタイル(たとえば、background-color)の横の値を入力または選択します。

例18-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>
...

18.2.2.36 JSFアプリケーションの構成

faces-config.xmlを使用して、参照先Beanを構成します。このファイルにBeanを宣言することで、設計時ツールは、設計時には使用できないが、実行時に使用できるBean(データ・アクセスなど)を理解できます。

JSFファイルまたはFaceletファイルを作成すると、WEB-INF/faces-config.xmlが自動的に作成されます。複数のJSF構成ファイルを持つことができます。アプリケーションの領域別に複数の構成ファイルを作成する必要が生じることがあります。また、カスタム・コンポーネントまたはカスタム・レンダラを含むパッケージ化されたライブラリを使用する場合は、ライブラリごとに個別のfaces-config.xmlファイルが必要です。この場合、構成ファイルは、(WEB-INFディレクトリではなく)META-INFディレクトリに格納されます。

18.2.2.37 概要エディタを使用して<application>要素を設定する方法

子要素を構成するには、「概要エディタ」の「アプリケーション」セクションを使用します。

構成ファイルの概要エディタを使用して<application>要素を設定する手順は、次のとおりです。

1. JSF構成ファイルの概要エディタを開きます。

2. 左側の列で、「アプリケーション」を選択します。エディタのメイン領域には、構成する各子要素が表示されます。要素の値を指定しない場合は、デフォルトのJSF実装クラスが使用されます。

3. メイン領域で、テキスト・フィールドに子要素に対応するクラス名を移入します。完全修飾クラス名を値として取得するすべての要素について、「参照」ボタンを使用すると、クラス・ブラウザを起動してクラスを検索できます。フィールドを終了すると、値がXMLファイルに移入されます。

18.2.2.38 JSF構成ファイルにBeanを追加する方法

1. 「アプリケーション」ウィンドウで、faces-config.xmlをダブルクリックします。このファイルは、Web Content/WEB_INFディレクトリにあります。

2. ウィンドウの最下部で、「概要」タブを選択します。JSF構成エディタ・ウィンドウが表示されます。

3. 左側にある要素リストから「参照先のBean」を選択します。

4. 「新規」、「編集」および「削除」ボタンを使用して、Beanを構成します。

18.2.2.39 新規JSF構成ファイルの作成方法

新規JSF構成ファイルを作成するには、「新規ギャラリ」ウィザードを使用します。

新規のJSF構成ファイルを作成する手順は、次のとおりです。

1. 「アプリケーション」ウィンドウで、プロジェクトを選択します。プロジェクトにはWEB-INFノードが含まれ、このノードにはweb.xmlファイルが含まれています。

2. プロジェクトのノードを右クリックし、「新規」を選択します。

3. 「新規ギャラリ」で、「カテゴリ」に移動して「Web層」を開き、「JSF/Facelet」を選択します。

4. 「項目」リストで、JSFページ・フローと構成を選択します。

5. 「OK」をクリックします。JSF構成ファイルの作成ダイアログが開きます。

6. 対象となるファイルに値を設定します。アプリケーションの構成ファイルを追加する場合:

1. 新規構成ファイルの「ファイル名」を入力します。

2. 「ディレクトリ」を確認または変更します。

3. 「参照をWeb.xmlに追加」チェック・ボックスの選択を解除します。選択すると、新しいweb.xmlファイルが追加され、アプリケーション構成の一部として読み込まれます。

4. 「OK」をクリックします。これによって、入力した名前を使用して新規の構成ファイルが作成されます。

7. カスタム・コンポーネント、またはライブラリの.jarで提供された他のJSFクラスの構成ファイルを作成する場合:

1. ファイル名を「faces-config.xml」に設定します。

2. 「ディレクトリ名」を「META-INF」に変更します。

3. 「参照をWeb.xmlに追加」チェック・ボックスの選択を解除します。

4. 「OK」をクリックします。これによって、入力した名前を使用して新規の構成ファイルが作成されます。この構成ファイルは、コンポーネントまたはクラスの配布に使用する.jarファイルに含めることができます。

18.2.2.40 JSF構成ファイルの編集方法

3つのエディタのいずれか1つを使用して、JSF構成ファイルを編集します。

JSF構成ファイルの編集:

1. 「アプリケーション」ウィンドウで、WEB-INFノードに置かれているfaces-config.xml構成ファイルを特定します。

2. ファイルをダブルクリックして開きます。

3. デフォルトでは、ナビゲーション・ダイアグラマが表示されます。エディタを選択するには、エディタ・ウィンドウ下部にあるタブの1つをクリックします。

- JSFナビゲーション・ダイアグラマ: 「ダイアグラム」をクリックします。

- JSF構成ファイルの概要エディタの場合は、「概要」をクリックします。

- XMLソース・エディタ: 「ソース」をクリックします。

18.2.3 プロジェクトのFaceletへの変換

プロジェクトまたはファイルをFaceletに変換するには、図18-16に示すように、「Faceletへの変換」機能を使用します。このプロセスでは、プロジェクトまたはファイルが次の3つの方法で変更されます。

- タグ・ライブラリを追加: Projectにより使用されたJSPタグ・ライブラリと同じネームスペースを持つFaceletタグ・ライブラリがすべて追加されます。

- タグの使用方法を変更: このプロジェクトの各JSPページ(.jspxまたは.jsff)がFaceletページに置換されます。

- ファイル名を変更: この変換作業でFaceletに使用するファイル拡張子を指定します。ファイル拡張子が現在、このプロジェクト(web.xmlのjavax.faces.FACELETS_VIEW_MAPPINGSコンテキスト・パラメータ)および「設定」(「ツール」→「設定」→「ファイル・タイプ」)でFaceletに関連付けられていない場合は、必須マッピングがweb.xmlおよび設定に追加されます。すべての.jspxファイルは、ここで指定したファイル拡張子に名前変更されます。名前変更された.jspxファイルに対する参照はすべて、適宜更新されます。

図18-16 「Faceletsへの変換」ダイアログ

18.2.3.1 変換前の考慮事項

Faceletsへ変換する前に、次の点を考慮する必要があります。

- 変換できないJSPタグは、変更されないまま変換後のページに残ります。これらのJSPタグが手動で変換されないかぎり、変換後のページは実行できません。

- XML構文によるJSPページ(通常、.jspxファイル拡張子が付いています)はサポートされています。JSP構文によるJSPページ(これには通常、.jspファイル拡張子が付いています)は、Facelets変換機能で使用するために、XML構文に変換する必要があります。

- この変換は元に戻せません。Projectのバックアップ・コピーを作成してから、Facelets変換を実行することをお薦めします。

- Faceletsへの変換によってアプリケーションの設定が変更され、この変更はJDeveloperで使用するすべてのプロジェクトに適用されます。

- ファイル拡張子を保持するよう選択しない場合、ファイル名は変更されます。変更されたファイル名によって、バージョン管理システムで問題が生じる場合があります。まず1つのJSPファイルをテスト変換してからプロジェクト内の多数のファイルを変換して、ファイル名の変更によってもバージョン管理システムが問題なく機能することを確認してください。

- JSPファイル拡張子(.jspx)を保持するように選択した場合、.jspx拡張子を持つすべてのファイルは変換後にFaceletとして認識されます。一部の.jspxファイルを未変換のまま残して、それをJSPとして実行したい場合は、その.jspxファイルをJSPドキュメント用に新しいファイル拡張子に手動で名前変更し、ファイル名の変更によってバージョン管理システムに問題が生じないことを確認してください。

18.2.3.2 ログ・ウィンドウでの変換ステータスのプレビュー

変換に関して加えられた変更は、図18-17に示すように、ログ・ウィンドウの3つのセクションで、タグ・ライブラリの変換、タグ使用法の変換、およびファイル名の変換に関して1つずつ表示されます。

注意:

ログ・ウィンドウに移動するには、「ウィンドウ」→「ログ」を選択します。

プレビュー・セッション中に、変換プロセス全体を取り消すように選択して、加えられた変更を取り消すことができます。変換を続行するには、「変換」をクリックします。

図18-17 変換されるファイル名を示すログ・ウィンドウ

18.2.3.3 プロジェクトをFaceletsに変換する方法

プロジェクトの「アプリケーション」ウィンドウのViewControllerノードから、プロジェクトをFaceletsに変換します。

プロジェクトをFaceletsに変換する手順は次のとおりです。

1. プロジェクトの「アプリケーション」ウィンドウで、ViewControllerノードを右クリックします。

2. 「Faceletsへの変換」を選択します。

18.2.4 JSFアプリケーションの実行およびテスト

JDeveloperには、統合WebLogic Serverが用意されています。このサーバーを使用すると、IDEからWebアプリケーションを実行およびテストできます。特別な接続設定は必要ありません。アプリケーション・プロジェクト全体または個々のJSFページを実行します。

18.2.4.1 個別パッケージの実行およびテスト方法

JSFページからポップアップ・メニューを使用して、そのページを実行します。

個々のページを実行およびテストするには、次のようにします。

1. 「アプリケーション」ウィンドウまたはJSFナビゲーション・ダイアグラム(faces-config.xml)で、実行するJSFページを選択します。

2. JSFページを右クリックし、コンテキスト・メニューから「実行」を選択します。デフォルトのブラウザにJSFページが表示されます。これがドメインを実行または起動する初めての機会であるときにサーバーがまだ作成されていない場合、「デフォルト・ドメインの構成」ダイアログに新規パスワードを入力するよう求められます。

18.2.4.2 プロジェクト全体を実行およびテストする方法

ポップアップ・メニューを使用してプロジェクトを実行します。

プロジェクト全体を実行およびテストするには、次のようにします。

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コンテキスト・ルートを変更できます。

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

JDeveloperは、HTML 5 W3Cの仕様(http://www.w3.org/TR/html5/)に準拠したHTMLテクノロジによるアプリケーションの開発を完全にサポートしています。

HTMLページの作成と編集用として、統合および同期化された設計ツールとコンポーネントの完全なセットが用意されています。HTMLソース・エディタおよびビジュアル・エディタの詳細は、第18.1.1項「ソース・エディタの使用」および第18.1.2項「ビジュアル編集環境での作業」を参照してください。

18.3.1 HTMLページのビルド

HTML Webページの使用を開始するには、最初にWebアプリケーションを作成する必要があります。使用可能なアプリケーション・タイプを確認するには、表18-9「Webアプリケーション・テンプレート」を参照してください。

Webアプリケーション・フレームワークを作成したら、HTMLページのビルドを開始できます。

18.3.1.1 HTMLページの作成方法

HTMLページを作成するには、「新規ギャラリ」ウィザードを使用します。

HTMLページを作成するには、次のようにします。

「新規ギャラリ」ウィザードで、Webページのビルドを実行します。

1. 「アプリケーション」ウィンドウで、HTMLページを作成するプロジェクトを選択します。

2. 「ファイル」→「新規」→「ギャラリから」を選択し、「新規ギャラリ」を開きます。

3. 図18-18に示すように、「カテゴリ」ツリーで、「Web層」を開いて「HTML」を選択します。

4. 図18-19に示すように、「ディレクトリ」フィールドは変更せず、Webアプリケーション・ファイルが検索されるディレクトリに作業内容を保存します。「ファイル名」フィールドに、生成するファイルの名前を入力し、「OK」をクリックします。単純なHTMLファイルが生成され、アクティブなプロジェクトに表示されます。デプロイメント・ディスクリプタ・ファイルweb.xmlもプロジェクトに追加されます。デプロイメント・ディスクリプタ・ファイルは、HTMLの実行時に統合WebLogic Serverで使用されます。

図18-18 「新規ギャラリ」からのHTMLページの作成

図18-19 HTMLの作成ダイアログ

18.3.1.2 HTMLコア・コンポーネントの使用

HTMLページをビルドする際、「コンポーネント」ウィンドウを使用して、一般的に使用されるほとんどのタグをクリックしたりページにドラッグ・アンド・ドロップします。JDeveloperには、図18-20および表18-16に示すように、一般的に使用される一連のHTML要素タグや、ユーザー入力の属性および動作を追加するための一連のフォーム・タグが用意されています。

図18-20 HTMLページ用のコンポーネント・パレット

表18-16 HTML Commonのコンポーネント

タグ名

説明

Anchor

名前付きアンカー<A name>非表示要素を挿入します。

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

内部スタイルシートをドキュメントに埋め込みます。

Table

ページにスケルトンHTMLの<table>タグを挿入します。

18.3.1.3 JSPファイルをHTMLとして保存する方法

ソース・エディタの「メニュー」オプションを使用して、JSPファイルをHTMLに保存します。

JSPファイルをHTMLとして保存するには、次のようにします。

ソース・エディタでJSPファイルを開き、「ファイル」→「HTMLとして保存」を選択して、JSPページをHTMLページとして保存できます。

「HTMLとして保存」オプションを使用すると、元のファイルを変更せずに、元のファイルのコピーにHTMLの拡張子を付けて保存されます。HTMLファイルではテキスト・フォーマットが維持されるため、ブラウザで表示する際、元のHTMLページと同様に表示されます。保存したHTMLファイルをもう一度開いてHTMLとして表示できますが、コードとして解釈されなくなります。

18.3.2 HTMLテキストの使用方法

HTMLテキストの書式設定スタイルを変更するには、「プロパティ」ウィンドウでStyleノードを使用します。

18.3.2.1 テキストを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>

18.3.2.2 テキスト・プロパティの設定方法

CSSスタイルには、特定のクラスの全テキストに対する書式を定義したり、h2など特定のタグの書式を再定義します。CSSスタイルと手動またはオンラインのHTML書式を同じページ内で使用できます。手動のHTML書式は、CSSスタイルを使用して適用した書式より優先されます。

テキスト・プロパティを設定するには、次のようにします。

1. 手動またはオンラインのHTMLスタイルの設定先となるテキストを選択します。

2. ツールバーを使用してテキスト・プロパティを設定します。

18.3.3 HTMLイメージの使用方法

HTML編集ツールを使用して、イメージの挿入、移動、サイズ変更を行えます。

JDeveloperでは、次のグラフィック・ファイル形式をサポートしています。

- JPEG/JPG

- GIF

- PNG

18.3.3.1 HTMLファイルにイメージを挿入する方法

「コンポーネント」ウィンドウのImageコンポーネントを使用して、イメージをHTMLページに挿入します。

イメージを挿入するには、次のようにします。

1. ビジュアル・エディタでファイルを開いておき、次のいずれかの操作を行います。

- ビジュアル・エディタまたは「構造」ウィンドウで、ページ上のイメージの表示位置となる挿入ポイントを選択し、「コンポーネント」ウィンドウのページで「イメージ」をクリックします。

- 「コンポーネント」ウィンドウのページから、ページ上または「構造」ウィンドウ内の目的の挿入ポイントまで、Image要素をドラッグします。

2. 表示された「イメージの挿入」ダイアログで、「参照」をクリックしてファイルを選択するか、イメージ・ファイルの場所を示すパスを入力します。ファイルの場所を参照すると「イメージ・ソースの選択」ダイアログが開き、現在のコンテキストに基づいたディレクトリが表示されます。イメージ・ファイルが現在のプロジェクトのHTMLルート外部にある場合は、そのファイルを「アプリケーション」ウィンドウの現在のコンテキストに追加するかどうか尋ねられます。「イメージの保存」ダイアログで「はい」をクリックして、イメージをドキュメント・ルートに追加します。

3. 「イメージの挿入」ダイアログでその他のイメージ・プロパティを設定します。

4. 「OK」をクリックします。ページにイメージが表示されます。
Windowsのデスクトップやエクスプローラからページ上の目的の場所へイメージをドラッグすることもできます。「アプリケーション」ウィンドウの現在のコンテキストに基づいたディレクトリにファイルを追加するかどうか尋ねられます。「イメージの保存」ダイアログで「はい」をクリックして、イメージをドキュメント・ルートに追加します。ページ上にイメージが表示されます。

18.3.3.2 HTMLファイルからイメージを削除する方法

通常のキーボードの削除コマンドを使用して、イメージを削除します。

イメージを削除するには、次のいずれかの操作を行います。

- イメージを選択して、[Del]または[Backspace]を押します。

- イメージを選択して、メイン・メニューから「編集」→「切取り」を選択します。

18.3.3.3 HTMLファイルのイメージをサイズ変更する方法

右クリックして「プロパティ」選択項目を使用して、HTMLページ内のイメージをサイズ変更します。

イメージのサイズを変更するには、次のいずれかの操作を行います。

- 右クリックして「プロパティ」を選択し、幅および高さのピクセルを調整します。

- イメージの下と右、および右下隅にあるサイズ変更ハンドルを選択し、イメージの幅および高さを調整します。

- 「プロパティ」ウィンドウで、イメージの幅と高さの属性を選択し、変更します。
ビジュアル・エディタを使用して設定されたImageプロパティは、「プロパティ」ウィンドウで緑色の四角形を付けて表示されます。サイズ変更した要素を元のサイズに戻すには、「プロパティ」ウィンドウの「幅」および「高さ」フィールドの値を削除するか、「サイズのリセット」ボタンをクリックします。

18.3.3.4 イメージをHTMLの背景として使用する方法

イメージをHTMLページの背景として設定するには、「プロパティ」ウィンドウを使用します。

イメージを背景として使用するには、次のようにします。

1. 「構造」ウィンドウでページの<body>要素を選択します。選択した要素のプロパティ値が「プロパティ」ウィンドウに表示されます。「プロパティ」ウィンドウが表示されていない場合は、「表示」→「プロパティ」ウィンドウを選択するか、[Ctrl]と[Shift]を押しながら[I]を押します。

2. 「プロパティ」ウィンドウでbackgroundプロパティにスクロールして、マウスまたは矢印キーで選択します。

3. 右側の列に、次のいずれかの方法でプロパティ値を入力します。

- 値フィールド内をクリックし、表示されたリストから使用可能な背景イメージを選択します。

- 値フィールドをクリックし、省略記号ボタンを表示します。省略記号をクリックして「背景色」ダイアログを表示し、「参照」をクリックしてファイルを選択するか、イメージ・ファイルの場所を示すパスを入力します。ファイルの場所を参照すると「イメージ・ソースの選択」ダイアログが開き、現在のコンテキストに基づいたディレクトリが表示されます。イメージ・ファイルが現在のプロジェクトのHTMLルート外部にある場合は、そのファイルを「アプリケーション」ウィンドウの現在のコンテキストに追加するかどうか尋ねられます。「イメージの保存」ダイアログで「はい」をクリックして、イメージをドキュメント・ルートに追加します。「OK」をクリックします。イメージはページの背景イメージとして並べて表示されます。

18.3.3.5 イメージをHTMLファイルにドラッグにより移動する方法

イメージの移動に、ドラッグ、切取りおよび貼付け、またはmoveコマンドを使用します。

イメージをドラッグして移動するには、次のようにします。

ビジュアル・エディタまたは構造ウィンドウで、次のいずれかの操作を行います。

- ビジュアル・エディタまたは構造ウィンドウで、イメージを元の位置から挿入ポイントにドラッグします。

- ビジュアル・エディタまたは「構造」ウィンドウで、イメージを右クリックして元の位置から挿入ポイントにドラッグし、ポップアップ・メニューから「ここに移動」を選択します。

ビジュアル・エディタまたは構造ウィンドウで、次のいずれかの操作を行います。

- イメージを切り取ります。その後、ビジュアル・エディタまたは構造ウィンドウの別の位置に貼り付けます。

- イメージを切り取ります。次に、同じプロジェクトまたは別のプロジェクト内の他のファイルへ貼り付けます。

18.3.4 HTML表の使用

ビジュアル・エディタを使用して、HTMLページ上の表とデータを作成および編集します。ツールバー、「プロパティ」ウィンドウ、および「構造」ウィンドウを使用して表を編集すると、テキストとイメージの追加、行と列の追加、削除、サイズ変更、並替え、分割およびマージ、色と位置合せに関する表、行またはセルのプロパティ変更、セルのコピーと貼付け、および表セルでの表のネストが可能になります。

18.3.4.1 テキストを表セルに追加する方法

テキストを表セルに追加するには、テキストをエディタのセルの中に直接入力します。

表セルにテキストを追加するには、次のようにします。

1. セルをクリックしてテキストを追加します。点滅するカーソルが表示された場合は、次のいずれかを実行します。

- 表にテキストを入力します。入力に伴い、表セルが自動的に拡張します。

- 別のページからコピーしたテキストを貼り付けます。

2. [Tab]を押して次のセルに移動するか、[Shift]を押しながら[Tab]を押して前のセルに移動します。表の最後のセルで[Tab]を押すと、表にもう1行自動的に追加されます。

表セルを挿入ポイントとして使用し、グラフィックやその他のUIおよびデータ要素を表に追加したり、表から削除することができます。

18.3.4.2 選択した1つ以上のセルからコンテンツを削除する方法

セルからコンテンツを削除するには、ツールバー・メニューまたは[Backspace]キーを使用します。

1つ以上のセルからコンテンツを削除するにはセルを選択して、次のようにします。

- [Del]または[Back Space]を押します。
または

- メイン・メニューから「編集」→「削除」を選択します。

セル自体ではなく、セルのコンテンツのみが表から削除されます。行または列全体が選択されている場合、選択されている行または列がセルのコンテンツとともに削除されます。

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

「プロパティ」ウィンドウを使用して、表全体に適用されるプロパティ、または表で選択したセル、行または列に適用されるプロパティを定義します。背景色や位置などのプロパティに、表全体と個々の表セルとで異なる値を設定する場合、書式設定情報には次の優先順位が適用されます。

1. 表のセル(<td>タグ)

2. 表の行(<tr>タグ)

3. 表(<table>タグ)

個々のセルに緑の背景色を指定した後、表全体の背景色を赤に設定しても、<td>タグは<table>タグより優先順位が高いため、緑のセルは赤に変わりません。

18.3.4.4 表とセルのプロパティの設定方法

表とセルのプロパティを設定するには、「プロパティ」ウィンドウを使用します。

表とセルのプロパティを設定する手順は次のとおりです。

1. ビジュアル・エディタで表、行またはセルを選択するか、「構造」ウィンドウで対応する<table>、<tr>または<td>を選択します。選択した要素のプロパティ値が「プロパティ」ウィンドウに表示されます。「プロパティ」ウィンドウが表示されていない場合は、「ウィンドウ」→「プロパティ」ウィンドウを選択するか、ショートカット・キー[Ctrl]と[Shift]を押しながら[I]を押します。

ヒント:

長いリストの中からプロパティを素早く見つけるには、「プロパティ」ウィンドウのツールバーにある検索ボタンをクリックします。「検索」テキスト・フィールドにプロパティ名を入力し、[Enter]を押します。

2. 右側の列に、次のいずれかの方法でプロパティ値を入力します。

- プロパティの文字列値をテキスト・フィールドに入力し、[Enter]を押します。

- 値フィールド内をクリックし、表示されたリストから値を選択します。

- 値フィールドをクリックし、省略記号ボタンを表示します。省略記号をクリックし、該当するプロパティのエディタを表示します。プロパティ・エディタで値を設定し、「OK」をクリックします。

18.3.4.5 ビジュアル・エディタ・ツールバーを使用して表とセルのプロパティを設定する方法

表とセルのプロパティをすばやく設定するには、ビジュアル・エディタのツールバーを使用します。

ビジュアル・エディタ・ツールバーを使用して表とセルのプロパティを設定する手順は次のとおりです。

1. ビジュアル・エディタで表、行またはセルを選択します。また、「構造」ウィンドウで対応する<table>、<tr>、<td>を選択することもできます。

2. 位置合せ、インデント/アウトデントなど、一般的な表プロパティを設定するには、「プロパティ」ウィンドウを使用します。

18.3.4.6 表のサイズ変更方法

表のサイズ変更では、いくつかの選択肢が使用できます。

表のサイズを変更するには、次のいずれかの操作を行います。

- ビジュアル・エディタで表を選択し、サイズ変更ハンドルを使用して目的のサイズになるまで表の高さまたは幅(あるいはその両方)をドラッグします。

- ビジュアル・エディタで表を選択するか、構造ウィンドウで対応する<table>要素を選択し、「プロパティ」ウィンドウで表のwidth属性を設定します。

- ビジュアル・エディタで表をダブルクリックし、「表の編集」ダイアログで表の幅(ピクセル単位)またはページ幅に対する割合を設定しなおします。

- ビジュアル・エディタで表を右クリックするか、「構造」ウィンドウで対応する<table>要素を右クリックし、ポップアップ・メニューから「タグの編集」を選択して「表の編集」ダイアログを表示します。

18.3.4.7 行および列のサイズ変更方法

ビジュアル・エディタのサイズ・プリファレンスまで行と列をドラッグします。

行または列のサイズを変更するには、次のようにします。

1. ビジュアル・エディタで、行または列をサイズ変更する表を含むページを開きます。

2. ビジュアル・エディタで、行または列をサイズ変更する表を含むページを開きます。サイズ変更する行または列の枠線にカーソルを置き、水平方向の枠線ハンドルまたは垂直方向の枠線ハンドルが表示された後でクリックします。

3. 目的のサイズになるまで行または列の枠線をドラッグし、マウスを放します。

18.3.4.8 表への行または列の追加方法

行または列を表に追加するには、右クリックしてポップアップ・メニューを使用します。

行または列を表に追加するには、次のようにします。

1. ビジュアル・エディタで表セルを選択するか、構造ウィンドウで対応する<td>要素を選択します。

2. 選択した表セルまたは要素を右クリックし、ポップアップ・メニューから「表」を選択します。

3. 次のいずれかを選択します。

- 表セルが選択されている行の上に1行追加する場合は、「行の挿入」を選択します。

- 表セルが選択されている列の前に1列追加する場合は、「列の挿入」を選択します。

- 「行または列の挿入」を選択します。「行または列の挿入」ダイアログでは、複数の行または列の追加や、行または列の追加位置を指定します。次に、「OK」をクリックします。

18.3.4.9 表の行または列の削除方法

表の行または列を削除するには、右クリックしてポップアップ・メニューを使用します。

表の行または列を削除するには、次のようにします。

1. ビジュアル・エディタで表セルを選択するか、構造ウィンドウで対応する<td>要素を選択します。

2. 選択した表セルまたは要素を右クリックし、ポップアップ・メニューから「表」を選択します。

3. 次のいずれかを選択します。

- 表セルが選択されている行を削除する場合は、「行の削除」を選択します。

- 表セルが選択されている列を削除する場合は、「列の削除」を選択します。

ビジュアル・エディタで行または列を1つ以上選択するか、「構造」ウィンドウで対応する<tr>要素を選択し、次のいずれかの操作を行うこともできます。

- [Del]または[Back Space]を押します。

- メイン・メニューから「編集」→「削除」を選択します。表の最後の行を削除すると、表全体が削除されます。

18.3.4.10 表セルのマージ方法

表のセルをマージするには、右クリックしてポップアップ・メニューを使用します。

表セルをマージするには、次のようにします。

1. ビジュアル・エディタで表セルを選択するか、「構造」ウィンドウで対応する<td>要素を選択します。四角形を描くようにして、連続したセルを選択してください。

2. 選択した表セルまたは要素を右クリックし、ポップアップ・メニューから「表」を選択した後、「セルの結合」をクリックします。
または

メイン・メニューで、「設計」を選択し、「表」を選択し、「セルの結合」をクリックします。個々のセルのコンテンツがマージ後のセルに挿入されます。

18.3.4.11 表セルの分割方法

表のセルを分割するには、メイン・メニューで「設計」オプションを使用します。

表セルを分割するには、次のようにします。

1. ビジュアル・エディタで表セルを選択するか、「構造」ウィンドウで対応する<td>要素を選択します。

2. 選択した表セルまたは要素を右クリックし、ポップアップ・メニューから「表」を選択した後、「セルの分割」をクリックします。
または

メイン・メニューで、「設計」を選択し、「表」を選択し、「セルの分割」をクリックします。

3. 「セルの分割」ダイアログで、セルを行に分割するのか、列に分割するのかを選択し、行または列の数を入力します。

4. 「OK」をクリックします。

18.3.4.12 表構造における表示順序の変更方法

表構造を変更するには、いくつかのオプションから選択できます。

ビジュアル・エディタを使用して行、列または表セルのグループの表示順序を変更するには、次のようにします。

1. HTML表での順序を変更する行、列、または表セルのグループを選択します。四角形を描くようにして、連続したセルを選択してください。

2. 次のいずれかを実行して、行、列または表セルのグループを表の新しい位置にドラッグします。

- ターゲット行の上に挿入する場合、挿入する行またはセル・グループを上方向にドラッグして、上矢印付きの横線が表示された後でマウス・ボタンを放します。

- ターゲット行の下に挿入する場合、挿入する行またはセル・グループを下方向にドラッグして、下矢印付きの横線が表示された後でマウス・ボタンを放します。

- ターゲット列の前に挿入する場合、挿入する列またはセル・グループを左方向にドラッグして、左矢印付きの縦線が表示された後でマウス・ボタンを放します。

- ターゲット列の後に挿入する場合、挿入する列またはセル・グループを右方向にドラッグして、右矢印付きの縦線が表示された後でマウス・ボタンを放します。

18.3.4.13 「構造」ウィンドウを使用して行の表示順序を変更する方法

「構造」ウィンドウを使用して、行を目的の順序までドラッグします。

構造ウィンドウを使用して行の表示順序を変更するには、次のようにします。

1. 表での順序を変更する<tr>要素を選択します。四角形を描くようにして、連続したセルを選択してください。

2. 次のいずれかを実行して、行、列または表セルのグループを表の新しい位置にドラッグします。

- ターゲット行の上に挿入する場合、挿入する行を上方向にドラッグして、上矢印付きの横線が表示された後でマウス・ボタンを放します。

- ターゲット行の下に挿入する場合、挿入する行を下方向にドラッグして、下矢印付きの横線が表示された後でマウス・ボタンを放します。

18.3.4.14 表の行または列の範囲を拡大する方法

「構造」ウィンドウでポップアップ・メニューを選択して使用し、行または列の範囲を拡大します。

表の行または列の範囲を拡大するには、次のようにします。

1. ビジュアル・エディタで表セルを選択するか、構造ウィンドウで対応する<td>要素を選択します。

2. 「構造」ウィンドウでの要素。選択した表セルまたは要素を右クリックし、ポップアップ・メニューから「表」を選択します。

3. 次のいずれかを選択します。

- 選択したセルを1行分拡大するには、「行の高さを拡大」を選択します。

- 選択したセルを1列分拡大するには、「列の幅を拡大」を選択します。

18.3.4.15 表の行または列の範囲を縮小する方法

表の行または列の範囲を縮小するには、右クリックしてポップアップ・メニューを使用します。

表の行または列の範囲を縮小するには、次のようにします。

1. ビジュアル・エディタで表セルを選択するか、構造ウィンドウで対応する<td>要素を選択します。

2. 選択した表セルまたは要素を右クリックし、ポップアップ・メニューから「表」を選択します。

3. 次のいずれかを選択します。

- 選択したセルの範囲を1行分縮小するには、「行の高さを縮小」を選択します。

- 選択したセルの範囲を1列分縮小するには、「列の幅を縮小」を選択します。

18.3.5 HTMLフォームの使用

Webページのユーザーと対話したり、Webページのユーザーから情報を収集するには、HTMLページでHTMLフォームを使用します。フォームの構成要素は次のとおりです。

- フォーム・タグ: フォーム処理情報を含んでいます。

- フォーム・フィールド: テキスト・フィールド、メニュー、チェックボックス、ラジオ・ボタンなどがあります。

- 送信ボタン: フォーム処理エージェントにデータを送信します。

HTMLページを使用しているときに、コンポーネント・フォーム・ウィンドウからHTMLフォーム・タグをHTMLページにドラッグすると、そのタグをページに挿入できます。図18-21に、「コンポーネント」ウィンドウで使用可能なフォーム・タグを示します。

図18-21 フォーム用のコンポーネント・パレット

18.3.5.1 HTMLフォームの作成方法

「コンポーネント」ウィンドウからFormコンポーネントをHTMLページにドラッグして、フォーム要素を作成します。

新しいHTMLフォームを作成するには、次のようにします。

ファイルを開き、次のいずれかを実行します。

- ビジュアル・エディタまたは「構造ウィンドウ」で、フォームの表示位置となる挿入ポイントを選択し、「コンポーネント」ウィンドウで「フォーム」をクリックします。

- Form要素を「コンポーネント」ウィンドウから挿入ポイントまでドラッグします。スケルトン・フォームを作成するHTMLコードが挿入されます。エディタでは、フォームは点線のアウトラインとして表示されます。

スケルトン・フォームを作成したら、フォームのフィールドとボタンを追加し、フォーム処理情報を指定します。デフォルトでは、フォームの作成時にGetフォーム処理属性が指定されます。

「コンポーネント」ウィンドウのフォーム・フィールドまたはボタンがページに追加されると、<form>要素が親要素として自動的に挿入されます。

18.3.5.2 HTMLのフォーム要素の削除方法

フォーム要素を削除するには、通常の[Delete]または[Backspace]を使用します。

フォーム要素を削除するには、次のようにします。

ビジュアル・エディタでフォームを選択するか、構造ウィンドウで対応する<form>要素を選択し、次のいずれかの操作を行います。

- [Del]または[Back Space]を押します。

- メイン・メニューから「編集」→「削除」を選択します。フォームとフォーム内のすべてのフォーム・フィールドおよびボタンが削除されます。フォームのフィールドやボタンを削除せずにフォーム要素を削除するには、フォームを右クリックして、「フォーム」→「フォーム・タグの削除」を選択します。

18.3.5.3 HTMLのフォーム・フィールドまたはボタンの挿入方法

フォーム・フィールドまたはボタンをページに挿入するには、「コンポーネント」ウィンドウを使用します。

フォーム・フィールドまたはボタンを挿入するには、次のようにします。

1. ビジュアル・エディタでファイルを開いておき、次のいずれかの操作を行います。

- ビジュアル・エディタまたは「構造」ウィンドウで、フィールドまたはボタンの表示位置となる挿入ポイントを選択し、「コンポーネント」ウィンドウで目的の要素をクリックします。

- 「コンポーネント」ウィンドウから、フォーム上または「構造」ウィンドウ内の目的の挿入ポイントまで、フォーム・フィールドまたはボタン要素をドラッグします。先にフォームを作成せずにフォーム・フィールドまたはボタンを挿入しようとした場合、「このコンポーネントの周囲のフォーム要素を追加しますか。」というメッセージが表示されます。フィールドまたはボタンのフォーム・タグを自動的に作成するには、「はい」を選択します。表示を再開するには、メイン・メニューから「ツール」→「プリファレンス」→「JSP/HTMLビジュアル・エディタ」を選択し、「フォーム要素追加のプロンプト」を選択します。

2. フォーム・フィールドまたはボタンに必須属性が指定されている場合、表示されたエディタ・ダイアログを使用してプロパティ値を設定します。

18.3.5.4 ポップアップ・メニューからのフォーム・メソッドの変更方法

フォームでメソッドを変更するには、右クリックして「フォーム」選択項目を使用します。

コンテキスト・メニューからフォーム・メソッドを変更するには、次のようにします。

1. ビジュアル・エディタでフォームを右クリックするか、「構造」ウィンドウで対応する<form>要素を右クリックし、「フォーム」→「メソッド」を選択します。

2. サブメニューで、「POST」または「GET」を選択してフォーム・メソッドを変更します。

18.3.5.5 「プロパティ」ウィンドウを使用したフォーム処理情報の設定方法

1. ビジュアル・エディタでフォームを選択するか、構造ウィンドウで対応する<form>要素を選択します。選択した要素のプロパティ値が「プロパティ」ウィンドウに表示されます。「プロパティ」ウィンドウが表示されていない場合は、「ウィンドウ」→「プロパティ」ウィンドウを選択するか、ショートカット・キー[Ctrl]と[Shift]を押しながら[I]を押します。

2. 設定するプロパティが表示されるまでスクロールし、マウスまたは矢印キーでそれを選択します。「プロパティ」ウィンドウの下部にプロパティの簡単な説明が表示されます。

3. 右側の列に、次のいずれかの方法でプロパティ値を入力します。

- テキスト・フィールドにプロパティの文字列値を入力し、[Enter]を押します。

- 値フィールド内をクリックし、表示されたリストから値を選択します。

- 値フィールドをクリックし、省略記号ボタンを表示します。省略記号をクリックし、該当するプロパティのエディタを表示します。プロパティ・エディタで値を設定し、「OK」をクリックします。

18.3.5.6 フォーム・フィールドまたはボタンの削除方法

メイン・メニューまたはキーボードを使用して、フィールドまたはボタンを削除します。

フォーム・フィールドまたはボタンを削除するには、次のいずれかの操作を行います。

- 要素を選択して、[Delete]または[Backspace]を押します。

- 要素を選択して、メイン・メニューから「編集」→「切取り」を選択します。

「プロパティ」ウィンドウを使用してフォーム処理情報を設定する手順は次のとおりです。

1. ビジュアル・エディタでフォームを選択するか、構造ウィンドウで対応する<form>要素を選択します。選択した要素のプロパティ値が「プロパティ」ウィンドウに表示されます。「プロパティ」ウィンドウが表示されていない場合は、「ウィンドウ」→「プロパティ」ウィンドウを選択するか、ショートカット・キー[Ctrl]と[Shift]を押しながら[I]を押します。

2. 設定するプロパティが表示されるまでスクロールし、マウスまたは矢印キーでそれを選択します。「プロパティ」ウィンドウの下部にプロパティの簡単な説明が表示されます。

3. 右側の列に、次のいずれかの方法でプロパティ値を入力します。

- テキスト・フィールドにプロパティの文字列値を入力し、[Enter]を押します。

- 値フィールド内をクリックし、表示されたリストから値を選択します。

- 値フィールドをクリックし、省略記号ボタンを表示します。省略記号をクリックし、該当するプロパティのエディタを表示します。プロパティ・エディタで値を設定し、「OK」をクリックします。

ヒント:

長いリストの中からプロパティを素早く見つけるには、「プロパティ」ウィンドウのツールバーにある検索ボタンをクリックします。「検索」テキスト・フィールドにプロパティ名を入力し、[Enter]を押します。

18.3.6 Cascading Style Sheetの使用

Webページのスタイルとレイアウトを管理するには、Cascading Style Sheet(現在の標準はCSS2リビジョン1であり、CSS3もサポートしています)を使用します。CSSにより、HTMLタグの書式属性、クラス属性によって識別されるテキストの範囲、Cascading Style Sheet (CSS2)仕様に準拠した基準を満たすテキストなどが定義されます。

CSS2 R1の詳細は、W3CのWebサイト(http://www.w3.org/TR/1998/REC-CSS2/)を参照してください。

CSS3の詳細は、W3CのWebサイト(http://www.w3.org/Style/CSS/current-work.en.html)を参照してください。

CSSファイルの作成と編集に役立つ様々なCSS機能が用意されています。表18-17に、CSSソース機能をリストします。

表18-17 CSSソース編集機能

機能

説明

CSSのコード・インサイト

カーソルの下にあるCSSファイルに対して適切な補完を選択するために、HTMLセレクタ、プロパティ、値、擬似クラスおよび擬似要素のリストを表示します。たとえば、スタイル・ルールの開きカッコの後ろにカーソルを置くと、ファイル内のその場所に入力できるすべてのプロパティのリストが表示されます。

CSSの再フォーマット

そのCSSページ上のコードを正しく再フォーマットします。CSSエディタで、または「アプリケーション」ウィンドウでファイルを右クリックして、「再フォーマット」を選択します。

CSSエラー処理

無効なCSSプロパティ、値および欠落しているセミコロンやカッコを強調表示します。

HTMLファイルに対するスタイルシートのリンク

スタイルシートをHTMLファイルにリンクするには、HTMLページにLink要素をドロップするだけです。

もう1つのオプションでは、「コンポーネント」ウィンドウで「CSS」を選択します。使用可能なCSSファイルのリストが「コンポーネント」ウィンドウに表示されます。「コンポーネント」ウィンドウから任意のCSSファイルをページにドラッグ・アンド・ドロップできます。

スタイルのプレビュー

コーディング中にスタイルの外観を確認できます。

コード・カラー

プロパティ、値、キーワードを容易に特定するのに役立ちます。

CSSのリファクタ

CSSファイル、クラスおよびID属性の名前を変更する場合やファイルを移動、コピーおよび安全に削除する際にアプリケーション全体にわたってリファクタします。

CSSコード・エディタでのカッコの一致

コード・エディタでカーソルの位置に基づいて一致する中カッコ、大カッコおよび小カッコをハイライト表示します。

行コメントの設定

選択したブロックの各行の先頭にあるコメント・マーカーを追加または削除します。単一行を選択してこの行のみをコメント化または非コメント化します。

ADFスキン・エディタ

ADFスキンの作成と変更を行います。ADFスキンは、ADFアプリケーションに適用されるCSSファイルのタイプです。

リンクのドラッグ・アンド・ドロップ

CSSファイルをHTMLページまたはJSPページにリンクします。

クイック・ドキュメント

W3C標準から説明を開きます。

18.3.6.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

IDは、1つのHTML要素に固有のスタイルを表します。たとえば、p#para1 {color:green;}はid value="para1が指定されたp要素、*#ver905 {background-color:red;}はid value="ver905"が指定された最初のHTML要素を意味します。

18.3.6.2 グループ化した要素の使用

「構造」ウィンドウのツールバーの「カテゴリ」ドロップダウン・リストを使用すると、図18-22に示すように、CSSセレクタをカテゴリ別に表示できます。

図18-22 ソート・オプションのCSSセレクタ

3つのグループ・タイプの中から選択できます。

カテゴリなし

「カテゴリなし」を選択した場合、「構造」ウィンドウでの表示順序は、CSSファイルに現れる順序になります。これは、デフォルト設定です。

タイプ・カテゴリ

「タイプ・カテゴリ」を選択すると、「構造」ウィンドウでの表示は、要素、クラス、またはIDのCSSセレクタ・タイプ別に配列されます。

要素カテゴリ

「要素カテゴリ」を選択すると、「構造」ウィンドウでの表示は、HTMLの要素またはタグ別に配列されます。

「構造」ウィンドウでCSSセレクタを選択すると、そのセレクタが表示ウィンドウ内で強調表示され、関連するプロパティおよび値が「プロパティ」ウィンドウで編集可能になります。

「構造」ウィンドウでセレクタ・カテゴリを分離またはグループ化解除するには、「グループ化したセレクタの分離」アイコンを選択します。

CSSファイル内で選択した要素をコメント・アウトするには、要素グループを選択し、右クリックして「コメント・アウト」を選択します。

18.3.6.3 単純なCascading Style Sheetを作成する方法

単純なCSSページを作成するには、「新規ギャラリ」を使用します。

単純なCascading Style Sheetを作成するには、次のようにします。

1. 「アプリケーション」ウィンドウで、プロジェクトを選択します。

2. 「ファイル」→「新規」→「ギャラリから」→「HTML」→「CSSファイル」を選択します。

3. 「ディレクトリ名」フィールドは変更せず、Webアプリケーション・ファイルが存在しているディレクトリに作業内容を保存します。

4. 「ファイル名」フィールドに、生成するファイルの名前を入力し、「OK」をクリックします。単純なCSSファイルが生成され、「Webコンテンツ」の下にあるアクティブ・プロジェクトの中の「CSS」フォルダに表示されます。

18.3.6.4 CSSセレクタのプロパティと値を設定または変更する方法

CSSのプロパティと値を設定するには、「プロパティ」ウィンドウを使用します。

CSSセレクタのプロパティと値を設定または変更するには、次のようにします。

1. CSSファイルの「構造」ウィンドウで、プロパティを設定するCSSセレクタの要素、クラスまたはIDを選択します。

2. 「プロパティ」ウィンドウで、プロパティが表示されるようになるまでスクロールします。長いリストの中からプロパティを素早く見つけるには、「プロパティ」ウィンドウのツールバーにある検索ボタンをクリックします。「検索」テキスト・フィールドにプロパティ名を入力し、[Enter]を押します。右側の列に、次のいずれかの方法でプロパティ値を入力します。

- プロパティの文字列値をテキスト・フィールドに入力し、[Enter]を押します。

- 値フィールドのボタンをクリックし、表示されたリストから値を選択します。

- 値フィールドをクリックし、省略記号ボタンを表示します。省略記号をクリックし、該当するプロパティのエディタを表示します。プロパティ・エディタで値を設定し、「OK」をクリックします。セレクタの値が変更され、このCSSファイルにリンクされているページにスタイルの変更が反映されます。

- テキスト・フィールドにプロパティの文字列値を入力し、[Enter]を押します。

18.3.6.5 CSSプロパティによるテキストの書式設定方法

CSSを使用すると、ページ内で、または複数のWebページにわたって、テキストとページの書式を自動的に更新することもできます。CSSスタイルでは、クラスの全テキストに対する書式を定義したり、h2など特定のタグの書式を再定義します。

CSSスタイルと手動またはオンラインのHTML書式を同じページ内で使用できます。手動のHTML書式は、CSSスタイルを使用して適用した書式より優先されます。

CSSのテキスト・プロパティを書式設定する手順は次のとおりです。

1. 書式設定するテキストを選択します。

2. テキスト・プロパティを設定するには、「プロパティ」ウィンドウの「フォント」フィールドを使用します。

18..3.6.6 CSSファイルの編集方法

CSSプロパティを設定および変更するには、CSSソース・エディタを使用します。

ソース・エディタでCSSファイルを編集するには、次のようにします。

1. 「アプリケーション」ウィンドウでCSSファイルをダブルクリックして、デフォルトのソース・エディタのウィンドウで開きます。

2. 定義するCSSセレクタ(HTML要素、クラスまたはID)を入力します。

3. 左中カッコ({)を入力し、[Ctrl]を押しながら[Space]を押し(デフォルトのキーマッピングを使用している場合)、コード・インサイトを起動します。

4. 有効なプロパティのリストにあるプロパティ名をダブルクリックします。選択したプロパティがファイルに挿入され、その後にコロンとスペースが入力されます。たとえば、{background-color:となります。
挿入したプロパティの値を入力するには、[Ctrl]を押しながら[Space]を押して、有効な値のリストを開き、挿入する値をダブルクリックします。選択した値が挿入され、その後にセミコロンが入力されます。たとえば、body {text: blue;となります。

必要に応じて他のプロパティと値を追加します。プロパティ値と次のプロパティは必ずセミコロンで区切ってください。たとえば、p {text-align:center; color:red;となります。

5. プロパティと値をすべて追加したら、右中カッコ(})を入力します。

注意:

編集中に発生したCSS構文エラーはすべて構造ウィンドウに表示されます。

「構造」ウィンドウで、エラーまたは要素をダブルクリックして編集します。

18.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)開発用の完全なユーザー・インタフェース開発環境が用意されています。

18.4.1 JSPアプリケーションのビルド

JDeveloperに用意されている機能を使用してアプリケーションを最初から構築できます。最初に、Webページ用のフレームワークまたはアプリケーション・テンプレートをビルドする必要があります。アプリケーション・プロジェクト・テンプレートの使用から開始します。「新規ギャラリ」の一連のオプション中から選択します。

18.4.1.1 JSPコア・コンポーネント

JDeveloperには、図18-23および表18-18に示すように、JSPページに簡単にドラッグ・アンド・ドロップできる標準JSPコンポーネントを備えた「コンポーネント」ウィンドウが用意されています。

図18-23 JSPコア・コンポーネントのウィンドウ

表18-18 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を検索またはインスタンス化します。

18.4.1.2 JSPページの作成方法

「新規ギャラリ」ウィザードでは、アプリケーションのWebページを構築するために必要なすべてのステップが段階的に説明されます。

新規JSPページを作成するには、次のようにします。

1. 「アプリケーション」ウィンドウで、新規JSPを作成するプロジェクトを選択します。

2. 「ファイル」→「新規」を選択し、「新規ギャラリ」を開きます。

3. 「カテゴリ」ツリーで「Web層」を開き、「JSP」を選択します。単純なJSPが生成され、アクティブなプロジェクトに表示されます。デプロイメント・ディスクリプタ・ファイルweb.xmlもプロジェクトに追加されます。デプロイメント・ディスクリプタ・ファイルは、JSPの実行時に統合WebLogic Serverで使用されます。

18.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サーバーで使用されます。

18.4.2 JSPでのフロー制御の理解

Webアプリケーションは、特定のユーザー・アクションへのレスポンスとしてWebブラウザの表示コンテンツをフォワードすることにより、フロー制御を実装します。一般に、ワークフローのタスク別にJSPページ、またはJSPページのセットを作成すると効果的です。ユーザーは、1つのページで選択を行い、リンクをクリックして選択内容をリクエスト・オブジェクトで送信します。クリックされたリンクは、アクションの処理を担当するページにリクエスト・オブジェクトをフォワードします。

JDeveloperでは、次のフロー制御のアプローチをサポートしています。

- オール・イン・ワンの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コンポーネントにバインドします。

18.4.2.1 JSPフロー制御の処理方法

アプリケーションでリクエスト・オブジェクトが処理される方法を定義します。JDeveloperは、JSPページのフロー制御を実装するための様々なオプションをサポートしています。

- HTML生成コードとJavaスクリプトレット・コードを組み合せて使用し、自身にリンクしてアクションを処理するJSPページを作成できます。この場合は、アクション処理コード全体が、コンテンツの表示も行うJSPページに含まれます。そのため、HTMLとフロー制御ロジックが同じファイル内に混在します。
または

- JSPページの外部でコントローラを実装することにより、JSPページとそのアクションを明確に区別できます。

18.4.3 JSPのデバッグおよびデプロイ

JDeveloperは、Webアプリケーション・アーカイブ(WAR)の作成による、任意のJava EEアプリケーション・サーバーへのWebアプリケーションのデプロイをサポートします。統合WebLogic Serverへのデプロイに対する別のサポートもあります。

18.4.3.1 JSPのデバッグ方法

JSPページをデバッグするには、何回かクリックします。

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

18.4.3.2 Webデプロイメント・ディスクリプタの作成方法

Webデプロイメント・ディスクリプタを作成するいくつかの方法があります。「新規ギャラリ」を使用するか、JSPページを追加できます。新しいデプロイメント・ディスクリプタがプロジェクトのWEB-INFフォルダに追加され、XMLエディタのウィンドウで開きます。

Webデプロイメント・ディスクリプタを作成するには、次のようにします。

1. 「アプリケーション」ウィンドウで、Webデプロイメント・ディスクリプタを作成するプロジェクトを選択します。

2. プロジェクトにJSPファイルを追加します。JSPファイルがはじめて作成されると、web.xmlファイルがWEB-INFプロジェクト・フォルダに追加されます。
また、Webデプロイメント・ディスクリプタ・ファイルを自分で追加するには、次のようにします。

「新規ギャラリ」の「カテゴリ」ツリーで、「General」を開き、「デプロイメント・プロファイル」を選択します。「項目」リストで、web.xml (Webデプロイメント・ディスクリプタ)を選択します。「OK」をクリックします。目的の項目が有効でない場合、プロジェクトにWebデプロイメント・ディスクリプタがまだないことを確認します。1つのプロジェクトに使用できるディスクリプタのインスタンスは1つのみです。

18.4.3.3 Webデプロイメント・ディスクリプタのプロパティの編集方法

プロパティのダイアログを右クリックして開き、ディスクリプタ・プロパティを編集します。

Webデプロイメント・ディスクリプタのプロパティを編集する手順は次のとおりです。

1. 「アプリケーション」ウィンドウで、WEB-INFフォルダにあるWebデプロイメント・ディスクリプタを選択します。

2. 右クリックして「プロパティ」を選択します。

3. 左ペインで項目を選択すると、右ペインにダイアログのページが表示されます。ダイアログのページでプロパティ値を設定して、ディスクリプタを構成します。終了したら「OK」をクリックします。

18.4.3.4 Webデプロイメント・ディスクリプタをXMLファイルとして編集する方法

ディスクリプタ・ファイルはXML形式でWEB-INFフォルダに保存されています。このファイルは、XMLソース・エディタで、または概要エディタで開くことができます。

Webデプロイメント・ディスクリプタをXMLファイルとして編集するには、次のようにします。

1. 「アプリケーション」ウィンドウで、WEB-INFフォルダにあるWebデプロイメント・ディスクリプタを選択します。

2. 右クリックして「開く」を選択します。XMLエディタにファイルが開きます。

18.4.4 JSPの実行

統合WebLogic Serverによって、JDeveloperでのJSPの実行が処理されます。JSPページは、ページからすぐに実行できます。

18.4.4.1 JSPの実行方法

JSPをビルドした後、何回かクリックして実行できます。また、JSPは実行中であっても編集可能です。

JSPを実行するには、次のようにします。

1. 「アプリケーション」ウィンドウで、実行するJSPファイルを選択します。

2. 次のいずれかの方法でJSPを実行します。

- メイン・メニューから「実行」→「<source_file>.jspの実行」を選択します。

- JSPファイルを右クリックし、ポップアップ・メニューから「実行」を選択します。
JSPが起動します。

3. サーバーが作成されていないときにドメインを初めて実行または開始する場合、「デフォルト・ドメインの構成」ダイアログが表示されます。新規パスワードを入力します。

JSPを実行すると、次のような処理が自動的に行われます。

- JSPはサーブレットに変換され、コンパイルされます。

- 結果として生成されたクラスが出力プロジェクト・ディレクトリから直接実行されます。

- web.xmlファイルは、サーブレット名とクラス情報を含めるように編集されます。

- JSPは、デフォルトのWebブラウザで起動します。ブラウザは次のフォーマットを使用して起動します。
http://<your_machine_IP_address>:<http_port>/<context_root>/<path_to_JSP>。例を次に示します。

http://127.0.0.1:8988/Project1-context-root/untitled1.jsp

18.4.4.2 実行中のJSPファイルの動的変更

JSPファイルは、WebLogic Serverを再起動しなくても、実行中に変更を加えて、その変更を表示できます。ブラウザで変更内容を表示する場合、ブラウザからページをリロードするか、ページを再実行することが可能です。

18.4.4.3 ADFビジネス・コンポーネント・アプリケーション・モジュールを使用したJSPの実行

統合WebLogic Serverとリモート・サーバー・インスタンスの両方でビジネス・コンポーネント・アプリケーション・モジュールを使用してJSPを実行しており、同じ中間層プロジェクトに依存する2つの異なるプロジェクトに2つのJSPが含まれている場合、jbo.server.in_wls=trueプロパティを指定して、中間層がWebLogic Serverインスタンスの内部で動作していることを宣言する必要があります。

18.4.4.4 ソースJSPでのタイムスタンプの使用

JSPの開発、コンパイルおよび実行時に、ソースJSPのタイムスタンプが以前のタイムスタンプに変更されると、JSPはJDeveloperまたはWebLogic Serverによって自動的に再コンパイルされなくなります。この場合、強制的に再コンパイルする必要があります。強制的に再コンパイルするには、JSPを右クリックし、「再ビルド」を選択し、「ビルド」→「再ビルド」、「ビルド」→「すべて再ビルド」、「ビルド」→「クリーン」または「ビルド」→「すべてクリーン」を使用します。

ソース・コントロール・システムを使用(旧バージョンをリストア)する場合、またはxcopyやmvなどのコピー・コマンドを保持するタイムスタンプを使用する場合、タイムスタンプは過去にさかのぼる場合があります。

18.4.5 JSPセグメントの理解

JSPフラグメントとは、別のJSPページに組み込むことができるJSPページのことです。

JSPフラグメントは、ファイル名拡張子として.jspfを使用します。デフォルトでは、「JSPフラグメント」ファイルはその他の静的コンテンツとともに「Webアプリケーション」フォルダに配置されます。完全なページではないJSPセグメントは常に、.jspf拡張子を使用する必要があります。

JSPセグメントは、JSP構文を使用して、SimpleTagハンドラを起動するためのタグの本体として、またはフラグメントとして宣言される属性の値を指定する<jsp:attribute>標準アクションの本体として定義します。またはTLD内のJspFragment型になるように定義します。

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

サーブレットはプラットフォームに依存しないサーバー側のJavaコンポーネントで、これを使用してWebサーバーの機能を拡張できます。サーブレットを使用すると、コンテンツ、機能およびWebページのルック・アンド・フィールを動的にカスタマイズできます。サーブレットでは、クライアント・リクエストが処理され、イメージ、XMLおよびHTMLなどのMIMEタイプがリクエスト元のクライアントに返されます。サーブレットはWebサーバー内で稼働するため、グラフィカル・ユーザー・インタフェースを必要としません。サーブレットは通常、HTMLコンテンツを動的に生成したり、その内容をリクエスト元のクライアントに表示する際に使用されます。サーブレットは、サーバー側のアプレットと考えられます。

サーブレットは、JavaSoftで定義された標準APIとプロトコルに基づいています。サーブレットを実行するにはユーザー環境に、Oracle WebLogic Server、JavaソフトウェアのJava ServerやApache Tomcatなど、JavaSoftサーブレットAPIをサポートするWebサーバーが必要です。JDeveloperでは、サーブレット・フィルタとサーブレット・リスナー、注釈およびデプロイメント・ディスクリプタ、プラガビリティと拡張性に関するWebフラグメント、および非同期サポート(Servlet API 3.0)に対応しています。サーブレット・フィルタ作成ウィザードおよびサーブレット・リスナー作成ウィザードを使用すると、web.xmlがフィルタおよびリスナーのエントリで更新されます。web.xmlは、これらのエントリを含めるため、または変更するために手動で編集することもできます。

詳細は、『Oracle WebLogic Server Webアプリケーション、サーブレット、JSPの開発』を参照してください。

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

サーブレットは、クライアントから送信されたHTTPリクエストを処理し、クライアントにデータベース問合せの結果を返すことにより、動的コンテンツを提供する際に使用されます。この種のJavaサーブレットは、HTTPサーブレットとして知られています。HTTPサーブレットの一般的な実行時のシナリオを次に示します。

- クライアントがサーブレットにHTTPリクエストを送信します。クライアントは、Webブラウザまたは、その他のアプリケーションでもかまいません。

- サーブレットによりリクエストが処理され、レスポンスとしてクライアントにデータが返されます。HTMLサーブレットの場合、クライアントには動的HTMLコンテンツが生成され、返されます。サーブレットをこのように設計した場合、クライアントにかわってデータベース・サーバーのデータをリクエストし、結果をパッケージ化し、HTML形式でクライアントに返します。このような操作は、JDBCまたはOracle ADF Business Componentsを使用することにより実行できます。

- クライアント・ユーザーは、生成されたHTMLコンテンツを対話形式で表示して応答し、生成されたHTMLフォームを介してさらに別のリクエストを行うことができます。

18.5.1.1 サーブレット・フィルタに関する必知事項

フィルタは、HTTPリクエスト、レスポンスおよびヘッダー情報の内容を変換できる再利用可能なコード部分です。フィルタは、通常はレスポンスを作成しません。かわりに、フィルタを使用してリクエストやレスポンスを変更するか、リクエストやレスポンスに基づく次のようなその他の処理を実行します。

- サーブレットをコールする前にリクエストを検証します。

- 実際のリクエスト・オブジェクトまたはレスポンス・オブジェクトをラップするカスタム・バージョンのオブジェクトを提供することにより、リクエストまたはレスポンスのヘッダーまたはデータ(あるいはその両方)を変更します。

- サーブレットが起動する前、サーブレットの完了後、またはその両方の時点で(たとえば、ロギングなどの)処理を実行します。

- サーブレットがコールされた後にサーブレットを捕捉します。

- サーブレットのコールをブロックします。

デフォルトでは、「新規ギャラリ」の「Web Tier」「Servlets」カテゴリから使用できるサーブレット・フィルタ作成ウィザードによりフィルタが作成されます。このフィルタは、リクエストおよびレスポンスを動的に捕捉し、リクエストまたはレスポンスに含まれている情報を変換または使用します。

18.5.1.2 サーブレット・リスナーに関する必知事項

リスナーを使用し、ライフ・サイクル・イベントの発生時にメソッドがコールされるリスナー・オブジェクトを定義することにより、サーブレットのライフ・サイクルでイベントを監視し、そのイベントに対応できます。アプリケーション・イベント・リスナーは、1つ以上のサーブレット・イベント・リスナー・インタフェースを実装するクラスです。サーブレット・イベント・リスナーは、具体的にはServletContextオブジェクトおよびHttpSesionオブジェクトの状態変更の通知をサポートします。

- サーブレット・コンテキスト・リスナーは、アプリケーションのVMレベルで保持されるリソースまたは状態の管理に使用されます。

- HTTPセッション・リスナーは、同じクライアントまたはユーザーからWebアプリケーションに対して行われる一連のリクエストに関連付けられている状態またはリソースの管理に使用されます。

各イベント・タイプをリスニングする複数のリスナー・クラスを使用し、コンテナが各イベント・タイプのリスナーBeanを起動する順序を指定できます。

「新規ギャラリ」の「Web層」→「サーブレット」カテゴリから使用できる「サーブレット・リスナーの作成」ウィザードでは、サーブレットまたはその他のWebコンポーネントで使用できる新規リスナーを作成します。追加のリスナーを作成するには、このウィザードを複数回実行します。

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

1. 「アプリケーション」ウィンドウで、WEB-INFフォルダにあるWebデプロイメント・ディスクリプタを選択します。

2. 右クリックして「開く」を選択します。XMLエディタにファイルが開きます。

1. 「アプリケーション」ウィンドウで、新規サーブレットを作成するためのプロジェクトを選択します。

2. メイン・メニューから、「ファイル」→「新規」→「ギャラリから」→「Web層」→「サーブレット」を選択するか、右クリックして「新規」を選択します。新規ギャラリが表示されます。

3. 「項目」リストで「HTTPサーブレット」をダブルクリックし、「HTTPサーブレット作成」ウィザードを開きます。

このウィザードでは、サーブレットのメソッドおよびパラメータを含む、ユーザーが指定した情報に基づいてサーブレットを作成します。「ヘルプ」ボタンをクリックすると、ウィザード・パネルに状況依存ヘルプが表示されます。

単純なサーブレットが生成され、アクティブ・プロジェクトに表示されます。デプロイメント・ディスクリプタ・ファイルweb.xmlもプロジェクトに追加されます。デプロイメント・ディスクリプタ・ファイルは、サーブレットの実行時にJDeveloperの統合WebLogic Serverで使用されます。

デプロイメント・ディスクリプタ・ファイルは、サーブレット上で作成した注釈よりも優先されます。たとえば、@Servletなどの注釈を付けたクラスを作成できますが、デプロイメント・ディスクリプタ・ファイルは、値が異なる場合にはその注釈をオーバーライドします。注釈とデプロイメント・ディスクリプタ・ファイルでの宣言との間に相違がある場合は、必ず調整してください。

18.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メソッドをコールし、プログラムによって取得することもできます。

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

基本的なサーブレット・メソッドの1番目のHTTP引数は、HttpServletRequestオブジェクトです。このオブジェクトにより、次の要素にアクセスするためのメソッドが提供されます。

- リクエスト内のCookieを含むHTTPヘッダー・データ。

- リクエストの作成に使用されるHTTPメソッド。

- リクエストの一部としてクライアントから送信される引数。

サーブレット・メソッドを実装する際にコールするメソッドは、サーブレットが受信するHTTPリクエストの種類によって異なります。表18-19は、考えられるHTTPリクエストの種類と、それに対応するメソッドでサーブレット・メソッドを実装する際に使用されるものとの関係をまとめたものです。

表18-19 HTTPリクエストのタイプ

考えられるクライアントHTTPリクエスト

サーブレット・コードで使用する、対応するクライアント・データ・アクセス・メソッドおよび手法

任意のHTTPリクエスト

指定したパラメータの値を取得するには、getParameterメソッドを使用します。パラメータ名を取得するには、getParameterNamesメソッドを使用します。リクエストを手動で解析することもできます。getParameterメソッド、またはデータを自分で解析できるメソッドの1つを使用します。単純なリクエストでは、これらを一緒に使用できません。リクエストからCookieを取り出すには、getCookiesメソッドを使用します。

HTTPのGETリクエスト

解析対象となるStringを返すには、getQueryStringメソッドを使用します。

HTTPのPOST、PUTおよびDELETEリクエスト

一般に、テキスト・データの場合はgetReaderメソッドから返されるBufferedReaderを使用します。バイナリ・データの場合は、getInputStreamメソッドから返されるServletInputStreamを使用します。

18.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();
}
}

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

「新規ギャラリ」の「Web層」→「サーブレット」カテゴリから使用できるサーブレット・フィルタの作成ウィザードは、サーブレットまたはJavaServer Pagesとの間のリクエストやレスポンスの処理に使用できる新規フィルタを作成します。

サーブレット・フィルタを作成するには、次のようにします。

1. 「アプリケーション」ウィンドウで、新規サーブレット・リスナーを作成するプロジェクトを選択します。通常、これはサーブレットまたはJSPを含むプロジェクトです。

2. 「ファイル」→「新規」→「ギャラリから」→「Web層」→「サーブレット」を選択します。

3. 「項目」リストで「サーブレット・フィルタ」をダブルクリックし、サーブレット・フィルタの作成ウィザードを開きます。

「サーブレット・フィルタの作成」ウィザードによって、実装クラスや初期化パラメータなどの指定した情報に基づいてサーブレット・フィルタが作成されます。

新規サーブレット・フィルタに関してサーブレットの詳細を入力する際、サーブレットの登録手段を選択できるオプションがあります。サーブレット・エントリを構成ファイルに追加するか、「注釈」を選択してソース・コードで注釈を作成できます。

新規サーブレット・フィルタが生成され、アクティブ・プロジェクトに表示されます。デプロイメント・ディスクリプタ・ファイルweb.xmlが、<filter>要素で更新されます。デプロイメント・ディスクリプタ・ファイルは、サーブレットまたはJSPの実行時にJDeveloperの統合WebLogic Serverで使用されます。

また、注釈@ServletFilterを使用してフィルタ・クラスを宣言することもできます。

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

「新規ギャラリ」の「Web層 - サーブレット」カテゴリから使用できるサーブレット・リスナー作成ウィザードは、サーブレットまたはその他のWebコンポーネントで使用できる新規リスナーを作成します。

サーブレット・リスナーを作成するには、次のようにします。

1. 「アプリケーション」ウィンドウで、新規サーブレット・リスナーを作成するプロジェクトを選択します。通常、これはサーブレットまたはその他のWebコンポーネントを含むプロジェクトです。

2. 「ファイル」→「新規」→「ギャラリから」→「Web層」→「サーブレット」を選択します。

3. 「項目」リストで「サーブレット・リスナー」をダブルクリックし、「サーブレット・リスナーの作成」ウィザードを開きます。

新規サーブレット・リスナーが生成され、アクティブ・プロジェクトに表示されます。デプロイメント・ディスクリプタ・ファイルweb.xmlが、<listener>要素で更新されます。デプロイメント・ディスクリプタ・ファイルは、サーブレットの実行時にJDeveloperの統合WebLogic Serverで使用されます。

サーブレット・リスナー作成ウィザードは、実装クラスやインタフェースなどの指定した情報に基づいてサーブレット・リスナーを作成します。

新規サーブレット・フィルタに関してサーブレットの詳細を入力する際、サーブレットの登録手段を選択できるオプションがあります。サーブレット・エントリを構成ファイルに追加するか、「注釈」を選択してソース・コードで注釈を作成できます。

クラス定義に追加された注釈@ServletContextListenerは、サーブレット・リスナーのクラスの宣言にも使用できます。

@ServletContextListener

public class MyListener {

public void contextInitialized (ServletContextEvent sce) {

}

.....

}

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

「新規ギャラリ」の「Web Tier」カテゴリから使用できるサーブレット・フィルタ作成ウィザードは、JavaServer Pagesとの間のリクエストやレスポンスの処理に使用できる新規フィルタを作成します。

JSPページにサーブレット・フィルタを登録するには、次のようにします。

1. 「アプリケーション」ウィンドウで、新規サーブレット・リスナーを作成するプロジェクトを選択します。通常、これはJSPをインクルードするプロジェクトです。

2. 「ファイル」→「新規」を選択して「新規ギャラリ」を開きます。

3. 「カテゴリ」ツリーで「Web層」を開き、「サーブレット」を選択します。

4. 「項目」リストで「サーブレット・フィルタ」をダブルクリックし、サーブレット・フィルタの作成ウィザードを開きます。
これにより、実装クラスや初期化パラメータなどの指定した情報に基づいてサーブレット・フィルタを作成するサーブレット・フィルタ作成ウィザードが起動します。[F1]を押すか「ヘルプ」をクリックすると、ウィザード・パネルに状況依存ヘルプが表示されます。

5. 「ようこそ」ページが表示されたら、「次へ」をクリックします。

6. サーブレット情報を入力して、「次へ」をクリックします。

7. 「サーブレットまたはJSPにマップ」を選択し、ドロップダウン・リストからJSPの名前を選択します。「次へ」をクリックします。
あるいは、「URLパターンにマップ」を選択し、フィルタのマップ先のURLパターンを選択して、サーブレットまたは静的コンテンツのグループに関連付けます。

8. 「新規」をクリックし、各初期化パラメータの名前と値を入力します。次に、「終了」をクリックします。

新規サーブレット・フィルタが生成され、アクティブ・プロジェクトに表示されます。デプロイメント・ディスクリプタ・ファイルweb.xmlが、<listener>要素で更新されます。デプロイメント・ディスクリプタ・ファイルは、JSPの実行時にJDeveloperの統合WebLogic Serverで使用されます。

18.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

18.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

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

JDeveloperでは、Webモジュール・アーカイブ(WAR)の作成による、Java EEアプリケーション・サーバーへのサーブレット・アプリケーションのデプロイがサポートされています。

詳細は、『Oracle WebLogic Server Webアプリケーション、サーブレット、JSPの開発』を参照してください。

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

JDeveloperには、JSPページおよびHTMLページを使用する際の基本的なJavaScriptのサポートをはじめとするスクリプト機能が用意されています。この項では、Oracle JDeveloperでのスクリプト言語のサポート、スクリプト言語の使用方法、およびJavaScriptコードのリファクタ方法について説明します。

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

JDeveloperは、JSONのエンコーディングおよびデコーディングのネイティブ・サポートを含む標準1.8.1および1.8.5を通して、スクリプト言語、特にJavaScriptおよびJSONをサポートしています。JDeveloperは、コード・インサイト、ブレッドクラムのサポート、およびJDeveloperの構造ペインを含むスクリプト開発者ツールをサポートしています。JDeveloperのJavaScriptコード・インサイトは、スクリプト・リージョンまたはHTMLイベント・ハンドラ内で入力する際にラベル、変数、パラメータおよび関数を補完します。ブレッドクラムのサポートにより、ファイルの操作時に選択したJavaScript関数の階層内での位置が表示されます。また、構造ペインには、ファイルに定義されている関数や関数に定義されている変数の階層が表示されます。

また、JDeveloperには、スクリプト言語開発時に対応する次のタイプのサポートも用意されています。

- 監査サポート。コード・エディタでは、警告は黄色の線で、エラーは赤の線で表示されます。また、警告とエラーはファイル概要マージンで右側に表示されます。

- JavaScript識別子に対するクイックJsDocサポート。これは、Javaでの開発時に使用可能なクイックJavaDocに類似しています。

- コード・ホバー・サポート。JavaScript識別子の上で[Shift]キーを押すと、定義がゴースト・ポップアップ・ペインに表示されます。

- Javaなどの他の言語で使用可能なカッコの一致とその他のすべての編集サポート。

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

JDeveloperのJavaScriptコード・インサイトは、スクリプト・リージョンまたはHTMLイベント・ハンドラ内で入力する際にラベル、変数、パラメータおよび関数を補完します。

JavaScriptコード・インサイト機能により、特定のJavaScript関数で使用可能な補完の動的なリストが編集ペインの下部に表示されます。入力するにつれ、コード・インサイト機能により、すでに入力したグローバル値に適した使用可能値のリストが表示されます。プロジェクトですでに使用または定義された使用可能なエントリのリストを表示するには、ドロップダウン矢印をクリックして「表示」を選択します。

JavaScriptコード・インサイトは、.html、.jspまたは.jspxソース・ファイル、あるいはユーザー定義関数および組込みJavaScript関数のインクルード済.jsファイルを編集する際に使用できます。アシスト・ウィンドウには、参照された.jsファイルや、まだインクルードされていないプロジェクト内の任意の.jsファイルが表示されます。

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つ以上表示され、メソッドまたは変数に対するブラウザのサポートを示します。さらに、JavaScriptコード・インサイトではHTML 5標準をサポートしています。

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

ソース・エディタでJavaScriptファイルを編集する際に関数内にカーソルを置くと、「ソース・エディタ」ウィンドウの下マージンにブレッドクラム・トレイルが表示されます。

このブレッドクラム・トレイルには、JavaScript階層内のこの関数の位置とともに、メソッドやパラメータなどのそのサブ要素が表示されます。また、if、if-else、do、while、forおよびtry/catch/finallyのブレッドクラムも表示されます(Javaの場合と同じです)。

階層内で使用可能な関数を検索するには、次のようにします。

- ブレッドクラム・トレイルで、ドロップダウン(ファイル・レベル)をクリックし、その親内で定義されている関数に移動します。

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

JavaScriptファイルの編集時には、構築中のプロジェクトまたはアプリケーションの構造内の位置が追跡され、これが構造ペインに表示されます。

構造ペインには、ファイルに定義されている関数や関数に定義されている変数の階層が表示されます。

構造ペインからコード・エディタ内の位置を検索するには、次のようにします。

- 構造ペイン内の要素をダブルクリックし、コード・エディタ内の対応する位置にフォーカスを設定します。ファイルにエラーがある場合、これらも構造ペインに表示されます。

18.6.2 スクリプト言語の操作

スクリプト言語の操作には、HTMLまたはJSPページ内のスクリプト要素の直接的な使用のみでなく、アプリケーション全体に関連付けられたスクリプト・ファイルへの参照の使用も含まれます。

JDeveloperコード・エディタには、スクリプトまたはスクリプト言語要素に適したコードを決定する上で役に立つ構文強調表示機能が用意されています。

スクリプト言語の操作に関する他の要素には、JavaScript Object Notation (JSON)ファイルの作成が含まれます。

18.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>

18.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コードを入力して保存します。
「アプリケーション」ウィンドウのHTMLまたはJSPプロジェクトのWeb Contentフォルダに、JavaScriptファイルが表示されます。

6. HTMLページまたはJSPページをまだ開いていない場合は、JSP/HTMLビジュアル・エディタで開きます。

7. 「アプリケーション」ウィンドウから、JavaScriptを適切なページにドラッグします。JavaScriptを「コンポーネント」ウィンドウからドラッグすると、JavaScriptファイルを現在のプロジェクトのドキュメント・ルートにコピーするよう求められます。
JavaScriptファイルを参照するスクリプト要素が作成されます。

注意:

JavaScriptファイルをプロジェクトにインポートすることも可能です。

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

構文ハイライト表示は、Java、JavaScriptおよびJSONファイルの編集時に構文要素(カッコの一致など)をより簡単に識別できるJDeveloperの機能です。

コード・エディタでのJavaScript構文ハイライト表示オプションを設定するには、次のようにします。

1. メイン・メニューから、「ツール」→「プリファレンス」を選択します。

2. 「プリファレンス」ダイアログで、「コード・エディタ」ノードを開きます。

3. 「構文の色指定」ノードを選択します。

4. 「言語」カテゴリで、「JavaScript」を選択します。
JavaScriptスタイル設定を反映してページの表示が変化します。

5. 使用可能なスタイル設定を適宜変更します。

6. 「OK」をクリックします。
各フィールドの詳細なヘルプを表示するには、[F1]を押すか、「ヘルプ」をクリックします。

Javaコード・エディタに戻ると、変更したスタイル設定に従ってJavaScript構文がハイライト表示されます。

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

JDeveloperでは、デフォルトで.jsファイル拡張子を持つファイルがJavaScriptとして認識されます。その他のファイル拡張子もJDeveloperで認識されるように関連付けることができます。

JDeveloperでJavaScriptファイルとして認識されるファイル拡張子を追加または削除するには、次のようにします。

1. メイン・メニューから、「ツール」→「プリファレンス」を選択します。

2. 「プリファレンス」ダイアログで、「ファイル・タイプ」を選択します。

3. 「認識済のファイル・タイプ」リストで、「JavaScriptソース」ノードを選択します。

4. .jsファイル拡張子が関連付けられます。
JavaScriptファイル拡張子を作成するには、「追加」をクリックします。

「拡張子の追加」ダイアログで、JavaScriptファイルに関連付けるファイル拡張子を入力します。

5. ファイルの関連付けを削除するには、「削除」をクリックします。

6. 「OK」をクリックします。
各フィールドの詳細なヘルプを表示するには、[F1]を押すか、「ヘルプ」をクリックします。

このような手順で追加した拡張子を持つファイルを開くと、そのファイルはJavaScriptとして認識されます。

18.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エディタの通常の機能を使用してコンテンツを追加します。

18.6.3 JavaScriptコードのリファクタ

JDeveloperは、関数または変数への参照の名前変更をサポートしています。また、JDeveloperでは、削除操作の実行時に関数名のすべてのオカレンスが新規名に置き換えられます。このような関数名の名前変更および置換方法はリファクタと呼ばれます。

リファクタとは、プログラムの動作を変更することなくコード構造を変更する編集上の技術です。リファクタ操作は一連の簡単な編集操作で、プログラムのコードが正常にコンパイルおよび実行されるように変換します。JDeveloperには、JavaScriptコードおよびファイル用として自動リファクタ操作のコレクションが用意されています。

リファクタは、プログラムのソース・コードを変更して保持、拡張または再利用しやすくする際に使用します。この変更は一連のリファクタ・ステップとして行われます。ユーザーは、ステップの終了ごとに、プログラムを再ビルドおよび再検証して、エラーが発生していないか確認できます。

JDeveloperは、JavaScriptコードおよびファイル用として次のリファクタ操作をサポートしています。

- 関数、変数またはラベルへの参照の名前変更。関数名または変数名の各オカレンスが新しい名前で置き換えられます。

- 安全な削除。関数の定義が複製され、複製された定義に含まれる関数名のオカレンスがすべて新しい名前で置き換えられます。

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

JavaScriptファイル内で関数、変数およびラベルなどのコード要素の特定の使用方法を検索できます。これにより、リファクタ時に、要素が使用されている場所を特定できるため、要素を安全に変更、または変更しないことを選択できます。

JavaScriptファイル内で関数、変数またはラベルを検索するには、次のようにします。

1. 検索する関数、変数およびラベル内にカーソルを置き、右クリックします。

2. 「使用方法の検索」を選択します。

JavaScriptファイル内で選択した要素が検索されます。

要素の検索時には、オプションの選択肢が2つ用意されています。

テキスト使用方法に関するコメントの検索

変数名、ラベル名または関数名についてコメント内を検索する場合、これを選択します。これが役立つのは、後でリストアする予定のコードのセクションをコメント・アウトした場合や、リファクタに含まれる要素の更新名がコメントに反映されることを単に確認する場合などです。

新規タブ

検索の結果を新規タブに表示する場合、これを選択します。これを選択しない場合、「ログ」ウィンドウに結果が表示されます。

注意:

デフォルトでは、JDeveloper起動時にログ・ウィンドウは表示されません。ログ・ウィンドウを表示するには、「ウィンドウ」→「ログ」を選択します。

18.6.3.2 JavaScriptコード要素の名前の変更

JavaScriptコードを操作する際に、関数または変数へのすべての参照および定義の名前を簡単に変更できます。必要に応じて、最初にプレビュー(置換する使用方法のリスト)を生成できます。プレビューを使用して、その他の使用方法の名前を変更する前に、選択した使用方法を調査、変更するかまたは除外します。

名前の変更操作の有効範囲は、プロジェクト内の要素の全範囲になります。関数の使用方法は、プロジェクト内で表示されるすべての場所で置換されます。変数はそれぞれの定義の語彙範囲のみで名前が変更され、同じ名前を持つそれ以外の要素は変更されません。

デフォルトでは、操作は、コメント(ただし、コード要素を指定するドキュメント・コメント・タグではない)および注釈を除いた、JavaScriptファイルで実行されます。あいまいではない使用方法が置換されます。

コード要素の名前を変更するには、次のようにします。

1. 名前を変更する要素を選択します。

- JavaScriptエディタで、関数名または変数名を選択します。
または

- JSPまたはHTMLページのスクリプトで、関数名または変数名を選択します。

2. コマンドを起動します。

- メイン・メニューまたはポップアップ・メニューから、「リファクタ」→「名前の変更」を選択します。
または

- [Ctrl]と[Alt]を押しながら[R]を押します。

3. 「変更後の名前」ボックスに、新しい名前を入力します。名前は有効で、まだ使用されていない必要があります。

4. 「テキスト使用方法のコメントの検索」を選択して、操作をコメント、ドキュメント・コメントの本体および注釈にまで拡張します。

5. 名前の変更操作をコミットする前に置換される使用方法をインスペクトする場合は、「プレビュー」を選択します。

6. 「OK」をクリックします。「プレビュー」を選択した場合は、プレビュー・ログ・ウィンドウからの名前の変更操作を完了します。それ以外の場合は、すべての使用方法が変更されます。

18.6.3.3 JavaScriptコード要素の削除

JavaScriptコードを開発する際に、関数、ラベルまたは変数の定義を安全に削除できます。要素が使用中の場合は、ユーザーの確認なしに定義の削除が実行されることはありません。

要素が使用中である場合は、使用方法を示すログが表示されます。このリストを使用して、使用方法をインスペクトおよび解決します。このため、削除を確認しても、残りの使用方法は未定義の参照としてコード内に残ります。

コード要素を削除するには、次のようにします。

1. 削除する要素を選択します。

- JavaScriptエディタで、関数名、ラベル名または変数名を選択します。
または

- JSPまたはHTMLページのスクリプトで、関数名、ラベル名または変数名を選択します。

2. コマンドを起動します。

- メイン・メニューまたはポップアップ・メニューから、「リファクタ」→「安全に削除」を選択します。
または

- [Alt]キーを押しながら[Del]キーを押します。

「安全に削除」ダイアログが開き、プロジェクト・ファイルで使用方法が検索されます。

3. ダイアログが閉じた場合、要素は削除されています。検索の実行後もダイアログが開いたままの場合、要素には未解決の使用方法があります。

- 「使用方法の表示」をクリックし、使用方法を調査および解決します。完了後、コマンドを再起動して要素を削除します。
または

- 「OK」をクリックして、要素の定義を削除します。

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

多くの使用方法を変更する可能性があるリファクタ操作を実行する場合、手動での変更が必要な使用方法や除外が必要な使用方法を識別する場合には、リファクタのプレビューが役に立ちます。操作をコミットする前にプレビュー・ログ・ウィンドウで使用方法を表示し、これらを調査して解決するオプションがあります。変更を確認したら、操作をコミットできます。

ログには、閉じることが可能なパッケージとJavaファイルのツリーが表示されます。各ファイルの下に、変更した使用方法が含まれるコードの行が表示されます。「プレビュー」ウィンドウの詳細を参照するには、[F1]を押します。

リファクタ操作が非常に長い場合(たとえば、長いソース・ファイルで同じJavaScript関数が何回もコールされる場合など)、JDeveloperではステータス・バー(「ログ」ウィンドウの下)に処理状況が表示されます。

「編集」ウィンドウに使用方法を表示するには、次のようにします。

- ログのエントリをダブルクリックします。

リファクタ操作から使用方法を除外するには、次のようにします。

- 使用方法を右クリックし、「対象外」を選択します。

リファクタ操作をコミットするには、次のようにします。

1. 使用方法に影響する編集を行った場合は、ログ・ツールバーの「リフレッシュ」ボタンをクリックし、使用方法の検索を再実行します。

2. ログ・ツールバーの「リファクタ実行」ボタンをクリックします。

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

JavaScriptでは、編集対象の操作の範囲や、関数の全体的な構造のどこにその操作が配置されるかに関する感覚を維持する上で、インデント、カッコおよびその他の視覚的な目印が役立ちますが、編集時には、その最初のスキームがわからなくなる場合があります。JDeveloperでは、JavaScriptコードを理解しやすいように再フォーマットすることにより、パラレル要素を整列し、編集対象の関数の各部に関する視覚的な目印を見つけやすくすることができます。また、再フォーマットにより、無関係の改行や他の余白をJavaScriptから除去し、JavaScriptをよりコンパクトにできるため、ファイル・サイズの縮小によってデプロイメントの効率を高めることができます。

JavaScriptコードのセクションを再フォーマットするには、次のようにします。

1. 再フォーマットするJavaScriptコードのセクション内にカーソルを置いて右クリックするか、再フォーマットするコードSnippetを選択します。

2. 「再フォーマット」を選択します。

選択したJavaScriptコードのセクションが再フォーマットされます。ファイルを保存すると、コードが新規フォーマットで保存されます。

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

コード・エディタのルック・アンド・フィール、一般的な動作およびコード・インサイトとJavaインサイトのオプションをカスタマイズできます。

コードのフォーマット・プリファレンスを変更するには、次のようにします。

- メイン・メニューから、「ツール」→「プリファレンス」→「コード・エディタ」を選択します。

注意:

このダイアログで、Javaソース・エディタでJavaファイルを編集するためのオプションを選択することもできます。選択内容はJavaScriptとJavaファイルに適用されます。

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

判読性やファイル・サイズに影響する変更を行った場合、.jsファイルをフォーマットすることもできます。また、コード折りたたみを使用すると、選択したファイルの論理要素(関数定義など)を折りたたむことによってファイルの特定の領域にのみ集中できるため、判読性を高めることができます。折りたたむと、コード要素の最初のいくつかのキーワード(定義対象の関数の名前など)のみが表示されます。残りの部分は最初のキーワードの後ろに省略記号(...)で示されます。

コード折りたたみを使用するには、次のようにします。

- JavaScriptエディタでテキストの最初の列の左側にある「-」記号をクリックします。
これにより、選択した要素のコードが折りたたまれ、「-」記号が「+」に変化します。

- [+]記号をクリックしてコードを展開し、前に閉じていたエリアの全コンテンツを表示します。
すべてのJavaScriptコードのフォーマット機能やハイライト表示機能およびコード折りたたみは、JSONファイルの編集または作成時にも適用されます。

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

ファイルを移動する場合、アプリケーション全体にわたってこのファイルへの参照を変更する必要があります。JDeveloperでは、リファクタ中に<script src=...>タグで参照を変更することによってこのタスクがサポートされます。

JavaScript関数をリファクタおよび移動するには、次のようにします。

1. リファクタおよび移動する「アプリケーション」ウィンドウを右クリックし、リファクタの移動を選択します。

2. 関数の移動先となるファイルの新規名を入力します。

3. 「名前の変更」ログ・ウィンドウの「リファクタ実行」をクリックします。

リファクタが完了すると、リファクタの影響を受けるすべてのHTMLファイルで<script src=...>タグが更新されます。

18.7 JSPおよびFaceletタグ・ライブラリの使用

JDeveloperでは、カスタム・アクションという再利用可能なモジュールの開発を可能にする、JSP 2.0、2.1、および1.2と、Facelet 2.0カスタム・タグ・ライブラリをサポートしています。カスタム・アクションにより実行できるタスクの例としては、フォーム処理、データベースまたは電子メールへのアクセス、およびフロー制御があります。カスタム・アクションを起動するには、JSPページ内にカスタム・タグを追加します。カスタム・タグの集合が、カスタム・タグ・ライブラリとなります。タグ・ライブラリ・ディスクリプタ・ファイル(.tld)は、タグ・ライブラリと、その中の各タグを説明するXML文書です。taglib.xmlファイルは、使用しているFaceletsタグを記述したドキュメントです。

カスタム・タグ・ライブラリを作成すると、開発中の別のアプリケーションでライブラリを再利用できます。タグ・ライブラリは、アプリケーションで使用する場合、デプロイメント・ディスクリプタの一部としてJDeveloperにインクルードされます。

18.7.1 Webページによるタグ・ライブラリの使用

新規JSPまたはFaceletカスタム・タグ・ライブラリの作成、ならびに他のソースからのカスタム・タグ・ライブラリのインポートおよび登録の作業を容易にするいくつかのツールが用意されています。カスタム・タグ・ライブラリはJDeveloperのコード(タグ)・インサイトによりサポートされており、「コンポーネント」ウィンドウに追加できます。カスタム・タグ・ライブラリを使用する場合、カスタム・タグ・ライブラリおよびタグを作成できます。Javaコード・エディタでのページの編集時に、タグのコード(タグ)・インサイトを起動するために、カスタム・タグ・ライブラリを登録します。カスタマイズされたページを「コンポーネント」ウィンドウに追加して、ページの編集中に「コンポーネント」ウィンドウで使用可能なタグを表示します。

タグは、多くのJSPおよびFaceletアプリケーションに共通しています。コア反復機能および制御フロー機能、テキストの組込み、国際化が可能な書式設定タグ、およびXML操作タグがサポートされます。このような標準化によって、1つのタグを複数のコンテナで使用できるようになり、コンテナ間での簡単な認識および最適化が実現されます。式言語(EL)と4つの標準タグ・ライブラリを使用することで、JSTLでは動的なJavaベースのWebサイトを開発できます。

JSTLが装備されたことにより、<jbo:showvalue>や<jbo:rowsetiterate>などのタグが不要になり、ビジネス・コンポーネント・データ・タグ・ライブラリをより簡単に使用できます。このような一般的な操作のコーディングに時間を費やすかわりに、関わっているWebアプリケーション・プロジェクト固有のタグやWebページの開発に集中できます。

タグ・ライブラリのソースの検索を含むライブラリの管理を行うには、「ツール」→「ライブラリの管理」→「JSPタグ・ライブラリ」または「Faceletsタグ・ライブラリ」に移動します。

インクルードされたタグ・ライブラリの完全リストについては、『JDeveloperタグ・ライブラリ・リファレンス』のヘルプの目次を参照してください。

タグのサポートには、JSPページまたはFaceletページの作成に使用可能な次の標準タグ・ライブラリが含まれます。

- JSTL Core。このタグ・ライブラリは、式、フロー制御およびURLベースのリソースに対する汎用アクセス方式に関するタグを提供します。これらのリソースのコンテンツをJSPページ内に組み込んだりJSPページ内で処理できます。

- JSTL Format。このタグ・ライブラリは、I18Nとローカル書式およびローカル解析をサポートするタグを提供します。

- JSTL SQL。このタグ・ライブラリは、JSPの中からデータベースを直接アクセスできるタグを提供します。

- JSTL XML。このタグ・ライブラリは、XML文書の解析およびXSL変換を行えるタグを提供します。

- Facelets 2.1。このタグ・ライブラリは、Webページ内のUIコンポーネントを作成、管理および処理できるタグを提供します。詳細は、Faceletsタグ・ライブラリの文書(http://docs.oracle.com/javaee/6/javaserverfaces/2.1/docs/vdldocs/facelets/)を参照してください。

- Trinidad Components 2.0。詳細は、Apache Trinidadのページ(http://myfaces.apache.org/trinidad/index.html)を参照してください。

- ADF Facesコンポーネント12。詳細は、『Oracle ADF Facesタグ・リファレンス』を参照してください。

18.7.1.1 プロジェクト・レベルのタグ・ライブラリを追加、削除または編集するには

メイン・メニューの「アプリケーション」オプションから、ライブラリを管理します。

プロジェクト・レベルのタグ・ライブラリを追加、削除または編集するには、次のようにします。

1. 「アプリケーション」→「プロジェクト・プロパティ」→「JSPタグ・ライブラリ」を選択します。

2. 必要に応じて、プロジェクトのタグ・ライブラリを追加、削除または編集します。

18.7.1.2 JSPタグ・ライブラリ・ディスクリプタ(TLD)ファイルの参照方法

JSPページの任意の場所を右クリックすると、タグ・ライブラリ参照オプションが表示されます。

JSPタグ・ライブラリ・ディスクリプタ(TLD)・ファイルを参照するには、次のようにします。

1. Javaコード・エディタで、参照するTLDファイルのタグ・ライブラリ宣言内の任意の位置を右クリックします。タグ・ライブラリ宣言は、<%@ taglibで始まります。

2. ポップアップ・メニューから、「タグ・ライブラリの参照」を選択します。JSPタグ・ライブラリ・ディスクリプタ・ファイルが別のJavaコード・エディタ・ウィンドウに開きます。

18.7.1.3 ページまたは個別JSPタグの参照方法

メイン・メニューの「ツール」オプションの「パレットの設定」オプションから、タグとページを参照します。

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

カスタム・タグ・ライブラリを作成するには、タグ・ライブラリ・ディスクリプタ・ファイルを作成し、次に簡単なタグまたはコンポーネント・タグを作成します。タグ・ライブラリ・ディスクリプタ(TLD)・ファイルは、タグ・ライブラリと、その中の各タグを説明するXML文書です。これはコンテナによりタグの検証に使用されます。タグを作成すると、それらに属性およびスクリプト変数を追加できます。

18.7.2.1 カスタムJSPまたはFaceletsタグ・ライブラリの作成方法

カスタム・タグを作成するには、「新規ギャラリ」タグ・ライブラリのウィザードを使用します。ライブラリを共有するか、または1つのプロジェクト内で維持するかどうかに応じて、プロジェクト・ベースの、またはデプロイ可能なライブラリ・タイプを作成するように選択できます。ウィザードの2番目のステップでは、図18-24に示すように、タグ・ライブラリに名前を付けて、場所の詳細を追加します。

図18-24 「Faceletsタグ・ライブラリ」ウィザード

カスタムJSPまたはFaceletsタグ・ライブラリを作成するには、次のようにします。

1. 「アプリケーション」ウィンドウで、新規タグ・ライブラリを作成するためのプロジェクトを選択します。

2. 「ファイル」→「新規」→「ギャラリから」を選択し、「新規ギャラリ」を開きます。

3. 「カテゴリ」ツリーで「Web層」を開き、「JSP」または「JSF/Facelet」を選択します。

4. 「項目」リストで「JSP」または「Faceletタグ・ライブラリ」をダブルクリックし、「タグ・ライブラリ作成」ウィザードを開きます。

5. 新しいタグ・ライブラリの作成に必要な情報の入力を完了した後、「終了」をクリックします。

18.7.2.2 「コンポーネント」ウィンドウへのカスタム・タグ・ライブラリの追加方法

登録済のカスタム・タグ・ライブラリをプロジェクトの「コンポーネント」ウィンドウで使用可能にするには、「アプリケーション」→「プロジェクト・プロパティ」→「JSPタグ・ライブラリ」または「Faceletタグ・ライブラリ」→「追加」に移動します。「パレットのタグ・ライブラリを表示」を選択します。

「新規ギャラリ」ウィザードでカスタム・タグ・ライブラリを作成する際、「Faceletsタグ・ライブラリの作成」ウィザードで「プロジェクト・ベース」オプションを選択した場合にのみ、「コンポーネント」ウィンドウに追加されます。作成時に「デプロイ可能」のデフォルト選択肢を選択するか、残す場合は、追加の手順を実行して、ライブラリを登録し、「プロジェクト・プロパティ」の「タグ・ライブラリの追加」機能を使用してプロジェクトに追加する必要があります。その後で、タグ・ライブラリが「コンポーネント」ウィンドウに表示されます。

未登録のカスタム・タグ・ライブラリを「コンポーネント」ウィンドウに追加する手順は次のとおりです。

1. 新しいカスタム・タグ・ライブラリをデプロイします。

2. デプロイ済のライブラリを登録します。デプロイ済ライブラリの登録は、第18章のJSPまたはFaceletタグ・ライブラリを登録する方法に関する項を参照してください。ライブラリを登録すると、「プロジェクト・プロパティ」オプションおよび「タグ・ライブラリの追加」オプションに表示されます。

3. タグ・ライブラリをプロジェクトに追加します。今度は、ライブラリが「コンポーネント」ウィンドウに表示されます。

18.7.2.3 JSPまたはFaceletタグ・ライブラリの登録方法

タグ・ライブラリを登録して、それが存在することをFaceletsに通知します。

JSPまたはFaceletカスタム・タグ・ライブラリを登録するには、次のようにします。

1. 「ツール」→「ライブラリの管理」を選択し、「ライブラリの管理」ダイアログを開きます。

2. 「JSPタグ・ライブラリ」タブまたは「Faceletsタグ・ライブラリ」タブを選択します。

3. Userフォルダを選択し、「新規」をクリックして新しいJSPタグ・ライブラリ・ディスクリプタ・ファイルを「JSPタグ・ライブラリ」ツリーまたは「Faceletsタグ・ライブラリ」ツリーに追加します。

4. カスタム・タグ・ライブラリ・ディスクリプタ(TLD)・ファイル、JARまたはZIPアーカイブ・ファイルの場所、URIおよび新規タグ・ライブラリの接頭辞を入力します。入力した接頭辞は、「OK」をクリックした後に「JSPタグ・ライブラリ」ツリーまたは「Faceletsタグ・ライブラリ」ツリーで更新されます。

5. 「OK」をクリックして、「ライブラリの管理」ダイアログを終了します。

18.7.2.4 XMLソース・エディタでのTLDファイルの編集方法

TLDファイルを編集して、要素の属性を変更できます。

XMLソース・エディタでTLDファイルを編集するには、次のようにします。

1. 「アプリケーション」ウィンドウでファイルをダブルクリックまたは右クリックして、「開く」を選択します。デフォルトで開かれていない場合、このファイルの「ソース」タブをクリックします。入力時に、<(開き山カッコ)を入力して間をおくか、[Ctrl]キーを押しながら[Space]キー(デフォルトのキーマッピングを使用している場合)を押すと、コード・インサイトを起動できます。コード・インサイトにより、文法に基づいて有効な要素のリストが表示されます。

2. 要素を選択した後、空白を入力してから間をおくか、[Ctrl]キーを押しながら[Space]キーを押し、選択可能な属性のリストを表示します。属性値に対する左引用符を入力すると、必要な値の型または使用可能な値のリストが表示されます。

ヒント:

「コンポーネント」ウィンドウでTLDファイルを編集するには、「表示」→「コンポーネント」ウィンドウを選択して「パレット」を開き、「タグ・ライブラリ」を選択するか、ドロップダウン・リストから使用可能なページの1つを選択します。次に、そのページから要素を選択します。

18.7.2.5 タグへのスクリプト変数の追加方法

スクリプト変数は、JSPページをコールしたときにJSPで使用可能な変数です。スクリプト変数はどのスクリプト変数でも構いませんが、JSPページの参照を処理している場合は、JSPページによって宣言されたページ・レベル変数であることを意味します。スクリプトレット、宣言、式にあるスクリプト変数にアクセスできます。

タグにスクリプト変数を追加する手順は次のとおりです。

1. 「アプリケーション」ウィンドウで、Tag.javaファイルまたはWebTag.javaファイルを選択します。

2. タグを右クリックし、「スクリプト変数の追加」を選択します。「新規スクリプト変数の追加」ダイアログが開きます。

3. スクリプト変数の追加に必要な情報の入力を完了した後、「OK」をクリックします。属性を定義する新しいvariable.javaファイルが作成され、Javaコード・エディタ内で開かれます。新しいスクリプト・クラスも既存のタグ・ハンドラ・クラスに追加されます。

18.7.2.6 カスタムJSP/Faceletsタグ・ライブラリをJARファイルとしてデプロイする方法

ポップアップ・メニューで「デプロイ」を使用して、カスタム・タグ・ライブラリをデプロイします。

カスタムJSPタグ・ライブラリまたはFaceletsタグ・ライブラリをJARファイルとしてデプロイするには、次のようにします。

1. 「アプリケーション」ウィンドウで、デプロイするデプロイ・ファイルを選択します。

2. ファイルを右クリックし、「JARファイルにデプロイ」を選択します。デフォルトでは、タグ・ライブラリは、現行プロジェクトのディレクトリにデプロイされます。

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

この章では、JDeveloperツールを使用して、Enterprise JavaBeans (EJB) 3xおよびJava永続性API (JPA)コンポーネントによるJava EEエンタープライズ・アプリケーションのビジネス層をビルドする方法について説明します。

この章には次の項が含まれます:

- 第19.1項「EJBおよびJPAコンポーネントを使用した開発について」

- 第19.2項「EJBバージョンおよび機能のサポート」

- 第19.3項「EJB 3xアプリケーションのビルドおよび開発プロセス」

- 第19.4項「EJBビジネス・サービス・レイヤーの使用方法」

- 第19.5項「Oracle JDeveloperでのJava EEデザイン・パターンの使用」

- 第19.6項「永続層の構築」

- 第19.7項「セッションBeanでのビジネス・プロセスの実装」

- 第19.8項「ダイアグラムでのEJB/JPAコンポーネントのモデル化」

- 第19.9項「Webアプリケーションの一部としてのEJBのデプロイ」

- 第19.10項「EJBモジュールおよびJPA永続性ユニットのデプロイ」

- 第19.11項「EJB/JPAコンポーネントの実行およびテスト」

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

JDeveloperには、EJBプロジェクト、エンティティ、永続性ユニット、セッションBeanおよびメッセージドリブンBeanを作成するための段階的ウィザードが用意されています。オンライン・データベース定義またはオフライン・データベース定義およびアプリケーション・サーバーのデータソース接続からエンティティを構築できます。また、JPAおよびTopLinkテクノロジとシームレスに統合できるため、完全な永続性パッケージを実現することもできます。

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

JDeveloperは、EJB 3xおよびバージョン1.0から2.1をサポートしています。ただし、EJBウィザードはバージョン2.x以前のEJBの作成をサポートしていませんが、かわりに、旧EJBをバージョン3.1にインポートするように要求されます。現在のJDeveloper文書(ユーザー・ガイドのこの章および埋め込まれているオンライン・ヘルプを含む)は、EJB 3.1開発タスクに焦点を当てています。

注意:

EJB 2.1以前の使用方法の詳細は、JDeveloper10gの旧バージョンのドキュメントを参照してください。EJBアプリケーション開発インタフェースはバージョンごとに異なる可能性があり、一部の履歴ヘルプの内容は現在のバージョンでは古い場合があります。

EJB 3.1の仕様およびドキュメントについては、http://docs.oracle.com/javaee/で「Java Platform, Enterprise Edition (Java EE) Technical Documentation」のページを参照してください。

注意:

EJB 3xを使用している場合、一部のデプロイ・ファイルのかわりに注釈を使用できる場合があります。デプロイメント・ディスクリプタを含めて、注釈をオーバーライドするか、または注釈でサポートされていないオプションを指定します。

サポートされる新規EJB 3.1機能

EJB 3.1仕様には、簡易なプログラミングおよびパッケージング・モデルの変更が用意されています。

- シングルトン・セッションBean: シングルトン・セッションBeanは、セッションBeanが特定のJava Virtual Machine (JVM)でアプリケーションごとに1回インスタンス化され、それはアプリケーションのライフサイクルにわたって存在することを保証する正式なプログラミング構成メンバーとして機能します。シングルトンを使用すると、エンタープライズBeanコンポーネントの複数のインスタンス間で、またはアプリケーション内の複数のエンタープライズBeanコンポーネント間で容易に状態を共有することができます。

- No Interfaceクライアント・ビューの簡素化: No-Interfaceローカル・クライアント・ビュー・タイプでは、ローカル・ビジネス・インタフェースをオプションにすることにより、EJBデプロイメントが簡素化されます。ローカル・ビジネス・インタフェースを持たないBeanは、ビジネス・インタフェースを別途作成しなくても同じエンタープライズBean機能を提供できるNo-Interfaceビューを公開します。

- EJBをパッケージ化してWARファイルに直接デプロイ: EJB 3.1には、WebコンポーネントとEJBコンポーネントを保存するためのアーカイブを作成しなくてもEJBコンポーネントをWebアプリケーション・アーカイブ(WAR)ファイル内に直接配置し、それらをエンタープライズ・アプリケーション・アーカイブ(EAR)ファイルに一括する機能が用意されています。

- 移植可能なグローバルJNDI名: EJB 3.1の移植可能なグローバルJNDIネーミング・オプションによって、共通する、一般的によく知られたネームスペースが多数用意されています。これらのネームスペースでは、EJBコンポーネントを登録したり、パターンjava:global[/<app-name>]/<module-name>/<bean-name>を使用して参照したりできます。これによって、EJBコンポーネントのJNDIでの登録方法と登録場所および、アプリケーションによる参照方法と使用方法が標準化されます。

- 非同期セッションBeanの起動: EJB 3.1のセッションBeanは、非同期のクライアント起動セマンティクスを使用してメソッドを公開できます。EJBクラスまたは特定のメソッドで注釈@Asynchronousを使用して、メソッドが起動したときに制御をクライアントに即時戻すようにEJBコンテナに指示します。このメソッドによって、クライアントがメソッド起動状況を確認したり、非同期に生成される結果値を取得したりできる将来のオブジェクトが返される場合もあります。

- EJBタイマー拡張: EJB 3.1のタイマー・サービスはカレンダ・ベースのEJBタイマー式をサポートしています。スケジューリング機能は、CRONスタイルのスケジュール定義の形式をとります。この定義は、定義されたスケジュールに従ってメソッドを自動的に起動するために、EJBメソッドに配置できます。また、EJB 3.1では、Beanクラスまたはデプロイメント・ディスクリプタ内のメタデータに基づくタイマーの自動作成もサポートしており、Bean開発者は、Bean起動に依存しなくても、タイマー・サービスのタイマー作成方法の1つをプログラムによって起動するようにタイマーをスケジュールすることができます。自動作成されたタイマーは、アプリケーション・デプロイメントの結果としてコンテナにより作成されます。

サポートされている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でサポートされます。コールバック・メソッドは、注釈またはデプロイメント・ディスクリプタを使用して指定されます。

19.3 EJB 3.xアプリケーションのビルドおよび開発プロセス

JDeveloperには、エンタープライズ・アプリケーションのEJBビジネス・レイヤーの設定するための完全機能セットが含まれます。

段階的ウィザードを使用してEJB Webアプリケーション用のフレームワークを作成し、エンタープライズ・アプリケーションのモデル・レイヤーを設定することから開始できます。次に、ウィザードを使用して、データベース表に相当するエンティティを作成できます。さらに、ウィザードを使用して、セッションBeanおよびセッション・ファサードを作成し、永続性ユニットを構築できます。Oracle ADFには、データ・コントロールを可能にするコンポーネントが用意されています。準備が整ったら、JDeveloper統合サーバー機能を使用してこれをテストできます。

19.3.1 EJB 3xアプリケーションの開発プロセス

JDeveloperには、次の項目で説明するように、EJBアプリケーションを開発するためのツールが含まれます。

- 第19.3.1.1項「エンティティの作成」

- 第19.3.1.2項「セッションBeanおよびセッション・ファサードの作成」

- 第19.3.1.3項「EJBのデプロイ」

- 第19.3.1.4項「EJBのリモート・テスト」

- 第19.3.1.5項「Oracle ADFデータ・コントロールへのビジネス・サービスの登録」

19.3.1.1 エンティティの作成

エンティティ・ウィザードを使用して、エンティティを作成、またはオンライン、オフラインまたはアプリケーション・サーバー・データソース接続を使用して表からエンティティを作成します。エンティティBean (表ベース)ウィザードを使用して、データベース表からエンティティをリバース・エンジニアリングします。エンティティ・ウィザードでは、永続性ユニットおよびデータベース接続を選択または追加したり、エミュレートするデータベースを選択したりできます。また、自分のエンティティ用のデータベース表を選択することもできます。詳細は、第19.6.2項「JPAエンティティの作成方法」を参照してください。

エンティティは、既存の表から作成するか、またはJavaソース・エディタを使用して手動で作成できます。既存の表からエンティティを作成する場合、マッピングは自動的に行われます。O-Rマッピング・メタデータを使用してエンティティを手動で作成した場合、マッピングに対する制御を増強できますが、注釈のコーディングを手動で行う必要があります。詳細は、第19.6.1.2項「O-Rマッピングに関するメタデータ注釈」を参照してください。

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

セッションBeanを使用して、セッション・ファサード・デザイン・パターンを実装できます。セッション・ファサードはデータを集約して表示し、ビジネス・ロジックに場所を提供し、コンテナを介してトランザクション・コンテキストを設定します。詳細は、第19.7項「セッションBeanでのビジネス・プロセスの実装」および第19.7.1項「セッション・ファサードの使用」を参照してください。

ウィザードを使用してセッションBeanを作成する場合、同じプロジェクト内のすべてのエンティティのセッション・ファサード・メソッド生成を選択できます。生成するコア・トランザクション・メソッド、get()アクセッサとset()アクセッサ、およびエンティティ上のファインダ・メソッドを選択できます。新しいエンティティ、またはエンティティ上の新しいメソッドを作成する場合、既存のセッション・ファサードを更新するには、「アプリケーション」ウィンドウでそのセッション・ファサードを右クリックし、「セッション・ファサードの編集」を選択します。

19.3.1.3 EJBのデプロイ

JDeveloperには、デプロイしたEJBのコンテナとしてOracle WebLogic Serverが用意されています。デフォルトでは、JDeveloperサーバー固有のデプロイメント・プロファイルが生成されます。WebLogic固有のデプロイメント・プロファイルを作成することもできます。詳細は、第19.10項「EJBモジュールおよびJPA永続性ユニットのデプロイ」を参照してください。

19.3.1.4 EJBのリモート・テスト

JDeveloperでは、リモート・サーバーで使用するサンプル・クライアントも作成できます。サンプル・クライアントの生成方法は、リモート接続の詳細を指定する以外は、ローカル・クライアントの場合と同様です。詳細は、第19.11.2項「リモート・サーバーを使用したEJB/JPAコンポーネントのテスト方法」を参照してください。

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

ADFには、エンティティのデータ・コントロールを可能にするコンポーネントが用意されています。エンティティのデータ・コントロールを手動で追加すると、Java EEアプリケーションによって選択的コンポーネントが統合されます。詳細は、『Oracle ADFデータ・コントロールによるアプリケーションの開発』のADFデータ・コントロールの使用に関する項を参照してください。

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

WebベースのEJB 3xアプリケーションのためのモデル・ビジネス・サービス・レイヤーを作成します。

Webベースのアプリケーションを作成するには、次のようにします。

- 「ファイル」→「新規」→「アプリケーション」を選択します。
「新規ギャラリ」の「一般」カテゴリに使用可能なアプリケーションの一覧が表示されます。EJBプロジェクトの場合、カスタム・アプリケーションまたはJava EEのWebアプリケーションをビルドすることを選択できます。Java EEのWebアプリケーションにより、EJB/JPAのデータバインドされたWebアプリケーションが作成されます。

ヒント: よく使用される選択項目は、容易にアクセスできるように「新規」メニューに保存されます。

JPAエンティティを作成するには、次のようにします。

1. 「アプリケーション」ウィンドウで、JPAエンティティを作成するプロジェクトを右クリックし、「新規」をクリックします。

2. 「新規ギャラリ」で、「ビジネス層」を開き、「EJB」を選択し、さらに「エンティティ」または「表からのエンティティ」を選択して、「OK」をクリックします。
ヒント: よく使用される選択項目は、容易にアクセスできるように「新規」メニューに保存されます。

3. 「永続性ユニット」ページにアクセスしたら、「次へ」をクリックしてデフォルトの永続性ユニットpersistence.xmlを自動的に作成するか、「新規」をクリックして既存のMETA-INF/persistence.xmlファイル内に新規の永続性グループを作成します。

4. 「エンティティ」または「表からのエンティティ」ウィザードのその他の手順を実行して、JPAエンティティを作成します。
詳細は、随時[F1]を押すか、ウィザード内で「ヘルプ」をクリックしてください。

セッション・ファサードを実装するには、次のようにします。

1. 「アプリケーション」ウィンドウで、セッション・ファサードを作成するプロジェクトを右クリックし、「新規」を選択します。

2. 「新規ギャラリ」で、「ビジネス層」を開いて「EJB」を選択し、さらに「Javaサービス・ファサード(JPA/Toplink)」を選択して、「OK」をクリックします。
ヒント: よく使用される選択項目は、容易にアクセスできるように「新規」メニューに保存されます。

3. 「Javaサービス・ファサード」ウィザードの手順を実行します。
「EJBの名前とオプション」ページにアクセスする際、必ず「セッション・ファサード・メソッドの生成」を選択してください。こうしておくと、セッション・ファサード・メソッドが自動的にセッションBeanに追加されます。セッションBeanを右クリックして、「セッション・ファサードの編集」を選択することで、プロジェクト内のすべてのエンティティのセッション・ファサード・メソッドを作成および編集できます。JDeveloperでは、プロジェクト内の新しいエンティティおよびエンティティ上の新しいメソッドが自動的に認識されます。

詳細は、随時[F1]を押すか、ウィザード内で「ヘルプ」をクリックしてください。

データ・コントロールを使用してビジネス・サービスのモデル・プロジェクトを登録するには、次のようにします。

- 「アプリケーション」ウィンドウでセッションBeanを右クリックし、「データ・コントロールの作成」を選択します。
これにより、セッションBeanを処理するようにデータ・コントロールを初期化するための情報が含まれるDataControls.dcxと呼ばれるファイルが作成されます。

アプリケーションを実行およびテストするには、次のようにします。

- WebベースのEJBアプリケーション用のモデル・レイヤーの基本フレームワークを作成しました。このフレームワークを使用して、アプリケーションを構築する過程でアプリケーションをテストします。詳細は、第19.11項「EJB/JPAコンポーネントの実行およびテスト」を参照してください。

アプリケーションをデプロイするには、次のようにします。

統合サーバーはJDeveloper内で動作します。このサーバーを使用すると、EJBの実行およびテストが可能であり、何の変更も加えずにそのEJBをデプロイできます。このサーバーを使用する場合、デプロイメント・プロファイルは不要で、初期化の必要もありません。「デプロイメント・ディスクリプタ」ウィザードを使用してデプロイメント・ディスクリプタejb-jar.xmlを作成してから、アプリケーションを使用したデプロイメント用としてEJBモジュールをパッケージ化します。

19.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間の複雑な相互作用が集中化されます。また、アプリケーションのビジネス・サービスに対して単一のインタフェースを提供します。詳細は、第19.7項「セッションBeanでのビジネス・プロセスの実装」を参照してください。

- ビジネス委任 - ビジネス委任パターンにより、クライアントとビジネス・サービスが切り離され、ビジネス・サービスの基礎となる実装詳細が隠されます。ビジネス委任パターンは、JDeveloperの「データ・コントロール・パレット」に表示されるデータ・コントロールにより実装されます。詳細は、『Oracle ADFデータ・コントロールによるアプリケーションの開発』のADFデータ・コントロールの使用に関する項を参照してください。

19.6 永続層の構築

永続層は、データベース内の表を表す永続性データ・オブジェクトがすべて含まれるEJBアプリケーションの一部です。EJB 3xで導入されたエンティティ・モデルはJava永続性APIで定義されているため、これらのビジネス・コンポーネントはJPAエンティティと呼ばれます。

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

JPAエンティティは、Oracle TopLinkおよびHibernateとシームレスに動作するよう設計された軽量永続性モデルを採用しています。

JPAエンティティの主な拡張機能は、次のとおりです。

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

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

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

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

- 問合せの拡張機能

19.6.1.1 POJOであるJPAエンティティ

JPAエンティティはPOJO (Plain Old Java Objects)であり、コンポーネント・インタフェースは不要です。JPAエンティティは、継承およびポリモフィズムもサポートしています。

例19-1は、単純なJPAエンティティのソース・コードを示しています。

例19-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の場合と同様に、抽象クラスではなく具体的なクラスであることに注意してください。

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

O-Rマッピング注釈を使用すると、O-Rマッピング・メタデータを使用してエンティティを記述できます。その後、このメタデータは、エンティティの永続性および取得を定義するために使用されます。ベンダー固有のディスクリプタでO-R (オブジェクト・リレーショナル)マッピングを定義する必要はなくなります。

前述の例では、@Entity、@Tableおよび@Column注釈を使用して、これがエンティティであることをクラス・レベルで指定するとともに、エンティティの基礎となるデータベース表と列名を指定しています。例19-2に示すように、マッピング注釈を使用して、エンティティ間の関連を定義することもできます。

例19-2 マッピング注釈

@ManyToOne(cascade=PERSIST)
@JoinColumn(name="MANAGER_ID", referencedColumnName="EMP_ID")
public Employee getManager()
{
return manager;
}

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

継承は、様々な使用例で非常に役に立ちます。一般的に使用され、JPAエンティティ用のOracle Application Serverでサポートされる2つのタイプの継承は、次のとおりです。

- クラス階層単位の単一表

- 結合されたサブクラス戦略

継承は、注釈を使用して表すことができます。結合されたサブクラス戦略を使用するコード例を例19-3に示します。

例19-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
{
...
}

19.6.1.4 CRUD操作のためのEntityManager APIの簡素化

javax.persistence.EntityManager APIは、エンティティ・インスタンスに対するCRUD (Create、Read、UpdateおよびDelete)操作に使用されます。インスタンスを参照して操作するために、コードを記述する必要はなくなります。例19-4のように、セッションBeanにEntityManagerのインスタンスを挿入し、EntityManagerインスタンスでpersist()またはfind()メソッドを使用して、エンティティBeanオブジェクトを作成または問い合せることができます。

例19-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);
}
}

19.6.1.5 問合せの拡張機能

問合せはメタデータ内で定義します。ここでは、注釈を使用して、またはデプロイメント・ディスクリプタ内で問合せを指定できます。JPAエンティティは、JPQL (Java永続性問合せ言語)を介してバルク更新および削除操作をサポートします。詳細は、第19.6.7項「EJB/JPAの注釈」を参照してください。

19.6.2 JPAエンティティの作成方法

JDeveloperには、JPAエンティティを作成するための簡単なウィザードが2つ用意されています。オンライン・データベースまたはオフライン・データベースからのエンティティの作成、永続性ユニットの追加、継承戦略の定義、および使用可能なデータベース・フィールドからの選択が可能です。「表からのエンティティ」ウィザードを使用すると、オンライン・データベースまたはエミュレートされたオフライン・データベースや、アプリケーション・サーバー・データソースからエンティティを作成できます。

注意:

「エンティティBean(表ベース)」ウィザードを実行している際に、「一般オプション」ページで「生成されたエンティティごとにIDジェネレータをアタッチ」フィールドを構成した場合は、いずれを選択したかに応じて、オプション@SequenceGeneratorまたは@SequenceGeneratorに対してIDジェネレータを手動で構成する必要があります。追加の手順については、各エンティティ・クラスに生成されたJavadocを参照してください。

エンティティを作成、または表からエンティティを作成するには、次のようにします。

1. メイン・メニューから「ファイル」→「新規」の順に選択します。

2. 「新規ギャラリ」で、「ビジネス層」を開き、「EJB」を選択し、さらに「エンティティ」または「表からのエンティティ」を選択して、「OK」をクリックします。
ヒント: よく使用される選択項目は、容易にアクセスできるように「ファイル」メニューに保存されます。

3. 「エンティティ作成(表ベース)」または「エンティティの作成」ウィザードの手順を実行して、JPAエンティティを作成します。
詳細は、随時[F1]を押すか、ウィザード内で「ヘルプ」をクリックしてください。

既存のプロジェクトにEJBを作成する手順は次のとおりです。

1. 「アプリケーション」ウィンドウで、JPAエンティティを作成するプロジェクトを選択し、「新規」を選択します。

2. 「新規ギャラリ」で、「ビジネス層」を開き、「EJB」を選択し、さらに「エンティティ」または「表からのエンティティ」を選択して、「OK」をクリックします。
または、メイン・メニューから「ファイル」→「新規」を選択して「新規ギャラリ」を開き、ステップ2を実行します。

ヒント: よく使用される選択項目は、容易にアクセスできるように「ファイル」メニューに保存されます。

3. 「エンティティ作成(表ベース)」または「エンティティの作成」ウィザードの手順を実行します。

新規のプロジェクトにEJBを作成する手順は次のとおりです。

1. メイン・メニューから「ファイル」→「新規」→「プロジェクト」を選択します。

2. 「新規ギャラリ」で、作成するプロジェクトのタイプを選択し、「OK」をクリックします。

3. 「アプリケーション」ウィンドウで、新規プロジェクトを右クリックして、「新規」を選択します(または、プロジェクトを選択して、メイン・メニューで「ファイル」→「新規」を選択します)。
「新規ギャラリ」で、「ビジネス層」を開き、「EJB」を選択し、さらに「エンティティ」または「表からのエンティティ」を選択して、「OK」をクリックします。

ヒント: よく使用される選択項目は、容易にアクセスできるように「ファイル」メニューに保存されます。

19.6.3 EJB/JPA用のSDOについて

JDeveloperは、SDO (サービス・データ・オブジェクト)データ・アプリケーション開発フレームワークをサポートします。

SDO 2.0フレームワークおよびAPIを使用すると、物理的にどのようにアクセスされているかに関係なくビジネス・データを簡単に修正できます。SDOは、バックエンド・データソースをカプセル化し、静的または動的なプログラミング・スタイルの選択肢を提供し、接続されたアクセスと切断されたアクセスの両方をサポートします。SDOは、XMLパーサー操作を処理し、データ解析ロジックを自動的にアプリケーションに統合します。詳細は、『Oracle Application Development FrameworkによるFusion Webアプリケーションの開発』のサービス対応のアプリケーション・モジュールの統合に関する項を参照してください。

JDeveloperによってサポートされるSDOアーキテクチャには、次の機能があります。

- Java EEデータ・プログラミング・モデルの簡素化

- サービス指向アーキテクチャ(SOA)内のデータの抽出

- クライアント間のデータの受渡しに関する標準的方法の作成によるデータ・アプリケーション開発の統合

- XMLのサポートおよび統合

- Java EEパターンおよびベスト・プラクティスの導入

SDOは、切断されたデータ・グラフの概念に基づくデータ・アプリケーション用の統合フレームワークです。データ・グラフは、ツリー構造またはグラフ構造のデータ・オブジェクトのコレクションです。データ・オブジェクトを操作する汎用コードまたはフレームワーク・コードの開発を実現するには、データ・オブジェクトのデータ・モデルを公開するデータ・オブジェクト・メタデータに対するイントロスペクションが可能であることが重要です。Javaリフレクションの代替策として、SDOは、EJB Beanに詳述されているエンティティまたはデータ・モデル情報に基づいて、作成するXMLスキーマ定義(XSD)ファイルに格納されているメタデータにアクセスするためのAPIを提供します。

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

JDeveloperのSDO機能は、EJBサービスまたはADF-BCサービスとして使用できます。ADF-BCサービスの使用を選択する場合、weblogic-application.xmlファイルにリスナー参照を追加する必要があります。詳細は、第19.6.5項「JPAエンティティ用のSDOサービス・インタフェースの作成方法」を参照してください。

SDOの詳細および仕様は、OSOA (Open Service Oriented Architecture) (http://www.oasis-opencsa.org/sdo)を参照してください。

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

EJBセッションBeanまたはPlain Old Java Object (POJO)を介してJPAエンティティ・データにアクセスするためのサービス・インタフェースAPIを簡単に作成できます。このサービス・クラスは、JDeveloper Java EEアプリケーション内のJPAエンティティを作成、取得、更新および削除するための操作を公開します。

SDOサービス・インタフェースを作成するには、次のようにします。

1. 1つ以上のJPAエンティティに対するCRUD操作を公開するEJBセッションBeanまたは通常のJavaクラス(POJO)から開始します。
ウィザードを使用してセッションBeanを作成できます。詳細は、第19.7.2項「セッションBeanの作成方法」を参照してください。

2. 「構造」ウィンドウで、EJBセッションBeanまたはPOJOを右クリックして「サービス・インタフェースの作成」を選択します。

3. サービスAPIで使用可能にするメソッドを選択します。
デフォルトでは、セッションBeanインタフェース内のすべてのメソッドが選択されます。チェック・ボックスをクリックし、メソッドを選択するか選択を解除します。

4. このリリースでは、サービス・インタフェースを作成すると、元のセッションBeanファイルおよびリモート(またはローカル)インタフェースが変更されます。元のメソッドと一致する新規メソッドが追加されますが、これらは、JPAエンティティではなく、新しく定義されたSDOデータ・オブジェクトを参照します。これらのSDOデータ・オブジェクトは、JPAエンティティと一致し、XSDファイル(これもプロジェクトに追加されます)で定義され、これらの名前にはDeptSDOやEmployeeSDOなどのようにSDOが付けられます。「バックアップ・ファイル」を選択し、元のセッションBeanファイルのバックアップを作成します。

5. 「OK」をクリックします。

19.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に例19-5のコードを追加します。

例19-5 weblogic-application.xmlに追加するコード

<listener>
<listener-class> oracle.jbo.client.svc.ADFApplicationLifecycleListener
</listener-class>
</listener>

このリスナーが追加されると、SDOサービス・アプリケーション名_JBOServiceRegistry_がcomposite.xml内のファブリック・サービス・レジストリに自動的に登録されます。

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

SDOサービス・インタフェースを作成すると、サービス・インタフェースをサポートするために必要なファイルが自動的に作成されます。これらのファイルには、次のものがあります。

- SessionEJBBeanWS.wsdl - このファイルには、SOAアプリケーションへのエントリ・ポイントまたはSOAアプリケーションからの参照ポイントを提供するサービスの機能が記述されています。WSDLファイルは標準規約言語を提供するもので、サービスの機能を理解する場合に必須です。

- SessionEJBBeanWS.xsd - これは、SDOデータ型の観点からサービス・インタフェース・メソッドを定義するXMLスキーマ・ファイルです。セッションBeanインタフェースに含まれていたすべてのエンティティがこのスキーマ・ファイル内で対応するDataObject要素を持ちます。実行時には、XSDHelper.INSTANCE.define()メソッドを呼び出すことにより、これらのDataObjectにSDOランタイムが登録されます。SDOタイプごとに静的タイプ固有のDataObjectが定義されます。

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

JDeveloper統合サーバーにJPAエンティティをデプロイすると、対応する既存の表がマップされていないすべてのエンティティにデータベース表が自動的に作成されます。マップされていないJPAエンティティごとに、1つのデータベース表が生成されます。

注意:

主キー参照整合性制約が生成されますが、その他の制約は生成されない場合があります。

JPAエンティティからデータベース表を生成するには、次のようにします。

1. モデリング・ツールまたは「エンティティの作成」ウィザードを使用して、JPAエンティティを作成します。詳細は、第19.6.2項「JPAエンティティの作成方法」を参照してください。

2. 必要に応じてエンティティを変更し、フィールドおよび制約を追加します。

3. 表に名前を付けます。

- EJB 3x: Beanクラスに注釈を付けて、表名を指定してください。詳細は、Enterprise JavaBean仕様(http://www.oracle.com/technetwork/java/docs-135218.html)を参照してください。

4. 永続性ユニットをデプロイします。詳細は、第19.10項「EJBモジュールおよびJPA永続性ユニットのデプロイ」を参照してください。

19.6.7 EJB/JPA用の注釈

注釈を使用すると、アプリケーション・コンポーネントに必要なデプロイメント・ディスクリプタの数を減らすことによって開発タスクを簡素化できます。また、注釈は、インタフェースなどのアーティファクトの生成にも使用できます。

注釈は、Javaソース・ファイルに追加されるメタデータ修飾子です。注釈は、コンパイル時にJavaコンパイラによってクラスにコンパイルされ、クラス、フィールド、メソッド、パラメータ、ローカル変数、コンストラクタ、列挙およびパッケージで指定できます。注釈を使用すると、コードの生成、コードの文書化、または実行時の高度なビジネスレベル・セキュリティや特別なビジネス・ロジックなどのサービスの提供のための属性を指定できます。

また、EJB/JPAクラスで使用可能な注釈のタイプはすべてXMLデプロイメント・ディスクリプタ・ファイルに追加することもできます。実行時には、XMLにより、クラス・レベルで追加された任意の注釈がオーバーライドされます。

次のステートレス・セッションBeanのように、注釈には@記号がマークされます。

@Stateless public class MySessionBean

EJB 3xの注釈の詳細は、http://download.oracle.com/javase/1.5.0/docs/guide/language/annotations.htmlを参照してください。

注意:

注釈はEJB 3xの新機能であり、EJBの前のバージョンでは使用できません。

デザインタイム時には、「プロパティ」ウィンドウを通して使用可能な注釈のリストが表示されます。注釈機能を使用すると、任意の適切なJavaクラスをEJBまたはJPAコンポーネントに変更できます。詳細は、第19.6.8項「Javaクラスの注釈方法」を参照してください。

19.6.7.1 EJB 3.x

注釈を使用してBeanタイプを示すことができます。Beanタイプの注釈を標準クラスに追加すると、EJBになります。

次のタイプの注釈を使用できます。

- ステートレス・セッションBeanです。「True」または「False」を選択し、ステートレス・セッションBeanとしてクラスに注釈を付けます。

- ステートフル・セッションBeanです。「True」または「False」を選択し、ステートフル・セッションBeanとしてクラスに注釈を付けます。

- これは、シングルトン・セッションBeanです。「True」または「False」を選択し、シングルトン・セッションBeanとしてクラスに注釈を付けます。

- メッセージドリブンBeanです。「True」または「False」を選択し、メッセージドリブンBeanとしてクラスに注釈を付けます。

19.6.7.2 JPA 2.0

注釈は、新規Java永続性APIをエンティティBeanの代替手段としてサポートします。

次のタイプの注釈を使用できます。

- JPAエンティティです。「True」または「False」を選択し、JPAエンティティとしてクラスに注釈を付けます。

- JPAマップされたスーパークラスです。「True」または「False」を選択し、JPAマップされたスーパークラスとしてクラスに注釈を付けます。

- JPA埋込み可能です。「True」または「False」を選択し、JPA埋込み可能としてクラスに注釈を付けます。

標準JavaクラスをEJB/JPAコンポーネントに変換した後、またはEJB/JPAウィザードの1つを使用してコンポーネントを作成した場合、「プロパティ」ウィンドウには、異なるコンテキスト・オプション・セットが表示され、これを使用して、コンポーネント・クラス内の様々なメンバーの注釈を追加または編集できます。

19.6.8 Javaクラスの注釈方法

設計時には、クラスに挿入可能な注釈のリストが表示されます。これらのオプションは、使用しているクラスのタイプや選択したメンバーの内容によって異なります。

任意の標準Javaクラスに注釈を付けてEJB/JPAコンポーネントにすることができます。注釈を使用してクラスをEJB/JPAとして定義した後、JDeveloperの「プロパティ」ウィンドウ内で選択可能な様々なメンバー・レベルの注釈を使用してコンポーネントを簡単にカスタマイズできます。

注意:

注釈はEJB 3xでのみ使用可能であり、EJBの前のバージョンでは使用できません。

JavaクラスにEJB/JPAコンポーネントとして注釈を付けるには、次のようにします。

1. 「アプリケーション」ウィンドウで、変換するクラスを選択します。

2. 「構造」ウィンドウで、クラス名をダブルクリックします。
クラスがJavaソース・エディタで開いている場合、クラス定義行にカーソルを置きます。

3. 「プロパティ」ウィンドウを開き、「EJB」/「JPA」タブを選択して、作成するコンポーネントのタイプを選択します。「True」を選択します。

JavaクラスがEJB/JPAコンポーネントとして注釈を付けられると、「プロパティ」ウィンドウでは「EJB/JPA」タブが表示されなくなり、選択したコンポーネント・タイプに固有の新規タブが表示されます。コンポーネントを標準Javaクラスに戻すには、コードから注釈を削除し、「プロパティ」ウィンドウに表示されているEJB/JPAコンポーネント・タイプをリセットします。

注意:

ウィザードを介して作成されたEJBまたはJPAコンポーネントには、すでにクラス・タイプの注釈が含まれます。詳細は、第19.3項「EJB 3xアプリケーションのビルドおよび開発プロセス」を参照してください。

クラス・レベルの注釈を使用してJavaクラスがEJB/JPAコンポーネントに変換されたら、「プロパティ」ウィンドウを使用して、このコンポーネント内のメンバー・フィールドまたはメソッドに対する注釈を追加または編集します。

EJB/JPAコンポーネント内の注釈を追加または編集するには、次のようにします。

1. 「アプリケーション」ウィンドウで、注釈をつけるクラスを選択します。

2. 「構造」ウィンドウで、注釈を付けるメンバーをダブルクリックします。
クラスがJavaソース・エディタで開いている場合、かわりに注釈を挿入する場所にカーソルを置きます。

3. 「プロパティ」ウィンドウで、指定したEJB/JPAタイプに対応するタブを選択します。

4. 選択した特定のメンバーで使用可能な任意の注釈から選択します。

19.6.9 エンティティ間の関連の表現

データベース表からエンティティを作成すると、外部キーはエンティティ間の関連として解析されます。これらの関連をさらに定義したり、新規関連を作成したり、JDeveloperのモデリング・ツールを使用して既存の関連を既存の表にマップできます。モデリング・ツールを使用すると、関連をエンティティ間の線で表したり、線の構成を変更することによって関連を変更できます。詳細は、第5.7項「EJB/JPAコンポーネントのモデル化」を参照してください。

19.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によって表されるリモート・インタフェースを返すために内部で使用されます。

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

Java永続性APIを使用すると、Java EE 5アプリケーション・サーバーの内部とEJBコンテナの外部の両方で動作する標準的で移植可能な方法でJavaオブジェクトをリレーショナル・データベース表に宣言的にマップできます。このアプローチの場合、Java永続性が大幅に簡素化され、オブジェクト・リレーショナル・マッピング・アプローチが提供されます。

Oracle TopLinkでは、Javaソース・コード内のメタデータ注釈を使用してエンティティのJPA動作を構成できます。実行時に、コードは対応するJavaクラス・ファイルにコンパイルされます。

JavaクラスをJPAエンティティとして指定するには、例19-6に示すように、@Entity注釈を使用します。

例19-6 エンティティ注釈

@Entity
public class Employee implements Serializable {
...
}

注釈を選択して追加し、デプロイメント・ディスクリプタに指定されているデフォルトをオーバーライドできます。

JPA注釈の詳細は、TopLink JPA注釈参照(http://www.oracle.com/technetwork/middleware/ias/toplink-jpa-annotations-096251.html)を参照してください。

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

Javaサービス・ファサードは、アプリケーション・サーバーなしで実行可能な軽量テスト環境を実装します。EJB 3xの場合、Javaサービス・ファサードは、コンテナなしで同じ永続性ユニットのエンティティに対してファサード・メソッドを生成できるため、EJBセッション・ファサードと類似しています。

ワークフローをJavaサービス・ファサードと分離すると、参加者JPAオブジェクトにクライアントが直接依存しなくなるため、設計の柔軟性が高まります。参加者を変更するにはJavaサービス・ファサードの変更が必要になる可能性がありますが、ワークフローをファサード内で集中管理すると、このような変更をより管理しやすくなります。すべてのクライアントを変更しなくてもJavaサービス・ファサードを変更するだけですみます。また、ワークフローの職責がセッション・ファサードに委任されたため、クライアント・コードもより単純になりました。クライアントは、ビジネス・オブジェクト間の複雑なワークフロー相互作用を管理する必要がなくなっただけでなく、ビジネス・オブジェクト間の相互依存性も認識する必要はありません。

main()メソッドを使用してサンプルJavaクライアントを生成してJavaサービス・クラスを実行可能にすることを選択できます。

JDeveloperの「Javaサービス・ファサード」ウィザードは、エンティティに対するサービス・ファサードとしてJavaクラスを作成する際に使用します。新規Javaサービス・ファサードを作成するには、メイン・メニューから「ファイル」→「新規」を選択し、さらに「新規ギャラリ」で「ビジネス層」を開いて「EJB」を選択し、「Javaサービス・ファサード」を選択して「OK」をクリックします。

また、サービス・ファサードからデータ・コントロールを作成することもできます。「アプリケーション」ウィンドウで、サービス・ファサードの名前を右クリックして「データ・コントロールの作成」を選択します。「Beanデータ・コントロール・インタフェース・チューザ」ダイアログから、oracle.binding.*データ・コントロール・インタフェースの実装を選択できます。このインタフェースには、TransactionalDataControl、UpdatableDataControlおよびManagedDataControlがあります。詳細は、ダイアログで「ヘルプ」ボタンを選択してください。

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

主キーは、1つ以上の持続属性を持つ一意の識別子です。これは、同じタイプの他のすべてのインスタンスからクラスの1つのインスタンスを識別します。主キーは、リレーションシップの定義および問合せの定義に使用します。

JPAエンティティ・インスタンスごとに1つの主キーが必要です。データベース・スキーマに応じて、永続フィールドからシンプル主キーを定義したり、複数の永続フィールドからコンポジット主キーを定義できます。また、自動主キー値生成を定義し、JPAエンティティ実装を簡素化することもできます。

シンプル主キーを指定する最も簡単な方法は、単一のプリミティブに対する注釈を使用するか、JDKオブジェクト・タイプ・エンティティ・フィールドを主キーとして使用することです。また、マッピング・ディスクリプタXML (orm.xmlファイル)を使用して、デプロイ時にシンプル主キーを指定することもできます。

注釈を使用してシンプル主キーを構成するには、次のようにします。

1. JPAエンティティ実装で、例19-7に示すように、@Id注釈を使用して主キー・フィールドに注釈を付けます。

例19-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. アプリケーションをパッケージ化し、デプロイします。

マッピング・ディスクリプタ(orm.xml)を使用してエンティティのマッピングを構成する手順は次のとおりです。

永続性ユニットに対してマッピング・ファイル(orm.xml)を作成します。

1. 「概要」エディタでpersistence.xmlファイルを開きます。

2. 「一般」タブを選択し、「JPAマッピング・ディスクリプタ」セクションで、「新規のJPAマッピング・ディスクリプタの作成」をクリックします。

3. 「概要」エディタでorm.xmlファイルを開きます。

4. 目的のエンティティを追加するには、「一般」タブを選択し、さらに「マップされたクラス」を選択し、「エンティティ」を選択した後で[+]ボタンをクリックします。
orm.xmlファイルが作成され、1つのエンティティに対してエントリが追加されます。そのエンティティにマッピングを追加する際、注釈またはXML(または、その両方)を使用してマッピングを保存するよう要求されます。

orm.xmlファイルでのIDマッピングの構成

1. 「概要」エディタで、マッピング・ディスクリプタ(orm.xml)を使用してエンティティ・マッピングを構成する手順に関する項で作成したorm.xmlをダブルクリックします。

2. 「構造」ペインで、作成したエンティティが表示されるまでペインを拡大します。その後で、目的の「ID」フィールドを右クリックして「マップ」→「ID」を選択します。要求されたら、XMLを選択してorm.xmlファイル内にメタデータを永続させます。これは、例19-8に示すように表示されます。

例19-8 マッピングXMLを使用した主キーの構成

<?xml version="1.0" encoding="windows-1252" ?>
<entity-mappings xmlns="<a target="_blank" href="http://www.eclipse.org/eclipselink/xsds/persistence/orm"">http://www.eclipse.org/eclipselink/xsds/persistence/orm"</a>
xmlns:xsi="<a target="_blank" href="http://www.w3.org/2001/XMLSchema-instance"">http://www.w3.org/2001/XMLSchema-instance"</a>
xsi:schemaLocation="<a target="_blank" href="http://www.eclipse.org/eclipselink/xsds/persistence/orm">http://www.eclipse.org/eclipselink/xsds/persistence/orm</a> <a target="_blank"                  href="http://www.eclipse.org/eclipselink/xsds/eclipselink_orm_2_4.xsd"">http://www.eclipse.org/eclipselink/xsds/eclipselink_orm_2_4.xsd"</a>
version="2.4">
<entity class="model1.Departments">
<attributes>
<id name="departmentId"/>
</attributes>
</entity>
</entity-mappings>

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

セッションBeanは、アプリケーション・サーバー内の単一クライアントを表します。サーバー上でデプロイされたアプリケーションにアクセスするために、クライアントはセッションBeanメソッドを呼び出します。セッションBeanは、サーバー内でビジネス・タスクを実行することによってクライアントに複雑な処理が及ばないようにしながら、クライアントのために処理を実行します。セッションBeanは、インタラクティブ・セッションと類似しています。インタラクティブ・セッションに関わることができるのは1人のユーザーのみであるのと同じように、セッションBeanは共有されず、1つのクライアントのみが関わります。インタラクティブ・セッションの場合と同様、セッションBeanはデータをデータベースに保存しないため、永続的ではありません。クライアントが終了すると、セッションBeanは終了したように見え、クライアントとは関係なくなります。

JDeveloperの「セッションBean」ウィザードを使用して、セッションBeanおよびセッションBeanファサードを作成します。詳細は、第19.7.2項「セッションBeanの作成方法」を参照してください。

セッションBeanには、次のように3種類あります。

- ステートフル。ステートフル・セッションBeanは、クライアントのかわりに対話状態を維持します。対話状態は、セッションBeanフィールド値とセッションBeanフィールドから到達可能なすべてのオブジェクトとして定義されます。ステートフル・セッションBeanは、永続的なデータ・ストアのデータを直接表すものではなく、クライアントのかわりにデータにアクセスしてデータを更新します。通常、ステートフル・セッションBeanの存続期間はクライアントの存続期間と同じです。

- ステートレス。ステートレス・セッションBeanは厳密には、サーバー側の動作を提供することを目的として設計されています。これは、ユーザー固有のデータを含まないため、無名です。EJBアーキテクチャは、単一のステートレス・セッションBeanが多くのクライアントのニーズに応じて処理を実行する手段を提供します。クライアントによって呼び出されたメソッドに応じた処理にかかわらない場合、ステートレス・セッションBeanインスタンスはすべて同等です。ステートレスという用語は、特定のクライアントに関するステート情報を持たないことを意味します。ただし、ステートレス・セッションBeanは、オープン・データベース接続など、クライアント固有ではないステートを持つ場合があります。

- シングルトン。シングルトン・セッションBeanはステートレス・セッションBeanと同様に機能しますが、一連のステートレス・セッションBeanの中で任意のものがクライアント・リクエストに応答できるのとは対照的に、アプリケーションごとに存在するシングルトン・セッションBeanのインスタンスは1つだけである点が異なります。ステートレス・セッションBeanと同様、シングルトン・セッションBeanはWebサービス・エンドポイントを実装できます。シングルトンを使用すると、エンタープライズBeanコンポーネントの複数のインスタンス間で、またはアプリケーション内の複数のエンタープライズBeanコンポーネント間で容易に状態を共有することができます。シングルトン・セッションBeanはクライアントの起動間で状態を維持しますが、サーバーのクラッシュまたはシャットダウン時でも状態を維持するように求められていません。

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

JDeveloperでは、「セッションBean作成」ウィザードを介してセッションBeanを作成する場合は常に、セッション・ファサード・メソッドの自動生成を選択できます。これにより、ビジネス・ワークフローのセッション・ファサードとして機能するセッションBeanが作成されます。詳細は、第19.7.2項「セッションBeanの作成方法」を参照してください。

セッション・ファサードはセッションBeanとして実装されます。セッションBeanファサードは、アプリケーションのビジネス・サービスに対して単一のインタフェースを提供することにより、ワークフローに参加するビジネス・オブジェクト間の複雑な相互作用をカプセル化します。セッション・ファサードは、多数のBusinessObjects間の関連を管理し、クライアントに対して高度な抽象化を提供します。

セッション・ファサードにはステートフル、ステートレス、またはシングルトンのいずれでも使用できます。これは、ウィザードでセッション・ファサードを作成する際に定義します。

セッション・ファサードの詳細は、Oracle Technology Network (http://www.oracle.com/technetwork/java/sessionfacade-141285.html)を参照してください。

ウィザードを使用して、セッションBeanの作成時にセッション・ファサードを自動的に実装して、実装するメソッドを選択します。EJBエンティティを作成すると、同じプロジェクト内で作成するセッションBeanは、公開するエンティティおよびメソッドを認識します。

19.7.2 セッションBeanの作成方法

セッションBeanウィザードを使用して、新規のセッションBeanまたはセッション・ファサードBeanを作成します。また、モデリング・ツールを使用してセッションBeanを作成することもできます。

ウィザードを使用してセッションBeanまたはセッション・ファサードを作成するには、次のようにします。

1. メイン・メニューから「ファイル」→「新規」の順に選択します。

2. 「新規ギャラリ」で、「ビジネス層」を開いて「EJB」を選択し、さらに「セッションBean」を選択して、「OK」をクリックします。
ヒント: よく使用される選択項目は、容易にアクセスできるように「ファイル」メニューに保存されます。

注意:

セッション・ファサードBeanを生成するには、永続性ユニットがすでに作成されている必要があります。永続性ユニットを生成するには同じステップに従いますが、「セッションBean」ではなく「JPA永続性ユニット」を選択します。

3. Beanをセッション・ファサードにするには、「EJBの名前とオプション」ページで「セッション・ファサード・メソッドの生成」を選択します。
詳細は、随時[F1]を押すか、ウィザード内で「ヘルプ」をクリックしてください。

4. 「セッションBean作成」ウィザードで、その他の手順をすべて実行します。

セッションBeanファサード・メソッドを追加または削除するには、次のようにします。

1. 「アプリケーション」ウィンドウで、編集するセッションBeanを選択します。

2. 右クリックして「セッション・ファサードの編集」を選択します。

3. 「セッション・ファサード・オプションの指定」ダイアログで、リスト上のメソッドを選択してメソッドがファサードを介して公開されるようにするか、メソッドの選択を解除してメソッドが公開されないようにします。

セッション・ファサードの詳細は、コアJ2EEパターン・カタログ(http://www.oracle.com/technetwork/java/sessionfacade-141285.html)を参照してください。

セッションBeanとエンティティ間のローカル参照を作成して、セッション・ファサードを手動で作成することもできます。

ローカル参照を作成するには、次のようにします。

1. まだ作成していない場合は、セッションBeanを作成します。

2. Bean間にローカル参照を作成します。

- Beanクラスの場合: EJB 3xを使用している場合は、Beanクラスに注釈を付けて参照を作成します。

- EJBモジュール・エディタを使用する場合: EJB 2.1 (および以前のバージョン)を使用している場合は、「アプリケーション」ウィンドウでEJBノードを選択し、「構造」ペインで「メソッド」をダブルクリックし、「EJBモジュール・エディタ」を開きます。「EJBローカル参照」を選択します。

EJBダイアグラムでセッションBeanを作成するには、次のようにします。

1. 「アプリケーション」ウィンドウから、EJBダイアグラムを開きます。
EJBダイアグラムを使用していない場合は、メイン・メニューから「ファイル」→「新規」を選択します。「新規ギャラリ」で、「ビジネス層」を開いて「EJBダイアグラム」を選択し、「OK」をクリックします。

2. 「コンポーネント」ウィンドウで、「セッションBean」をクリックします。
「コンポーネント」ウィンドウが表示されない場合は、「表示」メニューから「コンポーネント」を選択します。

3. EJBダイアグラムの中をクリックします(ドラッグ・アンド・ドロップしないでください)。

19.7.3 EJBモジュールでのセッションBeanの作成方法

新規EJBモジュールと既存のEJBモジュールの両方でセッションBeanを作成できます。

既存のEJBモジュールにセッションBeanを作成する手順は次のとおりです。

1. 「アプリケーション」ウィンドウで、EJBプロジェクトを右クリックして、「新規」→「セッションBean」を選択します。
または、プロジェクトを選択して、メイン・メニューで「ファイル」→「新規」→「ギャラリから」を選択します。「新規ギャラリ」で、「ビジネス層」を開いて「EJB」を選択し、さらに「セッションBean」を選択して、「OK」をクリックします。

2. 「セッションBean作成」ウィザードの手順を実行します。

新規のEJBモジュールにセッションBeanを作成する手順は次のとおりです。

1. 「アプリケーション」ウィンドウで、「ファイル」→「新規」→「プロジェクト」を選択します。

2. 「新規ギャラリ」で、作成するプロジェクトのタイプを選択し、「OK」をクリックします。

3. 「アプリケーション」ウィンドウで、新規プロジェクトを右クリックして、「新規」→「ギャラリから」を選択します。「新規ギャラリ」で、「ビジネス層」のカテゴリを開いて「EJB」を選択し、さらに「セッションBean」を選択して、「OK」をクリックします。
または、プロジェクトを選択して、「新規」→「セッションBean」を選択します。

4. 「セッションBean作成」ウィザードの手順を実行します。

19.7.4 EJBモジュールでのメッセージドリブンBeanの作成方法

新規モジュールと既存のモジュールの両方でEJBを作成できます。

既存のEJBモジュールにメッセージドリブンBeanを作成する手順は次のとおりです。

1. 「アプリケーション」ウィンドウで、EJBプロジェクトを右クリックして、「新規」→「メッセージドリブンBean」を選択します。
または、プロジェクトを選択して、メイン・メニューで「ファイル」→「新規」→「ギャラリから」を選択します。「新規ギャラリ」で、「ビジネス層」を開いて「EJB」を選択し、さらに「メッセージドリブンBean」を選択して、「OK」をクリックします。

2. 「メッセージドリブンBean作成」ウィザードの手順を実行します。

新規のEJBモジュールにメッセージドリブンBeanを作成する手順は次のとおりです。

1. 「アプリケーション」ウィンドウで、「ファイル」→「新規」→「プロジェクト」を選択します。

2. 「新規ギャラリ」で、作成するプロジェクトのタイプを選択し、「OK」をクリックします。

3. 「アプリケーション」ウィンドウで、新規プロジェクトを右クリックして、「新規」→「ギャラリから」を選択します。「新規ギャラリ」で、「ビジネス層」のカテゴリを開いて「EJB」を選択し、さらに「メッセージドリブンBean」を選択して、「OK」をクリックします。
または、プロジェクトを選択して、「新規」→「メッセージドリブンBean」を選択します。

4. 「メッセージドリブンBean作成」ウィザードの手順を実行します。

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

プロジェクトにEJBが追加された後、そこに含まれるメソッドを追加、削除または編集できます。次で説明するようにメソッドを追加すると、定義時に変更がリモート・インタフェースとホーム・インタフェースで同期化されます。

メソッドを追加する手順は次のとおりです。

1. 「アプリケーション」ウィンドウで、EJBを選択します。

2. 構造ペインでEJBを右クリックし、「Enterprise Java Bean (EJB)」→「新規メソッド」を選択します。

3. 「Beanメソッドの詳細」ダイアログで、必要に応じて詳細を追加します。

4. 完了後、「OK」をクリックします。

メソッドを削除する手順は次のとおりです。

1. 「アプリケーション」ウィンドウで、EJBを選択します。

2. 構造ペインで、メソッドをダブルクリックしてソース・ファイル内で検索します。

3. ソース・ファイルで、メソッドを削除します。

メソッドを編集する手順は次のとおりです。

1. 「アプリケーション」ウィンドウで、EJBを選択します。

2. 構造ペインで、EJBを右クリックし、「Enterprise Java Bean (EJB)」→「プロパティ」を選択します。

3. 「Beanメソッドの詳細」ダイアログで、必要に応じて詳細を編集します。

4. 完了後、「OK」をクリックします。

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

EJBダイアグラムまたはEJBモジュール・エディタを介して、EJBにフィールドを追加できます。

1. 「アプリケーション」ウィンドウで、EJBを選択します。

2. 構造ペインで、EJBを右クリックし、「Enterprise Java Bean (EJB)」ノード→「新規フィールド」を選択します。

3. 「フィールド詳細」ダイアログで、必要に応じて詳細を追加します。

4. 完了後、「OK」をクリックします。

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

次に示すように、フィールドをEJBから削除できます。

EJBダイアグラム上のフィールドを削除するには、次のようにします。

1. EJB上のフィールド・コンパートメント(最初のコンパートメント)をクリックします。

2. フィールドを強調表示して[Del]キーを押します。

「アプリケーション」ウィンドウを使用してフィールドを削除する手順は次のとおりです。

1. 「アプリケーション」ウィンドウで、EJBを選択します。

2. 構造ペインで、フィールドをダブルクリックしてソース・ファイル内で検索します。

3. ソース・ファイルで、フィールドを削除します。

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

環境エントリは、Beanのビジネス・ロジックをカスタマイズできる名前と値のペアです。環境エントリはエンタープライズBeanのデプロイメント・ディスクリプタに格納されるため、ソース・コードを変更せずにBeanのビジネス・ロジックを変更できます。

たとえば、注文を計算するEJBは、受注数量や特定のステータス(シルバー、ゴールド、プラチナ)に応じて、あるいは販売促進のために、割引きを行うことがあります。Beanのアプリケーションをデプロイする前に、特定の割引率を指定できます。アプリケーションを実行すると、メソッドは環境エントリをコールして割引値を調べます。別のデプロイメントについてその割引率を変更する場合、ソース・コードを変更する必要はなく、デプロイメント・ディスクリプタの環境エントリの値を変更するだけです。

ソース・コードで環境エントリに注釈を付けます。

完全なEJB 3x Java Community Processの仕様およびドキュメントは、http://www.oracle.com/technetwork/java/docs-135218.htmlを参照してください。

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

クライアントにデータを公開する方法は、アプリケーションの開発方法に応じて異なります。

- Oracle ADFフレームワークを使用している場合、クライアントに対するデータ公開の推奨方法は、セッション・ファサードのデザイン・パターンを実装し、セッションBeanをデータ・コントロール・パレットに挿入することです。このオプションは、データ統合を大幅に簡素化し、JDeveloper Studioリリースでのみ使用できます。詳細は、第19.7項「セッションBeanでのビジネス・プロセスの実装」および第19.7.1項「セッション・ファサードの使用」を参照してください。

- Oracle ADFフレームワークを使用していない場合は、通常はマネージドBeanを作成してJSF/JSPページへの接続を調整します。詳細は、第18.2項「JavaServer Facesを使用したアプリケーションの開発」を参照してください。

19.7.10 リソース参照の識別方法

リソース参照は、リソースに対するコンポーネントのコード名を識別するデプロイメント・ディスクリプタ内の要素です。リソース参照は、コネクタおよびデータベース接続を取得するため、ならびにJMS接続ファクトリ、JavaMailセッションおよびURLリンクにアクセスするために使用されます。

EJB 3xリソース参照を追加または変更する手順は次のとおりです。

ソース・コードに移動し、リソース参照に注釈を付けます。

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

特定のADF Faces機能では、主キーを指定する必要があります。たとえば、af:tableSelectManyコンポーネントを使用するADF Faces表がある場合、ソートを実装するために主キーを指定する必要があります。EJB/JPAエンティティを表から(EJB 3xを使用して)作成する場合、デフォルトでは主キーが指定されます。しかし、主キーを指定する必要がある場合は、次を実行します。

属性を主キーとして指定するには、次のようにします。

1. ADFデータ・コントロールを作成して、エンティティ別にXML定義を作成します。詳細は、『Oracle ADFデータ・コントロールによるアプリケーションの開発』のADFデータ・コントロールの使用に関する項を参照してください。

2. 「アプリケーション」ウィンドウで、EJBエンティティのXMLファイルを選択します。

3. 「構造」ウィンドウでエンティティ属性を選択し、さらに「表示」メニューから「プロパティ」を選択します。

4. 「プロパティ」ウィンドウで主キーとして必要な属性を検索し、「主キー」の値を「True」に設定します。

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

JDeveloperでは、ADF Fusion Webアプリケーションを構築する際にデータ・コントロール・コンポーネントの完全セットが自動的に提供されます。Java EEアプリケーションまたはEJBプロジェクト(あるいはその両方)を構築する場合、個別セッションBeanでADFデータ・コントロールを割り当てます。これにより、Beanと同じ名前のデータ・コントロール・ファイルが追加されます。

詳細は、『Oracle ADFデータ・コントロールによるアプリケーションの開発』のADFデータ・コントロールの使用に関する項を参照してください。

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

ダイアグラムでのEJBおよびJPAコンポーネントのモデル化の詳細は、第5.7項「EJB/JPAコンポーネントのモデル化」を参照してください。

19.9 Webアプリケーションの一部としてのEJBのデプロイ

EJB 3.1では、エンタープライズBeanクラスはejb-jarファイルにパッケージ化する必要があるという制約が解除されています。したがって、EJBクラスは、Webアプリケーション・クラスに適用されるものと同じパッケージ化ガイドラインを使用して、Webアプリケーション・アーカイブ(WAR)の中に直接パッケージ化できます。EJBクラスをWEB-INF/classesディレクトリに置くか、WEB-INF/libディレクトリ内のJARファイルに入れるだけです。オプションとして、EJBデプロイメント・ディスクリプタを使用している場合は、WEB-INF/ejb-jar.xmlとしてパッケージ化することもできます。

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

EJBモジュールは、1つ以上のEJB、永続性ユニットおよびオプションのEJBデプロイメント・ディスクリプタで構成されるソフトウェア・ユニットです。1つのJDeveloperプロジェクトに含まれるのは、1つのEJBモジュールのみです。デプロイ時には、モジュールはejb.jarファイルとしてパッケージ化されます。

19.10.1 JPAエンティティBeanのデプロイ

エンティティBeanは以前、セッションBeanおよびメッセージドリブンBeanとともにEJB JARファイルに1回だけパッケージ化されていました。しかし、JPAエンティティおよび永続性ユニットのテクノロジにより、これらはデプロイ時に独自のJARファイルpersistenceunit.jarにパッケージ化されます。

この方法により、エンティティBean (JPAエンティティ)は、persistence.xmlファイルが含まれているJPA永続性アーカイブJARに個別に格納されます。JPA永続性ユニットはEJBモジュール・パッケージの一部である必要はなく、the ejb.jarファイル内にバンドルできます。

19.10.2 EJBモジュールについて

1つのJDeveloperプロジェクトに含まれるのは、1つのEJBモジュールのみです。プロジェクト内で最初のセッションBeanまたはメッセージドリブンBeanを作成する場合、モジュールが存在しなければ、モジュールは自動的に作成されます。新規EJBモジュールのEJBバージョンと永続性マネージャは選択できます。

プロジェクトをデプロイする場合、セッションBeanおよびメッセージドリブンBeanとデプロイメント・ディスクリプタの集合を、アプリケーション・サーバーへのデプロイメントまたはアーカイブ・ファイルとしてのデプロイメントの準備が整っているEJB JARファイル(.jarファイル)に変換します。永続性ユニットを独自のJARファイルに限定することにより、永続性ユニットを他のアプリケーションで簡単に再利用できるようになります。詳細は、第9.1項「アプリケーションのデプロイについて」を参照してください。

19.10.3 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 3xアプリケーションには、明示的に、またはJDeveloperのデフォルトの永続性ユニットを使用して少なくとも1つの永続性ユニットのルートを定義する必要があります。永続性ユニットをデプロイすると、persistenceunit.jarと呼ばれるJARファイルが作成されます。詳細は、第9.1項「アプリケーションのデプロイについて」を参照してください。

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

「永続性ユニット」ウィザードを使用してエンティティの永続性ユニットを作成できます。また、JPAエンティティを作成する場合、デフォルトの永続性ユニットがまだない場合はこれが作成されます。

JPA永続性ユニットを作成するには、次のようにします。

1. 「アプリケーション」ウィンドウでプロジェクトを選択して、「ファイル」メニューから「新規」→「ギャラリから」を選択します。

2. 「新規ギャラリ」から「ビジネス層」を開いて「EJB」を選択し、さらに「JPA永続性ユニット」を選択して、「OK」をクリックします。

3. 「新規の永続性ユニット」ウィザードのステップを完了します。

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

EJBモジュールからEJBを削除するには、「アプリケーション」ウィンドウでEJBを選択して、「削除」を押します。

19.10.6 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. 「インポート」ウィザードの手順を実行します。
既存のモジュールに同じ名前のEJBがすでに存在している場合、競合を避けるため、そのEJBはインポートされません。

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

EJBをテストするには、EJBインスタンスを作成または検索し、そのリモート・インタフェース・メソッドをコールできるクライアント・プログラムを実行する必要があります。JDeveloperには、迅速にクライアントを作成できるサンプル・クライアント・ユーティリティが用意されています。EJBの実行およびテストには、統合サーバーまたはリモート・サーバーを使用しますが、どちらの場合にもサンプル・クライアント・ユーティリティを使用してクライアントを作成できます。

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

統合Oracle WebLogic ServerはJDeveloper内で動作します。このサーバーを使用すると、EJBの迅速かつ簡単な実行およびテストが可能であり、何の変更も加えずにそのEJBをデプロイできます。このサーバーを使用する場合、デプロイメント・プロファイルは不要で、初期化の必要もありません。

統合Oracle WebLogic Serverでサンプル・セッションBeanクライアントを実行する手順は次のとおりです。

1. 「アプリケーション」ウィンドウでセッションBeanを右クリックして、「実行」を選択します。
「メッセージ」ペインではOracle WebLogic Serverは起動しています。

2. セッションBeanを右クリックして、ポップアップ・メニューから「サンプルJavaクライアントの作成」を選択します。

3. デフォルトで、統合Oracle WebLogic Serverに対してクライアントを作成するオプションが選択されているので、「OK」をクリックします。
クライアントが作成され、コード・エディタで開かれます。

BeanがJPAエンティティに対するファサードとして機能する場合、問合せメソッドをインスタンス化するためのコードが生成されます。Beanに対してメソッドを公開した場合、生成されたクライアントには、非コメント化して呼び出すことができるメソッドが含まれます。

4. Beanが「アプリケーション」ウィンドウから正常に起動されたら、サンプル・クライアントを右クリックして「実行」を選択します。

統合Oracle WebLogic ServerでサンプルMDBクライアントを実行する手順は次のとおりです。

統合Oracle WebLogic ServerでサンプルMDBクライアントを正常に実行するには、まず、対応するJMSキュー・リソースをWebLogic Serverドメインに作成する必要があります。

1. 『Oracle WebLogic Server JMSリソースの管理』にあるJMSのキューおよびトピックの宛先構成に関する項の指示に従ってください。

2. JMSモジュール・リソースを作成する場合は、次のガイドラインを使用してください。

1. 新規のキュー・リソース(たとえば、"DefaultQueue")を使用して、新規のテストJMSモジュール(たとえば、"TestJmsModule")を作成します。

2. 生成したMDBのマップされた名前(たとえば、"weblogic.wsee.DefaultQueue")に一致するJNDI名を使用します。

3. デフォルトのサブデプロイメント・リソース(たとえば、"DefaultQueue")を追加し、それを、ドメインのDefaultServerインスタンスに関連付けられているJMSサーバーのターゲットとします。

3. 「統合Oracle WebLogic Serverでサンプル・セッションBeanを実行する手順」に示した手順を実行します。ただし、「アプリケーション」ウィンドウで、MDBを選択してサンプル・クライアントを作成および実行します。

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

リモート・サーバー上でEJBをテストするには、EJBをデプロイしてからサンプル・クライアントを作成する必要があります。最初にデプロイを行うと、デプロイされたアプリケーションがフレームワークによって取得され、それがクライアントの選択リストに移入されます。

警告:

同じモジュールで異なるEJBバージョンを組み合せることはできません。

リモート・サーバーを使用してサンプル・クライアントを実行するには、次のようにします。

1. 必要に応じて、実行しているアプリケーション・サーバーに対する接続を作成します。詳細は、「ターゲット・アプリケーション・サーバーへの接続の作成方法」を参照してください。

2. プロジェクトレベルのEJB JARデプロイメント・プロファイルを作成します。

1. 「アプリケーション」ウィンドウで、プロジェクトのノードを右クリックし、「デプロイ」→「新規デプロイメント・プロファイル」を選択します。

2. 「デプロイメント・プロファイルの作成」ダイアログで、EJB JARファイルのプロファイル・タイプを選択し、そのプロファイルの名前を入力します。「OK」をクリックすると、「EJB JARデプロイメント・プロファイルのプロパティの編集」ダイアログが表示されます。デフォルトを受け入れて「OK」をクリックします。

3. アプリケーションレベルのEARタイプのデプロイメント・プロファイルを作成します。

1. 「アプリケーション」→「デプロイ」→「新規デプロイメント・プロファイル」の順に選択します。

2. 「デプロイメント・プロファイルの作成」ダイアログで、EARファイルのプロファイル・タイプを選択し、そのプロファイルの名前を入力します。「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. 「アプリケーション」ウィンドウで新規クライアントを右クリックして、「実行」を選択します。
「メッセージ」ペインに実行の出力が表示されます。

19.11.3 JUnitを使用したEJBユニットのテスト方法

JDeveloperでは、EJBに対するJUnit回帰テストがサポートされています。JUnitは、JDeveloperのオプション機能として用意されているオープン・ソースのJava回帰テスト用のフレームワークです。この機能を使用するには、JUnit拡張機能をインストールする必要があります。

JUnitを使用して、コードを検証するテストを記述および実行します。JUnit拡張機能をインストールした後、シンプル・ウィザードを使用してセッションBeanまたはJavaクラス・ファイルを選択し、これらのファイル内でテストするメソッドを選択し、JUnitテストを開始できます。

EJBに対してJUnitテストを実行するには、次のようにします。

1. JDeveloperの「ヘルプ」メニューからJUnit拡張機能をインストールします。詳細は、第13.4.1項「JUnitのインストール方法」を参照してください。

2. 「アプリケーション」ウィンドウでEJBセッションBeanまたは通常のJavaクラス(POJO)を右クリックして(または、ウィザードの中から移動することもできます)、「新規」→「ギャラリから」を選択します。

3. 「新規ギャラリ」から「ビジネス層」および「EJB」を開き、「EJB JUnit TestCase」を選択して、「OK」をクリックします。

4. JUnitウィザードを起動します。

5. ウィザードのステップを完了します。

20 Oracle TopLinkによるアプリケーションの永続性の開発

この章では、JDeveloperのビジュアル・ツールを使用して、Oracle TopLinkにより永続性を実装する方法について説明します。TopLinkディスクリプタや、Javaクラス、EJBおよびJPAエンティティからデータソース要素(データベース表またはXMLスキーマ要素)へのマッピングを構成できます。

この章では、次の項目で、TopLinkマッピングの作成およびJDeveloperプロジェクトへのTopLinkマッピングの統合に関する一般的なプロセスを説明します。

- 第20.1項「TopLinkによるアプリケーションの永続性の開発について」

- 第20.2項「TopLink JPAプロジェクトの開発」

- 第20.3項「ネイティブTopLinkマッピングの開発」

- 第20.4項「ネイティブTopLinkリレーショナル・プロジェクトの開発」

- 第20.5項「ネイティブTopLink XMLプロジェクトの開発」

- 第20.6項「ネイティブTopLink EISプロジェクトの開発」

- 第20.7項「ネイティブTopLinkセッションの開発」

- 第20.8項「ネイティブTopLinkアプリケーションの開発」

詳細は、次の項を参照してください。

- 第17章「Java EEアプリケーションの開発のスタート・ガイド」

- 第18章「Webページ・ツールを使用したアプリケーションの開発」

- 第19章「EJBおよびJPAコンポーネントを使用した開発」

- Oracle TopLinkの理解

- Oracle TopLinkソリューション・ガイド

- Oracle TopLink Java Persistence API (JPA)拡張機能リファレンス

- Oracle TopLink Database Webサービスによる永続性アーキテクチャの開発のための開発者ガイド

- Oracle TopLinkによるJAXBアプリケーションの開発

- Oracle TopLinkのJava APIリファレンス

20.1 TopLinkによるアプリケーションの永続性の開発について

Oracle TopLinkは、開発ツールやランタイム機能を備えたオブジェクト永続性およびオブジェクト変換フレームワークです。

TopLinkは、オブジェクト指向のプログラムをデータ構造にリンクします。TopLinkでは、オブジェクト指向データがリレーショナル・データまたはXML文書に変換されます。TopLinkを使用すると、永続性とオブジェクト変換をアプリケーションに組み込むことができます。

JDeveloper内のツールを使用して、Javaクラス、EJBおよびJPAエンティティを構成し、リレーショナル・データベース、企業情報システム(EIS)、XMLスキーマ、JSONドキュメントなど別のデータソースにマップできます。TopLinkでは、JPA、JAXBおよびJava EEなど複数の標準がサポートされています。

Oracle TopLinkには、完全なJPA 1.0および2.0準拠のJPA実装が用意されています。これは、すべての必須機能、多くのオプション機能、および一部の追加機能に完全に準拠しています。

20.2 TopLink JPAプロジェクトの開発

Java永続性API (JPA)は、POJOに基づくJava永続性のための軽量フレームワークです。JPAはEJB 3.x仕様の一部です。JPAは、移植性のある標準的な方法でJavaオブジェクトをリレーショナル・データベース表にマップする方法を宣言して定義できるオブジェクト・リレーショナル・マッピング方法を提供します。また、このAPIを使用すると、EJB 3.0準拠のコンテナ内と標準のJava SE 5およびJava SE 6環境内の両方で、軽量Javaオブジェクト全体にわたって作成、削除および問合せを行うことが可能です。

Oracle TopLinkには、完全なJPA 1.0および2.0準拠のJPA実装が用意されています。これは、すべての必須機能、多くのオプション機能、および一部の追加機能に完全に準拠しています。

TopLinkは、EJB 3.xコンテナの内外でのデプロイメントをサポートしています。これには、Webコンテナ、他のEJB 3.x以外のJava EEコンテナ、およびJava SE環境が含まれます。

TopLinkは、プラガブル永続性機能を介して、任意のEJB 3.x準拠コンテナで永続性プロバイダとして機能します。

JPAのTopLink実装は、EclipseLinkによって提供されます。詳細は、http://wiki.eclipse.org/EclipseLinkを参照してください。

20.2.1 JPAバージョンの指定方法

使用するJPAのバージョン(1.0または2.0)をプロジェクト・レベルで指定できます。新規のマッピング・ファイル、新規の永続性ユニットまたは新規の永続性ディスクリプタ(persistence.xml)を作成する場合、JPAバージョンがまだ選択されていないときは、バージョンを指定できます。これらのアイテムのいずれかがプロジェクトですでに作成されている場合は、プロジェクトのバージョンが使用されます。

JPAバージョンを指定するには、次のようにします。

1. JPAバージョンにまだ関連付けられていないプロジェクトで、次のいずれかを作成します。

- エンティティ。第20.2.2項「エンティティの作成方法」を参照してください。

- JPAマッピング・ディスクリプタ(orm.xml)。第20.2.8項「JPAマッピング・ディスクリプタの作成方法」を参照してください。

- JPA永続性ディスクリプタ(persistence.xml)。第20.2.3項「JPA永続性ディスクリプタ(persistence.xml)の作成および構成方法」を参照してください。

2. JPAバージョンを選択します。

- 「エンティティの作成」ウィザードまたは「エンティティ作成(表ベース)」ウィザードの「バージョン」ページで、「JPA 1.0 (Java EE 5)」または「JPA 2.0 (Java EE 6)」を選択します。

- 「新規の永続性ユニット」ダイアログまたは「新規のJPA永続性ディスクリプタ」ダイアログの「JPAバージョン」で、「JPA 1.0」または「JPA 2.0」を選択します。

20.2.2 エンティティの作成方法

EJB 3.x以降では、JPAエンティティは、リレーショナル・データベースなどのデータ・ストアに格納された永続データを表すPOJOです。一般に、エンティティはリレーショナル・データベースの表を表現し、各エンティティ・インスタンスはその表の行に相当します。JDeveloperでエンティティを作成するには、データベース内の表構造の詳細を含むすべての関連情報を指定します。また、既存のデータベース表からエンティティを作成することもできます。

永続性構成(persistence.xml)がプロジェクトにまだ存在しない場合は、新規の構成が作成されます。

エンティティを表から作成すると、マッピングが自動的に作成されます。このマッピングは後で変更できます。

エンティティを作成するには、次のようにします。

1. 「アプリケーション」ウィンドウで、エンティティを作成するプロジェクトを右クリックし、「新規」を選択します。

2. 「新規ギャラリ」で、「ビジネス層」を展開し、「TopLink/JPA」を選択します。次に「エンティティ」を選択し、「OK」をクリックします。

3. 「エンティティの作成」ウィザードの各フィールドを入力します。

既存のデータベース表からエンティティを作成するには、次のようにします。

1. 「アプリケーション」ウィンドウで、エンティティを作成するプロジェクトを右クリックし、「新規」を選択します。

2. 「新規ギャラリ」で、「ビジネス層」を展開し、「TopLink/JPA」を選択します。次に「表からのエンティティ」を選択し、「OK」をクリックします。

3. 「エンティティ作成(表ベース)」ウィザードの各フィールドを入力します。

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

永続性コンテキストを構成するには、永続性構成ファイル(persistence.xml)を使用します。

永続性構成を作成するには、次のようにします。

1. 「アプリケーション」ウィンドウで、JPA永続性ディスクリプタを作成するプロジェクトを右クリックし、「新規」を選択します。

2. 「新規ギャラリ」で、「ビジネス層」を展開し、「TopLink/JPA」を選択します。次に「JPA永続性ディスクリプタ」を選択し、「OK」をクリックします。

3. 新規のJPA永続性ディスクリプタ・ファイル(persistence.xml)のデフォルトの永続性ユニットを作成するための「新規のJPA永続性ディスクリプタ」ダイアログで各フィールドを入力し、「OK」をクリックします。
例20-1に、永続性構成の例を示します。

例20-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="myPersistenceUnitName">
...
</persistence-unit>
</persistence>

永続性構成(persistence.xml)ファイルを構成するには、次のようにします。

1. 「アプリケーション」ウィンドウで、JPA永続性ディスクリプタ(persistence.xml)を選択します。

2. 「構造」ウィンドウで、「JPA永続性ディスクリプタ」を選択します。

3. 「JPA永続性ディスクリプタ(persistence.xml)」ページで「一般」および「メタデータ・プリファレンス」タブを入力します。

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

永続性ユニットを作成するには、次のようにします。

1. 「アプリケーション」ウィンドウまたは「構造」ウィンドウで、永続性ディスクリプタ(persistence.xml)をダブルクリックします。

2. 「一般」ページで、「新規の永続性ユニットの作成」をクリックし、新規の永続性ユニットを作成します。

3. 「新規の永続性ユニット」ダイアログの各フィールドを入力します。

4. 「メタデータ・プリファレンス」ページで、新規マッピング・メタデータを永続化する方法を指定します。注釈またはJPAマッピング・ディスクリプタを指定できます。この選択を行うには、少なくとも1つのorm.xmlマッピング・ディスクリプタ・ファイルを最初に作成する必要があります。(第20.2.8項「JPAマッピング・ディスクリプタの作成方法」を参照。)
例20-2に、永続性ユニットの例を示します。

例20-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.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>
...

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

「永続性ユニット」ページ(「アプリケーション」ウィンドウでpersistence.xmlを選択してから「構造」ビューでJPAディスクリプタを展開することによってアクセス)の各タブを使用して、永続性ユニットを構成できます。

永続性ユニットの構成には、次の構成のような多くのステップが含まれます。

- 一般情報

- 接続情報

- TopLink情報

- スキーマ生成情報

- プロパティ

- メタデータ情報

JPA永続性ユニットの一般情報を構成するには、次のようにします。

1. 「アプリケーション」ウィンドウで、JPA永続性ディスクリプタ(persistence.xml)をダブルクリックします。

2. persistence.xmlの概要エディタで、「一般」ナビゲーション・タブをクリックします。

3. 「永続性ユニット」で、構成する永続性ユニットの名前をダブルクリックします。

4. 永続性ユニットの概要エディタで、「一般」ナビゲーション・タブをクリックします。各フィールドを入力して、永続性ユニットがアプリケーション・サーバーおよびデータベースに接続する方法を指定します。

JPA永続性ユニットの接続情報を構成するには、次のようにします。

1. 「アプリケーション」ウィンドウで、JPA永続性ディスクリプタ(persistence.xml)をダブルクリックします。

2. persistence.xmlの概要エディタで、「一般」ナビゲーション・タブをクリックします。

3. 「永続性ユニット」で、構成する永続性ユニットの名前をダブルクリックします。

4. 永続性ユニットの概要エディタで、「接続」ナビゲーション・タブをクリックします。各フィールドを入力して、永続性プロバイダを選択し、その一般プロパティ(JPAマッピング・ディスクリプタ、Javaアーカイブおよびマップされたクラスなど)を構成します。

JPA永続性ユニットに関するTopLinkセッション固有の情報を構成するには、次のようにします。

1. 「アプリケーション」ウィンドウで、JPA永続性ディスクリプタ(persistence.xml)をダブルクリックします。

2. persistence.xmlの概要エディタで、「一般」ナビゲーション・タブをクリックします。

3. 「永続性ユニット」で、構成する永続性ユニットの名前をダブルクリックします。

4. 永続性ユニットの概要エディタで、「セッション・カスタマイズ」ナビゲーション・タブをクリックします。各フィールドを入力して、永続性ユニットに関するTopLink固有の情報を指定します。エンティティ・カスタマイザ・クラスの指定、TopLinkセッション・オーバーライドの設定、およびエンティティ・マネージャのプロパティ(検証モード、ペシミスティック・ロック・モード、問合せタイムアウト・モードなど)のカスタマイズを行うことができます。

DDL生成オプションを構成するには、次のようにします。

ほとんどのJPA永続性プロバイダではこのサポートが提供されていますが、これらのオプションはTopLink固有のものです。

1. 「アプリケーション」ウィンドウで、JPA永続性ディスクリプタ(persistence.xml)をダブルクリックします。

2. persistence.xmlの概要エディタで、「一般」ナビゲーション・タブをクリックします。

3. 「永続性ユニット」で、構成する永続性ユニットの名前をダブルクリックします。

4. 永続性ユニットの概要エディタで、「スキーマ生成」ナビゲーション・タブをクリックします。各フィールドを入力して、TopLinkによるDDLスクリプトの生成方法を指定します。

永続性ユニットに関するTopLink固有でないプロパティを構成するには、次のようにします。

1. 「アプリケーション」ウィンドウで、JPA永続性ディスクリプタ(persistence.xml)をダブルクリックします。

2. persistence.xmlの概要エディタで、「一般」ナビゲーション・タブをクリックします。

3. 「永続性ユニット」で、構成する永続性ユニットの名前をダブルクリックします。

4. 永続性ユニットの概要エディタで、「プロパティ」ナビゲーション・タブをクリックします。各フィールドを入力して、TopLink固有でない一般的な情報を指定します。

永続性ユニットのメタデータオーバーライドを構成するには、次のようにします。

1. 「アプリケーション」ウィンドウで、JPA永続性ディスクリプタ(persistence.xml)をダブルクリックします。

2. persistence.xmlの概要エディタで、「一般」ナビゲーション・タブをクリックします。

3. 「永続性ユニット」で、構成する永続性ユニットの名前をダブルクリックします。

4. 永続性ユニットの概要エディタで、「メタデータ・プリファレンス」ナビゲーション・タブをクリックします。各フィールドを入力して、マッピング・ディスクリプタに関する情報を指定します。
このタブが使用可能なのは、永続性ユニットにJPAマッピング・ディスクリプタが含まれる場合のみです。

20.2.6 JPAマッピングの使用について

TopLinkは、次のマッピングをサポートしています。

TopLink JPAは、エンティティについて次の種類のマッピングをサポートしています。

- 基本: 基本マッピングは、エンティティのフィールドまたはプロパティ(あるいはその両方)とデータベース上の列の間のダイレクト・アソシエーションを定義します。

- 要素コレクション: 要素コレクション・マッピングは、基本値または埋込み可能のアソシエーション・コレクションをデータベースにマップします。

- 埋込み: 埋込みマッピングは、埋込み可能クラスのインスタンスを値として持つエンティティの永続性プロパティを指定するときに使用します。

- 埋込みID: 埋込みIDマッピングは、エンティティまたはマップされたスーパークラスの永続フィールドまたはプロパティ(埋込み可能クラスであるコンポジット主キー)を指定します。参照される埋込み可能クラスは埋込み可能である必要があります。

- ID: IDマッピングは、エンティティの主キー・プロパティまたはフィールドを指定し、エンティティまたはマップされたスーパークラスで適用できます。

- 多対多: デフォルトでは、JPAは多対多の多重度を持つ複数値アソシエーションには多対多マッピングを自動的に定義します。

- 多対1: デフォルトでは、JPAは多対1の多重度を持つ別のエンティティ・クラスに対する単一値アソシエーションには多対1マッピングを自動的に定義します。

- 1対多: 多対1マッピングは、1対多の多重度を持つ複数値アソシエーションを定義します。双方向と一方向のマッピングがサポートされています。

- 1対1: 1対1マッピングは、1対1の多重度を持つ別のエンティティに対する単一値アソシエーションを定義します。双方向と一方向のマッピングがサポートされています。

- トランスフォーメーション: トランスフォーメーション・マッピングは、属性を1つ以上のデータベース列にマップするときに使用します。1つの読取りトランスフォーマと複数の書込みトランスフォーマを構成できます。

- 一時: デフォルトでは、エンティティのすべてのフィールドが永続とみなされます。一時マッピングは、永続でないエンティティのフィールドまたはプロパティ(たとえば、実行時に使用されるがエンティティの状態の一部ではないフィールドまたはプロパティ)を指定するときに使用します。

- 可変1対1: 可変1対1マッピングは、Javaオブジェクトとインタフェースの実装者の間のポインタ参照を表すために使用します。このマッピングは通常、ソース・オブジェクトとターゲット・オブジェクトの間の1つのポインタ(インスタンス変数に格納されます)で表されます。

20.2.6.1 メタデータ注釈の使用

注釈は、JPA永続性プロバイダが永続動作を管理するために実行時に解釈できるように、対応するJavaクラス・ファイルにコンパイルされるメタデータを使用してJavaソース・コードを装飾するための簡単な表現手段です。注釈を使用すると、エンティティの永続動作を構成できます。

20.2.6.2 XMLの使用

XMLマッピング・メタデータは、単独で使用したり、注釈メタデータと組み合せて使用できます。また、XMLマッピング・メタデータを使用して、注釈メタデータをオーバーライドすることもできます。

20.2.6.3 デフォルト・プロパティ

各注釈には、デフォルト値があります。永続性エンジンにより、アプリケーションの大半に適用されるデフォルトが定義されます。デフォルト値をオーバーライドする場合、適切な値を指定するのみですみます。構成値は必須ではなく、このルールの例外です。これは、例外による構成と呼ばれます。

20.2.6.4 エンティティの構成

エンティティのアイデンティティ、およびエンティティのロック技術や順序生成を構成できます。

20.2.6.5 基本プロパティ・マッピングの宣言

シンプルJavaタイプは、エンティティの即時状態の一部としてそのフィールドまたはプロパティにマップされます。シンプルJavaタイプのマッピングは、基本マッピングと呼ばれます。基本マッピングは、エンティティのフィールドまたはプロパティ(あるいはその両方)とデータベース上の列の間のダイレクト・アソシエーションを定義します。デフォルトでは、TopLink永続性プロバイダにより、シンプル・タイプの基本マッピングは自動的に構成されます。ただし、@Basic注釈を使用してデフォルトをオーバーライドできます。

20.2.6.6 関連のマッピング

TopLink永続性プロバイダでは、関連を明示的にマップする必要があります。@OnetoOne、@ManytoOne、@OnetoMany、@ManytoMany、@Mapkey、@Orderbyなどの注釈を使用して、データベースによる関連の実装方法を微調整するエンティティ関連のタイプおよび特性を指定します。

20.2.6.7 継承のマッピング

デフォルトでは、TopLink永続性プロバイダでは、すべての永続性フィールドが単一のエンティティ・クラスによって定義されることが想定されます。エンティティ・クラスによって1つ以上のスーパークラスから一部またはすべての永続フィールドが継承される場合、@Inheritance、@MappedSuperclass、@DiscriminatorColumnおよび@DiscriminatorValue注釈を使用します。

20.2.6.8 埋込みオブジェクトのマッピング

埋込みオブジェクトには、独自の永続アイデンティティはありません。これは、そのアイデンティティとしてエンティティに依存します。デフォルトでは、TopLink永続性プロバイダでは、すべてのエンティティがそれ自体の表にマップされることが想定されます。他のエンティティが所有するエンティティのこの動作をオーバーライドするには、次の注釈を使用します。

- @Embeddable

- @Embedded

- @AttributeOverride

- @AttributeOverrides

- @AssociationOverride

- @AssociationOverrides

20.2.7 JPAマッピングの使用方法

次の手順は、JPAマッピングを使用するときに行う様々な操作の実行方法を説明したものです。

注釈を使用してマッピングを構成するには、次のようにします。

1. 「アプリケーション」ウィンドウで、永続性構成(persistence.xml)を選択します。

2. 「構造」ビューで、マッピングのレベルまでノードを開きます。つまり、プロジェクト、マップされたクラス、エンティティの順に展開します。

3. 次のいずれかを実行します。

- フィールドまたはプロパティ (CountryIDなど)を選択します。マッピングの概要エディタで、目的に応じてマッピングの詳細を編集します。

- フィールドまたはプロパティを右クリックして「マップ」をポイントし、新規のマッピングを選択します。マッピングの概要エディタで、目的に応じてマッピングの詳細を編集します。

4. Javaソースを表示するには、「構造」ビューでマップされたフィールドまたはプロパティを右クリックし、「ソースに移動」をクリックします。

マッピング・ディスクリプタ・ファイル(orm.xml)を使用してマッピングを構成するには、次のようにします。

1. 「アプリケーション」ウィンドウで、マッピング・ディスクリプタ(orm.xml)を選択します。

2. 「構造」ビューで、マッピングのレベルまでノードを開きます。つまり、プロジェクト、マップされたクラス、エンティティの順に展開します。

3. 次のいずれかを実行します。

- フィールドまたはプロパティ (CountryIDなど)を選択します。マッピングの概要エディタで、目的に応じてマッピングの詳細を編集します。

- フィールドまたはプロパティを右クリックして「マップ」をポイントし、新規のマッピングを選択します。マッピングの概要エディタで、目的に応じてマッピングの詳細を編集します。

4. XMLソースを表示するには、次のようにします。

1. 「構造」ビューでマップされたフィールドまたはプロパティを右クリックし、「ソースに移動」をクリックします。

2. マッピングの概要エディタが表示されたら、「ソース」タブをクリックしてXMLソースを表示します。

20.2.8 JPAマッピング・ディスクリプタの作成方法

JPAマッピング・ディスクリプタ(通常、orm.xmlという名前)は、注釈の代替手段として使用できます。JPAマッピング・ディスクリプタ内の情報は、Java注釈よりも優先されます。

JPAマッピング・ディスクリプタを作成するには、次のようにします。

1. 「アプリケーション」ウィンドウで、JPA永続性ディスクリプタを作成するプロジェクトを右クリックし、「新規」を選択します。

2. 「新規ギャラリ」で、「ビジネス層」を展開し、「TopLink/JPA」を選択します。次に「JPAマッピング(XML)」を選択し、「OK」をクリックします。

3. 「新規JPAマッピング」ダイアログの各フィールドを入力し、「OK」をクリックします。

永続性ユニットに関連付けられたJPAマッピング・ディスクリプタを作成するには、次のようにします。

1. 「アプリケーション」ウィンドウで、永続性構成(persistence.xml)をダブルクリックします。

2. persistence.xmlの概要エディタで、「一般」ナビゲーション・タブをクリックします。

3. 「永続性ユニット」領域で、永続性ユニットをダブルクリックします。

4. 永続性ユニットの「一般」タブをクリックします。

5. 「JPAマッピング・ディスクリプタ」領域で、「新規のJPAマッピング・ディスクリプタの作成」ボタンをクリックします。

6. ダイアログ内の各フィールドを入力し、「OK」をクリックします。

7. 「JPAマッピング・ディスクリプタ」領域で、新規マッピング・ディスクリプタの名前をダブルクリックし、ディスクリプタの詳細(マップされたクラス、開発データベースなどのデフォルト)を指定します。

JPAマッピング・ディスクリプタの一般情報を構成するには、次のようにします。

1. 「アプリケーション」ウィンドウで、JPAマッピング・ディスクリプタ(orm.xml)をダブルクリックします。

2. マッピング・ディスクリプタの概要エディタで、「一般」ナビゲーション・タブをクリックします。各フィールドを入力して、永続性プロバイダを選択し、その一般プロパティ(マップされたクラス、開発データベースなどのデフォルト)を構成します。

エンティティ、埋込み可能またはマップされたクラスをJPAマッピング・ディスクリプタに関連付けるには、次のようにします。

1. 「アプリケーション」ウィンドウで、JPAマッピング・ディスクリプタ(orm.xml)をダブルクリックします。

2. ディスクリプタの概要エディタで、「一般」ナビゲーション・タブをクリックします。

3. 「マップされたクラス」領域で、次のいずれかの操作を行います。

- 「エンティティ」で、「エンティティとしてのクラスの追加」アイコンをクリックします。

- 「埋込み可能」で、「埋込み可能クラスとしてのクラスの追加」アイコンをクリックします。

- 「マップされたスーパークラス」で、「マップされたスーパークラスとしてのクラスの追加」アイコンをクリックします。

4. 「エンティティ・クラスの管理」ダイアログ、「埋込み可能クラスの管理」ダイアログまたは「マップされたスーパークラスの管理」ダイアログで、次の操作を行います。

1. プロジェクトを選択します。

2. 「使用可能なクラス」で、ノードを展開し、追加するアイテムを選択します。

3. 「選択したクラスのリストへの追加」アイコンまたは「すべてのクラスのリストへの追加」アイコンをクリックして、選択したアイテムを「選択したクラス」 リストに移動します。「OK」をクリックします。

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

このマッピング・ディスクリプタが含まれる永続性ユニットおよび関連エンティティに適用される設定を構成できます。これらの値は、永続性ユニット・レベルの任意の構成設定によってオーバーライドされます。

永続性ユニットのデフォルトを構成するには、次のようにします。

1. 「アプリケーション」ウィンドウで、JPAマッピング・ディスクリプタ(orm.xml)をダブルクリックします。

2. マッピング・ディスクリプタの概要エディタで、「永続性ユニットのデフォルト」ナビゲーション・タブをクリックします。各フィールドを入力して、アクセス・タイプ、エンティティ・リスナー、マルチテナンシ、区切りIDなどのデフォルトを構成します。

20.2.8.2 アクセス・タイプのデフォルトとオーバーライドの設定方法

管理クラスの属性の永続状態にアクセスする方法としてフィールドまたはプロパティのどちらかを指定できます。フィールド値には直接アクセスします。プロパティ値にはget()メソッドとset()メソッドを使用してアクセスします。

構成の様々なレベルでデフォルトの設定やアクセス・タイプの指定ができます。デフォルトとオーバーライドを使用することを「複合アクセス」と呼ぶ場合があります。

デフォルトでは、1つのエンティティ階層に1つのアクセス・タイプ(フィールドまたはプロパティ)が適用されますが、以降のセクションで説明するように、このデフォルトはオーバーライドできます。

アクセス・タイプの設定の優先順位を、高いものから低いものの順に次のリストに示します。管理クラス(エンティティ、埋込み可能およびマップされたスーパークラス)では、継承階層で下位のクラスまたは属性の設定が階層で上位の設定よりも優先されます。

1. マップされた属性。このレベルの設定は、管理クラス、マッピング・ディスクリプタ(orm.xml)および永続性ユニットに対するデフォルト設定よりも優先されます。

2. 管理クラス。このレベルの設定は、マッピング・ディスクリプタ(orm.xml)および永続性ユニットに対するデフォルト設定よりも優先されます。このレベルの設定は、管理属性での設定によりオーバーライドできます。
埋込み可能クラスのアクセス・タイプは、そのクラスが埋め込まれているエンティティ・クラス、マップされたスーパークラスまたは埋込み可能クラス(要素コレクションのメンバーとしての場合を含む)によって決まります。包含する側のクラスのアクセス・タイプが明示的に指定されているか、デフォルト設定になっているかは関係ありません。継承されたアクセス・タイプは、埋込み可能クラスに別のタイプを指定することによりオーバーライドできます。

3. ディスクリプタのマッピング(orm.xml)。このレベルの設定は、永続性ユニットに対するデフォルト設定よりも優先されます。このレベルの設定は、管理クラスと管理属性での設定によりオーバーライドできます。

4. 永続性ユニット。このレベルの設定は、マッピング・ディスクリプタ、管理クラスおよび管理属性に対する設定によりオーバーライドできます。

永続性ユニット内の管理クラスに対するアクセス・タイプを構成するには、次のようにします。

1. 「アプリケーション」ウィンドウで、JPAマッピング・ディスクリプタ(orm.xml)をダブルクリックします。

2. マッピング・ディスクリプタの概要エディタで、「永続性ユニットのデフォルト」ナビゲーション・タブをクリックします。

3. 「アクセス・タイプ」で、「フィールド・アクセス」または「メソッド・アクセス」を選択します。これにより、永続性ユニット内の管理クラスで、マッピング・ディスクリプタにXMLエントリがあるすべてのクラスに対するデフォルトを定義します。*

マッピング・ディスクリプタ内の管理クラスに対するアクセス・タイプを構成するには、次のようにします。

1. 「アプリケーション」ウィンドウで、JPAマッピング・ディスクリプタ(orm.xml)をダブルクリックします。

2. マッピング・ディスクリプタの概要エディタで、「一般」ナビゲーション・タブをクリックします。

3. 「デフォルト」領域の「アクセス・タイプ」で、「フィールド」または「プロパティ」を選択します。

1つの管理クラス(エンティティ、埋込み可能クラスまたはマップされたスーパークラス)に対するアクセス・タイプを構成するには、次のようにします。

1. 「アプリケーション」ウィンドウで、管理クラスのJavaソース・ファイルをダブルクリックします。

2. クラスの概要エディタで、「一般」ナビゲーション・タブをクリックします。

3. 「アクセス・タイプ」で、「フィールド」または「プロパティ」を選択します。

属性マッピングのメソッド・アクセスを指定するには、次のようにします。

1. 「アプリケーション」ウィンドウで、JPAマッピング・ディスクリプタ(orm.xml)をダブルクリックします。

2. 「構造」ウィンドウで、構成する属性マッピングが含まれている管理クラスを展開し、属性をダブルクリックします。

3. 「メソッド・アクセスの使用」を選択し、目的のset()メソッドまたはget()メソッド(あるいは、その両方)を選択します。

20.2.9 主キーに使用する一意IDの生成方法

ジェネレータを定義して、エンティティのジェネレータ戦略と、エンティティへの一意IDの割当に使用する名前付きジェネレータを決定します。ジェネレータ名の有効範囲は、永続性ユニット全体のすべてのジェネレータ・タイプに及びます。マッピング・ディスクリプタでXMLを使用して定義したジェネレータは、エンティティで注釈を使用して定義した同名のジェネレータよりも優先されます。

JPAマッピング・ディスクリプタ(orm.xml)でジェネレータを構成するには、次のようにします。

1. 「アプリケーション」ウィンドウで、JPAマッピング・ディスクリプタ(orm.xml)をダブルクリックします。

2. マッピング・ディスクリプタの概要エディタで、「ジェネレータ」タブをクリックし、シーケンス・ジェネレータと表ジェネレータを構成します。

エンティティに対するジェネレータを構成するには、次のようにします。

1. 「アプリケーション」ウィンドウで、エンティティのソース・ファイル(Departments.javaなど)をダブルクリックします。

2. エンティティの概要エディタで、「ジェネレータ」タブをクリックし、シーケンス・ジェネレータと表ジェネレータを構成します。

20.2.10 問合せの構成方法

関連する永続性ユニットで使用するためにこのマッピング・ディスクリプタでJPQLおよびネイティブ問合せを定義できます。

問合せを構成するには、次のようにします。

1. 「アプリケーション」ウィンドウで、JPAマッピング・ディスクリプタ(orm.xml)をダブルクリックします。

2. マッピング・ディスクリプタの概要エディタで、「問合せ」ナビゲーション・タブをクリックし、名前付き問合せ、名前付きネイティブ問合せおよび名前付きストアド・プロシージャ問合せを定義します。

20.2.11 マッピングでの導出IDの指定方法

1対1と多対1のマッピングでは、エンティティのIDをその親エンティティ(マッピングのターゲット)のIDから導出するように指定できます。

IDを導出するように指定するには、次のようにします。

1. 「アプリケーション」ウィンドウで、マッピングを指定する構成ファイル、persistence.xmlまたはJPAマッピング・ディスクリプタ(orm.xml)をクリックします。

2. 「構造」ウィンドウで、導出IDを指定する対象の1対1または多対1のマッピングが含まれているクラスを展開し、属性をダブルクリックします。

3. 「導出されたアイデンティティ」を選択し、次のいずれかを選択します。

- なし: IDを導出しません。

- ID: IDが文字列値の場合に選択します。この場合、ソース・オブジェクトのIDはターゲット・オブジェクトのIDと同じになります。

- マップID: EmbeddedId主キー、EmbeddedId主キー内の属性または親エンティティの シンプル主キーのマッピングを提供する属性を選択します。

20.2.12 TopLink拡張機能の使用

Java Enterprise Edition 5 (Java EE 5) EJB 3.0仕様の一部であるJava永続性API (JPA)では、Javaの永続性が大幅に簡略化されています。これには、オブジェクト・リレーショナル・マッピング・アプローチが用意されています。このアプローチを使用すると、Java EE 5アプリケーション・サーバーの内部とJava Standard Edition (Java SE) 5アプリケーションのEJBコンテナの外部で動作する標準的で移植可能な方法で、Javaオブジェクトをリレーショナル・データベース表にマッピングする方法を宣言的に定義できます。

TopLink JPAは、JPA仕様による定義内容に対して拡張機能を提供します。これらの拡張機能は、永続性ユニット・プロパティ、問合せヒント、注釈、TopLink独自のXMLメタデータおよびカスタムAPIの形式で提供されます。

20.3 ネイティブTopLinkマッピングの開発

JDeveloper内のツールを使用すると、ネイティブTopLinkを使用してJavaクラス、EJBおよびJPAエンティティを構成し、リレーショナル・データベース、企業情報システム(EIS)、XMLスキーマなど別のデータソースにマップできます。TopLinkでは、JPA、JAXBおよびJava EEなど複数の標準がサポートされています。

20.3.1 ネイティブTopLinkアプリケーションの設計

ネイティブTopLinkを使用すると、次のようなJavaを使用するエンタープライズ・アーキテクチャに対して様々な永続性およびデータ変換機能を実行できます。

- Java EE

- Spring

- Oracle WebLogic ServerやApache TomcatなどのJava Webサーバー

- Javaクライアント(Java SE、Webブラウザなど)

20.3.2 アプリケーション設計でのネイティブ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ファイルなど)を両方とも生成できます。

20.3.3 ネイティブTopLinkメタデータの作成

ネイティブTopLinkのメタデータは、アプリケーションの開発とデプロイされたランタイム環境の間の橋渡しをします。次を使用してメタデータを取得できます。

- TopLinkランタイム環境に渡すTopLinkのsessions.xmlおよびproject.xmlファイルを作成するJDeveloperマッピング・エディタ。

- JPAの注釈、persistence.xml、orm.xml、TopLink JPA注釈の拡張機能およびTopLinkプロパティの拡張機能。TopLink JPA永続性プロバイダでは、これらのメタデータのソースを解釈して、実行時にインメモリーのセッションおよびプロジェクトが作成されます。

- JavaおよびTopLink API(この方法は最も労力が必要とされます)。

メタデータを使用すると、構成情報をランタイム環境に渡すことができます。ランタイム環境では、この情報を永続クラス(JavaオブジェクトまたはJPAエンティティ)、およびTopLink APIを使用して記述されたコードとともに使用して、アプリケーションが完成します。

ネイティブTopLink JPAを使用すると、JPAおよびEntityManagerを使用して永続クラスにアクセスしている間に、TopLinkのsessions.xmlおよびproject.xmlを使用してメタデータを指定することもできます。

TopLinkメタデータ・アーキテクチャにより、次のような多くの重要な利点が提供されます。

- メタデータを使用することにより、TopLinkはオブジェクト・モデルまたはデータベース・スキーマに介入しません。

- 開発者は、特定の設計を強引に通すことなく、必要に応じてオブジェクト・モデルを設計できるようになります。

- DBAは、特定の設計を強引に通すことなく、必要に応じてデータベースを設計できるようになります。

- コード生成(設計、実装、メンテナンスなどの重大な問題の原因になる可能性がある)に依存しません。

- 非介入型です。TopLinkに適合するようにオブジェクト・モデルまたはデータベース・スキーマを設計することを開発者に要求するのではなく、TopLinkメタデータ自らがオブジェクト・モデルおよびデータベース・スキーマに適応します。

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

ネイティブTopLinkプロジェクトには、TopLinkランタイムがオブジェクトをデータ・ソースへマップするために使用するマッピング・メタデータが含まれています。プロジェクトは、TopLinkランタイムが使用するプライマリ・オブジェクトです。プロジェクト・メタデータの最も重要な内容には、次が含まれます。

- ディスクリプタ

- マッピング

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

TopLinkランタイムは、JPAを使用して、採用されている注釈、persistence.xml、orm.xmlおよびTopLink JPAの拡張機能に基づき、インメモリー・プロジェクトを構成します。

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

ネイティブ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ファイルの使用はオプションです。

20.3.6 ネイティブTopLinkディスクリプタの使用

TopLinkでは、ディスクリプタを使用して、あるデータソースによって特定クラスがどのように表現されるかを定義した情報を格納します。ディスクリプタには、クラスのインスタンス変数を、データ・ソースおよび、値の格納と取得に使用されるトランスフォーメーション・ルーチンに関連付けるマッピングを含めます。それによって、ディスクリプタは、Javaオブジェクトとそのデータ・ソース表現を接続する役目を果します。

2つのオブジェクト、つまり、ソース(親、すなわち所有側)オブジェクトとターゲット(子、すなわち所有される側)オブジェクトは、両者間に厳密な1対1の関係がある場合、集約によって関連付けられ、ターゲット・オブジェクトのすべての属性は、ソース・オブジェクトと同じデータソース表現から取得できます。つまり、ソース・オブジェクトが存在すればターゲット・オブジェクトも存在する必要があり、ソース・オブジェクトが破棄されればターゲット・オブジェクトも破棄されるということです。

JDeveloperを使用すると、次のタイプのTopLinkディスクリプタを作成できます。

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

- EISディスクリプタ

- XMLディスクリプタ

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

リレーショナル・ディスクリプタには、リレーショナル・データベース内の表にマップするJavaオブジェクトを記述します。リレーショナル・プロジェクトでリレーショナル・ディスクリプタを使用すると、リレーショナル・マッピングを構成できます。リレーショナル・プロジェクトでは、ディスクリプタを集約として指定できるため、ターゲット・オブジェクト内のデータ・メンバーをソース・オブジェクトの基礎となるデータベース表のフィールドと関連付ける集約マッピングを構成できます。

リレーショナル・ディスクリプタを集約ディスクリプタとして定義する場合、TopLinkではターゲット・クラスのフィールドごとに1つのマッピング・タイプを指定できますが、フィールドとデータベース表の関連付けは、ソース・ディスクリプタで集約オブジェクト・マッピングを構成した後で可能になります。つまり、ターゲット・クラス・ディスクリプタは各ターゲット・クラス・フィールドがマップされる方法を定義し、ソース・クラス・ディスクリプタは各ターゲット・クラス・フィールドがマップされる場所を定義する、ということです。この仕組みにより、異なる表にマップされた多数の親ディスクリプタ間で同一の集約オブジェクトを共有することができます。

20.3.6.2 EISディスクリプタ

JCAアダプタを介してEISデータ・ソースにマップするJavaオブジェクトを記述します。EISディスクリプタを使用すると、EISプロジェクトの作成時にEISマッピングを構成できます。

20.3.6.3 XMLディスクリプタ

XMLスキーマ・ドキュメント(XSD)に定義されているXML文書内の複合型へのインメモリー・マッピングを行うJavaオブジェクトを記述します。XMLディスクリプタをXMLプロジェクトで使用すると、XSDに定義されているXML要素へのXMLのマッピングをメモリー内に構成できます。

20.3.7 ネイティブTopLinkマッピングの使用

ネイティブTopLinkは、オブジェクトの表現からデータソースに固有の表現にデータを変換します。この変換はマッピングと呼ばれ、TopLinkプロジェクトの中核をなすものです。マッピングはそれぞれ、ドメイン・オブジェクトの単一データ・メンバーに対応しています。マッピングによって、オブジェクト・データ・メンバーをそのデータソース表現と関連付け、オブジェクトとデータソースの間の双方向変換を実行する手段を定義します。TopLinkマップは、アプリケーションがTopLinkの機能にアクセスする際に経由するファサードであるTopLinkセッションに属します。使用可能なマッピングのタイプは、TopLinkマップおよびTopLinkディスクリプタによって異なります。

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

リレーショナル・マッピングは、オブジェクトのデータ・メンバー・タイプを、サポートされているリレーショナル・データベースの対応するリレーショナル・データベース表現に変換します。これらを使用して、プリミティブを含む単純なデータ・タイプ(intなど)、JDKクラス(Stringなど)およびラージ・オブジェクト(LOB)の値をマップします。また、これらを使用して、データ・ソース表現にオブジェクト・アイデンティティの維持(順序付けおよび後方参照など)が必要な関連付けによって、他のドメイン・オブジェクトを参照するオブジェクト・データ・メンバーを変換し、多重度および誘導可能性の様々なタイプを持たせることもできます。適切なマッピング・クラスは、主にリレーションシップのカーディナリティによって選択されます。

表20-1は、方向性、トランスフォーマ、コンバータおよびEJB 2.n CMPリレーショナル・マッピングというTopLinkの概念を使用したリレーショナル・マッピングのタイプのビルド・マップを示しています。

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

マッピング・タイプ

説明

フィールドへ直接

Java属性をデータベース・フィールドに直接マップします。

XMLタイプへ直接

Java属性をOracleデータベースのXMLType列にマップします。

1対1

他の永続Javaオブジェクトへの参照をデータベースにマップします。

可変1対1

インタフェースへの参照をデータベースにマップします。

1対多

永続オブジェクトのJavaコレクションをデータベースにマップします。

多対多

関連表を使用して、永続オブジェクトのJavaコレクションをデータベースにマップします。

ダイレクト・コレクション

ディスクリプタを持たないオブジェクトのJavaコレクションをマップします。

ダイレクト・マップ

ダイレクト・マップ・マッピングでは、java.util.Mapを実装するインスタンスが格納されます。

集約オブジェクト

オブジェクトが両方とも同じデータベース行に存在する必要がある、厳密な1対1マッピングを作成します。

トランスフォーメーション

カスタム・マッピングを作成し、1つ以上のフィールドを使用して属性に格納するオブジェクトを作成できるようにします。

20.3.7.2 EISマッピングのタイプ

ネイティブTopLink企業情報システム(EIS)マッピングでは、Java EE Connector Architecture (JCA)アダプタを介した、レガシー・データ・ソースおよびエンタープライズ・アプリケーションへのアクセスをサポートします。TopLink EISマッピングでは、JCA Common Client Interface (CCI)を使用し、そのリソース・アダプタを介してEISにアクセスします。これにより、既存のJavaオブジェクト・モデルを直接トランザクション・データ・ソース(フラット・ファイル/階層データを持つメインフレームなど)にマップできるようになります。EISマッピングでは、オブジェクトのデータ・メンバーをオブジェクトのディスクリプタで定義されたEISレコード形式に変換します。

表20-2は、TopLinkが提供するEISマッピングのタイプを示しています。

表20-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クラスの属性に格納するオブジェクトを作成できるようにします。

20.3.7.3 XMLマッピングのタイプ

XMLマッピングは、オブジェクトのデータ・メンバーを、構造がXMLスキーマ・ドキュメント(XSD)により定義されているXML文書のXML要素に変換します。様々なXMLマッピング・タイプを使用して、XMLの単純および複合型の組合せにJavaオブジェクトの属性をマップできます。TopLinkでは、クラスのディスクリプタに各クラスのXMLマッピングを格納します。TopLinkでは、ディスクリプタを使用してXML文書からマップされたオブジェクトをインスタンス化し、新規または変更済のオブジェクトをXML文書として格納します。

表20-3は、XMLの単純および複合型の組合せにJavaオブジェクトの属性をマップするために使用可能なXMLマッピングのタイプを示しています。

表20-3 XMLマッピングのタイプ

マッピング・タイプ

説明

XMLダイレクト・マッピング

単純なオブジェクト属性をXML属性またはテキスト・ノードにマップします。

XMLコンポジット・ダイレクト・コレクション・マッピング

単純なオブジェクト属性のコレクションをXML属性またはテキスト・ノードにマップします。

XMLコンポジット・オブジェクト・マッピング

シングル・オブジェクトを含む任意の属性をXML要素にマップします。TopLinkランタイムでは、参照されたオブジェクトのディスクリプタを使用してその要素の内容を移入します。

XMLコンポジット・コレクション・マッピング

オブジェクトの同種のコレクションを含む属性を、複数のXML要素にマップします。TopLinkランタイムでは、参照されたオブジェクトのディスクリプタを使用してそれらの要素の内容を移入します。

XML任意オブジェクト・マッピング

XML任意オブジェクトのマッピングは、XMLコンポジット・オブジェクトのマッピングと類似しています。ただし、参照オブジェクトが異なるタイプ(Stringなど)である場合もあり、必ずしも継承や共通インタフェースを介して相互に関連付けられていない点が異なります。

XML任意コレクション・マッピング

XML任意コレクションのマッピングは、XMLコンポジット・コレクションのマッピングと類似しています。ただし、参照オブジェクトが異なるタイプ(Stringなど)である場合もあり、必ずしも継承や共通インタフェースを介して相互に関連付けられていない点が異なります。

XMLトランスフォーメーション・マッピング

カスタム・マッピングを作成し、1つ以上のXMLノードを使用してJavaクラスの属性に格納するオブジェクトを作成できるようにします。

20.3.8 TopLinkエディタの理解

TopLinkエディタを使用して、Javaクラスを構成して、コードを使用せずに様々なデータソース(リレーショナル・データベース、企業情報システム(EIS)、XMLスキーマなど)にマッピングできます。TopLinkエディタは、EJB 3.1 JPAなどの複数のマッピング標準をサポートしています。

TopLinkエディタには、「アプリケーション」ウィンドウまたは「構造」ビューで選択した要素に固有の情報またはプロパティが表示されます。たとえば、「アプリケーション」ウィンドウでTopLinkマップやセッション構成ファイル(sessions.xml)などのTopLinkプロジェクト要素を選択すると、TopLinkエディタでそのプロパティを構成できるようになります。同様に、「構造」ビューでTopLinkマップ、ディスクリプタ、マップされた属性、およびマップされていない属性を選択すると、それぞれのプロパティがTopLinkエディタに表示されます。

20.3.8.1 TopLinkマップの管理

TopLinkマップには、クラスをデータベース表またはXMLスキーマにどのようにマップするかに関する情報が含まれています。TopLinkエディタを使用して、次のようなマッピングの各コンポーネントを編集します。

- ドライバ、URL、ログイン情報などのデータベース情報

- アイデンティティ・マップ・オプション、キャッシュ・オプションなどのマッピングのデフォルト設定

TopLinkマップを構成するには、TopLinkマップ(tlMapなど)の「アプリケーション」ウィンドウ・コンテキスト・メニューの「開く」を選択するか、TopLinkマップの「構造」ビューを選択します。TopLinkエディタに、リレーショナルやEISなどのタイプに応じて、オブジェクト・マップのプロパティが表示されます。リレーショナル・オブジェクト・マップに対してTopLinkエディタを使用すると、たとえば順序付けのポリシーを構成できます。

TopLinkマッピングでは、ディスクリプタを使用して、データソース内で特定のクラスのインスタンスをどのように表現できるかに関する情報を格納します。マップのディスクリプタを構成するには、tlMapの「構造」ビュー・ディスクリプタを選択します。たとえば、エディタを使用すると、名前付き問合せを作成してアプリケーションのパフォーマンスを改善したり、ロック・ポリシーを構成してユーザーが互いの作業を上書きすることを回避できます。

TopLinkマッピングでは、データソース内でオブジェクトの属性がどのように表現されるかを定義します。「構造」ビューを使用してディスクリプタの属性のマッピングを構成するには、tlMapの「構造」ビューを選択します。

20.3.8.2 TopLinkセッションの管理

TopLinkセッション構成ファイル(sessions.xml)を使用すると、特定のプロジェクトのすべてのセッションを管理できます。TopLinkセッションの詳細は、『Oracle Fusion Middleware Oracle TopLink開発者ガイド』を参照してください。

TopLinkエディタでは、sessions.xmlの「構造」ビューの「開く」を選択することで、各セッションの情報(データソースのログイン情報、JTAトランザクションの使用、キャッシングなど)を完全にカスタマイズできます。また、TopLinkエディタでは、個々のセッションおよびそれらを管理するセッション・ブローカを作成および構成できます。セッション・ブローカを管理するには、sessions.xmlの「構造」ビュー・セッション・ブローカを選択します。

20.3.8.3 永続性構成の管理

TopLinkエディタを使用すると、TopLink JPAプロジェクト内のエンティティをパッケージ化するpersistence.xmlファイルを構成できます。persistence.xmlの「アプリケーション」ウィンドウの「開く」を選択すると、永続性ユニットを作成できます。

「構造」ウィンドウには、JPAディスクリプタおよび永続性ユニットが表示されます。永続ユニットを構成するには、persistence.xmlの「構造」ビュー永続性ユニットを選択します。

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

「構造」ビューには、「アプリケーション」ウィンドウまたはTopLinkエディタで選択されているTopLink要素に関する詳細情報が表示されます。次に例を示します。

- EJBまたはJavaクラスを使用している場合、「構造」ビューには、関連のTopLinkディスクリプタおよびそのマッピンク属性が表示されます。

- TopLinkセッション構成ファイルを使用している場合、「構造」ビューには、セッションおよびセッション・ブローカが表示されます。

- 永続性構成を使用している場合、「構造」ビューには、JPAディスクリプタおよび永続性ユニットが表示されます。

「構造」ビューには、ディスクリプタ、マッピング、セッション、および永続性ユニットを変更するためのアクセスを提供するツールバーがあります。このツールバーは状況に依存するため、「構造」ビューで選択されている要素によって表示されるボタンは変わります。

表20-4 TopLinkの「構造」ビューのツールバーのアイコン

アイコン

名前

機能

ディスクリプタの追加または削除

TopLinkマップからディスクリプタを追加または削除します。

自動マップ

選択したディスクリプタまたは属性を同じ名前のデータベース・フィールドに自動マップしようとします。

集約ディスクリプタ

ディスクリプタ・タイプを集約ディスクリプタに変更します。つまり、表、主キーおよび他のオプションに関するディスクリプタの定義が所有ディスクリプタのものになります。

クラス・ディスクリプタ

ディスクリプタ・タイプをクラス・ディスクリプタに変更します。

マップ

選択した属性のマッピング・タイプを選択します。

新規の永続性ユニット

新規永続性ユニットを作成する場合、クリックします。

新規データベース・セッションまたはサーバー・セッションを作成します

セッション構成ファイル内でセッションを作成する場合、クリックします。

セッション・ブローカの作成

新規のセッション・ブローカを作成する場合、クリックします。

新規の名前付き接続プールを作成します

新規の名前付き接続プール(使用目的は任意ですが、通常はセキュリティ目的の接続プール)を作成する場合、クリックします。

シーケンス接続プールを追加します

順序付けに特化して使用される接続プールを追加する場合、クリックします。TopLinkでは、新規オブジェクトに識別子を割り当てる必要があるときは常にシーケンス接続プールが使用されます。

20.3.8.5 「アプリケーション」ウィンドウのTopLinkプロジェクト要素

「アプリケーション」ウィンドウには、TopLinkマップ、デプロイメント・ディスクリプタ、セッション構成情報など、TopLinkプロジェクトに関連付けられている各要素が表示されます。

「アプリケーション」ウィンドウに表示されるTopLinkプロジェクト要素には、次のものを含めることができます。

- 「TopLink」フォルダ

- セッション構成ファイル(sessions.xml)

- TopLinkマップ(tlMap)

20.3.8.6 「エディタ」ウィンドウのTopLinkエディタ・タブ

TopLinkエディタには、TopLinkマッピング情報が表示されます。このエディタに表示される情報は、「アプリケーション」ウィンドウまたは「構造」ビューで選択したTopLink要素によって異なります。

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

「構造」ビューには、「アプリケーション」ウィンドウまたはTopLinkエディタで選択されているTopLink要素に関する詳細情報が表示されます。

- EJBまたはJavaクラスを使用している場合、「構造」ビューには、関連のTopLinkディスクリプタおよびそのマッピンク属性が表示されます。

- TopLinkセッション構成ファイルを使用している場合、「構造」ビューにはセッションおよびセッション・ブローカが表示されます。

- 永続性構成を使用している場合、「構造」ビューにはJPAディスクリプタおよび永続性単位が表示されます。

「構造」ビューで項目を選択すると、TopLinkエディタに次のプロパティが表示されます。

- TopLinkマップ(tlMap)

- ディスクリプタ

- マップされたJava属性(1対1マッピング)

- アンマップ属性

項目について特定の機能を実行するには、「アプリケーション」ウィンドウで項目を選択してから次のようにします。

- 「構造」ビューでオブジェクトを右クリックし、機能をポップアップ・メニューから選択します。

- 「構造」ビューでオブジェクトを選択し、「構造」ツールバーのボタンをクリックします。

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

TopLinkエディタの「構造」ビューには、ディスクリプタとマッピングを簡単に変更できるツールバーがあります。このツールバーは状況に依存するため、「構造」ビューで選択されている要素によって実際に表示されるボタンは変わります。

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

TopLinkエディタのエラー・メッセージおよびステータス・メッセージは、「問題」ウィンドウに表示されます。

20.3.8.10 TopLinkのプリファレンスの構成

使用する永続性プロバイダ、使用するJPQLエディタ、および問合せタイプとフォーマットを構成できます。

TopLinkエディタのプリファレンスを構成するには、次のようにします。

1. メイン・メニューから、「ツール」→「プリファレンス」を選択します。

2. 「カテゴリ」リストで、「TopLinkのカスタマイズ」を開きます。

3. JPAと問合せのオプションを構成します。

4. 各フィールドを完了し、「OK」をクリックします。

20.3.8.11 ネイティブTopLinkマッピング・プロジェクトの作成方法

JDeveloperでは、ネイティブTopLinkディスクリプタ(詳細は第20.3.6項「ネイティブTopLinkディスクリプタの使用」を参照)およびマッピング(詳細は第20.3.7項「ネイティブTopLinkマッピングの使用」を参照)はTopLinkマップ(.mwpファイル)に格納され、セッションはsessions.xmlファイルに格納されます。TopLinkマップには、クラスがデータベース表にどのようにマップされるかに関する情報が含まれています。TopLinkエディタを使用して、次のようなマッピングの各コンポーネントを編集します。

- ドライバ、URL、ログイン情報などのデータベース情報

- キャッシュ・オプションなどのマッピングのデフォルト設定

TopLinkマップ(またはTopLinkマップの要素)を選択すると、その属性がTopLinkエディタに表示されます。

TopLinkは、開発者がJDeveloperマッピング・エディタで作成したディスクリプタとマッピングを使用して、アプリケーションの永続エンティティをデータベースにマップします。マッピング・エディタは、次のようなプロジェクト開発に対するアプローチをサポートしています。

- マッピング用のクラスと表のインポート

- クラスのインポート、および表とマッピングの生成

- 表のインポート、およびクラスとマッピングの生成

- クラス定義と表定義の作成

JDeveloperマッピング・エディタには、アプリケーションの永続エンティティまたはリレーショナル・モデル・コンポーネントを生成するための機能がいくつか用意されていますが、これらのユーティリティの目的はアプリケーションのラウンドトリップ開発を完了することではなく、短期間の初期開発方法を支援することのみです。

ネイティブTopLinkオブジェクト・マップを既存のプロジェクトに追加するには、次のようにします。

1. 「アプリケーション」ウィンドウで、TopLinkマップを追加するプロジェクトを右クリックし、「新規」を選択します。

2. 「新規ギャラリ」で、「ビジネス層」を展開し、「TopLink/JPA」を選択します。次に「TopLinkオブジェクト・マップ」を選択し、「OK」をクリックします。

3. 各フィールドを完了し、「OK」をクリックします。

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

TopLinkでは、次のダイレクト・マッピング・タイプは使用されません。

- タイプ変換

- オブジェクト・タイプ

- シリアライズ・オブジェクト

かわりに、TopLinkでは特殊なコンバータによって、フィールドへ直接マッピングを使用します。下位互換性のあるデプロイXMLファイルを生成するには、「TopLinkマップ」オプションの「一般」ページの「推奨されないダイレクト・マッピングの生成」オプションを使用します。

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

TopLinkの「自動マップ」ウィザードでは、Javaクラス属性を同様の名前のデータベース・フィールドに自動的にマップできます。「自動マップ」ウィザードでは、マップされていない属性に対するマッピングのみ作成されます。すでに定義されているマッピングは変更されません。

「自動マップ」ウィザードは、プロジェクト全体または特定のクラス、あるいはディスクリプタに対して使用できます。

TopLinkディスクリプタを自動マップするには、次のようにします。

1. 「アプリケーション」ウィンドウで、TopLinkマップを選択します。

2. 「構造」ウィンドウで、TopLinkマップ(または特定のJavaクラスまたはTopLinkディスクリプタ)を右クリックし、「自動マップ」を選択します。

3. 自動マップ・ウィザードの手順に従います。

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

TopLinkマッピングの場合、データソースへのアクセスに必要な情報を指定するセッション・メタデータでセッション・ログインを構成できます。

20.4 ネイティブTopLinkリレーショナル・プロジェクトの開発

TopLinkエディタは、JDBCを使用してアクセスされる従来型のリレーショナル・データベースにJavaオブジェクトをマップするリレーショナル・プロジェクトの作成を完全にサポートします。従来のリレーショナル・データベース、またはオブジェクト記憶域に特化されたデータ型をサポートするオブジェクト・リレーショナル・データベース(どちらのデータベースも、JDBCを使用してアクセスします)に対するJavaオブジェクトのトランザクション永続性を可能にするために、TopLinkリレーショナル・プロジェクトを使用します。

オブジェクト・リレーショナル・データベースに対するリレーショナル・プロジェクトを作成するには、Javaコードを使用してプロジェクトを作成する必要があります。オブジェクト・ストレージ用に特化されたデータ・タイプをサポートする、JDBCを使用してアクセスされるオブジェクト・リレーショナル・データベース( Oracle Databaseなど)に対するJavaオブジェクトのトランザクション永続性を可能にする、リレーショナル・プロジェクトを作成できます。

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

オブジェクト・リレーショナル・データベースに対するリレーショナル・プロジェクトを作成するには、Javaコードを使用してプロジェクトを作成する必要があります。オブジェクト・ストレージ用に特化されたデータ・タイプをサポートする、JDBCを使用してアクセスされるオブジェクト・リレーショナル・データベース( Oracle Databaseなど)に対するJavaオブジェクトのトランザクション永続性を可能にする、リレーショナル・プロジェクトを作成できます。

リレーショナル・プロジェクトの新規ネイティブTopLinkオブジェクト・マップを作成するには、次のようにします。

1. リレーショナル・プロジェクトに対する新規プロジェクトを作成する場合は、次のように新規プロジェクトを作成します。

1. メイン・メニューから「ファイル」→「新規」→「プロジェクト」を選択します。

2. 「新規ギャラリ」で、「プロジェクト」→「カスタム・プロジェクト」を選択します。

2. 「アプリケーション」ウィンドウで、TopLinkオブジェクト・マップを作成するプロジェクトを右クリックし、「新規」→「ギャラリから」を選択します。

3. 「新規ギャラリ」で、「ビジネス層」を展開して「TopLink/JPA」を選択し、「TopLinkオブジェクト・マップ」を選択します。

4. 「OK」をクリックします。

5. 「新規TopLinkオブジェクト・マップ」ダイアログの「データソース」領域で、「データベース」を選択し、データベース情報を指定します。

6. 「OK」をクリックします。
新規プロジェクトにTopLinkマップとTopLinkセッション構成ファイル(sessions.xml)が追加されます。

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

リレーショナル・ディスクリプタには、リレーショナル・データベース内の表にマップするJavaオブジェクトを記述します。リレーショナル・プロジェクトでは、ディスクリプタをクラス・ディスクリプタまたは集約ディスクリプタとして指定できます。

クラス・ディスクリプタは任意の永続オブジェクトに適用できますが、集約オブジェクトには適用できません。クラス・ディスクリプタを使用すると、集約コレクション・マッピングおよび集約オブジェクト・マッピングを除く任意のリレーショナル・マッピングを構成できます。

集約オブジェクトは、所有オブジェクトに厳密に依存するオブジェクトです。集約ディスクリプタでは、表、主キー、または多くの標準ディスクリプタ・オプションは所有ディスクリプタから継承されるため、これらは定義されません。集約マッピングを構成し、ターゲット・オブジェクト内のデータ・メンバーを、ソース・オブジェクトの基礎となるデータベース表のフィールドと関連付けるには、ターゲット・オブジェクトのディスクリプタを集約として指定する必要があります。

ディスクリプタの継承は集約として構成できますが、この場合、継承ツリー内のすべてのディスクリプタが集約である必要があります。集約ディスクリプタとクラス・ディスクリプタは、同じ継承ツリーに置くことはできません。

クラス・ディスクリプタを集約ディスクリプタに変更したり、リレーショナル・ディスクリプタから集約指定を削除してデフォルトのタイプに戻すこともできます。詳細は、第20.4.3項「リレーショナル・ディスクリプタの構成方法」を参照してください。

注意:

クラス・ディスクリプタを集約ディスクリプタに変更する場合、ディスクリプタの既存の情報は永久的に失われます。ディスクリプタをクラス・ディスクリプタに戻す場合、これを再構成する必要があります。

新規TopLinkディスクリプタを作成するには、次のようにします。

1. 「アプリケーション」ウィンドウで、TopLinkマップを右クリックし、「ディスクリプタの追加または削除」を選択します。

2. TopLinkディスクリプタの作成元のパッケージおよびクラスを選択し、「OK」をクリックします。
ディスクリプタが「構造」ウィンドウのTopLinkマップに追加されます。

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

リレーショナル・ディスクリプタはクラス・タイプまたは集約タイプとして構成できます。デフォルトでは、Javaクラスをリレーショナル・プロジェクトに追加すると、このためのリレーショナル・クラス・ディスクリプタが自動的に作成されます。

クラス・ディスクリプタは集約ディスクリプタに変更できます。

TopLinkリレーショナル・クラス・ディスクリプタを集約ディスクリプタに構成するには、次のようにします。

1. 「アプリケーション」ウィンドウで、TopLinkマップを選択します。

2. 「構造」ウィンドウでディスクリプタを右クリックし、「ディスクリプタ・タイプ」サブメニューで「集約」を選択します。
これで、選択したディスクリプタが集約ディスクリプタになります。

3. 集約ディスクリプタをクラス・ディスクリプタに変換するには、ディスクリプタを右クリックし、「ディスクリプタ・タイプ」サブメニューで「クラス」を選択します。

20.5 ネイティブ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マッピングを作成し、それを引き続き操作できるようになります。

20.5.1 XMLプロジェクトおよびオブジェクト・マップの作成方法

XMLプロジェクトの新規ネイティブTopLinkオブジェクト・マップを作成するには、次のようにします。

1. XMLプロジェクトに対する新規プロジェクトを作成する場合は、次のように作成します。

1. メイン・メニューから「ファイル」→「新規」→「プロジェクト」を選択します。

2. 「新規ギャラリ」で、「プロジェクト」→「カスタム・プロジェクト」を選択します。

2. 「アプリケーション」ウィンドウで、TopLink XMLオブジェクト・マップを作成するプロジェクトを右クリックし、「新規」→「ギャラリから」を選択します。

3. 「新規ギャラリ」で、「ビジネス層」を展開して「TopLink/JPA」を選択し、「TopLinkオブジェクト・マップ」を選択します。

4. 「OK」をクリックします。

5. 「新規TopLinkオブジェクト・マップ」ダイアログの「データソース」領域で、「XML」を選択します。

6. 「OK」をクリックします。
TopLinkマップおよびTopLinkセッション構成ファイル(sessions.xml)が追加されます。

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

XMLプロジェクトの新規TopLinkディスクリプタを作成するには、次のようにします。

1. 「アプリケーション」ウィンドウでTopLinkマップを右クリックし、「ディスクリプタの追加または削除」を選択します。

2. TopLinkディスクリプタの作成元のパッケージおよびクラスを選択し、「OK」をクリックします。
「構造」ウィンドウでTopLink要素にディスクリプタが追加されます。

3. 「XMLディスクリプタ」ページでフィールドを完了し、ディスクリプタを構成します。

20.5.3 XMLスキーマの追加方法

既存のデータ・モデル(XMLスキーマ文書)はあるが、対応するオブジェクト・モデル(ドメイン・オブジェクトに対するJavaクラス)がない場合は、次の手順を使用してTopLinkプロジェクトを作成し、対応するオブジェクト・モデルを自動生成します。

XMLスキーマを追加するには、次のようにします。

1. 「アプリケーション」ウィンドウで、TopLinkマップを選択します。

2. 「構造」ウィンドウでスキーマ要素を右クリックし、「スキーマのインポート」を選択します。

3. ダイアログでフィールドを完了し、インポートするXMLスキーマを指定します。

4. 「OK」をクリックします。
TopLinkマップにスキーマ(tlmap)が追加されます。

TopLink JAXBコンパイラでは、必要なJAXBファイルおよびTopLinkファイルがともにXMLスキーマ(XSD)文書から自動生成されるため、TopLinkによるJAXBアプリケーション開発が容易になります。生成後は、JAXBオブジェクト・モデルを再コンパイルしなくても、XMLマッピングを微調整できます。

20.6 ネイティブ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が提供されます。これにより、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プロジェクトとともに使用できるようにすることもできます。

20.6.1 EISプロジェクトおよびオブジェクト・マップの作成方法

Java EE Connector Architecture (JCA)アダプタおよびEISレコードを使用してアクセスされる非リレーショナル・データソースに対して、Javaオブジェクトのトランザクション永続性を可能にするEISプロジェクトを使用します。

EISマッピングでは、オブジェクトのデータ・メンバーをオブジェクトのディスクリプタで定義されたEISレコード形式に変換します。

EISプロジェクトの新規ネイティブTopLinkオブジェクト・マップを作成するには、次のようにします。

1. EISプロジェクトに対する新規プロジェクトを作成する場合は、次のように作成します。

1. メイン・メニューから「ファイル」→「新規」→「プロジェクト」を選択します。

2. 「新規ギャラリ」で、「プロジェクト」→「カスタム・プロジェクト」を選択します。

2. 「アプリケーション」ウィンドウで、TopLinkオブジェクト・マップを作成するプロジェクトを右クリックし、「新規」→「ギャラリから」を選択します。

3. 「新規ギャラリ」で、「ビジネス層」を展開して「TopLink/JPA」を選択し、「TopLinkオブジェクト・マップ」を選択します。

4. 「OK」をクリックします。

5. 「新規TopLinkオブジェクト・マップ」ダイアログの「データソース」領域で、「EIS」を選択し、使用するEISプラットフォームを指定します。

6. 「OK」をクリックします。
TopLinkマップおよびTopLinkセッション構成ファイル(sessions.xml)が追加されます。

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

EISディスクリプタには、JCAアダプタを介してEISデータ・ソースにマップするJavaオブジェクトを記述します。

EISディスクリプタを作成するには、次のようにします。

1. 「構造」ウィンドウでTopLinkマップを選択します。

2. 「ディスクリプタの追加または選択済TopLinkマップからの削除を行います」ボタンをクリックします。

3. EISディスクリプタの作成元のクラスを選択し、「OK」をクリックします。
「構造」ウィンドウにEISディスクリプタが追加されます。

4. EISディスクリプタのプロパティ・タブを完了します。

20.6.3 EISデータソースの使用

各EISプロジェクトに対して、これから使用するJCAデータ・ソース・プラットフォームを次の中から指定する必要があります。

- Oracle Advanced Queuing (AQ)

- Attunity Connect

- IBM MQSeries

- Java Message Service (JMS)

- Sun Blackbox

- XMLファイル

このプラットフォーム構成は、セッション・ログインによりオーバーライドされます(構成されている場合)。

20.7 ネイティブTopLinkセッションの開発

TopLinkマップは、それぞれ1つのTopLinkセッションに属します。セッションとは、アプリケーションがTopLink機能へのアクセスに使用するファサードです。セッションにより、データ・ソース・プラットフォーム情報、データ・ソース・ログイン情報および特定のアプリケーションのマッピング・メタデータが関連付けられます。マッピング・メタデータは、各種セッションを定義することにより、様々なアプリケーションで再利用できます。

TopLinkセッションは、TopLinkランタイムにアクセスするための主要手段となります。これを使用すると、アプリケーションは永続オブジェクトが含まれるデータソースに対して永続データ操作を実行できます。セッションにより、データ・ソース・プラットフォーム情報、データ・ソース・ログイン情報および特定のアプリケーションのマッピング・メタデータが関連付けられます。マッピング・メタデータは、各種セッションを定義することにより、様々なアプリケーションで再利用できます。

TopLinkには様々なセッション・タイプが用意されており、それぞれ異なる設計要件およびデータ・アクセス方法に向けて最適化されています。同一のアプリケーション内で様々なセッション・タイプを使用することができます。

TopLinkエディタには、次のTopLinkセッションがあります。

- サーバー・セッションおよびクライアント・セッション - サーバー・セッションでは、データベースやEISの各プラットフォームを使用する3層アーキテクチャの複数クライアント用に、単一のデータソース(共有オブジェクトや接続プールなど)に対するセッション管理を提供します。これは最も柔軟かつスケーラブルで、最もよく使用されるセッションです。実行時にサーバー・セッションからクライアント・セッションを取得して、クライアントごとに単一データ・ソースにアクセスします。

- データベース・セッション - データベース・セッションは、1つの接続で1ユーザーのすべてのデータソース・リクエストを処理する単純なスタンドアロン・アプリケーションでのクライアント・アプリケーションに、単一のデータソース接続を提供します。

- セッション・ブローカおよびクライアント・セッション - セッション・ブローカは、2つ以上のサーバー・セッションを集約することで、複数クライアントの複数データソースに対するセッション管理を提供します(データベース・セッションで使用することもできます)。
実行時にセッション・ブローカからクライアント・セッションを取得して、クライアントごとにセッション・ブローカによって管理されているすべてのデータ・ソースにアクセスします。

他のセッション・タイプは、Javaコードで直接構成できます。セッション・タイプの詳細は、『Oracle Fusion Middleware Oracle TopLink開発者ガイド』を参照してください。

20.7.1 新規のネイティブTopLinkセッション構成ファイルの作成方法

各ネイティブTopLinkセッション構成(sessions.xmlファイル)には、複数のセッションとセッション・ブローカを含めることができます。また、含めたすべてのセッションに適用される各セッション構成のクラスパスを指定できます。

新規セッション構成ファイルを作成するには、次のようにします。

1. 「ファイル」→「新規」の順に選択します。

2. 「カテゴリ」リストで、「ビジネス層」→「TopLink/JPA」を選択します。

3. 「項目」リストで、「TopLinkセッション構成」を選択します。

4. 「OK」をクリックします。
「TopLinkセッション構成の作成」ダイアログが表示されます。

5. ダイアログの各フィールドを完了し、「OK」をクリックします。
「アプリケーション」ウィンドウで、sessions.xmlファイルが作成元のフォルダに追加され、デフォルトのセッションが「構造」ビューのセッション構成ノードに追加されます。

20.7.2 ネイティブTopLinkセッションの作成方法

ネイティブTopLinkセッションは、TopLinkランタイムにアクセスするための主要手段となります。これは、アプリケーションが永続オブジェクトが含まれるデータ・ソースに対してあらゆる永続データ操作を実行するための手段となります。

セッションにより、データ・ソース・プラットフォーム情報、データ・ソース・ログイン情報および特定のアプリケーションのマッピング・メタデータが関連付けられます。マッピング・メタデータは、各種セッションを定義することにより、様々なアプリケーションで再利用できます。

新規TopLinkセッションを作成するには、次のようにします。

1. 「アプリケーション」ウィンドウで、TopLinkセッション構成ファイルを右クリックし、「開く」を選択します。
TopLinkエディタにTopLinkセッション構成ファイルが表示され、このセッション構成ファイル内の既存のセッションおよびセッション・ブローカが表示されます。

2. 「新規セッションの作成」をクリックします。

3. 「新規セッション」ダイアログの各フィールドを完了し、「OK」をクリックします。
「構造」ビューでセッション構成ノードに新規セッションが追加されます。

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

セッションの作成および構成後は、実行時にTopLinkセッション・マネージャを使用してセッション・インスタンスを取得できます。TopLinkセッション・マネージャを使用すると、単一のエンティティの下で保持される一連のセッションを構築できます。セッション・マネージャは、静的ユーティリティ・クラスです。TopLinkのセッションをsessions.xmlファイルからロードし、名前によってセッションをメモリーにキャッシュし、各TopLinkセッションに対して1つのアクセス・ポイントを提供します。

セッション・マネージャには、2つの主な機能があります。すなわち、セッションのインスタンスを作成することと、各名前付きセッションの1つのインスタンスのみがセッション・マネージャの任意のインスタンスに対して存在することを保証することです。

セッション・マネージャでは、次のようにセッションをインスタンス化します。

- クライアント・アプリケーションが名前を使用してセッションを要求します。

- セッション・マネージャは、sessions.xmlファイル内のセッション名を検索します。セッション名が存在する場合、セッション・マネージャは、指定されたセッションをインスタンス化します。それ以外の場合は、例外が発生します。

- インスタンス化の後、セッションは、アプリケーションが停止されるまで実行可能です。

セッション・インスタンスの設定後は、それを使用して特別タスク用にセッションの追加タイプを取得できます。セッション・マネージャは、EJBアプリケーションでは特に便利です。Enterprise Beanがセッション・マネージャを取得でき、そこから目的のセッションを取得できるためです。

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

セッション・ブローカは、クライアント・アプリケーションが単一のTopLinkセッションで複数のデータベースに透過的にアクセスできるようにするメカニズムです。セッション・ブローカには、サーバー・セッションとデータベース・セッションの両方が含まれる場合があります。セッション・ブローカはサーバー・セッションと使用することをお薦めします。これは、サーバー・セッションが最もスケーラブルなセッション・タイプであるためです。

サーバー・セッションを指定してセッション・ブローカを作成、構成した後は、実行時にセッション・ブローカからクライアント・セッションを取得して、各クライアントについてセッション・ブローカによって管理されているすべてのデータ・ソースへの専用接続を提供できます。

新規セッション・ブローカを作成するには、次のようにします。

1. 「アプリケーション」ウィンドウで、セッション構成ファイル(sessions.xml)を開きます。
セッション構成がTopLinkエディタに表示されます。

2. 「新規セッション・ブローカの作成」をクリックします。

3. ダイアログの各フィールドを完了し、セッション・ブローカに追加するセッションを選択し、「OK」をクリックします。

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

TopLinkセッション構成ファイル(sessions.xml)により、TopLinkマップ内で指定したすべてのログイン情報がオーバーライドされます。リレーショナル・データベースまたはEISデータソースに対してデータソース・ログインを作成できます。

データソースを作成する手順は、次のとおりです。

1. 「アプリケーション」ウィンドウで、TopLink構成(sessions.xml)を選択します。

2. sessions.xml「構造」ビューで「セッション」ノードを展開し、TopLinkセッションを選択します。
TopLinkセッション情報がTopLinkエディタに表示されます。

3. 「ログイン」タブを選択します。

4. セッションのログイン・タイプがまだ設定されていない場合は、リストからタイプを選択します。

- データベース: CMP以外のTopLinkアプリケーションのセッション・レベルで接続情報を構成する場合に選択します。TopLinkランタイムでは、CMP以外のTopLinkアプリケーションのセッションを使用して永続性操作を実行する場合は常にこの情報が使用されます。

- EIS: XMLアプリケーションのセッション・レベルで接続情報を構成する場合に選択します。TopLinkランタイムでは、EISアプリケーションのセッションを使用して永続性操作を実行する場合は常にこの情報が使用されます。

- XML: TopLink XMLセッションのデータソース・ログイン設定を指定するには、このページを使用します。

データベース、EISおよびXMLの「ログイン」ページの各オプションの詳細は、前述の手順でページを表示し、[F1]キーを押してオンラインヘルプを参照してください。

20.7.6 接続プールの作成方法

接続プールは、1つ以上のクライアントのかわりにデータソース接続の共有コレクション(プール)を作成および保持するサービスです。接続プールは、リクエストに基づいてプロセスに接続を提供し、プロセスが接続の使用を終了すると、接続をプールに返します。接続は、プールに返されると、他のプロセスで使用できます。

データ・ソースへの接続の確立には時間がかかるため、接続プールのこのような接続を再使用してパフォーマンスを向上できます。TopLinkは、接続プールを使用して、サーバーおよびクライアント・セッションで使用される接続を管理および共有します。単一のデータソースへの接続を再利用することにより、必要な接続数が減り、アプリケーションで多くのクライアントをサポートできるようになります。

新規接続プールを作成するには、次のようにします。

1. 「アプリケーション」ウィンドウで、TopLink構成(sessions.xml)を選択します。

2. sessions.xml「構造」ウィンドウで「セッション」ノードを展開し、TopLinkセッションを選択します。

3. セッションを右クリックし、ポップアップ・メニューの「新規」→「名前付き接続プール」を選択します。

4. 接続プールの名前を入力し、「OK」をクリックします。
「構造」ウィンドウに接続プールが追加されます。

5. 新しく作成された接続プールを選択します。
そのプロパティが「エディタ」ウィンドウの「接続プール」ページに表示されます。

20.8 ネイティブTopLinkアプリケーションの開発

Oracle TopLinkは、オブジェクトの永続性およびオブジェクト・トランスフォーメーションのための高度なフレームワークを提供します。開発やメンテナンスのコストを軽減し、エンタープライズ・アプリケーションの機能を向上させる開発ツールおよびランタイム機能が用意されています。

20.8.1 TopLinkキャッシュの使用

TopLinkキャッシュは、クラスと主キーの値に基づいて最近読み取られたり書き込まれたオブジェクトが格納される、インメモリー・リポジトリです。

TopLInkでは、次の目的でこのキャッシュが利用されます。

- 最近読み取られたり書き込まれたオブジェクトを保持し、メモリー内でそれらにアクセスしてデータベースへのアクセスを最小限にすることで、パフォーマンスを向上させます。

- ロックと分離レベルを管理します。

- オブジェクト・アイデンティティを管理します。

TopLinkでは、次の2種類のキャッシュが使用されます。

- セッション・キャッシュ - 特定のセッションにアタッチされたクライアントに対してサービスを提供する共有キャッシュ。クライアント・セッションがデータソースに対してオブジェクトの読取りや書込みを行うと、親サーバー・セッションのキャッシュにオブジェクトのコピーが保存され、このコピーがセッション内のその他すべてのプロセスからアクセスできるようになります。
TopLinkでは、オブジェクトが次の場所からセッション・キャッシュに追加されます。

- データ・ストア: 読取り操作が実行された場合。

- 作業ユニット・キャッシュ: 作業ユニットがトランザクションを正常にコミットした場合。

- 作業ユニット・キャッシュ - 作業ユニット内の操作にサービスを提供します。作業ユニット・キャッシュは、オブジェクトを保持してセッション・キャッシュから分離し、作業ユニットが変更内容をデータ・ソースにコミットした後、変更されたオブジェクトまたは新規オブジェクトをセッション・キャッシュに書き込みます。TopLinkは、作業ユニットがデータソースにコミットすると、セッション・キャッシュを更新します。

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

TopLinkは、順序付けによって割り当てられる場合と割り当てられない場合がある、永続エンティティの主キー属性を使用して、キャッシュを介してオブジェクト・アイデンティティを保持します。オブジェクト・アイデンティティは、常に保持することをお薦めします。オブジェクト・アクティビティを無効化するのは、読取り専用オブジェクトの場合など、絶対に必要な場合のみにしてください。

20.8.1.2 問合せとキャッシュ

共有セッション・キャッシュに対して実行される問合せは、インメモリー問合せと呼ばれます。

デフォルトでは、主キーに基づいてシングル・オブジェクトを検索する問合せは、必要なオブジェクトをまずキャッシュから取得し、オブジェクトがキャッシュに存在しない場合にのみ、データ・ソースで検索を行います。その他すべての問合せタイプの場合は、デフォルトでデータベースを最初に検索します。特定の問合せを、メモリー内キャッシュ、データベース、その両方のうち、いずれに対して実行するかを指定できます。

20.8.1.3 失効したデータの処理

失効したデータは、データ・ソースにコミットされた最新バージョンでないオブジェクトをキャッシュした結果として発生します。

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

複数のオブジェクトが最新の状態である必要があるシステムの場合、分散キャッシュ・コーディネーションを行うほどの負荷をかけずに、これらのオブジェクトをデータベースから明示的にリフレッシュするよう指定できます。これを行うには:

1. 必要なオブジェクトをリフレッシュする一連の問合せを構成します。

2. 適切なリフレッシュ・ポリシーを設定します。

3. 必要に応じて問合せを起動し、オブジェクトをリフレッシュします。

20.8.1.5 キャッシュの無効化

キャッシュの無効化ポリシーを使用して、キャッシュされたオブジェクトが無効になる方法とタイミングを指定します。キャッシュ無効化の使用により、失効したデータがアプリケーションで使用されないようにします。特定の時刻にオブジェクトを無効化したり、オブジェクトが読み込まれてから指定した時間が経過したらオブジェクトを無効としてマークするようキャッシュを構成できます。または、オブジェクトを明示的にのみ無効化する無効化ポリシーを設定することもできます。無効化ポリシーを設定する場合、すべてのオブジェクトに適用するにはプロジェクト・レベルで構成し、特定のオブジェクトに適用するにはディスクリプタ・レベルで構成し、問合せから戻された結果に適用するには問合せレベルで構成します。

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

キャッシュ・コーディネーションでは、データソースへのアクセスを回避することでパフォーマンスが向上します。セッションのインスタンスが相互にオブジェクト変更をブロードキャストすることにより、各セッションのキャッシュが最新の状態に保たれるか、次回読み取るデータソースを基にオブジェクトを更新する必要があることが通知されるため、失効したデータも削減されます。また、キャッシュ・コーディネーションにより、分散環境でのオプティミスティック・ロック例外の数は減少し、アプリケーションで失敗するトランザクションや繰り返されるトランザクションの数も減少します。読取りベースであり、同じオブジェクトを定期的にリクエストおよび更新し、複数の分散セッションを持つ単一のJavaアプリケーションによって実行された変更があるアプリケーションに対してキャッシュ・コーディネーションを使用します。

キャッシュ・コーディネーションのかわりに、アイデンティティ・タイプ、キャッシュ無効化またはキャッシュ分離を使用してread-only、read-mostlyおよびwrite-mostlyクラスごとにTopLinkキャッシュをチューニングすることもできます。このチューニングは、キャッシュ・コーディネーションの前に実行できます。

20.8.1.7 キャッシュの分離

独立クライアント・セッションには、共有サーバー・セッション・キャッシュを無効化するメカニズムがあります。独立クラスとしてマークされたクラスは、すべてクライアント・セッションのライフ・サイクルを基準としてオブジェクトをキャッシュします。これらのクラスは、共有サーバー・セッション・キャッシュを使用しません。このメカニズムでは、キャッシュを一部のクラスに許可し、一部のクラスに禁止するようクラス単位で構成できるため、キャッシュの抑制に最適です。

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

TopLinkでは、デフォルトで、読取りまたは書込み操作中のキャッシュ・ロックを最小限に抑えるために同時実行性が最適化されます。非常に明確な理由があって変更する場合を除き、TopLinkのトランザクション分離構成はデフォルトのまま使用してください。

20.8.2 TopLinkキャッシュの構成方法

TopLinkキャッシュは、クラスと主キーの値に基づいて最近読み取られたり書き込まれたオブジェクトが格納される、インメモリー・リポジトリです。

JDeveloperでは、特定のTopLinkマップに対してTopLinkキャッシュを構成できます。キャッシュ・オプションは、すべてのディスクリプタに対してグローバルに適用されます。マップ・レベルのキャッシュ構成をオーバーライドするには、ディスクリプタ・レベルでキャッシュ構成を定義します。

TopLinkマップ・レベルでTopLinkキャッシュを構成するには、次のようにします。

1. 「アプリケーション」ウィンドウで、TopLinkマップを選択します。

2. 「構造」ウィンドウで、TopLinkマップをダブルクリックします。

3. 「デフォルト」タブを選択します。

4. 「キャッシング」で、キャッシュ・オプションを設定します。キャッシュ・タイプは、 「完全」、「なし」、「ソフト」、「弱」、「弱参照キャッシュと強参照サブキャッシュ」、「弱参照キャッシュとソフト参照サブキャッシュ」の中から選択できます。これらのキャッシュ・タイプとそのオプションの詳細は、[F1]キーを押してオンライン・ヘルプを参照してください。

ディスクリプタ・レベルでTopLinkキャッシュを構成するには、次のようにします。

1. 「アプリケーション」ウィンドウで、TopLinkマップを選択します。

2. 「構造」ウィンドウで、マップを展開してそのディスクリプタを表示し、構成するディスクリプタを選択します。

3. 「キャッシング」タブを選択します。

4. キャッシュ・オプションを設定します。キャッシュ・タイプは、 「完全」、「なし」、「ソフト」、「弱」、「弱参照キャッシュと強参照サブキャッシュ」、「弱参照キャッシュとソフト参照サブキャッシュ」の中から選択できます。これらのキャッシュ・タイプとそのオプションの詳細は、[F1]キーを押してオンラインヘルプを参照してください。

20.8.3 問合せの使用

TopLinkを使用すると、リレーショナルや非リレーショナルのデータ・ソースに対して、Java EEおよびJava EE以外のアプリケーションの両方で問合せを使用して、永続オブジェクトまたはデータを作成、読取り、更新および削除できます。問合せの詳細は、『Oracle Fusion Middleware Oracle TopLink開発者ガイド』を参照してください。

データソースの問合せとは、データソースの内容に対する操作の実行、データソースの内容との相互作用を意味します。これを行うには、次を実行します:

- 問い合せるデータ・ソースのネイティブな構文で操作を定義します。

- 制御された方法で操作を適用します。

- 操作によって結果が返された場合は、それを管理します。

また、TopLinkでは、問合せがTopLinkキャッシュにどのような影響を与えるのかも考慮する必要があります。

20.8.3.1 TopLink問合せ言語

TopLinkを使用すると、次の問合せ言語のいずれかを使用して問合せを表現できます。

- SQL問合せ

- EJBQL問合せ

- JPQL問合せ

- XML問合せ

- EISインタラクション

- 例による問合せ

- TopLinkの式

20.8.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を使用した方法の場合、問合せをドメイン・オブジェクト・モデルに限定し、データソース・スキーマ実装の詳細に依存しなくてすむという大きな利点があります。

20.8.4 問合せの作成方法

問合せには、渡された引数に基づいて暗黙的に作成され、ワン・ステップで実行されるもの(たとえば、セッション問合せ)と、ユーザーが明示的に作成、構成および実行するもの(たとえば、データベース問合せ)があります。

問合せを作成するには:

1. 「アプリケーション」ウィンドウで、TopLinkマップを選択します。

2. 「構造」ウィンドウでディスクリプタを選択します。

3. 「問合せ」タブで、問合せを作成します。
「問合せ」タブを使用すると、TopLinkディスクリプタに関連する問合せを作成および管理できます。使用可能なアクションは次のとおりです。

- 名前付き問合せ: ReadObjectQuery、ReadAllQueryおよびReportQuery型の名前付き問合せを作成します。

- カスタム・コール: カスタム問合せを作成します。

- 問合せキー: 問合せキーは、データベース・フィールドの、スキーマに依存しない別名で、リレーショナル・データベース・プロジェクトでのみサポートされます。

- 設定: 問合せタイムアウトとキャッシュ・リフレッシュのオプションを設定します。

20.8.5 基本問合せAPIの使用

TopLink基本問合せAPIには、最も一般的に使用される次の問合せのサポートが含まれます。

- セッション問合せ

- DatabaseQuery問合せ

- 名前付き問合せ

- SQLコール

- EJBQLコール

- EISインタラクション

- コレクション問合せの結果

- レポート問合せの結果

20.8.6 詳細問合せAPIの使用

TopLink問合せAPIを使用すると、より詳細な次の問合せAPIコールおよび手法を使用することもできます。

- リダイレクト問合せ

- 履歴問合せ

- フェッチ・グループ

- 読取り専用問合せ

- インタフェース

- 継承階層

- その他の結合式

- EJBファインダ

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

詳細な問合せAPIの詳細は、『Oracle Fusion Middleware Oracle TopLink開発者ガイド』を参照してください。

20.8.6.1 リダイレクト問合せ

リダイレクト問合せとは、問合せの実行制御をアプリケーションに委任する名前付き問合せです。リダイレクト問合せを使用すると、問合せの実装をコード内でstaticメソッドとして定義できます。複雑な操作を実行する場合、問合せのリダイレクタをTopLinkの問合せフレームワークと組み合せることができます。

20.8.6.2 履歴問合せ

時間に関する問合せを作成するには、TopLinkで問合せに追加するAsOfClauseを指定します。AsOfClauseクラスは、履歴スキーマがタイムスタンプに基づいている場合に使用し、AsOfSCNClauseクラスは、履歴スキーマがデータベース・システムの変更数に基づいている場合に使用します。履歴セッションを取得する際にAsOfClauseを指定することにより、TopLinkですべての問合せに対して同じ句が追加されるようにするか、問合せごとにAsOfClauseを指定できます。

20.8.6.3 フェッチ・グループ

フェッチ・グループは、ReadObjectQueryまたはReadAllQueryとともに使用できます。問合せを実行すると、TopLinkによりフェッチ・グループ内の属性のみが取得されます。除外された属性のいずれかに関するgetterメソッドをコールすると、TopLinkでは、このサブセットから除外されたすべての属性をフェッチする問合せが自動的に実行されます。

20.8.6.4 読取り専用問合せ

データが読取り専用であることがわかっている場合は、問合せを読取り専用として指定することでパフォーマンスを向上できます。これにより、問合せによって返されるオブジェクトが不変であることがTopLinkに通知されます。

オブジェクト・レベルの読取り問合せを読取り専用として構成できます。このような問合せをUnitOfWorkのコンテキストで実行すると、読取り専用の未登録オブジェクトがTopLinkによって返されます。読取り専用オブジェクトは登録や変更の確認をする必要がないため、この方法で読取り専用データを問い合せると、パフォーマンスを向上できます。

20.8.6.5 インタフェース

インタフェースのディスクリプタを定義して問合せを有効にした場合、TopLinkではインタフェースに対する問合せが次のようにサポートされます。

- インタフェースのインプリメンタが1つしかない場合、問合せでは具象クラスのインスタンスが返されます。

- インタフェースのインプリメンタが複数ある場合、問合せでは実装するすべてのクラスのインスタンスが返されます。

20.8.6.6 継承階層

継承階層の一部であるクラスに対して問合せを行うと、セッションによりディスクリプタがチェックされ、次のようにクラスのタイプが特定されます。

- サブクラスを読み取るようにディスクリプタを構成(デフォルト構成)すると、問合せではクラスとそのサブクラスのインスタンスが返されます。

- サブクラスを読み取らないようにディスクリプタを構成すると、問合せでは問合せ対象となるクラスのインスタンスのみが返されます。サブクラスのインスタンスは返されません。

- サブクラスを外部結合するようにディスクリプタを構成すると、問合せではクラスとそのサブクラスのインスタンスが返されます。

- サブクラスを外部結合するようにディスクリプタを構成すると、問合せではクラスとそのサブクラスのインスタンスが返されます。

20.8.6.7 その他の結合式

あるクラスで実行する各問合せに自動的に式を追加するよう、問合せマネージャを設定することができます。たとえば、特定のクラスの有効なインスタンスに対してデータベースをフィルタ処理する式を追加できます。これは、次の目的で使用します。

- 論理的に削除されたオブジェクトをフィルタ処理する場合

- 2つの別々のクラスが継承を使用せずに単一の表を共有できるようにする場合

- オブジェクトの履歴バージョンをフィルタ処理する場合

20.8.6.8 EJBファインダ

TopLink問合せフレームワークを使用するエンティティBeanに対してファインダを作成するには、ファインダの定義、宣言および構成が必要です。事前定義されたファインダの場合、ファインダを明示的に作成する必要はありません。デフォルトのファインダの場合、ファインダのメソッドのみを作成する必要があります。

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

カーソルとストリームは、大きな結果セットを効率的に扱うことのできる関連メカニズムです。ストリームとはコレクションのビューであり、ファイル、デバイス、Vectorなどです。ストリームを使用すると、コレクションの要素に一度に1つずつ順にアクセスできます。これにより、1つのコレクションの全オブジェクトが同時にストリームに含まれることのないストリーム・クラスの実装が可能になります。

大きな結果セットは、収集して処理する際に、リソースを大量に消費します。パフォーマンスを向上させ、クライアントが返された結果をより確実に制御できるようにするには、カーソルまたはストリームを使用するようTopLink問合せを構成します。カーソルとストリームは、DataReadQueryおよびReadAllQueryのすべてのサブクラスでサポートされています。

20.8.7 TopLink式の作成方法

TopLinkの式を使用すると、ドメイン・オブジェクト・モデルに基づいて問合せの検索基準を指定できます。問合せを実行する際、TopLinkではこれらの検索基準を、使用しているプラットフォームに適した問合せ言語に変換します。

TopLinkは、式をサポートする次の2種類のパブリック・クラスを提供します。

- Expressionクラスは、単純な定数からブール・ロジックを伴う複雑な句まで、あらゆる式を表します。式の操作、グループ化および統合を行うことができます。

- ExpressionBuilderクラスは、新しい式を構成するためのファクトリです。選択基準は、DatabaseQueryのメソッドsetSelectionCriteriaを使用してExpressionとして指定したり、Expressionを取るファインダに指定できます。

通常、単純な式は次の部分で構成されています。

- 属性: 永続クラスの問合せキーまたはマップされた属性を表します。

- 演算子: GreaterThan、EqualまたはLikeなどのブール・ロジックを実装する式メソッドです。

- 定数または比較: オブジェクトの選択に使用される値を参照します。

名前付き問合せで使用する基本式を作成するには、次のようにします。

1. 「アプリケーション」ウィンドウで、TopLinkマップを選択します。

2. 「構造」ウィンドウでディスクリプタを選択します。

3. 名前付き問合せを選択し、「選択基準」領域で式を編集します。

20.8.8 TopLinkトランザクションの概要

データベース・トランザクションは、単一操作として成功または失敗した一連の操作(作成、更新または削除)です。失敗したトランザクションは破棄されるかロールバックされ、データベースは元の状態のままにされます。トランザクションには、内部トランザクション(TopLinkによって提供されるもの)または外部トランザクション(アプリケーション・サーバーなどのアプリケーションの外部のソースによって提供されるもの)があります。

TopLinkでは、トランザクションは作業ユニット・オブジェクトに含まれます。作業ユニットをセッションから取得し、そのAPIを使用すると、直接、またはJava Transaction API (JTA)などのJava 2 Enterprise Edition (Java EE)アプリケーション・サーバー・トランザクション・コントローラを使用して、トランザクションを制御できます。

トランザクションがコミットされるたびに、データベースではデータに加えられたすべての変更のログが記録されます。トランザクション内の操作がすべて成功した場合は、データベースが変更されますが、トランザクションの一部が失敗した場合は、ログを使用して変更内容がロールバックされます。

トランザクションは、独自のコンテキスト(論理領域)の中で、他のトランザクションやデータベース操作から独立して実行されます。トランザクション・コンテキストには境界が設定されています。つまり、トランザクション・コンテキストは次のものを含む定義済の構造を持ちます。

- トランザクション内の操作が開始される開始ポイント。トランザクションは、このポイントで操作の実行を開始します。

- 操作が完了し、トランザクションが変更内容をデータベースに正式に反映しようとする、コミット・ポイント。

同じデータに対する同時(並列)トランザクションが相互作用できる度合いは、構成されているトランザクション分離のレベルによって決まります。ANSI/SQLでは、4つのレベルのデータベース・トランザクション分離が定義されています。どのレベルでも、パフォーマンスと次のような望ましくない動作による悪影響の間でトレードオフが発生します。

- 内容を保証しない読取り: トランザクションが同時トランザクションによって書き込まれた未コミット・データを読み取ります。

- 非リピータブル・リード: トランザクションがデータを再度読み取り、最初の読取り操作後にコミットされた他のトランザクションによってデータが変更されていることを検出します。

- 非リピータブル・リード: トランザクションがデータを再度読み取り、最初の読取り操作後にコミットされた他のトランザクションによってデータが変更されていることを検出します。

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

作業ユニットは、トランザクション内で行われた変更を、その変更がデータベースに正常にコミットされるまで、他のスレッドから分離します。その他のトランザクション・メカニズムとは異なり、作業ユニットはトランザクション内のオブジェクトに対する変更、変更の順序および他のTopLinkのキャッシュを無効にする可能性がある変更を自動的に管理します。作業ユニットは、最小のチェンジ・セットを計算し、参照整合性規則に準拠してデッドロックを回避するようにデータベース・コールを順序付けし、変更されたオブジェクトを共有キャッシュにマージして、これらの問題を管理します。クラスタ化環境では、作業ユニットはコーディネート・キャッシュ内の他のサーバーと変更を同期化することもできます。

通常のトランザクションと同様に、作業ユニット・トランザクションは次のものを提供します。

- 作業ユニット・トランザクションのコンテキスト - 作業ユニット操作は、書込みがコミット時までデータベースから分離される作業ユニットのコンテキスト内で行われます。作業ユニットは、独自の内部キャッシュ内でオブジェクトのコピーまたはクローンに対して変更を実行し、成功した場合、データベースおよびセッション・キャッシュ内のオブジェクトに変更を適用します。

- 作業ユニット・トランザクションの境界設定 - TopLinkアプリケーションでは、作業ユニットを使用してトランザクションの境界が設定されます。アプリケーションにコンテナ管理トランザクションを提供するJava EEコンテナが含まれている場合、アプリケーション・サーバーでは、独自のトランザクション・サービスを使用して、トランザクションの境界が設定されます。TopLinkの外部トランザクション・コントローラを指定することで、コンテナのトランザクション・サービスと統合するように、TopLinkを構成できます。

- 作業ユニット・トランザクションの分離 - 作業ユニットは、データベース・トランザクションの分離と直接の関係はありません。作業ユニットでは問合せがデータベース・トランザクション外部で実行される場合があるため、データベースはこれら外部のデータとその可視性を制御できません。ただし、デフォルトでは、TopLinkは、基礎となるデータベースに構成されたデータベース・トランザクション分離とは無関係のトランザクション分離レベルを提供します。各作業ユニット・インスタンスは、登録されているオブジェクトの独自のコピー(クローン)に対して実行されます。この場合、作業ユニットでは、オブジェクトの変更に対する問合せを1つの作業ユニット内で実行できるAPIにより、読取りコミット操作を行います。変更がデータベースにコミットされるのは、作業ユニットのコミット・メソッドがコールされる場合のみです。

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

この章では、Oracle JDeveloperでセキュアなJava EEアプリケーションを開発、デプロイおよび管理する方法について説明します。

この章には次の項が含まれます:

- 第21.1項「セキュアなアプリケーションの開発について」

- 第21.2項「フェーズでのアプリケーションの保護」

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

- 第21.4項「Webアプリケーションでのユーザー認証の処理」

- 第21.5項「Webアプリケーション内のアプリケーション・リソースの保護」

- 第21.6項「アプリケーション・レベルのポリシー・ストアの構成」

- 第21.7項「ポリシー・ストアの移行」

- 第21.8項「JDBCを使用した開発の保護」

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

Fusion Middleware Suiteでは、セキュアなアプリケーションを開発、デプロイおよび管理できます。Java EEアプリケーションは、コンテナ管理セキュリティのみを使用して保護できます。Fusion Webアプリケーションの場合は、Oracle ADF Securityを使用できます。Fusion Webアプリケーションは、Oracle Application Development Framework (Oracle ADF)を使用して開発するJava EEアプリケーションです。

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

Java EEアプリケーションは、OPSSを使用するよう拡張できます。このシナリオでは、JDeveloperの宣言エディタを使用してユーザーおよびロールを構成します。アプリケーション・リソースは、Java EEコンテナ管理のセキュリティを使用して保護します。

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

このシナリオは、ADFセキュリティを追加してOracle ADFリソースに対するきめ細かなセキュリティ・ポリシーを有効にする、完全な宣言実装です。JDeveloperの宣言エディタを使用してファイルベースのアイデンティティ・ストア、ポリシー・ストアおよび資格証明ストアを構成します。アプリケーションでOracle ADFが使用されるため、ウィザードを実行してADFタスク・フローやADFページ定義などのADFリソースに関連付けられているWebページのセキュリティを構成し、jazn-data.xmlポリシー・エディタを使用してセキュリティ・ポリシーも定義します。

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

Java EEセキュリティ・モデルは、コンテナ管理のセキュリティに基づくロールベースの宣言型モデルであり、ユーザーに割り当てられたロールによりリソースが保護されます。このモデルを使用すると、アプリケーション・デプロイメント・ディスクリプタのアプリケーション・ロジックとは別個にセキュリティを指定できるため、基礎となるセキュリティ・インフラストラクチャからアプリケーションを切り離すことができます。アプリケーションが実行されるコンテナは、デプロイメント・ディスクリプタの仕様に応じてアプリケーションのセキュリティを提供します。このモデルでは、デプロイメント・ディスクリプタ内で参照できるアプリケーション・コードにセキュリティ・データ(注釈)を埋め込むこともできます。

コンテナ管理セキュリティの詳細は、『Oracle Fusion Middlewareセキュリティ・ガイド』を参照してください。

21.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アプリケーション・セキュリティ・ガイド』を参照してください。

21.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 WebLogic Serverのセキュリティの管理を参照してください。

このため、JDeveloperでファイルベース・プロバイダおよびOPSSを使用すると、次のようにして本番環境での要求を分離できます。

- テスト・ユーザーおよびアプリケーション・ロールを宣言によって定義する

- Oracle ADFリソースのセキュリティ・ポリシーを宣言によって定義する

- デプロイ時にアプリケーション・レベルのセキュリティ・プロバイダからsystem-jazn-data.xmlセキュリティ・プロバイダに容易に移行する

- デプロイまでエンタープライズ・ロールのマッピングを見送る

21.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アプリケーションのアプリケーション・サーバーへの直接デプロイメントもサポートされています。詳細は、第21.2項「フェーズでのアプリケーションの保護」を参照してください。

Webアプリケーションを開発する場合、Oracle Application Development Framework (Oracle ADF)を使用してユーザー・インタフェース内のデータ対応のコンポーネントを操作することを選択できます。ユーザー・インタフェースにADFタスク・フローやADFページ定義などのADFリソースが含まれる場合、ADFセキュリティ・フレームワークを介してこれらのリソースに依存するWebページを保護するオプションも用意されています。JDeveloperツールはセキュリティの繰返し型開発をサポートしているため、ADFリソース用として作成するセキュリティ・ポリシーを簡単に作成、テストおよび編集できます。JDeveloperでテスト・ユーザーの作成に進み、統合WebLogic Serverでアプリケーションを実行し、エンドユーザーがセキュアなリソースにアクセスする方法をシミュレートできます。詳細は次の項目を参照してください。第21.5.2項「Fusion WebアプリケーションのADFセキュリティを使用したADFリソースの保護方法」。

Webアプリケーション・セキュリティの詳細は、『Oracle Fusion Middleware Oracle WebLogic Serverセキュリティのプログラミング』を参照してください。

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

ユーザーが保護されたWebアプリケーション領域を要求すると、宣言セキュリティでの認証が強制されます。

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

ユーザーが保護されたWebアプリケーション領域を要求すると、宣言セキュリティでの認証が強制されます。ユーザーがこれまで認証されていない場合、コンテナはユーザーから資格証明を取得します。ユーザーはサーバー・セッション中、認証されたままです。

サポートされている認証タイプは、FORMベース認証、BASIC認証およびCLIENT-CERT認証です。認証タイプは、<login-config>要素を使用してweb.xmlデプロイメント・ディスクリプタで指定されます。

21.4.1.1 BASIC認証

BASIC認証では、ユーザーがユーザー名とパスワードを入力できるようにブラウザのログイン・ダイアログが使用されます。このダイアログ・フォームはカスタマイズできないため、使用するブラウザに応じてルック・アンド・フィールが異なります。ユーザー資格証明は認証済レルムのブラウザ・セッションに格納されます。レルムは、認証されたユーザーの一連の権限が含まれるリポジトリです。Oracle Platform Security Servicesのデフォルトのレルムは、jazn.comです。

例21-1のコードSnippetは、BASIC認証をweb.xmlファイルに指定する方法を示しています。

例21-1 web.xmlファイルに指定されたBASIC認証

<login-config>
<auth-method>BASIC</auth-method>
<realm-name>jazn.com</realm-name>
</login-config>

21.4.1.2 FORM認証

FORMベース認証では、アプリケーション開発者はカスタム・ログイン・ダイアログを指定できます。usernameパラメータの名前はj_usernameで、パスワード・フィールドの名前はj_passwordである必要があります。要求を認証するJava EEコンテナのログイン・フォーム・アクションの値はj_security_checkである必要があります。

例21-2のコードSnippetは、FORM認証をweb.xmlファイルに指定する方法を示しています。

例21-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>

21.4.1.3 CLIENT-CERT認証

CLIENT-CERT認証では、X.509証明書を使用してユーザーを認証します。このタイプの認証は、公開鍵の暗号化とも呼ばれます。

認証タイプの選択の詳細は、『Oracle Fusion Middlewareセキュリティ・ガイド』を参照してください。

Oracle WebLogic Serverを使用する認証タイプの詳細は、『Oracle Fusion Middleware Oracle WebLogic Serverセキュリティのプログラミング』を参照してください。

21.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にすでに存在)の内部に配置されます。

21.4.2.1 weblogic.security.Encrypt

weblogic.security.Encryptユーティリティは、WebLogic Serverで使用されるクリアテキスト文字列を暗号化します。このユーティリティは、現在のディレクトリの暗号化サービスまたは指定されたWebLogic Serverドメイン・ルート・ディレクトリの暗号化サービスを使用します。

注意:

暗号化文字列は、使用するWebLogic Serverドメインの暗号化サービスで暗号化する必要があります。そうでない場合、サーバーで文字列を復号化できません。

weblogic.security.Encryptユーティリティは、WebLogic Serverドメイン内の少なくとも1つのサーバー・インスタンスを持つマシンでのみ実行できます。クライアントからは実行できません。表21-1は、weblogic.security.Encryptユーティリティの引数を定義しています。

注意:

ユーティリティは、管理サーバー・ドメイン・ディレクトリから、または管理サーバーをホストしてドメイン・ルート・ディレクトリを指定するマシンで実行することをお薦めします。

構文

java [ -Dweblogic.RootDirectory= dirname ]
[ -Dweblogic.management.allowPasswordEcho=true ]
weblogic.security.Encrypt [ password ]

表21-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

21.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」をクリックしてダイアログを閉じます。

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

アイデンティティ・ストアは、ユーザーとエンタープライズ・ロールを格納するXMLファイルであり、ユーザーの認証時に使用されます。アイデンティティ・ストアはドメイン・レベルまたはアプリケーション・レベルで使用できます。

ユーザーをアイデンティティ・ストアに追加する手順は、次のとおりです。

1. 「アプリケーション」ウィンドウでアプリケーションを開きます。

2. 「アプリケーション」→「保護」→「ユーザー」を選択し、jazn-data.xmlファイルの概要エディタを開きます。

3. 「ユーザー」ページで、「新規ユーザー」アイコンをクリックします。

4. 新規ユーザー名およびパスワードを入力します。

5. 「ユーザー」リストからユーザーを選択し、表示名や説明などの詳細を入力します。

6. jazn-data.xmlファイルへの変更内容を保存します。

21.4.5 アイデンティティ・ストアでのエンタープライズ・ロールの管理

エンタープライズ・ロールは、同じ権限を付与することを目的としてグループ化するユーザー・セットです。エンタープライズ・ロールはアイデンティティ・ストアに追加します。アプリケーション・ロールはポリシー・ストアに追加します。

注意:

エンタープライズ・ロールにユーザーを追加する前に、アイデンティティ・ストアにユーザーが作成されていることを確認してください。

21.4.5.1 アイデンティティ・ストアへのロールの追加方法

jazn-data.xmlファイルの概要エディタを使用して、アイデンティティ・ストアにロールを追加できます。

ロールをアイデンティティ・ストアに追加する手順は、次のとおりです。

1. 「アプリケーション」ウィンドウでアプリケーションを開きます。

2. 「アプリケーション」→「保護」→「グループ」を選択し、jazn-data.xmlファイルの概要エディタの「エンタープライズ・ロール」ページを開きます。

3. 「エンタープライズ・ロール」で、「新規ロール」アイコンをクリックします。「エンタープライズ・ロール」リストに新規ロールが表示されます。

4. 「エンタープライズ・ロール」リストからロールを選択し、表示名や説明などの詳細を入力します。

21.4.5.2 ユーザー・ロールに割り当てられたユーザーの管理方法

jazn-data.xmlファイルの概要エディタを使用して、アイデンティティ・ストアにあるロールを管理できます。

エンタープライズ・ロールに割り当てられたユーザーを管理するには、次のようにします。

1. jazn-data.xmlファイルの概要エディタの「エンタープライズ・ロール」ページを開きます。

2. 「エンタープライズ・ロール」リストからロールを選択し、「メンバー」タブをクリックします。

3. 「メンバー」セクションで、他のメンバーまたはロールを追加または削除します。

21.4.5.3 割り当てられたエンタープライズ・ロールの表示方法

jazn-data.xmlファイルの概要エディタを使用して、アイデンティティ・ストアにある割当て済ロールを表示できます。

割り当てられたエンタープライズ・ユーザーを表示するには、次のようにします。

1. jazn-data.xmlファイルの概要エディタの「エンタープライズ・ロール」ページを開きます。

2. 「ロール」リストからロールを選択し、「割当済ロール」タブをクリックします。

21.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つの資格証明のみ作成できます。

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

ログイン・モジュールは、ユーザーを認証し、サブジェクトにプリンシパルを移入するコンポーネントです。ログイン・モジュールはプラグイン可能で、アプリケーション・コードを変更せずに使用できます。1つのアプリケーションに複数のログイン・モジュールを使用できます。

ログイン認証プロセスは、次の2つのフェーズで発生します。

1. ログイン・モジュールは、ユーザー・リクエスト、必要に応じて名前およびパスワード、またはその他の資格証明データを認証しようとします。このフェーズが成功した場合のみ、2つ目のフェーズが開始します。

2. ログイン・モジュールは、関連するプリンシパルをサブジェクトに割り当て、最終的にそれを使用して権限があるアクションが実行されます。

ドメイン内のすべてのログイン・モジュールは、次の要素を使用してファイルjps-config.xml内で構成されます。

- serviceProvider - ログイン・モジュールのサービス・プロバイダの定義

- serviceInstance - サービス・プロバイダの1つ以上のインスタンスの定義

- jpsContext - 使用するインスタンスの指定

JDeveloperでは、アプリケーションの事前定義済ログイン・モジュールを選択するか、または新規のカスタム・ログイン・モジュールを作成できます。表21-2には、JDeveloperで使用可能な事前定義済ログイン・モジュールが含まれます。

表21-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」をクリックします。

21.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. ログイン・モジュールで必要なその他のプロパティすべての、名前と値を入力します。

21.4.9 キーストアの追加方法

キーストアは、秘密鍵およびデジタル証明書のリポジトリです。

キーおよび証明書を持ち、アプリケーションのセキュア・サービスにそれらを使用する場合、JDeveloperでは、Java Key Store、Oracle Wallet (*.ssoファイルまたは*.p12ファイル)、またはPCKS12ファイル(*.p12ファイル)をインポートできます。JDeveloperでキーストアを作成することはできません。

キーストアおよびキーストア・プロバイダの詳細は、『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」をクリックします。

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

無名プロバイダとは、パブリック・ページの代替です。ここでは、未認証ユーザーにパブリック・ページ全体に対するアクセス権を許可するのではなく、よりきめの細かい権限を割り当てることができます。

無名プロバイダを有効にすることで、無名サービス・インスタンスと無名ログイン・モジュールを含む無名JpsContextを作成できます。アプリケーション・ユーザーが未認証の場合は、実行時に無名資格証明が使用され、認証なしで一部のリソースへのアクセスが許可されます。

無名プロバイダの詳細は、『Oracle Fusion Middlewareセキュリティ・ガイド』を参照してください。

Webアプリケーションに対して無名プロバイダを有効にする手順は、次のとおりです。

1. 「アプリケーション」ウィンドウの「アプリケーション・リソース」パネルで、「ディスクリプタ」→「META-INF」フォルダ内のjps-config.xmlファイルをダブルクリックします。

2. jps-config.xmlの概要エディタで「無名プロバイダ」タブを選択します。

3. 「無名プロバイダの有効化」を選択します。

4. 「セキュリティ・コンテキスト」タブを選択し、無名が無名プロバイダとして自動的に選択されていることを確認します。

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

資格証明にはユーザーの認証パスワードが含まれます。資格証明は、デフォルトで不明瞭化されたフォームで表示されます。アイデンティティ・ストアに資格証明を追加する前に、最初にアイデンティティ・ストアのメンバー・ユーザーを定義する必要があります。

アイデンティティ・ストアで資格証明をユーザーに追加する手順は、次のとおりです。

1. 「アプリケーション」ウィンドウでアプリケーションを開きます。

2. 「アプリケーション」→「保護」→「ユーザー」を選択し、jazn-data.xmlの概要エディタの「ユーザー」ページを開きます。

3. 「ユーザー」リストでユーザーを選択し、資格証明を「パスワード」フィールドに追加します。

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

ユーザーが保護されたWebアプリケーション領域を要求すると、宣言セキュリティでの認証が強制されます。ユーザーがこれまで認証されていない場合、コンテナはユーザーから資格証明を取得します。ユーザーはサーバー・セッション中、認証されたままです。

サポートされている認証タイプは、FORMベース認証、BASIC認証およびCLIENT-CERT認証です。認証タイプは、<login-config>要素を使用してweb.xmlデプロイメント・ディスクリプタで指定されます。

認証タイプの詳細は、第21.4.1項「認証タイプの選択肢について」を参照してください。

Webアプリケーションの認証タイプを選択する手順は、次のとおりです。

1. 「アプリケーション」ウィンドウでアプリケーションのweb.xmlファイルをダブルクリックします。

2. web.xml概要エディタの「セキュリティ」タブをクリックします。

3. 「ログイン認証」セクションを展開し、必要な認証タイプを選択します。

21.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セキュリティの有効化に関する項を参照してください。

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

JDeveloperを使用すると、アプリケーションのリソース・タイプを保護できます。リソース・タイプは把握(つまり、JDeveloperによる認識)が可能です。また、独自のリソース・タイプを作成することもできます。

リソース・タイプは、フロー、ジョブ、Webサービスなどのセキュア・アーティファクトのタイプを表し、基本的には特定のタイプのリソースを作成するためのテンプレートです。すべてのリソースは、タイプが関連付けられており、タイプに応じてフィルタまたはグループ化されます。

アプリケーションのリソースを保護するには、次のようにします。

1. 「アプリケーション」ウィンドウでアプリケーションを開きます。

2. メイン・メニューで、「アプリケーション」→「保護」→「リソース権限」を選択し、jazn-data.xmlファイルの概要エディタの「リソース権限」ページを開きます。

3. 「リソース・タイプ」ドロップダウン・リストで、保護するリソース・タイプ(「タスク・フロー」など)を選択します。リストには、選択したプロジェクトで使用可能なすべてのリソース・タイプが表示されます。また、新規リソース・タイプを作成することもできます。

4. 「ソース・プロジェクトの選択」アイコンを選択し、ソース・プロジェクトを選択します。選択したソース・プロジェクトから選択したリソース・タイプのインスタンスが「リソース」リストに表示されます。

5. リソース権限を付与する権限受領者(アプリケーション・ロール、エンタープライズ・ロールまたはコード・ソース)を追加します。リソース権限は、ユーザー、アプリケーション・ロール、エンタープライズ・ロールまたはコード・ソースに付与できます。「付与先」リストの「権限受領者の追加」アイコンをクリックし、権限受領者を追加します。

6. 「アクション」リストで、リソースに対して許可するアクションを選択します。

7. jazn-data.xmlファイルへの変更内容を保存します。

21.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つ以上のアプリケーション・ロールに関連付けます。

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

ポリシー・ストアとは、アプリケーションおよびエンタープライズ・ポリシーのリポジトリです。ポリシーは、特定の場所から実行されるコードに付与される権限を指定します。

アプリケーション・ポリシー・ストアは、アプリケーション・ポリシーのリポジトリであるとともに、アプリケーション・ロール、アプリケーション・ポリシー、プリンシパル、および権限のリポジトリです。アプリケーション・ロールには、アプリケーション・ユーザーとアプリケーション・ロール、およびアプリケーション固有のロール(管理ロールなど)を含むことができます。ポリシーでは、これらのロールまたはユーザーをプリンシパルとして使用できます。同様に、システム・ポリシー・ストアは、システム・ポリシー、プリンシパル、および権限のリポジトリです。システム・ポリシー・ストアにロールは含まれません。

Oracle ADFを使用してFusion Webアプリケーションを作成すると、「ADFセキュリティの構成」ウィザードの実行時にポリシー・ストアが自動的に作成されます。

アプリケーション・ポリシー・ストアとシステム・ポリシー・ストアの違いは、その範囲にあります。アプリケーション・ポリシー・ストアは1つのアプリケーション内に制約されてそのアクセシビリティが制限されますが、システム・ポリシー・ストアにはオープンにアクセスできます。

ポリシー・ストアの詳細は、『Oracle Fusion Middlewareセキュリティ・ガイド』を参照してください。

プリンシパルとは、エンティティ(ユーザーまたはロール)に割り当てられたアイデンティティです。権限とは、エンティティのグループに対して許可された一連の操作で、エンティティはプリンシパルである場合もあります。付与またはカスタム・ポリシーには、権限およびプリンシパルが含まれます。JDeveloperでは、付与を作成せずにプリンシパルおよび権限を作成できません。

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

アプリケーション・ロールはアプリケーションに固有で、アプリケーション・ポリシー・ストアで定義されます。アプリケーション・ロールはアプリケーションで直接使用され(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ロールおよびポリシーによるリソースの保護』ガイドを参照してください。

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

デプロイメント・ユーザーおよびロールは、使用するセキュリティ・プロバイダで定義されます。ファイルベース・プロバイダの場合、デプロイメント・ユーザーおよびロールはjazn-data.xmlファイルで定義されます。

注意:

メンバー・ユーザーまたはメンバー・ロールをアプリケーション・ロールに追加する前に、まずアイデンティティ・ストアのメンバー・ユーザーおよびメンバー・ロールを定義する必要があります。

アプリケーション・ロールにユーザーまたはエンタープライズ・ロールを追加するには、次のようにします。

1. 「アプリケーション」ウィンドウでアプリケーションを開きます。

2. 「アプリケーション」→「保護」→「アプリケーション・ロール」を選択し、jazn-data.xmlファイルの概要エディタの「アプリケーション・ロール」ページを開きます。

3. 「アプリケーション・ロール」リストからアプリケーション・ロールを選択し、「メンバー」タブをクリックします。

4. ユーザーを追加するには、「メンバー・ユーザーとロール」で、「ユーザーまたはロールの追加」アイコンをクリックし、「ユーザーの追加」を選択します。

5. エンタープライズ・ユーザーを追加するには、「メンバー・ユーザーとロール」で、「ユーザーまたはロールの追加」アイコンをクリックし、「エンタープライズ・ロールの追加」を選択します。

6. jazn-data.xmlファイルへの変更内容を保存します。

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

カスタム・リソース・タイプを作成し、これらをjazn-data.xmlファイルに指定できます。

リソース・タイプは、フロー、ジョブ、Webサービスなどのセキュア・アーティファクトのタイプを表し、基本的には特定のタイプのリソースを作成するためのテンプレートです。すべてのリソースは、タイプが関連付けられており、タイプに応じてフィルタまたはグループ化されます。

カスタム・リソース・タイプを作成するには、次のようにします。

1. 「アプリケーション」ウィンドウでアプリケーションを開きます。

2. 「アプリケーション」→「保護」→「リソース権限」を選択し、jazn-data.xmlファイルの概要エディタの「リソース権限」ページを開きます。

3. 「リソース権限」ページで、「リソース・タイプ」フィールドの横にある「新規リソース・タイプ」アイコンをクリックします。

4. 「リソース・タイプの作成」ダイアログで、名前、表示名および関連付けられたアクションなどのリソースのプロパティを指定します。「リソース・タイプの作成」ダイアログの「アクション」リストを使用して、このタイプのリソースの「リソース権限」ページでチェック可能な項目リストを移入します。

5. jazn-data.xmlファイルを保存します。

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

jazn-data.xmlの概要エディタの「リソース権限」ページを更新することにより、アプリケーション・リソース権限をアプリケーション・ポリシー・ストアに追加できます。

リソースは、具体的なリソースを表すリソース・タイプのインスタンスであり、ポリシーで保護できるアプリケーション・リソースを定義します。このリソースには、URL、EJB、JSPのようにコンテナで管理するソフトウェア・コンポーネントや、レポート、トランザクション、収益チャートなどのアプリケーション・ビジネスがあります。

アプリケーション・ポリシー・ストアにリソース権限を追加するには、次のようにします。

1. 「アプリケーション」ウィンドウでアプリケーションを開きます。

2. 「アプリケーション」→「保護」→「リソース権限」を選択し、jazn-data.xmlファイルの概要エディタの「リソース権限」ページを開きます。

3. セキュリティ・ポリシーを定義するには、「セキュリティ・ポリシー」フィールドで項目を選択します。デフォルトでは、アプリケーション・セキュリティ・ポリシーが選択されています。グローバル・リソース権限を定義するには、「グローバル」を選択します。

4. 「リソース・タイプ」ドロップダウン・メニューからリソース・タイプを選択するか、「新規リソース・タイプ」アイコンをクリックしてリソース・タイプを作成します。

5. プロジェクトによってフィルタされるリソース・タイプの場合、「ソース・プロジェクト」セレクタが有効です。目的のリソースを検索するためにソース・プロジェクト選択を変更する必要がある場合があります。

6. 選択したリソース・タイプに属するリソースは「リソース」リストに表示されます。

7. 「付与先」リストの「権限受領者の追加」アイコンをクリックし、リソース権限が付与されているエンティティを管理します。アプリケーション・ロール、ユーザー、エンタープライズ・ロールまたはコード・ソースに対して付与できます。

8. 「アクション」リストでリソースに許可されているアクションを表示および選択します。

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

jazn-data.xmlの概要エディタの「資格付与」ページを使用すると、一連のリソース権限を定義し、各権限を各アプリケーション・ロールに個別に付与する必要なく、これらの権限を複数のアプリケーション・ロールに付与できます。

資格は、権限のコレクションです。通常、これによって、特定のビジネス機能またはタスクを実行するために必要な権限のリストがカプセル化されます。

アプリケーション・ポリシー・ストアに資格付与を追加するには、次のようにします。

1. 「アプリケーション」ウィンドウでアプリケーションを開きます。

2. メイン・メニューで、「アプリケーション」→「保護」→「資格付与」を選択し、jazn-data.xmlファイルの概要エディタの「資格付与」ページを開きます。

3. 資格付与を追加するには、「資格」リストの「資格の追加」アイコンをクリックします。

4. メンバー・リソースを追加するには、「リソース」をクリックし、「メンバー・リソース」リストで「メンバー・リソースの追加」アイコンをクリックします。

5. 資格を付与するアプリケーション・ロールを選択するには、「付与」を選択し、「ロール付与の追加」アイコンをクリックします。「アプリケーション・ロールの選択」ダイアログで、アプリケーション・ロールを選択するか、新規アプリケーション・ロールを作成できます。

6. jazn-data.xmlファイルを保存します。

ヒント:

- 「付与先」列の「資格から付与を表示」アイコンをクリックすると、「リソース権限」ページで資格グループのメンバーであるリソースに対する権限を表示できます。このオプションは、デフォルトで選択されています。

- 「リソース権限」ページのポップアップ・メニューでメンバー・リソースを新規資格または既存の資格に追加することもできます。

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

新規権限クラスは、保護対象の論理アーティファクト・タイプに対して独自のJAAS権限を作成する場合に便利です。たとえば、Oracle ADFではすでに、セキュリティを強制するアーティファクト用のビルトイン権限クラス(タスク・フロー、ページ定義、エンティティ・オブジェクトおよびエンティティ属性など)が提供されていますが、ユーザー・インタフェースで保護する一連のUIコンポーネント用にカスタム権限クラスを作成できます。このクラスを作成すると、Java、式言語(EL)、またはGroovy式を使用した強制チェックを追加でき、その後jazn-data.xmlファイルを直接編集してアプリケーション・ロールに新しいカスタム権限クラスを付与できます。たとえば、セキュリティ・ポリシーを定義してアプリケーションに表示されるメニューへのアクセスを制限し、その後、コンポーネントのrenderedプロパティ上のEL値userGrantedPermissionを使用して、メニュー表示と付与されたユーザーのカスタム権限を関連付けることができます。

カスタムJAAS対応権限クラスを作成するには、次のようにします。

1. 「アプリケーション」ウィンドウでアプリケーションを開きます。

2. メイン・メニューから「ファイル」→「新規」を選択して「新規ギャラリ」を開きます。

3. 「新規ギャラリ」の「カテゴリ」で、「ビジネス層」→「セキュリティ」を選択します。

4. 「項目」で、「JAAS権限」を選択します。

5. JAAS権限の作成ダイアログで、カスタム権限クラスの詳細を入力します。ダイアログ内でヘルプを参照するには、「ヘルプ」をクリックするか[F1]を押します。

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

現在、このリリースには、システム権限付与をシステム・ポリシー・ストアに追加するためのエディタがありません。jazn-data.xmlのソース・コードで付与を手動で追加する必要があります。

システム・ポリシーへの付与を追加する手順は、次のとおりです。

1. 「アプリケーション」ウィンドウでアプリケーションを開きます。

2. 「アプリケーション」ウィンドウで、jazn-data.xmlをダブルクリックして概要エディタを開きます。

3. 「ソース」をクリックし、ソース・エディタを開きます。

4. ソース・コードで、<jazn-data>要素内に<jazn-policy>要素を作成します。

5. <jazn-policy>要素内で、目的のアプリケーション・ロールを持つ<grantee>、権限クラスの完全修飾クラス名を持つ<permission>、付与のターゲットとして使用する名前、およびアプリケーション・ロール・プリンシパルに付与するアクションを定義する<grant>要素を作成します。

6. jazn-data.xmlファイルへの変更内容を保存します。

21.7 ポリシー・ストアの移行

JDeveloperはデフォルトで、アプリケーションを実行するたびにアプリケーション・リポジトリから統合WebLogic Serverにセキュリティ・オブジェクトをデプロイするよう構成されています。この動作は、「アプリケーション・プロパティ」ダイアログでのセキュリティ・デプロイメント・オプションの選択により、次のように変更できます。

- ドメイン・レベル・ポリシーをアプリケーションのjazn-data.xmlファイル内のポリシーにより上書きするかどうかを決定します。

- システム資格証明をアプリケーションのcwallet.ssoファイルにより上書きするかどうかを決定します。

- jazn-data.xmlファイルのアイデンティティ・ストアの一部をドメイン・レベル・アイデンティティ・ストアに移行するかどうかを決定します。

デプロイ設定を変更しない場合、アプリケーションを実行するたびに、JDeveloperはドメイン・レベルのセキュリティ・ポリシーおよびシステム資格証明を上書きします。また、テスト目的で作成した新しいユーザー・アイデンティティを移行し、統合WebLogic Serverがそのアイデンティティ・ストアで使用する埋込みLDAPサーバー内の既存のユーザー・パスワードを更新します。ただし、統合WebLogic Server内の既存のセキュリティ・オブジェクトを更新せずにアプリケーションを実行する場合には、このオプションを選択できます。

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

スタンドアロンOracle WebLogic Serverにアプリケーションをデプロイする準備ができている場合、同じ構成設定を使用して、JDeveloperでセキュリティ・オブジェクトの移行を処理する方法を制御できます。

セキュリティ・オブジェクトのデプロイを構成する手順は、次のとおりです。

1. 「アプリケーション」→「保護」→「セキュリティ・デプロイメントの構成」を選択し、「アプリケーション・プロパティ」ダイアログを開きます。

2. 「アプリケーション・プロパティ」ダイアログの「セキュリティ・デプロイメント・オプション」の下で、アプリケーションでデプロイするセキュリティ・オブジェクトを選択します。
デフォルトで、アプリケーションを実行するたびに、JDeveloperではドメイン・レベルのアプリケーション・ポリシーおよび資格証明がアプリケーションのアプリケーション・ポリシーおよび資格証明により上書きされます。これらのリポジトリを上書きしない場合、「アプリケーション・ポリシー」または「資格証明」の選択を解除します。選択を解除すると、新規ポリシーまたは資格証明のみがドメイン・レベルのストアにマージされます。詳細は、後述のセクションを参照してください。

デフォルトでは、アプリケーションを実行するたびに、テスト目的で作成する新規ユーザーのアイデンティティがJDeveloperによって移行され、統合WebLogic Serverでアイデンティティ・ストア用に使用される埋込みLDAPサーバーにある既存のユーザー・パスワードが更新されます。「ユーザーとグループ」の選択を解除して、アプリケーションのアイデンティティ・ストアの移行を無効にできます。詳細は、後述のセクションを参照してください。

3. 「OK」をクリックします。

21.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セキュリティ・ガイド』を参照してください。

21.7.3 資格証明の移行

アプリケーション・ポリシーを移行する際、資格証明も移行する必要がある場合があります。WebLogic環境で管理されたサーバーにアプリケーションをデプロイまたは再デプロイする際に、cwallet.ssoで指定されたアプリケーションの資格証明をドメイン資格証明ストアに移行できます。したがって、資格証明の移行には、JDeveloper内で作成されたすべての接続(Webサービス用に作成された接続を含む)のパスワードが含まれます。(これは、jazn-data.xmlファイルのアイデンティティ・ストアで指定したユーザー資格証明には関連しません。アイデンティティ・ストアの移行の詳細は、次の第21.7.4項「ユーザーおよびグループの移行」を参照してください)。

「アプリケーション・プロパティ」ダイアログで「資格証明」が選択されている場合、JDeveloperによるアプリケーションのデプロイ時、パッケージ化されたweblogic-application.xmlでjps.policystore.migrationプロパティはOVERWRITEに設定されます。「資格証明」が選択されていない場合、jps.policystore.migrationの設定はパッケージ化されたweblogic-application.xmlに追加されず、すでに存在する場合には削除されます。これによりOracle WebLogic Serverではデフォルトの操作MERGEが使用されます。資格証明が存在しない場合、アプリケーションが初めてデプロイされるときのみマージにより資格証明が移行されます。アプリケーションの資格証明がすでに存在する場合、再移行は行われません。

資格証明を移行できるのは、サーバーが「開発」モードで実行中の場合のみです。本番モードでは、資格証明を上書きできません。アプリケーション資格証明の移行は、JDeveloperの外部のツールを使用したデプロイ時に手動で行う必要があります。

21.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ファイルからアイデンティティを削除するか、「アプリケーション・プロパティ」ダイアログで「ユーザーとグループ」の選択を解除して、アイデンティティの移行を無効にしてください。

21.8 JDBCを使用した開発の保護

JDeveloperでJDBCデータベース接続を作成すると、マシンにインストールされているデータベース・クライアントから暗号化プロパティが導出されます。JDBCを使用してセキュアな接続を作成するには、次のようにします。

- クライアント・マシンのsqlnet.oraファイルでパラメータを設定し、OCIドライバによる暗号化サポートを構成します。

- JDBCシン・ドライバを使用し、JDeveloperにセキュアなJDBC接続を作成します。「データベース接続の作成」ウィザードのステップ3 (「接続」ページ)で、「カスタムJDBC URLの入力」を選択し、例21-3に示すように、暗号化パラメータをカスタムJDBC URLの一部として入力します。

例21-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) ))

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

この章では、JDeveloperによって提供されるXMLツールおよびエディタを使用してアプリケーションを作成および更新する方法について説明します。

この章には次の項が含まれます:

- 第22.1項「XMLを使用したアプリケーションの開発について」

- 第22.2項「XMLファイル・エディタの使用」

- 第22.3項「XMLスキーマの使用」

- 第22.4項「XMLスキーマのインポートおよび登録方法」

- 第22.5項「JAXBを使用したXMLスキーマからのJavaクラスの生成方法」

- 第22.6項「XSD文書およびコンポーネントの使用」

- 第22.7項「XMLによるローカライズ」

- 第22.8項「XSQLサーブレットを使用したデータバインドXMLページの開発」

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

JDeveloperには、アプリケーション内でXMLファイルを使用するために必要なツールが用意されています。XMLソース・エディタ、XMLバリデータ、およびXMLスキーマを使用するためのツールがあります。ウィザードを使用してJSPX、XSD、XSQLおよび構成ファイルを作成し、XMLエディタでファイルを編集できます。

22.2 XMLファイル・エディタの使用

XMLファイル用のエディタには3種類あります。各エディタはそれぞれ固有の機能を備えています。

表22-1 XMLファイル・エディタ

エディタ

説明

XMLエディタ

.xsql、.xsl、.xsd、.xhtml、wsdlファイルなどのXML言語の編集に特化したスキーマ・ドリブンのエディタです。エディタを開くには、「アプリケーション」ウィンドウでファイル・タイプをダブルクリックします。「ソース」タブにそのファイルのソース・コードが表示され、コードを編集できます。

概要エディタ

XML (.xml) ファイルを表示および編集できます。フィルタ、セキュリティ、リファレンスなど、デプロイメント関連のXMLファイルの各側面が視覚的に表示されます。詳細は、第18章「Webページ・ツールを使用したアプリケーションの開発」を参照してください。

XSDビジュアル・エディタ

XMLスキーマを作成または編集できます。XML文書の構造、内容およびセマンティクスが表示されます。詳細は、第22.6項「XSD文書およびコンポーネントの使用」を参照してください。

22.2.1 XML編集機能の理解

表22-2は、XMLファイルを使用する際に使用可能な編集機能の概要です。

表22-2 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要素の下に表示される属性を展開または縮小できます。これは、要素の下に表示される属性のリストが大きくなる場合があるため便利な機能です。

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

表22-3に、XMLエディタのツールバーに表示されるアイコンを示します。

表22-3 XMLエディタのツールバーのアイコン

アイコン

名前

説明

検索([Ctrl]+[F])

XMLエディタに検索テキストを入力します。下矢印をクリックすると、追加パラメータ(大/小文字を区別する検索を実行する場合は「大/小文字の区別」、完全に一致する単語のみを検索する場合は「完全一致」、一致する場所を示すためにシェーディングを使用する場合は「発生を強調表示」など)を表示して設定できます。

次を検索([F3])

指定したパラメータに一致する次の箇所をファイル内で検索する場合にクリックします。

前を検索([Shift]+[F3])

指定したパラメータに一致する前の箇所をファイル内で検索する場合にクリックします。

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

XMLエディタには次の編集機能があります。

- 必須属性の自動挿入: タグを追加すると、そのタグに関連付けられている必須属性が自動的にコードに追加されます。

- 終了タグの自動補完: 開始タグを閉じると、自動的に終了タグが追加されます。たとえば、XMLファイルに<foo>と入力すると、</foo>が自動的に追加されます。

XMLエディタの編集オプションをカスタマイズするには、次のようにします。

1. 「ツール」→「プリファレンス」を選択します。

2. 「コード・エディタ」ノードを開きます。

3. 「JSP/XML/HTML」ノードを選択します。

4. コード・エディタ - JSP/XML/HTMLページでオプションを選択します。

5. 「OK」をクリックします。

22.3 XMLスキーマの使用

XMLスキーマは、XMLファイルの要素を定義するものです。JDeveloperには、XML文書の構造、内容およびセマンティクスが視覚的に表示されるXSDビジュアル・エディタが用意されています。XSDビジュアル・エディタを使用して、新しいXMLスキーマ(.xsdファイル)を作成するか、既存のXMLスキーマを編集します。

XSD文書にコンポーネントを挿入するには、「コンポーネント」ウィンドウを使用するか、XSD文書内の任意の位置を右クリックします。

XMLスキーマ・コンポーネントは、図22-1のようにXSDファイルの上部に表示されます。 要素を右クリックして「プロパティ」を選択すると、スキーマ・ネームスペースを構成するためのダイアログが表示されます。

図22-1 XMLスキーマ・コンポーネント

JDeveloperは、スキーマのターゲット・ネームスペースの変更や、ファセットを持つsimpleType要素のベース・タイプの変更など、XMLスキーマに対する様々なリファクタ操作をサポートしています。 詳細は、第11.5.27項「XMLスキーマのリファクタ」を参照してください。

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

XSDビジュアル・エディタを使用して、XMLスキーマの属性を作成し、プロパティおよびファセットを設定できます。図22-2は、XSDビジュアル・エディタの「設計」タブ内のXMLスキーマの例を示しています。

図22-2 XSDビジュアル・エディタ内のスキーマ

属性エディタでattribute2の属性を編集できます。これは、図22-2ではunion要素として表示されています。このエディタでは、次を実行できます。

- 要素の下にある使用可能な属性をすべて表示します。詳細の表示と非表示を切り替えるには、属性の横にあるプラスまたはマイナス記号をクリックします。

- 属性ノード内の属性表示のファセットおよびタイプ詳細をすべて表示します。

- 属性ノードを右クリックしたときにデフォルトの「中に挿入」メニューを有効なスキーマ・コンポーネント(unionなど)とともに表示します。

- 内部の属性ノードを展開し、listやunionなどの子ノードが含まれるサブツリーを表示します。

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

XSDビジュアル・エディタでXMLスキーマを作成すると、「設計」タブ内のXMLソースが自動的に更新されるとともに、「構造」ウィンドウの内容が更新されます。例22-1に、図22-2に表示されているexample.xsdファイルのソースを示します。

例22-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>

22.3.3 XSDコンポーネントの選択

エディタでコンポーネントまたは属性を選択すると、選択項目が青くハイライト表示されます。図22-3で選択されているsimpleTypeコンポーネントは、単純型を定義しています。この要素を使用して、属性またはテキストのみのコンポーネントの値に関する制約と情報を指定します。ここでは、string型を制限しています。

図22-3 simpleTypeコンポーネント

22.3.4 choiceコンポーネント

choiceコンポーネントでは、図22-4に示すように、コンテナ・コンポーネント内に存在する<choice>宣言に含まれているコンポーネントのいずれか1つのみが許可されます。親の選択肢から複数の項目を使用するには、属性maxOccursを>1に設定します。

図22-4 choiceコンポーネント

図22-2 choiceコンポーネント

?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:element name="choice">
<xsd:complexType>
<xsd:choice>
<xsd:element name="one"/>
<xsd:element name="two"/>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>

22.3.5 allコンポーネント

図22-5に示すallコンポーネントでは、子コンポーネントを任意の順序で表示できること、および各子コンポーネントが0回または1回出現することを指定します。

図22-5 allコンポーネント

図22-3 allコンポーネント

<?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:element name="all">
<xsd:complexType>
<xsd:all>
<xsd:element name="one"/>
<xsd:element name="two"/>
</xsd:all>
</xsd:complexType>
</xsd:element>
</xsd:schema>

22.3.6 sequenceコンポーネント

図22-6に示すsequenceコンポーネントでは、子コンポーネントを順番に表示することを指定します。各子コンポーネントは、0回以上何度でも出現できます。

図22-6 sequenceコンポーネント

例22-4 sequenceコンポーネント

<?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:element name="all">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="one"/>
<xsd:element name="two"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>

22.3.7 カーディナリティと順序性

図22-7に示すカーディナリティの例では、コンポーネントは表22-4に示す属性で表示されます。

図22-7 cardinalityコンポーネント

表22-4 カーディナリティの表示

構成要素

表示

必須コンポーネント(minOccurs=">0")

実線で表示されます。

オプション・コンポーネント(minOccurs="0")

点線で表示されます。

無限コンポーネント(maxOccurs="unbounded")

コンポーネント・スタック数に無限大の記号が表示されます。複数回出現する可能性のあるコンポーネントは、コンポーネントのスタックとして表示されます。

コンポーネントの左側の数値のうち、コロンの前の数値はコンポーネントの最小出現回数(minOccurs)を示します。コロンの後の数値は、コンポーネントの最大出現回数(maxOccurs)を示します。

図22-7では、最大出現回数が無限なので、無限大の記号が表示されています。

コンポーネントの範囲

コンポーネント・スタック数が表示されます。図22-7のコンポーネントの場合、インスタンス文書内に2回以上出現する必要がありますが、最高で7回までとなります。

22.3.8 complexTypeコンポーネント

図22-8のcomplexTypeコンポーネントは、ベース型を拡張したもので、ベース型から属性と子を継承しています。黄色の背景色は、スキーマの別の部分で定義されている(complexTypeコンポーネントの下にある)baseTypeへの参照を示しています。コンポーネント属性は、次のように表示されます。

- 継承属性には、四角い記号が付きます。

- オプション属性には、四角い記号が付きます。

- 必須属性には、オレンジ色のアスタリスクが付きます。

- 禁止属性には、オレンジ色のXが付きます。

図22-8 complexTypeコンポーネント

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

属性グループ・コンポーネントは、一連の属性宣言をグループ化し、これらを複合型の定義にグループとして組み込めるようにします。

図22-9には、3つの属性グループが表示されています。

図22-9 属性グループ・コンポーネント

複数のattributeGroupsがある要素をスキーマに追加する場合、要素の属性をクリックしてドロップダウン・リストから選択することにより、要素の1つ以上のattributeGroupsを選択して追加できます。

22.3.10 unionコンポーネント

unionコンポーネントでは、指定された単純データ型の値のコレクション(共用体)として単純型を定義します。図22-10では、unionは、iで始まる文字列すべてを表しています。

図22-10 unionコンポーネント

22.3.11 listコンポーネント

listコンポーネントでは、指定したデータ型の値のリストとして単純型のコンポーネントを定義します。図22-11では、このコンポーネントは、一連のshortコンポーネントの値オブジェクトを表しています。

図22-11 listコンポーネント

22.3.12 XMLスキーマ置換グループの使用

XMLスキーマ・グループ内の1つの要素を別の要素で置換できます。置換グループ機能を使用する一連のXMLスキーマがある場合、必ず、置換グループの先頭を定義するXMLスキーマをロードしてから、置換グループに要素を配置するその他のスキーマをロードしてください。

たとえば、A.xsdというXMLスキーマに次の要素が含まれており、

<element name="A"/>

別のB.xsdというXMLスキーマに次の要素が含まれているとします。

<element name="B" substitutionGroup="namespaceForA:A" />

次のいずれかの条件を満たす必要があります。

- SchemaGrammarProvider.add(A.xsd)をコールしてからSchemaGrammarProvider.add(B.xsd)をコールする。または、

- B.xsdにimport文またはinclude文が含まれており、そのschemaLocation属性でA.xsdへの有効なパスが指定されている。

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

「設定」ダイアログで「XMLスキーマ」ページのオプションを使用して、現在登録されているすべてのXMLスキーマの表示、その他の名前空間と要素をサポートするための新しいスキーマの追加、ユーザー定義のスキーマの削除、およびスキーマのメモリーからの削除を行います。

スキーマの追加または変更時にJDeveloperによる自動検証が行われます。

XMLスキーマをインポートおよび登録するには、次のようにします。

1. メイン・メニューから、「ツール」→「プリファレンス」を選択します。

2. 「XMLスキーマ」ノードを選択します。

3. 「追加」をクリックし「スキーマの追加」ダイアログを開きます。このダイアログで、新しいスキーマを指定してユーザー・スキーマ・リストに追加します。

4. 追加するXMLスキーマ・ファイルの名前と場所を「ファイルシステムもしくはURLからスキーマを追加」フィールドに入力します。

5. ファイル拡張子を「拡張子」フィールドに入力し、特定のファイル・タイプに対してスキーマを登録します。
JDeveloperでは、この拡張子を使用してメモリーにスキーマを効率的にロードし、スキーマ内の項目に基づいて自動生成したコンポーネント・ウィンドウ・ページを表示します。

6. 「OK」をクリックします。
スキーマの追加時にJDeveloperによる自動検証が行われます。

7. 新しいスキーマが「ユーザー定義のXMLスキーマ」リストに追加されたかどうかを確認して「OK」をクリックします。

ヒント:

「削除」ボタンで削除できるのは、ユーザー定義のスキーマのみです。

スキーマが変更された場合は、「キャッシュのクリア」ボタンを使用して、現在ロードされているすべてのスキーマをメモリーから削除する必要があります。その後、変更されたスキーマを含むすべての必要なスキーマが再ロードされます。

22.5 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」を選択し、「XMLスキーマからのJAXB 1.0コンテンツ・モデル」または「XMLスキーマからのJAXB 2.0コンテンツ・モデル」を選択し、コンパイル・ダイアログを開きます。

2. スキーマ・ファイルおよび必要に応じて使用するJAXBカスタマイズ・ファイル、および生成されたクラスの追加先のパッケージを選択します。
JAXBパッケージと生成されたクラスがApplication Resourcesフォルダに追加されます。

22.6 XSD文書およびコンポーネントの使用

XMLスキーマ・ファイル(.xsdファイル)およびコンポーネントを使用するには、XSDビジュアル・エディタまたは設計構造ウィンドウを使用します。デフォルトでは、新しいスキーマ・ファイルは、XSDビジュアル・エディタでフォーカスのある状態で開かれます。

「アプリケーション」ウィンドウでファイルをダブルクリックすると、デフォルトのエディタが開くか、「設計」タブで前面に表示されます。「ソース」タブをクリックすると、XMLソース・エディタでファイルが開きます。いずれかのエディタで加えた変更は、もう一方のエディタに自動的に反映されます。

22.6.1 2つのエディタにスキーマ・ファイルを表示する方法

スキーマ・ファイル(.xsd)をビジュアル・エディタとソース・エディタで同時に編集するには、どちらか一方のエディタでページを開き、分割線を使用して他方のエディタでもう1つのページ・ビューを開きます。

2つのエディタにスキーマ・ファイルを表示するには、次のようにします。

- ファイルを水平方向に分割するには、垂直スクロール・バーのすぐ上(ウィンドウの右上隅)でスプリッタをクリックし、下にドラッグします。

- ファイルを垂直方向に分割するには、水平スクロール・バーのすぐ右(ウィンドウの右下隅)でスプリッタをクリックし、左にドラッグします。

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

XSDビジュアル・エディタの「設計」タブはイメージとして作成できます。これにより、このイメージをファイルまたは出力として他のユーザーと共有できます。

サポートされているイメージ・フォーマットは、.svg、.svgz、.jpgおよび.pngです。

XSDエディタの「設計」タブをイメージとして保存するには、次のようにします。

1. 「アプリケーション」ウィンドウで、XSDビジュアル・エディタに表示する.xsdファイルをダブルクリックします。

2. XSDビジュアル・エディタで「設計」タブをクリックします。
図22-12に示すような.xsdファイルの設計ビューが表示されます。

図22-12 XSDビジュアル・エディタの「設計」タブ

3. 「設計」タブの任意の場所を右クリックし、「ダイアグラムの公開」を選択します。

4. 名前、ダイアグラムを保存する場所のパス、およびイメージ・タイプを入力します。

注意:

保存するダイアグラムが大きすぎる場合、イメージを.svgフォーマットで保存するように促すメッセージが表示されます。

XSDビジュアル・エディタ内でノードを右クリックすると、現在のノードとその子ノードのみがイメージとして保存されます。

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

XSDビジュアル・エディタでは、グラブ・スクロール操作を使用して、スクロールバー付きで表示されているXMLスキーマ内を簡単に移動できます。グラブ・スクロールでは、小さな手の形のカーソルを使用してXMLスキーマ・ページをつかみ、エディタ・ウィンドウ内部でドラッグします。

グラブ・スクロールを使用してXMLスキーマ内を移動するには、次のようにします。

1. XSDビジュアル・エディタで、[Space]を押したままの状態にします。
カーソルが、開いた手の形に変化します。

2. マウスの左ボタンを押したままの状態にします。
手が閉じて、XMLスキーマ・ページをつかみます。

3. マウスを使用して、エディタ・ウィンドウ内部でXMLスキーマ・ページを移動します。

4. マウスの左ボタンを放すと、XMLスキーマ・ページも放れます。

5. グラブ・スクロールを終了するには、[Space]を放します。

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

XSDビジュアル・エディタまたは設計構造ウィンドウを使用している場合、XSDコンポーネントを展開または折りたたんで子コンポーネントの表示を切り替えることや、コンテナ・コンポーネントを折りたたんで上位レベルのスキーマ・ビューを作成できます。

- 親コンポーネントの「+」(プラス)記号をクリックすると、親コンポーネントの1つ下のレベルが展開されます。

- 親コンポーネントの「-」(マイナス)記号をクリックすると、親コンポーネントの下のすべてのレベルを折りたたむことができます。

- [Ctrl]キーを押しながら[*]キー(キーボードのテンキーにある[*]キー)を押すと、スキーマ内のすべての親コンポーネントが展開されます。このビューは非常に大きい場合があるので注意してください。

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

ズーム操作を使用すると、XSDビジュアル・エディタのXMLスキーマの表示を拡大(ズーム・イン)または縮小(ズーム・アウト)できます。拡大または縮小表示するXMLスキーマの領域にカーソルを置いてから、次のようにします。

- 拡大するには[Ctrl]キーを押しながら[+]キーを押します。キーボードのテンキーにある[+]キーも使用できます。

- 縮小するには[Ctrl]キーを押しながら[-]キーを押します。キーボードのテンキーにある[-]キーも使用できます。

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

エディタで最もよく行う操作の1つは、コンポーネントの選択です。コンポーネントを選択する目的には、次のようなものがあります。

- プロパティの編集

- コンポーネントの移動

- コンポーネントの削除

- 別のコンポーネントを挿入する位置の選択

22.6.6.1 単一のコンポーネントのエスカレーション

単一のコンポーネントを子なしで選択できます。

単一のコンポーネントを選択するには、次のようにします。

- コンポーネントをクリックします。
子コンポーネントを含むコンポーネントを選択すると、子コンポーネントもすべて選択されます。親要素をコピー、移動または削除すると、その子要素もすべてコピー、移動または削除されます。

ヒント:

XSDビジュアル・エディタでXSDコンポーネントをダブルクリックすると、そのコンポーネントの「プロパティ」ウィンドウが表示されます。

22.6.6.2 複数のコンポーネントの選択

1つのコンポーネントをその子とともに選択したり、複数のコンポーネントを選択したりできます。

複数のコンポーネントを選択するには、次のようにします。

1. 最初のコンポーネントをクリックします。

2. [Ctrl]キーを押したままの状態にします。

3. その他の選択するコンポーネントをクリックします。
他のコンポーネントは選択したまま1つのみ選択を解除するには、[Ctrl]キーを押したままそのコンポーネントをもう一度クリックします。

注意:

削除以外の目的で隣接しない複数のコンポーネントを選択した場合、予想外の結果になることがあります。たとえばスキーマ階層の異なるレベルにあるコンポーネントを選択し、スキーマ・ページ内の別の場所に移動またはコピーした場合、コンポーネント間の相対的な位置関係が失われる可能性があります。

XSDビジュアル・エディタでは、コンテナ・コンポーネントをその子も含めて選択した上で、さらに1つ以上の子を個別に選択できます。この場合、明示的に選択した子要素は、2回選択したことになります。このようにして選択したコンポーネントをコピー・アンド・ペーストすると、二重に選択された子はコピーされた親の子として1回、親に対する同レベルのコンポーネントとして1回、合計2回貼り付けられます。

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

XSDビジュアル・エディタでコンポーネントを選択すると、そのコンポーネントが青色で表示されます。選択したコンポーネントに子コンポーネントがある場合は、すべて青色で表示されます。

「構造」ウィンドウで選択すると、コンポーネントがハイライト表示されます。ただし、子コンポーネントを持つコンポーネントを選択すると、子も選択されます。親コンポーネントを削除または移動すると、子コンポーネントもすべて削除または移動されます。

コンポーネントを選択すると、別のコンポーネントを挿入できる位置も選択することになります。詳細は、第22.6.8項「XSDコンポーネントのターゲット位置の選択方法」を参照してください。

ヒント:

マウスのポインタをコンポーネント上に移動すると、コンポーネント名がツールチップに表示されます。

XSDビジュアル・エディタで選択したコンポーネントは、構造ウィンドウの設計ビューおよびソース・ビューでも選択されます。またその逆も同様です。選択している要素と挿入位置を両方のツールで確認できます。

ステータス・バーには、選択したコンポーネントの挿入位置ポイントが明示的に表示されます。

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

XSDビジュアル・エディタまたは構造ウィンドウ(設計またはソース・ビュー)でXSDコンポーネントを挿入、コピーまたは移動する場合、その操作の対象となるノードに関連するターゲット位置を選択する必要があります。ノードに対して選択できるターゲット位置は、前、後ろおよび内側です。

ターゲット位置を選択するには、次のようにします。

次のいずれかを実行します。

- ノードをクリックしてターゲット位置を選択します。

- ターゲット位置にコンポーネントをドロップする際に、次のいずれかの操作を行います。

- ターゲット・ノードの前にコンポーネントを挿入するには、実線の横線が表示されるまで(ビジュアル・エディタの場合)、または上矢印付きの横線が表示されるまで(「構造」ウィンドウの場合)そのコンポーネントをノードの上部にドラッグしてマウス・ボタンを放します。

- ターゲット・ノードの後にコンポーネントを挿入するには、実線の横線が表示されるまで(ビジュアル・エディタの場合)、または下矢印付きの横線が表示されるまで(「構造」ウィンドウの場合)そのコンポーネントをノードの下部にドラッグしてマウス・ボタンを放します。

- 挿入するコンポーネントがターゲット・ノードに含まれるようにするには、ノードの上にドラッグし、ノードがボックスで囲まれた時点でマウスのボタンを放します。このターゲット位置は、子ノードを含むことが可能なノードでのみ使用できます。

- ポップアップ・メニューを使用してターゲット位置を選択する場合は、ターゲット・ノードを右クリックし、オプションを選択してからコンポーネントを選択します。表22-5にオプションを示します。

表22-5 ターゲット位置のオプション

オプション

説明

<component>の前に挿入

選択したノードの前にコンポーネントが挿入されます。

<component>の中に挿入

選択したノードの内側(下)にコンポーネントが挿入されます。

<component>の後ろに挿入

選択したノードの後ろにコンポーネントが挿入されます。

すべてのオプションを常に使用できるわけではありません。オプションを選択するとサブメニューが表示されるため、そこからコンポーネント・リストを選択し、さらにリストから目的のコンポーネントを選択します。選択したノードによっては、そのノードの内側に挿入できる1つ以上のコンポーネントがサブメニューに表示されます。

注意:

「構造」ウィンドウの設計またはソース・ビューで選択したターゲット位置はXSDビジュアル・エディタでも選択され、その逆も同様です。これにより、視覚的にも階層的にも挿入位置を確認できます。選択内容は、JDeveloperウィンドウ一番下のステータス・バーにも明示的に表示されます。

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

XSDビジュアル・エディタおよび「構造」ウィンドウでは、コピーまたはカット・アンド・ペーストでもXSDコンポーネントを挿入できます。カット・アンド・ペーストでは、複数のコンポーネントを一度に挿入できます。

注意:

XMLスキーマ階層の異なる場所からコピーした複数のコンポーネントを貼り付けた場合、予想外の結果になることがあります。

22.6.9.1 「コンポーネント」ウィンドウを使用したXSDコンポーネントの挿入

XSDコンポーネントを挿入するには、「コンポーネント」ウィンドウからドラッグするか、ポップアップ・メニューを使用します。ビジュアル・エディタまたは「構造」ウィンドウでターゲット位置を選択し、「コンポーネント」ウィンドウでコンポーネントをクリックすることもできます。

「コンポーネント」ウィンドウを使用してXSDコンポーネントを挿入するには、次のようにします。

1. XSDビジュアル・エディタまたは「構造」ウィンドウで、コンポーネントを挿入する場所を選択します。構造ウィンドウでは、目的のノードを見つけるためにノードを開くことが必要になる場合があります。

2. 「コンポーネント」ウィンドウで、ドロップダウン・リストからXSDコンポーネントのリストを選択します。リストから目的のコンポーネントをドラッグし、XSDビジュアル・エディタまたは「構造」ウィンドウの目的のターゲット位置へドロップします。

22.6.9.2 ポップアップ・メニューを使用したXSDコンポーネントの挿入

右クリックして、ポップアップ・メニューにXSDコンポーネントの挿入オプションを表示することもできます。

ポップアップ・メニューを使用してXSDコンポーネントを挿入するには、次のようにします。

1. XSDビジュアル・エディタまたは「構造」ウィンドウで、ノードを右クリックしてポップアップ・メニューを表示します。目的のノードを見つけるには、ノードを開くことが必要になる場合があります。

2. ポップアップ・メニューからオプションを選択し、次にコンポーネントを選択します。

22.6.10 XSDコンポーネントの切取り方法

コンポーネントを切り取ると、エディタから削除され、(システム・クリップボードではなく) JDeveloperからのみアクセス可能なローカル・クリップボードに置かれます。コンポーネントを貼り付けずに終了した場合、切り取ったコンポーネントは失われます。

切取り、コピーおよび貼付けは、同じプロジェクトまたは異なるプロジェクトのファイル間で実行できます。

コンポーネントの削除では、内容を変更せずにコンポーネントが削除されます。切取りコマンドを使用してアイテムを永久に削除する習慣がある場合、間違ってクリップボードの保存しておきたい内容を置換してしまう可能性があります。詳細は、第22.6.12項「XSDコンポーネントの削除方法」を参照してください。

1つ以上のコンポーネントを切り取るには、次のようにします。

1. ビジュアル・エディタまたは「構造」ウィンドウで、切り取るXSDコンポーネントを選択します。

2. 次のいずれかを実行します。

- [Ctrl]キーを押しながら[X]キーを押します。

- 右クリックして「切取り」を選択します。

- メイン・メニューから、「編集」→「切取り」を選択します。

22.6.11 XSDコンポーネントのコピー方法

ビジュアル・エディタまたは「構造」ウィンドウでXSDコンポーネントをコピーできます。切取り、コピーおよび貼付けは、同じプロジェクトまたは異なるプロジェクトのファイル間で実行できます。

1つ以上のコンポーネントをコピーするには、次のようにします。

1. ビジュアル・エディタでXSDコンポーネントを選択します。

2. 次のいずれかを実行します。

- [Ctrl]キーを押しながら[C]キーを押します。

- 右クリックして「コピー」を選択します。

- メイン・メニューから、「編集」→「コピー」を選択します。

- [Ctrl]を押しながら、選択したコンポーネントのコピーをターゲット位置までドラッグします。

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

XSDビジュアル・エディタまたは構造(設計ビューまたはソース・ビュー)ウィンドウでXMLスキーマからコンポーネントを削除できます。コンポーネントを削除すると、ソース・コードから該当する行が削除されます。

1つ以上のXSDコンポーネントを削除するには、次のようにします。

1. ビジュアル・エディタで削除する1つ以上のXSDコンポーネントを選択します。詳細は、第22.6.6項「XSDコンポーネントの選択方法」を参照してください。

2. 次のいずれかを実行します。

- [Delete]キーを押します。

- [Ctrl]キーを押しながら[X]キーを押します。

- 右クリックして「削除」を選択します。

- メイン・メニューから、「編集」→「削除」を選択します。

22.6.13 XSDコンポーネントの貼付け方法

XSDビジュアル・エディタや「構造」ウィンドウから切り取った要素またはコピーした要素は、アプリケーション内の他のXSDファイルに貼り付けることができます。詳細は、第22.6.8項「XSDコンポーネントのターゲット位置の選択方法」を参照してください。

切取り、コピーおよび貼付けは、同じプロジェクトまたは異なるプロジェクトのファイル間で実行できます。

要素を貼り付けるには、次のようにします。

1. ファイルを開きます。

2. 要素を貼り付ける挿入ポイントを選択します。

3. 次のいずれかを実行します。

- [Ctrl]キーを押しながら[V]キーを押します。

- 右クリックして「貼付け」を選択します。

- 「編集」→「貼付け」を選択します。

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

ビジュアル・エディタまたは構造ウィンドウのどちらかでコンポーネントを移動することも、同時に使用して2つのエディタ間でコンポーネントを移動することも可能です。

一度に1つまたは複数のコンポーネントを移動できます。ただし、隣接していない複数のコンポーネント、またはスキーマ階層内の別々のレベルにある複数のコンポーネントを選択して移動した場合、予想外の結果になることがあります。

22.6.14.1 ドラッグによるコンポーネントの移動

XSDビジュアル・エディタまたは「構造」ウィンドウ(「設計」ビューまたは「ソース」ビュー)では、XSDコンポーネントをドラッグによって新しい挿入ポイントに移動できます。

ドラッグしてコンポーネントを移動するには、次のようにします。

次のいずれかを実行します。

- ビジュアル・エディタまたは構造ウィンドウで、元の位置からターゲット位置までコンポーネントをドラッグします。詳細は、第22.6.8項「XSDコンポーネントのターゲット位置の選択方法」を参照してください。

- 右クリックし、コンポーネントを元の位置から挿入位置までドラッグします。ポップアップ・メニューから「ここにあるノードの移動」を選択します。

22.6.14.2 カット&ペーストによるコンポーネントの移動

XSDコンポーネントをカット&ペーストで、同じプロジェクトまたは異なるプロジェクト内の他のファイルの有効な挿入ポイントに移動できます。詳細は、第22.6.6項「XSDコンポーネントの選択方法」を参照してください。

カット&ペーストでコンポーネントを移動するには、次のようにします。

次のいずれかを実行します。

- コンポーネントを切り取ります。次に、ビジュアル・エディタまたはスキーマ構造ウィンドウの別の場所へ貼り付けます。

- コンポーネントを切り取ります。次に、同じプロジェクトまたは別のプロジェクト内の他のファイルへ貼り付けます。

注意:

選択したコンポーネントとその子コンポーネントすべてが、新しいターゲット位置へ移動します。

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

「プロパティ」ウィンドウに、選択したXSDコンポーネントのプロパティが表示されます。「プロパティ」ウィンドウを使用して、XMLスキーマ内の任意のコンポーネントのプロパティ値を設定または変更します。設定済のプロパティ値には緑色のボックスが表示されます。

メイン・メニューから「編集」→属性の変更を元に戻すを選択します。

プロパティをデフォルト設定に戻すには、プロパティの横の下矢印をクリックし、「デフォルトにリセット」を選択します。

コンポーネントのプロパティを設定するには、次のようにします。

1. XMLスキーマが開いた状態で、コンポーネントを選択します。
「プロパティ」ウィンドウにプロパティ値が表示されます。「プロパティ」ウィンドウが表示されていない場合は、「表示」→「プロパティ・ウィンドウ」を選択するか、ショートカット([Ctrl]+[Shift]+[I])を使用します。

2. 設定するプロパティが表示されるまでスクロールし、マウスまたは矢印キーでそれを選択します。
「プロパティ」ウィンドウの下部にプロパティの簡単な説明が表示されます。

ヒント:

長いリストの中からプロパティを素早く見つけるには、「プロパティ」ウィンドウのツールバーにある検索ボタンをクリックします。「検索」テキスト・フィールドにプロパティ名を入力し、[Enter]キーを押します。

3. 右側の列に、表22-6に示すいずれかのプロパティ値を入力します。

表22-6 プロパティ値

フィールド

説明

テキスト・フィールド

そのプロパティに対する文字列値(テキスト値や数値など)を入力し、[Enter]キーを押します。

下矢印付きの値フィールド

下矢印をクリックしてリストから値を選択し、[Enter]キーを押します。

省略記号(...)付きの値フィールド

省略記号をクリックし、該当するプロパティのエディタを表示します。プロパティ・エディタで値を設定し、「OK」をクリックします。

ヒント:

XSDコンポーネントをダブルクリックするか、XSDコンポーネントを右クリックして「プロパティ」を選択すると、そのコンポーネントのプロパティ・エディタが表示されます。

プロパティ・エディタで属性を選択すると、エディタの下のステータス領域に簡単な説明が表示されます。

コンポーネント・リファレンスのトピックへのリンクを表示するには、プロパティ・エディタの「ヘルプ」をクリックします。

22.6.16 複数のXSDコンポーネントに対するプロパティの設定方法

複数のコンポーネントを選択している場合、デフォルトでは選択中のコンポーネントのプロパティがすべて「プロパティ」ウィンドウに表示されます。「プロパティ」ウィンドウの「統合して表示」ボタンをクリックすると、選択中のコンポーネントのプロパティをすべて表示するオプションと、選択中のコンポーネントに共通なプロパティのみを表示するオプションを切り替えることができます。イタリック・フォントで表示されている値は、共通のプロパティに異なる値が設定されていることを示します。

複数コンポーネントのプロパティを設定するには、次のようにします。

1. [Ctrl]キーを押しながら各コンポーネントを選択します。

2. 「プロパティ」ウィンドウで目的のプロパティを選択して編集します。
値がイタリック・フォントで表示されている場合、選択中のコンポーネントによって値が異なります。共有プロパティの値を編集すると、選択した全コンポーネントの値が同じになります。

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

JDeveloperには、XMLベースのXLIFFテクノロジに基づいてアプリケーションに対する完全なローカライゼーションをサポートするツールがあります。XLIFFは、アプリケーションを国際化する際に翻訳者およびベンダーによって使用されるデータを保持するタグおよび属性を提供することにより、完全なローカライゼーション・プロセスをサポートしています。

XLIFFの詳細は、OASISオープン標準のWebサイト(http://www.oasis-open.org/home/index.php)を参照してください。

新規XLIFFファイルを作成するには、次のようにします。

- 「ファイル」メニュー→「新規」→「ギャラリから」→「一般」→「XML」→XMLローカライゼーション・ファイルを選択します。

22.7.1 XLIFFファイルに関する必知事項

XLIFFファイルの主な要素は、trans-unit要素です。これらの要素には、ローカライゼーション・テキストとその翻訳が格納されます。これらの要素は、セグメント(通常は、独立して適切に翻訳できるソース・ファイル内のセンテンス)を表します。trans-unit要素には、source、target、alt-trans、およびいくつかの他の要素が含まれます。

この他にも、レビュー・コメント、個別文字列の翻訳ステータス、およびソース・センテンスの文字数などのメトリック用の要素があります。XLIFFファイルは、1つ以上のファイル要素で構成されます。これらにはそれぞれ、ヘッダー・セクションと本体セクションがあります。ヘッダーには、連絡先情報、プロジェクト・フェーズ、参考資料へのポインタ、およびスケルトン・ファイル上の情報などのプロジェクト・データが含まれます。

JDeveloperでは、リソース・バンドルを使用して、XLIFFファイルを含むすべてのローカライゼーション情報を保持します。JSFページのコンテンツを作成すると、リソース・バンドルはこのプロジェクト内で自動的に作成されます。

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

XSQLサーブレットを使用してデータ・バインドされたXMLページの作成を簡略化する完全な開発環境が用意されています。XSQLサーブレットを使用すると、XSQLページをクライアントとして作成および使用できます。これらのページは、埋込みSQL問合せおよびその他のデータ操作言語(DML)文を使用してXMLで作成されます。アクション・ハンドラを使用して、ファイルへのXMLデータの書込みなど、SQLよりも多くの機能を提供することもできます。

表22-7に、XSQLサーブレット・アプリケーション内の論理レイヤーを示します。

表22-7 XSQLサーブレットの論理レイヤー

レイヤー

説明

クライアント

XSQLページは、SQLが埋め込まれたXMLを使用して、データの問合せおよび取得を処理します。データを表示するには、HTML、Wireless Markup Language (WML)などの別の形式にXMLデータを変換する必要があります。XMLをこれらの言語に変換するためのXSLスタイルシートを作成できます。

Webサーブレット内のXSQLサーブレット

サーブレットはXML SQL Utilityを使用してデータベースと対話します。

ビジネス・ロジック層

Business Components for Java層を使用して、データへのアクセスおよび変更を行うこともできます。

データベース

JDBC 2.0ドライバをサポートするすべてのデータベースを使用できます。

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

XSQLサーブレットのサポート内容は次のとおりです。

- 「コンポーネント」ウィンドウでのXSQLタグ。

- XSQLページを自動作成します。

- XSQLライブラリをインクルードします。

- クラスパスでXSQLConfig.xmlを提供します。必要に応じて変更できます。

- XSQLページでビジネス・ロジック層を使用してデータにアクセスできるように、ビジネス・コンポーネント・アクション・ハンドラ・タグを提供します。

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

XSQLサーブレットでは、単純かつ生産的な方法で、データベースとXMLをやり取りできます。単純なスクリプトを使用することで、次の操作を実行できます。

- 単純または複雑なXML文書の生成

- XSLスタイルシートの適用によるテキスト形式の生成

- XML文書の解析とデータベースへのデータの格納

- 複雑な動的Webアプリケーションの作成(コードのプログラミングなし)

例22-5のemp.xsqlファイルはその例です。

例22-5 emp.sqlファイル

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="emp.xsl"?>
<FAQ xmlns:xsql="urn:oracle-xsql" connection = "scott">
<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>

例22-6でXMLを生成します。

例22-6 XMLファイル

<EMPLOYEES>
<EMP>
<ENAME>Scott</ENAME>
<SAL>1000</SAL>
<DEPARTMENT>Boston</DEPARTMENT>
</EMP>
<EMP>
...
</EMP>
</EMPLOYEES>

XSQLサーブレットの詳細は、Oracle10iのドキュメントを参照してください。

22.8.3 XSQLファイルの作成方法

ウィザードを使用してXSQLファイルを作成すると、untitled#.xsqlという名前のスケルトン・ファイルがプロジェクトに追加され、XMLエディタで開きます。このエディタでコードを入力したり、「コンポーネント」ウィンドウからタグを選択して追加したり、独自のスタイルシート情報でファイルを変更したりできます。

XSQLファイルを作成するには、次のようにします。

1. 「アプリケーション」ウィンドウで、新しいXSQLページを作成するプロジェクトを選択します。

2. 「ファイル」→「新規」→「ギャラリから」を選択します。

3. 「カテゴリ」ツリーで、「General」を開いて「XML」を選択します。

4. 「項目」リストで「XSQLファイル」をダブルクリックします。

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

XMLエディタの「構造」ウィンドウ・ビューと「プロパティ」ウィンドウでは、構文のハイライト表示がサポートされています。また、編集時に「コンポーネント」ウィンドウからタグを選択してページに挿入することもできます。

XMLエディタを使用してXSQLファイルを編集するには、次のようにします。

1. 「アプリケーション」ウィンドウで、XSQLファイルをダブルクリック/右クリックします。

2. エディタの「ソース」タブを選択します。

3. 「表示」→コンポーネント・ウィンドウを選択して「コンポーネント」ウィンドウを開き、このウィンドウのドロップダウン・リストから「XSQL」タグ・ページを選択します。ウィンドウからXSQLタグを選択します。

4. 入力時に、<(開き山カッコ)を入力して間をおくか、[Ctrl]キーを押しながら[Space]キー(デフォルトのキーマッピングを使用している場合)を押すと、コード・インサイトを起動できます。コード・インサイトにより、有効なタグのリストが表示されます。

5. タグを選択した後にスペースを入力してから時間を置くか、[Ctrl]キーを押しながら[Space]キーを押すと、有効な属性がリスト表示され、ここから選択できます。属性値に対する左引用符を入力すると、ヒント・インサイトで必要な値の型が表示されます。

6. 編集中または編集後、ファイル内で右クリックして「XMLの自動インデント」を選択すると、ファイルを正しくインデントできます。

7. 任意のタグを右クリックして「構造ウィンドウ内で検索」を選択し、「構造」ウィンドウでそのタグをハイライトすることもできます。

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

XSQLファイルをチェックして、エラーを検索するために、ファイルが製形式のXML文書かどうかを確認できます。エラーは、ログの「XML検証エラー」タブに表示されます。

XSQLファイルの構文をチェックする手順は、次のとおりです。

- 「アプリケーション」ウィンドウで、XSQLファイルを右クリックして 「XMLの検証」を選択します。

注意:

XMLファイルにXMLネームスペースが定義されていない場合、このポップアップ・メニューの「XMLの検証」コマンドは無効になります。

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

XSQLタグを使用して、XSQLサーブレット用のXMLベース・クライアントを作成できます。XSQLサーブレットを使用すると、XML形式でデータベースとデータを簡単にやり取りできます。次の手順は、XSQL Queryタグを使用してデータを表示する方法を示しています。

データベースに直接アクセスするXSQLサーブレット・クライアントを作成する手順は、次のとおりです。

1. 「アプリケーション」ウィンドウでプロジェクトを選択し、「ファイル」→「新規」→「ギャラリ」を選択します。

2. 「カテゴリ」リストで、「一般」を選択し、「XML」を選択します。

3. 「項目」リストで「XSQLファイル」をダブルクリックします。
これにより、untitled#.xsqlという名前のスケルトンXSQLファイルがプロジェクトに追加されます。

4. 「アプリケーション」ウィンドウで、新しいXSQLファイルをダブルクリックしてエディタで開きます。

5. <page xmlns:xsql="urn:oracle-xsql">タグの後の空白行にカーソルを置きます。

6. 「表示」→コンポーネント・ウィンドウを選択して、「コンポーネント」ウィンドウを開きます(表示されていない場合)。

7. 「コンポーネント」ウィンドウのドロップダウン・リストからXSQLタグを選択します(表示されていない場合)。

8. 「コンポーネント」ウィンドウからQueryタグを選択します。
QueryタグによりSQL文が実行され、結果セットがXML形式でインクルードされます。

9. 表示されるダイアログで、属性の値を入力したり、デフォルト値を変更できます。[F1]を押すか、ダイアログで「ヘルプ」をクリックして、タグおよびその属性に関するヘルプを表示します。

10. 属性を入力した後、「次へ」をクリックします。

11. 「接続の選択内容」ダイアログで、接続が選択されていない場合は選択し、「次へ」をクリックします。

12. 「問合せ」ダイアログで、実行するSQL文を入力し、「次へ」をクリックします。
たとえば、select * from customerと入力すると、入力した属性に基づいて、顧客データベースのすべてのレコードが表示されます。

13. 「終了」をクリックします。
入力したQueryタグと属性は、XSQLページに表示されます。

14. 「ファイル」→「すべて保存」を選択して、これまでの作業内容を保存します。

15. 「アプリケーション」ウィンドウでXSQLファイルを右クリックして、「<filename>.xsqlの実行」を選択すると、RAW XMLデータがWebブラウザに表示されます。

スタイルシートを使用してXMLデータの書式を設定できます。メッセージ・サービスを介してXMLデータを別のアプリケーションに渡すこともできます。

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

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. 属性のデフォルト値を変更するか、受け入れます。属性を入力した後、「次へ」をクリックします。

15. 「終了」をクリックします。
入力したタグと属性がXSQLページに表示されていることを確認します。

16. 「ファイル」→「すべて保存」の順に選択して、作業内容を保存します。

17. 「アプリケーション」ウィンドウでXSQLファイルを右クリックして、「<filename>.xsqlの実行」を選択すると、RAW XMLデータがWebブラウザに表示されます。

スタイルシートを使用してXMLデータの書式を設定できます。メッセージ・サービスを介してXMLデータを別のアプリケーションに渡すこともできます。

注意:

XSQLページをビジネス・コンポーネントのXSQL処理ハンドラとともに使用するには、希望する接続モードを基にしたすべてのJBOライブラリに加えて、XSQLランタイムおよびJBO HTMLライブラリをプロジェクトのクラスパスに含める必要があります。これらは、JDeveloperによって自動的にクラスパスに含められます。

22.8.8 XSQLエラーJBO-27122に関する必知事項

循環ビュー・リンク・アクセッサを使用してビュー・オブジェクトを問い合せると、XSQLエラーJBO-27122が発生することがあります。

複数の表の間に外部キー関係がある場合を考えてみます。たとえば、Oracle10iリリース2のデータベース・サンプルのHRスキーマでは、国、部門、従業員および場所の表の間にこのような関係があります。これらの表に基づいて単純なビジネス・コンポーネント・プロジェクトを作成し、さらにCountriesView1というビュー・オブジェクトにアクセスするXSQLクライアントを作成すると、例22-7のようなエラーが発生します。

例22-7 XSQLエラーJBO-27122

<?xml version="1.0" encoding="windows-1252" ?>
- <!--
| 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" ?>

-->
- <page>
- <xsql-error action="xsql:action">
<message>JBO-27122: SQL error during statement preparation. Statement: SELECT Employees.EMPLOYEE_ID, Employees.FIRST_NAME, Employees.LAST_NAME, Employees.EMAIL, Employees.PHONE_NUMBER, Employees.HIRE_DATE, Employees.JOB_ID, Employees.SALARY, Employees.COMMISSION_PCT, Employees.MANAGER_ID, Employees.DEPARTMENT_ID, Employees.DN FROM EMPLOYEES Employees WHERE (Employees.DEPARTMENT_ID = :1)</message>
</xsql-error>
</page>

このエラーは、max-levelsパラメータにデフォルト値を使用して、基礎となるwriteXML()メソッドを使用しているために発生します。このため、前述した外部キーによって作成される循環参照により無限ループが発生し、ORA-1000 MaxOpenCursors超過エラーが内部で発生します。

これを回避するには、コードを例22-8のように変更します。

例22-8 無限ループの回避策

<xsql:action handler="oracle.jbo.xsql.ViewObject"
name="YourViewUsageName"
appmodule="a.b.c.YourModuleName"
configname="YourModuleNameLocal">
<view-attribute-list viewdefname="a.b.c.YourViewName"
include-only"Attr1 Attr2 Attr3"
:
</xsql:action>

属性リストを制御する各ビュー定義に複数の<view-attribute-list>要素を使用できます。1つの<view-attribute-list>要素を使用するとすぐに、<view-attribute-list>要素に含まれている属性のみをインクルードするwriteXML()の新しいAPIが使用されます。

ビュー・オブジェクトの詳細を表示するには、そのビュー定義のinclude-onlyリストにある属性名のリストに、ビュー・リンク・アクセッサ属性名を含める必要があります。例22-9はCountriesViewに基づく使用例です。

例22-9 CountriesViewの例

<?xml version="1.0" encoding='windows-1252'?>
<!--
| 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" ?>
-->
<page xmlns:xsql="urn:oracle-xsql">
<xsql:action
handler="oracle.jbo.xsql.ViewObject"
name="CountriesView1"
configname="HrModuleLocal"
appmodule="hr.HrModule">
<view-attribute-list viewdefname="hr.HrModule.CountriesView"
include-only="CountryId CountryName CurrencyName" />
</xsql:action>

</page>

22.8.9 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アーカイブがビルドに含まれます。

例22-10 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());
}
}

22.8.10 XSQLサーブレットのデプロイ方法

XSQLサーブレットは、データベースをサーブレット・クライアント環境にデプロイするために必要な情報とロジックが格納された実行可能パッケージを生成します。このデータベース・デプロイメント・パッケージをセットアップおよびデプロイメント・ソリューションに組み込んだり、別個のアプリケーションとしてクライアントに提供したりできます。XSQLサーブレットをデプロイするには、マスター・データベース、デプロイメント・シナリオを指定し、デプロイメントの準備が整った自己完結型の実行可能ファイルを生成する必要があります。

次に示すのはカスタム・アプリケーションです。カスタム・アプリケーションの作成時に、XSQLアプリケーションの開発に適した機能を追加します(アプリケーション作成の一部としてJavaとXSQLを選択する場合)。

XSQLサーブレットをデプロイするには、次のようにします。

1. 必要に応じて、新規のアプリケーションとプロジェクトを作成します。
詳細は、第4.2項「アプリケーションおよびプロジェクトの作成」を参照してください。

2. XSQLファイルが「アプリケーション」ウィンドウのソース・エディタでまだ開いていない場合は、作成したXSQLファイルの名前をダブルクリックして開きます。

3. 「ファイル」→「新規」を選択して新規ギャラリを開きます。

4. 「新規ギャラリ」の「カテゴリ」ツリーの「一般」で、「XML」を選択します。

5. 「項目」リストで「XSQLファイル」をダブルクリックします。

6. 「コンポーネント」ウィンドウで、「問合せ(XSQL)」をページにドラッグ・アンド・ドロップします。これにより、「問合せ」ウィザードが開き、データベース接続に関する情報が表示されます。SQL問合せを入力します。ウィザードの終了時に<xsql:query>タグがXSQLファイルに追加されます。

7. 「次へ」をクリックします。ウィザードの第2ページで、データベース接続をまだ作成していない場合は、新しい接続を作成します。または、使用する既存のデータベース接続を選択します。
問い合せる予定のスキーマや表がデータベースに存在することが必要です。データベース接続の設定の詳細は、 第26.2項「データベース接続の設定」を参照してください。 「次へ」をクリックします。

8. SQL問合せをファイルに追加します。問合せの例を例22-11に示します。

例22-11 SQL問合せの例

SELECT DISTINCT d.department_id as h_deptno, department_name as "Department_name"
FROM departments d, employees e
WHERE d.department_id = e.department_id
ORDER BY d. department_name

9. 「終了」をクリックします。問合せおよび関連するXSQLタグがXSQLファイルに入力されます。

10. これで、XSQL問合せを統合WebLogic Serverで実行してテストできます。このサーバーには、IDE内でWebアプリケーションを開発、テストおよびデバッグするために必要な機能がすべて用意されています。詳細は、第9.2項「統合アプリケーション・サーバーでのJava EEアプリケーションの実行」を参照してください。

11. 「アプリケーション」ウィンドウまたはソース・エディタのXSQLファイルのポップアップ・メニューで、「実行」をクリックします。必要に応じて、統合WebLogic Serverはデフォルトのドメインを作成してから起動します。統合WebLogic Serverを初めて起動する場合、ダイアログが表示され、デフォルト・ドメイン上のデフォルト・ユーザーweblogicのパスワードを入力する必要があります。この手順は1回のみ実行する必要があります。
ダイアログで「OK」をクリックすると、デフォルトのドメインが作成されます。これには数分かかることがあります。進行状況が「ログ」ウィンドウに表示されます。

統合WebLogic ServerでXSQLファイルを実行すると、デフォルトのブラウザにSQL問合せの結果が表示されます。

12. 統合WebLogic ServerでXSQLファイルのテストが正常に完了したら、次のステップとしてアプリケーションをアプリケーション・サーバーにデプロイして実行します。

13. XSQLの実行に使用される構文はJDeveloperとOracle WebLogic Serverとで異なるため、XSQLソース・ファイルで接続情報を次のように変更する必要があります。

connection="java:comp/env/jdbc/database-connection-nameDS"

次の文字列で置き換えます。

connection="jdbc/database-connection-nameDS"

注意:

アプリケーションを統合WebLogic Serverで実行するには、接続情報を元に戻す必要があります。

14. アプリケーションをデプロイするには、最初にデプロイメント・プロファイルを作成し、これにアプリケーションをデプロイする必要があります。「アプリケーション」ウィンドウで、XSQLサーブレットが含まれるプロジェクトを右クリックして、「新規」を選択します。「新規ギャラリ」で「General」を展開し、「デプロイメント・プロファイル」を選択します。

15. WARデプロイメント・プロファイルなどのプロファイルを選択し、「OK」をクリックし、デプロイメント・プロファイルの作成を続行します。詳細は、第9.3.3項「デプロイメント・プロファイルの作成および編集方法」を参照してください。

16. アプリケーションをデプロイメント・プロファイルにデプロイするには、XSQLサーブレット・ファイルが含まれるプロジェクトを右クリックして、「デプロイ」→「profile」を選択します。「profile」は、作成したデプロイメント・プロファイルの名前です。
「デプロイ」ダイアログで、「WARにデプロイ」(または、別のタイプのデプロイメント・プロファイルを選択した場合は適切なオプション)を選択し、「終了」をクリックします。

17. これで、Oracle WebLogic Serverなどのアプリケーション・サーバーにアプリケーションをデプロイできるようになります。実行する必要のある手順は次のとおりです。

- XSQLファイル内の接続情報を使用してターゲット・アプリケーション・サーバー上でデータソースを作成します。詳細は、第9.3.7.4項「Oracle WebLogic ServerでのJDBCデータソースの設定」を参照してください。

- アプリケーション・サーバーへの接続を作成します。詳細は、第9.3.1項「ターゲット・アプリケーション・サーバーへの接続の作成方法」を参照してください。

- XSQLサーブレット・ファイルが含まれるプロジェクトを右クリックして、「デプロイ」→「profile」を選択し、アプリケーションをデプロイします。「profile」は、作成したデプロイメント・プロファイルの名前です。
「デプロイ」ダイアログで、「アプリケーション・サーバーへのデプロイ」を選択し、次のページでアプリケーション・サーバー接続を選択し、「終了」をクリックします。

アプリケーションがデプロイされたら、http://targethost:port/web-context-root/filename.xsqlにナビゲートすることにより、ブラウザ・ウィンドウで問合せの結果を表示できます。

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

XSQLファイルを作成してタグを追加した後、RAW XMLデータを表示するか、スタイルシートを使用してXMLデータを書式設定します。

XSQLファイルをRAW XMLデータとして表示するには、次のようにします。

- 「アプリケーション」ウィンドウでXSQLファイルを選択し、右クリックして「実行」を選択すると、ソース・ファイルがWebブラウザに表示されます。
JDeveloperにより統合WebLogic Serverが開始され、デフォルトのWebブラウザが起動して、XSQLサーブレットがXSQLページを処理した後に生成されたRAW XMLデータが表示されます。

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

JDeveloperでは、データをHTML、WMLまたは他の出力で書式設定するため、XSQLファイルに適用できるXSLスタイルシートを作成できます。XSLスタイルシートを作成すると、選択したXSQLプロジェクトに追加されます。

XSLスタイルシートを作成するには、次のようにします。

1. 「アプリケーション」ウィンドウで、新しいXSLページを作成するプロジェクトを選択します。

2. 「ファイル」→「新規」→「ギャラリから」を選択します。

3. 「カテゴリ」ツリーで、「General」を開いて「XML」を選択します。

4. 「項目」リストで「XSLスタイル・シート」をダブルクリックします。

5. 「ファイル名」フィールドに、生成するファイルの名前を入力します。

6. 「ディレクトリ名」フィールドは変更せず、JDeveloperがWebアプリケーション・ファイルを検索するディレクトリに作業内容を保存します。
スケルトンXSLファイルが生成され、アクティブなプロジェクトに表示されます。

XMLエディタを編集して、独自のカスタム・スタイルシートを作成できます。XMLデータをワイヤレス・マークアップ・ランゲージ (WML)に変換するXSLスタイルシートの例は、後述します。完了すると、XSQLファイルのスタイルシート名を指定して、RAW XMLデータを書式設定できます。

例22-12のスタイルシートは、XMLからWMLへの変換を示しています。BC4JアプリケーションでデフォルトのDeptViewを使用します。

例22-12 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>

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

XSQLファイルを作成してタグを追加した後、XSLスタイルシートを使用してXMLデータの書式を設定したり、RAW XMLデータを表示できます。以前に作成したスタイルシートを使用することも、JDeveloperで新規のスタイルシートを作成して適用することもできます。スタイルシートを適用することで、HTML、またはWireless Markup Language (WML)などの他のマークアップ言語にXMLデータを変換できます。

スタイルシートを使用してXMLデータの書式を設定する手順は、次のとおりです。

1. 「アプリケーション」ウィンドウで、スタイルシートを追加するXSQLファイルをダブルクリックします。

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. 「アプリケーション」ウィンドウでプロジェクトを選択し、「プロジェクト」→「プロジェクト<プロジェクト名>に追加」を選択します。
「プロジェクトに追加」ダイアログで、ディレクトリに移動し、指定したスタイルシート・ファイルを選択します。

6. 「開く」をクリックします。

7. 「ファイル」→「すべて保存」の順に選択して、すべての変更を保存します。
追加したファイルが「アプリケーション」ウィンドウに表示され、XMLエディタで開きます。開いているファイルを閉じることもできます。

8. 「アプリケーション」ウィンドウでXSQLファイルを右クリックし、「実行」を選択すると、ファイルがWebブラウザに表示されます。
書式設定されたXMLデータをブラウザで表示できます。

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

XSQL構成ファイルXSQLConfig.xmlは、クラスパス上に存在するため、XSQLページから常にアクセスできます。接続情報は、JDeveloperで新規接続を作成すると、XSQLConfig.xmlファイルに追加されます。XSQLConfig.xmlはシステム・ディレクトリにあり、XSQLファイルを含むプロジェクトがコンパイルされると、WEB-INFディレクトリにコピーされます。カスタム・アクション・ハンドラを登録するなどの変更が必要な場合は、プロジェクトにファイルを追加することもできます。

注意:

XSQLプロジェクトをJDeveloperに移行しても、XSQLConfig.xmlファイルは更新されません。プロジェクトの移行後、接続を再作成したり、JDeveloperで既存の接続を編集することで接続を更新できます。

プロジェクトのXSQL構成ファイルを変更するには、次のようにします。

1. 「アプリケーション」ウィンドウでプロジェクトが選択された状態で、「プロジェクト」→「プロジェクト<プロジェクト名>に追加」を選択します。

2. JDeveloperインストール・ディレクトリのシステム・ディレクトリにナビゲートしてXSQLConfig.xmlを選択し、「開く」をクリックします。

3. XMLエディタで変更または追加します。

4. 「ファイル」→「保存」の順に選択して、修正したファイルを保存します。

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

表22-8に示すカスタム・プロパティは、ビュー・オブジェクトまたは行のwriteXMLメソッドを使用する際、XMLの生成に影響します。

表22-8 メタデータのプロパティ

プロパティ名

値

有効な対象

XML_ELEMENT

有効な要素名

ビュー・オブジェクトおよびビュー属性

XML_ROW_ELEMENT

有効な要素名

ビュー・オブジェクト

XML_CDATA

任意の値(空でない)

ビュー属性

XML_EXPLICIT_NULL

任意の値(空でない)

ビュー・オブジェクトおよびビュー属性

22.8.15.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>

22.8.15.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>

22.8.15.3 XML_CDATAの使用

XML_CDATAカスタム・プロパティがビュー属性に対して空でない値に設定されると、その値はプレーン・テキストとしてではなく、CDATAセクションとして出力されます。

22.8.15.4 XML_EXPLICIT_NULLの使用

XML_EXPLICIT_NULLカスタム・プロパティがビュー属性に対して空でない値に設定されると、NULL値を持つすべての属性で、次のようなXML要素が生成されます。

<AttributeName null="true"/>

デフォルトの場合は、XML結果から<AttributeName>要素が省略されます。

XML_EXPLICIT_NULLがビュー属性に対して空でない値に設定されると、指定した属性がNULL値を持つ場合は、システムにより次のようなXML要素が生成されます。

<AttributeName null="true"/>

デフォルトの場合は、XML結果から<AttributeName>要素が省略されます。

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

この章では、Webサービスの開発、デプロイ、テストおよび監視、ポリシーによるWebサービスの保護、Web Service Definition Language (WSDL)ファイルの管理を可能にするJDeveloperの仕組みについて説明します。Universal Description, Discovery, and Integration (UDDI)レジストリを使用してWebサービスを検出し、Webサービス・クライアントを作成する方法について説明します。

この章には次の項が含まれます:

- 第23.1項「Webサービスの開発および保護について」

- 第23.2項「JDeveloperを使用したWebサービスの作成および使用」

- 第23.3項「UDDIレジストリのWebサービスの使用」

- 第23.4項「JAX-WS Webサービスおよびクライアントの作成」

- 第23.5項「RESTful Webサービスおよびクライアントの作成」

- 第23.6項「ポリシーのアタッチ」

- 第23.7項「Webサービスのデプロイ」

- 第23.8項「Webサービスのテストおよびデバッグ」

- 第23.9項「Webサービスの監視と分析」

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

Webサービスは、一連のメッセージ・プロトコルとプログラミング規格で構成され、オープン・スタンダードを使用してインターネット上でビジネス機能を公開します。Webサービスは、プログラムによってインターネット上でアクセスされ、レスポンスを戻す、再利用可能な独立したソフトウェア・コンポーネントです。

アプリケーションでWebサービスを使用する場合は、JDeveloperを使用して次のタスクを実行します。

- Webサービスを開発および実行するためにJDeveloperを構成します。

- 次のタスクを1つ以上実行してWebサービス・クライアントを作成します。

- Universal Description, Discovery, and Integration (UDDI)レジストリでWebサービスを検索します。

- 既存のWebサービスにアクセスし、これをアプリケーションに組み込むために、クライアントおよびプロキシ・クラスを作成します。

- 次のタスクを1つ以上実行してWebサービスを作成します。

- 基礎となるJava実装からWebサービスを作成します(ボトムアップ)。

- WSDLからSimple Object Access Protocol (SOAP) Webサービスを作成します(トップダウン)。

- SOAPサービスのWSDLファイルを管理します。

- ポリシーを使用してWebサービスを保護します。

- Webサービスをテストおよびデバッグします。

- 統合WebLogic ServerまたはOracle WebLogic ServerにWebサービスをデプロイします。

- Webサービスを監視、分析、デプロイします。

- UDDIレジストリにWebサービスを公開します。

次の各項では、JDeveloperを使用したWebサービスの開発および保護について説明します。

- 第23.1.1項「JDeveloperを使用したJava EE Webサービスの開発」

- 第23.1.2項「JDeveloperを使用したJava EE Webサービスの保護」

- 第23.1.3項「Webサービスの検出および使用」

23.1.1 JDeveloperを使用したJava EE Webサービスの開発

Oracle JDeveloperでは、表23-1に示したJava EE webサービスの開発および保護のためのWebサービス・テクノロジおよび標準をサポートしています。

表23-1 JDeveloperでサポートされているJava EE Webサービス・テクノロジおよび標準

Webサービス・テクノロジ

Webサービス標準

説明

Simple Object Access Protocol

Java API for XML-Based Web services (JAX-WS) 2.2

SOAP Webサービスは、JAX-WSを使用してJavaクラスおよびEJBのリモート・インタフェースから作成できます。Webサービス作成ウィザードではデプロイメント・ファイルが作成されるため、Webサービスの作成後、最後のステップではこれをアプリケーション・サーバーにデプロイします。

また、JAX-WS Webサービスは、WSDLから始めてトップ・ダウンWebサービスとして作成できます。

WebLogic ServerのJAX-WS実装は、Glassfishコミュニティによって開発されたJAX-WSリファレンス実装(RI)から拡張されています(http://jax-ws.java.net/index.htmlを参照)。

詳細は、第23.4項「JAX-WS Webサービスおよびクライアントの作成」を参照してください。

Representational State Transfer (REST)

Java API for RESTful Web Services (JAX-RS) 1.1

RESTは、SOAPなどの追加メッセージング・レイヤーなしで、標準化されたインタフェース(HTTPなど)を介してデータを送信する単純なインタフェースを記述するものです。

JAX-RSを使用して、JavaクラスからRESTに基づくWebサービス(「RESTful Webサービス」と呼ばれる)を開発できます。

WebLogic Serverでは、JSR-311 JAX-RS 1.1仕様の本番品質の実装であるJersey 1.13 JAX-RSリファレンス実装(RI)がサポートされています。

詳細は、第23.5項「RESTful Webサービスおよびクライアントの作成」を参照してください。

SOAPテクノロジとRESTテクノロジのどちらか一方を選択する際に考慮すべきガイドラインは、Oracle WebLogic Server WebLogic Webサービスの理解のSOAPとRESTの使い分けに関する項を参照してください。

23.1.2 JDeveloperを使用したJava EE Webサービスの保護

JDeveloperを使用してJava EE Webサービスを保護するには、次の表に示したポリシー・タイプのいずれかをアタッチします。

表23-2 Java EE Webサービスを保護するためのポリシーのタイプ

ポリシーのタイプ

説明

Oracle Web Services Manager (OWSM)ポリシー

OWSMによって提供されるポリシー。OWSMポリシーおよび事前定義済ポリシーの詳細は、Oracle Web Services Managerの理解を参照してください。

OWSMセキュリティ・ポリシーは、Java EE Webサービスにのみアタッチできます。

OWSMポリシーは、Oracle Enterprise Manager Fusion Middleware Controlから管理します。詳細は、Oracle Web Services ManagerによるWebサービスの保護およびポリシーの管理を参照してください。

WebLogic Webサービス・ポリシー

WebLogic Serverによって提供されるポリシー。WebLogic Webサービス・ポリシーは、JAX-WS Webサービスにのみアタッチできます。WebLogic Webサービス・ポリシーの詳細は、Oracle WebLogic ServerのWebサービスの保護に関するガイドを参照してください。

WebLogic Webサービス・ポリシーは、WebLogic管理コンソールから管理します。

可能な場合、WebLogic Webサービス・ポリシーよりもOWSMポリシーを使用することをお薦めします。同じWebサービスで、OWSMポリシーとWebLogic Webサービス・ポリシーを混在させて使用することはできません。

詳細は、次を参照してください:

- 第23.6.3項「JAX-WS Webサービスおよびクライアントへのポリシーのアタッチ方法」

- 第23.6.4項「RESTful Webサービスおよびクライアントへのポリシーのアタッチ方法」

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

既存のWebサービスをアプリケーションで使用するためのクライアントが簡単に作成できます。詳細は、次を参照してください:

- 第23.4.3項「JAX-WS Webサービス・クライアントの作成方法」

- 第23.5.2項「RESTful Webサービス・クライアントの作成方法」

また、JDeveloperにはUDDIブラウザが組み込まれており、社内のUDDIレジストリなどへの接続を定義できます。詳細は、第23.3項「UDDIレジストリのWebサービスの使用」を参照してください。

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

Webサービスについて理解を深める情報を提供し、JDeveloperを使用したWebサービスの作成、構成および使用方法を説明します。

- 第23.2.1項「プロキシ設定およびJDeveloperの使用方法」

- 第23.2.2項「Webサービスのコンテキスト・ルートの設定方法」

- 第23.2.3項「Webサービスとともに使用する接続の構成方法」

- 第23.2.4項「型マッピングの使用方法」

- 第23.2.5項「デプロイメント・プラットフォームの選択方法」

- 第23.2.6項「Webサービスのコード・インサイトの使用方法」

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

デフォルトでは、JDeveloperではインターネットへの接続時にプロキシは使用されません。JDeveloperからの接続で問題が発生した場合は、使用するプロキシ・サーバー設定の変更が必要になることがあります。

HTTPアナライザを使用する場合、アナライザ自身がプロキシであり、これにより監視されるトラフィックは、通常のプロキシ・サーバーのようにアナライザでルーティングされます。JDeveloperにプロキシを設定してある場合、アナライザでは、トラフィックが元のプロキシに届く前に、確実にアナライザを通過するようにします。

注意:

JDeveloperでは、NTLMプロキシ・サーバーはサポートされていません。

次の各項では、JDeveloperを使用してプロキシ設定を有効化および無効化する方法について説明します。

- 第23.2.1.1項「デフォルト・ブラウザのプロキシ設定の使用」

- 第23.2.1.2項「カスタム・プロキシ設定の構成」

- 第23.2.1.3項「インターネットへのアクセス時のプロキシ・サーバーの使用の無効化」

23.2.1.1 デフォルト・ブラウザのプロキシ設定の使用

デフォルト・ブラウザで構成されているプロキシ設定を使用すると便利な場合があります。

デフォルト・ブラウザのプロキシ設定を使用する手順は次のとおりです。

1. 「ツール」→「プリファレンス」を選択し、「Webブラウザとプロキシ」を選択します。
詳細を参照するには、「Webブラウザとプロキシ」ダイアログで[F1]または「ヘルプ」をクリックします。

2. 「Webブラウザ」タブを選択して、リストから目的のデフォルト・ブラウザを選択します。

3. 「プロキシ設定」タブを選択して、プロキシ設定を構成します。

4. 「システムのデフォルト・プロキシ設定の使用」を選択します。

5. 「OK」をクリックします。

23.2.1.2 カスタム・プロキシ設定の構成

カスタム・プロキシ設定を構成できます。これは、リストから特定のIPアドレスまたはホスト名を除外する必要がある場合に便利です。

たとえば、プロキシ・サーバーを経由してIPアドレスに接続し、マシンも同じプロキシ・サーバーを経由している場合は、Webプロキシ設定で、接続先のIPアドレスを除外していることを確認します。

カスタム・プロキシ設定を構成する手順は次のとおりです。

1. 「ツール」→「プリファレンス」を選択し、「Webブラウザとプロキシ」を選択します。
詳細を参照するには、「Webブラウザとプロキシ」ダイアログで[F1]または「ヘルプ」をクリックします。

2. 「プロキシ設定」タブを選択して、プロキシ設定を構成します。

3. 「手動プロキシ設定」タブを選択して、プロキシ・サーバーのホストおよびポート名を入力します。

4. 「プロキシ使用なし」フィールドに、除外するホスト名またはIPアドレスをリストします。

5. 「OK」をクリックします。

23.2.1.3 インターネットへのアクセス時のプロキシ・サーバーの使用の無効化

インターネットへのアクセス時のプロキシの使用を無効化できます。これがデフォルトの動作です。

インターネットへのアクセス時のプロキシ・サーバーの使用を無効化する手順は次のとおりです。

1. 「ツール」→「プリファレンス」を選択し、「Webブラウザとプロキシ」を選択します。
詳細を参照するには、「Webブラウザとプロキシ」ダイアログで[F1]または「ヘルプ」をクリックします。

2. 「プロキシ設定」タブを選択して、プロキシ設定を構成します。

3. 「プロキシなし」を選択します。

4. 「OK」をクリックします。

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

コンテキスト・ルート(コンテキスト・パスとも呼ばれる)は、生成されるWebサービスのWebサービス・エンドポイントの一部となります。このため、適切な値に設定することが重要です。

Webサービスのコンテキスト・ルートは、WebサービスURLのhost:port部分の後に使用される文字列です。たとえば、WebLogic WebサービスのデプロイされたWSDLがhttp://hostname:7001/financial/GetQuote?WSDLであるとします。

このセルフサービスのコンテキスト・パスは、financialです。

プロジェクト・レベルでは、統合WebLogic ServerにデプロイされているJava EE Webアプリケーションに割り当てるコンテキスト・ルートを設定できます。コンテキスト・ルートのデフォルト値は次のとおりです。

applicationname-projectname-context-root

Webサービスのコンテキスト・ルートを設定する手順は次のとおりです。

1. 「アプリケーション」ウィンドウで、プロジェクトを右クリックし、「プロジェクト・プロパティ」を選択し、「プロジェクト・プロパティ」ダイアログを開きます。
詳細を参照するには、「プロジェクト・プロパティ」ダイアログで[F1]または「ヘルプ」をクリックします。

2. 「Java EEアプリケーション」を選択します。

3. 個人のプロジェクト設定と共通のプロジェクト設定のどちらを使用するかを選択します。

- 個人のプロジェクト設定を使用するには、「カスタム設定を使用」を選択し、「設定のカスタマイズ」ボタンをクリックします。

- 共通のプロジェクト設定を使用するには、「プロジェクト設定を使用」を選択します。

4. 「Java EE Webコンテキスト・ルート」フィールドを更新して、統合WebLogic ServerでJava EE Webアプリケーションとしてプロジェクトのコンテンツを実行またはデプロイするときに、アプリケーションに割り当てるコンテキスト・ルートを定義します。

5. 「OK」をクリックします。

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

統合WebLogic Serverを使用してテストできる単純なWebサービスを開発できます。ただし、複雑なWebサービスの開発およびWebサービスのデプロイには、適切な接続が必要になります。

- WebサービスをOracle WebLogic Serverにデプロイするには、第23.7項「Webサービスのデプロイ」に示すように、アプリケーション・サーバー接続が必要です。

- Universal Description, Discovery and Integration (UDDI)レジストリを使用してWebサービスを検索するには、レジストリへの接続を作成する必要があります。詳細は、第23.3.1項「UDDIレジストリ接続の定義方法」を参照してください。

23.2.4 型マッピングの使用方法

Webサービスとの間で受け渡しが可能なオブジェクトは、XML型にシリアライズしたり、また元の型にデシリアライズできる必要があります。自動的に処理されるオブジェクトは、Javaプリミティブ型および特定のJava標準型です。自動的にシリアライズされないオブジェクトを使用してWebサービスを作成するには、独自のカスタム・シリアライザを記述します。

Webサービスとの間で受け渡しが可能なオブジェクトは、JavaBeanの規則に準拠しているオブジェクトです。JavaBeanは、Webサービスを目的として、次の制限に準拠しているJavaクラスです。

- publicデフォルト(ゼロ引数)コンストラクタを含んでいること。

- アクセッサとして関心のある属性をすべて表示する必要があること。

- プロパティのアクセッサ(setMethod()とgetMethod())の順序が重要でないこと。

- アクセッサは大/小文字混合で1文字目は小文字であること。たとえば、属性がnameの場合、アクセッサはgetNameおよびsetNameとなります。

詳細は、JavaBean仕様(http://www.oracle.com/technetwork/java/javase/tech/index-jsp-138795.html)を参照してください。

Webサービスでは、各オブジェクトのプロパティはJava型の1つで、XMLスキーマの単純な型にマップされる必要があります。XMLスキーマ・データ型とそれに対応するJavaデータ型のリストは、Oracle WebLogic Server JAX-WS Webサービスの開発のビルトイン・データ型のXMLからJavaへのマッピングに関する項を参照してください。また、サービス・メソッドによって、org.w3c.dom.Elementとして渡される単一のXML要素データを受け取り、戻すことができます。

JAX-WS Webサービスでは、Java Architecture for XML Binding (JAXB) (http://jcp.org/en/jsr/detail?id=222を参照)を使用して、すべてのデータ・バインディング・タスクを管理します。特に、JAXBでは、Javaメソッド・シグネチャとWSDLメッセージおよび操作がバインドされるため、ランタイム変換を自動的に処理しながらマッピングをカスタマイズできます。これにより、XMLに精通していなくても、Javaテクノロジに基づいてXMLデータおよび処理機能をアプリケーションに組み込むことができます。

JAXBバインディング言語を使用してカスタム・バインディング宣言を定義したり、JAXB注釈を指定してXMLとJava間のデータの変換を制御したりできます。

WebLogic Serverには、次の2つのデータ・バインディングおよびJAXBプロバイダが用意されています。

- EclipseLink MOXy (このリリースのWebLogic Serverにおけるデフォルト)は、完全準拠のJAXB実装です。EclipseLink MOXyには、JAXBの標準機能のほかに、外部メタデータ・ファイルを使用して参照先のJavaソースを変更せずにJAXB注釈と同等のものを構成する機能や、XPathベースのマッピングなどの便利な拡張機能が用意されています。JAXB拡張機能は、サービス・エンドポイント・インタフェース(SEI)の注釈またはSEIで使用されるいずれかの値タイプで使用できます。JAXBをスタンドアロン・モードで使用しているユーザーもこれらの機能を利用できます。
EclipseLink MOXyでは、次のような追加拡張機能が提供されます。

- JPAエンティティからXMLへのマッピングのための拡張機能

- 双方向のマッピング

- 仮想プロパティ

- メタデータからブートストラップし、メモリー内ドメイン・クラス(Dynamic MOXy)を生成する機能

Webサービスでは、サーバー側でJavaからWSDLを生成する場合にのみEclipseLink MOXy拡張機能を利用できます。この場合、SEIと値タイプでEclipseLinkの拡張機能を使用できます。これらの拡張機能およびEclipseLink MOXyの詳細は、『The EclipseLink MOXy (JAXB) User's Guide』(http://wiki.eclipse.org/EclipseLink/UserGuide/MOXy)を参照してください。

EclipseLink MOXyプロバイダを使用する場合、構成は必要ありません。

- Glassfish RI JAXB(デフォルトのGlassfish JAXB実装)は、以前のリリースのWebLogic Serverではデフォルトで提供されるJAXBでした。Glassfish RI JAXBの固有機能は、EclipseLink MOXyでは機能しません。必要に応じて、サーバー・レベルまたはアプリケーション・レベルでGlassfish RI JAXBデータ・バインディングおよびJAXBプロバイダを有効化できます。詳細は、Oracle WebLogic Server JAX-WS Webサービスの開発のGlassfish RI JAXBデータ・バインディングおよびJAXBプロバイダの使用に関する項を参照してください。

JAX-WS WebサービスでのJAXBの使用の詳細は、Oracle WebLogic Server JAX-WS Webサービスの開発のJAXBデータ・バインディングの使用に関する項を参照してください。

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

プロジェクトでWebサービスを初めて作成するとこのダイアログが表示され、選択したバージョンがプロジェクトで作成するすべてのWebサービスに対して使用されます。このダイアログは、既存のWSDLを右クリックして、「Webサービスの作成」を選択し、そのWSDL.から新しいWebサービス・プロジェクトを作成することを選択した場合にも表示されます。

プロジェクトにWebサービスを初めて作成するときに、表23-3に示すように、デプロイメント・プラットフォームを選択できます。選択するプラットフォームにより、ウィザードで使用可能なオプションや、デプロイメント用としてWAR/EARファイルに追加されるライブラリが決まります。

また、既存のWSDLを使用してWebサービスを作成するときにも、デプロイメント・プラットフォームを選択できます。プロジェクト内のWSDLを右クリックして、ポップアップ・メニューから「Webサービスの作成」を選択し、そのWSDLから新しいWebサービス・プロジェクトを作成することを選択します。

表23-3 デプロイメント・プラットフォーム

デプロイメント・プラットフォーム

説明

Java EE 6 (JAX-WS注釈のサポート付き)

Java EE 1. 6の一部としてリリースされるJAX-WS WebサービスAPIを利用するWebサービスを生成します。このオプションでは、JAX-WS注釈仕様を使用したJava注釈により、WebLogic Serverへのデプロイがサポートされています。

Java EE 6 (JAX-WS RIのサポート付き)

JAX-WS参照実装をサポートする任意のコンテナをデプロイするためのJAX-WS Webサービスを生成します。JAX-WS参照実装の詳細は、http://jax-ws.java.net/index.htmlを参照してください。

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

Javaクラスへの注釈の入力時に、Webサービスのコード・インサイトによって注釈が補完されます。このツールは、XMLエディタでWSDLドキュメントに対しても使用できます(「ソース」タブでの入力時)。

コード・インサイトが反応する速度を構成できます。JDeveloperで「コード・インサイト」ページにアクセスするには、「ツール」→「プリファレンス」→「コード・エディタ」→「コード・インサイト」を選択します。

ソース・エディタで注釈を追加してJavaクラスからJAX-WS Webサービスを作成する場合、コード・インサイト機能であるクイック修正とコード・アシストを使用すると便利です。

たとえば、@WebService注釈を手動で追加してJavaクラスからWebサービスを作成する場合、注釈の下に波線が表示されます。監査修正アイコンをクリックし、「Webサービス用のプロジェクトの構成」を選択します。

「デプロイメント・プラットフォームの選択」ダイアログで、サービスに対して次のいずれかのJAX-WSプラットフォームを選択します。

- Java EE 6 (JAX-WS注釈のサポート付き)。この場合、次が追加されます。

- クラスに対するimport javax.jws.WebService;文

- プロジェクトに対するweb.xmlファイル

- Java EE 6 (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クラスでJavaクラスの名前を変更する場合、監査修正アイコンをクリックし、不一致を調整する方法を選択します。

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

Universal Description, Discovery and Integration (UDDI)は、Webサービスを支える標準およびプロトコルの1つです。これによって、Webサービスに関する情報を公開および検出するための共通の標準が提供されます。また、UDDIブラウザが付属しており、指定した検索基準を使用してUDDIレジストリを検索し、WSDLにより記述されたWebサービスを検出できます。UDDIの仕様を含む詳細は、UDDI OASIS標準(http://uddi.xml.org/)を参照してください。

次の項では、UDDIレジストリのWebサービスの使用方法について説明します。

- 第23.3.1項「UDDIレジストリ接続の定義方法」

- 第23.3.2項「UDDIレジストリ接続のビューの選択に関する必知事項」

- 第23.3.3項「UDDIレジストリのWebサービスの検索方法」

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

- 第23.3.5項「UDDIレジストリのWebサービスのレポートの表示方法」

- 第23.3.6項「UDDIレジストリへのWebサービスの公開方法」

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

UDDIレジストリへの接続を定義することで、たとえば、社内のUDDIレジストリを参照できます。また、定義したUDDIレジストリ接続はすべて、どのワークスペースまたはプロジェクトからでもアクセスできます。

UDDIの仕様を含む詳細は、UDDI OASIS標準(http://uddi.xml.org/)を参照してください。

後続の項では、UDDIレジストリ接続の定義方法について説明します。

- 第23.3.1.1項「UDDIレジストリ接続の作成」

- 第23.3.1.2項「UDDIレジストリ接続の編集」

- 第23.3.1.3項「UDDIレジストリ接続のビューの変更」

- 第23.3.1.4項「UDDIレジストリ接続のリフレッシュ」

- 第23.3.1.5項「UDDIレジストリ接続の削除」

23.3.1.1 UDDIレジストリ接続の作成

パブリックまたはプライベート(社内)であるUDDIレジストリに対する新規接続を作成できます。UDDIレジストリ接続は、「リソース」ウィンドウの「接続」パネルにリストされます。

UDDIレジストリ接続を作成する手順は次のとおりです。

1. 「アプリケーション」ウィンドウで、プロジェクトを選択します。

2. 「ファイル」→「新規」→「ギャラリから」を選択して「新規ギャラリ」を開きます。

3. 「カテゴリ」ツリーで、「ビジネス層」を開いて「Webサービス」を選択します。

4. 「項目」リストで「UDDIレジストリ接続」を選択し、「OK」をクリックして、「UDDIレジストリ接続の作成」ウィザードを起動します。
詳細を参照するには、「UDDIレジストリ接続の作成」ウィザードで[F1]を押すか、「ヘルプ」をクリックします。

23.3.1.2 UDDIレジストリ接続の編集

既存のUDDIレジストリ接続を編集できます。たとえば、接続の名前を変更したり、照会エンドポイントのURLを変更します。

UDDIレジストリ接続を編集する手順は次のとおりです。

1. メイン・メニューで、「ウィンドウ」→「リソース」を選択します。デフォルトでは、「リソース」ウィンドウは「JDeveloper」ウィンドウの右側に表示されます。

2. 「リソース」ウィンドウの「IDE接続」で、「UDDIレジストリ」を開きます。

3. 編集するUDDIレジストリ接続のポップアップ・メニューから「プロパティ」を選択します。
「UDDIレジストリ接続の編集」ウィザードが起動します。

詳細を参照するには、「UDDIレジストリ接続の編集」ウィザードで[F1]を押すか、「ヘルプ」をクリックします。

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

WebサービスがUDDIレジストリにリストされる順序は、カテゴリ・ビューからビジネス・ビューへ、またはビジネス・ビューからカテゴリ・ビューからへ変更できます。詳細は、第23.3.2項「UDDIレジストリ接続のビューの選択に関する必知事項」を参照してください。

UDDIレジストリ接続のビューを変更する手順は次のとおりです。

1. メイン・メニューで、「ウィンドウ」→「リソース」を選択します。デフォルトでは、「リソース」ウィンドウは「JDeveloper」ウィンドウの右側に表示されます。

2. 「リソース」ウィンドウの「IDE接続」で、「UDDIレジストリ」を開きます。

3. 編集するUDDIレジストリ接続のポップアップ・メニューから「レンダー・ビジネス・パースペクティブ」または「レンダー・カテゴリ・パースペクティブ」を選択します。

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

接続の下に格納されている情報を最新にするために、UDDIレジストリ接続をリフレッシュできます。

UDDIレジストリ接続をリフレッシュする手順は次のとおりです。

1. メイン・メニューで、「ウィンドウ」→「リソース」を選択します。デフォルトでは、「リソース」ウィンドウは「JDeveloper」ウィンドウの右側に表示されます。

2. 「リソース」ウィンドウの「IDE接続」で、「UDDIレジストリ」を開きます。

3. リフレッシュするUDDIレジストリ接続のポップアップ・メニューから「リフレッシュ」を選択します。

23.3.1.5 UDDIレジストリ接続の削除

不要になったUDDIレジストリ接続は、「リソース」ウィンドウから削除できます。

UDDIレジストリ接続を削除する手順は次のとおりです。

1. メイン・メニューで、「ウィンドウ」→「リソース」を選択します。デフォルトでは、「リソース」ウィンドウは「JDeveloper」ウィンドウの右側に表示されます。

2. 「リソース」ウィンドウの「IDE接続」で、「UDDIレジストリ」を開きます。

3. 削除するUDDIレジストリ接続のポップアップ・メニューから「削除」を選択します。

4. 接続の削除を確認するメッセージが表示されます。「はい」をクリックします。

23.3.2 UDDIレジストリ接続のビューの選択に関する必知事項

第23.3.1項「UDDIレジストリ接続の定義方法」に示すように、接続を作成する場合、レジストリのWebサービスをビジネス・ビューとカテゴリ・ビューのどちらに表示するか尋ねられます。選択するビューにより、レジストリのサービスを検索する方法が決まります。

23.3.2.1 ビジネス・ビューの選択

UDDIレジストリには、Webサービスの情報を分類するための次の4種類のデータ構造が含まれます。

- ビジネス・エンティティ: Webサービスを提供するビジネスの情報を含む最上位レベルのデータ構造を定義します。Webサービスが見つかると、「リソース」ウィンドウでビジネスがUDDIブラウザに追加されます。

- ビジネス・サービス: サービス・ファミリの説明的な情報が含まれます。名前や簡単な説明およびカテゴリ情報があります。

- バインディング・テンプレート: Webサービス・エントリ・ポイント、およびインタフェース仕様への参照に関する情報が含まれます。

- tModel: Webサービスの技術仕様を表します。Webサービスの検索ウィザードでWebサービスが見つかると、そのtModelと互換性を持つWebサービスが他にも表示されます。

「ビジネス・ビュー」を選択すると、サービスは「ビジネス・エンティティ」および「ビジネス・サービス」の下にリストされます。

23.3.2.2 カテゴリ・ビューの選択

「カテゴリ・ビュー」を選択すると、次の1つ以上のカテゴリを使用してWebサービスを検索できます。

- ISO 3166: 国際標準化機構(ISO) 3166標準コードを使用して場所で検索します。

- NAICS: 北米産業分類システム(NAICS: North American Industry Classification System)を使用して産業のタイプを指定します。

- SIC: 標準産業分類(SIC)を使用して産業のタイプを指定します。

- UDDIタイプ: UDDIタイプを使用して検索します。

- UDDI WSDLタイプ: UDDI WSDLタイプを使用して検索します。

- UNSPSC: United Nations Standard Products and Services Code (UNSPC)を使用してサービスのタイプで検索します。

名前で検索するときは、名前全体または名前の一部を入力でき、ワイルドカードも使用できます。名前が検索基準と一致するtModelが結果として返されます。同じtModelを含むWebサービスが複数ある場合は、それらがウィザードに表示されるので、要件に最も適したサービスを選択できます。

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

Webサービスの「リソース」ウィンドウでUDDIレジストリ接続を検索できます。

注意:

トップ・ダウンWebサービスを作成する場合、Webサービスの検索ウィザードを使用して、「WSDLからJava Webサービスを作成」ウィザードからUDDIレジストリ接続を検索できます。

UDDIレジストリのWebサービスを検索するには、次のようにします。

1. 必要に応じて、UDDIレジストリ接続を作成します。詳細は、第23.3.1.1項「UDDIレジストリ接続の作成」を参照してください。

2. 「リソース」ウィンドウで、Webサービスを検索します。詳細は、第3.7項「「リソース」ウィンドウの操作」を参照してください。

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

「リソース」ウィンドウでUDDIレジストリ接続のWebサービスに対するプロキシを作成できます。

注意:

Webサービスに対するプロキシを作成できるのは、サービスにWSDLリンクが使用される場合のみです。これを確認するには、Webサービス・ポートを開き、レポートの「tModelインスタンス」セクションの「サマリーの説明」がwsdl linkであることを確認します。

UDDIレジストリで検索したWebサービスを使用するためのプロキシを生成する手順は次のとおりです。

1. 「リソース」ウィンドウを開きます。
メイン・メニューで、「ウィンドウ」→「リソース」を選択します。デフォルトでは、「リソース」ウィンドウは「JDeveloper」ウィンドウの右側に表示されます。

2. 目的のWebサービスへ移動するか、これを検索します。

3. サービス・エンドポイント(ポート)に移動します。

4. サービスを右クリックし、「Webサービス・プロキシの生成」を選択して「Webサービス・プロキシ」ウィザードを起動します。
詳細は、随時[F1]を押すか、ウィザード内で「ヘルプ」をクリックしてください。

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

UDDIレジストリのWebサービスのレポートを表示できます。

UDDIレジストリのWebサービスのレポートを表示する手順は次のとおりです。

1. 「リソース」ウィンドウを開きます。
メイン・メニューで、「ウィンドウ」→「リソース」を選択します。デフォルトでは、「リソース」ウィンドウは「JDeveloper」ウィンドウの右側に表示されます。

2. 目的のWebサービスへ移動するか、これを検索します。

3. サービスを右クリックして「レポートの表示」を選択します。
ソース・エディタにWebサービスのレポートが表示されます。

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

「アプリケーション・サーバー」ウィンドウでレジストリへの接続を介してUDDIレジストリにWebサービスを公開できます。UDDIレジストリにサービスを公開する前に、リソース・カタログにレジストリへの接続がすでに存在する必要があります。詳細は、第23.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]を押すか、「ヘルプ」をクリックします。

23.4 JAX-WS Webサービスおよびクライアントの作成

JDeveloperを使用してJAX-WS Webサービスおよびクライアントを作成するには、次のいずれかを実行します。

- 第23.4.1項「JAX-WS Webサービスの作成方法(ボトムアップ)」の説明に従って、JavaクラスおよびEJBのリモート・インタフェースからJAX-WS Webサービスを作成します。

- 第23.4.2項「WSDLからのJAX-WS Webサービスの作成方法(トップダウン)」の説明に従って、JAX-WS Webサービスを、WSDLから始めてトップ・ダウンWebサービスとして作成します。

- 第23.4.3項「JAX-WS Webサービス・クライアントの作成方法」の説明に従って、「Webサービス・クライアントおよびプロキシの作成」ウィザードを使用してサービスにアクセスするためのJAX-WSクライアントおよびプロキシ・クラスを作成します。

- 第23.4.4項「Webサービスの原子性トランザクションの使用方法」の説明に従って、Webサービス実装の原子性トランザクションを有効にします。

- 第23.4.5項「SOAP over JMSトランスポートの使用方法」の説明に従って、SOAP over JMSトランスポートを使用して、HTTP接続ではなくJMS宛先を使用して通信します。

- 第23.4.6項「WSDLファイルの管理方法」の説明に従って、WSDLファイルを作成、表示および保存します。

- 第23.4.7項「JAX-WS Webサービスの編集方法」および第23.4.8項「JAX-WS Webサービスの削除方法」の説明にそれぞれ従って、JAX-WS Webサービスを編集または削除します。

23.4.1 JAX-WS Webサービスの作成方法(ボトムアップ)

Webサービスは、トップ・ダウンとボトム・アップという2つの開発方式を使用して作成できます。ボトム・アップ開発とは、基礎となるJava実装からSOAPを使用してWebサービスを開発するプロセスを表します。

次の各項では、様々なタイプのWebサービスをボトム・アップ方式で生成する方法について説明します。

- 第23.4.1.1項「Java Webサービスの作成」

- 第23.4.1.2項「Webサービス注釈の使用」

- 第23.4.1.3項「「プロパティ」ウィンドウの使用」

- 第23.4.1.4項「TopLinkデータベースWebサービス・プロバイダの作成」

- 第23.4.1.5項「ソースからのWebサービスの再生成」

- 第23.4.1.6項「ハンドラの使用」

- 第23.4.1.7項「オーバーロード・メソッドの処理」

詳細の参照先は、次のとおりです。

- WSDLから開始するトップダウン開発の詳細は、第23.4.2項「WSDLからのJAX-WS Webサービスの作成方法(トップダウン)」を参照してください。

- Webサービスの原子性トランザクションの使用の詳細は、第23.4.4項「Webサービスの原子性トランザクションの使用方法」を参照してください。

- SOAP over JMSトランスポートの使用の詳細は、第23.4.5項「SOAP over JMSトランスポートの使用方法」を参照してください。

23.4.1.1 Java Webサービスの作成

Webサービスは、次のものから作成できます。

- Javaクラス

- EJBのリモート・インタフェース

Webサービス作成公開ウィザードによってデプロイメント・ファイルは自動的に作成されるため、Webサービスの作成が済んだら、後はこれをデプロイするだけです。

始める前に:

コンテキスト・ルートをまだ設定していない場合は、Webサービスの適切なコンテキスト・ルートを設定します。詳細は、第23.2.2項「Webサービスのコンテキスト・ルートの設定方法」を参照してください。

Java Webサービスを作成する手順は次のとおりです。

1. 「アプリケーション」ウィンドウで、Webサービスの作成元のJavaクラスまたはEJBが含まれるプロジェクトを選択します。

2. 「ファイル」→「新規」→「ギャラリから」を選択して「新規ギャラリ」を開きます。

3. 「カテゴリ」リストで「ビジネス層」を開き、「Webサービス」を選択します。

4. 「項目」リストで「Java Webサービス」を選択し、「OK」をクリックして、「Java Webサービスの作成」ウィザードを起動します。
ウィザードの操作の詳細なヘルプを参照するには、ウィザード内で[F1]を押すか「ヘルプ」をクリックします。

また、Webサービスの作成元として使用するJavaクラスを右クリックし、「Webサービスの作成」を選択して、「Java Webサービスの作成」ウィザードを起動することもできます。

注意:

「デプロイメント・プラットフォームの選択」ページが表示されるのは、プロジェクトでWebサービスが初めて作成される場合のみです。その後、同じプロジェクトで追加されるWebサービスにはすべて同じバージョンが使用されます。詳細は、第23.2.5項「デプロイメント・プラットフォームの選択方法」を参照してください。

「Java Webサービスの作成」ウィザードを使用するときに、存在しないJavaクラスのクラス名を入力すると、ウィザードには、Webサービスの実装クラスとして使用するString helloWorld(String)メソッドが1つ含まれたデフォルトのJavaクラスを生成するためのオプションが表示されます。デフォルトのJavaクラスの生成を拒否すると、有効なクラス名の選択を求めるメッセージが表示されます。

23.4.1.2 Webサービス注釈の使用

JSR-181仕様はWebサービスのメタデータを規定したもので、これにより、注釈を宣言的に使用して簡単にWebサービスを作成および管理することが可能になります。注釈は、メソッドおよびクラスでWebサービスのエンドポイントとしてメソッドを公開するために使用します。

注釈は、手動でクラスに追加するか、JDeveloperを使用してWebサービスの作成時にクラスに追加するか、または「Webサービスの編集」ダイアログを使用してWebサービスの編集時に追加できます。

詳細は、次のリファレンスを参照してください。

- JSR-181仕様: http://jcp.org/en/jsr/detail?id=18

- JAX-WS仕様: http://jcp.org/aboutJava/communityprocess/mrel/jsr224/index2.html

- JAX-RS仕様: http://jax-rs-spec.java.net

- WebLogic Serverで使用可能なJWS注釈の詳細は、Oracle WebLogic Server WebLogic Webサービス・リファレンスのJWS注釈リファレンスに関する項を参照してください。

注意:

「Webサービスの編集」ダイアログを使用して注釈を削除すると、手動で入力した注釈もすべて削除されます。

Webサービス注釈を使用する手順は次のとおりです。

1. ソース・エディタでJavaクラスを開きます。

2. 注釈を追加する行で、@とタイプして2、3秒待機します。
「コード・インサイト」に可能な値が表示されます。詳細は、第23.2.6項「Webサービスのコード・インサイトの使用方法」を参照してください。

23.4.1.3 「プロパティ」ウィンドウの使用

「プロパティ」ウィンドウを使用して、Webサービス・プロジェクトに@WebService注釈とサポート・ファイルを追加できます。

「プロパティ」ウィンドウでJAX-WS Webサービスを作成する手順は次のとおりです。

1. ソース・エディタでWebサービス・クラスを開いた状態で、「ウィンドウ」→「プロパティ」を選択して「プロパティ」ウィンドウを開きます。
詳細を参照するには、「プロパティ」ウィンドウ内で[F1]を押すか「ヘルプ」をクリックします。

2. publicクラス内にカーソルを置いた状態で、「プロパティ」ウィンドウのJAX-WSノードにナビゲートします。

3. 「WebサービスBeanクラス」を選択します。
デプロイメント計画プラットフォームの選択ダイアログ・ボックスが表示されます。デプロイメント・プラットフォームの選択の詳細は、第23.2.5項「デプロイメント・プラットフォームの選択方法」を参照してください。

4. デプロイメント・プラットフォームを選択し、「OK」をクリックします。
javax.jws.WebService注釈がインポートされてWebサービスのpublicクラスに追加されます。また、必要なデプロイメント・ファイル(web.xmlなど)がプロジェクトに追加されます。

23.4.1.4 TopLinkデータベースWebサービス・プロバイダの作成

「TopLink DB Webサービス・プロバイダの作成」ウィザードを使用すると、TopLinkデータベース用のJAX-WS Webサービス・プロバイダを構築し、次のいずれかタスクを実行できます。

- ストアド・プロシージャおよびファンクションへのアクセス

- SQL問合せの実行

- 表に対するCRUD操作の実行

選択したサービスのタイプに基づいて、Oracle WebLogic Serverなどのアプリケーション・サーバーにデプロイできるWebサービス・プロバイダおよびWSDLドキュメントがウィザードによって生成されます。TopLink Webサービス・プロバイダのデプロイは、他のJ2EE Webアプリケーションのデプロイと似ています。詳細は、第23.7項「Webサービスのデプロイ」を参照してください。

次の点に注意する必要があります。

- JAX-WS Webサービス・プロバイダが生成されます。

- TopLink Webサービス・プロバイダを編集する場合、データベース接続が存在することを確認してください。存在しない場合、エラー・メッセージが表示されます。データベース接続が削除されている場合は新規に作成し、削除前と同じ名前を付けます。

プロジェクトからTopLink DB Webサービス・プロバイダを作成する手順は次のとおりです。

1. 「アプリケーション」ウィンドウで、プロジェクトを選択します。

2. 「ファイル」→「新規」→「ギャラリから」を選択して「新規ギャラリ」を開きます。

3. 「カテゴリ」リストで「ビジネス層」を開き、「Webサービス」を選択します。「項目」リストで「TopLink DB Webサービス・プロバイダ」をダブルクリックして、TopLink Webサービス・プロバイダの作成ウィザードを起動します。
ウィザードの操作の詳細なヘルプを参照するには、ウィザード内で[F1]を押すか「ヘルプ」をクリックします。

23.4.1.5 ソースからのWebサービスの再生成

Webサービスは再生成が必要な場合があります。たとえば、サービスの最初の生成元のソースが変更された場合などです。

注意:

Webサービスを再生成すると、最後に生成されてからWSDLに対して行った変更がすべて破棄されます。

Webサービス・クライアントを再生成した後、Webサービスに対してクライアントを再生成する必要がある場合があります。そうしない場合、コンパイル・エラー(クライアントがWebサービスと同じプロジェクトにある場合)や、ランタイム・エラー(クライアントがWebサービスと別のプロジェクトにある場合)が発生する場合があります。

注釈を使用していないときに基礎となるクラスのメソッドの名前を変更する場合、サービスを再生成すると、メソッドが選択されていないというエラー・メッセージが表示されます。これは、メソッドがネームスペースにより追跡され、ネームスペースを変更するとJDeveloperで再生成の対象を決定できなくなるためです。このエラーを修正するには、Webサービス・コンテナをダブルクリックしてWebサービス・エディタを開き、「メソッド」ページに移動してWebサービスの基にするメソッドを選択する必要があります。

ソースからWebサービスを再生成するには、次のようにします。

1. 「アプリケーション」ウィンドウで、再生成するWebサービス・コンテナを右クリックします。

2. ポップアップ・メニューから「ソースからWebサービスを再生成」を選択します。
サービスが自動的に再生成され、最後にサービスを生成した後にWSDLに加えた変更はすべて失われます。

23.4.1.6 ハンドラの使用

JDeveloperでは、ハンドラ・クラスを指定してWebサービス・メッセージで編集できます。ハンドラは、初期設定済パラメータ、SOAPロールまたはSOAPヘッダーを使用できます。SOAPハンドラの作成の詳細は、Oracle WebLogic Server JAX-WS Webサービスの開発のSOAPメッセージ・ハンドラの作成および使用に関する項を参照してください。

ハンドラを定義するには、次のようにします。

1. Webサービスを作成します。詳細は、第23.4.1.1項「Java Webサービスの作成」を参照してください。
または

Webサービス・エディタを開きます。詳細は、第23.4.7項「JAX-WS Webサービスの編集方法」を参照してください。

2. 「ハンドラ詳細」ページで、使用する値を入力します。
詳細を参照するには、ダイアログ内で[F1]を押すか「ヘルプ」をクリックします。

23.4.1.7 オーバーロード・メソッドの処理

Webサービスの基として使用するJavaクラスにオーバーロード・メソッドが含まれている場合、JDeveloperではそのメソッドが自動処理されます。

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 WebLogic Server JAX-WS Webサービスの開発のパブリック操作としてのJWSメソッドの公開の指定(@WebMethodおよび@OneWay注釈)に関する項を参照してください。

23.4.2 WSDLからのJAX-WS Webサービスの作成方法(トップダウン)

JDeveloperでは、トップ・ダウンWebサービスを開発(つまり、WSDLから開始)できます。JDeveloperにより、サービス実装とそのデプロイメント・ディスクリプタが生成されます。ファイル・システム内でWSDLを参照するか、「リソース」ウィンドウのUDDIレジストリ接続でWebサービスを検索します。

WSDLからJAX-WS Webサービスを作成する(トップダウン)手順は次のとおりです。

1. 「アプリケーション」ウィンドウで、Webサービスを作成するプロジェクトを選択します。

2. 「ファイル」→「新規」→「ギャラリから」を選択して「新規ギャラリ」を開きます。

3. 「カテゴリ」リストで「ビジネス層」を開き、「Webサービス」を選択します。「項目」リストで「WSDLからJava Webサービス」をダブルクリックして、「WSDLからJava Webサービスを作成」ウィザードを起動します。
ウィザードの操作の詳細なヘルプを参照するには、ウィザード内で[F1]を押すか「ヘルプ」をクリックします。

JAX-WS Webサービスが作成され、Java実装クラスがエディタで自動的に開かれます。

注意:

既存のWSDLを右クリックし、ポップアップ・メニューから「Webサービスの作成」を選択して、WSDLからWebサービスを作成することもできます。また、WSDLから新しいWebサービス・プロジェクトを作成するオプションもあります。

23.4.3 JAX-WS Webサービス・クライアントの作成方法

JDeveloperでは、「Webサービス・クライアントおよびプロキシの作成」ウィザードを使用してWebサービスにアクセスするためのJAX-WSクライアントおよびプロキシ・クラスを作成することにより、アプリケーションでのWebサービスの使用が容易になります。このウィザードは、Webサービスを検索または作成するときに起動できます。または直接ウィザードを起動して、WebサービスのURLを入力したり「Webサービスの検索」ウィザードを使用してUDDIレジストリ内のWebサービスを検索することもできます。

RPCまたはドキュメント・スタイルのWebサービスについては、適切なタイプのプロキシが自動的に生成されます。

注意:

JAX-WS Webサービスは、RPCスタイルをサポートしていません。

詳細は、次のリソースを参照してください。

- Webサービス・クライアントの開発の詳細は、Oracle WebLogic Server JAX-WS Webサービスの開発の基本的なJAX-WS Webサービス・クライアントの開発に関する項を参照してください。

- Webサービスおよびクライアントの管理の詳細は、Webサービスの管理を参照してください。

次の各項では、JAX-WS Webサービス・クライアントを作成および使用する方法について説明します。

- 第23.4.3.1項「クライアントおよびプロキシ・クラスの作成」

- 第23.4.3.2項「JAX-WS Webサービス・クライアント・アプリケーションの開発」

- 第23.4.3.3項「@WebServiceRef注釈を使用したWebサービスの参照」

- 第23.4.3.5項「Webサービス・クライアントおよびプロキシ・クラスの再生成」

- 第23.4.3.6項「Webサービス・クライアントの編集」

- 第23.4.3.7項「Webサービス・クライアントの削除」

Webサービス・クライアントの作成に使用するWSDLの表示および管理方法を説明している次の各項も参照してください。

- 第23.4.6.5項「Webサービス・クライアントの作成に使用されたWSDLの表示」

- 第23.4.6.6項「WSDLのローカル・コピーのリフレッシュとWebサービス・クライアント・プロキシおよびクラスの再生成」

- 第23.4.6.7項「実行時にクライアントによって使用されるWebサービスWSDLの更新」

23.4.3.1 クライアントおよびプロキシ・クラスの作成

JDeveloperを使用して、Webサービスにアクセスしてそのメソッドをアプリケーションで呼び出すために、クライアントおよびプロキシ・クラスを自動的に作成します。ウィザードを使用して、必要に応じて、非同期メソッドの生成、ポリシーのアタッチおよびSOAPハンドラの定義を行うこともできます。

「Webサービス・クライアントおよびプロキシの作成」ウィザードを使用して、Webサービスにアクセスするためのクライアントおよびプロキシ・クラスを作成できます。公開されているポートごとに新規サービス・クラス(JAX-WS)およびサービス・インタフェースが生成され、これらが「アプリケーション」ウィンドウにリストされます。生成されたクライアント・ファイルport-nameClient.javaはソース・エディタで開かれます。生成後は、アプリケーションでメソッドを呼び出すことができます。

注意:

場合によっては、インターネット上でアクセスするWebサービス用として作成したか、UDDIレジストリを使用して作成したWebサービス・クライアントを実行すると、エラーが発生する可能性があります。Webサービス標準は常に進化しているため、検索したWebサービスが最新の標準に準拠していない場合や、これらが準拠する標準が、クライアントが実行されているサーバーでサポートされている標準と互換性がない場合があります。JDeveloperで作成したWebサービス・クライアントによってエラーが返された場合は、エラー・メッセージを確認し、同じサービスを提供するがサーバーと互換性があり問題なく動作する別のWebサービスに対してクライアントを作成することを検討してください。

「Webサービス・クライアントおよびプロキシの作成」ウィザードにアクセスするには、次のいずれかの方法を使用します。ウィザードの操作のヘルプを参照するには、ウィザード内で[F1]を押すか「ヘルプ」をクリックします。

23.4.3.1.1 Webサービスにアクセスするためのクライアントおよびプロキシ・クラスの作成

JDeveloperの外部で定義されているWebサービスのクライアントおよびプロキシ・クラスは、Webサービス・クライアント・プロキシの作成ウィザードを起動してそのWebサービスのWSDLを指定することで生成できます。

Webサービスにアクセスするためのクライアントおよびプロキシ・クラスを作成する手順は次のとおりです。

1. 「アプリケーション」ウィンドウで、使用するプロジェクトを選択します。

2. 「ファイル」→「新規」→「ギャラリから」を選択して「新規ギャラリ」を開きます。

3. 「カテゴリ」リストで、「Webサービス」を選択します。

4. 「項目」リストで「Webサービス・クライアントおよびプロキシ」をダブルクリックし、「Webサービス・クライアントおよびプロキシの作成」ウィザードを起動します。
詳細を参照するには、「Webサービス・クライアントおよびプロキシの作成」ウィザードで[F1]を押すか、「ヘルプ」をクリックします。

23.4.3.1.2 JDeveloperで定義されたWebサービスにアクセスするためのクライアントおよびプロキシ・クラスの作成

現在JDeveloperで定義されているWebサービスのクライアントおよびプロキシ・クラスは、「アプリケーション」ウィンドウで生成できます。

JDeveloperで定義されたWebサービスにアクセスするためのクライアントおよびプロキシ・クラスを作成するには、次のようにします。

「アプリケーション」ウィンドウでWebサービス・コンテナを右クリックし、「Webサービス注釈のクライアントの作成」を選択します。

「Webサービス・クライアントおよびプロキシの作成」ウィザードが開き、選択したWebサービス・プロジェクトが移入されます。

注意:

JavaBeanパラメータを使用するEJB Webサービスのクライアントおよびプロキシ・クラスを作成する場合は、JavaBeanにjava.io.Serializableインタフェースを実装する必要があります。

23.4.3.2 JAX-WS Webサービス・クライアント・アプリケーションの開発

JDeveloperでは、Webサービスに対するプロキシを定義する多数のファイルが生成されます。生成されたファイルを使用して、次のタイプのWebサービス・クライアント・アプリケーションを開発できます。

- スタンドアロン・クライアント・アプリケーション

- Java Standard Edition (SE)クライアント・アプリケーション

- Oracle WebLogic ServerにデプロイされるJava EEコンポーネント

注意:

次の手順以外にも、Webサービス・インジェクション(@WebServiceRefメソッドを使用)を使用して、Webサービスの参照を定義し、Webサービス・クライアントでインジェクション・ターゲットを識別できます。詳細は、第23.4.3.3項「@WebServiceRef注釈を使用したWebサービスの参照」を参照してください。

23.4.3.2.1 スタンドアロン・クライアント・アプリケーションの開発

スタンドアロン・クライアント・アプリケーションは、その最もシンプルな形式において、javaコマンドを使用して呼び出すMain publicクラスを持つJavaプログラムです。これは、WebLogic Serverからは完全に独立して動作します。

スタンドアロン・クライアント・アプリケーションを開発する手順は次のとおりです。

1. port_nameClient.javaと呼ばれるクライアント・プロキシ・クラスをソース・エディタで開きます。
このファイルは、Webサービス・クライアント・プロキシを最初に作成するときに自動的に開きます。クラスを再度開くには、クライアント・プロキシ・コンテナを右クリックし、「クライアント・クラスに移動」を選択するか、「アプリケーション」ウィンドウでそのままファイルをダブルクリックします。

2. // Add your code to call the desired methodsというコメントを見つけて、Webサービスの呼出しに適したコードを追加します。

3. クライアントを実行します。

23.4.3.2.2 Java Standard Edition (SE)クライアント・アプリケーションの開発

生成されたプロキシ・クラスをJava Standard Edition (SE)アプリケーションの一部として組み込み、これらを参照してリモートWebサービスにアクセスします。

Java SEクライアント・アプリケーションを開発する手順は次のとおりです。

1. 生成されたクライアント・プロキシ・クラスをJava SEアプリケーション・ソース・ディレクトリにコピーします。

2. port_nameClient.javaと呼ばれるメイン・クライアント・プロキシ・クラスをガイドとして使用し、アプリケーションからWebサービスへのアクセスに適したメソッドを追加します。

3. アプリケーションを実行します。

23.4.3.2.3 WebLogic ServerにデプロイされたJava EEコンポーネント・クライアント・アプリケーションの開発

このタイプのWebサービスは、EJB、サーブレット、または他のWebサービスなど、WebLogic ServerにデプロイされたJavaプラットフォーム、Enterprise Edition (Java EE)バージョン6コンポーネント内で動作します。したがって、JEE Webサービス・クライアント・アプリケーションはWebLogic Serverコンテナ内で動作します。

WebLogic ServerにデプロイされたJava EEコンポーネント・クライアント・アプリケーションを開発する手順は次のとおりです。

1. port_nameClient.javaと呼ばれるメイン・クライアント・プロキシ・クラスをソース・エディタで開きます。
このファイルは、Webサービス・クライアント・プロキシを最初に作成するときに自動的に開きます。クラスを再度開くには、クライアント・プロキシ・コンテナを右クリックし、「クライアント・クラスに移動」を選択するか、「アプリケーション」ウィンドウでそのままファイルをダブルクリックします。

2. Webサービスにアクセスして必要な操作を行うための独自のメソッドにメイン・メソッドを置き換えます。メイン・メソッドで生成されたコードをガイドとして使用できます。

3. JDeveloperで生成されたクライアント・モジュール・クラスの完全なセットをデプロイします。

4. Java EEアプリケーションでクライアント・プロキシ・クラスを参照します。

23.4.3.3 @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;
...

詳細は、Oracle WebLogic Server JAX-WS Webサービスの開発の@WebServiceRef注釈を使用したWebサービス参照の定義に関する項を参照してください。

23.4.3.4 Webサービス・クライアントでのWebサービスの原子性トランザクションの有効化

Webサービスの原子性トランザクションの詳細は、第23.4.4項「Webサービスの原子性トランザクションの使用方法」を参照してください。

Webサービス・クライアントのインジェクション可能なターゲットでWebサービスの原子性トランザクションを有効化できます。

Webサービス・クライアントのインジェクション可能なターゲットでWebサービスの原子性トランザクションを有効にするには、次のようにします。

1. ソース・エディタでWebサービス・クライアントを開きます。

2. @WebServiceRef注釈またはインジェクション可能なターゲットを右クリックし、メニューから「トランザクションの追加」を選択します。
@Transactional注釈がWebサービス・クライアントに追加されます。

3. 次のようにバージョンおよびフロー・タイプ値を指定できます。

@Transactional(version=Transactional.Version.[WSAT10|WSAT11|WSAT12|DEFAULT],
value=Transactional.TransactionFowType.[MANDATORY|SUPPORTS|NEVER])

構成オプションの詳細は、表23-4を参照してください。

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

Webサービス・クライアントおよびプロキシ・クラスは再生成が必要な場合があります。たとえば、Webサービスが前回の生成以降に更新された場合などです。

注意:

Webサービス・クライアントおよびプロキシ・クラスを再生成すると、クライアントが最後に生成されてからクラス、WSDLまたはサポート・ファイルに対して行った変更がすべて破棄されます。

Webサービス・クライアントおよびプロキシ・クラスを再生成するには、次のようにします。

次のように、「Webサービス・クライアントおよびプロキシ・エディタ」ウィザードに最後に定義された一連のプロパティや現在ローカルに格納されているWSDLを使用して、Webサービス・クライアントおよびプロキシ・クラスを迅速かつ簡単に再生成できます。

- 「アプリケーション」ウィンドウで、再生成するWebサービス・クライアント・ノードを右クリックして、ポップアップ・メニューから「Webサービス・プロキシの再生成」を選択します。
Webサービス・クライアント・クラス、WSDLおよびサポート・プロキシ・ファイルが再生成されます。

23.4.3.6 Webサービス・クライアントの編集

Webサービス・クライアントはWebサービス・クライアントおよびプロキシ・エディタを使用して編集できます。

Webサービス・クライアントを編集する手順は次のとおりです。

- 「アプリケーション」ウィンドウ内で、Webサービス・クライアント・コンテナをダブルクリックします。

- 「アプリケーション」ウィンドウ内でクライアントを右クリックし、「プロパティ...」を選択します。

ウィザードの操作のヘルプを参照するには、ウィザード内で[F1]を押すか「ヘルプ」をクリックします。

23.4.3.7 Webサービス・クライアントの削除

不要になったWebサービス・クライアントは、削除できます。

Webサービス・クライアントを削除する手順は次のとおりです。

1. 「アプリケーション」ウィンドウで、Webサービス・クライアント・コンテナを右クリックして「削除」を選択します。
「プロキシを削除しますか。」ダイアログが表示されます。

2. ダイアログ・ボックスで適切なファイルが選択されていることを確認します。「すべて選択」または「すべて選択解除」をクリックして、すべてのプロキシ・ファイルを選択または選択解除します。

3. 「OK」を選択します。
ファイルは永久に削除されます。

23.4.4 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 WebLogic Server JAX-WS Webサービスの開発のWebサービスの原子性トランザクションの使用に関する項を参照してください。

Webサービス実装の原子性トランザクションをクラス・レベルまたは同期メソッド(双方向メソッドの場合のみ)で有効にするには、次のいずれかの方法を使用します。

- @weblogic.wsee.wstx.wsat.Transactional注釈をJavaクラスに直接追加します。この場合、JDeveloperコード・インサイト機能が役に立ちます。詳細は、第23.2.6項「Webサービスのコード・インサイトの使用方法」を参照してください。

- 「プロパティ」ウィンドウを使用します(次の説明を参照)。

Webサービス・クライアントの原子性トランザクションを有効にするには、次のいずれかの方法を使用します。

- @WebServiceRef注釈またはWebサービスのインジェクション可能なターゲットを右クリックし、メニューから「トランザクションの追加」を選択し、@Transactional注釈を追加します。

- Webサービス・プロキシまたはWebサービス・ディスパッチの作成時のパラメータとしてweblogic.wsee.wstx.wsat.TransactionalFeatureを渡します。詳細は、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サービスの原子性トランザクションを構成する場合の有効な値の組合せの概要を示します。

表23-4 トランザクション構成

値

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サービス・クライアントのインジェクション可能なターゲットでWebサービスの原子性トランザクションを有効化できます。方法については、次の各項で説明します。

- 第23.4.4.1項「JavaクラスでのWebサービスの原子性トランザクションの有効化」

- 第23.4.4.2項「「プロパティ」ウィンドウでのWebサービスの原子性トランザクションの有効化」

- 第23.4.4.3項「Webサービス・クライアントのインジェクション可能なターゲットでのWebサービスの原子性トランザクションの有効化」

23.4.4.1 JavaクラスでのWebサービスの原子性トランザクションの有効化

JavaクラスでWebサービスの原子性トランザクションを有効化できます。

JavaクラスでWebサービスの原子性トランザクションを有効にするには、次のようにします。

1. ソース・エディタでWebサービス・クラスを開きます。

2. @Transactionalのように、注釈の入力を開始します。中断するか[Ctrl]キーと[Shift]キーを押しながら[Space]キーを押すと、ポップアップが表示され、文を正しく完成するためのエントリを選択できます。

3. 次のようにバージョンおよびフロー・タイプ値を指定できます。

@Transactional(version=Transactional.Version.[WSAT10|WSAT11|WSAT12|DEFAULT],
value=Transactional.TransactionFowType.[MANDATORY|SUPPORTS|NEVER])

23.4.4.2 「プロパティ」ウィンドウでのWebサービスの原子性トランザクションの有効化

「プロパティ」ウィンドウでWebサービスの原子性トランザクションを有効化できます。

「プロパティ」ウィンドウでWebサービスの原子性トランザクションを有効にするには、次のようにします。

1. ソース・エディタでWebサービス・クラスを開いた状態で、「ウィンドウ」→「プロパティ」を選択して「プロパティ」ウィンドウを開きます。
詳細を参照するには、「プロパティ」ウィンドウ内で[F1]を押すか「ヘルプ」をクリックします。

2. publicクラス@WebServiceまたはクラスの双方向メソッド行にカーソルを置いた状態で、「プロパティ」ウィンドウのJAX-WS拡張機能ノードにナビゲートします。

3. 「トランザクションの追加」を選択します。
「プロパティ」ウィンドウがリフレッシュされ、機能を有効化または無効化するためのオプションと、フロー・タイプおよびバージョンを設定するためのオプションが表示されます。構成オプションの詳細は、表23-4を参照してください。

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です。

23.4.4.3 Webサービス・クライアントのインジェクション可能なターゲットでのWebサービスの原子性トランザクションの有効化

Webサービス・クライアントのインジェクション可能なターゲットでWebサービスの原子性トランザクションを有効化できます。

Webサービス・クライアントのインジェクション可能なターゲットでWebサービスの原子性トランザクションを有効にするには、次のようにします。

1. ソース・エディタでWebサービス・クライアントを開きます。

2. @WebServiceRef注釈またはインジェクション可能なターゲットを右クリックし、メニューから「トランザクションの追加」を選択します。
@Transactional注釈がWebサービス・クライアントに追加されます。

3. 次のようにバージョンおよびフロー・タイプ値を指定できます。

@Transactional(version=Transactional.Version.[WSAT10|WSAT11|WSAT12|DEFAULT],
value=Transactional.TransactionFowType.[MANDATORY|SUPPORTS|NEVER])

構成オプションの詳細は、表23-4を参照してください。

23.4.5 SOAP over JMSトランスポートの使用方法

通常、Webサービスとクライアントの通信には、接続プロトコルとしてSOAP over HTTP/Sが使用されます。しかし、クライアント・アプリケーションがJMSを使用してトランスポートを行うようにWebLogic Webサービスを構成できてしまいます。

SOAP over JMSトランスポートを使用すれば、WebサービスとクライアントがHTTP接続ではなくJMS宛先を使用して通信するようになるため、次の利点があります。

- 信頼性

- スケーラビリティ

- サービス品質

Webサービスの信頼性のあるメッセージングでは、WebLogic Serverが停止したときにキューに入っていたメソッド呼出しは、WebLogic Serverの再起動後すぐに処理されます。Webサービスの呼出しでは、クライアントはレスポンスを待たずに実行を続けることができます。SOAP over JMSトランスポートはHTTP/Sと比較すると、オーバーヘッドが少し多く、プログラミングの複雑性も増します。

WebLogic Serverでは、指定されたトランスポートごとに追加のポートがWSDLに生成されます。そのため、Webサービス(JMS、HTTPまたはHTTPS)の呼出し時に使用可能なトランスポートの選択肢をクライアント・アプリケーションに提供する場合は、各トランスポートを明示的に構成する必要があります。

注意:

SOAP over JMSトランスポートは、Webサービス機能の「信頼性のあるメッセージング」および「HTTPトランスポート固有のセキュリティ」との互換性はありません。

Javaクラス、「プロパティ」ウィンドウ、またはWebサービス・クライアントでSOAP over JMSトランスポートを有効化できます。方法については、次の各項で説明します。

- 第23.4.5.1項「JMSトランスポートを使用したWebサービスの開発」

- 第23.4.5.2項「「プロパティ」ウィンドウでのJMSトランスポートの有効化」

- 第23.4.5.3項「JMSトランスポートを使用したWebサービス・クライアントの開発」

SOAP over JMSトランスポートの詳細は、Oracle WebLogic Server JAX-WS Webサービスの開発のSOAP Over JMSトランスポートの使用に関する項を参照してください。

23.4.5.1 JMSトランスポートを使用したWebサービスの開発

JMSトランスポートを使用してWebサービスを開発するには、次のいずれかの方法を使用します。

- @com.oracle.webservices.api.jms.JMSTransportService注釈をJavaクラスに直接追加します。詳細は、Oracle WebLogic Server JAX-WS Webサービスの開発の@JMSTransportService注釈の使用に関する項を参照してください。

- 「プロパティ」ウィンドウを使用します。詳細は、第23.4.5.2項「「プロパティ」ウィンドウでのJMSトランスポートの有効化」を参照してください。

23.4.5.2 「プロパティ」ウィンドウでのJMSトランスポートの有効化

構成を単純化するために、「プロパティ」ウィンドウでJMSトランスポートを有効化できます。

「プロパティ」ウィンドウでJMSトランスポートを有効にする手順は次のとおりです。

1. ソース・エディタでWebサービス・クラスを開いた状態で、「ウィンドウ」→「プロパティ」を選択して「プロパティ」ウィンドウを開きます。
詳細を参照するには、「プロパティ」ウィンドウ内で[F1]を押すか「ヘルプ」をクリックします。

2. publicクラス@WebServiceまたはクラスの双方向メソッド行にカーソルを置いた状態で、「プロパティ」ウィンドウのJMSノードにナビゲートします。

3. 「JMS」を選択します。
「プロパティ」ウィンドウがリフレッシュされ、SOAP over JMSトランスポートを構成するためのオプションが表示されます。構成オプションの詳細は、表23-5を参照してください。

4. 必要に応じて、JMSトランスポートのプロパティを構成します。

JMSトランスポートを有効にすると、次の表に定義されているプロパティを構成できます。

表23-5 SOAP over JMSトランスポートの構成プロパティ

名前

説明

アクティブ化プロパティ

JMSプロバイダに渡されるアクティブ化構成プロパティ。アクティブ化プロパティを編集するには、「...」をクリックして、「プロパティの編集: アクティブ化プロパティ」ダイアログを開き、アクティブ化プロパティの「値」列に値を指定します。

サポートされているアクティブ化プロパティのリストは、Oracle WebLogic Server JAX-WS Webサービスの開発のJMSトランスポートのプロパティの構成に関する項を参照してください。

バインディング・バージョン

SOAP JMSバインディングのバージョン。この値は、このリリースのSOAP JMS 1.0に設定する必要があります。これは、com.oracle.webservices.api.jms.JMSConstants.SOAP11_JMS_BINDINGと同一です。

この値は、SOAPJMS_bindingVersion JMSメッセージ・プロパティにマップされます。

配信モード

リクエスト・メッセージが永続的であるかどうかを示す配信モード。有効な値は、PersistentおよびNon-Persistentです。この値のデフォルトはPersistentです。

宛先名

宛先キューまたはトピックのJNDI名。この値のデフォルトはcom.oracle.webservices.jms.RequestQueueです。

宛先タイプ

宛先タイプ。有効な値は、QueueまたはTopicです。この値のデフォルトはQueueです。

この値は、「アクティブ化プロパティ」フィールドのエントリとして指定されたdestinationType値をオーバーライドします(該当する場合)。

トピックは、一方向通信でのみサポートされています。

WSDLアクセスの有効化

HTTPを介してWSDLを公開するかどうかを指定するブール・フラグ。このフラグのデフォルトはtrueです。

ヘッダー・プロパティ

JMSヘッダー・プロパティ。各プロパティは、名前と値のペアを使用してセミコロン(;)で区切って指定します。例: name1=value1;...;nameN=valueN

メッセージ・プロパティ

JMSメッセージ・プロパティ。各プロパティは、名前と値のペアを使用してセミコロン(;)で区切って指定します。例: name1=value1;...;nameN=valueN

コネクション・ファクトリ

JMS接続を確立するために使用されるコネクション・ファクトリのJNDI名。この値のデフォルトはcom.oracle.webservices.jms.ConnectionFactoryです。

コンテキスト・パラメータ

JNDIプロパティ。各プロパティは、名前と値のペアを使用してセミコロン(;)で区切って指定します。例: name1=value1;...;nameN=valueN

これらのプロパティは、JNDIプロバイダのInitialContextコンストラクタに送信されるjava.util.Hashtableに追加されます。

コンテキスト・ファクトリ

JNDIルックアップの初期コンテキスト・ファクトリ・クラスの名前。この値は、java.naming.factory.initialプロパティにマップされます。この値のデフォルトはweblogic.jndi.WLInitialContextFactoryです。

URL

JNDIプロバイダのURL。この値のデフォルトはt3://localhost:7001です。

この値は、java.naming.provider.urlプロパティにマップされます。

接続当たりのMDB

リクエストされた宛先ごとに1つのリスニング・メッセージドリブンBean (MDB)を作成するかどうかを指定するブール・フラグ。この値のデフォルトはtrueです。

falseに設定すると、Webサービス・ポートごとに1つのリスニングMDBが作成され、そのMDBは他のポートによって共有できません。

メッセージ・タイプ

リクエスト・メッセージとともに使用するメッセージ・タイプ。有効な値は、BytesおよびTextです。この値のデフォルトはBytesです。

メッセージ・タイプの構成の詳細は、Oracle WebLogic Server JAX-WS Webサービスの開発のJMSメッセージ・タイプの構成に関する項を参照してください。

優先度

リクエストとレスポンスのメッセージに関連付けられるJMS優先度。この値は、0(優先度最低)から9(優先度最高)までの正の整数として指定します。デフォルト値は0です。

返信先の名前

レスポンス・メッセージが送信されるJMS宛先のJNDI名。

双方向操作の場合は、一時的なレスポンス・キューがデフォルトで生成されます。デフォルトの一時的なレスポンス・キューを使用すると、必要な構成が最小限に抑えられます。ただし、サーバーに障害が発生した場合は、レスポンス・メッセージが失われる可能性があります。

この属性により、クライアントは、応答を受信するためにデフォルトの一時的なキューまたはトピックを使用するのではなく、以前に定義された「永続的な」キューまたはトピックを使用できます。JMSレスポンス・キューの構成の詳細は、Oracle WebLogic Server JAX-WS Webサービスの開発のJMSレスポンス・キューの構成に関する項を参照してください。

この値は、リクエスト・メッセージのJMSReplyTo JMSヘッダーにマップされます。

プリンシパル名として実行

リスニングMDBを実行するために使用されるプリンシパル。

ロールとして実行

リスニングMDBを実行するために使用されるロール。

ターゲット・サービス

Webサービスのポート・コンポーネント名。この値は、サービス・リクエストをディスパッチするためにサービス実装によって使用されます。指定しない場合は、WSDLまたはjavax.jws.WebService注釈のサービス名が使用されます。

この値は、SOAPJMS_targetService JMSメッセージ・プロパティにマップされます。

有効時間

リクエスト・メッセージの存続期間(ミリ秒)。値が0の場合は、存続期間に制限がないことを示します。指定しない場合は、JMS定義のデフォルト値(0)が使用されます。

サービス側では、この値により各MDBトランザクションの有効期限も指定されます。

23.4.5.3 JMSトランスポートを使用したWebサービス・クライアントの開発

JMSトランスポートを使用してWebサービス・クライアントを開発するには、次のいずれかの方法を使用します。

- 次のいずれかの方法を使用して、Webサービス・クライアントを更新してJMSトランスポートを有効化および構成します。

- @com.oracle.webservices.ap.jms.JMSTransportClient注釈を追加します。詳細は、Oracle WebLogic Server JAX-WS Webサービスの開発の@JMSTransportClient注釈の使用に関する項を参照してください。

- @com.oracle.webservices.ap.jms.JMSTransportClientFeature機能クライアントAPIを追加します。詳細は、Oracle WebLogic Server JAX-WS Webサービスの開発のJMSTransportClientFeatureクライアントAPIの使用に関する項を参照してください。

- 同期クライアントのターゲット・エンドポイント・アドレスとしてJMS URIを構成します。詳細は、Oracle WebLogic Server JAX-WS Webサービスの開発のターゲット・エンドポイント・アドレスとしてのJMS URIの構成に関する項を参照してください。

- 非同期Webサービス・クライアントを更新して、JMSトランスポートを有効化および構成します。詳細は、Oracle WebLogic Server JAX-WS Webサービスの開発のAsyncClientTransportFeatureを使用した非同期クライアントの構成に関する項を参照してください。

これらの方法の詳細は、Oracle WebLogic Server JAX-WS Webサービスの開発のJMSトランスポートを使用したWebLogic Webサービスの呼出しに関する項を参照してください。

23.4.6 WSDLファイルの管理方法

JDeveloperには、次の各項に示すように、WebサービスのWSDLファイルを管理する方法が多数用意されています。

- 第23.4.6.1項「WSDLドキュメントの作成」

- 第23.4.6.2項「WebサービスのWSDLの表示」

- 第23.4.6.3項「Webサービス・プロジェクトへのWSDLの追加」

- 第23.4.6.4項「ローカル・ディレクトリへのWSDLの保存」

- 第23.4.6.5項「Webサービス・クライアントの作成に使用されたWSDLの表示」

- 第23.4.6.6項「WSDLのローカル・コピーのリフレッシュとWebサービス・クライアント・プロキシおよびクラスの再生成」

- 第23.4.6.7項「実行時にクライアントによって使用されるWebサービスWSDLの更新」

23.4.6.1 WSDLドキュメントの作成

WSDLドキュメントを作成することにより、たとえば、トップ・ダウンWebサービスを作成できます。

WSDLドキュメントを作成する手順は次のとおりです。

1. 「アプリケーション」ウィンドウで、Webサービスの作成元のJavaクラスまたはEJBが含まれるプロジェクトを選択します。

2. 「ファイル」→「新規」→「ギャラリから」を選択して「新規ギャラリ」を開きます。

3. 「カテゴリ」リストで「ビジネス層」を開き、「Webサービス」を選択します。「項目」リストで、「WSDLドキュメント」をダブルクリックして「WSDLドキュメントの作成」ダイアログを開きます。
ウィザードの操作の詳細なヘルプを参照するには、ダイアログ内で[F1]を押すか、「ヘルプ」をクリックします。

23.4.6.2 WebサービスのWSDLの表示

WebサービスのWSDLを表示できます。WSDLファイルは、Webサービスに定義されている注釈に基づいて一時ディレクトリに生成され、表示されます。

ユーザーがローカルに保存されているWADLファイルを表示したときに、元のWSDLの場所がエディタで読取り専用フィールドとして保存されることを示すように、「WSDLファイルの管理」を更新します。

Webサービス・プロジェクトにWSDLを表示するには、次のようにします。

「アプリケーション」ウィンドウで、WSDLを表示するWebサービスを右クリックし、ポップアップ・メニューから「Webサービス注釈のWSDLの表示」を選択します。

WSDLファイルが一時ディレクトリに生成され、表示されます。

23.4.6.3 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サービス・プロジェクトに追加するには、次のようにします。

「アプリケーション」ウィンドウで、WSDLを追加するWebサービスを右クリックし、ポップアップ・メニューから「WSDLを生成し、プロジェクトを追加します」を選択します。WSDLが自動的に生成され、WEB-INF/wsdlディレクトリでプロジェクトに追加されます。

注意:

WSDLファイルがWEB-INF/wsdlまたはMETA-INF/wsdlディレクトリにすでに存在する場合は、既存のWSDLファイルを上書きするかどうかを尋ねられます。

23.4.6.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が指定した場所に保存されます。

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

Webサービス・クライアントの生成に使用されたWSDLを表示できます。次のことに注意してください。

- 可能な場合、WSDLファイルのローカル・コピーが表示されます。Webサービス・クライアントを生成する場合、ソースWebサービスのWSDLをローカル・ディレクトリにコピーできます。第23.4.3.1項「クライアントおよびプロキシ・クラスの作成」を参照してください。

注意:

ほとんどの場合、WSDLのローカル・コピーはリモートWebサービスのWSDLと一致します。リモートWebサービスが変更されると、ローカルWSDLがリモートWSDLと同期しなくなる可能性があります。Webサービス・クライアントがリモートWebサービスにアクセスできることを確認するには、必要に応じて、リモートWSDLを使用してローカルWSDLを再生成します。第23.4.3.5項「Webサービス・クライアントおよびプロキシ・クラスの再生成」を参照してください。

- ローカル・バージョンが使用できない場合、リモートWSDLが表示されます。

Webサービス・クライアントの作成に使用されたWSDLを表示する手順は次のとおりです。

1. 「アプリケーション」ウィンドウ内で、Webサービス・クライアント・コンテナを右クリックします。

2. ポップアップ・メニューで「WSDLに移動」を選択します。
WSDLが表示されます。

23.4.6.6 WSDLのローカル・コピーのリフレッシュとWebサービス・クライアント・プロキシおよびクラスの再生成

元のWSDLの場所からWSDLのローカル・コピーをリフレッシュできます。WSDLがリフレッシュされると、Webサービス・クライアントおよびプロキシ・クラスが再生成されます。

WSDLのローカル・コピーをリフレッシュする手順は次のとおりです。

1. 「アプリケーション」ウィンドウで、再生成するWebサービス・クライアント・ノードを右クリックして、ポップアップ・メニューから「プロパティ」を選択します。
「Webサービス・クライアントおよびプロキシ・エディタ」ウィザードが表示されます。

2. 「Webサービス記述」を選択します。(デフォルトで選択されています。)

3. 元の場所にあるWSDLを使用してローカルWSDLをリフレッシュするには、「元のWSDLの場所からコピーしたWSDLをリフレッシュ」を選択します。

4. 「OK」をクリックします。
WSDLのローカル・コピーがリフレッシュされ、Webサービス・クライアントおよびプロキシ・クラスが再生成されます。

23.4.6.7 実行時にクライアントによって使用されるWebサービスWSDLの更新

場合によっては、Webサービスの説明の一部であるソースとは異なるソースからインポートされたXMLリソース(WSDLやXSDなど)を参照するため、アプリケーションを更新する必要がある可能性があります。パフォーマンスを向上させたりアプリケーションがローカル環境で正しく動作することを確認するために、XMLリソースをこのようにリダイレクトすることが必要な場合があります。

たとえば、WSDLはクライアントの生成時にアクセス可能であるが、クライアントの実行時にはアクセスできない場合があります。ネットワークを介して使用可能なリソースではなく、アプリケーションに対してローカルであるかアプリケーションにバンドルされたリソースを参照することが必要な場合があります。

次のいずれかのメソッドを使用すると、実行時にWebサービスによって使用されるWSDLの場所を変更できます。

- XMLカタログ・ファイル

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

23.4.6.7.1 XMLカタログ・ファイルの使用

Webサービス・クライアントを作成または再生成すると、jax-ws-catalog.xmlファイルがMETA-INFディレクトリに自動的に作成されます。このファイルは、Oasis XMLカタログの仕様(http://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

23.4.6.7.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ディスクリプタ・プロパティの場所とプロパティに割り当てる値の両方を定義します。詳細は、WebLogic Serverへのアプリケーションのデプロイを参照してください。

次の例は、CreditRatingService WebサービスWSDLの値をオーバーライドするデプロイメント・プランを示しており、各要素の意味は、次のとおりです。

- variable-definition要素は、CreditRatingService変数とこの変数に割り当てる値を定義します。

- LoanApplication-LoanApprover-context-root.warのmodule-override要素の一部として、variable-assignment要素は、CreditRatingService変数、およびプロパティがオーバーライドされるディスクリプタ内の正確な場所を定義します。

<?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>

23.4.7 JAX-WS Webサービスの編集方法

JDeveloperで作成したJAX-WS Webサービスを編集して、公開するメソッドやファイルの場所などを変更できます。

JAX-WS Webサービスを編集すると、以前に生成されたWSDLファイルは上書きされるため、それまでに行った変更はすべて失われます。Webサービスがすでにデプロイされているときにこれを編集する場合、これを再デプロイする必要があります。

JAX-WS Webサービスを編集する手順は次のとおりです。

1. 「アプリケーション」ウィンドウで、Webサービスを右クリックして「Webサービス・プロパティ」を選択します。リエントラントなWebサービスのウィザードが表示されます。

2. Webサービスを変更します。「OK」をクリックします。Webサービス・ファイルが再生成されます。
ウィザードの操作の詳細なヘルプを参照するには、ウィザード内で[F1]を押すか「ヘルプ」をクリックします。

Webサービス・ファイルを編集した後、Webサービスを再デプロイする必要があります。詳細は、第23.7項「Webサービスのデプロイ」を参照してください。

23.4.8 JAX-WS Webサービスの削除方法

不要になったJAX-WS Webサービスを削除できます。

JDeveloperからWebサービスを削除すると、Webサービス・コンテナとそれに含まれるファイル(WSDLファイル、および場合によってはインタフェース)が削除されます。Webサービスのエントリはweb.xmlから削除されますが、ファイル自体は削除されません。WebServices.deployファイルは、他のWebサービスでも使用される場合があるため、変更されません。

Webサービスを削除するには、次のようにします。

「アプリケーション」ウィンドウで、Webサービスを右クリックして「削除」を選択します。「削除の確認」ダイアログが開き、ファイルの使用状況が表示されます。「OK」をクリックします。

23.5 RESTful Webサービスおよびクライアントの作成

Representational State Transfer (REST)は、SOAPなどの追加メッセージング・レイヤーなしで、標準化されたインタフェース(HTTPなど)を介してデータを送信する単純なインタフェースを記述するものです。RESTには、ステートレス・サービスを作成するための一連の設計ルールが用意されており、これらはリソース(特定の情報のソース)として表示されます。それぞれのリソースは固有のURIで識別できます。クライアントがURIを使用してリソースにアクセスすると、標準化された固定のメソッド・セットと、リソースの表示が返されます。クライアントは、新しい各リソース表示を使用してステートを転送します。

HTTPプロトコルを使用してRESTfulリソースにアクセスする際は、リソース識別子がリソースのURLとなります。そのリソースに対して実行する標準操作は、HTTPメソッドの1つ(GET、PUT、DELETE、POSTまたはHEAD)です。

JAX-RSは、注釈を使用してRESTful Webサービスの開発を簡略化するJavaプログラミング言語APIです。JAX-RS注釈は、実行時注釈です。JAX-RSリソース・クラスを含むJava EEアプリケーション・アーカイブをWebLogic Serverにデプロイすると、ランタイムはリソースを構成し、ヘルパー・クラスおよびアーティファクトを生成し、リソースをクライアントに公開します。

JAX-RSを使用したRESTful Webサービスおよびクライアントの開発の詳細は、次のリソースを参照してください。

- Oracle WebLogic ServerのRESTful Webサービスの開発および保護

- Jersey RIドキュメント: https://wikis.oracle.com/display/Jersey/Main

次の各項では、JDeveloperを使用してRESTful Webサービスおよびクライアントを迅速かつ簡単に作成する方法について説明します。

- 第23.5.1項「RESTful Webサービスの作成方法」

- 第23.5.2項「RESTful Webサービス・クライアントの作成方法」

23.5.1 RESTful Webサービスの作成方法

JDeveloperを使用してRESTful Webサービスを迅速かつ簡単に開発できます。コード・インサイトやインポート・アシスタンスなどの標準Javaソース・エディタのすべての機能がRESTful Webサービス・コールと連携して機能するようになります。

次の各項では、RESTful Webサービスを開発する方法について説明します。

- 「単純なRESTful Webサービスの例」

- 「RESTful Webサービスの作成」

- 「ルート・リソースおよびサブリソースの相対URIの定義」

- 「受信HTTPリクエストのJavaメソッドへのマッピング」

- 「リクエスト・メッセージとレスポンス・メッセージのメディア・タイプのカスタマイズ」

- 「リクエスト・メッセージからの情報の抽出」

- 「エンティティ・プロバイダを使用したHTTPリクエストおよびレスポンスのエンティティ・ボディのマッピング」

- 「RESTful WebサービスのWADLへのアクセス」

詳細は、次のリソースを参照してください。

- RESTful Webサービスの開発の詳細は、Oracle WebLogic Server RESTful Webサービスの開発と保護のRESTful Webサービスおよびクライアントの保護に関する項を参照してください。

- RESTful Webサービスの管理の詳細は、Webサービスの管理を参照してください。

23.5.1.1 単純なRESTful Webサービスの例

例23-1に、単純なRESTful Webサービスの例を示します。この例の各要素の意味は次のとおりです。

- helloWorldクラスは、/helloworldとして定義された相対URIパスを含むリソースです。実行時に、WARファイルのコンテキスト・ルートがhttp://examples.comとして定義されている場合、リソースにアクセスするためのフルURIはhttp://examples.com/helloworldです。詳細は、第23.5.1.3項「ルート・リソースおよびサブリソースの相対URIの定義」を参照してください。

- sayHelloメソッドは、HTTP GETメソッドをサポートします。詳細は、第23.5.1.4項「受信HTTPリクエストのJavaメソッドへのマッピング」を参照してください。

- sayHelloメソッドは、MIMEメディア・タイプtext/plainのコンテンツを生成します。詳細は、第23.5.1.5項「リクエスト・メッセージとレスポンス・メッセージのメディア・タイプのカスタマイズ」を参照してください。

その他の例は、Oracle WebLogic Server RESTful Webサービスの開発と保護のRESTful Webサービスの詳細に関する項に記載されています。

例23-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 web service
@Path("/helloworld")
public class helloWorld {

// Specifies that the method processes HTTP GET requests
@GET
@Path("hello")
@Produces("text/plain")
public String sayHello() {
return "Hello World!";
}
}

23.5.1.2 RESTful Webサービスの作成

「RESTfulサービスの作成」ウィザードを使用して、新しいRESTful Webサービス・クラスを作成したり、既存のJavaクラスからRESTful Webサービスを生成したりできます。

デプロイメント・ファイルはウィザードによって自動的に作成されるため、Webサービスの作成が済んだら、後はこれをデプロイするだけです。HTTPアナライザを使用してそれらをテストできます。詳細は、第23.9.5項「HTTPアナライザを使用したWebサービスの調査方法」を参照してください。

RESTful Webサービスを作成すると、JAX-RS Jerseyライブラリがプロジェクトに自動的に追加されます。アプリケーションで必要であれば、製品にバンドルされているJAX-RS Jersey JacksonライブラリまたはJAX-RS Jersey Jettisonライブラリをプロジェクトに追加できます。JAX-RS Jersey Romeライブラリは製品にバンドルされていません。プロジェクトに追加できるライブラリの詳細は、「ライブラリの管理方法」を参照してください。

RESTful Webサービスを作成する手順は次のとおりです。

1. 「アプリケーション」ウィンドウで、新しいRESTful Webサービスを作成するプロジェクトか、RESTful Webサービスの作成元として使用するJavaクラスまたはRESTful Webサービスを作成するJavaクラスが含まれるプロジェクトを選択します。

2. 「ファイル」→「新規」→「ギャラリから」を選択して「新規ギャラリ」を開きます。

3. 「カテゴリ」リストで「ビジネス層」を開き、「Webサービス」を選択します。

4. 「項目」リストで「RESTfulサービス」を選択し、「OK」をクリックして、「RESTfulサービスの作成」ウィザードを起動します。
ウィザードの操作の詳細なヘルプを参照するには、ウィザード内で[F1]を押すか「ヘルプ」をクリックします。

また、RESTful Webサービスの作成元として使用するJavaクラスを右クリックし、「RESTfulサービスの作成」を選択して、「RESTfulサービスの作成」ウィザードを起動することもできます。

23.5.1.3 ルート・リソースおよびサブリソースの相対URIの定義

リソースのクラス・レベルでjavax.ws.rs.Path注釈を追加し、RESTful Webサービスの相対URIを定義します。このようなクラスは、ルート・リソース・クラスと呼ばれます。ルート・リソース・クラスの詳細は、Oracle WebLogic Server RESTful Webサービスの開発と保護の次の内容に関する項を参照してください。

- ルート・リソース・クラスの定義

- リソース・クラスの相対URI (@Path)の定義方法

特定の機能をグループ化するためのサブリソースを定義するため、@Pathもルート・リソース・クラスのメソッドに追加できます。詳細は、Oracle WebLogic Server RESTful Webサービスの開発と保護のサブリソースの相対URI (@Path)の定義方法に関する項を参照してください。

URIは定数値または変数値(「URIパス・テンプレート」と呼ばれる)として定義できます。

- URIを定数値として定義するには、定数値を@Path注釈に渡します。先頭と末尾のスラッシュ(/)はオプションです。

- URIをURIパス・テンプレートとして定義するには、1つまたは複数の変数値を中カッコで囲んで@Path注釈に渡します。これにより、javax.ws.rs.PathParam注釈を使用して、@Path注釈で定義されたリクエストURIから変数情報を抽出し、メソッド・パラメータの値を初期化できます(「リクエスト・メッセージからの情報の抽出」を参照)。

詳細は、Oracle WebLogic Server RESTful Webサービスの開発と保護のリソース・クラスの相対URI (@Path)の定義方法に関する項を参照してください。

JDeveloperを使用して、次のいずれかの方法で@Path注釈を指定できます。

- 「RESTfulサービスの作成」ウィザードを使用してRESTful Webサービスを作成する場合は、「RESTfulサービス・ウィザードでの@Path注釈の定義」の説明に従ってください。

- Javaクラスで行う場合は、「Javaクラスでの@Path注釈の定義」の説明に従ってください。

- 「プロパティ」ウィンドウで行う場合は、「「プロパティ」ウィンドウでの@Path注釈の定義」の説明に従ってください。

23.5.1.3.1 「RESTfulサービス」ウィザードでの@Path注釈の定義

「RESTfulサービスの作成」ウィザードを使用してRESTfulサービスを作成するときに、ルート・リソースおよびサブリソースの相対URIを定義できます。ウィザードの起動方法の詳細は、第23.5.1.2項「RESTful Webサービスの作成」を参照してください。

「RESTfulサービス」ウィザードで@Path注釈を定義する手順は次のとおりです。

「RESTfulサービスの作成」ウィザードで、RESTfulサービス・クラスを新規に作成するのか、既存のJavaクラスから作成するのかに応じて、次のいずれかのページにナビゲートします。

- 新規RESTfulサービスの作成

- JavaクラスからのRESTfulサービスの作成

次のように相対URIを定義します。

- ルート・リソース・クラスの相対URIを定義するには、「ルート・パス」フィールドに値を入力します。

- サブリソースの相対URIを定義するには、「HTTPメソッド」表の「パス」フィールドに値を入力します。

詳細を参照するには、ダイアログ内で[F1]を押すか「ヘルプ」をクリックします。

23.5.1.3.2 Javaクラスでの@Path注釈の定義

@Path注釈をJavaクラスに直接追加してRESTfulサービスを作成するときに、ルート・リソースおよびサブリソースの相対URIを定義できます。この場合、コード・インサイト機能が役に立ちます。詳細は、第23.2.6項「Webサービスのコード・インサイトの使用方法」を参照してください。

Javaクラスで@Path注釈を定義する手順は次のとおりです。

1. ソース・エディタでRESTfulサービス・クラスを開きます。

2. 次のタスクを1つ以上実行します。

- リソースのクラス・レベルで@Path注釈を追加して、RESTfulサービスの相対URIを定義します。

- リソースのメソッドに@Path注釈を追加して、サブリソースを定義します。

コード・インサイトを使用すると役に立ちます。注釈(@Pathなど)の入力を開始します。中断するか[Ctrl]キーと[Shift]キーを押しながら[Space]キーを押すと、ポップアップが表示され、文を正しく完成するためのエントリを選択できます。

@Path注釈の定義の詳細は、Oracle WebLogic Server RESTful Webサービスの開発と保護のルート・リソースおよびサブリソースの相対URIの定義に関する項を参照してください。

23.5.1.3.3 「プロパティ」ウィンドウでの@Path注釈の定義

「プロパティ」ウィンドウを使用して、ルート・リソースおよびサブリソースの相対URIを定義できます。

「プロパティ」ウィンドウで@Path注釈を定義する手順は次のとおりです。

1. ソース・エディタでRESTfulサービス・クラスを開いた状態で、「ウィンドウ」→「プロパティ」を選択して「プロパティ」ウィンドウを開きます。
詳細を参照するには、「プロパティ」ウィンドウ内で[F1]を押すか「ヘルプ」をクリックします。

2. リソース・クラスの相対URIを定義する手順は次のとおりです。

1. リソースのクラス・レベルにカーソルを置きます。

2. 「プロパティ」ウィンドウで、JAX-RSを開いて「RESTfulリソース・クラス」をクリックします。
サービスが更新され、リソース・クラスの上に@Path注釈が追加されてjavax.ws.rs.Pathがインポートされます。

3. 「パス」フィールドに値を入力して、URIを定義します。URIは、定数値またはURIパス・テンプレートとして定義できます。

詳細は、Oracle WebLogic Server RESTful Webサービスの開発と保護のリソース・クラスの相対URI (@Path)の定義方法に関する項を参照してください。

3. サブリソースの相対URIを定義する手順は次のとおりです。

1. リソースのメソッドにカーソルを置きます。

2. まだリソース・メソッドをHTTPメソッドにマップしていない場合は、「プロパティ」ウィンドウで、JAX-RSを開いて「メソッド・タイプ」ドロップダウン・メニューからHTTPメソッドを選択します。有効なHTTPメソッドは、GET、POST、PUTまたはDELETEです。
サービスが更新されて、リソース・メソッドの上にメソッド注釈が含められ、適切なAPIがインポートされます。詳細は、「受信HTTPリクエストのJavaメソッドへのマッピング」を参照してください。

3. 「メソッド・パス」フィールドに値を入力して、サブリソースの相対URIを定義します。URIは、定数値またはURIパス・テンプレートとして定義できます。

詳細は、Oracle WebLogic Server RESTful Webサービスの開発と保護のサブリソースの相対URI (@Path)の定義方法に関する項を参照してください。

23.5.1.3.4 実行時の処理: ベースURIの構成方法

RESTful WebサービスのベースURIは、次のように構成されます。

http://myHostName/contextPath/servletURI/resourceURI

ベースURIパス構造の詳細は、Oracle WebLogic Server RESTful Webサービスの開発と保護の実行時のベースURIの構成方法に関する項を参照してください。

プロジェクト・レベルのcontextPath (つまりコンテキスト・ルート)では、統合WebLogic ServerにデプロイされているJava EE Webアプリケーションに割り当てる値を設定できます。詳細は、「Webサービスのコンテキスト・ルートの設定方法」を参照してください。この場合、contextPathのデフォルトは次のようになります。

applicationname-projectname-context-root

23.5.1.4 受信HTTPリクエストのJavaメソッドへのマッピング

JAX-RSでは、Java注釈を使用して受信HTTPリクエストをJavaメソッドにマップします。表23-6に、同様の名前が付いたHTTPメソッドにマップする、使用可能な注釈を示します。

表23-6 HTTPリクエストをJavaメソッドにマップするためのjavax.ws.rs注釈

注釈

説明

多重呼出し不変

@GET

URIによって識別されるリソースの表現をクライアントに送信します。フォーマットは、HTML、プレーン・テキスト、JPEGなどです。詳細は、Oracle WebLogic Server RESTful Webサービスの開発と保護のリソースの表現の送信方法(@GET)に関する項を参照してください。

はい

@PUT

URIで識別された特定のリソースの表現を作成または更新します。詳細は、Oracle WebLogic Server RESTful Webサービスの開発と保護のリソースの表現の作成または更新方法(@PUT)に関する項を参照してください。

はい

@DELETE

URIで識別されたリソースの表現を削除します。詳細は、Oracle WebLogic Server RESTful Webサービスの開発と保護のリソースの表現の削除方法(@DELETE)に関する項を参照してください。

はい

@POST

URIで識別された指定のリソースの表現に対するアクションを作成、更新または実行します。詳細は、Oracle WebLogic Server RESTful Webサービスの開発と保護のリソースの表現に対するアクションの作成、更新または実行方法(@POST)に関する項を参照してください。

いいえ

@HEAD

レスポンス・ヘッダーのみを返し、実際のリソースは返しません(つまり、メッセージ本文はありません)。これは、リソースを実際にダウンロードせずにリソースの特性を確認して、帯域幅を節約するのに役に立ちます。詳細は、http://docs.oracle.com/javaee/6/api/index.html?javax/ws/rs/HEAD.htmlを参照してください。

HEADメソッドは、明示的に実装されていないと自動的に実装されます。この場合、ランタイムは実装されたGETメソッド(存在する場合)を呼び出し、レスポンス・エンティティ(設定されている場合)を無視します。

はい

@OPTIONS

URIで識別された特定のリソースのリクエスト/レスポンス・チェーンで使用可能な通信オプションを返します。Allowレスポンス・ヘッダーはリソースでサポートされているHTTPメソッドのセットに設定され、WADLファイルが返されます。詳細は、http://docs.oracle.com/javaee/6/api/index.html?javax/ws/rs/OPTIONS.htmlを参照してください。

OPTIONSメソッドは、明示的に実装されていないと自動的に実装されます。この場合、Allowレスポンス・ヘッダーはリソースでサポートされているHTTPメソッドのセットに設定され、リソースを記述するWADLファイルが返されます。

はい

@HttpMethod

注釈が付いたメソッドを使用してHTTPリクエストを処理する必要があることを示します。詳細は、http://docs.oracle.com/javaee/6/api/index.html?javax/ws/rs/HttpMethod.htmlを参照してください。

N/A

JDeveloperを使用して、次のいずれかの方法でHTTPリクエストをJavaメソッドにマップできます。

- 「RESTfulサービスの作成」ウィザードを使用してRESTful Webサービスを作成する場合は、「RESTfulサービス・ウィザードでのHTTPリクエストのJavaメソッドへのマッピング」の説明に従ってください。

- Javaクラスで行う場合は、「JavaクラスでのHTTPリクエストのJavaメソッドへのマッピング」の説明に従ってください。

- 「プロパティ」ウィンドウで行う場合は、「「プロパティ」ウィンドウでのHTTPリクエストのJavaメソッドへのマッピング」の説明に従ってください。

23.5.1.4.1 「RESTfulサービス」ウィザードでのHTTPリクエストのJavaメソッドへのマッピング

「RESTfulサービスの作成」ウィザードを使用してRESTful Webサービスを作成するときに、HTTPリクエストをJavaメソッドにマップできます。ウィザードの起動方法の詳細は、第23.5.1.2項「RESTful Webサービスの作成」を参照してください。

「RESTfulサービス」ウィザードでHTTPリクエストをJavaメソッドにマップする手順は次のとおりです。

「RESTfulサービスの作成」ウィザードで、RESTfulサービス・クラスを新規に作成するのか、既存のJavaクラスから作成するのかに応じて、次のいずれかのページにナビゲートします。

- 新規RESTfulサービスの作成

- JavaクラスからのRESTfulサービスの作成

次のタスクのいずれかを実行します。

- 新しいRESTfulサービス・クラスを作成する場合は、Javaメソッドを作成するHTTPメソッドを選択します。そのたびに、「数」列に値を入力して、HTTPメソッドにマップするJavaメソッドの数を指定します。

- 既存のクラスからRESTfulサービスを生成する場合は、「HTTPメソッドの構成」表で「タイプ」ドロップダウン・リストからHTTPメソッドを選択してHTTPリクエストをJavaメソッドにマップします。有効なHTTPメソッドは、GET、POST、PUTまたはDELETEです。

詳細を参照するには、ダイアログ内で[F1]を押すか「ヘルプ」をクリックします。

23.5.1.4.2 JavaクラスでのHTTPリクエストのJavaメソッドへのマッピング

表23-6に示されているいずれかのHTTPリクエスト注釈をJavaクラスに直接追加してRESTfulサービスを作成するときに、HTTPリクエストをJavaメソッドにマップできます。この場合、コード・インサイト機能が役に立ちます。詳細は、第23.2.6項「Webサービスのコード・インサイトの使用方法」を参照してください。

JavaクラスでHTTPリクエストをJavaメソッドにマップする手順は次のとおりです。

1. ソース・エディタでRESTfulサービス・クラスを開きます。

2. 表23-6のいずれかのHTTPリクエスト注釈をJavaクラスの1つまたは複数のメソッドに追加します。
コード・インサイトを使用すると役に立ちます。注釈(@GETなど)の入力を開始します。中断するか[Ctrl]キーと[Shift]キーを押しながら[Space]キーを押すと、ポップアップが表示され、文を正しく完成するためのエントリを選択できます。

HTTPリクエスト注釈の定義の詳細は、Oracle WebLogic Server RESTful Webサービスの開発と保護の受信HTTPリクエストのJavaメソッドへのマッピングに関する項を参照してください。

23.5.1.4.3 「プロパティ」ウィンドウでのHTTPリクエストのJavaメソッドへのマッピング

「プロパティ」ウィンドウで、HTTPリクエストをJavaメソッドにマップできます。

「プロパティ」ウィンドウでHTTPリクエストをJavaメソッドにマップする手順は次のとおりです。

1. ソース・エディタでRESTfulサービス・クラスを開いた状態で、「ウィンドウ」→「プロパティ」を選択して「プロパティ」ウィンドウを開きます。
詳細を参照するには、「プロパティ」ウィンドウ内で[F1]を押すか「ヘルプ」をクリックします。

2. リソースのメソッドにカーソルを置きます。

3. 「プロパティ」ウィンドウで、JAX-RSを開いて「メソッド・タイプ」ドロップダウン・メニューからHTTPメソッドを選択します。有効なHTTPメソッドは、GET、POST、PUTまたはDELETEです。
サービスが更新されて、リソース・メソッドの上にメソッド注釈が含められ、適切なAPIがインポートされます。

HTTPリクエスト注釈の定義の詳細は、Oracle WebLogic Server RESTful Webサービスの開発と保護の受信HTTPリクエストのJavaメソッドへのマッピングに関する項を参照してください。

23.5.1.5 リクエスト・メッセージとレスポンス・メッセージのメディア・タイプのカスタマイズ

リソースのクラス・レベルまたはメソッド・レベルでjavax.ws.rs.Consumes注釈またはjavax.ws.rs.Produces注釈を追加して、それぞれリクエスト・メッセージまたはレスポンス・メッセージのメディア・タイプをカスタマイズします。いずれの場合も複数のメディア・タイプを宣言できます。

JDeveloperを使用して、次のいずれかの方法でリクエスト・メッセージおよびレスポンス・メッセージのメッセージ・タイプをカスタマイズできます。

- 「RESTfulサービスの作成」ウィザードを使用してRESTful Webサービスを作成する場合は、「RESTfulサービス・ウィザードでのメディア・タイプのカスタマイズ」の説明に従ってください。

- Javaクラスで行う場合は、「Javaクラスでのメディア・タイプのカスタマイズ」の説明に従ってください。

- 「プロパティ」ウィンドウで行う場合は、「「プロパティ」ウィンドウでのメディア・タイプのカスタマイズ」の説明に従ってください。

23.5.1.5.1 「RESTfulサービス」ウィザードでのメディア・タイプのカスタマイズ

「RESTfulサービスの作成」ウィザードを使用してRESTful Webサービスを作成するときに、メディア・タイプをカスタマイズできます。ウィザードの起動方法の詳細は、第23.5.1.2項「RESTful Webサービスの作成」を参照してください。

「RESTfulサービス」ウィザードでのメディア・タイプをカスタマイズする手順は次のとおりです。

「RESTfulサービスの作成」ウィザードで、RESTfulサービス・クラスを新規に作成するのか、既存のJavaクラスから作成するのかに応じて、次のいずれかのページにナビゲートします。

- 新規RESTfulサービスの作成

- JavaクラスからのRESTfulサービスの作成

次のようにメディア・タイプをカスタマイズします。

- ルート・リソース・クラスのメディア・タイプをカスタマイズするには、「消費」フィールドまたは「生成」フィールドの横にある「...」をクリックし、「メディア・タイプの選択」ダイアログ・ボックスで1つまたは複数のメディア・タイプを選択して「OK」をクリックします。構成されたメディア・タイプの数がフィールドに表示されます。

- メソッドのメディア・タイプをカスタマイズする手順は次のとおりです。

- 新しいRESTfulサービス・クラスを作成する場合は、「HTTPメソッドの選択」表で、メディア・タイプを構成するメソッドに対応する「消費」列または「生成」列内をクリックし、「メディア・タイプの選択」ダイアログ・ボックスでメディア・タイプを選択して「OK」をクリックします。構成されたメディア・タイプの数が表エントリに表示されます。

- 既存のクラスからRESTfulサービスを生成する場合は、「HTTPメソッドの構成」表で、メディア・タイプを構成するメソッドに対応する「消費」列または「生成」列内をクリックし、「メディア・タイプの選択」ダイアログ・ボックスでメディア・タイプを選択して「OK」をクリックします。構成されたメディア・タイプの数が表エントリに表示されます。

詳細を参照するには、ダイアログ内で[F1]を押すか「ヘルプ」をクリックします。

23.5.1.5.2 Javaクラスでのメディア・タイプのカスタマイズ

RESTfulサービスの作成時に、リソースのクラス・レベルまたはメソッド・レベルで@Produces注釈または@Consumes注釈をJavaクラスに直接追加して、それぞれリクエスト・メッセージまたはレスポンス・メッセージのメディア・タイプをカスタマイズすることで、メディア・タイプをカスタマイズできます。この場合、コード・インサイト機能が役に立ちます。詳細は、第23.2.6項「Webサービスのコード・インサイトの使用方法」を参照してください。

Javaクラスでメディア・タイプをカスタマイズする手順は次のとおりです。

1. ソース・エディタでRESTfulサービス・クラスを開きます。

2. クラス・レベルまたはメソッド・レベルで@Produces注釈または@Consumes注釈を追加します。
コード・インサイトを使用すると役に立ちます。注釈(@Producesなど)の入力を開始します。中断するか[Ctrl]キーと[Shift]キーを押しながら[Space]キーを押すと、ポップアップが表示され、文を正しく完成するためのエントリを選択できます。

メディア・タイプのカスタマイズの詳細は、Oracle WebLogic Server RESTful Webサービスの開発と保護のリクエスト・メッセージおよびレスポンス・メッセージのメディア・タイプのカスタマイズに関する項を参照してください。

23.5.1.5.3 「プロパティ」ウィンドウでのメディア・タイプのカスタマイズ

「プロパティ」ウィンドウでメディア・タイプをカスタマイズできます。

「プロパティ」ウィンドウでメディア・タイプをカスタマイズする手順は次のとおりです。

1. ソース・エディタでRESTfulサービス・クラスを開いた状態で、「ウィンドウ」→「プロパティ」を選択して「プロパティ」ウィンドウを開きます。
詳細を参照するには、「プロパティ」ウィンドウ内で[F1]を押すか「ヘルプ」をクリックします。

2. リソースのクラス・レベルまたはメソッド・レベルにカーソルを置きます。

3. 「プロパティ」ウィンドウで、JAX-RSを開いて、「消費タイプ」フィールドまたは「生成タイプ」フィールドの横にある「...」をクリックし、「プロパティの編集」ダイアログ・ボックスで1つまたは複数のメディア・タイプを選択して「OK」をクリックします。構成されたメディア・タイプの数がフィールドに表示されます。
サービスが更新されて、メソッド注釈が含められ、適切なAPIがインポートされます。

メディア・タイプのカスタマイズの詳細は、Oracle WebLogic Server RESTful Webサービスの開発と保護のリクエスト・メッセージおよびレスポンス・メッセージのメディア・タイプのカスタマイズに関する項を参照してください。

23.5.1.6 リクエスト・メッセージからの情報の抽出

javax.ws.rsパッケージでは、表23-7に示すように、リクエスト・メッセージから情報を抽出してJavaメソッドのパラメータに注入できる注釈のセットを定義します。

表23-7 リクエスト・メッセージから情報を抽出するためのjavax.ws.rs注釈

注釈

説明

@CookieParam

HTTP Cookie関連ヘッダーから情報を抽出し、メソッド・パラメータの値を初期化します。詳細は、http://docs.oracle.com/javaee/6/api/index.html?javax/ws/rs/CookieParam.htmlを参照してください。

@DefaultValue

次に示す注釈のいずれかを使用してバインドされるリクエスト・メタデータのデフォルト値を定義します。@CookieParam、@FormParam、@HeaderParam、@MatrixParam、@PathParamまたは@QueryParam。詳細は、Oracle WebLogic Server RESTful Webサービスの開発と保護のDefaultValueの定義方法 (@DefaultValue)に関する項を参照してください。

@FormParam

タイプapplication/x-www-form-urlencodedのHTMLフォームから情報を抽出します。詳細は、http://docs.oracle.com/javaee/6/api/index.html?javax/ws/rs/FormParam.htmlを参照してください。

@HeaderParam

HTTPヘッダーから情報を抽出し、メソッド・パラメータの値を初期化します。詳細は、http://docs.oracle.com/javaee/6/api/index.html?javax/ws/rs/HeaderParam.htmlを参照してください。

@MatrixParam

URIパス・セグメントから情報を抽出し、メソッド・パラメータの値を初期化します。詳細は、http://docs.oracle.com/javaee/6/api/index.html?javax/ws/rs/MatrixParam.htmlを参照してください。

@PathParam

相対URIを変数(「URIパス・テンプレート」と呼ばれる)として定義します。詳細は、Oracle WebLogic Server RESTful Webサービスの開発と保護のリクエストURIからの変数情報の抽出方法(@PathParam)に関する項を参照してください。

@QueryParam

リクエストURIの問合せ部分から情報を抽出し、メソッド・パラメータの値を初期化します。詳細は、Oracle WebLogic Server RESTful Webサービスの開発と保護のリクエスト・パラメータの抽出方法 (@QueryParam)に関する項を参照してください。

JDeveloperを使用して、次のいずれかの方法でリクエスト・メッセージから情報を抽出できます。

- 「RESTfulサービスの作成」ウィザードを使用してRESTful Webサービスを作成する場合は、「RESTfulサービス・ウィザードでのリクエスト・メッセージからの情報の抽出」の説明に従ってください。

- Javaクラスで行う場合は、「Javaクラスでのリクエスト・メッセージからの情報の抽出」の説明に従ってください。

「プロパティ」ウィンドウで、次に示す注釈のいずれかを使用してバインドされるパラメータ値のエンコーディングを有効化できます。@FormParam、@MatrixParam、@PathParam、@QueryParam。詳細は、「「プロパティ」ウィンドウでのパラメータ値のエンコーディングの有効化」を参照してください。

23.5.1.6.1 「RESTfulサービス」ウィザードでのリクエスト・メッセージからの情報の抽出

「RESTfulサービスの作成」ウィザードを使用してRESTful Webサービスを作成する場合に、リクエストから情報を抽出できます。ウィザードの起動方法の詳細は、第23.5.1.2項「RESTful Webサービスの作成」を参照してください。

「RESTfulサービス」ウィザードでリクエスト・メッセージから情報を抽出する手順は次のとおりです。

「RESTfulサービス」ウィザードを使用する場合は、既存のJavaクラスからRESTfulサービスを生成するときにのみリクエスト・メッセージから情報を抽出できます。

1. 「RESTfulサービスの作成」ウィザードで、「JavaクラスからのRESTfulサービスの作成」ページに移動します。

2. 「HTTPメソッドの構成」表でメソッドを選択します。そのメソッドの「タイプ」列でHTTPメソッドが選択されていることを確認します。
「パラメータの構成」表にメソッド・パラメータのリストが表示されます。

3. 「パラメータの構成」表で、次の作業を行います。

- 「注釈」ドロップダウン・リストで、リクエスト・メッセージから情報を抽出するために使用する注釈を選択します。有効な注釈のリストは、表23-7を参照してください。

- 「パラメータ」フィールドで、抽出された値の格納に使用するパラメータの名前を入力します。

- 「デフォルト」フィールドで、リクエスト・メッセージで値が渡されなかった場合のパラメータのデフォルト値を入力します。

- エンコードをクリックして、パラメータ値のエンコーディングを有効にします。このフィールドは、次に示す注釈に対してのみ有効になります。@FormParam、@MatrixParam、@PathParamまたは@QueryParam。

4. 「次へ」をクリックして次の画面に進むか、「終了」をクリックしてRESTfulサービスを生成します。

詳細を参照するには、ダイアログ内で[F1]を押すか「ヘルプ」をクリックします。

23.5.1.6.2 Javaクラスでのリクエスト・メッセージからの情報の抽出

RESTfulサービスの作成時に、Javaクラス内で、表23-7に示されている注釈をリソースのクラス・レベルまたはメソッド・レベルに直接追加することで、リクエスト・メッセージから情報を抽出できます。この場合、コード・インサイト機能が役に立ちます。詳細は、第23.2.6項「Webサービスのコード・インサイトの使用方法」を参照してください。

Javaクラスでリクエスト・メッセージから情報を抽出する手順は次のとおりです。

1. ソース・エディタでRESTfulサービス・クラスを開きます。

2. 表23-7に示されている注釈のいずれかをクラス・レベルまたはメソッド・レベルで追加します。
コード・インサイトを使用すると役に立ちます。注釈(@PathParamなど)の入力を開始します。中断するか[Ctrl]キーと[Shift]キーを押しながら[Space]キーを押すと、ポップアップが表示され、文を正しく完成するためのエントリを選択できます。

3. javax.ws.rs.Encode注釈をクラス・レベルまたはメソッド・レベルで追加して、次に示す注釈のいずれかを使用してバインドされるパラメータ値のエンコーディングを有効にします。@FormParam、@MatrixParam、@PathParam、@QueryParam。クラス・レベルで指定した場合は、クラス内のすべてのメソッドのパラメータがエンコードされます。詳細は、Oracle WebLogic Server RESTful Webサービスの開発と保護のパラメータ値のエンコーディングの有効化 (@Encode)に関する項を参照してください。

リクエスト・メッセージからの情報の抽出の詳細は、Oracle WebLogic Server RESTful Webサービスの開発と保護のリクエスト・メッセージからの情報の抽出に関する項を参照してください。

23.5.1.6.3 「プロパティ」ウィンドウでのパラメータ値のエンコーディングの有効化

「プロパティ」ウィンドウで、次に示す注釈のいずれかを使用してバインドされるパラメータ値のエンコーディングを有効化できます。@FormParam、@MatrixParam、@PathParam、@QueryParam。@Encode注釈の詳細は、Oracle WebLogic Server RESTful Webサービスの開発と保護のパラメータ値のエンコーディング (@Encode)に関する項を参照してください。

「プロパティ」ウィンドウでパラメータ値のエンコーディングを有効にする手順は次のとおりです。

1. ソース・エディタでRESTfulサービス・クラスを開いた状態で、「ウィンドウ」→「プロパティ」を選択して「プロパティ」ウィンドウを開きます。
詳細を参照するには、「プロパティ」ウィンドウ内で[F1]を押すか「ヘルプ」をクリックします。

2. リソースのクラス・レベルまたはメソッド・レベルにカーソルを置きます。

3. 「プロパティ」ウィンドウで、JAX-RSを開いて「エンコード値」をクリックします。
サービスが更新されて、@Encode注釈が含められ、javax.ws.rs.Encoded APIがインポートされます。

注意: クラス・レベルでエンコーディングを有効にした場合、すべての関連メソッドでエンコーディングが有効になり、「エンコード値」チェック・ボックスはメソッド・レベルでは使用できなくなります。

23.5.1.7 エンティティ・プロバイダを使用したHTTPリクエストおよびレスポンスのエンティティ・ボディのマッピング

Java型のサブセットは、HTTPリクエストおよびレスポンスのエンティティ・ボディによって自動的にサポートされます。自動的にサポートされない戻り型の場合は、HTTPリクエストおよびレスポンスのエンティティ・ボディをメソッド・パラメータおよび戻り型にマップするエンティティ・プロバイダを定義する必要があります。サポートされるJava型のリストと、エンティティ・プロバイダの作成の詳細は、Oracle WebLogic Server RESTful Webサービスの開発と保護のエンティティ・プロバイダを使用したHTTPリクエストおよびレスポンスのエンティティ・ボディのマッピングに関する項を参照してください。

「RESTfulサービスの作成」ウィザード(Javaクラスを右クリックして、「RESTfulサービスの作成」を選択)を使用して、既存のJavaクラスからRESTful Webサービスを作成するときに、自動的にサポートされない型を使用するメソッドがクラスに含まれている場合は、次の警告メッセージが表示されます。

The return types for the following methods are not supported automatically for
HTTP response entities and require entity providers to map between
representations and Java types. Check and correct the code after the service is
generated.
methodName

次のコード抜粋は、カスタム・タイプを返すためエンティティ・プロバイダの作成が必要になるメソッド(getClass)が含まれたクラスの例です。

public class Class1
{
public String hello() { return "Hello"; }
public Class2 getClass(String name) { return new Class2(); };
}

public class Class2
{
public Class2() { }
}

注意:

Jersey JSONには、jersey-jsonモジュールとともに配布されるJAX-RS MessageBodyReaderプロバイダおよびMessageBodyWriterプロバイダのセットが用意されています。詳細は、『Jersey User Guide』の「JSON Support」(http://jersey.java.net/nonav/documentation/latest/json.html#json.pojo.approach.section)を参照してください。

アプリケーションで必要であれば、製品にバンドルされているJAX-RS Jersey Jacksonをプロジェクトに追加できます。プロジェクトに追加できるライブラリの詳細は、「ライブラリの管理方法」を参照してください。

23.5.1.8 RESTful WebサービスのWADLへのアクセス

Web Application Description Language (WADL)は、RESTful Webサービス・アプリケーションを記述するXMLベースのファイル形式です。デフォルトでは、基本WADLが実行時に生成され、JDeveloperからアクセスできます。

RESTful WebサービスのWADLにアクセスする手順は次のとおりです。

1. 「アプリケーション」ウィンドウでサービスを右クリックし、「Webサービスのテスト」を選択します。
JDeveloperが自動的に次のように動作します。

- まだ実行されていない場合には、統合アプリケーション・サーバーを起動します。

- Webサービス・アプリケーションをコンパイルして統合アプリケーション・サーバー・インスタンスにバインドします。これは「アプリケーション・サーバー」ウィンドウのIntegratedWebLogicServerノードです。

- 統合アプリケーション・サーバーのログ・ウィンドウを表示します(ログ・ウィンドウがまだ開かれていない場合)。

2. 統合アプリケーション・サーバーのログ・ウィンドウに表示される「ターゲット・アプリケーションWADL --」をクリックします。次に例を示します。

注意:

「HTTPアナライザ」ウィンドウでRESTful WebサービスURIの右にある「WADLを開く...」をクリックすると、「HTTPアナライザ」ウィンドウからWADLを表示できます。

読取りバージョンのWADLファイルがソース・エディタで開きます。ソース・エディタでは次の2つのビューを切り替えることができます。

- プレビュー: 次の作業を行うことができます。

- RESTful Webサービスのリソースおよびサブリソースのサマリーを表示します。

- 各リソースにマップされたメソッドと、リクエストおよびレスポンスの表現およびステータスを表示します。

- 「テスト」ボタンをクリックしてHTTPアナライザを起動し、各メソッドをテストします。

- ソース: WADLのソースを表示します。

23.5.2 RESTful Webサービス・クライアントの作成方法

JDeveloperでは、「RESTfulプロキシ・クライアントの作成」ウィザードを使用してRESTful Webサービスにアクセスするためのクライアントおよびプロキシ・クラスを作成することにより、アプリケーションでのRESTful Webサービスの使用が容易になります。このウィザードは、RESTful Webサービスを検索または作成するときに起動できます。または直接ウィザードを起動して、RESTful WebサービスのURLを入力したり、「Webサービスの検索」ウィザードを使用してUDDIレジストリ内のRESTful Webサービスを検索することもできます。

RESTful Webサービス・クライアントAPIは、明確にJersey JAX-RS RIによって提供されます。つまり、このクライアントAPIはJAX-RS標準の一部ではありません。

注意:

標準のクライアントAPIは、JSR-311 JAX-RS 2.0仕様の一部としてサポートされます。

次の各項では、RESTful Webサービスを開発する方法について説明します。

- 「単純なRESTfulクライアントの例」

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

詳細は、次のリソースを参照してください。

- RESTful Webサービス・クライアントの開発の詳細は、Oracle WebLogic Server RESTful Webサービスの開発と保護のRESTful Webサービスおよびクライアントの開発に関する項を参照してください。

- RESTful Webサービス・クライアントの保護の詳細は、Oracle WebLogic Server RESTful Webサービスの開発と保護のRESTful Webサービスの保護に関する項を参照してください。

- RESTful Webサービス・クライアントの管理の詳細は、Webサービスの管理を参照してください。

23.5.2.1 単純なRESTfulクライアントの例

例23-2は、例23-2で定義したRESTfulサービスをコールする単純なRESTfulクライアントを示しています。この例では、明確にJersey JAX-RS RIによって提供されるクラスを使用しています。これらのクラスはJAX-RS標準の一部ではありません。

例23-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);
}
}

23.5.2.2 RESTful Webサービス・クライアントの作成

「RESTfulプロキシ・クライアントの作成」ウィザードを使用して、リモートまたはローカルの既存のWADLから新しいRESTful Webサービス・クライアントを作成できます。

RESTful Webサービス・クライアントを作成する手順は次のとおりです。

1. 「アプリケーション」ウィンドウで、RESTful Webサービスの作成元として使用するJavaクラスが含まれるプロジェクトを選択します。

2. 「ファイル」→「新規」→「ギャラリから」を選択して「新規ギャラリ」を開きます。

3. 「カテゴリ」リストで「ビジネス層」を開き、「Webサービス」を選択します。

4. 「項目」リストで「RESTfulクライアントおよびプロキシ」を選択し、「OK」をクリックして、「RESTfulプロキシ・クライアントの作成」ウィザードを起動します。
ウィザードの操作の詳細なヘルプを参照するには、ウィザード内で[F1]を押すか「ヘルプ」をクリックします。

23.6 ポリシーのアタッチ

次の各項では、Webサービスおよびクライアントにポリシーをアタッチする方法と、カスタムWebサービス・ポリシーを使用するようにポリシー・リポジトリを構成する方法について説明します。

- 第23.6.1項「OWSMポリシーに関する必知事項」

- 第23.6.2項「Oracle WebLogic Webサービス・ポリシーに関する必知事項」

- 第23.6.3項「JAX-WS Webサービスおよびクライアントへのポリシーのアタッチ方法」

- 第23.6.4項「RESTful Webサービスおよびクライアントへのポリシーのアタッチ方法」

- 第23.6.5項「異なるOWSMポリシー・ストアの使用方法」

- 第23.6.6項「カスタムWebサービス・ポリシーの使用方法」

23.6.1 OWSMポリシーに関する必知事項

OWSMポリシーは、ポート・レベルでJAX-WS Webサービスにアタッチでき、サーブレット・レベルでRESTful Webサービスにアタッチできます。

JDeveloperは、次の方法でアクセスする「プリファレンス」ダイアログの「WSポリシー」ページにあるデフォルトの場所で設定されたOWSMポリシー・ストアを使用するよう事前構成されています。

- 「ツール」→「プリファレンス」→「WSポリシー・ストア」
または

- 「アプリケーション」→「アプリケーションのプロパティ」→「WSポリシー・ストア」

自社のカスタムOWSMポリシーを使用するために別のポリシー・ストアの場所を指定できます。詳細は、第23.6.5項「異なるOWSMポリシー・ストアの使用方法」を参照してください。

OWSMポリシーの詳細は、Oracle Web Services ManagerによるWebサービスの保護およびポリシーの管理を参照してください。

23.6.2 Oracle WebLogic Webサービス・ポリシーに関する必知事項

Oracle WebLogic Webサービス・ポリシーは、ポート・レベルまたは操作レベルでJAX-WS Webサービスにアタッチできます。Oracle WebLogic Webサービス・ポリシーを使用すると、ポリシーの使用方向を指定できます。たとえば、インバウンド(リクエスト)メッセージまたはアウトバウンド(レスポンス)メッセージ、あるいはその両方に適用できます。

自社のOracle WebLogicのカスタムWebサービス・ポリシーを使用するようJDeveloperを構成できます。詳細は、第23.6.6項「カスタムWebサービス・ポリシーの使用方法」を参照してください。

詳細は、Oracle WebLogic Server WebLogic Webサービスの保護を参照してください。

23.6.3 JAX-WS Webサービスおよびクライアントへのポリシーのアタッチ方法

この項では、JDeveloperで作成されたJAX-WS Webサービスおよびクライアントにポリシーをアタッチする方法について説明します。次のタイプのポリシーを使用できます。

- Oracle Web Service Manager (OWSM)ポリシー: セキュリティ・ポリシーのみをアタッチできます。

- Oracle WebLogic Webサービス・ポリシー

2つのタイプのポリシーを同じWebサービスに混在させることはできないため、計画段階でどちらを使用するかを決定する必要があります。1つのタイプのポリシーをWebサービスに追加したら、現在アタッチされているポリシーを削除せずに他のタイプに切り替えることはできません。たとえば、OWSMポリシーを構成した後、Oracle WebLogic Webサービス・ポリシーを使用する必要がある場合、Oracle WebLogic Webサービス・ポリシーをアタッチする前にOWSMポリシーを削除する必要があります。

次の項では、Webサービスとともにポリシーを使用する方法について説明します。

- 第23.6.3.1項「JAX-WS Webサービスへのポリシーのアタッチ」

- 第23.6.3.2項「JAX-WS Webサービス・クライアントへのOWSMポリシーのアタッチ」

- 第23.6.3.3項「JAX-WS Webサービス・クライアントのOWSMポリシー構成プロパティのオーバーライド」

- 第23.6.3.4項「WebLogic Webサービス・ポリシーを使用して保護されたJAX-WS Webサービスの起動」

- 第23.6.3.5項「JAX-WS Webサービスのポリシーの編集または削除」

始める前に:

ポリシーを使用するために実行する必要のあるすべてのタスクについて、詳細な検討はこのガイドの範囲外ですが、一般的に実行が必要なステップは、次のとおりです。

1. 使用するポリシーを決定します。詳細は、Oracle Web Services ManagerによるWebサービスの保護およびポリシーの管理の使用する事前定義済ポリシーの決定に関する項を参照してください。

2. クラスまたはサービスにポリシーをアタッチします。詳細は、第23.6.3.1項「JAX-WS Webサービスへのポリシーのアタッチ」を参照してください。

3. 正しいキーストアおよびポリシーによる処理が必要な他の情報を使用してサーバーを構成し、サーバーにWebサービスをデプロイします。詳細は、Oracle Web Services ManagerによるWebサービスの保護およびポリシーの管理のWebサービスの保護に関する項を参照してください。

4. Webサービスをテストし、ポリシーが予想どおりに動作することを確認します。詳細は、第23.8.1項「ブラウザでのWebサービスのテスト方法」を参照してください。

23.6.3.1 JAX-WS Webサービスへのポリシーのアタッチ

JDeveloperでは、Oracle Web Service Manager (OWSM)ポリシーまたはOracle WebLogic Webサービス・ポリシーをWebサービスにアタッチできます。

Webサービスにポリシーをアタッチした後、ポリシーを構成する必要があります。詳細は、Oracle Web Services ManagerによるWebサービスの保護およびポリシーの管理のWebサービスの保護に関する項を参照してください。

次の項で説明するように、Webサービスにポリシーをアタッチできます。

- 第23.6.3.1.1項「Webサービス・ウィザードでのポリシーのアタッチ」

- 第23.6.3.1.2項「注釈を使用したポリシーのアタッチ」

- 第23.6.3.1.3項「「プロパティ」ウィンドウでのポリシーのアタッチ」

23.6.3.1.1 「Webサービス」ウィザードでのポリシーのアタッチ

新規Webサービスの作成時にWebサービス・ウィザードでアタッチするポリシーを設定するか、すでに存在するWebサービスの更新時にWebサービス・エディタでアタッチするポリシーを設定することで、Webサービスにポリシーをアタッチできます。

「Java Webサービスの作成」ウィザードを使用したWebサービスの作成の詳細は、第23.4.1.1項「Java Webサービスの作成」を参照してください。

Webサービス・ウィザードでポリシーをアタッチする手順は次のとおりです。

「Java Webサービスの作成」ウィザードまたはWebサービス・エディタで、「ポリシーの構成」ページにナビゲートします。詳細を参照するには、ダイアログ内で[F1]を押すか「ヘルプ」をクリックします。

OWSMポリシーをアタッチする場合、次の方法により、ポリシーおよびそのアサーションに関する詳細を表示できます。

- 「説明の表示」チェック・ボックスをクリックし、各ポリシーの説明を表示します。

- 「表示」をクリックし、ポリシー・ファイル内のポリシー・アサーションをレビューします。

- 「選択されたポリシーの表示」チェック・ボックスをクリックし、現在選択されているポリシーのみを表示します。

23.6.3.1.2 注釈を使用したポリシーのアタッチ

Javaクラスでポリシー注釈を直接追加して、Webサービスにポリシーをアタッチできます。コード・インサイト機能が役に立ちます(第23.2.6項「Webサービスのコード・インサイトの使用方法」を参照)。

Javaクラスでポリシー注釈をアタッチするには、次のようにします。

1. ソース・エディタでWebサービス・クラスを開きます。

2. コード・インサイトを使用すると役に立ちます。
注釈(@SecurityPolicyなど)の入力を開始します。中断するか[Alt]キーを押しながら[Enter]キーを押すと、ポップアップが表示され、文を正しく完成するためのエントリを選択できます。

OWSMポリシーをアタッチするための注釈

Javaクラスでweblogic.wsee.jws.jaxws.owsm.SecurityPolicy注釈を使用して単一のポリシーをアタッチできます。次はその例です。

@SecurityPolicy(uri = "oracle/wss11_message_protection_service_policy")

複数の@SecurityPolicy要素が含まれるweblogic.wsee.jws.jaxws.owsm.SecurityPolicies注釈を使用して、複数のポリシーをコンポジットとしてアタッチできます。次はその例です。

@SecurityPolicies( {
@SecurityPolicy(uri = "oracle/wss_http_token_service_policy"),
@SecurityPolicy(uri = "oracle/wss_oam_token_service_policy")
} )

注意:

有効なポリシーのリストを表示するには、uri=""と入力して、空の引用符の中にカーソルを置き、[Ctrl]キーと[Alt]キーを押しながら[Space]キーを押します。

ポリシー注釈の使用の詳細は、Oracle Web Services ManagerによるWebサービスの保護およびポリシーの管理の注釈を使用したJava EE Webサービスおよびクライアントへのポリシーのアタッチに関する項を参照してください。

WebLogic Webサービス・ポリシーをアタッチするための注釈

Javaクラスでweblogic.jws.Policy注釈を使用して単一のポリシーをアタッチできます。次はその例です。

@Policy(uri = "policy:Wssp1.2-2007-Https-UsernameToken-Plain.xml")

複数の@Policy要素が含まれるweblogic.jws.Policies注釈を使用して、複数のポリシーをコンポジットとしてアタッチできます。次はその例です。

@Policies( {
@Policy(uri = "policy:Wssp1.2-2007-Https-BasicAuth.xml"),
@Policy(uri = "policy:Wssp1.2-2007-Https-UsernameToken-Plain.xml")
} )

注意:

有効なポリシーのリストを表示するには、uri=""引数を入力して、空の引用符の中にカーソルを置き、[Ctrl]キーと[Alt]キーを押しながら[Space]キーを押します。

詳細は、Oracle WebLogic Server WebLogic Webサービスの保護の@Policy注釈と@Policies注釈を使用したJWSファイルの更新に関する項を参照してください。

23.6.3.1.3 「プロパティ」ウィンドウでのポリシーのアタッチ

「プロパティ」ウィンドウを使用して、Webサービスにポリシーをアタッチできます。

「プロパティ」ウィンドウでのポリシーをアタッチする手順は次のとおりです。

1. ソース・エディタでWebサービス・クラスを開いた状態で、「ウィンドウ」→「プロパティ」を選択して「プロパティ」ウィンドウを開きます。
詳細を参照するには、「プロパティ」ウィンドウ内で[F1]を押すか「ヘルプ」をクリックします。

2. クラスのpublic class行または@WebService行にカーソルがある状態で、「ポリシー」ノードに移動します。このノードでOWSMポリシーまたはOracle WebLogic Webサービス・ポリシーの使用を選択できます。

3. 「OWSMポリシーで保護」または「WLSポリシーで保護」を選択します。
「プロパティ」ウィンドウがリフレッシュされ、選択したポリシー・タイプ(OWSMまたはWLS)に対して単一のポリシーまたは複数のポリシーを選択するオプションが表示されます。

注意:

同じWebサービスで両方のタイプのポリシーを使用することはできません。間違ったタイプを選択した場合は、JAX-WSクラスからポリシー文が含まれる行を削除し、再度選択できるようにしてください。

4. 「単一ポリシー」リストから単一のポリシーを選択するか、「プロパティの編集: 複数ポリシー」ダイアログで複数のポリシーをアタッチする場合は「...」をクリックします。
「プロパティの編集: 複数ポリシー」ダイアログを使用して複数のOWSMポリシー・ファイルをアタッチする場合、「表示」をクリックしてポリシー・ファイル内のポリシー・アサーションをレビューします。

23.6.3.2 JAX-WS Webサービス・クライアントへのOWSMポリシーのアタッチ

JDeveloperでは、OWSMポリシーをJAX-WS Webサービス・クライアントにアタッチできます。

Webサービス・クライアントにOWSMポリシーをアタッチした後、ポリシーを構成する必要があります。詳細は、Oracle Web Services ManagerによるWebサービスの保護およびポリシーの管理のWebサービスの保護に関する項を参照してください。

注意:

WebLogic Webサービス・ポリシーを使用するWebサービスを起動するためのクライアント・アプリケーションの更新の詳細は、Oracle WebLogic Server WebLogic Webサービスの保護のメッセージ保護付きWebサービスを起動するためのクライアント・アプリケーションの更新に関する項を参照してください。

Webサービス・クライアントにOWSMポリシーをアタッチする方法は、次のとおりです。

- 第23.6.3.2.1項「Webサービス・クライアントおよびプロキシ・ウィザードでのOWSMポリシーのアタッチ」

- 第23.6.3.2.2項「注釈を使用したOWSMポリシーのアタッチ」

- 第23.6.3.2.3項「機能クラスを使用したOWSMポリシーのアタッチ」

23.6.3.2.1 「Webサービス・クライアントおよびプロキシ」ウィザードでのOWSMポリシーのアタッチ

新規Webサービス・クライアントの作成時に「Webサービス・クライアントおよびプロキシ」ウィザードでアタッチするポリシーを設定するか、すでに存在するWebサービス・クライアントの更新時にWebサービス・クライアント・エディタでアタッチするポリシーを設定することで、Webサービス・クライアントにポリシーをアタッチできます。

「Webサービス・クライアントおよびプロキシの作成」ウィザードを使用したWebサービスの作成の詳細は、第23.4.3.1項「クライアントおよびプロキシ・クラスの作成」を参照してください。

Webサービス・クライアントでOWSMポリシーをアタッチする手順は次のとおりです。

「Webサービス・クライアントおよびプロキシの作成」ウィザードまたはクライアント・エディタで、「クライアント・ポリシー構成」ページに移動します。詳細を参照するには、ダイアログ内で[F1]を押すか「ヘルプ」をクリックします。

OWSMポリシーをアタッチする場合、次の方法により、ポリシーおよびそのアサーションに関する詳細を表示できます。

- 「説明の表示」チェック・ボックスをクリックし、各ポリシーの説明を表示します。

- 「表示」をクリックし、ポリシー・ファイル内のポリシー・アサーションをレビューします。

- 「選択されたポリシーの表示」チェック・ボックスをクリックし、現在選択されているポリシーのみを表示します。

- 「選択用に互換性のあるクライアント・ポリシーのみ表示。」チェック・ボックスをクリックし、関連するWebサービスと互換性のあるポリシーを表示します。

23.6.3.2.2 注釈を使用したOWSMポリシーのアタッチ

インジェクション・ターゲット(@WebServiceRef)にポリシー注釈を直接追加して、Webサービスにポリシーをアタッチできます。次のいずれかの注釈を使用します。

- @weblogic.wsee.jws.jaxws.owsm.SecurityPolicy注釈(単一のポリシーをアタッチする場合)

- @weblogic.wsee.jws.jaxws.owsm.SecurityPolicies注釈(複数のポリシーをアタッチする場合)

注釈を使用してOWSMセキュリティ・ポリシーをWebサービス・クライアントにアタッチする例を次に示します。

例23-3 注釈を使用したクライアントへのOWSMポリシーのアタッチ

package wsrm_jaxws.example;
import java.xml.ws.WebService;
import java.xml.ws.WebServiceRef;
import weblogic.wsee.jws.jaxws.owsm.SecurityPolicy;
import weblogic.wsee.jws.jaxws.owsm.SecurityPolicies;
import oracle.wsm.security.util.SecurityConstants.ClientConstants;
...
@WebServiceRef(name="MyServiceRef")
@SecurityPolicies({
@SecurityPolicy(uri="policy:oracle/wss10_message_protection_client_policy"),
@SecurityPolicy(uri="policy:oracle/authorization_policy")
})
Service service;
...

詳細は、Oracle Web Services ManagerによるWebサービスの保護およびポリシーの管理の注釈を使用したJava EE Webサービスおよびクライアントへのポリシーのアタッチに関する項を参照してください。

注意:

機能クラスを使用したOWSMポリシーのアタッチは、注釈を使用したアタッチよりも優先されます(第23.6.3.3.3項「RequestContextを使用したOWSMポリシー構成プロパティのオーバーライド」を参照)

注釈を使用してOWSMポリシーをアタッチする手順は次のとおりです。

1. ソース・エディタでWebサービス・クライアントを開きます。

2. インジェクション・ターゲット行にカーソルを置いてマウスを右クリックし、ポップアップ・メニューから「JEEクライアント・ポリシー注釈の追加」を選択します。
「クライアント・ポリシー構成」ウィンドウが開き、OWSMセキュリティ・ポリシーのリストが表示されます。

3. クライアントにアタッチするセキュリティ・ポリシーを選択します。
OWSMポリシーをアタッチする場合、次の方法により、ポリシーおよびそのアサーションに関する詳細を表示できます。

- 「説明の表示」チェック・ボックスをクリックし、各ポリシーの説明を表示します。

- 「表示」をクリックし、ポリシー・ファイル内のポリシー・アサーションをレビューします。

- 「選択されたポリシーの表示」チェック・ボックスをクリックし、現在選択されているポリシーのみを表示します。

- 「選択用に互換性のあるクライアント・ポリシーのみ表示。」チェック・ボックスをクリックし、関連するWebサービスと互換性のあるポリシーを表示します。

4. 「OK」をクリックします。
該当する注釈によってクライアント・コードが更新されます。

23.6.3.2.3 機能クラスを使用したOWSMポリシーのアタッチ

次の機能クラスのいずれかをWebサービス・クライアントに手動で追加して、Webサービスにポリシーをアタッチできます。

- weblogic.wsee.jws.jaxws.owsm.SecurityPolicyFeatureクラス(単一のポリシーをアタッチする場合)

- weblogic.wsee.jws.jaxws.owsm.SecurityPoliciesFeature(複数のポリシーをアタッチする場合)

次の例は、SecurityPolicyFeatureクラスを使用してWebサービス・クライアントに1つのOWSMポリシーをアタッチする方法を示しています。

例23-4 SecurityPolicyFeatureを使用したクライアントへのOWSMポリシーのアタッチ

...
JAXWSService jaxWsService = new JAXWSService ();
weblogic.wsee.jws.jaxws.owsm.SecurityPolicyFeature securityFeature = new
weblogic.wsee.jws.jaxws.owsm.SecurityPolicyFeature {
new weblogic.wsee.jws.jaxws.owsm.SecurityPolicyFeature("policy:oracle/wss_username_token__over_ssl_client_policy") };

JAXWSServicePort  port =  jaxWsService.getJaxWsServicePort(securityFeature);
...

次の例は、SecurityPoliciesFeatureクラスを使用してWebサービス・クライアントに複数のOWSMポリシーをアタッチする方法を示しています。

例23-5 SecurityPoliciesFeatureを使用したクライアントへのOWSMポリシーのアタッチ

...
weblogic.wsee.jws.jaxws.owsm.SecurityPoliciesFeature
securityFeature = new weblogic.wsee.jws.jaxws.owsm.SecurityPoliciesFeature
(new String[] { "policy:oracle/wss_username_token_over_ssl_client_policy",
"policy:oracle/authorization_policy"});

詳細は、Oracle Web Services ManagerによるWebサービスの保護およびポリシーの管理の機能クラスを使用したJava EE Webサービス・クライアントへのポリシーのアタッチに関する項を参照してください。

注意:

機能クラスを使用したOWSMポリシーのアタッチは、注釈を使用したアタッチよりも優先されます(第23.6.3.3.2項「注釈を使用したOWSMポリシー構成プロパティのオーバーライド」を参照)。

23.6.3.3 JAX-WS Webサービス・クライアントのOWSMポリシー構成プロパティのオーバーライド

JDeveloperでは、JAX-WS Webサービス・クライアントにアタッチされたポリシーの構成プロパティをオーバーライドできます。

Webサービス・クライアントにOWSMポリシーをアタッチする方法は、次のとおりです。

- 第23.6.3.3.1項「Webサービス・クライアントおよびプロキシ・ウィザードでのOWSMポリシー構成プロパティのオーバーライド」

- 第23.6.3.3.2項「注釈を使用したOWSMポリシー構成プロパティのオーバーライド」

- 第23.6.3.3.3項「RequestContextを使用したOWSMポリシー構成プロパティのオーバーライド」

23.6.3.3.1 「Webサービス・クライアントおよびプロキシ」ウィザードでのOWSMポリシー構成プロパティのオーバーライド

「Webサービス・クライアントおよびプロキシ」ウィザードを使用してWebサービス・クライアントにポリシーをアタッチするときに、「クライアント・ポリシー構成」ページで、「プロパティのオーバーライド...」を選択して、「プロパティのオーバーライド」ダイアログを表示します。選択したポリシーの構成プロパティが表示されます。必要に応じて値を設定し、「OK」をクリックします。

「Webサービス・クライアントおよびプロキシの作成」ウィザードまたはクライアント・エディタで、「クライアント・ポリシー構成」ページに移動し、「プロパティのオーバーライド...」を選択します。「オーバーライド・プロパティの設定」ダイアログが表示されます。このダイアログで、選択したポリシーの構成プロパティを編集できます。詳細を参照するには、ダイアログ内で[F1]を押すか「ヘルプ」をクリックします。

「Webサービス・クライアントおよびプロキシの作成」ウィザードを使用したWebサービスの作成の詳細は、第23.4.3.1項「クライアントおよびプロキシ・クラスの作成」を参照してください。

23.6.3.3.2 注釈を使用したOWSMポリシー構成プロパティのオーバーライド

@SecurityPolicy注釈を使用してOWSMセキュリティ・ポリシーをアタッチする場合、@Property注釈を使用して設計時にOWSMセキュリティ・ポリシーのデフォルト構成プロパティをプログラムによってオーバーライドできます。詳細は、Oracle Web Services ManagerによるWebサービスの保護およびポリシーの管理の注釈を使用したJava EE Webサービスおよびクライアントへのポリシーのアタッチに関する項を参照してください。

次の例は、注釈を使用してWebサービス・クライアントにポリシーをアタッチする方法を示しています。この例では、クライアント・ポリシーをアタッチするときに、@Property注釈を使用してキーストア受信者の別名構成プロパティがオーバーライドされます。

例23-6 注釈を使用したOWSMポリシー構成プロパティのオーバーライド

package wsrm_jaxws.example;
import java.xml.ws.WebService;
import java.xml.ws.WebServiceRef;
import weblogic.wsee.jws.jaxws.owsm.SecurityPolicy;
import weblogic.wsee.jws.jaxws.owsm.SecurityPolicies;
import oracle.wsm.security.util.SecurityConstants.ClientConstants;
...
@WebServiceRef(name="MyServiceRef")
@SecurityPolicies({
@SecurityPolicy(uri="policy:oracle/wss10_message_protection_client_policy",
properties = {
@Property(name="ClientConstants.WSS_KEYSTORE_LOCATION",
value="c:/mykeystore.jks")
}
),
@SecurityPolicy(uri="policy:oracle/authorization_policy")
})
Service service;
...

23.6.3.3.3 RequestContextを使用したOWSMポリシー構成プロパティのオーバーライド

次の機能クラスのいずれかをWebサービス・クライアントに手動で追加して、Webサービスにポリシーをアタッチできます。

- weblogic.wsee.jws.jaxws.owsm.SecurityPolicyFeatureクラス(単一のポリシーをアタッチする場合)

- weblogic.wsee.jws.jaxws.owsm.SecurityPoliciesFeature(複数のポリシーをアタッチする場合)

詳細は、Oracle Web Services ManagerによるWebサービスの保護およびポリシーの管理の設計時のクライアント・ポリシー構成プロパティのオーバーライドに関する項を参照してください。

23.6.3.4 WebLogic Webサービス・ポリシーを使用して保護されたJAX-WS Webサービスの起動

WebLogic Webサービス・ポリシーを通知するWSDLからWebサービス・クライアントを作成または編集する場合、Webサービスを呼び出すための資格証明を構成できます。

WebLogic Webサービス・ポリシーを使用して保護されたWebサービスを起動する手順は次のとおりです。

1. 次のタスクのいずれかを実行します。

- Webサービス・クライアントを作成します。詳細は、第23.4.3.1項「クライアントおよびプロキシ・クラスの作成」を参照してください。

- Webサービス・クライアントを編集します。詳細は、第23.4.3.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 WebLogic Server WebLogic Webサービスの保護のメッセージ保護付きWebサービスを起動するためのクライアント・アプリケーションの更新に関する項を参照してください。

23.6.3.5 JAX-WS Webサービスのポリシーの編集または削除

次のいずれかの方法を使用して、ポリシーを編集したりWebサービスからポリシーを完全に削除できます。

- Webサービス・エディタ(第23.6.3.5.1項「Webサービス・エディタを使用したポリシーの編集または削除」を参照)

- ソース・エディタ(第23.6.3.5.2項「Javaクラスでの注釈を使用したポリシーの編集または削除」を参照)

- 「プロパティ」ウィンドウ(第23.6.3.5.3項「「プロパティ」ウィンドウを使用したポリシーの編集または削除」を参照)

23.6.3.5.1 Webサービス・エディタを使用したポリシーの編集または削除

Webサービス・エディタを使用してポリシーを編集または削除できます。

Webサービス・エディタを使用してポリシーを編集または削除する手順は次のとおりです。

1. 「アプリケーション」ウィンドウでWebサービスを右クリックして、「Webサービス・プロパティ」を選択します。
詳細を参照するには、ダイアログ内で[F1]を押すか「ヘルプ」をクリックします。

2. 「ポリシーの構成」ページに移動します。ここで、選択したポリシー・タイプのポリシーを変更したり、別のタイプのポリシーを使用するよう変更(たとえば、OWSMポリシーからOracle WebLogic Webサービス・ポリシーに変更)したり、「ポリシーなし」を選択できます。Webサービスは、エディタのこのページを終了するときに変更されます。

23.6.3.5.2 Javaクラスでの注釈を使用したポリシーの編集または削除

ソース・エディタでJavaクラスの注釈を使用してポリシーを編集または削除できます。

Javaクラスで注釈を使用してポリシーを編集または削除する手順は次のとおりです。

- ソース・エディタでWebサービス・クラスを開きます。ここでは、コード・インサイト機能が役立ちます。詳細は、第23.2.6項「Webサービスのコード・インサイトの使用方法」を参照してください。必要に応じて注釈を編集または削除します。

23.6.3.5.3 「プロパティ」ウィンドウを使用したポリシーの編集または削除

「プロパティ」ウィンドウを使用して、ポリシーを編集または削除できます。

「プロパティ」ウィンドウを使用してポリシーを編集または削除する手順は次のとおりです。

1. ソース・エディタでJAX-WS Webサービス・クラスを開いた状態で、「ウィンドウ」→「プロパティ」を選択して「プロパティ」ウィンドウを開きます。
詳細を参照するには、「プロパティ」ウィンドウ内で[F1]を押すか「ヘルプ」をクリックします。

2. クラスのpublic class行または@WebService行にカーソルがある状態で、「ポリシー」ノードに移動します。

- 複数のポリシーを編集するには、「...」をクリックし、「プロパティの編集: 複数ポリシー」ダイアログを開きます。

- 単一のポリシーを編集するには、「単一ポリシー」リストから名前を削除し、別の名前を選択します。

- ポリシーのタイプを他のタイプに変更するには、すべてのポリシーを削除して最初から再度実行できるようにします。

23.6.4 RESTful Webサービスおよびクライアントへのポリシーのアタッチ方法

この項では、JDeveloperで作成されたRESTful Webサービスおよびクライアントにポリシーをアタッチする方法について説明します。

- 第23.6.4.1項「RESTful Webサービスへのポリシーのアタッチ」

- 第23.6.4.2項「RESTful Webサービス・クライアントへのポリシーのアタッチ」

- 第23.6.4.4項「RESTful Webサービスおよびクライアントのポリシーの編集または削除」

23.6.4.1 RESTful Webサービスへのポリシーのアタッチ

RESTful Webサービスを保護するために、いずれかのOWSM事前定義済セキュリティ・ポリシーをアタッチできます。OWSM事前定義済セキュリティ・ポリシーは、Oracle Web Services ManagerによるWebサービスの保護およびポリシーの管理のRESTful WebサービスでサポートされているOWSMポリシーに関する項に記載されています。

詳細は、次のリソースを参照してください。

- RESTful Webサービスの保護の詳細は、Oracle WebLogic Server RESTful Webサービスの開発と保護のOWSMポリシーを使用したRESTful Webサービスおよびクライアントの保護に関する項を参照してください。

- サポートされているセキュリティ・ポリシーの詳細は、Oracle Web Services ManagerによるWebサービスの保護およびポリシーの管理の事前定義済のポリシーに関する項を参照してください。

- セキュリティ・ポリシーの構成の詳細は、Oracle Web Services ManagerによるWebサービスの保護およびポリシーの管理のWebサービスの保護に関する項を参照してください。

RESTful Webサービスにポリシーをアタッチする手順は次のとおりです。

1. 「アプリケーション」ウィンドウで、「Webコンテンツ」→WEB-INFフォルダにあるweb.xmlファイルを右クリックします。

2. 「RESTfulアプリケーションの保護」を選択します。
「リストからのポリシーの選択」ダイアログが表示されます。

3. リストからセキュリティ・ポリシーを選択します。
アタッチできるのは、1つの認証ポリシーと1つの認可ポリシーのみです。

4. 「OK」をクリックします。
セキュリティ・ポリシー構成がwsm-assembly.xmlデプロイメント・ディスクリプタ・ファイルに保存されます。wsm-assembly.xmlファイルが存在しない場合は作成されます。

23.6.4.2 RESTful Webサービス・クライアントへのポリシーのアタッチ

RESTful Webサービスを保護するために、いずれかのOWSM事前定義済セキュリティ・ポリシーをアタッチできます。OWSM事前定義済セキュリティ・ポリシーは、Oracle Web Services ManagerによるWebサービスの保護およびポリシーの管理のRESTful WebサービスでサポートされているOWSMポリシーに関する項に記載されています。

次の各項で説明されているいずれかの方法でRESTfulクライアントにOWSMポリシーをアタッチできます。

- 第23.6.4.2.1項「RESTfulクライアントおよびプロキシ・ウィザードでのOWSMポリシーのアタッチ」

- 第23.6.4.2.2項「「クライアント・ポリシー構成」ダイアログでのOWSMポリシーのアタッチ」

- 第23.6.4.2.3項「プログラムによるRESTfulクライアントへのOWSMポリシーのアタッチ」

詳細は、次のリソースを参照してください。

- RESTful Webサービスの保護の詳細は、Oracle WebLogic Server RESTful Webサービスの開発と保護のOWSMポリシーを使用したRESTful Webサービスおよびクライアントの保護に関する項を参照してください。

- サポートされているセキュリティ・ポリシーの詳細は、Oracle Web Services ManagerによるWebサービスの保護およびポリシーの管理の事前定義済のポリシーに関する項を参照してください。

- セキュリティ・ポリシーの構成の詳細は、Oracle Web Services ManagerによるWebサービスの保護およびポリシーの管理のWebサービスの保護に関する項を参照してください。

23.6.4.2.1 「RESTfulクライアントおよびプロキシ」ウィザードでのOWSMポリシーのアタッチ

新規RESTfulクライアントの作成時に「RESTfulクライアントおよびプロキシ」ウィザードでアタッチするポリシーを設定して、Webサービス・クライアントにポリシーをアタッチできます。

「RESTfulプロキシ・クライアントの作成」ウィザードを使用したWebサービスの作成の詳細は、第23.5.2.2項「RESTful Webサービス・クライアントの作成」を参照してください。

「RESTfulクライアントおよびプロキシ」ウィザードでRESTfulクライアントにOWSMポリシーをアタッチする手順は次のとおりです。

「RESTfulプロキシ・クライアントの作成」ウィザードで、「クライアント・ポリシー構成」ページに移動します。詳細を参照するには、ダイアログ内で[F1]を押すか「ヘルプ」をクリックします。

OWSMポリシーをアタッチする場合、次の方法により、ポリシーおよびそのアサーションに関する詳細を表示できます。

- 「説明の表示」チェック・ボックスをクリックし、各ポリシーの説明を表示します。

- 「表示」をクリックし、ポリシー・ファイル内のポリシー・アサーションをレビューします。

- 「選択されたポリシーの表示」チェック・ボックスをクリックし、現在選択されているポリシーのみを表示します。

- 「選択用に互換性のあるクライアント・ポリシーのみ表示。」チェック・ボックスをクリックし、関連するWebサービスと互換性のあるポリシーを表示します。

23.6.4.2.2 「クライアント・ポリシー構成」ダイアログでのOWSMポリシーのアタッチ

「クライアント・ポリシー構成」ダイアログでアタッチするポリシーを設定して、Webサービス・クライアントにポリシーをアタッチできます。

「クライアント・ポリシー構成」ダイアログでRESTfulクライアントにOWSMポリシーをアタッチする手順は次のとおりです。

1. 「アプリケーション」ウィンドウで、「アプリケーション・ソース」フォルダにあるRESTful Webサービス・クライアント・ファイルを右クリックします。

2. 「セキュアRESTfulクライアント」を選択します。
「クライアント・ポリシー構成」ダイアログが表示されます。

3. リストからセキュリティ・ポリシーを選択します。
アタッチできるのは、1つの認証ポリシーと1つの認可ポリシーのみです。

4. 「OK」をクリックします。
クライアントでcustomizeClientConfigurationメソッドが更新され、ポリシー・アタッチメントが含められます。

詳細を参照するには、ダイアログ内で[F1]を押すか「ヘルプ」をクリックします。

OWSMポリシーをアタッチする場合、次の方法により、ポリシーおよびそのアサーションに関する詳細を表示できます。

- 「説明の表示」チェック・ボックスをクリックし、各ポリシーの説明を表示します。

- 「表示」をクリックし、ポリシー・ファイル内のポリシー・アサーションをレビューします。

- 「選択されたポリシーの表示」チェック・ボックスをクリックし、現在選択されているポリシーのみを表示します。

- 「選択用に互換性のあるクライアント・ポリシーのみ表示。」チェック・ボックスをクリックし、関連するWebサービスと互換性のあるポリシーを表示します。

23.6.4.2.3 プログラムによるRESTfulクライアントへのOWSMポリシーのアタッチ

OWSMセキュリティ・ポリシーは、プログラムによってのみRESTful Webサービス・クライアントにアタッチできます(Oracle Web Services ManagerによるWebサービスの保護およびポリシーの管理の機能クラスを使用したRESTful Webサービス・クライアントへのポリシーのアタッチに関する項を参照)。

次の例に示すように、com.sun.jersey.api.client.config.ClientConfigを使用して、OWSMポリシーをアタッチして構成プロパティをオーバーライドできます。次のコードでは、oracle/wss_http_token_client_policyポリシーをクライアントにアタッチし、CO_CSF_KEY構成プロパティを値weblogic-csf-keyでオーバーライドします。

例23-7 機能クラスを使用したRESTful Webサービス・クライアントへのポリシーのアタッチ

package samples.helloworld.client;

import com.sun.jersey.api.client.Client;
import com.sun.jersey.api.client.WebResource;
import com.sun.jersey.api.client.config.ClientConfig;
import com.sun.jersey.api.client.config.DefaultClientConfig;
import oracle.wsm.metadata.feature.PolicyReferenceFeature;
import oracle.wsm.metadata.feature.AbstractPolicyFeature;
import oracle.wsm.metadata.feature.PolicySetFeature;
import oracle.wsm.metadata.feature.PropertyFeature;
...
public static void main(String[] args) {
ClientConfig cc = new DefaultClientConfig();
cc.getProperties().put(AbstractPolicyFeature.ABSTRACT_POLICY_FEATURE,
new PolicySetFeature(
new PolicyReferenceFeature((
"oracle/wss_http_token_client_policy"), new
PropertyFeature(SecurityConstants.ConfigOverride.CO_CSF_KEY,
"weblogic-csf-key"))));
Client c = Client.create(cc);
...

23.6.4.3 RESTful Webサービス・クライアントのOWSMポリシー構成プロパティのオーバーライド

JDeveloperでは、RESTful Webサービス・クライアントにアタッチされたポリシーの構成プロパティをオーバーライドできます。

RESTful Webサービス・クライアントのOWSMポリシー構成プロパティを次の方法でオーバーライドできます。

- 第23.6.3.3.1項「Webサービス・クライアントおよびプロキシ・ウィザードでのOWSMポリシー構成プロパティのオーバーライド」

- 第23.6.3.3.2項「注釈を使用したOWSMポリシー構成プロパティのオーバーライド」

23.6.4.3.1 「Webサービス・クライアントおよびプロキシ」ウィザードでのOWSMポリシー構成プロパティのオーバーライド

「RESTfulクライアントおよびプロキシ」ウィザードまたはクライアント・エディタを使用してRESTful Webサービス・クライアントにポリシーをアタッチするときに、「クライアント・ポリシー構成」ページに移動して、アタッチするポリシーを1つまたは複数選択し、「プロパティのオーバーライド...」をクリックします。「オーバーライド・プロパティの設定」ダイアログが表示されます。このダイアログで、選択したポリシーの構成プロパティを編集できます。詳細を参照するには、ダイアログ内で[F1]を押すか「ヘルプ」をクリックします。必要に応じて値を設定し、「OK」をクリックします。

「RESTfulプロキシ・クライアントの作成」ウィザードを使用したRESTful Webサービス・クライアントの作成の詳細は、第23.5.2.2項「RESTful Webサービス・クライアントの作成」を参照してください。

23.6.4.3.2 機能クラスを使用したRESTfulクライアントのOWSMポリシー構成プロパティのオーバーライド

RESTful Webサービス・クライアントの作成時に、OWSMセキュリティ・ポリシーをプログラムによってアタッチする場合は、oracle.wsm.metadata.feature.PropertyFeatureクラスを使用してOWSMセキュリティ・ポリシーのデフォルト構成プロパティをオーバーライドできます。詳細は、Oracle Web Services ManagerによるWebサービスの保護およびポリシーの管理の機能クラスを使用したRESTful Webサービス・クライアントへのポリシーのアタッチに関する項を参照してください。例は、例23-7を参照してください。

23.6.4.4 RESTful Webサービスおよびクライアントのポリシーの編集または削除

次の項で説明するように、RESTful Webサービスおよびクライアントのポリシーを編集したり完全に削除したりできます。

- 第23.6.4.4.1項「RESTful Webサービスのポリシーの編集または削除」

- 第23.6.4.4.2項「RESTful Webサービス・クライアントのポリシーの編集または削除」

23.6.4.4.1 RESTful Webサービスのポリシーの編集または削除

RESTful Webサービスのポリシーを編集または削除する手順は次のとおりです。

1. 「アプリケーション」ウィンドウで、「Webコンテンツ」→WEB-INFフォルダにあるweb.xmlファイルを右クリックします。

2. 「RESTfulアプリケーションの保護」を選択します。
「リストからのポリシーの選択」ダイアログが表示されます。

3. リストからセキュリティ・ポリシーを選択します。
アタッチできるのは、1つの認証ポリシーと1つの認可ポリシーのみです。

4. 「OK」をクリックします。
セキュリティ・ポリシー構成がwsm-assembly.xmlデプロイメント・ディスクリプタ・ファイルに保存されます。wsm-assembly.xmlファイルが存在しない場合は作成されます。

23.6.4.4.2 RESTful Webサービス・クライアントのポリシーの編集または削除

第23.6.4.2項「RESTful Webサービス・クライアントへのポリシーのアタッチ」で説明されているいずれかの方法を使用して、RESTful Webサービス・クライアントのポリシーを編集または削除します。

23.6.5 異なるOWSMポリシー・ストアの使用方法

OWSMポリシー・ストアは、JDeveloperの一部としてインストールされます。異なるポリシー・ストアを構成すると、たとえば、共有ポリシー・ストアを使用できます。ローカル・ファイル・ストアやリモート・アプリケーション・サーバーで使用可能なポリシー・ストアも使用できます。

異なるOWSMポリシー・ストアを使用する手順は次のとおりです

1. 「ツール」→「プリファレンス」を選択して「プリファレンス」ダイアログを開き、「WSポリシー・ストア」ページにナビゲートします。
詳細を参照するには、「プリファレンス」ウィンドウ内で[F1]を押すか「ヘルプ」をクリックします。

2. ローカル・ファイル・ストア内にあるポリシー・ストアを指定するには、「ファイル・ストア」をクリックし、「オーバーライド場所」テキスト・ボックスにポリシー・ストアの場所を入力するか、「参照」をクリックしてその場所を参照します。

3. リモート・アプリケーション・サーバーでポリシー・ストアを構成するには、「アプリケーション・サーバー接続」をクリックし、「接続」ドロップダウン・リストからリモート・アプリケーション・サーバー接続を選択します。
新規のリモート・アプリケーション・サーバー接続を追加するには、「新規」をクリックします。

注意:

選択するリモート・アプリケーション・サーバーは、OWSMポリシー・マネージャを使用して構成する必要があります。OWSMポリシー・マネージャが正しく構成されていることを確認するには、URLとしてhttp://<host:<port/wsm-pm/validatorを使用します。求められたら、サーバーのユーザー名およびパスワードを入力します。OWSMポリシー・マネージャが使用可能な場合、事前定義済ポリシーのリストが説明とともに表示されます。OWSMポリシー・マネージャのトラブルシューティングの詳細は、Webサービスの管理のOracle OWSMの問題の診断に関する項を参照してください。

23.6.6 カスタムWebサービス・ポリシーの使用方法

JDeveloper内でカスタム・ポリシーを使用できます。次の項で説明するように、このプロセスは、カスタムOWSMポリシーとOracle WebLogic Webサービス・ポリシーのどちらを使用するかによって異なります。

- 第23.6.6.1項「カスタムOWSMポリシーの使用」

- 第23.6.6.2項「Oracle WebLogicカスタムWebサービス・ポリシーの使用」

23.6.6.1 カスタムOWSMポリシーの使用

カスタムOWSMポリシーを使用するには、次のいずれかの手順を実行します。

- カスタム・ポリシーを次のデフォルトのポリシー格納場所に追加します。
JDEV_USER_HOME\system12.1.2.0.x.x.x\DefaultDomain\store\gmds

設定しないと、JDEV_USER_HOMEはC:\Users\user-dir\AppData\Roaming\JDeveloperにデフォルト設定されます。

このディレクトリ内で、次のディレクトリ構造のいずれかを使用してポリシーを格納する必要があります。

- 事前定義済OWSMポリシー: owsm/policies/oracle/policy_file

- カスタム・ユーザー・ポリシー: owsm/policies/policy_file

注意:

JDeveloperで使用するためにポリシー・ファイルをOWSMリポジトリからエクスポートする場合、このディレクトリ構造は維持されません。エクスポートされたポリシーをJDeveloper環境に追加する場合は、必ず前述の要求されるディレクトリ構造を使用する必要があります。そうしないと、ポリシーはJDeveloper環境で使用できなくなります。OWSMリポジトリからのポリシーのエクスポートの詳細は、Oracle Web Services ManagerによるWebサービスの保護とポリシーの管理のポリシーのインポートおよびエクスポートの様々なメカニズムの理解に関する項を参照してください。

- 異なるポリシー・ストアを指定します。詳細は、第23.6.6.2項「Oracle WebLogicカスタムWebサービス・ポリシーの使用」を参照してください。
リモート・アプリケーション・サーバーでのポリシー・ストア使用を選択する場合、Fusion Middleware ControlまたはWLSTを使用してカスタムOWSMポリシーをリモート・アプリケーション・サーバー上のMDSリポジトリにインポートできます。リモート・アプリケーション・サーバー上のOWSM MDSリポジトリへのポリシーのインポートの詳細は、Oracle Web Services ManagerによるWebサービスの保護とポリシーの管理のポリシーのインポートおよびエクスポートの様々なメカニズムの理解に関する項を参照してください。

カスタム・ポリシーの作成の詳細は、Oracle Web Services Manager拡張可能アプリケーションの開発のカスタム・アサーションの作成に関する項を参照してください。

23.6.6.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サービス・エディタの「ポリシーの構成」ページで「カスタム・ポリシーの追加」ボタンをクリックし、「カスタム・ポリシー・ファイルの選択」ダイアログ・ボックスを使用してカスタム・ポリシー・ファイルを選択します。

23.7 Webサービスのデプロイ

JDeveloperには、Webサービスを作成してOracle WebLogic Serverにデプロイするときに役立つツールが用意されています。Oracle WebLogic Serverでは、WebサービスはJava EEコンテナ内で動作します。次の操作を実行できます。

- 統合WebLogic ServerにWebサービスをデプロイします。第23.7.1項「統合WebLogic ServerへのWebサービスのデプロイ方法」を参照してください。

- Oracle WebLogic Serverまたはその他のアプリケーション・サーバーにWebサービスをデプロイします。第23.7.2項「スタンドアロン・アプリケーション・サーバーへのWebサービスのデプロイ方法」を参照してください。

- アーカイブ・ファイルにWebサービスをデプロイします。第9.4.1項「Java JARへのデプロイ」を参照してください。

- 別のWebLogic ServerドメインをWebサービスを実行する統合WebLogic Serverとして定義し、そのドメインにWebサービスをデプロイします。第9.2項「統合アプリケーション・サーバーでのJava EEアプリケーションの実行」を参照してください。

- Webサービスをアンデプロイします。第23.7.3項「Webサービスのアンデプロイ方法」を参照してください。

23.7.1 統合WebLogic ServerへのWebサービスのデプロイ方法

JDeveloperで生成されたWebサービスを統合WebLogic Serverにデプロイできます。詳細は、第9.2項「統合アプリケーション・サーバーでのJava EEアプリケーションの実行」を参照してください。

Webサービスを統合WebLogic Serverにデプロイするには、次のようにします。

1. 統合WebLogic Serverを起動します(まだ起動していない場合)。

注意:

統合WebLogic Serverを初めて起動する場合は、デフォルト・ドメインの管理者IDのパスワードの入力を求めるダイアログが表示されます。「OK」をクリックすると、デフォルト・ドメインが作成され、統合WebLogic Serverが起動します。この手順は1回のみ実行する必要があります。

2. 「アプリケーション」ウィンドウで、Webサービスが含まれるプロジェクトを右クリックし、「デプロイ」→「Webサービス」を選択します。

3. Webサービスのデプロイ・ダイアログの「デプロイメント・アクション」ページで、「アプリケーション・サーバーへのデプロイ」を選択し、「次へ」をクリックします。

4. 「サーバーの選択」ページで、IntegratedWebLogicServerを選択し、「次へ」をクリックします。

5. 「WebLogicオプション」ページで、次の項目を指定してWebLogic Serverデプロイメント・オプションを構成します。

- アプリケーションをドメイン内のすべてのインスタンスにデプロイするのか、または選択したインスタンスにデプロイするのか。デフォルトでは、アプリケーションはすべてのインスタンスにデプロイされます。

- アプリケーションを共有ライブラリとして登録するかどうか。デフォルトでは、アプリケーションはスタンドアロン・アプリケーションとして登録されます。

6. 「次へ」をクリックして「サマリー」ページを表示するか、「終了」をクリックしてWebサービスをデプロイします。

23.7.2 スタンドアロン・アプリケーション・サーバーへのWebサービスのデプロイ方法

JDeveloperで生成されたWebサービスを次のいずれかのスタンドアロン・アプリケーション・サーバーにデプロイできます。

- Oracle WebLogic Server

- JBoss 5.x

- Tomcat 6.x

- WebSphere Server 7.x

Webサービスをスタンドアロン・アプリケーションにデプロイする手順は次のとおりです。

1. スタンドアロン・アプリケーション・サーバーが稼働していることを確認します。

2. 「アプリケーション」ウィンドウで、Webサービスが含まれるプロジェクトを右クリックし、「配布先」→「接続」を選択します。使用可能な接続のリストから、Webサービスの作成時に指定したアプリケーション・サーバー接続を選択します。

23.7.3 Webサービスのアンデプロイ方法

Webサービスを統合WebLogic Serverにデプロイした場合、統合サーバーが起動されるたびにサーバー自体が新規のアプリケーションおよびプロジェクトにリセットされるため、Webサービスをアンデプロイする必要はありません。

アプリケーション・サーバー接続を使用してWebサービスをサーバーにデプロイした場合は、「リソース」ウィンドウでWebサービスをアンデプロイできます。

Webサービスをアンデプロイするには、次のようにします。

1. 「アプリケーション・サーバー」ウィンドウで、使用していたアプリケーション・サーバー接続を選択して「Webサービス」を開きます。

2. 「application-name_project-name_ws」を右クリックして「アンデプロイ」を選択します。

23.8 Webサービスのテストおよびデバッグ

Developerには、Webサービスをデバッグおよびテストする方法がいくつか用意されています。

- ブラウザ内で統合WebLogic ServerにデプロイされたJAX-WS Webサービスを実行し、予期した応答が得られるかどうかを確認します。第23.8.1項「ブラウザでのWebサービスのテスト方法」を参照してください。

- デバッガを使用します。デバッガでは、統合WebLogic Serverでローカルに作成したWebサービスと、Oracle WebLogic Serverでリモートで作成したWebサービスをデバッグできます。第23.8.2項「Webサービスのデバッグ方法」を参照してください。

- JUnitをインストールして使用します。第23.8.3項「JUnitを使用したWebサービスのテスト方法」を参照してください。

- Webサービス・メッセージ・ログを表示します。第23.8.4項「アプリケーション・サーバーのWebサービス・メッセージ・ログの表示方法」を参照してください。

この項で説明した方法のほかに、HTTPアナライザを使用して、他のパケット情報の調査と同じようにHTTPを介してWebサービスのコンテンツを調査できます。詳細は、第23.9項「Webサービスの監視と分析」を参照してください。

23.8.1 ブラウザでのWebサービスのテスト方法

Webサービスを作成してデプロイした後、Webサービス・テスト・クライアントを使用してブラウザ内でWebサービスを実行してテストし、予期した応答が得られるかどうかを確認できます。Webサービス・テスト・クライアントを使用したWebサービスのテストの詳細は、Webサービスの管理のWebサービスのテストに関する項を参照してください。

23.8.2 Webサービスのデバッグ方法

デバッグ・ツールを使用すると、Webサービス・ウィザードで作成したWebサービスをデバッグできます。Webサービスのデバッグは、Javaプログラムのデバッグと似ています。そのため、サービスに対してデバッグ・モードでクライアントを実行することにより、ローカルまたはリモートでWebサービスをデバッグできます。Webサービスに対するプロキシであるクライアントにブレークポイントを設定し、サービスの機能を調べることができます。

JDeveloperでは、統合WebLogic Serverでローカルに実行されるWebサービスや、リモートでデプロイされるWebサービスをデバッグできます。

Webサービスをデバッグするときに、JDeveloperでは、コードの分析と問題領域の特定に役立つ、特定の用途向けのデバッグ・ウィンドウが数多く提供されます。デバッガ・ウィンドウを開くには、「ウィンドウ」→「デバッガ」を選択して、メニューからウィンドウを選択します。「データ」ウィンドウは、Webサービスのデバッグに特に役立ちます。詳細は、第23.8.2.3項「Webサービスのデバッグでの「データ」ウィンドウの使用」を参照してください。

HTTPアナライザを使用すると、HTTPリクエスト/レスポンス・パケットを検証および監視できます。これは、JDeveloperのコードとコードの通信対象であるHTTPリソースの間のプロキシとして機能し、送受信されるHTTPトラフィックの観点からアプリケーションをデバッグする上で役に立ちます。詳細は、第23.9.5項「HTTPアナライザを使用したWebサービスの調査方法」を参照してください。

23.8.2.1 ローカルでのWebサービスのデバッグ

Webサービスが統合WebLogic Serverで実行されたら、Webサービス・プロキシに対してプロキシ・クライアントを作成できます。このクライアントには、Webサービスで公開されている各メソッドに対して実行するメソッドが含まれます。また、独自のコードを追加したり、ブレークポイントを設定してWebサービスの実行状況を調べることができます。

JDeveloperで作成したWebサービスは、次のいずれかの方法を使用してローカルですぐにデバッグできます。

- Webサービス・クラスにブレークポイントを挿入し、これに対してプロキシ・クライアントを実行します。これにより、サービス・クラス自体をデバッグできます。

- クライアントにブレークポイントを挿入します。

Webサービスをローカル・デバッグする前に、プロキシ設定をオフにする必要があります。デバッグが完了したら、必ずプロキシ設定をオンに戻してください。

Webサービスをローカルでデバッグするには、次のようにします。

1. 最初に、プロキシ設定をオフにします(第23.2.1.3項「インターネットへのアクセス時のプロキシ・サーバーの使用の無効化」を参照)。

2. デバッグ・モードでWebサービスを実行します。「アプリケーション」ウィンドウで、Webサービスを右クリックして「デバッグ」を選択します。
統合WebLogic Serverがデバッグ・モードで起動し(または再起動し)、このサーバーにWebサービスがデプロイされます。結果はログ・ウィンドウに表示されます。

3. Webサービス・クライアントを作成します(「JAX-WS Webサービス・クライアントの作成方法」を参照)。
プロキシ・コンテナが生成されて「アプリケーション」ウィンドウに表示され、webservicePortClient.javaというJavaクラスがソース・エディタに表示されます。

4. ソース・エディタで、// Add your own code to call the desired methodsというコメントを見つけて、コードを入力します。

5. Webサービスに対するクライアントをデバッグする場合、1つ以上のブレークポイントを追加し、右クリックして「デバッグ」を選択します。
また、Webサービス・クラスにブレークポイントを設定した場合は、ポップアップ・メニューから「デバッグ」または「実行」を選択します。

すべてのJavaクラスに関して、デバッガが動作します。詳細は、第14章「Javaプログラムの実行およびデバッグ」を参照してください。

23.8.2.2 Webサービスのリモート・デバッグ

JDeveloperを使用すると、リモートでデプロイされたWebサービスをデバッグできます。

Webサービスは、ローカル・マシン上のOracle WebLogic Serverで実行される場合、またはリモート・マシン上のサービスで実行される場合があります。いずれの場合も、サーバーに接続し、サーバーをデバッグ・モードで実行する必要があります。

Webサービスをリモートでデバッグする場合、サーバーをデバッグ・モードで起動し、サーバーにWebサービスをデプロイする必要があります。これにより、サービスに対するクライアントを作成し、クライアントにブレークポイントを設定し、クライアントをデバッグ・モードで起動できるようになります。

Webサービスをリモートでデバッグするには、次のようにします。

1. リモート・サーバーをデバッグ・モードで実行します。

2. Webサービスをデプロイします。詳細は、第23.7項「Webサービスのデプロイ」を参照してください。

3. Webサービス・クライアントを作成します(第23.4.3項「JAX-WS Webサービス・クライアントの作成方法」を参照)。

4. ソース・エディタで、// Add your own code to call the desired methodsというコメントを見つけて、コードを入力します。

5. 1つ以上のブレークポイントを追加し、右クリックして「デバッグ」を選択します。
すべてのJavaクラスに関して、デバッガが動作します。詳細は、第14章「Javaプログラムの実行およびデバッグ」を参照してください。

23.8.2.3 Webサービスのデバッグでの「データ」ウィンドウの使用

JDeveloperでは、コードの分析と問題領域の特定に役立つ、特定の用途向けのデバッグ・ウィンドウが数多く提供されます。「データ」ウィンドウは、Webサービスのデバッグに特に役立ちます。

「データ」ウィンドウには、現在のコンテキストのプログラムの変数に関する情報が表示されます。プログラムのデバッグ中、デフォルトでは「データ」ウィンドウにローカル変数情報が表示されます。Webサービスの場合は、「データ」ウィンドウには、Webサービスから導出された追加情報も表示されます。たとえば、プロキシ・クラスをデバッグした場合、次のメソッド・コールの戻り値が表示されます(これは完全なリストではありません)。

- com.sun.xml.ws.client.RequestContext.getEndpointAddressString()

- javax.xml.ws.Binding.getBindingID()

- javax.xml.ws.BindingProvider.getResponseContext()

「データ」デバッガ・ウィンドウを開くには、「ウィンドウ」→「デバッガ」→「データ」を選択します。その他のデバッグ・ウィンドウへのアクセスおよび使用の詳細は、第14.8項「デバッガ・ウィンドウの使用方法」を参照してください。

デバッグ中、フィルタを使用して、「オブジェクト設定」ダイアログを介して「データ」ウィンドウでオブジェクトを開いたときに表示されるフィールドの数を減らすことができます。フィールド数を減らすことにより、デバッグの対象範囲が絞られ、プログラムの問題を容易に検出して切り離すことができるようになります。詳細は、第14.10.4項「「フィルタ対象クラス」リストでフィールドの表示/非表示を切り替える方法」を参照してください。

23.8.3 JUnitを使用したWebサービスのテスト方法

JDeveloperでは、Webサービス対するJUnit回帰テストがサポートされています。JUnitは、JDeveloperのオプション機能として用意されているオープン・ソースのJava回帰テスト用のフレームワークです。JUnitを使用して、コードを検証するテストを記述および実行できます。JUnitの詳細は、http://www.junit.orgにあるJUnitのWebサイトを参照してください。

JUnitを使用するには、JUnit拡張機能をインストールする必要があります。JUnit拡張機能をインストールした後、テスト対象のWebサービスのJUnitテスト・クラスを作成できます。

Webサービスに対してJUnitテストを実行する手順は次のとおりです。

1. JDeveloperの「ヘルプ」メニューからJUnit拡張機能をインストールします。詳細は、第3.9.1項「「更新の確認」を使用して拡張機能をインストールする方法」を参照してください。

2. 「アプリケーション」ウィンドウでWebサービスを右クリックし、「WebサービスのJUnitクラスの作成」を選択します。JUnitテスト・クラスが作成されます。

3. 生成されたクラスを編集します。
生成されたテスト・クラスはJUnitランタイムで動作できます。ただし、有意な結果を収集するために、実際の環境を反映するようにテスト・クラスを(アサーションなどで)インストゥルメント処理する必要があります。生成されたJUnitクラスには1つのWebサービス・メソッドにつき1つの生成済テスト・メソッドがあり、それぞれをJUnitテスト・ハーネスで実行できます。

デフォルトでは、生成されたテストが実行されると、JUnitはWebサービス・エンドポイントをWebサービス・エンドポイント・パブリッシャに設定します。ただし、生成されたJUnitテスト・クラスからWebサービス・エンドポイント・パブリッシャを削除して、Webサービス・エンドポイントを、Webサービスが事前デプロイ済の任意のアプリケーション・サーバーに設定できます。

23.8.4 アプリケーション・サーバーのWebサービス・メッセージ・ログの表示方法

アプリケーション・サーバーにデプロイされたWebサービスにログ・ポリシーをアタッチしている場合、ログ・ポリシーによってSOAPメッセージがメッセージ・ログに書き込まれます。Webサービス・メッセージ・ログには、「アプリケーション・サーバー」ウィンドウを使用してアクセスできます。

アプリケーション・サーバー・ログ・ファイルは、統合サーバーとリモート・サーバーの両方の各アプリケーション・サーバー・ノードの下にある「ログ・ファイル」フォルダの配下にあります。各「ログ・ファイル」フォルダの下に、「OWSMログ」フォルダがあり、そこにWebサービス・ログ・ファイルが格納されています。

アプリケーション・サーバーにデプロイされたWebサービスのメッセージ・ログを表示する手順は次のとおりです。

1. 必要な場合は、「ウィンドウ」→「アプリケーション・サーバー」を選択して「アプリケーション・サーバー」ウィンドウを開きます。

2. Webサービスのデプロイ先のアプリケーション・サーバーを開きます。

3. 「ログ・ファイル」フォルダを開き、「OWSMログ」フォルダにアクセスします。

4. 「OWSMログ」フォルダを開き、ログ・ファイル(diagnostic.logなど)を右クリックして、ポップアップ・メニューから「表示」を選択します。
ログの内容が読取り専用モードでエディタに表示されます。

23.9 Webサービスの監視と分析

Webサービスは様々な方法で分析できます(Web Services-Interoperability Organization (WS-I) Basic Profile 1.1への準拠の確認や、SOAPパケットのコンテンツの調査など)。

Oracleなどの主要企業によって設立された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規格に準拠しているかどうかを分析できます。サービスは、「アプリケーション」ウィンドウにリストされている自分が作成したサービスか、「リソース」ウィンドウにリストされているUDDIレジストリを使用して検索したWebサービスです。デプロイ済のWebサービスについても、クライアントおよびプロキシ・クラスを作成してアクセスしてHTTPアナライザでログ・ファイルを作成すれば、WS-I規格に準拠しているかどうかを分析できます。

WebサービスをWS-I Basic Profileに照らして監視したり、サービスの監視の結果得られたログ・ファイルを分析するには、WS-I準拠のアナライザをダウンロードして登録する必要があります。WS準拠のアナライザを登録するには、事前にWS-Iテスト・ツール拡張機能をインストールする必要があります。

次の各項では、Webサービスを監視および分析する方法について説明します。

- 第23.9.1項「WS-Iアナライザのダウンロードおよび登録方法」

- 第23.9.2項「「アプリケーション」ウィンドウでのWebサービスの分析方法」

- 第23.9.3項「Webサービス・ログの作成および分析方法」

- 第23.9.4項「統合サーバーで実行中のWebサービスの分析方法」

- 第23.9.5項「Httpアナライザを使用したWebサービスの調査方法」

23.9.1 WS-Iアナライザのダウンロードおよび登録方法

Webサービスを分析するWS-I準拠のアナライザを使用するには、マシンにダウンロードした上で、JDeveloperに登録する必要があります。

WS-Iアナライザをダウンロードして登録するには、次のようにします。

1. http://www.ws-i.orgからWS-Iアナライザをダウンロードしてインストールします。

2. JDeveloperの「ヘルプ」メニューからWS-Iテスト・ツール拡張機能をインストールします。詳細は、第3.9.1項「「更新の確認」を使用して拡張機能をインストールする方法」を参照してください。

3. JDeveloperで、「ツール」→「プリファレンス」を選択し、「WS-Iテスト・ツール」を選択します。

4. WS-I準拠のアナライザをインストールする場所の詳細を入力します。
ダイアログの使用の詳細なヘルプを参照するには、ダイアログ内で[F1]を押すか、「ヘルプ」をクリックします。

23.9.2 「アプリケーション」ウィンドウでのWebサービスの分析方法

Webサービスのレポートを作成して、WS-I Basic Profile 1.1標準に準拠しているかどうかを確認できます。レポート対象は、「アプリケーション」ウィンドウにリストされているWebサービスか、UDDIレジストリを使用して検索されて「リソース」ウィンドウにリストされているWebサービスです。そのためには、あらかじめ使用マシンに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サービスであるかによって異なります。

23.9.3 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アナライザに結果が表示されます。

23.9.3.1 Webサービスの実行および分析に関する必知事項

Webサービスの分析を実行すると、問題の発生する原因が多数見つかります。その中にはJDeveloperドキュメントで説明されていないものもありますが、次の2つの問題が発生する可能性があります。

- 第23.9.3.1.1項「wsi-report.htmlのメッセージ・セクションからすべての入力項目が消去される場合」

- 第23.9.3.1.2項「wsi-report.htmlの検出セクションからすべての入力項目が消去される場合」

23.9.3.1.1 wsi-report.htmlのメッセージ・セクションからすべての入力項目が消去される場合

外部WebサービスのWSDLのエンドポイントに含まれているマシン名が大文字のみまたは大文字小文字混合で記述されているのに対し、JDeveloperで生成されたクライアントの_endPoint変数のマシン名が小文字で記述されている場合に、このような現象が発生することがあります。これと類似する事例を、第23.9.4項「統合サーバーで実行中のWebサービスの分析方法」で説明しています。

回避策としては、JDeveloperにWSDLをインポートしてナビゲータに表示し、WSDLのマシン名を小文字に編集します。これにより、クライアント(および関連するプロキシ・クラス)を生成してHTTPアナライザの実行中にそのクライアントを実行できます。

WSDLをナビゲータにインポートするには、次のようにします。

1. デフォルト値を使用して新規WSDLドキュメントを作成します。

2. ブラウザでWSDLドキュメントを開きます。ドキュメントのソースを表示して、WSDLのXMLソースをコピーします。

3. ここで作成したWSDLドキュメントの内容を、使用するWebサービスのWSDLドキュメントのソースで置き換えます。

23.9.3.1.2 wsi-report.htmlの検出セクションからすべての入力項目が消去される場合

wsi-report.htmlの検出セクションでは、UDDIレジストリから検索するWebサービスで使用されるREGDATA結果についてレポートします。UDDIレジストリを使用しても検索されなかったWebサービスのレポートを作成した場合、検出セクションのInputsがすべて消去されます。

23.9.4 統合サーバーで実行中のWebサービスの分析方法

WS-I準拠のアナライザは、一連の標準アサーションに対するログ・ファイル内のメッセージと相互関係があります。特に、WSDLドキュメント内のservice要素のsoap:addressの下位要素は、wsi-log.xml messageEntryのsenderHostAndPortまたはreceiverHostAndPortと厳密に一致する必要があります。一致しない場合、そのメッセージのWS-I互換性は分析されません。

23.9.4.1 エンドポイント・アドレスの変更

Webサービスを統合サーバーで実行し(Webサービスのポップアップ・メニューから「実行」を選択)、Webサービスに対して生成済クライアントを実行中にHTTPアナライザを実行してログを作成する場合は、WSDLのWebサービスのエンドポイントや生成済クライアントの_endPoint変数を変更してから、実行中のクライアントのログ・ファイルを作成する必要があります。

Webサービスのエンドポイントがプロキシの_endPoint変数に一致していることを確認するには、次のようにします。

1. ナビゲータでWebサービスのWSDLドキュメントをダブルクリックして、そのWSDLドキュメントを編集します。

2. soap:address下位要素に移動し、次のいずれかの値を使用してエンドポイントを編集します。

- IP_address:integrated_port_no (デフォルトの統合ポート番号は8988です)

- hostname (小文字)

23.9.4.2 WSDLの変更なしでのエンドポイント・アドレスの変更

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);
}
}

23.9.5 HTTPアナライザを使用したWebサービスの調査方法

HTTPアナライザを使用して、JAX-WS WebサービスまたはRESTful Webサービスに接続するクライアントのネットワーク・トラフィックを調べることができます。詳細は、第8.3.14項「Webサービスに対するHTTPアナライザの使用」を参照してください。

HTTPアナライザを使用すると、次の操作を実行できます。

- WebサービスのTCPのリクエスト・パケットとレスポンス・パケットの詳細な内容を調べることができます。

- リクエスト・パケットの編集と再送信、およびレスポンス・パケットの内容の確認ができます。

- ポリシーを使用して保護されたWebサービスをテストできます。暗号化されたメッセージは復号化されます。

結果を使用して、ローカルまたはリモートにデプロイされているWebサービスをデバッグできます。

注意:

HTTPアナライザを使用する場合、プロキシ設定を更新する必要が生じることがあります。詳細は、第23.2.1項「プロキシ設定およびJDeveloperの使用方法」を参照してください。

Webサービスのクライアントによって送受信されるパケットを調べるには、次のようにします。

1. Webサービスを作成します。

2. ナビゲータでWebサービス・コンテナを右クリックし、「web_serviceの実行」を選択して、Webサービスを実行します。
または

Oracle WebLogic ServerでWebサービスをデプロイおよび実行します。詳細は、第23.7項「Webサービスのデプロイ」を参照してください。

3. 「ツール」→「Httpアナライザ」を選択してHTTPアナライザを起動します。アナライザは、JDeveloper内の専用ウィンドウで開きます。

4. 「Httpアナライザの起動」をクリックしてHTTPアナライザを実行します。

5. Webサービスのクライアント・プロキシを実行します。HTTPアナライザ・テスト・ウィンドウにリクエスト・パケットとレスポンス・パケットのペアが表示されます。
テスト・ウィンドウでは、メッセージのヘッダーとパラメータを調べることができます。サービスをテストするには、適切なパラメータを入力して「リクエストの送信」をクリックします。

6. リクエストおよびレスポンス・パケットのHTTPヘッダーの内容を調べ、HTTPアナライザ・テスト・ウィンドウの下部にある該当のタブを選択して、SOAP構造(JAX-WS Webサービスの場合)、HTTPコンテンツ、WADL構造(RESTfulサービスの場合)、16進コンテンツまたはRAWメッセージ・コンテンツを確認できます。

7. 次のいずれかのタスクを実行して、ポリシーで保護されたWebサービスをテストできます。

- 「資格証明」リストから既存の資格証明を選択します。
JDeveloperには、事前構成済の資格証明セットとしてHTTPS Credentialが付属しています。

- 「新規作成」をクリックして、新しい資格証明を作成します。「資格証明」ダイアログで、HTTPアナライザ・テスト・ウィンドウで使用する資格証明を定義します。HTTPS、ユーザー名トークン、X509、STSのいずれかの資格証明を定義できます。詳細は、第8.3.8項「SSLの使用」を参照してください。

第V部

データベースの使用

この部では、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を使用してデータベースの使用を開始する方法について説明します。

この章には次の項が含まれます:

- 第24.1項「データベースの使用について」

- 第24.2項「Oracle Database Express Editionのスタート・ガイド」

- 第24.3項「データベースのプリファレンスおよびプロパティの管理方法」

24.1 データベースの使用について

JDeveloperでは、OracleおよびOracle以外のデータベースを直接使用し、オフライン・データベース定義を使用したデータベースの設計、作成および編集を行うことができます。

JDeveloperでのOracleデータベースの迅速な使用開始については、次のドキュメントを参照してください。

- Oracle Database 11g Express Editionの使用。詳細は、第24.2項「Oracle Database Express Editionのスタート・ガイド」を参照してください。

- 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 11g Express Edition (Oracle Database XE)を使用してみることです。

24.2 Oracle Database Express Editionのスタート・ガイド

JDeveloperでデータベースを初めて使用する場合、最も簡単な使用開始方法の1つは、Oracle Database 11g Express Edition (Oracle Database XE)を使用してみることです。Oracle Database XEは、Oracle Database 11gリリース2コード・ベースに基づく初級レベルの省スペースのデータベースです。これは、自由な開発、デプロイおよび配布、迅速なダウンロード、そして簡単な管理が可能です。これは、スタート・ガイド: Oracle Database Express Edition (XE)(http://www.oracle.com/technetwork/database/express-edition/overview/index.html)からダウンロードできます。

Oracle Database XEをダウンロードしてインストールした後、Oracle Database Express EditionおよびOracle Applicatin Expressのドキュメントを使用して、ユーザーの作成と管理、およびサンプル・ユーザー(HR)のロック解除を行います。たとえば、表やマテリアライズド・ビューを作成するために追加権限を付与することもできます。これで、JDeveloperからサンプル・ユーザーへのデータベース接続を作成できるようになります。

「データベース接続の作成」ダイアログで、次の値を使用します。ここで言及されていないフィールドは空白のままにしてください。

表24-1 Oracle Database 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ワークシート。

- データベース・オブジェクト・ビューア。

さらに、データベース接続からデータベース・ダイアグラムへデータベース・オブジェクトをドラッグして、次の操作を行うこともできます。

- ダイアグラム上でデータベース・オブジェクトをモデル化。

- データベース・オブジェクトをプロジェクトにリバース・エンジニアリングし、ダイアグラムでオフライン・データベース・オブジェクトをモデル化。

データベース・モデリングの詳細は、第5.8項「データベース・ダイアグラムによるモデリング」を参照してください。

「データベース」ウィンドウは、初めて開いたときに、デフォルトのドッキング位置(左上隅にあり、JDeveloperのメインの作業領域に隣接している)に表示されます。同じ位置に複数のウィンドウが開いている場合は、それぞれの名前が示されたタブとともに表示されます。

「データベース」ウィンドウでノードを右クリックすると、コマンドのポップアップ・メニューが表示されます。使用可能なメニュー・コマンドは、選択しているノードによって異なります。ノードは、デフォルト・エディタで開くか、コンテキスト・メニューを使用して、そのノード・タイプに共通する他のエディタで開くことができます。

表25-1 「データベース」ウィンドウのツールバー・アイコン

アイコン

名前

機能

接続の作成

「データベース接続の作成」ウィザードを開いて、データベースへの接続を作成するための詳細を入力する場合にクリックします。

リフレッシュ

「データベース」ウィンドウの表示を接続の内容と同期化する場合にクリックします。

フィルタの適用

特定の接続について表示するオブジェクトをフィルタリングする場合にクリックします。このアイコンを有効にするには、「データベース」ウィンドウで接続内のノードを選択し、接続が確立されるまで待機します。

「データベース」ウィンドウのポップアップ・メニューから、様々なタスクを実行できます。「IDE接続」ノード(グローバルに定義される接続の場合)か、アプリケーション名のノード(ローカルなスコープの接続で、アプリケーション内でのみ使用できる接続の場合)を右クリックし、適切なメニューを選択して次のような操作を実行します。

- 新しいデータベース接続を作成します。

- 接続定義を持つXMLファイルをインポートします。

- 現在の接続をエクスポートします。

データベース接続のノードから、次の操作を実行できます。

- データベースに接続し、接続を切断します。

- データベース接続を削除します。

- データベース・オブジェクトからSQLを生成します。

- データベース・オブジェクトをオフライン・データベース・オブジェクトとしてプロジェクトにリバース・エンジニアリングします。

- SQL*Plusを実行します。

- 接続に表示されるオブジェクトにフィルタを適用します。

- データベース接続のプロパティを編集します。

- SQLワークシートを開きます。

- DBドキュメントを生成します。

- リモート・デバッグを行います。

- スキーマ統計を収集します。

- XML DBプロトコル・サーバーを構成します。

- Java Platform Debugger Architecture (JPDA)を使用している場合には、デバッガがデバッガにアタッチできるようにデバッガでリスニングして、リモート・デバッグを実行します。

データベース・オブジェクトのタイプ別ノード(「表」、「索引」、「プロシージャ」など)から、またはデータベース・オブジェクトのノード(個々の表や特定のビュー)から使用できる追加のオプションもあります。使用可能なオプションは選択したノードによって異なります。

25.2 「構造」ウィンドウの使用

「構造」ウィンドウのデータベース・ビューには、「データベース」ウィンドウで選択したデータベース・オブジェクトの詳細、または「アプリケーション」ウィンドウで選択したオフライン・データベース・オブジェクトの詳細が表示されます。

「データベース」ウィンドウのデータベース接続で表などのデータベース・オブジェクトを選択する、または「アプリケーション」ウィンドウのオフライン・データベースで表などのオフライン・データベース・オブジェクトを選択すると、そのオブジェクトのノードが「構造」ウィンドウに表示されます。ノードを展開すると、データベース・オブジェクトを構成するサブ・オブジェクトの詳細を表示できます。表の場合、列、制約、索引などのサブ・オブジェクトがこれに該当します。

表25-2 「構造」ウィンドウのアイコン

アイコン

名前

機能

リフレッシュ

「構造」ウィンドウの内容をリフレッシュする場合にクリックします。JDeveloper以外、たとえばSQL*Plusを使用してデータベース・オブジェクトを変更した場合や、「構造」ウィンドウに現在のオブジェクトの状態が反映されることを確認する場合に、この操作が必要になることがあります。

「構造」ウィンドウのデータベース・ビューから、次の操作を実行できます。

- 適切なノードのコンテキスト・メニューから「プロパティ」を選択し、プロパティを表示またはプロパティを編集(オフライン・データベース・オブジェクトの場合のみ)します。オブジェクト・タイプの「編集」ダイアログが開きます。データベース・オブジェクトの場合、これは読取り専用です。

- コンテキスト・メニューから「テンプレートとして使用」を選択し、表などのデータベース・オブジェクトまたはオフライン・データベース・オブジェクトを新規オブジェクト作成時のテンプレートとして使用します。オブジェクト・タイプの「作成」ダイアログが開きます。

- コンテキスト・メニューから「使用方法の検索」を選択して、表などのオフライン・データベース・オブジェクトの使用方法を検索します。

25.3 「データベース・レポート」ウィンドウの使用

「データベース・レポート」ウィンドウを使用すると、データベースとそのオブジェクトに関するレポートを表示できます。

独自のユーザー定義レポートを作成することもできます。

事前定義済のレポートを開くには、「データ・ディクショナリ・レポート」を展開して、目的のレポートにナビゲートします。レポート名をダブルクリックすると、レポートが実行されます。「レポート結果」ウィンドウ内にレポートが開かれる前に、次のダイアログが表示される場合があります。

- 「接続の選択」ダイアログ(すべてのレポート): このダイアログでは、既存のデータベース接続を選択するか、新規のデータベース接続を作成できます。接続を選択すると、次回のレポートの実行時にも同じ接続が使用されます。

- 「バインド値の入力」ダイアログ(「すべてのオブジェクト」レポート): このダイアログでは、各バインド変数の値を入力できます。バインド変数を使用すると、出力を制限できます。

- 「Diagnostic Packが必要」ダイアログ(ASHレポートおよびAWRレポート):これらのレポートを実行するには、Oracle Diagnostic Packのライセンス取得済コピーがデータベース上で稼働している必要があり、このダイアログではライセンス取得済コピーを所有していることを確認できます。

独自のレポートを作成した場合は、「ユーザー定義レポート」ノードの下にあるフォルダおよびサブフォルダに格納できます。

レポートによっては実行にかなりの時間がかかる場合があります。実行時間は、含まれるオブジェクトの数と複雑性、およびデータベースへのネットワーク接続の速度に影響されます。

「データ・ディクショナリ・レポート」ノードからは、次の操作が可能です。

- レポート名を右クリックして「エクスポート」を選択し、レポートをXMLファイルにエクスポートします。このXMLファイルは後でインポートできます。

- エクスポートしたレポートから共有レポートを作成します。

ユーザー定義レポートとは、JDeveloperユーザーにより作成されたレポートです。

ユーザー定義レポートに関する情報(レポートが格納されているフォルダなど)は、ユーザー固有の情報ディレクトリにUserReports.xmlとして保存されます。

「ユーザー定義レポート」ノードからは、次の操作を実行できます。

- 「ユーザー定義レポート」コンテキスト・メニューから「レポートの追加」を選択して、ユーザー定義レポートを作成します。

- ユーザー定義レポートをフォルダごとに整理し、フォルダとサブフォルダの階層を作成します。「ユーザー定義レポート」コンテキスト・メニューから「フォルダの追加」を選択します。

- 以前にエクスポートしたレポートをインポートします。インポートするレポートを格納するレポート・フォルダを選択し、右クリックして、「インポート」を選択します。

「共有レポート」ノードは、「プリファレンス」ダイアログで共有レポートを初めて定義した後に表示されます。

データベース・レポートの作成と共有については、第26.9項「データベース・レポートの操作」を参照してください。

25.4 「データベース・オブジェクトの検索」ウィンドウの使用

「データベース・オブジェクトの検索」ウィンドウを使用すると、稼働中のデータベース内のデータベース・オブジェクトに対する検索と操作を実行できます。

「データベース・オブジェクトの検索」ウィンドウは、SQLワークシートやデータベース・オブジェクト・ビューアなどのオンライン・データベース機能と完全に統合されています。

「データベース・オブジェクトの検索」ウィンドウの使用中には、次の機能を利用できます。

- 「ウィンドウ」→「window-name」を使用して、現在閉じているウィンドウを開くか、現在開いているウィンドウを前面に表示します。

- 該当するタブを右クリックするか、[Alt]を押しながら[-]を押すと表示されるコンテキスト・メニューを使用して、「データベース・オブジェクトの検索」ウィンドウを移動、サイズ変更、フローティング、最小化、最大化、リストアまたは閉じます。

表25-3 「データベース・オブジェクトの検索」のツールバー

名前

機能

接続

ドロップダウン・リストから、検索する対象のデータベース接続を選択します。あらかじめデータベースに接続されている必要があります。

名前

検索語を入力します。ワイルドカード%を使用すると、一致する多数のオブジェクトが返されます。

タイプ

データベース・オブジェクトのタイプを選択して、検索の対象を制限します。デフォルトは、ALL OBJECTSです。

使用方法

特定のオブジェクト・タイプの場合のみ。オブジェクトの使用方法を選択します(ALLなど)。

参照

クリックすると検索結果が表示されます。検索の結果は、パネル内に表示されます。オブジェクトをダブルクリックすると、そのオブジェクトが適切なエディタで開かれます。

「データベース・オブジェクトの検索」ウィンドウからは、次の操作を実行できます。

- バーをクリックして、パネルを開閉します。

- バーを上下にドラッグして、パネルで使用する領域を変更します。

- パネルのドロップダウン・メニュー(パネル・バーの右端)を開き、「最小化」を選択して、パネルを非表示にします。パネルを再び表示するには、「アプリケーション」ウィンドウの最下部にある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ワークシートを開く場合にクリックします。

大文字/小文字/Inicat([Ctrl]+引用符)

選択したテキストの大文字、小文字、語頭大文字を切り替えます。

クリア([Ctrl]+[D])

「Enter SQL Statement」領域にある1つまたは複数の文を削除する場合にクリックします。

取消

(スクリプトの実行中にのみ表示されます)スクリプトの実行を停止する場合にクリックします。

SQL履歴

「SQL履歴」ウィンドウ開く場合にクリックします。

(文またはスクリプトの実行後にのみ表示されます)文またはスクリプトの実行に要した時間を表示します。これを実行計画で使用すると、役に立つチューニング情報が得られます。

他のデータベース接続を選択する場合に使用します。

「結果」領域には、次のタブがあります。

- 「結果」タブ: 「文の実行」をクリックした結果が表示されます。

- 「スクリプトの出力」タブ: 「スクリプトの実行」をクリックした結果を表示します。

- 「自動トレース」タブ: 「自動トレース」をクリックした結果の出力が表示されます。

- 「説明」タブ: 「実行計画」をクリックした結果の出力が表示されます。

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]を押すか、SQLワークシート内で「ヘルプ」をクリックしてください。

3. 必要なスキーマを選択し、問合せのベースにする表をダイアログのメイン・ペインまでドラッグします。クエリー・ビルダーがデータベースに接続し、表に関する情報をロードするまで数秒間の遅延があります。

4. 最初に、使用する文のタイプを選択するよう求められます。

5. 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チューニング・ガイドのEXPLAIN PLANの使用に関する項を参照してください。

SQL問合せのチューニングに使用できる情報源として、文またはスクリプトを実行したときSQLワークシートのツールバーに表示される経過時間も利用できます。

SQL文の実行計画を表示するには、次のようにします。

1. 必要な場合には、SQLワークシートを開きます。

2. ワークシートの上部ペインに、SQL文を入力します。

3. 次のいずれかを実行します。

- ツールバーの「実行計画」ボタンをクリックします。

- 右クリックしてコンテキスト・メニューを開き、「EXPLAIN PLANの実行」を選択します。

「実行計画」タブに、SQL文の実行計画情報が表示されます。

25.5.2 SQLワークシート履歴から文を再実行する方法

SQLワークシートを使用してセッションで実行した文は、履歴リストに保存されます。履歴から過去の文を取得して再実行したり、実行計画を表示できます。

SQLワークシート履歴から文を再実行するには、次のようにします。

1. 次のいずれかを実行します。

- 「SQL履歴」ボタンをクリックします。

- 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サーバーまたはクライアントをインストールすると、一緒にインストールされます。コマンドライン・ユーザー・インタフェースがあります。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項「Oracle Database Cloud Serviceへの接続およびデプロイ」

- 第26.6項「データのインポートとエクスポート」

- 第26.7項「データベースのコピー、比較、エクスポート」

- 第26.8項「OracleおよびOracle以外のデータベースの使用」

- 第26.9項「データベース・レポートの使用」

- 第26.10項「データベース接続のトラブルシューティング」

26.1 データベースへの接続と使用について

Oracleデータベースと、Oracle以外の様々なデータベースに接続して操作できます。

データベース接続は、「アプリケーション」ウィンドウまたは「データベース」ウィンドウ(作業中のアプリケーションに対して使用できる)で、あるいは「リソース」ウィンドウ(他のアプリケーションで再利用できる)で使用できます。

データベース接続を作成すると、次の操作が可能になります。

- データベース・オブジェクトの参照

- 特定のデータベース・オブジェクトの検索

- データのインポートとエクスポート

- データベース・スキーマ間でのデータベース・オブジェクトのコピー

- データベース・スキーマどうしの比較

- 1つ以上のデータベース・タイプの一部または全部のオブジェクトの、DLLファイルファイルへのエクスポート

- 事前定義済のレポートを使用、および新規レポートを作成し、データベースとそのオブジェクトに関する情報を提供

JDeveloperでデータベースを使用するのが初めての場合、Oracle Database Express Edition (Oracle Database XE)の使用をお薦めします。詳細は、第24.2項「Oracle Database Express Editionのスタート・ガイド」を参照してください。

26.2 データベース接続の設定

「データベース接続の作成」ダイアログを使用して、外部データソースへの接続を定義し管理できます。データベース接続は次の場所に表示されます。

- 「リソース」ウィンドウ: 接続をカタログに追加すると、共同作業や複数のアプリケーションへの公開が可能です。

- 「データベース」ウィンドウ: データベースのオブジェクトを作成、編集および変更できます。

- 「アプリケーション」ウィンドウの「アプリケーション・リソース」パネル: 現在のアプリケーションで接続を使用できます。

接続を削除する際、この接続に依存しているプロジェクトがあることを知らせる警告は表示されません。このため、接続の削除には注意が必要です。

26.2.1 接続の有効範囲

JDeveloperでは、データベース接続の作成と管理に2つの方法があります。データベース接続をアプリケーションに対して定義する(アプリケーション・リソース接続)ことも、IDE全体に対して定義する(IDE接続)こともできます。どちらの定義にも同じダイアログを使用しますが、JDeveloperにおけるその有効範囲は異なります。

最初にデータベース接続を作成するときに接続の有効範囲を選択し、その後変更することはできません。

26.2.2 データベース接続の作成時に行われる処理

データベース接続を作成すると、「データベース」ウィンドウに接続のノードが作成され、接続の有効範囲に応じて「リソース」ウィンドウか「アプリケーション」ウィンドウの「アプリケーション・リソース」パネルにノードが追加されます。

JDeveloperがチームで使用するように構成されている場合は、チーム・レベルのデータベース接続も使用できます。

「アプリケーション」ウィンドウと「データベース」ウィンドウでは、データベース接続ノードを展開して、データベース・オブジェクトを表示および使用できます。「リソース」ウィンドウでは、データベース接続をアプリケーションに追加して初めてその接続が使用できるようになります。

アプリケーション・リソースとして作成されるデータベース接続

アプリケーション・リソースとして作成されるデータベース接続は、それが作成されたアプリケーションでのみ使用できます。

「データベース」ウィンドウでは、アプリケーションと同じ名前のノードの下に接続のノードがあります。

「アプリケーション」ウィンドウでは、「アプリケーション・リソース」パネルの「接続」の下に接続のノードがあります。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 データベース接続のエクスポートとインポートの方法

次のように、データベース接続をインポートおよびエクスポートできます。

26.2.7.1 データベース接続のエクスポート

接続をエクスポートすると、選択した接続ディスクリプタがXMLファイルにコピーされます。他のユーザーは、このファイルをインポートして簡単に接続を作成できます。

データベース接続をエクスポートするには、次のようにします。

1. 「ウィンドウ」→「データベース」→「データベース」を選択します。

2. 「IDE接続」またはアプリケーションを右クリックして「接続のエクスポート」を選択します。

3. 「接続ディスクリプタのエクスポート」ダイアログで、ファイル名を入力するか、「参照」をクリックして接続ファイルの場所および名前を指定します。詳細を参照するには、[F1]を押すか、「接続ディスクリプタのエクスポート」ダイアログ内で「ヘルプ」をクリックしてください。

4. ファイル名を指定した後、リストから適切な接続を選択します。
選択した接続の接続情報がファイルに保存され、他のユーザーがインポートして使用することが可能になります。

5. 「OK」をクリックします。

IDE接続であるデータベース接続を含めて接続をエクスポートするには、「リソース」ウィンドウを使用する方法もあります。詳細は、第3.7.4項「カタログと接続のインポートとエクスポート」を参照してください。

26.2.7.2 データベース接続のインポート

以前にエクスポートした接続ディスクリプタをインポートできます。

データベース接続をインポートするには、次のようにします。

1. 「ウィンドウ」→「データベース」→「データベース」を選択します。

2. 「IDE接続」またはアプリケーションを右クリックして「接続のインポート」を選択します。

3. 「接続ディスクリプタのインポート」ダイアログで、エクスポートした接続ファイルのファイル名を入力するか、「参照」をクリックして、そのファイルを検索します。詳細は、[F1]を押すか、「ヘルプ」をクリックしてください。

4. ファイル名を指定した後、表示されているリストから1つ以上の接続を選択します。

5. 「OK」をクリックします。

データベース接続を含めて接続をインポートするには、「リソース」ウィンドウを使用する方法もあります。詳細は、第3.7.4項「カタログと接続のインポートとエクスポート」を参照してください。

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ドライバの登録方法

DB2、Informix、SQL ServerおよびSybase用のサード・パーティ製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は、Java VMが共有ライブラリを検索する際に使用するディレクトリ名を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データベースおよびOracle以外のデータベースに接続できます。

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 Java DB/Apache Derbyへの接続の作成方法

Apache Derbyは、完全にJavaで実装されたオープン・ソースのリレーショナル・データベースです。Java DBは、Apache Derbyオープン・ソース・データベースのOracleがサポートするディストリビューションです。JDeveloperでは、Apache Derby 10.5への接続と、Apache Derby 10.5のエミュレーションによるオフライン・データベースの操作が可能です。Apache Derbyの詳細は、http://db.apache.orgを参照してください。Java DBの詳細は、http://www.oracle.com/technetwork/java/javadb/overview/index.htmlを参照してください。

「表の作成」または「表の編集」ダイアログは汎用なので、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. 次のものが含まれるようにユーザー・ライブラリを設定します:

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 Oracle Database Cloud Serviceへの接続およびデプロイ

Oracle Database Cloud Serviceに接続したり、Oracle Databaseオブジェクトをデプロイできます。Oracle Database Cloud Serviceの詳細は、https://cloud.oracle.comを参照してください。

26.5.1 Oracle Database Cloud ServiceとのJDeveloper接続の種類

JDeveloperでは、次の2種類の接続を使用してOracle Database Cloud Serviceインスタンスに接続します。

- データベース接続: この接続は、Welcome to Oracle Cloudという電子メールで指定されたサービス・ホームのURLを使用して行われます。このURLはOracle Application Expressに接続します。 Oracle Database Cloud Serviceインスタンス上のデータベース・オブジェクトやデプロイメントを「データベース」ウィンドウ内のノードから参照できます。この接続は、ユーザーがOracle Database Cloud Serviceインスタンスに接続するまで検証されません。接続時にパスワードの入力を要求されます。

- セキュアなFTP接続: この接続では、Welcome to Oracle Cloudという電子メールで指定されたセキュアなFTPホスト名とSFTPユーザーを使用して、 デプロイメントZIPファイルがOracle Database Cloud ServiceインスタンスにSFTPでアップロードされます。Oracle Database Cloud Service側では、これらのファイルをダウンロードしてOracle Database Cloud Serviceインスタンスに配置するバックグラウンド・ジョブが実行されています。
クラウド接続の作成または編集ダイアログまたは「クラウドへのオブジェクトのデプロイ」ダイアログでセキュアなFTPホスト名とユーザーを入力すると、この情報が保存され、次回オブジェクトをOracle Database Cloud Serviceインスタンスにデプロイするときに表示されます。

Oracle Database Cloud Serviceにサインアップしたばかりの場合は、JDeveloperからの接続を作成する前にいくつかの手順を実行する必要があります。たとえば、アイデンティティ・ドメイン管理者はサービス・ホーム用とセキュアなFTPサイト用の新しいパスワードを作成する必要があります。必要な情報は、Welcome to Oracle Cloudという電子メールに記載されています。

Oracle Database Cloud Serviceインスタンスとのデータベース接続を作成できるユーザーを作成する必要があります。詳細は、https://cloud.oracle.comの「Resources」メニューにあるドキュメントの中からサービス・ユーザーの管理を参照してください。

26.5.1.1 Oracle Database Cloud Service接続の作成

Oracle Database Cloud Serviceにサインアップすると、必要な接続情報が届きます。

接続を作成するには、次のようにします。

1. 必要に応じて、「表示」→「データベース」→データベース・ウィンドウを選択して「データベース」ウィンドウを開きます。

2. 「接続の作成」ボタンをクリックするか、「クラウド接続」ノードを右クリックし、「新規クラウド接続」を選択します。

3. 「新規クラウド接続」ダイアログで次の情報を入力します。詳細は、[F1]キーを押すか、「ヘルプ」をクリックしてください。

- 接続の名前

- Oracle Database Cloudに接続できるユーザーのユーザー名

- サービス・ホームのURL

- セキュアFTPのユーザー名

- セキュアFTPのホスト名

接続が作成され、「データベース」ウィンドウに表示されます。ただし、この情報はOracle Database Cloud Serviceに接続するまで検証されません。

26.5.1.2 Oracle Database Cloud Service接続の編集

接続は切断中にのみ編集できます。

接続を作成するには、次のようにします。

1. 必要に応じて、「表示」→「データベース」→データベース・ウィンドウを選択して「データベース」ウィンドウを開きます。

2. 「クラウド接続」ノードの下にある目的のクラウド接続のノードを右クリックし、「プロパティ」を選択します。

3. 「クラウド接続の編集」ダイアログで必要な変更を加えます。詳細は、[F1]キーを押すか、「ヘルプ」をクリックしてください。

26.5.1.3 Oracle Database Cloud Serviceとの接続および切断

接続するには、次のようにします。

1. 必要に応じて、「表示」→「データベース」→データベース・ウィンドウを選択して「データベース」ウィンドウを開きます。

2. 「クラウド接続」ノードを展開し、次のいずれかの操作を行います。

- 「クラウド接続」ノードの横の「+」をクリックします。

- または、「クラウド接続」ノードを右クリックし、「接続」を選択します。

3. 「認証」ダイアログにクラウド接続ユーザーのパスワードを入力します。詳細は、[F1]キーを押すか、「ヘルプ」をクリックしてください。

「クラウド接続」ノードが展開し、Oracle Database Cloud Serviceインスタンス内にあるデータベース・オブジェクトが表示され、それらのノードの下にOracle Database Cloud Serviceインスタンスへの以前のデプロイメントが表示されます。

エラー・メッセージが表示された場合は、接続プロパティを確認してください。

切断するには、次のようにします。

- 「クラウド接続」ノードを展開し、目的のクラウド接続ノードを右クリックして「切断」を選択します。

26.5.2 データベース・カートの使用

カートは、1つ以上のデータベース接続からOracle Databaseオブジェクトを収集したり、これらのオブジェクトをデプロイ、エクスポート、比較およびコピーするための便利なツールです。オブジェクトを、それぞれ固有のタブを持つ1つ以上のカートに入れることができます。「カート」ウィンドウを開くと空のカートが表示されますが、新規または既存のカート・タブで新しいカートを作成したり以前保存したカートを開くこともできます。

カート内のオブジェクトは、自動的にデータベース・アクティビティと同期します。カートの内容を更新してデータベースの最新の状態を反映するには、「リフレッシュ」ボタンをクリックします。リフレッシュ後にオブジェクトが存在しない場合、そのオブジェクトはカート内で無効化され、エラーを示す下線が表示されます。

データベース・オブジェクトをカート・タブに入れる方法は、次のように複数あります。

- オブジェクトを「データベース」ウィンドウから「カート」ウィンドウへドラッグ・アンド・ドロップする。

- 「データベース」ウィンドウで1つ以上のオブジェクトを選択し、右クリックして「カートに追加」を選択する。

- 以前に保存したカートXMLファイルを開く。

- 「スクリプト」アイコンのドロップダウン (「初期スクリプトの追加」、「最終スクリプトの追加」)を使用してスクリプトを追加する。(スクリプトに非対応のカート・ツールを使用した場合、スクリプトは無視されます。)

26.5.2.1 データベース・カートのプリファレンスの設定

カートの動作を制御する様々なプリファレンスや、カートが使用するデフォルトを指定できます。

カートのプリファレンスを設定するには、次のようにします。

1. 「ツール」→「設定」を選択します。

2. 「プリファレンス」ページから「データベース: ユーティリティ: カート」ページおよび「データベース: ユーティリティ: カート: カート・デプロイ」ページに移動します。作業中に詳細を参照するには、[F1]を押すか、ダイアログ内から「ヘルプ」をクリックします。

26.5.2.2 データベース・カート・ツールの構成

カートのデータベース・ユーティリティ(エクスポート、差異[比較]、コピー)ごとに、ユーティリティ固有の構成設定を作成して保存したり、開くことができます。

カートが使用するデフォルトの場所は、「ツール」メニューから表示できる「プリファレンス」ダイアログの「データベース: ユーティリティ: カート」ページで変更できます。

構成設定を作成して保存するには、次のようにします。

1. データベース・カートのダイアログ(「エクスポート」、「データベース差分」、「コピー」のいずれか)で、「構成の保存」ボタンをクリックします。

2. 「ツール構成の保存」ダイアログに構成ファイルのデフォルトの場所が表示されます。必要に応じて、別の場所を参照します。

3. 「適用」をクリックします。

次のように、ダイアログを呼び出したツールを反映した名前の構成ファイルが、選択した場所に作成されます。

- export_cart.xml

- diff_cart.xml

- copy_cart.xml

以前保存した構成設定を使用するには、次のようにします。

1. データベース・カートのダイアログ(「エクスポート」、「データベース差分」、「コピー」のいずれか)で、「構成を開く」ボタンをクリックします。

2. 「ツール構成を開く」ダイアログに、デフォルトの場所にある次の構成ファイルが表示されます。

- export_cart.xml

- diff_cart.xml

- copy_cart.xml

必要に応じて別の場所を参照し、「適用」を選択します。

26.5.2.3 Oracle Database Cloud Serviceへのデプロイ

この項では、Oracle Database Cloud Serviceにデプロイする方法について説明します。データベース・オブジェクトをデプロイするのみでなく、生成されたスクリプトの前後に実行するスクリプトを1つずつ指定できます。

データベース・オブジェクトをクラウドにデプロイするには、次のようにします。

1. 必要に応じて、クラウド接続を作成します。

2. 必要に応じて、データベース・カートのプリファレンスを適切に設定します。

3. 必要に応じて、データベース・カートを開きます。「表示」→「データベース」→「カート」を選択します。作業中に詳細を参照するには、[F1]キーを押すか、ウィンドウまたはダイアログ内から「ヘルプ」をクリックします。

4. 必要に応じて、「表示」→「データベース」→データベース・ウィンドウを選択して「データベース」ウィンドウを開きます。

5. 「データベース」ウィンドウで、カートに追加するデータベース接続が含まれているデータベース接続を展開します。オブジェクトを選択して(複数のオブジェクトを同時に選択するには、[Ctrl]キーを押しながらオブジェクトを選択します)、カートにドラッグします。
使用できるのは、データベース接続内のデータベース・オブジェクトのみです。クラウド接続内のオフライン・データベース・オブジェクトは使用できません。

6. 「データベース・カート」で、デプロイするオブジェクトを選択します。必要な場合は、デプロイするデータも選択します。

7. 「データベース・カート」で「クラウドにデプロイ」をクリックし、「クラウドへのオブジェクトのデプロイ」ダイアログで必要なオプションを選択したら、「適用」をクリックします。
デフォルトのデプロイメント場所は、「ツール」メニューから表示できる「プリファレンス」ダイアログの「ユーティリティ: カート」ページで変更できます。

8. クラウド接続が現在接続されていない場合は、「認証」ウィンドウが表示されます。このウィンドウで、この接続に関連付けられているユーザー名のパスワードを入力します。

「クラウドへのオブジェクトのデプロイ」ダイアログで指定した場所にZIPファイルが作成され、セキュアFTPでOracle Database Cloud Serviceインスタンスに接続され、デプロイメント・ファイルを格納したZIPファイルが転送されます。

「ログ」ウィンドウでデプロイメントのステータスを確認できます。デプロイメント後、「データベース」ウィンドウ内の「クラウド接続」ノードに、デプロイしたデータベース・オブジェクトが表示されます。

26.5.2.4 データベース・デプロイメント・ファイルへのデプロイ

データベース・オブジェクトのDDLとオプションとしてデータを格納したZIPファイルを1つ以上のデータベース接続から作成できます。

JDeveloperでは、次のスクリプトを格納したZIPファイルが作成されます。

- データベース・オブジェクトのDDLが含まれた複数のSQLスクリプト

- 必要な関連データをデプロイするためのスクリプト

- Generated-yyyymmddhhmmss.sqlという形式の名前を持つマスター・スクリプト

ZIPファイルの作成が完了したら、そのファイルを使用してマスター・スクリプトを実行することにより、データベース・オブジェクトをデータベース接続にデプロイできます。

データベース・オブジェクトをZIPファイルにデプロイするには、次のようにします。

1. 必要に応じて、データベース・カートを開きます。「表示」→「データベース」→「カート」を選択します。作業中に詳細を参照するには、[F1]キーを押すか、ウィンドウまたはダイアログ内から「ヘルプ」をクリックします。

2. 必要に応じて、「表示」→「データベース」→データベース・ウィンドウを選択して「データベース」ウィンドウを開きます。

3. 「データベース」ウィンドウで、カートに追加するデータベース接続が含まれているデータベース接続を展開します。オブジェクトを選択して(複数のオブジェクトを同時に選択するには、[Ctrl]キーを押しながらオブジェクトを選択します)、カートにドラッグします。

4. 「データベース・カート」で、デプロイするオブジェクトを選択します。必要な場合は、デプロイするデータも選択します。

5. 「データベース・カート」で「デプロイ」をクリックし、「オブジェクトのデプロイ」ダイアログで必要なオプションを選択したら、「適用」をクリックします。

ZIPファイルが指定の場所に作成されます。

デフォルトのデプロイメント場所は、「ツール」メニューから表示できる「プリファレンス」ダイアログの「ユーティリティ: カート」ページで変更できます。

26.5.2.5 データベース・カートの保存

データベース・カートの内容を保存して後で再使用できます。

カートの内容を保存するには、次のようにします。

1. 必要に応じて、データベース・カートを開きます。「表示」→「データベース」→「カート」を選択します。作業中に詳細を参照するには、[F1]キーを押すか、ウィンドウまたはダイアログ内から「ヘルプ」をクリックします。

2. 必要に応じて、「表示」→「データベース」→データベース・ウィンドウを選択して「データベース」ウィンドウを開きます。

3. 「データベース」ウィンドウで、カートに追加する接続が含まれているデータベース接続を展開します。オブジェクトを選択して(複数のオブジェクトを同時に選択するには、[Ctrl]キーを押しながらオブジェクトを選択します)、カートにドラッグします。

4. 「データベース・カート」ツールバーの「カートの保存」をクリックし、「カートの保存」ダイアログで保存場所を確認し、「適用」をクリックします。

カートの内容がXMLファイルとして指定の場所に保存されます。

26.5.2.6 保存したデータベース・カートを開く

保存したデータベース・カートの内容を開くことができます。カートを空にして、保存したカートの内容のみを格納するか、または保存したカートの内容をカートの既存の内容に追加できます。

1. 必要に応じて、データベース・カートを開きます。「表示」→「データベース」→「カート」を選択します。作業中に詳細を参照するには、[F1]キーを押すか、ウィンドウまたはダイアログ内から「ヘルプ」をクリックします。

2. 「データベース・カート」ツールバーの「カートを開く」をクリックします。作業中に詳細を参照するには、[F1]キーを押すか、ウィンドウまたはダイアログ内から「ヘルプ」をクリックします。

3. カート内にすでにオブジェクトがある場合は、保存したカートを開く前にカートから現在のオブジェクトを削除するかどうかを確認するダイアログが表示されます。
「はい」を選択すると、現在のカートを空にして、開いたカートのオブジェクトが挿入されます。

「いいえ」を選択すると、現在のカートを空にしないまま、開いたカートから現在のカートの内容にオブジェクトを追加します。現在のカートの内容と重複するオブジェクトは追加されません(カート内に同名のオブジェクトは複数存在できません)。

4. 「開く」ダイアログで、保存したXMLファイルに移動し、「開く」をクリックします。

26.5.2.7 Oracle Database Cloud Service接続へのデプロイメントの確認

Oracle Database Cloud Serviceインスタンスへのデプロイメントを確認できます。

デプロイメントを確認するには、次のようにします。

1. 必要に応じて、「表示」→「データベース」→データベース・ウィンドウを選択して「データベース」ウィンドウを開きます。

2. 「クラウド接続」ノードの下にある目的のクラウド接続ノードを展開し、「デプロイメント」ノードを展開します。

3. 確認するデプロイメントをダブルクリックします。デプロイメント・オブジェクト・ビューア・ウィンドウが開きます。

- 「詳細」タブにデプロイメントに関する情報が表示されます。

- 「ログ」タブにデプロイメントに関する情報が表示されます。

セルに収まりきらない情報を表示するには、そのセルの上にマウス・ポインタを置きます。または、セルをダブルクリックします。セルの内容が「詳細」ウィンドウに表示されます。これは特に、SQL*Loaderファイルなどの情報を見るときに便利です。

デプロイメントを再実行したり、デプロイメントのログを削除したり、Oracle Database Cloud Serviceインスタンスからデプロイメントを削除できます。

デプロイメントを再実行するには、次のようにします。

- デプロイメントを右クリックし、「再起動」を選択します。元のデプロイメントに含まれているスクリプトが再実行されます。

デプロイメントのログを消去するには、次のようにします。

- デプロイメントを右クリックし、「ログのクリア」を選択します。デプロイメント・オブジェクト・ビューアの「ログ」タブ内の情報が削除されます。

デプロイメントを削除するには、次のようにします。

- デプロイメントを右クリックし、「削除」を選択します。そのデプロイメントがデプロイメントの一覧から削除されます。

注意:

この操作では、Oracle Database Cloud Serviceインスタンスにデプロイされたデータベース・オブジェクトは削除されません。これを行うには、削除するオブジェクトに対するDROP文を含んだ前のスクリプトを使用するデプロイメントを指定し、それをデプロイします。

26.6 データのインポートとエクスポート

データベース接続を介して、データベースの表にデータをインポートできます。

注意:

オフライン表はデータベース表の表現形にすぎないので、オフライン表にデータはインポートできません。

次の対象からインポートできます。

- csv。列IDのヘッダー行を含めて、カンマ区切りの値を含むファイル。

- xls。Microsoft Excel形式のファイル(既存および新規の表へのインポートのみ)。

次の対象にデータをインポートできます。

- データベースの既存の表。

- インポート・プロセスの一部として作成される新規の表。

- SQL*Loader制御ファイルの使用。

- 外部表。

26.6.1 SQL*Loaderを使用したデータのインポート

データのインポート・ウィザードで「SQL*Loader」オプションを選択すると、データを含むインポート・ファイルと同じ場所にtable.ctlファイル(データを含むファイルとインポート先の表に関する情報が格納される)と、インポートを実行するためのtable.batおよびtable.shが作成されます。

詳細は、Oracle DatabaseユーティリティのSQL*Loader概要に関する項を参照してください。

26.6.2 外部表へのデータのインポート

外部表にデータをインポートできます。外部はフラット・ファイルですが、Oracle表と同じようにデータを問い合せることができます。

「外部表」オプションを選択すると、SQLが作成されてSQLワークシートに表示され、そこでSQLを調査してスクリプトの実行前に必要な変更を行うことができます。

詳細は、Oracle Databaseユーティリティの外部表の概要に関する項を参照してください。

26.6.3 既存の表にデータをインポートする方法

データベース接続を介して、データベースの表にデータをインポートできます。

次のファイル形式のインポートをサポートしています。

- csv。列IDのヘッダー行を含めて、カンマ区切りの値を含むファイル。

- xls。Microsoft Excel形式のファイル。

既存のデータベース表にデータをインポートするには、次のようにします。

1. メイン・メニューから「ウィンドウ」→「データベース」→「データベース」を選択して、「データベース」ウィンドウを開きます。

2. 必要な場合には、データベースへの接続を作成します。

3. データベース接続、スキーマ、表のノードを展開し、データをインポートする表を選択します。

4. 右クリックして「データのインポート」を選択し、「開く」ダイアログでファイルの場所を入力するか参照します。
「OK」をクリックするとデータのインポート・ウィザードが起動します。

詳細は、[F1]を押すか、ウィザード内で「ヘルプ」をクリックしてください。

26.6.4 新規の表にデータをインポートする方法

インポート・プロセスの一部として作成するデータベース表にデータをインポートできます。

新規のデータベース表にデータをインポートするには、次のようにします。

1. メイン・メニューから「ウィンドウ」→「データベース」→「データベース」を選択して、「データベース」ウィンドウを開きます。

2. 必要な場合には、データベースへの接続を作成します。

3. データベース接続とスキーマのノードを展開します。「表」ノードを右クリックし、 「データのインポート」を選択します。

4. 「開く」ダイアログでファイルの場所を入力するか参照します。「OK」をクリックするとデータのインポート・ウィザードが起動します。
詳細は、[F1]を押すか、ウィザード内で「ヘルプ」をクリックしてください。

5. データのインポート・ウィザードの「列の定義」ページで、新しい表の名前を入力します。

26.6.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.6.6 外部表を使用してデータをインポートする方法

データベース接続を介して、データベースの表にデータをインポートできます。

外部表にデータをインポートするには、次のようにします。

1. 必要な場合には、データベースへの接続を作成します。

2. データベース接続とスキーマのノードを展開します。「表」ノードを右クリックして「データのインポート」を選択し、「開く」ダイアログでファイルの場所を入力するか参照します。

3. 「OK」をクリックするとデータのインポート・ウィザードが起動します。
詳細は、[F1]を押すか、ウィザード内で「ヘルプ」をクリックしてください。

4. データのインポート・ウィザードの「データ・プレビュー」ページで、「外部表」を選択します。

5. データのインポート・ウィザードの「オプション」ページで、生成されるファイルのオプションを選択します。データのインポート・ウィザードを完了すると、SQLワークシートにSQLが表示され、SQLを調査および変更できます。問題がなくなったらワークシートを右クリックし、SQL*Plusで「実行」を選択します。

26.6.7 データベースからのデータのエクスポート

データベース接続を介して、データベースの表からデータをエクスポートできます。

データは、ファイルにもクリップボードにも保存できます。次の形式をサポートしています。

- csv。列IDのヘッダー行を含めて、カンマ区切りの値を含むファイルを作成する場合。

注意:

別のデリミタを選択できます。

- fixed。レコードが同じバイト長のときにファイルを作成する場合。

- html。データを持つ表を含むHTMLファイルを作成、挿入する場合と、SQL INSERT文を含むファイルを作成する場合。

- loader。SQL*Loader制御ファイルを作成する場合。詳細は、Oracle Databaseユーティリティの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.6.8 ファイルにデータをエクスポートする方法

データベース接続を介して、データベースの表からデータをエクスポートできます。

データベース表からデータをエクスポートするには、次のようにします。

1. メイン・メニューから「ウィンドウ」→「データベース」→「データベース」を選択して、「データベース」ウィンドウを開きます。

2. 必要な場合には、データベースへの接続を作成します。

3. データベース接続、スキーマ、表のノードを展開し、データをエクスポートする元の表を選択します。

4. 右クリックして「データのエクスポート」を選択し、「データのエクスポート」ダイアログを開きます。
詳細は、[F1]を押すか、ウィザード内で「ヘルプ」をクリックしてください。

26.7 データベースのコピー、比較、エクスポート

データベース・オブジェクトを、ソース・スキーマから宛先スキーマにコピーできます。データベース・オブジェクトとデータをDDLファイルにエクスポートできます。

26.7.1 データベースのコピー方法

データベース・オブジェクトをソース・スキーマから宛先スキーマにコピーできます。同じ名前のオブジェクトが宛先スキーマに存在する場合の動作を決定する操作のタイプに応じた制限が適用されます。

ソース・データベースと宛先データベースの接続があらかじめ定義されている必要があります。

データベースをコピーするには、次のようにします。

1. メイン・メニューから「ツール」→「データベース」→「データベース・コピー」を選択して、新規コピー・ウィザードを開きます。
詳細は、[F1]を押すか、ウィザード内で「ヘルプ」をクリックしてください。

26.7.2 データベース・スキーマの比較方法

異なる2つのスキーマで、同じタイプおよび名前のオブジェクト(たとえば、CUSTOMERSという表)の差異を検出できます。また、オプションで、一方のスキーマ(宛先)のオブジェクトを更新して、もう一方のスキーマ(ソース)の差異を反映できます。

差分ウィザードを使用するには、Oracle DatabaseのOracle Change Managementオプションのライセンスが必要です。ライセンスを購入するには、オラクル社の営業担当者または正規オラクル代理店にお問合せいただくか、Oracle Storeにアクセスして(https://shop.oracle.com)オンラインでご購入ください。

ソース・データベースと宛先データベースの接続があらかじめ定義されている必要があります。

データベース・スキーマを比較するには、次のようにします。

1. メイン・メニューから「ツール」→「データベース」→「データベース差分」を選択して、差分ウィザードを開きます。
詳細は、[F1]を押すか、ウィザード内で「ヘルプ」をクリックしてください。

26.7.3 データベースのエクスポート方法

1つ以上のタイプのデータベース・オブジェクトのうち一部またはすべてのオブジェクトを、SQLデータ定義言語(DDL)文が含まれたファイルにエクスポートし、それらのオブジェクトを作成できます。データベースのエクスポート・ウィザードでは、次の操作が可能です。生成されるDDLファイルの詳細の指定。エクスポートするデータベース・オブジェクトの選択。データのエクスポートの選択と、生成されるファイルに含めるデータを指定するフィルタの適用。

エクスポートするデータベースに対する接続が定義されている必要があります。

データベースをエクスポートするには、次のようにします。

1. メイン・メニューから「ツール」→「データベース」→「データベース・エクスポート」を選択して、データベースのエクスポート・ウィザードを開きます。
詳細は、[F1]を押すか、ウィザード内で「ヘルプ」をクリックしてください。

26.8 OracleおよびOracle以外のデータベースの使用

この項では、OracleデータベースとOracle以外のデータベースを使用する方法について説明します。異なるデータベースに対してJDeveloperで実行できる内容には、制限があります。詳細は、第26.4.2項「Oracle Databaseへの接続の作成方法」と第26.4.3項「Oracle以外のデータベースへの接続の作成方法」で、該当する情報を参照してください。

26.9 データベース・レポートの使用

JDeveloperでは、データベースとデータベース・オブジェクトに関する多くのレポートを使用できます。また、独自のユーザー定義データベース・レポートを作成できます。

オフライン・データベース・オブジェクトについてのレポートも実行できます。

26.9.1 データベース・レポートの使用

JDeveloperでは、データベースとデータベース・オブジェクトに関する多くのレポートを使用できます。また、独自のユーザー定義データベース・レポートを作成できます。

一部のレポートでは、レポートの生成前にバインド変数の入力を求められます。このバインド変数を使用すると、出力をさらに制限できます。すべてのバインド変数のデフォルト値はNULLで、これは、追加の制限を設定しないことを意味します。

「データベース・レポート」ウィンドウを使用すると、データベースで最新情報を問い合せるレポートを実行できます。特定のレポートの表示に必要な時間はレポートごとに異なり、関連するオブジェクトの数と複雑さ、およびデータベースへのネットワーク接続の速度に影響を受ける場合があります。

データベースとデータベース・オブジェクトに関して事前定義済の多くのレポートがあります。

また、独自のユーザー定義レポートを作成できます。

たとえば、レポートの基礎となるSQLを調べると、独自のレポートを作成できます。

データベース・レポートはフォルダに編成され、レポートとフォルダはエクスポートが可能です。

レポートは、エクスポートすることによって共有できます。

レポートを共有するユーザーは、「プリファレンス」ダイアログを使用してJDeveloperのインスタンスにそのレポートを追加します。エクスポートされたレポートは、「ユーザー定義レポート」ノードの下のフォルダにインポートされます。

26.9.1.1 データベース・レポートの実行方法

「データベース・レポート」ウィンドウを使用すると、データベースで最新情報を問い合せるレポートを実行できます。特定のレポートの表示に必要な時間はレポートごとに異なり、関連するオブジェクトの数と複雑さ、およびデータベースへのネットワーク接続の速度に影響を受ける場合があります。

データベース・レポートを実行するには、次のようにします。

1. 開かれていない場合には、「データベース・レポート」ウィンドウを開きます。メイン・メニューで、「ウィンドウ」→「データベース」→「データベース・レポート」を選択します。

2. 実行するレポートを検索し、右クリックして「開く」を選択すると、レポート・ビューア・ウィンドウで以前の結果が上書きされます。または、「新規に開く」でレポート・ビューアの新しいインスタンスを開きます。

3. 「バインド変数」ダイアログが表示された場合は、使用するバインド変数を入力します。詳細は、[F1]を押すか、「バインド変数」ダイアログで「ヘルプ」をクリックしてください。

レポートの結果は、レポート・ビューアに表示されます。

26.9.1.2 レポートのSQLを表示する方法

データベース・レポートの基礎となるSQLを、SQLワークシートで表示できます。

データベース・レポートのSQLを表示するには、次のようにします。

1. 開かれていない場合には、「データベース・レポート」ウィンドウを開きます。メイン・メニューで、「ウィンドウ」→「データベース」→「データベース・レポート」を選択します。

2. レポートを実行します。

3. レポート・ビューアで、「SQLワークシートでレポートを実行」ボタンをクリックします。SQLワークシートが開き、レポートのSQLコードが表示されます。

26.9.1.3 ユーザー定義データベース・レポートの作成方法

データベース機能とオブジェクトについて、独自のレポートを定義できます。

ユーザー定義レポートを作成するには、次のようにします。

1. 開かれていない場合には、「データベース・レポート」ウィンドウを開きます。メイン・メニューで、「ウィンドウ」→「データベース」→「データベース・レポート」を選択します。

2. 「ユーザー定義レポート」ノード、またはこのノードの下に作成したフォルダを右クリックして、「レポートの追加」を選択します。

3. 「レポートの作成」ダイアログで、レポートのSQLの名前を入力します。詳細は、[F1]を押すか、「レポートの作成」ダイアログで「ヘルプ」をクリックしてください。

26.9.1.4 ユーザー定義データベース・レポートの編集方法

ユーザー定義レポートは編集が可能です。

ユーザー定義レポートを編集するには、次のようにします。

1. 開かれていない場合には、「データベース・レポート」ウィンドウを開きます。メイン・メニューで、「ウィンドウ」→「データベース」→「データベース・レポート」を選択します。

2. 「ユーザー定義レポート」ノードを開き、編集するレポートを右クリックして「編集」を選択します。

3. 「レポートの作成」ダイアログで、レポートのSQLの名前を入力します。詳細は、[F1]を押すか、「レポートの作成」ダイアログで「ヘルプ」をクリックしてください。

26.9.1.5 レポートのフォルダの作成方法

ユーザー定義レポートはフォルダ内にまとめておくことができます。

フォルダを作成するには:

1. 開かれていない場合には、「データベース・レポート」ウィンドウを開きます。メイン・メニューで、「ウィンドウ」→「データベース」→「データベース・レポート」を選択します。

2. 「ユーザー定義レポート」ノードを右クリックして、「フォルダの追加」を選択します。

3. 「フォルダの作成」ダイアログで、フォルダの名前を入力します。作業中に詳細を参照するには、[F1]を押すか、ダイアログで「ヘルプ」をクリックします。

26.9.1.6 ユーザー定義レポートのエクスポート方法

データベース・レポート、またはデータベース・レポートのフォルダをエクスポートできます。

レポートを共有している場合にそのレポートをエクスポートすると、レポートを共有するユーザーのJDeveloperインスタンスでレポートを使用できるようになります。

データベース・レポートまたはフォルダをエクスポートするには、次のようにします。

1. 開かれていない場合には、「データベース・レポート」ウィンドウを開きます。メイン・メニューで、「ウィンドウ」→「データベース」→「データベース・レポート」を選択します。

2. 共有するレポートまたはフォルダを右クリックして、「エクスポート」を選択します。

3. レポートの場所を「保存」ダイアログに入力します。レポートのデフォルト名はexplain.xmlです。

26.9.1.7 ユーザー定義レポートのインポート方法

エクスポートしたデータベース・レポートやフォルダは、ユーザー定義のフォルダにインポートできます。

まず、レポートを保持するフォルダを作成する必要があります。

これは、データベース・レポートを共有する簡単な方法でもあります。

データベース・レポートまたはフォルダをインポートするには、次のようにします。

1. 開かれていない場合には、「データベース・レポート」ウィンドウを開きます。メイン・メニューで、「ウィンドウ」→「データベース」→「データベース・レポート」を選択します。

2. 「ユーザー定義レポート」ノードの下で、レポートを追加するフォルダを右クリックして「インポート」を選択します。

3. 「開く」ダイアログで、「保存」ダイアログを使用してエクスポートされたレポートの場所を入力または参照します。レポートのデフォルト名はexplain.xmlです。

データベース・レポートの共有方法

データベース・レポートを共有できます。エクスポートしたレポートは、起動したJDeveloperに追加できます。

レポートを共有する前に:

- レポートを実行する必要があります。

- 次にレポートをエクスポートする必要があります。

データベース・レポートの共有:

1. メイン・メニューから、「ツール」→「プリファレンス」を選択します。

2. 「プリファレンス」ダイアログで、「データベース」→「ユーザー定義の拡張」を選択します。詳細は、[F1]を押すか、「プリファレンス」ダイアログ内で「ヘルプ」をクリックしてください。

3. 「行の追加」をクリックして「タイプ」の下で「レポート」を選択し、「ロケーション」の下でエクスポートされたレポートの場所を入力または参照します。

4. JDeveloperを再起動します。

5. 「ウィンドウ」→「データベース」→「データベース・レポート」を選択して、「データベース・レポート」ウィンドウを開きます。「データベース」ウィンドウ内の「共有レポート」ノードの下に共有レポートが表示されます。

26.9.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.10 データベース接続のトラブルシューティング

この項では、データベースの接続で問題が発生した場合に役立つ情報を示します。

26.10.1 互換性のないJDKバージョンを使用するデータベースへのデプロイ

データベースにJavaをデプロイするときに「ORA-29552: 検証の警告: java.lang.UnsupportedClassVersionError」が表示された場合には、そのプロジェクトに使用されているJDKのバージョンを、データベースで使用しているものと互換性のあるバージョンに変更する必要があります。

JDKの詳細は、JDeveloperの認定情報(http://www.oracle.com/technetwork/developer-tools/jdev/documentation/index.html)を参照してください。

データベースで使用されるJDKの詳細は、データベースのドキュメントを参照してください。

プロジェクトのJava SEをプロジェクトごとに変更する方法の詳細は、第4.3.11項「個々のプロジェクトのプロパティの設定方法」のターゲット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を使用して、次の作業を実行できます。

- データベース・オブジェクトの作成、編集または削除

- オフライン・データベース・オブジェクトの作成、編集または削除

- データベース定義のオフライン・バージョンで作業を行った後、これらの定義をすぐに処理されるファイルに生成するか、またはこの時点ではデータベース接続を通して表または他のデータベース・オブジェクトを作成します。

- オフライン・データベースをモデル化し、ダイアグラム上で稼働中のデータベース接続内のデータベース・オブジェクトをモデル化します。データベースのモデル化の詳細は、第5.8項「データベース・ダイアグラムによるモデリング」を参照してください。

27.2 データベース・オブジェクトの作成、編集および削除

データベース・オブジェクトおよびオフライン・データベース定義を作成したり、これらのオブジェクトを編集したり、これらのオブジェクトを削除またはデータベース接続から削除できます。

27.2.1 オフライン・データベース定義の使用

この項では、データベース・スキーマのコンテキスト外での表、ビューおよび制約などのデータベース・オブジェクトの作業方法について説明します。オフライン・データベースはJDeveloperのテクノロジの1つで、稼働中のデータベース接続でのデータベース・オブジェクト作成および編集に使用されるものと同じエディタを使用して、プロジェクト内で.xmlファイルとして保存されたデータベース・オブジェクト定義を作成および編集できます。

新しいオフライン・データベース・オブジェクトを作成できます。または、稼働中のデータベースとの接続からデータベース・オブジェクトをリバース・エンジニアリングすることもできます。作業の終了後、オンライン・データベース・スキーマでデータベース定義を作成および更新するために使用可能なDDLを生成できます。

JDeveloperオフライン・データベースでは、次のオブジェクト・タイプをサポートします。

- 機能

- 索引(表の一部として)

- データベース・リンク

- マテリアライズド・ビュー

- マテリアライズド・ビュー・ログ

- パッケージ

- プロシージャ

- 順序

- シノニム

- 表

- 表領域

- トリガー

- データ型

- ビュー

これらのオブジェクト・タイプに対するOracle Databaseのサポートの詳細は、『Oracle Database SQL言語リファレンス』を参照してください。

オフライン・データベース定義の使用

JDeveloperでオフライン・データベース定義を使用する場合、XMLファイルとして格納されているが、稼働中のデータベース接続内のオブジェクトのモデルを提供するオブジェクトを使用します。稼働中のデータベース接続にオフライン・データベース定義を生成することにより、データベース・オブジェクトを作成、変更または削除できます。

JDeveloperには、データベースのコンテキスト外で表や制約などのデータベース・オブジェクトを作成および編集する必要がある場合に使用できるツールがあります。次に例を示します。

- 新しい表およびビューを作成したり、データベースに情報を生成できます。

- 新しい表およびビューを作成したり、データベースに情報を生成し、これを編集して後でデータベース接続上で実行できます。

- データベース・スキーマから表およびビューをリバース・エンジニアリングし、必要な変更を加えた後、その変更内容を同じデータベース・スキーマ、新しいデータベース・スキーマ、またはファイルに反映して、後日データベースに対して実行することもできます。JDeveloperでは、データベースへのコミット前に変更を手動で調整できます。

- JDeveloperのモデル作成ツールを使用して、オフライン・データベース・オブジェクトをダイアグラム上に視覚的に表示できます。データベースのモデル化の詳細は、第5.8項「データベース・ダイアグラムによるモデリング」を参照してください。

オフライン・データベース・ファイルのパスの設定方法

プロジェクト設定を構成して、プロジェクトから使用する、オフライン・データベース・オブジェクトのルート位置を指定できます。データベース・パスはデフォルトで構成されるため、次の場合のみモデル・パスの変更が必要になります。

- 他のプロジェクトに格納されているオフライン・データベース・オブジェクトを含める場合

- 別の場所に新しいオフライン・データベース・オブジェクト・ファイルを格納する場合

プロジェクトのデータベース・パスにファイル・システム上のパスを追加すると、オフライン・データベース・オブジェクトを複数のプロジェクト間で共有できます。データベース・パスにファイル・システム上のパスが入力された順序は、オフライン・データベース・オブジェクトを検索するディレクトリの順番を示します。データベース・パスの最初の場所は、新しいオフライン・データベース・オブジェクト・ファイルが格納される場所です。

データベース・オブジェクトをモデリングしている場合、モデル・パス(「プロジェクト・プロパティ」ダイアログの「モデラー」プリファレンス・ページにあります)を使用して、ダイアグラムのファイルの場所を指定します。

注意:

プロジェクトに別のデータベース・パスを追加する場合は、続行する前に作業を保存してください。データベース・パスを変更すると、プロジェクトはオフライン・データベース・オブジェクト定義を再ロードします。そのため、表、ビュー、スキーマの変更や新しいオブジェクトなど、未保存の作業は失われる可能性があります。

すべての新規プロジェクトに使用されるデータベース・オブジェクト用としてデフォルトのルート・ディレクトリを設定できます。

新規プロジェクト用のデータベース・オブジェクトにデフォルトのルート・ディレクトリを設定するには、次のようにします。

1. 「アプリケーション」→「デフォルト・プロジェクト・プロパティ」を選択します。

2. 「プロジェクト」→「ソースパス」→「オフライン・データベース」を選択してルート・ディレクトリを入力します。

既存のプロジェクトのデータベース・パスを変更できます。

既存のプロジェクトのデータベース・パスを設定するには、次のようにします。

1. プロジェクトを右クリックして、「プロジェクト・プロパティ」を選択します。

2. 「プロジェクト」→「ソースパス」→「オフライン・データベース」を選択して、プロジェクトのオフライン・データベース・オブジェクトのファイル・システムのロケーションを入力します。セミコロン(;)を使用して複数のファイル・システム・ロケーションを区切ります。

3. 「対象」および「除外」タブを使用すると、サブフォルダを選択して追加および除外できます。詳細は、[F1]を押すか、ダイアログ内で「ヘルプ」をクリックしてください。

27.2.1.1 オフライン・データベース

JDeveloperでは、パッケージと同様の方法でコンテナとして動作するオフライン・データベースのコンテキストでオフライン・データベース定義が使用されます。「アプリケーション」ウィンドウでは、オフライン・データベースは、図27-1のように「オフライン・データベース・ソース」ノードの下に表示されます。

図27-1 「アプリケーション」ウィンドウのオフライン・データベース

この場合、Javaクラスとデータベース・ダイアグラムが「アプリケーション・ソース」ノードの下のパッケージ「project1」で作成されていて、オフライン・データベース定義がオフライン・データベース・ソース・ノードの下にある「DATABASE1」というオフライン・スキーマでいくつか作成されています。

オフライン・データベースを作成する場合、オフライン・データベースのデータベース・エミュレーションを選択します。

27.2.1.2 オフライン・データベース・エミュレーションの構成

オフライン・データベースがエミュレートするデータベースのタイプを指定できます。これにより、プロジェクトでサポートされるデータ型が決まります。

JDeveloperと互換性のあるデータベースのバージョンについては、JDeveloperの認定情報(http://www.oracle.com/technetwork/developer-tools/jdev/documentation/index.html)を参照してください。

27.2.1.3 オフライン・データベースの作成方法

オフライン・データベースは、オフライン・スキーマおよびオフライン・データベース・オブジェクト定義が含まれる「アプリケーション」ウィンドウ内のノードです。

オフライン・データベースを作成するには、次のようにします。

1. 「アプリケーション」ウィンドウで、目的のプロジェクトを探します。

2. プロジェクトまたはプロジェクト内の任意の項目を右クリックして、「新規」を選択し、「新規ギャラリ」を表示します。

3. 「新規ギャラリ」で、「データベース層」を開き、「オフライン・データベース・オブジェクト」を選択し、「オフライン・データベース」を選択します。

4. 「オフライン・データベースの作成」ダイアログで、オフライン・データベースの名前を入力し、エミュレートするデータベース・タイプを選択します。
詳細を参照するには、「オフライン・データベースの作成」ダイアログ内で[F1]を押すか「ヘルプ」をクリックします。

27.2.1.4 オフライン・スキーマ

JDeveloperでは、オフライン・データベースのコンテキストでオフライン・データベース定義が使用されます。オフライン・データベースでは、オフライン・スキーマが稼働中のデータベース接続内のスキーマ(またはユーザー)に相当します。「アプリケーション」ウィンドウでは、オフライン・スキーマは、図27-2のように「オフライン・データベース・ソース」ノードの下に表示されます。

図27-2 「アプリケーション」ウィンドウのオフライン・スキーマ

この場合、Javaクラスとデータベース・ダイアグラムが「アプリケーション・ソース」ノードの下のパッケージ「project1」で作成されていて、オフライン・データベース定義が、「オフライン・データベース・ソース」ノードの下にある「DATABASE1」というオフライン・データベースに含まれる「SCHEMA1」というスキーマでいくつか作成されています。

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。列のリテラル値のリストで表をパーティション化します。これは、個々の行が固有のパーティションにマップする方法に関する制御に便利です。

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にリバース・エンジニアリングされると、「マテリアライズド・ビュー・ログの編集」ダイアログの「プロパティ」ページでロールバック・セグメントが選択されず、制約が「強制」として表示されます。必要に応じて、「マテリアライズド・ビュー・ログの編集」ダイアログのオプションを変更します。

オフライン・タイプ定義を作成するには、次のようにします。

1. 「アプリケーション」ウィンドウで、目的のアプリケーションとプロジェクトを展開します。

2. プロジェクトまたはその下のオフライン・スキーマなどのノードを右クリックし、「新規」→「新規ギャラリ」を選択して、「新規ギャラリ」を表示します。

3. 「新規ギャラリ」で、「データベース層」を開き、「オフライン・データベース・オブジェクト」を選択します。

4. 「タイプ」を選択して、「オフライン・タイプの作成」ダイアログを起動します。

5. パラメータを入力し、型を定義するオプションを選択します。
詳細を参照するには、「オフライン・タイプの作成」ダイアログ内で[F1]を押すか「ヘルプ」をクリックします。

ユーザー定義のタイプを編集するには、「アプリケーション」ウィンドウでそのタイプをダブルクリックします。このタイプが含まれるSQLがソース・エディタで開きます。

オフライン・データベース・オブジェクト定義を作成するには、次のようにします。

注意:

オフライン・スキーマのリレーショナル表定義を作成して使用することはできますが、オブジェクト・リレーショナル表定義を作成して使用することはできません。

1. 「アプリケーション」ウィンドウで、プロジェクトまたはプロジェクト内の任意の項目を右クリックして、「新規」を選択し、「新規ギャラリ」を表示します。

2. 「新規ギャラリ」で、「データベース層」を開き、「オフライン・データベース・オブジェクト」を選択します。

3. 作成するオフライン・データベース・オブジェクトを選択し、「作成」ダイアログまたはウィザードを起動します。
詳細を参照するには、「オフライン・タイプの作成」ダイアログ内で[F1]を押すか「ヘルプ」をクリックします。

ポップアップ・メニューのショートカットを使用するには、次のようにします。

「アプリケーション」ウィンドウで、オフライン・スキーマを右クリックして「新規データベース・オブジェクト」を選択し、作成するオブジェクトを選択します。

オフライン・データベース定義を削除するには、次のようにします。

- 「アプリケーション」ウィンドウで、オフライン・オブジェクトを含むプロジェクト、オフライン・データベースおよびオフライン・スキーマを開きます。オフライン・オブジェクトを右クリックして「削除」を選択します。
または、オフライン表を右クリックして「ファイル」→「削除」を選択します。

注意:

オフライン表に依存性がある場合、「削除の確認」ダイアログに警告が表示され、使用方法を確認できます。それでもオフライン表を削除することを選択する場合、オブジェクトも削除されることを示す警告がカスケード削除の確認ダイアログに表示されます。

27.2.1.7 データベース・オブジェクトに基づいた定義のリバース・エンジニアリング方法

オンライン・データベース・スキーマからデータベース・ダイアグラムに表、ビュー、シノニム、マテリアライズド・ビューおよび順序をドラッグすると、オフライン・データベース・オブジェクトとしてアクセスできるようになります。

データベース・ダイアグラムにオブジェクトをドラッグするには、次のようにします。

1. 新規データベース・ダイアグラムを作成します。
または、既存のダイアグラムを開きます。

2. データベース接続を選択します。次のどちらかに移動します。

- 「ウィンドウ」→「データベース」→「データベース」ウィンドウ

- 「アプリケーション」ウィンドウの「アプリケーション・リソース」

「IDE接続」またはアプリケーションを展開し、データベース接続を選択します。

3. 接続で、スキーマを開いて目的のノード(「表」、「ビュー」、「マテリアライズド・ビュー」、「順序」または「シノニム」)を開きます。

4. モデリングするオブジェクトを選択してデータベース・ダイアグラムにドラッグします。この操作により、「場所の指定」ダイアログが開きます。「オブジェクトをプロジェクトにコピー」が選択されていることを確認して「OK」をクリックします。オブジェクトがダイアグラムと「アプリケーション」ウィンドウに表示されます。

[Ctrl]キーを押しながら複数のオブジェクトを選択することで、データベース・ダイアグラム上に同じタイプのオブジェクトを2つ以上ドラッグできます。

注意:

同じオブジェクトを複数回リバース・エンジニアリングすると、警告メッセージが表示されます。「プロジェクトにコピー」を使用している場合、続行することを選択すると、既存のオブジェクトを置換または削除できます。データベース・オブジェクトをダイアグラムにドラッグし、続行することを選択すると、新規オブジェクトによって既存のオブジェクトが上書きされます。

データベース・オブジェクトおよびオフライン・データベース定義をプロジェクトにリバース・エンジニアリングする方法

データベース・オブジェクトをデータベース・スキーマからオフライン・データベースにリバース・エンジニアリングできます。これにより、オフライン・データベース・オブジェクトとして使用できるようになります。また、オフライン・データベース・オブジェクトをプロジェクトにコピーすることもできます。

別のデータベース・バージョンをエミュレートするオフライン・データベースにデータベース・オブジェクトをリバース・エンジニアリングしようとすると、続行方法に関するガイダンスを示すエラー・メッセージが表示されます。通常、オフライン・データベースでは同じデータベース・エミュレーションがソース・データベースとして使用されるようにすることをお薦めします。

ウィザードのフィルタを適用して、興味があるオブジェクトのみを表示できます。スキーマ内に多くのオブジェクトがある場合、自動問合せを停止すると、フィルタ文字を入力するたびにウィザードがリフレッシュすることはありません。

フィルタを適用して、リバース・エンジニアリングに使用可能として表示されるオブジェクトを選択できます。「オブジェクト・ピッカー」ページ(ウィザードのステップ3)では、次の操作が可能です。

- 「名前フィルタ」に文字を入力して、使用可能なオブジェクトのリストを名前でフィルタします。「名前フィルタ」では大文字と小文字が区別されます。

- 多数のオブジェクトが存在する場合、自動問合せをオフにし、使用するフィルタを入力した後に「問合せ」をクリックします。

データベース・オブジェクトをリバース・エンジニアリングするには、次のようにします。

1. 「アプリケーション」ウィンドウで、目的のプロジェクトを選択します。

2. 「ファイル」→「新規」を選択して「新規ギャラリ」を開きます。

3. 「カテゴリ」ツリーで「データベース層」を開き、「オフライン・データベース・オブジェクト」を選択します。

4. 「項目」リストで「ソース・データベースからのオフライン・データベース・オブジェクト」をダブルクリックして、「ソース・データベースからのオフライン・データベース・オブジェクト」ウィザードを起動します。
詳細は、[F1]を押すか、ウィザード内で「ヘルプ」をクリックしてください。

27.2.1.8 オフライン表と外部キー

稼働中のデータベース・スキーマからJDeveloperに表をリバース・エンジニアリングする場合、外部キーについての情報は必ずしも利用できるとはかぎりません。以降の各項では、外部キー情報の処理方法をケース別に説明します。

外部キーの両端の表をリバース・エンジニアリング

これが最も単純なケースです。JDeveloperが、外部キーが間にある複数の表をリバース・エンジニアリングする場合、その外部キーに関する情報もリバース・エンジニアリングされます。これにより外部キーは、データベース・ダイアグラムおよび「オフライン表の編集」ダイアログの制約情報ページに正しく表示されます。

表での作業を終了した後、その変更内容を直接データベースに反映できます。

ベスト・プラクティス

前述の情報から、新しいデータベース・スキーマの基礎となる表をリバース・エンジニアリングする場合、使用しない表に対する外部キーについて注意する必要がないことがわかります。安全に変更し、オンライン表を新しいスキーマに生成できます。

しかし、表をリバース・エンジニアリングして必要な変更を加え、その変更内容を同じデータベース・スキーマに反映する場合は、表を変更するかどうかにかかわらず、外部キー関係を持つすべての表をリバース・エンジニアリングする必要があります。これにより、外部キーについての正しい情報をSQLファイルまたはデータベースに直接生成できるようになります。「ソース・データベースからのオフライン・データベース・オブジェクト」ウィザードの「操作の指定」ページを使用すると、依存関係をリバース・エンジニアリングできます。

27.2.1.9 オフライン・データベース・オブジェクトのリフレッシュ方法

リバース・エンジニアリングしたオフライン・オブジェクトは、その元のデータベース接続からリフレッシュできます。オブジェクトを再度リバース・エンジニアリングすると、そのオフライン・オブジェクトに加えた変更がすべて失われることに注意してください。

注意:

JDeveloperでオフライン・オブジェクトとして作成した後、データベースに生成したオブジェクトはリフレッシュできません。データベースのオブジェクトに変更を加え、その変更をオフライン・オブジェクトに反映するには、データベースからオブジェクトをリバース・エンジニアリングし、「操作の指定」ページで「置換」を選択して、オフライン・オブジェクトを上書きする必要があります。

データベースからオブジェクトを再度リバース・エンジニアリングするには、次のようにします。

1. 「アプリケーション」ウィンドウでオフライン・オブジェクトを右クリックし、データベース接続から「リフレッシュ」を選択します。

2. 「オフライン・オブジェクトの上書きの確認」ダイアログが表示されたら、オブジェクトをリバース・エンジニアリングすることを確認し、 「はい」を選択します。それ以外の場合は、「いいえ」をクリックします。これには数秒かかることがあります。

27.2.1.10 テンプレートからのオブジェクトの作成方法

オフライン・データベース・オブジェクトをテンプレートに基づいて作成できます。これには、次のような目的があります。

- 作成したすべての表に対してデフォルトの記憶域オプション・セットを使用します。

- 作成したすべての表に対してユーザー・プロパティ値のデフォルト・セットを使用します。

- 作成したすべての表に対して列のデフォルト・セットを使用します。

テンプレート表では、デフォルトの主キー、列順序およびトリガーを作成できます。

テンプレートを使用して新規オブジェクトを作成する場合、テンプレートに設定されているプロパティが新規オブジェクトにコピーされ、その結果として作成ダイアログのオプションが事前移入されます。所有されたオブジェクトのネームスペースが親オブジェクトでない場合、名前は、親オブジェクト内のみでなく、スキーマ内で一意である必要があります。たとえば、索引名および制約名は、所有する表、マテリアライズド・ビューまたはビュー内のみでなく、スキーマ内で一意である必要があります。

オフライン・テンプレートの作成方法

オフライン・データベース・オブジェクトをテンプレートから作成できます。

オフライン・データベースのデフォルト・テンプレートを作成するには、次のようにします。

1. 新規オフライン・データベースを作成します。

2. 「オフライン・データベースの作成」ダイアログで、「デフォルト・テンプレートの初期化」を選択します。「OK」をクリックすると、TEMPLATE_objectという名前のデフォルトのテンプレート・オブジェクトとともに、オフライン・データベースが作成されます。テンプレート・データベース・オブジェクトを編集するには、目的のオブジェクトをクリックして「プロパティ」を選択します。これにより、オブジェクトの編集ダイアログが開きます。

既存のオフライン・データベースのデフォルト・テンプレートを編集するには、次のようにします。

- 「アプリケーション」ウィンドウでテンプレート・オブジェクトに移動し、ポップアップ・メニューから「開く」を選択します。テンプレート・オブジェクトが対応するエディタで開き、そこで編集できます。

テンプレートからのオフライン・データベース・オブジェクトの作成方法

テンプレートから作成するオフライン・データベース・オブジェクトは、「アプリケーション」ウィンドウ内のオフライン・データベース・オブジェクトとして、またはデータベース・ダイアグラムでモデル化されたオフライン・データベース・オブジェクトとして作成できます。

テンプレートに基づいてオフライン・データベース・オブジェクトを作成する前に、テンプレートを最初に作成する必要があります。

テンプレートに基づいてオフライン・データベース・オブジェクトを作成するには、次のようにします。

1. 「アプリケーション」ウィンドウで、プロジェクトまたはプロジェクト内の任意の項目を右クリックして、「新規」を選択し、「新規ギャラリ」を表示します。

2. 「新規ギャラリ」で、「データベース層」を開き、「オフライン・データベース・オブジェクト」を選択します。

3. 「データベース・オブジェクトをテンプレートから」を選択し、「テンプレート・オブジェクトの選択」ダイアログを起動します。詳細を参照するには、「オブジェクトの作成」ダイアログ内で[F1]を押すか「ヘルプ」をクリックします。

4. テンプレートから作成するオブジェクト・タイプを選択します。「OK」をクリックすると、テンプレートの値が事前入力された状態で「オブジェクトの作成」ダイアログが開きます。詳細を参照するには、「オブジェクトの作成」ダイアログ内で[F1]を押すか「ヘルプ」をクリックします。
「OK」をクリックすると、オブジェクトが作成され、「アプリケーション」ウィンドウ内のオフライン・データベースおよびオフライン・スキーマの下に表示されます。

27.2.1.11 ユーザー・プロパティ・ライブラリの使用

ユーザー定義のプロパティをデータベース・オブジェクトに追加できます。データベース・オブジェクトのインスタンスとして、これらのユーザー定義のプロパティに特定の値を割り当てることができます。

オフライン・データベースに定義に定義可能なプロパティを制限するライブラリを使用できます。たとえば、すべての表に特定のタイプの列を使用する必要がある、特定の値のみが使用可能である、またはプロパティが必須である、などの制限を設定できます。

ユーザー・プロパティ・ライブラリは、オフライン・データベースのコンテキストで定義されます。最初に、使用するオフライン・データベース・オブジェクトのタイプについてユーザー・プロパティを定義する必要があります。これにより、オフライン・データベース・オブジェクトの作成時にライブラリを使用できるようになります。

ユーザー・プロパティ・ライブラリには、次に対して定義されたプロパティを含めることができます。

- 表、列、制約、索引

- データベース・リンク

- 関数、パッケージ、プロシージャ

- マテリアライズド・ビュー

- マテリアライズド・ビュー・ログ

- 順序

- シノニム

- 表領域

- トリガー

- タイプ

- ビュー

27.2.1.11.1 ユーザー・プロパティ・ライブラリの作成および編集方法

ユーザー・プロパティ・ライブラリは、オフライン・データベースから独立していますが、オフライン・データベースの編集ダイアログを使用すると、これらに追加できます。

ユーザー・プロパティ・ライブラリを作成または使用するには、次のようにします。

1. 「アプリケーション」ウィンドウでプロジェクトを展開し、オフライン・データベースを右クリックして、「プロパティ」を選択します。

2. 「オフライン・データベースの編集」ダイアログで、「ユーザー・プロパティ・ライブラリ」を選択します。

3. 次の操作を実行できます。

- 新規ライブラリを作成します。この場合、ライブラリのファイル名および場所を入力します。

- ファイル・システム内に存在するライブラリを追加します。この場合、ファイル・システム上のライブラリの場所まで移動します。

- 既存のライブラリをリストから選択して編集します。

4. 「ユーザー・プロパティ・ライブラリ・ファイルの編集」ダイアログでユーザー・プロパティの値を入力します。詳細を参照するには、ダイアログ内で[F1]を押すか「ヘルプ」をクリックします。

オフライン・データベース・オブジェクト・タイプに対するユーザー・プロパティ・ライブラリを作成したら、そのライブラリ使用してユーザー・プロパティ値を格納できます。

データベース・オブジェクトを検証するためにユーザー定義のプロパティ値の検証を実行するには、独自の検証コードを作成します。これは、このユーザー・ガイドの範囲外の拡張手順です。詳細は、Oracle Extension SDK Java APIリファレンスのUserPropertyValidationManagerに関する項を参照してください。Extension SDKの使用の詳細は、『Oracle JDeveloper拡張機能の開発』を参照してください。

27.2.1.11.2 ユーザー・プロパティ・ライブラリの使用方法

データベース・オブジェクトに対してユーザー・プロパティを使用します

オフライン・データベース・オブジェクトでユーザー・プロパティを使用する前に、ユーザー・プロパティ・ライブラリを定義する必要があります。

オフライン・データベース・オブジェクトでユーザー・プロパティを使用するには、次のようにします。

1. オフライン・データベース・オブジェクトを作成します。

2. オフライン・データベース・オブジェクト・ダイアログの「ユーザー・プロパティ」ページまたはタブにナビゲートし、ユーザー・プロパティの値を入力します。

27.2.1.12 データベースに対するオフライン・データベース・オブジェクトの生成方法

「データベース・オブジェクトからSQLを生成」ウィザードを使用すると、作成または編集したオフライン・オブジェクトを使用してデータベース・スキーマを更新する方法を選択できます。次の操作を実行できます。

- データベースにオブジェクトを作成または置換します。
SQLファイルの生成を選択した場合は、CREATE文とDROP文が含まれます。

- オフライン・データベース・オブジェクトに対して行った変更を使用して、既存のデータベース・スキーマ・オブジェクトを更新します。JDeveloperは、最初にデータベース・スキーマ内のオブジェクトに対するオフライン・データベース定義を調整して、必要な変更を認識します。手動調整を実行して一部の変更のみを選択することを選択できます。
SQLファイルの生成を選択した場合は、ALTER文が含まれます。

データベースに変更内容を生成するか、変更を調整するかのどちらを選択するにかかわらず、次の処理を選択できます。

- 検証するSQLファイルを生成し、後でデータベースに対して実行

- データベースを直接変更

また、1つ以上のオフライン表を生成し、それらの表をリバース・エンジニアリングした元のデータベース接続に戻す場合は、「アプリケーション」ウィンドウから直接この処理を行うこともできます。

注意:

外部キーを含む表を変更した場合は、データベースに変更を反映したときに、外部キーが削除されることがあります。

27.2.1.12.1 調整に関する問題

この項では、調整時に発生する可能性がある問題について説明します。

制約は変更不可

調整中に制約が作成または削除されることがあり、変更できなくなる場合があります。実行できるALTER TABLE制約は、ADD CONSTRAINT、DROP CONSTRAINT、ADD COLUMN、DROP COLUMNおよびWIDEN COLUMNのみです。

名前を変更した表は調整不可

表の名前は、表をリバース・エンジニアリングするときやオフラインでの編集時に変更できます。名前を変更した表をデータベースに戻すように調整すると、データベースには新しい名前の表のレコードが存在しないため、エラー・メッセージを受け取ります。

これを避けるには、データベースに名前を変更した表を作成します。これは調整、置換することはできません。

27.2.1.12.2 ファイルに対するデータベース定義の生成方法

オンライン・データベース・スキーマに対して実行できる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では、名前が変更されたオフライン・データベース・オブジェクト(表など)またはサブオブジェクト(列や制約など)を追跡する機能が制限されています。状況によっては、名前が変更されていないデータベース・オブジェクトが削除され、新しい名前を使用して新規データベース・オブジェクトが作成されます。この結果、データの損失に繋がる可能性があります。このような状況の発生を回避するために、このような可能性があることに注意する必要があります。

データベース接続に対してオフライン・データベース・オブジェクトが生成される場合、このような状況が発生する可能性があります。この場合、オフライン・データベース・オブジェクトまたはサブオブジェクト(列や索引など)の名前を変更してから、データベース接続に対して変更済のオフライン・データベース・オブジェクトを生成すると、データベースでは、元の名前のオブジェクトが削除され、新しい名前を使用した新規オブジェクトが作成されます。

データの損失に繋がる可能性のある別の状況として、オブジェクトをデータベース接続からリバース・エンジニアリングした後で、オフライン・データベース・サブオブジェクトの名前を変更する場合があります。この場合、データベース接続に対する生成を初めて行う際に、データベース・サブオブジェクトが正しく更新されます。ただし、データベース接続に対する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: 主キーが定義されていないすべての表を表示します。

「事前作成レポート」ウィザードを実行すると、選択した各事前作成レポートの個別ファイルが指定した場所に生成され、このファイルが「アプリケーション」ウィンドウ内の「リソース」の下に表示されます。

注意:

現在のプロジェクトの外部にあたる場所を指定した場合、レポートは生成されますが、「アプリケーション」ウィンドウには表示されません。これらのファイルの名前は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クラス・モデルをオフライン・データベース・モデルに変換できます。詳細は、第5.3.6.2項「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.2.4 日付値と時間値の検証

データベースにオフライン表定義または表を作成して日時のデフォルト値を使用すると、JDeveloperではこれらの値が検証されます。日付の場合は、次の値を使用できます。

- Oracle日付関数

- 引用符で囲んだ書式DD-MON-RRの文字列。各項目の意味は次のとおりです。

- 月にはフルスペルの表記を使用できます。

- 年は省略せずに表記できます(2011など)。

- セパレータ(-)は省略できます。また、英数字以外を空白と組み合せて使用することもできます。

タイムスタンプには、書式DD-MON-RR HH.MI.SSXFF AM TZRの文字列を引用符で囲んで使用できます。各項目の意味は次のとおりです。

- 月にはフルスペルの表記を使用できます。

- 年は省略せずに表記できます(2011など)。

- 時間と分は必須です。

- 秒、ミリ秒、AM/PMおよびタイム・ゾーンはオプションです。

- セパレータ(-)は省略できます。また、英数字以外を空白と組み合せて使用することもできます。

データベースから表をリバース・エンジニアリングするときに、日付値と時間値が前述のルールに従って検証されます。検証が原因でOracle Databaseから表をリバース・エンジニアリングできない場合は、検証機能をオフにできます。

日付と時間の検証をオフするには、次のようにします。

1. 「ツール」→「プリファレンス」→「データベース接続」を選択します。

2. 「日付と時間のデフォルト値を検証」の選択を解除します。

27.3 オフライン・オブジェクトおよびデータベース・オブジェクトからのスクリプトの作成

データベース・オブジェクトおよびオフライン・データベース定義を、SQLスクリプト、Oracle Warehouse Builderにインポート可能なOracle MetaBase (OMB)ファイル、またはSXMLファイルに生成できます。

27.3.1 SQLスクリプトの作成方法

SQLスクリプトは、オフライン・データベース定義またはデータベース・オブジェクトから作成できます。

SQLスクリプトは、script1.sqlというデフォルト名で生成されます。SQLスクリプトはSQLワークシートで開き、「アプリケーション」ウィンドウ内の現在のプロジェクトに対する「リソース」ノードの下に表示されます。

「データベース」ウィンドウまたは「アプリケーション」ウィンドウからSQLスクリプトを作成するには、次のようにします。

1. 「表示」→「データベース」→「データベース」ウィンドウを選択して、データベース接続とスキーマを展開し、スクリプトの作成元とするデータベース・オブジェクトを右クリックします。
または

「ウィンドウ」→「アプリケーション」を選択して、スクリプトの作成元とするオフライン・データベース定義に移動し、スクリプトの作成元とするデータベース・オブジェクトを右クリックします。

2. 「生成」→「SQLスクリプト」を選択します。

3. 「データベース・オブジェクトからSQLを生成」ウィザードが開きます。このウィザードで、スクリプトの作成方法の詳細を指定します。詳細を参照するには、ダイアログ内で[F1]を押すか「ヘルプ」をクリックします。

4. 「終了」をクリックすると、スクリプトが作成され、ソース・エディタで開きます。

「新規ギャラリ」からSQLスクリプトを作成するには、次のようにします。

1. 「ファイル」→「新規」を選択して「新規ギャラリ」を開きます。

2. 「新規ギャラリ」の「カテゴリ」ツリーで、「データベース層」の下の「データベース・ファイル」を選択します。

3. 「項目」リストでソース・データベースからSQLスクリプトをダブルクリックします。

4. データベース・オブジェクトからSQLスクリプトを生成ウィザードで、スクリプト、ソースおよびオブジェクトの詳細を入力します。
ウィザードのヘルプを参照するには、[F1]を押すか「ヘルプ」をクリックします。

5. 「終了」をクリックすると、スクリプトが作成され、ソース・エディタで開きます。

27.3.2 表からのOMBスクリプトの作成方法

「アプリケーション」ウィンドウのオフライン表から、Oracle Warehouse Builder用のOracle MetaBase (OMB)スクリプトとして書式設定されたファイルを作成できます。

このファイルは、omb_scriptn.tclというデフォルト名で生成されます。このファイルはソース・エディタで開き、「アプリケーション」ウィンドウ内の現在のプロジェクトに対する「リソース」ノードの下に表示されます。

「アプリケーション」ウィンドウからOMBスクリプトを作成するには、次のようにします。

1. 「ウィンドウ」→「アプリケーション」を選択し、ファイルの作成元とする1つ以上のオフライン表に移動します。

2. 右クリックし、「生成」→「OMBスクリプト」を選択します。
ファイルが作成され、ソース・エディタで開きます。

「新規ギャラリ」からOMBスクリプトを作成するには、次のようにします。

1. 「ファイル」→「新規」を選択して「新規ギャラリ」を開きます。

2. 「新規ギャラリ」の「カテゴリ」ツリーで、「データベース層」の下の「データベース・ファイル」を選択します。

3. 「項目」リストで「ソース・データベースからのOMBファイル」をダブルクリックします。

4. 「データベース・オブジェクトからOMBスクリプトを生成」ウィザードでファイル名を入力し、ソース・オフライン・データベースを選択して、「次へ」をクリックします。
ウィザードのヘルプを参照するには、[F1]を押すか「ヘルプ」をクリックします。

5. 「オブジェクトの選択」ページで、ファイルに含めるオフライン・オブジェクトを選択し、「終了」を選択します。
ファイルが作成され、ソース・エディタで開きます。

27.3.3 SXMLスクリプトの作成方法

「アプリケーション」ウィンドウのオフライン表からSXMLファイルを作成できます。

object-name_object-type.xmlという名前のスクリプトがオフライン・データベース・オブジェクトごとに作成されます。各スクリプトはXMLソース・エディタで開き、「アプリケーション」ウィンドウ内のオフライン・データベース・ノードの下に表示されます。

「アプリケーション」ウィンドウからSXMLファイルを作成するには、次のようにします。

1. 「ウィンドウ」→「アプリケーション」を選択し、スクリプトの作成元とする1つ以上のオフライン表に移動します。

2. 右クリックし、「生成」→「SXML」を選択します。
ファイルが作成され、ソース・エディタで開きます。

「新規ギャラリ」からSXMLファイルを作成するには、次のようにします。

1. 「ファイル」→「新規」を選択して「新規ギャラリ」を開きます。

2. 「新規ギャラリ」の「カテゴリ」ツリーで、「データベース層」の下の「データベース・ファイル」を選択します。

3. 「項目」リストで「ソース・データベースからのSXMLファイル」をダブルクリックします。

4. データベース・オブジェクトからSXMLファイルを生成ウィザードでスクリプト名を入力し、ソース・オフライン・データベースを選択して、「次へ」をクリックします。
ウィザードのヘルプを参照するには、[F1]を押すか「ヘルプ」をクリックします。

5. 「オブジェクトの選択」ページで、ファイルに含めるオフライン・オブジェクトを選択し、「終了」を選択します。
ファイルが作成され、ソース・エディタで開きます。

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」ページで、ファイルのコンパイル方法を制御する、プロジェクトの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クラスの変換を制御できます。

- SQLコードの構文チェックおよびセマンティクス・チェックを行います。

- SQL文の構文とデータ型をチェックします。

- コンパイル時にJavaおよびSQL式の互換性をテストします。

- データベース・サーバーへの接続を指定します。

- 接続コンテキストによって指定されたデータベース・スキーマに対して、SQL文のセマンティクスを確認します。

SQLJトランスレータのオプションを設定するには、次のようにします。

1. 「アプリケーション」ウィンドウで、SQLJファイルが含まれているプロジェクトを選択します。

2. 「アプリケーション」→「プロジェクト・プロパティ」→「コンパイラ」を選択し、「SQLJ」を選択します。

3. SQLJパネルでコンパイル・オプションを設定します。これには次のものがあります。

- トランスレータの警告を設定するレベル

- コード生成のタイプ

- データベース・スキーマに対してSQLセマンティクス・チェックを実行するかどうか

- SQLJトランスレータで使用する追加オプション

4. 「OK」をクリックします。

すべてのプロジェクトに対してSQLJトランスレータ・プロパティを設定するには、「アプリケーション」メニューから「デフォルト・プロジェクト・プロパティ」を選択します。

28.2.4.9 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. コンパイルしたアプリケーションを実行します。

このプロセスを次の図に示します。

図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ユーザーズ・ガイド』を参照してください。

ビルトイン型のマッピング

構文: 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に割り当てられます。

数値型のマッピング

構文: 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

ユーザー定義型のマッピング

構文: 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. 「デプロイメント・プロファイルの作成」ダイアログで、デプロイメント・プロファイルの場所を指定するか、デフォルトを使用します。ファイル拡張子.dbexportが付いたデプロイメント・プロファイル名が設定されます。

5. 「保存」をクリックし、「LoadjavaおよびJavaストアド・プロシージャ・デプロイメント・プロファイル設定」ダイアログを表示します。各ページの設定を適宜構成し、作業が完了したら「OK」をクリックします。
新しく作成したstoredProc.dbexportデプロイメント・プロファイルが、「アプリケーション」ウィンドウ内の指定したプロジェクトの下に表示されます。

6. 「アプリケーション」ウィンドウでstoredProc.dbexportを選択して右クリックします。使用可能なポップアップ・メニュー・オプションから選択します。

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文でストアド・プロシージャをコールします。文中でパラメータを名前で識別し、それぞれのパラメータに: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 Hello() from dual;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. プログラムがデバッグされます。ステータス・ウィンドウで、進捗状況と情報を確認します。

詳細は、第29.3項「PL/SQLプログラムおよびJavaストアド・プロシージャのデバッグ」を参照してください。

28.4.2 Javaストアド・プロシージャの削除方法

ストアド・プロシージャを削除するには、次のようにします。

1. 「ウィンドウ」→「データベース」→「データベース」ウィンドウを選択します。

2. 「IDE接続」またはアプリケーションを展開し、データベース接続を選択します。

3. 接続を開き、スキーマを選択します。

4. スキーマを開き、削除するオブジェクトを探します。Javaストアド・プロシージャは、公開方法に応じて、次のノードのいずれかに表示されます。

- Packagesフォルダには、パッケージでデプロイされたJavaストアド・プロシージャのコール仕様が含まれます。

- Functionsフォルダには、(値を返す)ファンクションとしてデプロイされたJavaストアド・プロシージャのコール仕様が含まれます。

- Proceduresフォルダには、(値を返さない)プロシージャとしてデプロイされたJavaストアド・プロシージャのコール仕様が含まれます。

5. オブジェクトを選択し、右クリックしてポップアップ・メニューを表示し、「削除」を選択します。

29 PL/SQLおよびJavaストアド・プロシージャの実行とデバッグ

この章では、PL/SQLと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のデバッガ・ウィンドウに表示されるデバッグ情報を確認します。詳細は、第14.7項 「Javaプログラムのデバッグ」を参照してください。

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です。

注意:

次回にこのポートでデバッグする際に、このダイアログをバイパスする場合は、このダイアログの「パラメータを保存」チェック・ボックスを選択します。

「プロセス」ウィンドウに、デバッガがデバッグ接続をリスニングしていることを示すアイコンが表示されます。

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. デバッガがデバッグ接続を受け入れると、「プロセス」ウィンドウ内の「プロセス」フォルダに新規のデバッグ・プロセスが反映されます。また、「ログ」ウィンドウに次のようなメッセージが表示されます。

Debugger accepted connection from remote process on port 4000.

さらに、JDeveloperのレイアウトが「設計」レイアウトから「デバッグ」レイアウト(ウィンドウの右下)に切り替わったことがわかります。「スタック」、「データ」および「監視式」などのデバッグ・ウィンドウも表示可能になっています。

「プロセス」ウィンドウでは、ポートがリスニングを継続中で、複数のデバッグ接続を受入れ可能であることがアイコンによって示されます。

15. Oracleクライアントに戻り、ブレークポイントを含むPL/SQLプログラム・ユニットを起動するコマンドを発行します。たとえば、SQL*Plusでは次のようなコマンドを発行します。

EXEC FOO;

FOOはPL/SQLプロシージャ名です。

16. JDeveloperは最初のブレークポイントで実行を停止し(「アプリケーション」メニューからアクセス可能な「プロジェクト・プロパティ」ダイアログの「デバッグの開始オプション」で設定している場合)、デバッガ・ウィンドウに状態を表示します。詳細は、第14.7.7項「デバッガ開始オプションの設定方法」を参照してください。

17. 問題がなくなるまでPL/SQLプロシージャをステップ実行してデバッグを再開します。詳細は、第14.7項 「Javaプログラムのデバッグ」を参照してください。

18. デバッグの終了後に、切断コマンドを使用してデバッグ・プロセスを切断します。たとえば、SQL*Plusから次のように入力します。

EXEC DBMS_DEBUG_JDWP.DISCONNECT;

次のメッセージが表示されます。

Debugger disconnected from remote process.

19. リスニング・ポートを終了するには、「プロセス」ウィンドウの「実行」アイコンを右クリックして「リスニングの停止」を選択します。

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 © 1994-2014, Oracle and/or its affiliates.All rights reserved.

商標と登録商標について

OracleおよびJavaはOracle Corporationおよびその関連企業の登録商標です。その他の名称は、それぞれの所有者の商標または登録商標です。

Intel、Intel Xeonは、Intel Corporationの商標または登録商標です。すべてのSPARCの商標はライセンスをもとに使用し、SPARC International, Inc.の商標または登録商標です。AMD、Opteron、AMDロゴ、AMD Opteronロゴは、Advanced Micro Devices, Inc.の商標または登録商標です。UNIXは、The Open Groupの登録商標です。

ライセンス制約の保証と結果的に生じる損害の免責

このソフトウェアおよび関連ドキュメントの使用と開示は、ライセンス契約の制約条件に従うものとし、知的財産に関する法律により保護されています。ライセンス契約で明示的に許諾されている場合もしくは法律によって認められている場合を除き、形式、手段に関係なく、いかなる部分も使用、複写、複製、翻訳、放送、修正、ライセンス供与、送信、配布、発表、実行、公開または表示することはできません。このソフトウェアのリバース・エンジニアリング、逆アセンブル、逆コンパイルは互換性のために法律によって規定されている場合を除き、禁止されています。

保証免責

ここに記載された情報は予告なしに変更される場合があります。また、誤りが無いことの保証はいたしかねます。誤りを見つけた場合は、オラクル社までご連絡ください。

制限付権利

このソフトウェアまたは関連ドキュメントを、米国政府機関もしくは米国政府機関に代わってこのソフトウェアまたは関連ドキュメントをライセンスされた者に提供する場合は、次の通知が適用されます。

U.S. GOVERNMENT END USERS: Oracle programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, delivered to U.S. Government end users are "commercial computer software" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations.As such, use, duplication, disclosure, modification, and adaptation of the programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, shall be subject to license terms and license restrictions applicable to the programs.No other rights are granted to the U.S. Government.

危険な用途への使用について

このソフトウェアもしくはハードウェアは様々な情報管理アプリケーションでの一般的な使用のために開発されたものです。このソフトウェアもしくはハードウェアは、危険が伴うアプリケーション（人的傷害を発生させる可能性があるアプリケーションを含む）への用途を目的として開発されていません。このソフトウェアもしくはハードウェアを危険が伴うアプリケーションで使用する際、安全に使用するために、適切な安全装置、バックアップ、冗長性（redundancy）、その他の対策を講じることは使用者の責任となります。このソフトウェアもしくはハードウェアを危険が伴うアプリケーションで使用したことに起因して損害が発生しても、オラクル社およびその関連会社は一切の責任を負いかねます。

第三者のコンテンツ、製品、サービスに対する免責事項

このソフトウェアまたはハードウェア、そしてドキュメントは、第三者のコンテンツ、製品、サービスへのアクセス、あるいはそれらに関する情報を提供することがあります。オラクル社およびその関連会社は、第三者のコンテンツ、製品、サービスに関して一切の責任を負わず、いかなる保証もいたしません。オラクル社およびその関連会社は、第三者のコンテンツ、製品、サービスへのアクセスまたは使用によって損失、費用、あるいは損害が発生しても一切の責任を負いかねます。

ドラフトのアルファ版およびベータ版ドキュメントについて

このドキュメントが試作版の場合:

このドキュメントは試作版であり、デモおよび暫定使用のみを目的としたものです。このソフトウェアを使用するハードウェアに限定するものではありません。オラクル社およびその関連会社は、このドキュメントに関して一切の責任を負わず、いかなる保証もいたしません。また、このドキュメントを使用したことによって損失、費用、あるいは損害が発生しても、一切の責任を負いかねます。