I haven't used VelocityServlet in a while, but as I recall you
needed to override the loadConfiguration method to properly configure
Velocity.  By default, Velocity thinks the template from a file
resource loader will be relative to the directory of the program that
is calling Velocity.  If you have Tomcat calling Velocity, then it
runs from $TOMCAT_HOME/bin.  You'll need to change that in
loadConfiguration, declaring the file resource loader path
specifically instead of accepting the default.  I think there is an
example program that does this provided with Velocity.  It's NOT
intuitively obvious.

But, for the long term, since VelocityServlet will be deprecated soon,
you should really be looking at the Velocity Tools project, which is
specifically designed for web applications.  It may look to be a
project that is "unofficially" attached to Velocity development, but
in fact it is a project that is widely recognized, used, and supported
by the Velocity community for web development.  The Velocity home page
recognizes it as a subproject of Velocity.

Welcome to Velocity.  Despite your initial frustration (been there,
done that), you are going to LOVE using it once you get the first
servlet running.

Barbara Baughman
X2157

On Mon, 21 Feb 2005, Michael Salmon wrote:

> hi folks
>
> my templates don't load from where I want. In particular here is what
> I'm doing:
>
> 1. servlet extends VelocityServlet. and calls Velocity.init(). I dont
> override loadConfiguration()
>
> 2. In my webapp, web.xml I define the specific properties file:
>     <param-name>org.apache.velocity.properties</param-name>
>     <param-value>/WEB-INF/velocity.properties</param-value>
>
>     I'm pretty sure the right velocity.properties file is being loaded,
>     because when I change the name it spits an error in the log.
>
> 4. In the properties file I define:
>
>     file.resource.loader.path = /WEB-INF/templates/
>
> 5. In my servlet I do:
>     getTemplate("Test.vm");
>
>     /www/element/WEB-INF/templates/Test.vm - this file exists
>
> 6. catalina.log - org.apache.velocity.exception.ResourceNotFoundException: 
> Unable to find resource 'Test.vm'
>
> I found that from where I launch tomcat is where velocity
> wants to load templates from. It seems clear to me my loader.path is not
> being setup correctly. For now until I have a better solution I'll just
> have to launch tomcat from my webapp root and put my templates there.. Still
> I'd love to have a proper solution.
>
> Thanks,
> Michael
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to