Webアプリケーションの開発・運用時に発生する以下のトラブルについて対処方法を説明します。
JSPのコンパイルに失敗した場合
以下の可能性が考えられます。
JSPに誤りがある
使用できるのはJSP 2.2に準拠したJSPです。
JSPの文法に誤りがないか確認してください。
JSP 2.2の文法についてはJSP 2.2の仕様を参照してください。
JSPの文字コードを正しく指定していない
JSPファイルの文字コードを正しく指定していないためにJSPをコンパイルする際に文字化けが発生している可能性があります。
JSPの文字コードを正しく指定してください。
文字コードの指定方法についてはJSP 2.2の仕様を参照してください。
JSPから使用しているクラスが存在しない
JSPから使用するクラスは、Webクラスローダから参照できる必要があります。
詳細は、「2.22 クラスローダ」を参照してください。
無名パッケージのクラスを使用している
JSPからは無名パッケージのクラスを使用することはできません。
JSPから使用するクラスにはパッケージ名を指定してください。
JSPファイルのサイズが上限値を超えている
JSPファイルのサイズが大きすぎます。
以下の対処を行ってください。
タグ(アクションやスクリプティング要素)の間の不要な記載(スペース、コメント、改行など)がある場合は削除してください。
JSPファイルを分割し、動的にincludeを行ってください。
JSPまたはJSPから静的includeされているファイルを更新しても実行時に反映されない
以下の可能性が考えられます。
JSPコンパイル中にJSPまたはJSPから静的includeされているファイルの更新を行った。
JSPまたはJSPから静的includeされているファイルの置き換えを行ったが、ファイルのタイムスタンプが前回JSPのコンパイルを行った時刻よりも過去であった。
以下の対処を行ってください。
JSPまたはJSPから静的includeされているファイルのタイムスタンプをマシンの現在時刻に更新してください。
エラーページとして指定したページがWebブラウザに表示されない場合
「1.3.2 Webアプリケーションの注意事項」の「エラーページについて」の「Webブラウザの設定」を参照してください。
日本語などのマルチバイト文字を含むURIにアクセスすると、Webブラウザにステータスコード「404 Not Found」が通知される
ネットワーク設定の定義項目の「リクエストURIの解析に使用するエンコーディング(uri-encoding)」と、Webブラウザから送信されたリクエストURIのエンコードが一致しているか確認してください。また、Webブラウザがどのエンコード方式でリクエストURIをエンコードするかを確認してください。
例
Microsoft(R) Internet Explorer 8の場合
「ツール」-「インターネットオプション」-「詳細設定」-「UTF-8のURLを送信する」が有効な場合、リクエストURIはUTF-8で送信されます。
資源のリストア・移入後、Webブラウザにステータスコード「404 Not Found」が通知される
Java EE 6資源をリストア・移入した場合、isprintbackuprscコマンドで表示されたバックアップ対象サービスの資源もリストア・移入しているか確認してください。特に、Webサーバ連携をしている場合は、Interstage HTTP Server 2.2資源、Webサーバコネクタ(Interstage HTTP Server 2.2用)の資源のリストア・移入を実施するようにしてください。
WebサーバコネクタのログにメッセージIJServer12027が出力されている場合
メッセージの説明に記載されている対処を行っても解決しない場合、以下の可能性があります。
クライアントからのリクエストが、Webコンテナの同時処理数を超えている。かつ
Webアプリケーションの処理に時間がかかっており、レスポンスが遅延している。
以下の対処を行ってください。
「Webコンテナのチューニング」の「同時処理数」を増やしてください。
イベントログ/システムログにIJServer12046が出力されている場合
Webサーバの起動中に、Webサーバコネクタの動作環境を削除しようとした可能性があります。削除を実行する場合は、以下の手順で操作してください。
Webサーバを停止します。
Webサーバの環境定義ファイル(httpd.conf)を編集し、WebサーバからのWebサーバコネクタの呼び出しを停止します。
wscadmin delete-envサブコマンドでWebサーバコネクタの動作環境を削除します。
Webサーバを起動します。
詳細は、「9.14.2 delete-envサブコマンド」の注意事項を参照してください。
Webサーバコネクタの動作環境を誤って削除した場合は、Webサーバコネクタのリストアコマンド(wscrestore)でWebサーバコネクタの動作環境の設定を復旧してください。
または、以下に従い、削除したWebサーバコネクタの環境設定、およびWebサーバとIJServerクラスタの連携設定を再度実行してください。
「4.7.3 WebサーバとIJServerクラスタの連携設定」
Webサーバコネクタのログ出力の設定が変更されない場合
Webサーバコネクタのログ出力の設定を変更したにもかかわらず、変更前の設定に従ってログ出力が行われている場合、Webサーバの起動中にログ出力の設定を変更した可能性があります。
ログ出力の設定を変更する場合は、以下の手順で操作してください。
Webサーバを停止します。
wscadmin update-log-configサブコマンドでWebサーバコネクタのログ出力設定を変更します。
Webサーバを起動します。
Interstage Java EE 6 DASサービスに配備したWebアプリケーションとの通信に失敗する場合
以下の可能性があります。
配備したWebアプリケーションに対して大量のリクエストを送信している。
以下の対処を行ってください。
Interstage Java EE 6 DASサービスに配備したWebアプリケーションの実行は、開発環境でのみ実施してください。大量のリクエストを送信する場合、運用環境に構築したIJServerクラスタ上で実施してください。
Webブラウザにステータスコード「400 Bad Request」が通知される
Webコンテナで受信したリクエストと、ネットワーク設定の定義項目「Webコンテナへアクセスする運用形態(request-check)」が一致していない可能性があります。詳細は、「4.7 Webサーバを経由する場合の運用準備」、「4.8 Webサーバを経由しない場合の運用準備」、「7.7.3 ネットワーク設定の定義項目」を参照し、運用形態の見直しを実施してください。
Webブラウザにステータスコード「403 Forbidden」が通知される
Webコンテナが受信したリクエストの送信元が、Webコンテナに許可されていない可能性があります。
HTTPサービスの定義項目「要求を受け付けるIPアドレス」を参照し、要求を受け付けるIPアドレスの設定を確認してください。
なお、リクエストの送信元IPアドレスは、HTTPアクセスログの出力フォーマット「%webserver.name%」に出力されます。
Webブラウザにステータスコード「500 Internal Server Error」が通知される
アプリケーションの処理に失敗している可能性があります。サーバーログにエラーが出力されていないか確認してください。
Servletのファイルアップロードで、送信するファイルが2GByteを超えると、アップロードに失敗する
送信するファイルのサイズが2GByteを超えると、ブラウザがContent-Lengthヘッダーに実際のファイルのバイト数とは異なる値を設定する場合があります。この場合、WebコンテナはIOExceptionをスローします。なお、巨大なファイルを送信するとネットワークが過負荷になるため、適切にサイズ制限をすることをお勧めします。
Servletのファイルアップロードで、javax.servlet.http.HttpServletRequest#getPart(String)やgetParts()を実行すると、例外が発生する
ServletExceptionがスローされる場合
HTTPヘッダーのContent-Typeに不正なMIMEタイプが指定されている可能性があります。ファイルアップロード機能を利用する場合は、multipart/form-dataを指定する必要があります。Content-Typeヘッダーの指定が正しいか、確認してください。
IllegalStateExceptionがスローされる場合
アノテーションのmaxRequestSizeやweb.xmlのmax-request-sizeで指定した値を超えてファイルがアップロードされた可能性があり、正しくサイズ制限ができています。アプリケーションにIllegalStateExceptionを捕捉(catch)する処理を追加してください。
IOExceptionがスローされる場合
接続アップロードタイムアウトを超過した場合に、IOExceptionがスローされます。WebブラウザやWebサーバコネクタなどから、アップロードデータを受信できなかったことを意味しています。そのため、接続アップロードタイムアウトを長くして問題が解決するか、確認してください。
故障監視機能を使用しているが、故障が検出されない場合がある
WebサーバコネクタとWebサーバコネクタ(Interstage HTTP Server 2.2用)で、同一のWebサーバ名を使用している可能性があります。
故障監視を行っているWebサーバ名が、WebサーバコネクタとWebサーバコネクタ(Interstage HTTP Server 2.2用)の両方で使用されている場合、正しく故障監視を行うことができません。
以下の方法で、それぞれのWebサーバ名を確認してください。
Webサーバコネクタの場合
[Interstage管理コンソール] > [Interstage Application Server] > [システム] > [サービス] > [Webサーバ]
Webサーバコネクタ(Interstage HTTP Server 2.2用)の場合
wscadmin list-web-serversサブコマンド
list-web-serversサブコマンドについては、「9.14.6 list-web-serversサブコマンド」を参照してください。
故障監視を行っているWebサーバ名が、WebサーバコネクタとWebサーバコネクタ(Interstage HTTP Server 2.2用)の両方で使用されている場合、Webサーバコネクタ(Interstage HTTP Server 2.2用)で使用するWebサーバ名を変更してください。
Webサーバ名を変更するWebサーバを停止します。
Webサーバの停止方法については、「Interstage HTTP Server 2.2 運用ガイド」の「運用・保守」-「起動・停止」-「停止」を参照してください。
wscadmin list-web-serversサブコマンドの--detailオプションでWebサーバコネクタの設定を出力し、記録します。
list-web-serversサブコマンドについては、「9.14.6 list-web-serversサブコマンド」を参照してください。
wscadmin delete-envサブコマンドでWebサーバコネクタの動作環境を削除します。
delete-envサブコマンドについては、「9.14.2 delete-envサブコマンド」を参照してください。
テキストエディタなどでWebサーバ一覧ファイル(servers.conf)を開いて、変更対象のWebサーバ名を新しいWebサーバ名に変更します。
Webサーバ一覧ファイル(servers.conf)の設定方法については、「Interstage HTTP Server 2.2 運用ガイド」の「チューニング」-「環境定義」-「Web サーバ一覧ファイル(servers.conf)」を参照してください。
wscadmin create-envサブコマンドで、新しいWebサーバ名を指定し、Webサーバコネクタの動作環境を作成します。
create-envサブコマンドについては、「9.14.1 create-envサブコマンド」を参照してください。
asadmin、またはwscadminコマンドを使用し、2.で記録したWebサーバコネクタの設定と同様になるように、設定を行ってください。
asadminについては「9.1.10 Webサーバ連携」、wscadminコマンドについては「9.14 wscadmin」を参照してください。
Webサーバ名を変更したWebサーバを起動します。
Webサーバの起動方法については、「Interstage HTTP Server 2.2 運用ガイド」の「運用・保守」-「起動・停止」-「起動」を参照してください。
svmondspstatコマンドで表示されない振り分け先がある
WebサーバコネクタとWebサーバコネクタ(Interstage HTTP Server 2.2用)で、同一のWebサーバ名を使用している可能性があります。
「故障監視機能を使用しているが、故障が検出されない場合がある」を参照してください。