WebSphere Application Server Version 6.1 Feature Pack for Web Services   
             オペレーティング・システム: AIX , HP-UX, i5/OS, Linux, Solaris, Windows, Windows Vista, z/OS

             目次と検索結果のパーソナライズ化

JavaServer Pages トラブルシューティングのヒント

このヒントを使用して、JavaServer Pages の問題をトラブルシューティングします。

Web サーバーで表示される JavaServer Pages ソース・コード

WebSphere Application Server の文書ルートを Web サーバーの文書ルートと共用している場合は、Web サーバーが JavaServer Pages (JSP) ソース・ファイルをプレーン・テキストとして表示してしまうことによる、機密漏れが発生する恐れがあります。

問題

WebSphere Web サーバー・プラグインを使用 すると、要求を WebSphere Application Server が処理するかどうかを決定する規則を設定できます。受信する要求 がルールに一致しない場合には、Web サーバー・プラグインは制御を Web サーバーに返し 、Web サーバーは要求を実行できます。 この場合、未知のホスト・ヘッダーに対しては、ルールによって WebSphere Application Server が処理すべきであるとは判定されないため、Web サーバー・プラグインは制御を Web サーバーに返します。その結果、Web サーバーは Web サーバー 文書ルート内で要求を探します。JSP ソース・ファイルは Web サーバーの文書ルート 内に保管されるため、Web サーバーはファイルを検索し、プレーン・テキストと して表示します。

推奨される解決法

WebSphere Application Server JSP ソース・ ファイルを Web サーバー文書ルート外に 移動します。 すると、この要求が未知のホスト・ヘッダーと共に来た場合には、プラグ インは制御を Web サーバーに返し、JSP ソース・ファイルは文書ルート内に は見つかりません。その結果、Web サーバーは JSP ソースではなく、404 File Not Found エラーを返します。

@include ディレクティブを使用している際の 2 バイト文字セット (DBCS) 文字の表示に関する問題

@include ディレクティブを使用する JavaServer Pages ファイルで 2 バイト文字セット (DBCS) 文字を表示すると、問題が発生する可能性があります。WebSphere Application Server バージョン 6.0 以降にマイグレーションされた一部のアプリケーションでは、 後方互換性の問題から JSP 2.0 仕様に準拠するように変更する必要がある場合があります。 JSP 2.0 仕様では、静的に組み込まれた各リソースがページ・エンコードまたはコンテンツ・タイプを設定することが必要です。 これは、1 つのファイルの中に include ディレクティブを使用する別のファイルが含まれている場合でも、各ファイルの文字エンコードは別々に決定されるためです。

JavaServer Pages (JSP) エンジンを使用する際の問題

JavaServer Pages (JSP) エンジンの使用中に、障害が生じた場合は、以下のステップを試みてください。
  1. .html ファイルまたはサーブレットなどのその他のリソースが要求され、 正しく表示されているかどうかを判別する。これらのファイルが正しく表示されない場合は、 HTTP サーバーなどのより深いレベルで問題が発生している可能性があります。
  2. その他のリソースが正しく表示されている場合は、 以下のようにして、JSP プロセッサーが正常に始動したかどうかを判別します。
    • [AIX HP-UX Linux Solaris Windows] [i5/OS] アクセスしたい JSP ファイルをホスティングしているサーバーの JVM ログを参照します。 次のメッセージは、JSP プロセッサーが正常に起動したことを示します。
      Extension Processor [class com.ibm.ws.jsp.webcontainerext.JSPExtensionProcessor] 
      was initialized successfully. 
      Extension Processor [class com.ibm.ws.jsp.webcontainerext.JSPExtensionProcessor] 
      has been associated with patterns [*.jsp *.jspx *.jsw *.jsv ].
      JSP プロセッサーがロードに失敗した場合、以下のようなメッセージが表示されます。
      No Extension Processor found for handling JSPs.
      JSP Processor not defined. Skipping : jspfilename.
      in the root_dir/logs/server_name/SystemOut.log file
    • [z/OS] アクセスを試みている JSP ファイルをホスティ ングしているサーバーのログを参照します。 次のメッセージは、JSP プロセッサーが正常に起動したことを示します。
      Extension Processor [class com.ibm.ws.jsp.webcontainerext.JSPExtensionProcessor] 
      was initialized successfully. 
      Extension Processor [class com.ibm.ws.jsp.webcontainerext.JSPExtensionProcessor] 
      has been associated with patterns [*.jsp *.jspx *.jsw *.jsv ].
      JSP プロセッサーがロードに失敗した場合、以下のようなメッセージが表示されます。
      No Extension Processor found for handling JSPs.
      JSP Processor not defined. Skipping : jspfilename.
      in the server log files.
  3. JSP エンジンが正常に始動した場合は、JSP ファイルそのものに問題がある可能性があります。
    • [AIX HP-UX Linux Solaris Windows] [i5/OS] JSP が無効な JSP 構文で、 JSP プロセッサーで処理できない場合があります。ターゲット・アプリケーションの root_dir/logs/server_name/SystemOut.log ファイルで、無効な JSP 指示構文のメッセージを調べます。 ブラウザーに表示される、以下に類似したエラーは、このタイプの問題を示しています。
      Message: /filename.jsp(2,1)JSPG0076E: Missing required attribute page for jsp 
                   element jsp:include 
      この例では、指定された JavaServer Pages ファイルの 2 行目の列 1、jsp:include action で、必須属性が欠落していることが示されています。他の構文エラーの場合にも、同様なメッセージが表示されます。
    • [z/OS] JSP が無効な JSP 構文で、 JSP プロセッサーで処理できない場合があります。ターゲット・アプリケーションのサーバー・ログ・ファイルで、無効な JSP 指示構文のメッセージを調べます。 ブラウザーに表示される、以下に類似したエラーは、このタイプの問題を示しています。
      Message: /filename.jsp(2,1)JSPG0076E: Missing required attribute page for jsp 
                  element jsp:include 
      この例では、指定された JavaServer Pages ファイルの 2 行目の列 1、jsp:include action で、必須属性が欠落していることが示されています。他の構文エラーの場合にも、同様なメッセージが表示されます。
    • ターゲット・アプリケーション・サーバーの SystemErr.log ファイルに、無効な Java 構文に伴う問題を調べます。 ブラウザーのメッセージに「JSP のクラスをコンパイルできません」のようなエラーが表示されるのは、この種の問題を示しています。
      Javac コンパイラーからのエラー・メッセージは、SystemErr.log に出力されます。 これは、次のように記述されます。
      JSPG0091E: An error occurred at line: 2 in the file: /myJsp.jsp 
      JSPG0093E: Generated servlet error: c:¥WASROOT¥temp¥ ... 
      test.war¥_myJsp.java:16: myInt is already defined in com.ibm.ws.jsp20._myJsp 
      int myInt = 122; String myString = "number is 122"; static int myStaticInt=22; int myInt=121;
      ^  1 error
      

      JSP ファイル内のエラーを訂正して、ファイルを再試行します。

    • ターゲット・アプリケーション・サーバーのサーバー・ログ・ファイルに、無効な Java 構文に伴う問題を調べます。 ブラウザーのメッセージに「JSP のクラスをコンパイルできません」のようなエラーが表示されるのは、この種の問題を示しています。
      [AIX HP-UX Linux Solaris Windows] [i5/OS] Javac コンパイラーからのエラー・メッセージは、SystemErr.log に出力されます。 これは、次のように記述されます。
      JSPG0091E: An error occurred at line: 2 in the file: /myJsp.jsp 
      JSPG0093E: Generated servlet error: c:¥WASROOT¥temp¥ ... 
      test.war¥_myJsp.java:16: myInt is already defined in com.ibm.ws.jsp20._myJsp 
      int myInt = 122; String myString = "number is 122"; static int myStaticInt=22; int myInt=121;
      ^  1 error
      
      [z/OS] Javac コンパイラーからのエラー・メッセージは、サーバー・ログ・ファイルに出力されます。 これは、次のように記述されます。
      JSPG0091E: An error occurred at line: 2 in the file: /myJsp.jsp 
      JSPG0093E: Generated servlet error: c:¥WASROOT¥temp¥ ... 
      test.war¥_myJsp.java:16: myInt is already defined in com.ibm.ws.jsp20._myJsp 
      int myInt = 122; String myString = "number is 122"; static int myStaticInt=22; int myInt=121;
      ^  1 error
      

      JSP ファイル内のエラーを訂正して、ファイルを再試行します。

プリコンパイルを使用した場合に JavaServer Pages がコンパイルに失敗する

症状 プリコンパイルが選択されている際、管理コンソールでのデプロイメント中に JavaServer Pages がコンパイルに失敗します。
SystemErr R com.ibm.websphere.management.exception.AdminException: 
ADMA0021E: Error in compiling jsps - xyz.war (rc=1)
問題 どのクラスパスでも使用不可の別の Java アーカイブ (JAR) ファイルへの依存関係がある場合に、プリコンパイルが選択されていると、管理コンソールでのデプロイメント中に JavaServer Pages がコンパイルに失敗します。
推奨される解決法 エンタープライズ・アプリケーションのデプロイメント中に JSP ファイルをプリコンパイルするために wsadmin スクリプトを使用することができます。 しかし、管理コンソールを使用するには、アプリケーションをパッケージ化する前に、すべての JSP ファイルをコンパイルします。
  1. 依存する JAR をセル環境のデプロイメント・マネージャーに追加します。
    1. コンソール・ナビゲーションで、「システム管理」>「デプロイメント・マネージャー」>「Java およびプロセス管理」>「プロセス定義」>「Java 仮想マシン」とクリックします。
    2. 完全修飾された依存する JAR をクラスパス・フィールドに追加します。
    3. 「OK」 をクリックします。
    4. デプロイメント・マネージャーを再始動します。

JSPG0089E: ページ・ディレクティブ・エンコード Shift_JIS と xml prolog エンコード UTF-8 との間に不一致が検出されました。

症状
以下のエラーが表示されます。
JSP 処理エラー

HTTP エラー・コード: 500

エラー・メッセージ: /test.jsp(2,1) /test.jsp(2,1) JSPG0089E: ページ・ディレクティブ・エンコード Shift_JIS と xml prolog エンコード UTF-8 との間に不一致が検出されました。
問題 jsp:directive.page エレメントの pageEncoding 属性が UTF-8 ではありません。
推奨される解決法 JavaServer Pages では、ページ・ディレクティブで指定されたエンコード方式にマッチングする prolog を指定する必要があります。 以下に例を示します。
<?xml version="1.0" encoding="Shift_JIS"?>
<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.0">
<jsp:directive.page language="java" contentType="text/html";
	charset=Shift_JIS" pageEncoding="Shift_JIS"/>
<jsp:text>XXXXXjsp:text>XXXXX>
</jsp:root>

追加情報については、JavaServer Pages 仕様の JSP.4.1 節「Page Character Encoding」および Extensible Markup Language (XML) 仕様の 4.3.3 節および付録 F.1 を参照してください。

これらのステップで問題が解決されない場合は 、問題の診断および修正: 学習用リソースのリンクを使用して、問題が特定され、文書化されているかどうかを確認してください。 類似した問題が見つからない場合、 または提供されている情報では問題が解決されない場合は、IBM サポートに連絡してください。

IBM サポートから入手可能な既知の問題およびその解決法に関する最新の情報については、IBM サポート・ページを参照してください。 IBM サポート・ページが提供する資料を参照すれば、この問題を解決するために必要な情報を集める時間を節約することができます。




関連概念
Web アプリケーション
関連タスク
JSP エンジン・パラメーターの構成
関連資料
[z/OS] [AIX HP-UX Linux Solaris Windows] インストールの問題
参照トピック    

ご利用条件 | フィードバック

最終更新: Jan 21, 2008 4:10:06 PM EST
http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/index.jsp?topic=/com.ibm.websphere.wsfep.multiplatform.doc/info/ae/ae/rtrb_jspcomp.html