JSPC再び


やることもないので、以前放置したJSPCにチャレンジ。
まぁTomcatのページ*1を見てその通りに書くだけだが。


問題は、"generated_web.xml"のマージ。
これがなかなか手ごわいのだが、結局はれいれいさんところの日記*2のやりかたにした。


・・・強引だねぇw


フィルターの説明はこちら=>*3


ところで、おいらの環境ではbuild.xmlでは半角スペースが使えないのか、フィルターでマッチしない。
仕方がないのでエスケープすることにした。

<copy file="${WEB.XML}" tofile="${NEW_WEB.XML}" overwrite="true" verbose="false">
  <filterchain>
    <filterreader classname="org.apache.tools.ant.filters.ReplaceTokens">
      <param type="tokenchar" name="begintoken" value="&lt;"/>
      <param type="tokenchar" name="endtoken" value="&gt;"/>
      <param type="token" name="!--&#32;include&#32;generated_web.xml&#32;--" value="$GENERATED_WEB.XML.VALUE}"/>
    </filterreader>
  </filterchain>
</copy>


それから、JSPCをしないようにもできるようにしたので、export>workにコピー>コンパイル>JSPC>makewarという順番にした。
となると、web.xmlを自分自身で置き換えないといけないのだが、antでこれをしようとすると"Skipping self-copy"と言われる。
別名web.xmlを作って、オリジナルを消して、別名をオリジナルにリネームして・・・がちょっと面倒というか美しくないのだがまぁ仕方がない。


最後の問題(宿題)

<welcome-file-list>
  <welcome-file>/index.jsp</welcome-file>
</welcome-file-list>


これがうまくいかないようだ。
index.jspだけJSPCしないというのもありだが・・・。


環境:
Tomcat5.5.9
Ant1.6.4
Java1.5.0_04


そういえばITmediaの記事*4が本家にそっくりなのだが。
ちゃんと本家にリンクは張っておくべきだと思うな。
ちょっと気になった。