The number of lines in the method used to process a custom tag exceeded 1000. (J2EE application = aa....aa, context root = bb....bb, file = cc....cc, tag = dd....dd, number of lines = ee....ee)
- aa....aa:J2EEサーバモードの場合はJ2EEアプリケーション名,サーブレットエンジンモード,cjjspcコマンドまたはcjjsp2javaコマンドの場合は空文字列
bb....bb:J2EEサーバモードまたはサーブレットエンジンモードの場合はコンテキストルート名,cjjspcコマンドまたはcjjsp2javaコマンドの場合は空文字列
cc....cc:このJSPファイルまたはタグファイルのWebアプリケーション内のパス,cjjsp2javaコマンドではJSPファイルの絶対パス(ただし,JARファイルに格納されたタグファイルの場合,次の書式で出力されます。「JARファイルのWebアプリケーション内のパス(entry = <JARファイル内のパス>)」)
dd....dd:カスタムタグ名
ee....ee:生成されたタグファイルの処理用メソッドの空行やコメント行を含めた行数
- 説明
- J2EEサーバモードまたはcjjspcコマンドの場合
- JSPファイルまたはタグファイル中のカスタムタグの処理用メソッドの行数がコメントおよび空行を含めて1000行を超えました。
- サーブレットエンジンモードまたはcjjsp2javaコマンドの場合
- JSPファイル中のカスタムタグの処理用メソッドの行数がコメントおよび空行を含めて1000行を超えました。
- 対処
- Java仮想マシン仕様から,1メソッドのバイトコードは64キロバイト以内にする必要があります。64キロバイトを超える場合は,クラスファイル生成時にエラーとなるか,クラスのロード時にjava.lang.LinkageError例外が発生します。
- また,1メソッドの大きさが64キロバイト以内であっても,非常に大きい場合は,次のような弊害が発生する可能性があります。
- GC処理の実行に非常に時間がかかる。
- JITコンパイルに非常に時間がかかる。
- JITコンパイルに非常に多くのメモリを消費する。
- そのため,Javaソース上の1メソッドの大きさは,コメントや空行を除き,およそ500行以内を推奨します。
- カスタムタグから生成されるJavaコードの行数の縮小は,動的インクルード(インクルードアクション)によりカスタムタグを分割することで可能です。
All Rights Reserved. Copyright (C) 2008, 2011, Hitachi, Ltd.