Hi,

Any VelocityViewServlet users out there want to comment on Xabier's
email?  Did Xabier set up his velocity.properties correctly?

Xabier-- you might want to send a reminder note a day or two after the
holiday weekend, try again...

WILL

On 12/29/06, Xabier Burgos <[EMAIL PROTECTED]> wrote:
First of all I'd like to say hello everyone, since I'm new to the
list. Now to the "meat".

I'm a newcommer to the velocity templating system and I'm having some
trouble. I've setup Tomcat 5.5.2 and compiled Velocity 1.5 beta 2 and
VelocityTools 1.2. I've created a servlet that extends
VelocityViewServlet:

public class index extends VelocityViewServlet
{

    public Template handleRequest(HttpServletRequest request,
HttpServletResponse response, Context context)
    throws ParseErrorException, ResourceNotFoundException
    {
        Template tpl = null;
        context.put("name","Xabi");
        try
        {
            tpl = super.getTemplate ("test.vm");

            StringWriter writer = new StringWriter();
            tpl.merge (context,writer);
        }
        catch (ResourceNotFoundException rnfd)
        {
            System.out.println ("<p>Error: No se encontró la
plantilla</p>");
            rnfd.printStackTrace (System.out);
        }
        catch (ParseErrorException perrex)
        {
            System.out.println ("<p>Error: Fallo parseando la
plantilla</p>");
            perrex.printStackTrace (System.out);
        }
        catch (Exception ex){}
     return tpl;
    }

I've also added the corresponding servlet mappings in my web.xml:

<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee";
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd";>
        <servlet-name>index</servlet-name>
        <servlet-class>index</servlet-class>
        <init-param>
            <param-name>properties</param-name>
            <param-value>/WEB-INF/velocity.properties</param-value>
        </init-param>
        </servlet>
    <servlet>
        <servlet-name>velocity</servlet-name>

<servlet-class>org.apache.velocity.tools.view.servlet.VelocityViewServlet</servlet-class>

        <init-param>
            <param-name>org.apache.velocity.toolbox</param-name>
            <param-value>/WEB-INF/toolbox.xml</param-value>
        </init-param>
        <init-param>
            <param-name>org.apache.velocity.properties</param-name>
            <param-value>/WEB-INF/velocity.properties</param-value>
        </init-param>
        <load-on-startup>10</load-on-startup>
        </servlet>
    <servlet-mapping>
        <servlet-name>index</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>velocity</servlet-name>
        <url-pattern>*.vm</url-pattern>
    </servlet-mapping>
    <session-config>
        <session-timeout>
            30
        </session-timeout>
    </session-config>
</web-app>

And also created a velocity.properties file in
/WEB-INF/velocity.properties:

resource.loader = webapp
webapp.resource.loader.class =
org.apache.velocity.tools.view.servlet.WebappLoader
webapp.resource.loader.path=/templates
webapp.resource.loader.cache = true
runtime.log=/WEB-INF/logs/velocity.log
input.encoding=UTF-8
output.encoding=UTF-8

And created a very simple template called test.vm in
/MyAppRoot/templates/test.vm:

<?xhtml version="1.0" encoding="UTF-8"?>
<html>
    <head>
        <title>Test</title>
    </head>
    <body>
        THIS IS A TEST:</br>
        Hello $name
    </body>
</html>

But whenever I go to http://localhost:8080/myapp , I only get a blank
page.
Digging into Tomcat logs, I've found this:

INFO:  Velocity  :
*******************************************************************
28-dic-2006 19:00:48 org.apache.catalina.core.ApplicationContext log
INFO:  Velocity  [debug] Starting Apache Velocity v1.5-beta2 (compiled:
2006-11-24 22:45:47)
28-dic-2006 19:00:48 org.apache.catalina.core.ApplicationContext log
INFO:  Velocity  : RuntimeInstance initializing.
28-dic-2006 19:00:48 org.apache.catalina.core.ApplicationContext log
INFO:  Velocity  [debug] Default Properties File:
org\apache\velocity\runtime\defaults\velocity.properties
28-dic-2006 19:00:48 org.apache.catalina.core.ApplicationContext log
INFO:  Velocity  [debug] Trying to use logger class
org.apache.velocity.tools.view.servlet.ServletLogger
28-dic-2006 19:00:48 org.apache.catalina.core.ApplicationContext log
INFO:  Velocity   [info] LogSystem has been deprecated. Please use a
LogChute implementation.
28-dic-2006 19:00:48 org.apache.catalina.core.ApplicationContext log
INFO:  Velocity  [debug] Default ResourceManager initializing. (class
org.apache.velocity.runtime.resource.ResourceManagerImpl)
28-dic-2006 19:00:48 org.apache.catalina.core.ApplicationContext log
INFO:  Velocity  [debug] ResourceLoader instantiated:
org.apache.velocity.tools.view.servlet.WebappLoader
28-dic-2006 19:00:48 org.apache.catalina.core.ApplicationContext log
INFO:  Velocity   [info] WebappLoader : initialization starting.
28-dic-2006 19:00:48 org.apache.catalina.core.ApplicationContext log
INFO:  Velocity   [info] WebappLoader : added template path -
'/templates/'
28-dic-2006 19:00:48 org.apache.catalina.core.ApplicationContext log
INFO:  Velocity   [info] WebappLoader : initialization complete.
28-dic-2006 19:00:48 org.apache.catalina.core.ApplicationContext log
INFO:  Velocity  [debug] ResourceCache: initialized (class
org.apache.velocity.runtime.resource.ResourceCacheImpl)
28-dic-2006 19:00:48 org.apache.catalina.core.ApplicationContext log
INFO:  Velocity  : Default ResourceManager initialization complete.
28-dic-2006 19:00:48 org.apache.catalina.core.ApplicationContext log
INFO:  Velocity  [debug] Loaded System Directive:
org.apache.velocity.runtime.directive.Literal
28-dic-2006 19:00:48 org.apache.catalina.core.ApplicationContext log
INFO:  Velocity  [debug] Loaded System Directive:
org.apache.velocity.runtime.directive.Macro
28-dic-2006 19:00:48 org.apache.catalina.core.ApplicationContext log
INFO:  Velocity  [debug] Loaded System Directive:
org.apache.velocity.runtime.directive.Parse
28-dic-2006 19:00:48 org.apache.catalina.core.ApplicationContext log
INFO:  Velocity  [debug] Loaded System Directive:
org.apache.velocity.runtime.directive.Include
28-dic-2006 19:00:48 org.apache.catalina.core.ApplicationContext log
INFO:  Velocity  [debug] Loaded System Directive:
org.apache.velocity.runtime.directive.Foreach
28-dic-2006 19:00:48 org.apache.catalina.core.ApplicationContext log
INFO:  Velocity  [debug] Created '20' parsers.
28-dic-2006 19:00:48 org.apache.catalina.core.ApplicationContext log
INFO:  Velocity  : Velocimacro : initialization starting.
28-dic-2006 19:00:48 org.apache.catalina.core.ApplicationContext log
INFO:  Velocity  [debug] Velocimacro : "velocimacro.library" is not
set.  Trying default library: VM_global_library.vm
28-dic-2006 19:00:48 org.apache.catalina.core.ApplicationContext log
INFO:  Velocity  [debug] Velocimacro : Default library not found.
28-dic-2006 19:00:48 org.apache.catalina.core.ApplicationContext log
INFO:  Velocity  [debug] Velocimacro : allowInline = true : VMs can be
defined inline in templates
28-dic-2006 19:00:48 org.apache.catalina.core.ApplicationContext log
INFO:  Velocity  [debug] Velocimacro : allowInlineToOverride = false :
VMs defined inline may NOT replace previous VM definitions
28-dic-2006 19:00:48 org.apache.catalina.core.ApplicationContext log
INFO:  Velocity  [debug] Velocimacro : allowInlineLocal = false : VMs
defined inline will be global in scope if allowed.
28-dic-2006 19:00:48 org.apache.catalina.core.ApplicationContext log
INFO:  Velocity  [debug] Velocimacro : autoload off : VM system will
not automatically reload global library macros
28-dic-2006 19:00:48 org.apache.catalina.core.ApplicationContext log
INFO:  Velocity  : Velocimacro : Velocimacro : initialization complete.
28-dic-2006 19:00:48 org.apache.catalina.core.ApplicationContext log
INFO:  Velocity  : RuntimeInstance successfully initialized.
28-dic-2006 19:00:48 org.apache.catalina.core.ApplicationContext log
INFO:  Velocity   [info] VelocityViewServlet: Default content-type is:
text/html; charset=UTF-8
28-dic-2006 19:00:52 org.apache.catalina.core.ApplicationContext log
INFO:  Velocity  [error] ResourceManager : unable to find resource
'test.vm' in any resource loader.
28-dic-2006 19:00:52 org.apache.catalina.core.ApplicationContext log
INFO:  Velocity   [warn] VelocityViewServlet: couldn't find template to
match request.
28-dic-2006 19:00:53 org.apache.catalina.core.ApplicationContext log
INFO:  Velocity  [error] ResourceManager : unable to find resource
'test.vm' in any resource loader.
28-dic-2006 19:00:53 org.apache.catalina.core.ApplicationContext log
INFO:  Velocity   [warn] VelocityViewServlet: couldn't find template to
match request.
28-dic-2006 19:00:53 org.apache.catalina.core.ApplicationContext log
INFO:  Velocity  [error] ResourceManager : unable to find resource
'test.vm' in any resource loader.
28-dic-2006 19:00:53 org.apache.catalina.core.ApplicationContext log
INFO:  Velocity   [warn] VelocityViewServlet: couldn't find template to
match request.
28-dic-2006 19:00:53 org.apache.catalina.core.ApplicationContext log
INFO:  Velocity  [error] ResourceManager : unable to find resource
'test.vm' in any resource loader.
28-dic-2006 19:00:53 org.apache.catalina.core.ApplicationContext log
INFO:  Velocity   [warn] VelocityViewServlet: couldn't find template to
match request.

Witch for me indicates that the templates path I setup in
resource.loader is readed correctly but for some reason I don't know
whenever I return the template, it's searched in the AppRoot folder.

Does anybody have an idea on how to fix this?
P.S: Sorry about the long mail, but I thought giving more information
would be better.

--
Xabier Burgos - http://www.coder-times.org

"Libros, caminos y días, dan al hombre sabiduría".
Viejo proberbio árabe.



--
Forio Business Simulations

Will Glass-Husain
[EMAIL PROTECTED]
www.forio.com

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

Reply via email to