プライマリ・コンテンツに移動
Oracle® Fusion Middleware Oracle JDeveloperによるアプリケーションの開発
12c (12.1.3)
E57556-02
  目次へ移動
目次

前
 
次
 

11 Javaプロジェクトの監査とモニタリング

この章では、Oracle JDeveloperの監査とモニタリングの機能について説明します。

この章の内容は次のとおりです。

11.1 Javaプロジェクトの監査とモニタリングについて

JDeveloperに用意されている監査とモニタリングのツールを使用して、アプリケーションのヘルス状態とパフォーマンスを分析します。これらのツールは、コードの品質向上に効果的です。JDeveloperの監査機能を使用すると、Javaコードがプログラミング規格に準拠しているかどうかを分析できます。

コード監査は、構文が正しいかどうかではなく、プログラミング規格に準拠しているかどうかを調べるものです。コードは、コンパイルが不可能または実行不可能な場合も監査できます。

HTTPアナライザを使用すると、プロジェクトのWebサービスのクライアントとサービス間、およびJavaアプリケーションとWebリソース間で送受信されるHTTPトラフィックの観点でアプリケーションのデバッグが容易になります。

11.2 Javaプロジェクトの監査

監査とは、プログラミング規格を定義している規則およびメトリックに準拠しているかどうかについてのコードの静的な分析のことです。ソフトウェアのコード監査は、バグ、セキュリティ侵害またはプログラミング規則違反を発見する目的で行われる、プログラミング・プロジェクト内のソース・コードの包括的な分析です。

  • 規則は、ある機能の有無に関する定性試験です。たとえば、Javaコーディングの共通のスタイルとして、クラス名を大文字にする必要があります。規則に準拠していない場合は、違反が発生します。

  • コード測定は、サイズまたは複雑さの定量測定です。たとえば、メソッドのサイズが大きすぎたり、メソッドで扱うケースの数が多すぎる場合、その機能の一部を別のメソッドに委譲する必要があります。指定の上限を超えると、しきい値超過異常が発生します。

プロファイルを作成してカスタマイズし、使用する規則を選択して個々の規則のパラメータを設定できます。詳細は、それぞれのコード監査規則およびコード測定を参照してください。

JDeveloperのコード監査およびコード測定の機能は拡張できます。コード監査およびコード測定は、それぞれカスタマイズおよび拡張可能なソース・コード分析および変換フレームワークのある2つの側面です。コード監査およびコード測定用のパブリックAPIは、oracle.jdeveloper.auditパッケージです。

Javaコードを監査するには、次のようにします。

  • 監査ツールをソース・ファイルに対して実行し、コード監査レポートを生成します。詳細は、第11.2.12項「コード監査レポート生成のためにコード監査を実行する方法」を参照してください。

  • 編集中にコード監査を行う場合は、コード・アシストを使用します。「コード・アシスト」により、編集中にバックグラウンドでコード監査を実行できます。編集時に、監査違反が強調表示されます。自動修正を適用できます。

  • コマンドラインからコード監査を実行して、コード監査レポートを生成します。詳細は、第11.2.8項「コマンドラインからのJavaコードの監査」を参照してください。

  • 「問題」ウィンドウが表示されます。「問題」ウィンドウは、コードの監査を支援するJDeveloperの機能の1つです。このウィンドウには、「ファイル・リスト」で選択したドキュメント内の監査違反が表示され、問題を解決するための情報が提供されます。

監査レポートには、ルール違反および測定結果がツリーに編成されて表示されます。ツリーの各行は構成メンバーまたは違反のいずれかに対応しており、その構成メンバーまたは理論上の違反に対するすべての測定値が含まれます。構成メンバーは、メソッド、クラス、ファイル、プロジェクトまたはワークスペースです。

11.2.1 監査ルールの理解

コード監査規則は、静的かつ定性的なコード分析です。

コード監査プロファイルで、プロパティを設定することによって個別ルールの有効化や構成を実行できます。コード構成メンバーが規則に従っていない場合、規則違反が報告されます。一部の規則には自動修正が定義されており、ユーザーが適用を選択できます。

ルールには、表11-1に示すプロパティが含まれています。

表11-1 ルール・プロパティ

プロパティ 説明

デフォルト修正

この規則の違反に対する修正が使用されるのは、「デフォルトの修正を適用」が構成メンバーに適用されている場合です。

パターン

規則と異なる識別子を検出するフィルタとして使用される正規表現です。

重大度

コード監査レポートで規則違反をソートする場合に使用します。

可視性

アクセス・レベルのキーワードに基づくしきい値です。違反は、可視性が選択されているクラスまたはメソッドで発生した場合にのみ報告されます。


11.2.2 監査メトリックの理解

監査のコード測定は、静的かつ量的なコード分析です。コード監査プロファイルで、個別メトリックの有効化と構成が実行できます。コード測定は、しきい値を使用して設定します。コード構成メンバーがしきい値を超えると、しきい値超過の測定がコード監査レポートに報告されます。

JDeveloperでは、表11-2に示すメトリックが測定されます。

表11-2 監査メトリック

メトリック 説明

継承ツリーの深度(DIT)

クラスの継承ツリーの深さ。通常、java.lang.ObjectのDITは1、java.lang.Objectを直接拡張したクラスのDITは2のようになります。

文の数(NOS)

Java文でのメソッド、クラスまたは他の構成メンバーのサイズ。

循環的複雑度(V(G))

メソッドのブランチの複雑さ。メソッドを含む構成メンバー(クラスやプロジェクトなど)には、そのメソッドについて測定されたうち最大の複雑度が割り当てられます。値が10を超える場合は通常、問題ありと判断されます。


11.2.3 コード監査ツールの使用

監査ツールを使用すると、監査レポートを表示したり、規則違反やしきい値を超える測定結果を調査および修正できます。コード監査が開始されると、「ログ」ウィンドウに新しいタブが作成され、このタブにコード監査レポートが表示されます。

監査とは、プログラミング規格を定義している規則およびメトリックに準拠しているかどうかについてのコードの静的な分析のことです。コード監査では、コードの改善および保守を困難にしている不具合が検出されます。JDeveloperの監査ツールを使用すると、このような不具合を検出および修正できます。コンパイルが不可能または実行不可能な場合でも、コードの監査は可能です。

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

コード監査レポートとは、構成に編成されたツリーとして表示される規則違反およびコード測定結果のセットのことです。構成には、メソッド、クラス、パッケージ、ファイル、プロジェクトまたはワークスペースがあります。監査プロファイルに規則が含まれている場合、表には「重大度」列が含まれ、指定した構成の重大度が表示されます。監査プロファイルにメトリックが含まれている場合、表にはメトリックごとに列が追加され、構成の測定結果が表示されます。

列のコンテンツを基にレポートをソートするには、列ヘッダーをクリックします。ソート順序を逆にするには、再度クリックします。

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

「ログ」ウィンドウのツールバーから、表11-3に示した操作を実行できます。

表11-3 「コード監査」ウィンドウのツールバー・アイコン

アイコン 名前 説明

この図については周囲のテキストで説明しています。


リフレッシュ

同じプロファイルを使用して同じ選択項目に対してコード監査を再実行する場合にクリックします。

この図については周囲のテキストで説明しています。


取消

実行中の監査を中断する場合にクリックします。結果の一部が表示される場合があります。

この図については周囲のテキストで説明しています。


エクスポート

レポートをファイルに保存できる「結果のエクスポート」ダイアログを開く場合にクリックします。結果は、XML、HTMLまたはプレーン・テキストで保存できます。

この図については周囲のテキストで説明しています。


すべて開く

レポート内のすべてのコンテナ・ノードを展開し、すべての行を表示する場合にクリックします。

この図については周囲のテキストで説明しています。


すべて閉じる

レポート内のすべてのコンテナ・ノードを閉じ、トップレベルの構成以外のすべてを非表示にする場合にクリックします。

この図については周囲のテキストで説明しています。


グループ化

表示するコンテナ構成のタイプを指定できる「グループ化」ダイアログを開く場合にクリックします。構成別にグループ化すると、結果の適切な編成、不具合および違反の迅速な追跡、結果を簡単に分析できます。

この図については周囲のテキストで説明しています。


異常のみ表示

許容範囲内にある測定結果の表示を切り替えます。しきい値は、コード測定の設定可能なプロパティの1つです。

この図については周囲のテキストで説明しています。


抑制された問題の表示

抑制スキームの問題の表示を切り替えます。

この図については周囲のテキストで説明しています。


修正

ドロップダウン・メニューから規則違反に対する修正を選択します。個々の規則違反に対して、その違反タイプに定義されている修正から選択します。グループ構成には、「デフォルトの修正を適用」のみを選択できます。これにより、そのタイプに定義されているデフォルトの修正(存在する場合)が適用されます。

この図については周囲のテキストで説明しています。


エラーを示す問題の表示

選択したファイルのエラー数のみの表示、またはファイルのエラーのリスト表示を切り替えます。

この図については周囲のテキストで説明しています。


警告を示す問題の表示

選択したファイルの警告数のみの表示、またはファイルの警告のリスト表示を切り替えます。

この図については周囲のテキストで説明しています。


不完全を示す問題の表示

選択したファイル内の不完全な問題の数のみを表示するか、ファイル内の不完全な問題をリスト表示するかを切り替えます。

この図については周囲のテキストで説明しています。


アドバイザリを示す問題の表示

選択したファイル内のアドバイザリを示す問題の数のみを表示するか、ファイル内のアドバイザリを示す問題をリスト表示するかを切り替えます。


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

1つ以上の構成(コンテナ・ノード)または規則違反(リーフ・ノード)を選択し、右クリックしてポップアップ・メニューを開きます。ポップアップ・メニューから、選択した構成または規則違反に対して、表11-4に示す操作を実行できます。

表11-4 「コード監査」ウィンドウのポップアップ・メニュー項目

名前 説明

<'コンストラクト>の作成

選択すると、指定した修正(定数、staticフィールド、インスタンス・フィールド、変数またはメソッド)が適用されます。

<コンストラクト>のルールについて

この規則違反に対して適用される規則の説明を表示する場合に選択します。

問題"<ルール>"を非表示

選択した規則のすべての違反をレポートから削除する場合に選択します。

非表示の問題の表示

選択すると、前に非表示にしたすべての問題がリストアされます。

異常のみ表示

許容範囲内にある測定結果の表示を切り替える場合にクリックします。

エラーを示す問題の表示

選択したファイルのエラー数の表示、またはファイルのエラーのリスト表示を切り替えます。

警告を示す問題の表示

クリックすると、選択したファイルの警告数の表示、またはファイルの警告のリスト表示を切り替えます。

不完全を示す問題の表示

クリックすると、選択したファイルの不完全な問題数の表示、またはファイルの不完全な問題のリスト表示を切り替えます。

アドバイザリを示す問題の表示

クリックすると、選択したファイルのアドバイザリ問題数の表示、またはファイルのアドバイザリ問題のリスト表示を切り替えます。

抑制された問題の表示(X)

許容範囲内にある測定結果の表示を切り替える場合にクリックします。

取消

実行中のコード監査を終了する場合に選択します。

リフレッシュ

コード監査を再実行する場合に選択します。

グループ化

表示するコンテナ構成のタイプを指定できる「グループ化」ダイアログを開く場合に選択します。

すべて開く

レポート内のすべてのコンテナ・ノードを展開し、すべての行を表示する場合にクリックします。

すべて閉じる

レポート内のすべてのコンテナ・ノードを閉じ、トップレベルの構成以外のすべてを非表示にする場合にクリックします。

ソースに移動

規則違反があった位置でソース・ファイルを開く場合に選択します。必要に応じて、ファイルを編集して違反を修正できます。

エクスポート

レポートをファイルに保存できる「結果をエクスポート」ダイアログを開く場合に選択します。


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

JDeveloperのコード監査ツールを使用すると、コードの改善および保守を困難にしている不具合が検出されます。コードは、コンパイルが不可能または実行不可能な場合も監査できます。監査のフォーカスは、コード監査の規則およびコード測定のセットであるプロファイルによって定義されます。

Javaコードを監査するには、次のようにします。

  1. Javaプログラムの分析に使用する規則、コード・アシスト、コード測定を指定するコード監査プロファイルを作成します。コード監査プロファイルで、プロパティの設定によって個別の規則やメトリックを有効にしたり、構成できます。コード構成メンバーが規則に従っていない場合、規則違反が報告されます。詳細は、第11.2.9項「コード監査プロファイルの作成方法」を参照してください。

  2. 監査レポートを実行します。

  3. 完了した監査レポートで規則違反をインスペクトします。詳細は、第11.2.15項「コード監査レポートの表示」を参照してください。

    監査レポートには、ルール違反および測定結果がツリーに編成されて表示されます。ツリーの各行は構成メンバーまたは違反のいずれかに対応しており、その構成メンバーまたは理論上の違反に対するすべての測定値が含まれます。構成メンバーは、メソッド、クラス、ファイル、プロジェクトまたはワークスペースです。

  4. コード監査規則違反を、手動でソースを編集して修正できます。一部の規則違反については、自動修正を選択して修正します。詳細は、第11.2.19項「コード監査規則違反の修正方法」を参照してください。

  5. 監査を再実行する場合には、規則、コード・アシストおよびメトリックを有効化または無効化するか、またはそれらの構成を変更することによって、コード監査プロファイルを変更できます。詳細は、第11.2.9項「コード監査プロファイルの作成方法」を参照してください。

完了したコード監査レポートをXMLファイル、HTML形式またはテキスト・ファイルとして保存できます。詳細は、第11.2.18項「コード監査レポートの保存方法」を参照してください。書式設定は、/jdev//audit/stylesheetsディレクトリ(このディレクトリはコード監査を実行するまで作成されません)のXSLスタイルシート・ファイルで定義されます。カスタム・フォーマットを作成するには、事前定義されたスタイルシート・ファイルの1つをコピーして、このディレクトリに追加します。

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

JDeveloperインストールに付属しているjdev_install/jdeveloper/jdev/binディレクトリ内のojaudit.exeを起動すると、コマンド行からワークスペース、プロジェクトまたはソース・ファイルを監査できます。

シノプシス

ojaudit option... file...

表11-5は、監査の際に使用できるパラメータを示しています。

表11-5 コマンドライン・パラメータ

パラメータ 説明

file

コード監査対象のワークスペース・ファイル(.jws)、プロジェクト・ファイル(.jpr)またはソース・ファイル(.java)を指定します。

-classpath path

プロジェクトが監査されていない場合に、監査するファイルのクラスパスを設定します。

-disable name

プロファイルの指定したルールまたはメトリックを無効にします。複数の値を指定するには、このオプションを繰り返します。このオプションでは-profileを使用する必要があります。

-enable name

プロファイルの指定したルールまたはメトリックを有効にします。複数の値を指定するには、このオプションを繰り返します。

-encoding code

レポートの文字エンコーディングを設定します。指定しない場合は、プロジェクトに指定されている文字コードが使用されます(プロジェクトの「プロジェクト・プロパティ」ダイアログの「コンパイラ」ページを参照してください)。

-fail severity

監査者によって障害とみなされる問題の重大度を設定します。

-fix

デフォルトの修正をコードに適用します。このオプションを適用すると、ソース・ファイルが変更されます。

-help

helpコマンドに関するヘルプを表示して終了します。

-listall

問題のないファイルを含む、すべての監査済ファイルを監査レポートに表示します。

-maxfilesize size

監査する最大ファイル・サイズをMB単位で指定します。

-metric name

指定したメトリックを有効にします。

-nometric name

指定したメトリックを無効にします。このオプションでは-profile を使用する必要があります。

-norule name

指定した監査ルールを無効にします。このオプションでは-profileを使用する必要があります。

-notitle

空の監査レポートのタイトルを設定します。

-output file

出力ファイルのパス名を指定します。省略時は、出力は標準出力に書き込まれます。

-profile name

(必須)使用するプロファイルを指定します。JDeveloperで定義されているプロファイル(「ツール」「プリファレンス」ダイアログの「コード監査」「コード監査プロファイル」ページで設定)のいずれか、またはエクスポートされたコード監査プロファイル・ファイルのパス名です。

一致するプロファイルを検索するときに、大文字/小文字および空白は無視されます。

-profilehelp

定義済プロファイル名を出力して終了します。

-profileoutput file

マージしたプロファイルの出力ファイルを設定します。

-project file

ソース・ファイルであるパラメータに使用されるプロジェクト・コンテキスト。すべてのパラメータがプロジェクトまたはワークスペースの場合、このオプションは必要ありません。

-quiet

著作権メッセージを非表示にします。

-role name

JDeveloperのアクティブなカスタマイズ・ロールを設定します。

-rule name

指定したルールを有効にします。

-seal

指定したプロファイルをシールします。このオプションでは、明示的なパスを指定した-profileも使用する必要があります。

-rulehelp

使用可能なルールを出力して、終了します。

-sourcepath path

プロジェクトが監査されていない場合に、監査するファイルのソースパスを設定します。

-style file

レポートに適用されるXSLTスタイルシート。この名前は、JDeveloperで定義されているスタイルシートか、またはスタイルシート・ファイルのパス名です。指定しない場合、XMLファイルで出力されます。

一致する定義済スタイルシートを検索するとき、大文字/小文字および空白は無視されます。

-stylehelp

定義済スタイルシート名を出力して終了します。

-title text

レポートに使用されるタイトル。-untitledを指定していない場合にこのオプションを指定しないと、デフォルトのタイトルが使用されます。

-verbose

実行メッセージをすべて表示します。

-version

コマンドのバージョンを表示して終了します。

-workingset name

監査するファイルのワーキング・セットを設定します。このオプションでは-workspaceを使用する必要があります。

-workingsethelp

ワークスペースに使用可能なワーキング・セットを出力して、終了します。

-workspace file

監査するファイルのワークスペース・コンテキストを設定します。

-xmlinput file

既存のXMLレポートの形式を変更します。このオプションでは-styleを使用する必要があります。

-xmloutput file

出力ファイルを、プレーンXMLレポートとして設定します。このオプションでは-styleを使用する必要があります。

@file

監査ファイルのオプションとパラメータを含めます。


次のことに注意してください。

  • 指定されたfileがワークスペースまたはプロジェクトの場合を除き、-project-sourcepathまたは-classpathを指定する必要があります。

  • プロジェクトがワークスペースの他のプロジェクトに依存する場合、-workspaceを指定する必要があります。

  • オプション-profileおよび-styleでは、名前またはURLを受け入れます。名前の大/小文字および空白は無視されます。

  • オプション-enableおよび-disableでは、IDまたはラベルを受け入れます。名前の大/小文字および空白は無視されます。

  • オプション-ruleおよび-metricは、-enableと同義です。オプション-noruleおよび-nometricは、-disableと同義です。

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

コード監査プロファイルでは、Javaコードの分析に使用する規則、コード・アシストおよびメトリックを指定することによって、監査対象を定義します。「コード監査プロファイル」プリファレンス・ページから、コード監査プロファイルのルール、コード・アシストおよびメトリックをアクティブ化および非アクティブ化することができます。いくつかのプロファイルは事前定義済ですが、既存のプロファイルを変更してその他のプロファイルを作成できます。規則、コード・アシストおよびメトリックを有効化または無効化するか、またはそれらの構成を変更することによって、コード監査プロファイルを変更できます。

表11-6に示すように、特定の監査プロファイルは、デフォルトでは、一部のJDeveloperプロセスと機能により使用されます。

表11-6 監査プロファイル

プロファイル 説明

コード・アシスト・ルール

ソース・エディタ、「問題」ウィンドウ、「アプリケーション概要」、および「ファイル・リスト」により使用されます。

コンパイル・ルール

「プリファレンス」ダイアログの「コード監査」ページで「コンパイル中のコード監査」が選択されている場合に、コンパイルの最後で使用されます。

監査ルール

ソース・エディタ、「問題」ウィンドウ、「アプリケーション概要」、および「ファイル・リスト」により使用されます。

これは、Auditコマンドの初期値です。ただし、「監査」ダイアログでは最後に選択されたプロファイルが記憶されるため、設定は永続的ではありません。

Javadocルール

ソース・エディタで使用されます。

ADFベスト・プラクティスのルール

ADFアプリケーションに使用されます。


JDeveloperには事前定義プロファイルがあり、使用可能なルール、コード・アシスト、およびメトリックの組合せがそれぞれ異なっています。

  • ADFベスト・プラクティスのルール

  • すべてのメトリック

  • すべてのルール

  • 監査ルール

  • コード・アシスト・ルール

  • コンパイル・ルール

  • Javadocルール

監査プロファイルを作成する手順:

  1. メイン・メニューから、「ツール」「プリファレンス」を選択します。

  2. 「監査」を選択して、「監査」ページの「プロファイルの管理」をクリックします。

  3. 「プロファイル」ドロップダウン・リストから、コピーするプロファイルを選択します。

    図11-1に示すように、選択されたプロファイルのプロパティ名と現在の値が右側のパネルに表示されます。選択されたアイテムの説明が「説明」ボックスに表示されます。そのプロパティと設定が右側のペインに表示されます。

    図11-1 「監査プロファイル」ページ

    この図は周囲のテキストで説明しています
  4. 新しいプロファイルを有効にするための規則、アシストおよびコード測定を選択します。

  5. 「別名保存」をクリックします。

  6. 新しいプロファイルの名前を入力し、「保存」をクリックします。


    注意:

    名前では大/小文字および空白は区別されませんが、大/小文字および空白は保持されます。新しい名前が既存の名前と大/小文字または空白のみが異なる場合は、そのことを通知する警告メッセージが表示されます。

    新しいプロファイル名が、プリファレンスの「コード監査」→「プロファイル」ページの「プロファイル」ボックスに表示されます。

  7. 「OK」をクリックします。

11.2.9.1 プロファイルのシール

「監査プロファイル」ページで「シール済」オプションが選択された状態で監査プロファイルを保存することにより、現在の監査プロファイルをシールします。これは、次回その特定の監査プロファイルをロードするときに、そのプロファイルに選択されたルールのみが有効になるということです。プロファイルが最後に保存された後の新しいルールは、(そのデフォルト状態に関係なく)無効になります。新しいルールは、JDeveloperの更新時に新しい拡張機能をインストールする場合など、様々な方法で導入できます。プロジェクトの開発過程では、監査プロファイルをシールすると、プロジェクト環境が保存されるため、新しい監査問題の発生が抑えられます。

11.2.9.2 抑制スキームの無効化

抑制スキームは、プロジェクトの監査で発見された抑制問題(監査違反)のスキームを記述します。プロジェクトを監査すると、監査ログ・ウィンドウに抑制問題を表示できます。「監査プロファイル」ダイアログにより、抑制スキームの監査の有効(デフォルト状態)と無効を切り替えることができます。抑制スキームを無効にすると、監査時間が短縮され、「ログ」ウィンドウでの出力が減少します。

抑制スキームを無効にするには:

  1. メイン・メニューから、「ツール」「プリファレンス」を選択します。

  2. 「監査」を選択して、「監査」ページの「プロファイルの管理」をクリックします。

  3. 「抑制スキーム」タブをクリックします。最上位ノードを選択解除すると、特定のカテゴリのすべての抑制スキームが無効になります。あるいは、ノードを開いて特定のスキームを無効にします。

    ボックスを選択して抑制スキームを有効にします。

  4. ダイアログで「OK」をクリックします。

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

既存のコード監査プロファイルは削除できますが、事前定義プロファイルは削除できません。「別名保存」コマンドで作成したカスタム・プロファイルはすべて削除できます。

既存のコード監査プロファイルを削除するには、次のようにします。

  1. メイン・メニューから、「ツール」「プリファレンス」を選択します。

    「設定」ダイアログが開きます。

  2. 「監査」を選択して、「監査」ページの「プロファイルの管理」をクリックします。

  3. 「プロファイル」ドロップダウン・リストから、削除するカスタム・プロファイルを選択します。

  4. 「その他のアクション」ドロップダウン・リストから、「削除」を選択します。

    プロファイルが「プロファイル」ボックスから削除されます。IDEで提供される事前定義済プロファイルはグレー表示になっているため、削除できないことに注意してください。

  5. 「OK」をクリックします。

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

コード監査プロファイルをインポートまたはエクスポートできます。この操作によって、たとえば、プロファイルを共有したり、ojauditおよび夜間ビルドによって使用されるチェックイン済プロファイルを管理できます。コード監査プロファイルは、XMLファイルとしてインポートまたはエクスポートされます。

コード監査プロファイルをインポートまたはエクスポートするには、次の手順を実行します。

  1. 「ツール」メニューで、「プリファレンス」を選択して「プリファレンス」ダイアログを開きます。

  2. 「監査」を選択して、「監査」ページの「プロファイルの管理」をクリックします。

  3. 「その他のアクション」ドロップダウン・リストから、「インポート」または「エクスポート」を選択して、インポートまたはエクスポートするプロファイルを選択します。

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

Javaプログラムを監査する際に、コード監査レポートを生成できます。コード監査レポートは、規則違反およびしきい値を超えている測定結果のリストです。コード監査レポートでは、これらの問題を調べ、手動または自動で修正できます。

コード監査レポートを生成する手順は次のとおりです。

  1. 「アプリケーション」ウィンドウで、1つ以上のアプリケーション、プロジェクト、またはJavaソース・ファイルを選択します。

    コード監査コマンドは、エディタや「構造」ウィンドウなど、他のビューから選択して実行することもできます。

  2. メイン・メニューから、「ビルド」「コード監査 - <target>、たとえば、「ビルド」「コード監査 - helloWorld.java」を選択します。

  3. 「コード監査 - <target>」ダイアログで、使用するプロファイルを次の2つの方法のいずれかで選択します。

    • 「プロファイル」ドロップダウン・リストから、使用するプロファイルを選択します。

    • 「編集」をクリックしてプロファイルを作成または変更します。

  4. 「実行」をクリックします。

    コード監査レポートが「ログ」ウィンドウに表示され、コード監査が開始されます。監査を停止する場合には、ログのツールバーの停止アイコンをクリックします。

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

オブジェクトは、java.io.Serializableインタフェースを実装することによってシリアル化可能とマークされます。これは、バイトにフラット化し後で展開できることを示します。

オブジェクトのフィールドでシリアル化を無効にするには、そのオブジェクトのクラスのフィールドに、Javaのtransientキーワードでタグを設定します。クラスがシリアル化可能とマークされていても、transientとしてマークされておらずシリアル化できないフィールドを含んでいる場合、そのクラスはシリアル化できません。コード監査を実行すると、このようなシリアル化できないフィールドを検出できます。

コード監査規則を設定するには、次のようにします。

  1. メイン・メニューから、「ツール」「設定」「監査」「プロファイルの管理」を選択します。

  2. 「ルール」タブをクリックして、「Java SE」「Java」「シリアライズ」の各ノードを開きます。

  3. 「シリアライズ可能なクラス」で、「シリアライズ不可」フィールドを選択します。

    ルールの説明が右側のパネルに表示されます。違反に対するデフォルトの修正、違反の重大度レベル、警告のスタイルを設定できます。

  4. 「OK」をクリックします。

11.2.14 serialVersionUIDを持たないシリアライズ可能なフィールドの監査方法

バージョニングを可能にする、serialVersionUIDという識別子があります。java.io.Serializableを実装しているがserialVersionUIDを持たないすべてのクラスにフラグを設定するコード監査を実行できます。

コード監査規則を設定するには、次のようにします。

  1. メイン・メニューから、「ツール」「設定」「監査」「プロファイルの管理」を選択します。

  2. 「ルール」タブをクリックして、「Java SE」「Java」「シリアライズ」の各ノードを開きます。

  3. 「シリアライズUIDがありません」を選択します。

    ルールの説明が右側のパネルに表示されます。違反に対するデフォルトの修正、違反の重大度レベル、警告のスタイルを設定できます。

  4. 「OK」をクリックします。

11.2.15 コード監査レポートの表示

JDeveloperでは、すべてのコード監査規則違反に関するレポートが生成されます。コード監査レポートを使用すると、ルール違反およびしきい値を超えている測定結果を調べ、これを修正できます。図11-2に示すように、コード監査レポートは「ログ」ウィンドウのタブ付きペインとして表示されます。このウィンドウでは、ドロップダウン・メニューからルール違反に対する修正を選択できます。個々の規則違反に対して、その違反タイプに定義されている修正から選択します。

図11-2 コード監査レポート

この図は周囲のテキストで説明しています

リフレッシュにより、同じプロファイルを使用してコード監査を再実行できます。コードを変更および修正した後でリフレッシュすることもできます。

コード監査レポートをリフレッシュするには、次のようにします。

  • 「ログ」ウィンドウのツールバー内をクリックするか、右クリックして「リフレッシュ」を選択します。

「コード監査結果のエクスポート」ダイアログがクリアされ、新しいコード監査が始まります。コード監査を停止するには、ログのツールバーをクリックします。

コード監査規則違反をインスペクトするには、次のようにします。

  1. コード監査レポートで、表示する構成を選択します。

  2. 右クリックして「ソースへ移動」を選択するか、構成メンバーをダブルクリックします。

    ソース・ファイルのエディタが開き、規則違反または測定されたコード要素の場所にカーソルが移動します。

  3. 違反または異常を右クリックし、「ルール"違反"に関する情報」を選択して、違反が発生したルールの詳細を知ることができます。図11-3に示すように、ルールを記述したダイアログが表示されます。

図11-3 「ルールに関する情報」ダイアログ

この図は周囲のテキストで説明しています

コード監査レポートの列を左または右の位置に再配置できます。

コード監査レポート列を編成するには、次のようにします。

  • 列ヘッダーを、任意の位置の左または右までドラッグします。

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

コード監査レポート行は、ルール違反や測定結果、または違反および測定結果のグループです。レポートはツリーとして編成されます。ツリーの行は、構成メンバーまたは違反に対応しており、構成メンバーまたは理論上の違反の測定値が含まれます。構成メンバーは、メソッド、クラス、ファイル、パッケージ・ディレクトリ、プロジェクトまたはワークスペースです。

レポートに表示される構成メンバーを選択できます。

コード監査レポート行を編成するには、次のようにします。

  1. 「ログ」ウィンドウのツールバーで、「グループ化」をクリックします。

  2. 表示する構成を選択します。

  3. 「OK」をクリックします。

  4. 列ヘッダーをクリックして、その列で行をソートします。

    ソート順序を逆にするには、再度クリックします。

11.2.17 フィルタの使用方法

違反が表示されているJavaクラスのセットを削除する場合はフィルタを指定します。パッケージ名、クラス名またはその両方を基準にしてフィルタできます。フィルタは、カンマで区切られた1つ以上のパターンで構成されます。

パターンには、次の特殊文字を含めることができます。

  • *は、任意の数の文字に一致します。

  • ?は、任意の1文字に一致します。

  • !がパターンの先頭にある場合は、除外パターンを示します。

フィルタを渡すクラスのセットは、パターンの順序を考慮して決定されます。非除外パターンでは、パターンに一致するすべてのクラスがセットに追加され、除外パターンでは、パターンに一致するすべてのクラスがセットから削除されます。表11-7は、指定できるフィルタを示しています。

表11-7 フィルタ

名前 説明

パッケージ

完全修飾クラス名の最後の要素以外のすべてに適用されるフィルタのパターンを入力します。このフィールドが空の場合、フィールドは無効です。

ファイル

完全修飾クラス名の最後の要素にのみ適用されるフィルタのパターンを入力します。このフィールドが空の場合、フィールドは無効です。

適用

特定の「パッケージ」フィルタおよび「ファイル」フィルタをレポート行に適用する場合にクリックします。

クリア

「パッケージ」フィルタおよび「ファイル」フィルタを消去する場合やレポート行をリストアする場合にクリックします。


コード監査レポート行をフィルタするには、次のようにします。

  1. コード監査のログ・ウィンドウの「パッケージ」フィールドで、完全修飾クラス名の最後の要素を除くすべての要素に適用される一連のパターンを入力します。このボックスは、「ファイル」フィルタを指定した場合、空白にしておくこともできます。

  2. 「ファイル」フィールドで、完全修飾クラス名の最後の要素のみに適用される一連のパターンを入力します。このボックスは、「パッケージ」フィルタを指定した場合、空白にしておくこともできます。

  3. 「適用」をクリックします。

    選択した行のみを示したレポートが再表示されます。

  4. 「クリア」をクリックして、テキストを「パッケージ」ボックスおよび「ファイル」ボックスから削除します。

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

コード監査レポートをXMLファイル、HTML形式またはテキスト・ファイルとして保存できます。フォーマットは、jdev_install/jdev/system/audit/stylesheetsディレクトリのXSLスタイルシート・ファイルによって定義されます(このディレクトリはコード監査を実行するまで作成されません)。カスタム・フォーマットを作成するには、事前定義されたスタイルシート・ファイルの1つをコピーして、このディレクトリに追加します。

コード監査レポートを保存するには、次のようにします。

  • 「ログ」ウィンドウのツールバー内をクリックするか、右クリックして「エクスポート」を選択します。

    「コード監査結果のエクスポート」ダイアログが表示されます。タイトル、書式およびレポートの保存先を選択して、「OK」をクリックします。

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

コード監査規則違反を、手動でソースを編集して修正できます。一部の規則違反については、自動修正を選択して修正できます。個々の規則違反に対して、その違反タイプに定義されている修正から選択します。グループ構成には、「デフォルトの修正を適用」のみを選択できます。これにより、そのタイプに定義されているデフォルトの修正(存在する場合)が適用されます。

コード監査の規則違反を手動で修正する手順は次のとおりです。

  1. コード監査レポートで、規則違反(「構成」ツリー内のリーフ・ノード)を選択します。

  2. 右クリックし、「ソースへ移動」を選択します。

    ソース・ファイルのエディタが開き、規則違反の場所にカーソルが移動します。

  3. コードを編集して、違反の原因を修正します。

コード監査規則違反に自動修正を適用するには、次のようにします。

  1. コード監査レポートで、規則違反(「構成」ツリー内のリーフ・ノード)を選択します。

  2. 右クリックし、<規則>修正の適用メニュー項目があれば、それを選択します。

    または

    「ログ」ウィンドウのツールバー内をクリックし、<規則>修正の適用メニュー項目のいずれかを選択します。

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

構成メンバーでのすべての規則違反に自動修正を適用できます。Default FixプロパティがNone以外の値に設定されている構成メンバーでは、デフォルトの修正が各規則違反に適用されます。

構成メンバーのコード監査規則違反を修正するには、次のようにします。

  1. コード監査レポートで、構成メンバー(「構成」ツリー内のコンテナ・ノード)を選択します。

  2. デフォルトの修正は、次の2つの方法のいずれかを使用して適用できます。

    • 右クリックして「デフォルトの修正を適用」を選択します。

    • 「ログ」ウィンドウのツールバー内をクリックし、デフォルトの値を適用を選択します。

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

コード監査レポートで特定のタイプの規則違反をすべて非表示にできます。この操作によって、特定の規則の違反がすべて非表示になるため、レポートが読みやすくなります。個別の規則違反を非表示にすることはできません。

コード監査規則違反を非表示するには、次のようにします。

  1. コード監査レポートで、規則違反(「構成」ツリー内のリーフ・ノード)を選択します。

  2. 右クリックして、「問題"ルール"を非表示」を選択します。

    監査ルールのすべての違反が監査レポートから削除されます。削除された規則が親の構成メンバーのサマリーに記録されることはありません。「しきい値を超えるもののみ表示」が有効になっている場合は、空の構成メンバーは削除されます。有効になっていない場合は、違反のみが削除されます。

非表示のコード監査規則違反を復元するには、次のようにします。

  1. コード監査レポートで右クリックして、ポップアップ・メニューを開きます。

  2. 「非表示の問題の表示」を選択します。

    以前非表示にされたすべての規則違反が、コード監査レポートに復元されます。

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

コード測定レポートには、分析対象コードの構成メンバーに関する測定結果が表示されます。しきい値以下の結果を非表示にすると、しきい値を超えている測定結果にレポートをフォーカスできます。しきい値は、コード測定の設定可能なプロパティの1つです。

しきい値を超えている測定結果のみを表示するには、次のようにします。

  • 「ログ」ウィンドウのツールバーで、「異常のみ表示」アイコンをクリックします。もう一度クリックすると、すべての測定結果が表示されます。

削除された測定が、その親となる構成メンバーのサマリーに記録されることはありません。「しきい値を超えるもののみ表示」が有効になっている場合は、空の構成メンバーは削除されます。有効になっていない場合は、違反のみが削除されます。

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

HTTPアナライザを使用すると、次のようにHTTPトラフィックを監視できます。

  • Webサービス・クライアントとサービスの間のリクエスト/レスポンス・トラフィックの監視。

  • JavaアプリケーションとWebリソースの間のHTTPリクエストの監視。

HTTPアナライザは、JDeveloperのコードとそのコードが通信するHTTPリソースとの間でプロキシとして機能し、送受信されるHTTPトラフィックに関連してアプリケーションをデバッグしやすくなります。

HTTPアナライザを実行すると、情報を提供する多くのウィンドウが表示されます。

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

「ツール」メニューから「HTTPアナライザ」を開くと、図11-4のようにHTTPアナライザ・ログ・ウィンドウが表示されます。デフォルトではJDeveloperの中央下部に、他のログ・ウィンドウと並んで表示されます。

図11-4 「Httpアナライザ」ログ・ウィンドウ

この図は周囲のテキストで説明しています

HTTPアナライザを実行すると、「Httpアナライザ」ログ・ウィンドウにリクエスト/レスポンスのメッセージが出力されます。メッセージは、グループ化と並替えが可能です。

  • メッセージを並べ替えるには、「順序」タブを選択し、列ヘッダーを使用してソートします(ヘッダーのクリックでソート、ダブルクリックで2次ソート)。

  • メッセージをグループ化するには、「相関」タブをクリックします。

  • 列の順序を変えるには、列ヘッダーをクリックしたまま新しい位置までドラッグします。

表11-8 「Httpアナライザ」ログ・ウィンドウのツールバー・アイコン

アイコン 名前 機能

この図については周囲のテキストで説明しています。


アナライザ・プリファレンス

新規リスナー・ポートを指定したり、デフォルト・プロキシを変更できるHTTPアナライザのプリファレンス・ダイアログを開く場合にクリックします。「ツール」→「プリファレンス」を選択し、「Httpアナライザ」ページを選択してHTTPアナライザに進むこともできます。

この図については周囲のテキストで説明しています。


新規リクエストの作成

ペイロード詳細の入力や、メッセージの編集および再送信を行うHTTPアナライザのテスト・ウィンドウを開く場合にクリックします。

この図については周囲のテキストで説明しています。


HTTPアナライザの起動

HTTPアナライザを起動する場合にクリックします。モニターがバックグラウンドで実行され、「停止」をクリックするか、JDeveloperを終了したときにのみ停止します。複数のリスナーを定義している場合、このボタンをクリックするとすべてのリスナーが起動します。1つのリスナーのみを起動するには、下矢印をクリックして起動するリスナーを選択します。

この図については周囲のテキストで説明しています。


HTTPアナライザの停止

HTTPアナライザを停止する場合にクリックします。複数のリスナーを実行している場合、このボタンをクリックすると、すべてのリスナーが停止します。1つのリスナーのみを停止するには、下矢印をクリックして停止するリスナーを選択します。

この図については周囲のテキストで説明しています。


リクエストの送信

リクエストの内容を変更したときに、リクエストを再送信する場合にこのボタンをクリックします。変更されたリクエストが送信され、戻されたレスポンスで変更を確認できます。

この図については周囲のテキストで説明しています。


WS-Iログ・ファイルを開く

既存のWS-Iログ・ファイルにナビゲートできる「アップロードするWS-Iログ・ファイルの選択」ダイアログを開く場合にクリックします。詳細は第20.10項「Webサービスの監視と分析」を参照してください。

この図については周囲のテキストで説明しています。


パケット・データの保存

HTTPアナライザ・ログ・ウィンドウの内容をファイルに保存する場合にクリックします。

この図については周囲のテキストで説明しています。


WS-I分析

Webサービスをパケット・レベルで検証できるWS-I Analyzeウィザードを起動する場合にクリックします。詳細は第20.10項「Webサービスの監視と分析」を参照してください。

この図については周囲のテキストで説明しています。


すべて選択

HTTPアナライザのログ・ウィンドウですべてのエントリを選択する場合にクリックします。

この図については周囲のテキストで説明しています。


すべて選択解除

HTTPアナライザですべてのエントリの選択を解除する場合にクリックします。

この図については周囲のテキストで説明しています。


選択した履歴のクリア(削除)

HTTPアナライザでエントリをクリアする場合にクリックします。


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

HTTPアナライザのログ・ウィンドウで「新規リクエストの作成」ボタンをクリックすると、空のHTTPアナライザ・テスト・ウィンドウが開きます。「アプリケーション」ウィンドウで、Webサービス・コンテナのコンテキスト・メニューから「Webサービスのテスト」を選択したり、HTTPアナライザのログ・ウィンドウで行をダブルクリックすると、図11-5のようにリクエスト/レスポンスの詳細を示すテスト・ウィンドウが開きます。デフォルトではJDeveloperの中央、ソース・エディタが表示されるのと同じ位置に表示されます。

図11-5 HTTPアナライザのテスト・ウィンドウ

この図は周囲のテキストで説明しています

テスト・ウィンドウでは、メッセージのヘッダーとパラメータを調べることができます。サービスをテストするには、適切なパラメータを入力して「リクエストの送信」をクリックします。

テスト・ウィンドウの下部にあるタブから、メッセージの内容の表示方法を選択できます。選択できるメッセージの表示方法は、次のとおりです。

  • 図11-5に示されている「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>
    

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

「ツール」メニューから「Httpアナライザ」を開くと、「HTTPアナライザ・インスタンス」ウィンドウが表示されます。デフォルトではJDeveloperの中央下部に、HTTPアナライザのログ・ウィンドウと並ぶタブとして表示されます。このウィンドウには、現在実行中または実行後に停止されたHTTPアナライザのインスタンスに関する情報が表示されます。インスタンスはホストとポートで識別され、ルールがあれば表示されます。このウィンドウからインスタンスの起動と停止が可能です。

図11-6 「HTTPアナライザ・インスタンス」ウィンドウ

この図は周囲のテキストで説明しています

新規インスタンスは、「プリファレンス」ダイアログの「HTTPアナライザ」ページに作成します。これは、新規リクエストの作成をクリックすると開きます。

表11-9 「HTTPアナライザ・インスタンス」ウィンドウのツールバー・アイコン

アイコン 名前 機能

この図については周囲のテキストで説明しています。


アナライザ・プリファレンス

新規リスナー・ポートを指定したり、デフォルト・プロキシを変更できる、「プリファレンス」ダイアログの「HTTPアナライザ」ページを開く場合にクリックします。

この図については周囲のテキストで説明しています。


新規リクエストの作成

ペイロード詳細の入力や、メッセージの編集および再送信を行うHTTPアナライザのテスト・ウィンドウの新しいインスタンスを開く場合にクリックします。

この図については周囲のテキストで説明しています。


HTTPアナライザの起動

HTTPアナライザを起動する場合にクリックします。モニターがバックグラウンドで実行され、「停止」をクリックするか、JDeveloperを終了したときにのみ停止します。複数のリスナーを定義している場合、このボタンをクリックするとすべてのリスナーが起動します。1つのリスナーのみを起動するには、下矢印をクリックして起動するリスナーを選択します。

この図については周囲のテキストで説明しています。


HTTPアナライザの停止

HTTPアナライザを停止する場合にクリックします。複数のリスナーを実行している場合、このボタンをクリックすると、すべてのリスナーが停止します。1つのリスナーのみを停止するには、下矢印をクリックして停止するリスナーを選択します。


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

HTTPアナライザを開始すると、JDeveloperによるすべてのJavaプロセスとアプリケーション・サーバーのアクティビティが、「プリファレンス」ダイアログの「HTTPアナライザ」ページのプロキシ設定を利用してHTTPアナライザ経由でトラフィックを送信します。このダイアログは、「インスタンス」ウィンドウまたは「ログ」ウィンドウの「HTTPアナライザの起動」ボタンをクリックすると開きます。デフォルトでは、HTTPアナライザは1つのアナライザ・インスタンス上で1つのプロキシ(デフォルトは8099)を使用しますが、必要な場合には独自のプロキシを追加できます。

各アナライザ・インスタンスには、異なるホスト/URLへのリクエストのリダイレクト、Webサービスのエミュレートなどの動作を決定する一連のルールがあります。

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

デフォルトでは、HTTPアナライザは1つのアナライザ・インスタンス上で1つのプロキシ(デフォルトは8099)を使用しますが、必要な場合には独自のプロキシを追加できます。

HTTPアナライザのプリファレンスを設定するには、次のようにします。

  1. 次のいずれかの方法でHTTPアナライザの「プリファレンス」ダイアログを開きます。

    • 「HTTPアナライザ・インスタンス」ウィンドウまたはログ・ウィンドウで「Httpアナライザの起動」ボタンをクリックします。

    • 「ツール」→「プリファレンス」を選択して「プリファレンス」ダイアログを開き、「Httpアナライザ」ページに移動します。

    詳細は、[F1]を押すか、HTTPアナライザの「プリファレンス」ダイアログで「ヘルプ」をクリックしてください。

  2. HTTPアナライザ・インスタンスに対して必要な変更を行います。たとえばホストとポート番号を変更する場合には、「プロキシの構成」をクリックして「プロキシ設定」ダイアログを開きます。

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

HTTPアナライザの複数インスタンスを実行できます。それぞれが異なるホストとポートの組合せを使用し、「HTTPアナライザ・インスタンス」ウィンドウでそのサマリーを確認できます。

HTTPアナライザのインスタンスを追加するには、次のようにします。

  1. 次のいずれかの方法でHTTPアナライザの「プリファレンス」ダイアログを開きます。

    • 「HTTPアナライザ・インスタンス」ウィンドウまたはログ・ウィンドウで「アナライザ・プリファレンス」ボタンをクリックします。

    • 「ツール」→「プリファレンス」を選択して「プリファレンス」ダイアログを開き、「Httpアナライザ」ページに移動します。

    詳細は、[F1]を押すか、HTTPアナライザのプリファレンス・ダイアログで「ヘルプ」をクリックしてください。

  2. 新しいリスナーとなる新しいHTTPアナライザ・インスタンスを作成するには、「追加」をクリックします。新しいリスナーがリストされてデフォルトとして選択され、値を変更できます。

11.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インスタンスが起動します。

11.3.8 HTTPアナライザによるSSLの使用

保護されたサービスまたはアプリケーション、たとえばポリシーで保護されたWebサービスに対してHTTPアナライザを使用できます。JDeveloperには、事前構成済の資格証明としてHTTPS Credentialが付属しており、これが常駐しています。HTTPS Credentialは削除も編集もできませんが、コピーして同じタイプの新しい資格証明を作成できます。

サービスまたはアプリケーションを実行すると、アナライザでは、適切なアイコンの実行に提供された資格証明を使用します。

HTTPアナライザでは、次のタイプの資格証明を使用できます。

HTTPSキーストア

HTTPSは、送信前にHTTPメッセージを暗号化し、受信時に復号化します。信頼できる認証局によって署名された公開鍵証明書を使用します。統合アプリケーション・サーバーを初めて起動すると、マシンに固有のDemoIdentityが生成され、その中にあるキーを使用してHTTPSチャネルが設定されます。

HTTPSの構成には、クライアント・キーストア・アイデンティティが使用されます。サーバー・キーストア・アイデンティティは、HTTPアナライザがサーバーとして機能する際に使用され、リモート・サーバーへの接続時には使用されません。

キー・ストアおよびキーストア・プロバイダの詳細は、『Oracle WebLogic Serverセキュリティの理解』を参照してください。デフォルトの資格証明であるHTTPSキーストアを選択する場合には、JDeveloperとHTTPアナライザがHTTPSトラフィックを処理する際に使用するキーストアを指定する必要があります。HTTPアナライザを実行するには、2つのキーストアが必要です。

  • クライアント・キーストア。外部接続時にJDeveloperとアナライザ(クライアントの信頼)によって信頼されるすべてのホストの証明書が含まれています。

  • サーバー・キーストア。アナライザがコール側クライアントに対する自身の認証に使用するキーが含まれています(サーバー・キーストア)。

クライアント・キーストアが必要なのは、相互認証が必要な場合のみです。

JDeveloperで提供されるデフォルトのキーストアのほかに、追加のHTTPSキーストアを作成できます。

ユーザー名トークン

ユーザー名トークンは、Basic認証情報の伝達に利用されます。認証に使用されるユーザー名/パスワードを指定します。

X509証明書

X509はシングル・サインオンのためのPKI標準であり、アイデンティティの提示と、メッセージの署名および暗号化に証明書を使用します。X509証明書の詳細を入力します。キーストアに対して有効なキーストアとパスワードを指定すると、クライアント・キー別名が移入されます。

JDeveloperに問題があってキーストアを検索できない、または開くことができない場合、エラー・メッセージが表示されます。

STS構成

セキュリティ・トークン・サービス(STS)は、HTTPS上でセキュリティ・トークンを発行し管理するWebサービスです。セキュリティ・トークン・サーバーのプロバイダURLを入力し、オプションでポリシーURLも入力します。


注意:

クライアント・トラストストアにはサーバーの公開鍵が含まれている必要があります。含まれていないと、HTTPアナライザのリクエスト時にSAMLトークンがエラーになります。

OAuthの詳細

OAuthはオープン認証プロトコルです。これにより、ユーザーにかわって機能するアプリケーションを、パスワードを共有せずに承認できます。OAuthプロトコル・セキュリティによって保護されるリソースは、有効なOAuth資格証明を使用してテストできます。たとえば、ツイッターのフィードを使用するリソースをテストする場合などがあります。


注意:

ユーザーが所有するリソースにサービス・プロバイダでアクセスするには、まずそのサービス・プロバイダに登録する必要があります。

JPS構成からのインポート

JRF Webサービスのテストに使用します。jps-config.xmlには、HTTPアナライザがサービスへのアクセスに必要とするセキュリティ情報が含まれます。

jps-config.xmlのデータを資格証明レコードにインポートできます。jps-config.xmlの場所を指定し、CSFキーの名前を入力すると、JDeveloperでは、jps-config.xmlおよび基礎となるウォレット・ファイルから読み取られた必要なデータで資格証明レコードが作成されます。

jps-config.xmlからインポートされたデータは、「X509証明書」タブと「ユーザー名トークン」タブに移入されます。

資格証明レコードが保存されると、そのレコードは、キーストア、キーおよびその他の必須データのソースとして、HTTPアナライザでWebサービス・プロキシの生成時に繰り返し使用できます。

11.3.8.1 HTTPアナライザによるSSLの使用方法

JDeveloperには、HTTPS Credentialと呼ばれるHTTPSキーストア資格証明のセットが付属しています。次の操作を実行できます。

  • 相互認証が必要な場合、HTTPS Credentialのクライアント・キーストアを構成します。

  • サポートされるいずれかのタイプの新しい資格証明を作成します。

  • 既存の資格証明に基づいて、新しい資格証明を作成します。

  • 資格証明を削除します。HTTPS Credentialは削除できないことに注意してください。

資格証明を構成するには:

  1. メイン・メニューから、「ツール」→「プリファレンス」を選択します。

  2. 「設定」ダイアログで、「資格証明」ノードを選択します。詳細は、[F1]を押すか、ダイアログ・ページ内で「ヘルプ」をクリックしてください。

  3. 適切な変更を行います。

    • 「HTTPSキーストア」タブを選択して、HTTPS Credentialのクライアント情報を追加します。

    • 追加をクリックして適切なタブを選択することで、新しい資格証明を追加します。

    • コピーをクリックして、既存の資格証明に基づいた新しい資格証明を作成します。タイプと値が同じ新しい資格証明が作成され、デフォルト名のCredential_nに1ずつ増分されます。

    • リストから資格証明を選択して削除をクリックすることで、その資格証明を削除します。HTTPS Credentialは削除できないことに注意してください。

11.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アナライザが自動的に開始されます。

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

HTML、JSPまたはJSFページなどのWebページをデバッグするときにもHTTPアナライザを使用できます。こうすると、ブラウザとの間で相互に送信されるトラフィックを直接調べることができます。

HTTPアナライザを使用してWebページをデバッグするには、次のようにします。

  1. HTTPアナライザを通じてメッセージをルーティングするようにブラウザを構成し、Webブラウザとクライアントの間でトラフィックを確認できるようにします。

  2. HTTPアナライザを起動します。

  3. 通常の方法で分析するクラス、アプリケーションまたはWebページを実行します。

    リクエストとレスポンスの各パケットが、HTTPアナライザのログ・ウィンドウにリストされ、HTTPアナライザのテスト・ウィンドウに詳細に表示されます。

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

HTTPリクエストの内容を編集し、再送信できます。次に、レスポンスを検証して、予想した変更が行われたかどうかを確認できます。

リクエストを送信するには、次のようにします。

  1. HTTPアナライザの「テスト」ウィンドウの「リクエスト」ペインで、パラメータ値を入力します。

  2. 「リクエストの送信」ボタンをクリックします。

  3. 処理された値が「レスポンス」ペインに戻されます。

リクエストを編集して再送信するには、次のようにします。

  1. HTTPアナライザの「テスト」ウィンドウの「リクエスト」ペインで、「コピー・リクエスト」をクリックします。新しいテスト・ウィンドウが開き、送信する新しいパラメータを入力できます。

    あるいは、HTTPアナライザのログ・ウィンドウで行をダブルクリックして新しいテスト・ウィンドウを開くこともできます。

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

HTTPアナライザがルールによって決定される動作を利用して実行するように、ルールを設定できます。1つのHTTPアナライザ・インスタンスで複数のルールを設定できます。サービスのURLがルールに一致した場合は、そのルールが適用されます。一致しない場合は、リストの次のルールがチェックされます。サービスがどのルールにも一致しない場合は、クライアントがエラーを返します。このような理由から、先行するルールによって捕捉されないメッセージが捕捉されるように、「パス・スルー・ルール」は常に、リストの最後のルールにブランク・フィルタ(単にリクエストを渡す)を設定して使用します。

次のタイプのルールがあります。

  • パス・スルー・ルール

  • 転送ルール

  • URL置換ルール

  • テープ・ルール

11.3.12.1 パス・スルー・ルールの使用

パス・スルーは、URLフィルタが一致する場合にリクエストを単純にサービスに渡します。「ルール設定」ダイアログを最初に開くと、2つのパス・スルー・ルールが定義されています。

  • 1つ目はhttp://localhost:631というURLフィルタを使用し、印刷サービス・リクエストを無視します。

  • 2つ目はURLがブランクのフィルタで、単純にリクエストを元のサービスに渡します。新規ルールを追加する場合には、通常このルールをリストの最後に移動する必要があります。

11.3.12.2 転送ルールの使用

転送ルールは、フィルタに一致したURLをすべて捕捉し、1つのURLにリクエストを転送します。

11.3.12.3 URL置換ルールの使用

URL置換ルールを使用すると、URL範囲の一部を置換してサービスを再ホストできます。たとえば、統合アプリケーション・サーバーとOracle WebLogic Serverの間で移動するときマシン名を置き換えることができます。

11.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メッセージに対しては動作しません。

11.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. ルールは上から下の順序で適用されます。並べ替えるには、上下の並替えボタンを使用します。ブランクの「パス・スルー・ルール」が最後のルールになるようにしてください。

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

この項では、JDeveloperで開発したWebサービスに対してHTTPアナライザを使用する方法について説明します。一般的には、HTTP間のパケットを調べるときと同じように、Webサービスのコンテンツを調べる際にHTTPアナライザを使用します。


注意:

WebLogic Server 9.xのポリシーがアタッチされているJAX-RPC Webサービスを、HTTPアナライザでテストすることはできません。WebLogic 9.xのポリシーは、JAX-RPCで非推奨になっています。

11.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メッセージ・コンテンツを確認できます。

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

HTTPアナライザを使用して、RESTful Webサービスを操作できます。Representational State Transfer (REST)は、SOAPなどの追加メッセージング・レイヤーなしで、標準化されたインタフェース(HTTPなど)を介してデータを送信する単純なインタフェースを記述するものです。RESTには、ステートレス・サービスを作成するための一連の設計ルールが用意されており、これらはリソース(特定の情報のソース)として表示されます。それぞれのリソースは固有のURIで識別できます。クライアントがURIを使用してリソースにアクセスすると、標準化された固定のメソッド・セットと、リソースの表示が返されます。クライアントは、新しい各リソース表示を使用してステートを転送します。

HTTPプロトコルを使用してRESTfulリソースにアクセスする際は、リソース識別子がリソースのURLとなります。そのリソースに対して実行する標準操作は、HTTPメソッドの1つ(GETPUTDELETEPOSTまたは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アナライザが作成した新しいリソースを検索し、サービスをテストしてから削除します。

例11-1に、POSTGETDELETEを使用するWADLドキュメントの例を示します。

例11-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ソースを表示できるようになります。詳細は、第20.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」を選択し、「リクエストの送信」をクリックします。

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

HTTPアナライザは、保護されていないWebSocketsリクエストをプロキシ経由で渡します。

リクエスト/レスポンス・ストリームの内容は、メッセージを閉じてから開きなおすとHTTPアナライザで使用できるようになります。WebSocketsメッセージは、レスポンス・コードが101のメッセージです。

11.3.16 Fast InfosetでのHTTP解析の使用

HTTPアナライザはFast Infoセットと連携しますが、HTTPヘッダーでContent-Typeをオーバーライドする場合を除き、デフォルトではかわりにsoap/xmlの送信に設定されます。

  • SOAP 1.1は、Content-Typeapplication/fastinfosetに変更します。

  • SOAP 1.2には、次のようなアクション名が含まれます。

    application/soap+fastinfoset;action=&quot;http://project1/HelloWorldSOAP12/helloRequest
    

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

この項では、HTTPアナライザの実行中に発生する可能性がある問題の解決方法について説明します。

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

レスポンスを待っているアプリケーションがある場合は、HTTPアナライザを起動または停止しないでください。HTTPアナライザを起動または停止する前に、アプリケーションを終了してください。

11.3.17.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が存在する必要があります。