I'm using Resin 3.1.3 (open-source version at the moment), and using
JspCompiler in my ant script to build a .war file that contains
precompiled jsps. I'm building this .war file on Windows, but deploy it
on Solaris.

This works fine, except that package and class names for the precompiled
jsps are generated all lowercase on Windows, and should be case-
sensitive for deployment on Solaris.

This can be resolved by adding a "case-insensitive" element to web.xml,
with a value of "false", but I want to keep my web.xml standards-

I've tried to configure this in a separate WEB-INF/resin-web.xml
instead, but this file is not being picked up by JspCompiler.
Apparently, the resin-web.xml include is actually configured in app-
default.xml, referenced from resin.conf, and JspCompiler obviously
doesn't access any of those files.

I've also tried to use a JspCompiler configuration file, hoping to be
able to configure case-insensitivity there, but this results in errors,
complaining that .tld files for (my own) custom tag libraries cannot be
found. Looking at the source of JspCompiler, I don't understand how
using a configuration file can ever work. When using the -conf argument,
hasConf is set to true in configureFromArgs(), resulting in the classes
directory, lib directory and web.xml never being processed. I'm probably
missing something here ;-)

Finally, after looking at com.caucho.vfs.CaseInsensitive, I've tried
setting a system property "caucho.vfs.case-insensitive" to false, hoping
that this would somehow be picked up (I'm not familiar with Resin
internals). Unfortunately, no.

So I ended up creating a hacked version of
com.caucho.vfs.CaseInsensitive, returning false from isCaseInsensitive()
rather than "File.separatorChar == '\\'". When invoking JspCompiler, I
put this class first in my classpath, and it all works fine.

Since this probably is a common scenario (building on Windows, deploying
on Unix), does anybody have a better solution?


resin-interest mailing list

Reply via email to