Oracle® Fusion Middleware Oracle Application Development Framework Webユーザー・インタフェース開発者ガイド 11g リリース2(11.1.2.4.0) B66719-05 |
|
![]() 前 |
この付録では、ADF FacesフレームワークとADF Facesコンポーネントを使用してアプリケーション・ユーザー・インタフェースを設計する際に生じる可能性のある一般的な問題について説明し、その解決方法を解説しています。
この付録では次の項について説明します。
表示される可能性のあるエラー・メッセージの詳細は、この章およびOracle Fusion Middlewareエラー・メッセージ・リファレンスを参照してください。
この項では、この章の情報を使用する際のガイドラインとプロセスを示します。次のガイドラインおよびプロセスに従うことで、作業の焦点を問題解決に絞り、問題解決までの時間を短縮できます。
ガイドライン
この章の説明を使用する際に、次のベスト・プラクティスに留意してください。
この章の解決策を実行した後すぐに、このトラブルシューティング情報を利用するきっかけとなった失敗したタスクを再試行します。再試行してもタスクが失敗する場合、この章に記載されている他の解決策を実行し、再度失敗したタスクを実行します。このプロセスを問題が解決するまで繰り返します。
実行した解決策、確認された現象およびトラブルシューティング中に収集したデータを記録しておきます。この章の情報を使用しても問題が解決されずサービス・リクエストを記録することになった場合、これらの情報があると迅速な問題解決につながります。
プロセス
この章の情報を利用する場合は、表G-1に概要を示したプロセスに従ってください。特定の項の情報でも問題を解決できない場合は、このプロセスの次のステップに進んでください。
表G-1 この章の情報を利用するプロセス
手順 | 使用する項 | 目的 |
---|---|---|
1 |
|
ADFアプリケーションのビュー・レイヤーのトラブルシューティングを開始します。この項に示す手順によって、幅広い問題に迅速に対応できます。 |
2 |
|
ADFアプリケーションのビュー・レイヤーに関する問題別トラブルシューティングの手順を実行します。この項では、次の内容について説明します。
|
3 |
|
My Oracle Supportを使用してその他のトラブルシューティング情報を取得します。My Oracle Support Webサイトから、ナレッジ・ベース記事、コミュニティ・フォーラム、ディスカッション・ページへのリンクを含むいくつかの有益なトラブルシューティング・リソースにアクセスできます。 |
4 |
|
この章とMy Oracle Supportの情報では問題を解決できない場合に、サービス・リクエストを記録します。サービス・リクエストを記録するには、 |
Oracle ADFの組込みエラー・メッセージによって、アプリケーションのどのレイヤーが問題の原因となっているかを判別できます。エラー・メッセージはトラブルシューティングの開始点であり、Web上で特定のエラー・メッセージを調べることもできます。ADFビジネス・コンポーネントのモデル・レイヤーから発生するエラー・メッセージにはJBO接頭辞が付きます。これらは、ADF Facesビュー・レイヤーも含めて他のすべてのADFレイヤー・コンポーネントと同様に、Javaエラー・メッセージとして、Oracleパッケージとともに表示されます。
レイヤーを特定できたら、診断ツールを実行することもできます。また、ログ・ファイルを表示して記録されたエラーがないか確認することもできます。エラー・メッセージは『Oracle Fusion Middlewareエラー・メッセージ・リファレンス』で参照できます。また、Oracle Technology Networkの技術フォーラムで、エラー・メッセージ関連のディスカッションを検索することもできます。Oracle ADFのコンポーネント・レイヤーには、それぞれ専用のフォーラムが設定されています。Oracle Technology Network(https://forums.oracle.com/forums/main.jspa?categoryID=84
)の開発ツール・リストの下にあるJDeveloperおよびOracle ADFのフォーラム・ホームページにアクセスしてください。
トラブルシューティングを開始する前に、エラーを簡単に検索できるようにADFアプリケーションを構成しておく必要があります。表G-2では、トラブルシューティング用にADFアプリケーションのビュー・レイヤーを構成する際の設定の概要を示しています。
表G-2 ADF Facesトラブルシューティング最適化の構成オプション
構成に関する推奨事項 | 説明 |
---|---|
デバッグ出力を有効化します。 |
デバッグ出力を有効化するには、
<adf-faces-config xmlns=
"http://xmlns.oracle.com/adf/view/faces/config">
<debug-output>true</debug-output>
<skin-family>oracle</skin-family>
</adf-faces-config>
WebブラウザでのHTMLマークアップの可読性を次のように改善します。
|
コンテンツ圧縮を無効化します。 |
コンテンツ圧縮を無効化するには、 <context-param> <param-name> org.apache.myfaces.trinidad.DISABLE_CONTENT_COMPRESSION </param-name> <param-value>true</param-value> </context-param> 元の圧縮されていないスタイルを強制的に使用して、可読性を改善します。 コンテンツ圧縮を無効にしないかぎり、CSSスタイル名とスタイルは圧縮されて表示されるため、読み取りにくいことがあります。 |
JavaScript圧縮を無効化します。 |
JavaScript圧縮を無効化するには、 <context-param> <param-name> org.apache.myfaces.trinidad.DEBUG_JAVA_SCRIPT </param-name> <param-value>true</param-value> </context-param> 通常は曖昧化されているJavaScriptをソースとして圧縮されない状態で表示できるようにします。 |
クライアント・サイドのアサートを有効化します。 |
クライアント・サイドのアサートを有効化するには、 <context-param> <param-name> oracle.adf.view.rich.ASSERT_ENABLED </param-name> <param-value>true</param-value> </context-param> 予期しない状態の警告をブラウザ・コンソールに出力できるようにします。 |
クライアント・サイドのロギングを有効化します。 |
クライアント・サイドのロギングを有効化するには、 <context-param> <param-name> oracle.adf.view.rich.ASSERT_ENABLED </param-name> <param-value>true</param-value> </context-param> ログ・メッセージをブラウザ・コンソールに出力できるようにします。 クライアント・サイドのロギングを有効にしないかぎり、ログ・メッセージはクライアントに報告されません。 |
より詳細なサーバー・サイドのロギングを有効化します。 |
より詳細なサーバー・サイドのロギングを有効化し、アプリケーション・サーバーをシャットダウンし、次の設定を
または 次のWLSTコマンドを使用します。
または Oracle Enterprise Manager Fusion Middleware Controlで、構成ページを使用して より詳細なログ・メッセージをブラウザ・コンソールに出力できるようにします。 サーバー・サイドのロギングをログ・レベルCONFIGまたはそれ以上で構成しないと、有益な診断メッセージは報告されないことがあります。 使用可能なログ・レベルの設定は、SEVERE、WARNING、INFO、CONFIG、FINE、FINER、FINEST、ALLです。CONFIGレベル以上の設定をお薦めします。デフォルトはSEVEREです。 |
HTTPキャッシュ・ヘッダーを無効化します。 |
HTTPキャッシュ・ヘッダーを無効化するには、 <context-param> <param-name> org.apache.myfaces.trinidad.resource.DEBUG </param-name> <param-value>true</param-value> </context-param> パッチ適用済リソースのリロードを強制します。 HTTPキャッシュ・ヘッダーが無効化されないかぎり、ブラウザはリソースをキャッシュして、リソースへの高速アクセスを可能にします。 設定を変更した後で、ブラウザのキャッシュをクリアしてリソースのリロードを強制します。 |
オプションとして、Webブラウザでのパフォーマンス・プロファイリングを有効化します。 |
オプションとしてWebブラウザでパフォーマンス・プロファイリングを有効化するには、 <context-param> <param-name> oracle.adf.view.rich.profiler.ENABLED </param-name> <param-value>true</param-value> </context-param> 通常、これは最近のすべてのバージョンのブラウザで処理されています。 必要に応じて、ログ・レベルをINFOレベル以上に設定することをお薦めします。ブラウザ・コンソールに出力されます。 |
この項では、一般的な障害と解決策について説明します。
ADFアプリケーションは、デフォルト・スキンとして簡単な、または最小限のルック・アンド・フィールを表示します。デフォルト・スキンの背景は白で表示されます。
原因
スキンのJARファイルがすべてのアプリケーションに対して正しくデプロイされているとはかぎりません。
解決策
この問題を解決するには、次のようにします。
スキンのJARファイルがすべてのアプリケーションに対してデプロイされているか確認してください。
『Oracle Fusion Middleware Oracle Application Development Frameworkスキン・エディタ・ユーザーズ・ガイド』のWebアプリケーションへのADFスキンの適用に関する項の説明に従って、プロファイル・オプションでのスキンのスペルが間違っていないことを確認してください。
スキン・アプリケーションは、イメージ・ファイルを含むJARファイルとしてパッケージ化されている必要があります。
原因
スキンのJARファイルが正しくパッケージ化されていません。
解決策
この問題を解決するには、次のようにします。
スキン・アプリケーションの作成時に正しいターゲット・アプリケーションのバージョンが指定されたか確認してください。
『Oracle Fusion Middleware Oracle Application Development Frameworkスキン・エディタ・ユーザーズ・ガイド』のADFスキンのADFライブラリJARへのパッケージ化に関する項の説明に従って、スキン・アプリケーションを再パッケージ化し、JARファイルを新規に作成してください。
作成したADFスキンで定義されたスタイル・プロパティでは、ブラウザで予想どおりにレンダリングされません。
原因
すべてのADFスキン・セレクタがカスタマイズできるとはかぎりません。有効でないセレクタをカスタマイズすると、アプリケーションで予期しない動作や一貫性のない動作が発生する場合があります。
解決策
この問題を解決するには、次のようにします。
コンテキスト初期化パラメータの設定をweb.xml
ファイルで確認します。CHECK_FILE_MODIFICATION
パラメータをtrue
に設定した場合、ADFスキンに加えたすべての変更がすぐに表示されるわけではありません。アイコンとADFスキンのプロパティに加えた変更を表示するには、Webアプリケーションを再起動する必要があります。
『Oracle Fusion Middleware Oracle Application Development Frameworkスキン・エディタ・ユーザーズ・ガイド』のADFスキンでの変更のテストに関する項の説明に従って、有効なADFスキン・セレクタ、擬似要素および擬似クラスのみをカスタマイズしたことを確認してください。
様々なADF DVTコンポーネントはFlashに依存して正しく表示できるため、プラットフォームやブラウザでFlashがサポートされていないと、アプリケーションでDVTコンポーネントの視覚的な要素を表示できない場合があります。
原因
すべてのプラットフォームとブラウザでFlashがサポートされているわけではありません。このため、アプリケーションは使用可能な最善のフォールバックに強制的にダウングレードされます。プラットフォームがサポートされていない場合、アプリケーションでは、adf-config.xml
ファイルのflash-player-usage
の設定に従って表示されます。
解決策
この問題を解決するには、ブラウザに使用可能な最新のFlashバージョンを再インストールしてください。
クラスタ環境で実行するアプリケーションを設計している場合は、1つのリクエストよりも長い寿命のマネージドBeanがすべてシリアライズ可能であることを確認する必要があります。
原因
Fusion Webアプリケーションをクラスタ環境で実行する場合は、アプリケーションの状態の一部がシリアル化され、各リクエストの終わりに別のサーバーまたはデータ・ストアにコピーされるため、クラスタ内の他のサーバーがこの状態を利用できるようになります。具体的には、セッション・スコープ、ページ・フロー・スコープおよびビュー・スコープに格納されているBeanは、シリアライズ可能である必要があります(これらのBeanはjava.io.Serializable
インタフェースを実装しています)。
解決策
この問題を解決するには、次のようにします。
サーバーのチェックを有効にして、セッション属性でシリアライズ不能な状態コンテンツが検出されないようにします。このチェックは、デフォルトでは、実行時のオーバーヘッドを軽減するために無効になっています。シリアライズ・チェックは、Javaサーバーのシステム・プロパティorg.apache.myfaces.trinidad.CHECK_STATE_SERIALIZATION
によってサポートされます。次に示すJavaシステム・プロパティは、アプリケーション・サーバーの起動時に指定する必要があります。
高可用性をテストするには、まず次のシステム・プロパティを使用してアプリケーション・サーバーを起動し、セッションおよびJSFの状態がシリアライズ可能であることを確認します。
-Dorg.apache.myfaces.trinidad.CHECK_STATE_SERIALIZATION=session,tree
次のようにbeansオプションを追加して、該当するマップのシリアライズ可能なオブジェクトのシリアライズされたコンテンツがリクエスト中に変更された場合に、そのオブジェクトがダーティとマークされたことをチェックします。
-Dorg.apache.myfaces.trinidad.CHECK_STATE_SERIALIZATION=session,tree,beans
JSFの状態がシリアライズ不能であることが検出された場合は、次のシステム・プロパティを使用してアプリケーション・サーバーを再起動し、コンポーネントとプロパティのフラグを有効にしてからテストを再実行します。
-Dorg.apache.myfaces.trinidad.CHECK_STATE_SERIALIZATION=all
アプリケーションをMicrosoft Windows Internet Explorerで実行して問題を検証していますが、Mozilla Firefoxでアプリケーションを実行するときに、問題が再現されません。このような問題は視覚的な性質ものであることが多く、たとえば、Webページで領域を区切る余分の空白が意図せずに表示されることがあります。
原因
設定はブラウザ間で異なるため、アプリケーションの表示方法に違いが生じることがあります。
解決策
この問題を解決するには、次のようにします。
ブラウザのセキュリティ設定をチェックして、構成が間違っていないことを確認してください。たとえば、JavaScript、XML HTTPまたはポップアップを無効にしていないことを確認してください。
Internet Explorerが互換性モードで実行していないことを確認してください。「現在の互換性の設定はサポートされていません」というダイアログが表示された場合は、ブラウザの「ツール」メニューで互換性モードを無効にしてください。
JavaScriptエラーが表示される場合は、ブラウザの不具合の可能性が高いです。ただし、ADF Faces固有のJavaScriptエラーであることも考えられます。
アプリケーション・ページで、コンテンツが予想されている領域が空で表示されることがあります。
原因
この原因は、アプリケーションの設計によって異なります。たとえば、アプリケーションで実施している権限により、アプリケーションでのコンテンツの表示が無意識に妨害されていることがあります。または、ポートレットを使用しているとき、ポートレット・サーバーがダウンしている可能性もあります。
解決策
この問題を解決するには、次のようにします。
例外がないかログ・ファイルをチェックしてください。ログ・レベルをSEVEREよりも下位のレベルに変更することをお薦めします。Oracle Fusion Middlewareのロギング機能の詳細は、『Oracle Application Server管理者ガイド』の「ログ・ファイルと診断データの管理」を参照してください。
Oracle Fusion Middleware Oracle WebLogic Server管理コンソールのオンライン・ヘルプのサーバー・パフォーマンスの監視に関する項の説明に従って、スタック・スレッドを検索してください。スタック・スレッドが見つかった場合は、スレッド・スタック・ダンプを調べてください。
部分ページ・レンダリング(PPR)でHTTP 403または404エラーが見られる場合は、不具合の可能性が高いです。
アプリケーションから予期しない場所でランタイム例外が返され、これは処理されません。
原因
ADF Facesはライフサイクルのあるフェーズで未処理の例外を受け取り、リクエスト処理を中止します。
解決策
この問題を解決するには、次のようにします。
これは、アプリケーションのロジック・エラーの可能性が高いです。
サーバー・ロードとアプリケーションが不適切な状態でないことを確認してください。
アプリケーションは予期されるページに移動せず、HTTP 404のファイルが見つからないエラー、またはHTTP 500の内部サーバー・エラーが表示されます。
原因
この原因は、アプリケーション・サーバーまでトレースできる場合があります。
解決策
この問題を解決するには、次のようにします。
Oracle Fusion Middleware Oracle WebLogic Server管理コンソールのオンライン・ヘルプでサーバー・パフォーマンスの監視に関する項およびサーバーの構成のオーバーロードに関する項の説明に従って、アプリケーション・サーバーが実行中であり、アプリケーションが不適切な状態ではないことを確認してください。
ハング・スレッドがないかチェックします。
アプリケーションでは、予期しているターゲットWebページへ移動して、そのページを開くことができません。
原因
この原因はアプリケーションの設計によって異なったり、アプリケーション・サーバーまでトレースできる場合があります。
解決策
この問題を解決するには、次のようにします。
第G.3.8項「ブラウザでADF_Faces-60098エラーが表示される」の説明に従って、ADF Facesのライフサイクル・スレッドに固有の未処理例外がないかチェックしてください。
第G.3.9項「ブラウザでHTTP 404または500のエラーが表示される」の説明に従って、HTTP 404または505のエラーを検索してください。
Oracle Fusion Middlewareの問題の解決にMy Oracle Support (以前のMetaLink)を使用できます。My Oracle Supportには、次のような有用なトラブルシューティング・リソースが含まれています。
ナレッジ・ベース記事
コミュニティ・フォーラムとディスカッション
パッチとアップグレード
動作保証情報
注意: My Oracle Supportを使用してサービス・リクエストを記録することもできます。 |
My Oracle Supportにはhttps://support.oracle.com
からアクセスできます。