ページの先頭行へ戻る
Interstage Application Server/Interstage Web Server Express メッセージ集
Interstage

107.1.2 サーブレット・コンテナで発生したExceptionまたはErrorについて

Servletサービスでよく発生するJavaのExceptionやError、アプリケーションが異常終了する要因について説明します。
サーブレットまたはJSPが異常終了した場合、サーブレット・コンテナの標準出力・標準エラー出力のログ、サーブレットのログ、サーブレット・コンテナのログまたはブラウザにJavaのスタックトレースが出力されます。
考えられる原因と対処を以下に示します。
なお、ここで述べる原因とは、当該Exceptionが発生する引き金となる根本原因を指します。
また、複数のExceptionが同時に発生している場合は、「Root cause:」のExceptionの対処を行ってください。

ここでのメッセージは、メッセージの内容を直接参照してください。


BindException

原因

サーブレット・コンテナ環境定義ファイルに設定したサーブレット・コンテナのクラス定義のIPアドレス、ポート番号への接続に失敗しています。
ポートが使用中であるか、IPアドレスの割り当てに失敗している可能性があります。

ユーザの対処

Interstage管理コンソール用のポート番号が使用中でないことを確認してください。
現在使用中のポートについては、netstatコマンドで確認できます。netstatコマンドについてはOSのマニュアルおよびヘルプを参照ください。
コンテナの標準出力、標準エラー出力のログに以下のメッセージが出力された場合には、“107.1.3 起動ログおよびコンテナの標準出力、標準エラー出力のログメッセージ”を参照してください。

  • FATAL: java.net.BindException: Address in use: bind
    java.net.BindException: Address in use: bind
    または
    FATAL: java.net.BindException: Cannot assign requested address: JVM_Bind
    java.net.BindException: Cannot assign requested address: JVM_Bind


ClassCastException

原因

サーブレットまたはJSPのリロードにより、Webブラウザとのセション情報の不整合が発生しました。

ユーザの対処

Webブラウザを修了し、セション管理を最初からやり直してください。


java.io.IOException

原因

コンテナの標準出力、標準エラー出力のログに以下のメッセージが出力された場合には、“107.1.3 起動ログおよびコンテナの標準出力、標準エラー出力のログメッセージ”を参照してください。

  • HANDLER THREAD PROBLEM: java.io.IOException: Stream broken
    java.io.IOException: Stream broken

その他の場合、サーブレット・コンテナがレスポンスを送信中にサーブレット・ゲートウェイ-サーブレット・コンテナ間のソケットが切断されたことにより発生することがあります。
ゲートウェイがコンテナの応答処理の完了を待たずにソケットを切断するタイミングは以下のとおりです。

  • Webブラウザなどのクライアントアプリケーションが処理を中断(ソケットを切断)したことを検出しました。

    • ユーザオペレーションによる中断。

    • クライアントのキャッシュ制御による自動的な中断。

ユーザの対処

この場合、クライアントアプリケーションからの中断であり、サーバ上の異常を示すものではありません。この場合IOExceptionが出力される要因は以下のものがあります。

  • クライアントアプリケーションの終了

  • リクエストの完了を待たずに中止ボタンを押下

  • リロードの連打

  • リンク先、ポスト先をダブルクリック

  • 先のリクエストの完了を待たずに別リンクへ遷移

なお、これらのIOExceptionは、ゲートウェイによるクライアントアプリケーションのソケット切断の検出タイミング(ネットワークの状態によって異なる)とコンテナによるソケットへの書き出しタイミングに依存するため、必ず発生するものではありません。


NoClassDefFoundError

原因

実行しようとしたクラスファイルが見つかりません。

ユーザの対処

CLASSPATHの設定を見直してください。


OutOfMemoryError

原因

  1. Java VMのヒープ領域の不足です。

  2. Java VMのパーム(permanent)領域の不足です。

  3. システムのメモリ不足です。


原因の切り分け調査には、サーブレット・コンテナのヒープ使用状況を確認できるjheapコマンドが使用できます。jheapコマンドを使用する際に必要なサーブレット・コンテナのプロセスIDは、jscontdispコマンドで確認できます。
jheapコマンドの使用方法については、“トラブルシューティング集”の“Javaツール機能”-“jheap”を参照してください。

ユーザの対処

  1. Java VMの最大ヒープ領域のサイズを増やしてください。

  2. ヒープ領域に空きがあるにもかかわらず、本メッセージが出力される場合には、パーム(permanent)領域が不足していることが考えられます。Java VMのパーム領域のサイズを増やしてください。

  3. 現在起動しているServletサービス以外の不要なアプリケーションを終了してください。メモリ量が不足しているときには、メモリを増設してください。


ServletException

原因

サーブレット内部でExceptionが発生しました。

ユーザの対処

このExceptionの後に出力されている「Root cause:」のExceptionの対処を行ってください。