velocity-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Claude Brisson <cla...@renegat.net>
Subject Re: Mixing Jar and ClassResourceLoader
Date Sun, 09 Mar 2008 14:30:20 GMT
Le dimanche 09 mars 2008 à 20:28 +0700, Frans Thamura a écrit :
> java.lang.ClassNotFoundException:
> org.apache.velocity.runtime.resource.loader.JarResourceLoader

That is really strange - this class is here since a very long time.
Check it is really here in the velocity jar file you are using.

> any idea to make the path /var/www/mysite follow where is my .war ?
>
> this is mine, but i feel stupid with this...
> 
> if we put in /classes we dont need the path, and how can we must put the
> full path when try using .jar

The jar resource loader is meant to reference a jar file that is not in
the classpath - it doesn't now what a webapp is, and that's why it
expects full pathnames. You'd need something like a
WebappJarResourceLoader...  or you can dynamically change the loader url
at startup in some servlet initialization function with something like
this:

    // suppose that 'velocity' is an initialized RuntimeInstance 
    JarResourceLoader jrl = (JarResourceLoader)velocity.get("jar.resource.loader.instance");
    if(jrl == null) velocity.getLog().error("******* Cannot find JarResourceLoader instance");
    else {
        // put the real path in the config
        String oldpath = velocity.getProperty("jar.resource.loader.path");
	String newpath = "jar:file:" + servletcontext.getRealPath("/") + oldpath.substring(8);
        ExtendedProperties props = new ExtendedProperties();
        props.put("path",newpath);
	// reinit the jar resource loader
	jrl.init(props);
    }

Not tested at all!

But before spending energy doing that, why can't you use the classpath
resource loader to fetch templates from cimande-1.3.jar? Since it is
located in /WEB-INF/lib, it appears that this jar IS in your classpath.


  Claude



---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@velocity.apache.org
For additional commands, e-mail: user-help@velocity.apache.org


Mime
View raw message