weblogicでJSPのprecompileエラー
weblogicでプリコンパイルを使うようにしただけでエラーが起きたので、その背景とか、対策とか。
背景
Javaのプロファイル的なツールの調査をしているのだが、初回アクセスのみ遅いのが引っかかってしまう。ある意味ノイズ的なものなので、あまり初回遅延が起こらないようにしたい。初回遅延の要因はいくつかあるとおもうが、そのうちの一つであろう「JSPのコンパイル」を回避する為、JSPプリコンパイルを調べることにする。
Appサーバごとのプリコンパイルの仕方
Jboss ⇒ Antでコンパイルしろ (詳細)
weblogic ⇒ コマンドラインでコンパイルしろ OR weblogic.xmlで指定しろ (詳細)
websphere ⇒ ディプロイ時にGUI上でオプションを指定。
で、weblogic.xmlでプリコンパイル指定してエラー・・・
悲しいことに下記のようなエラー。
orz.........
<2009/01/16 16時46分16秒 JST>
で、「common.jsp」が何かって言うと、web.xmlの「include-prelude」で指定しているヘッダー的なファイル。
「include-prelude」でしているファイルの拡張子が「jsp」
かつ、
「weblogic.xmlでプリコンパイル指定」
でアウトということらしい。回避方法は、このファイルのみ拡張子を他のものに変えろっていう感じ。
web.xmlの書き換えと、ファイル名を「common.jsp」⇒「common.jsf」に変更。
web.xml <jsp-config> <jsp-property-group> <url-pattern>*.jsp</url-pattern> <el-ignored>false</el-ignored> <page-encoding>UTF-8</page-encoding> <scripting-invalid>false</scripting-invalid> <!-- 修正前 <include-prelude>/WEB-INF/jsp/common.jsp</include-prelude> --> <include-prelude>/WEB-INF/jsp/common.jsf</include-prelude> </jsp-property-group> </jsp-config>
情報元 ⇒ 自分は,JSPが好きかキライかっていうと
で、早くなったの?
ちょびっとは速くなったが、
プリコンパイルなしの初回アクセス > プリコンパイルありの初回アクセス > 二回目以降のアクセス
で各々歴然とした差があるといった感じ。コネクションのOpenとか、JITとか遅延要因がほかにもたくさんありそうです・・・