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とか遅延要因がほかにもたくさんありそうです・・・