Hi,

Not sure if you already tried this, but you could use a ClassPath
resource loader here. If you configure that *after* the File loader,
it will load from file if it exists, or drop back to a default template,
which you just make available in your classpath.

:)

Ross

On Wed, 2005-04-13 at 11:52 +0530, Nitesh Naveen wrote:
> Ok... found a solution...
> Need to set the file resource loader path before initializing.
> Then it fetches from the web root.
> 
>                       Properties p = new Properties();
>                       p.setProperty("file.resource.loader.path", "/");
> 
>                       Velocity.init(p);
>                       template = Velocity.getTemplate("email.vm");
> 
> Thanks for all help.
> 
> Nitesh
> 
> -----Original Message-----
> From: Nitesh Naveen [mailto:[EMAIL PROTECTED] 
> Sent: Wednesday, April 13, 2005 11:40 AM
> To: Velocity Users List
> Subject: RE: Path problem reading .vm file in WSAD
> 
> That could be a stop-gap solution... would work when I run it as a Java
> Application.
> But the final thing I need to achieve is to use the same in the
> application project.
> i.e where exactly would it be searching in runtime...
> When I run it as part of the j2ee application, it seems to go search in
> the default runtime folder for WSAD.
> 
> Nitesh
> 
> -----Original Message-----
> From: Tanveer Dhillon [mailto:[EMAIL PROTECTED] 
> Sent: Wednesday, April 13, 2005 11:32 AM
> To: Velocity Users List
> Subject: RE: Path problem reading .vm file in WSAD
> 
> To get the template email.vm, give the path starting from src folder
> say for eg
> Velocity.getTemplate("src/email.vm")
> 
> -----Original Message-----
> From: Nitesh Naveen [mailto:[EMAIL PROTECTED]
> Sent: Wednesday, April 13, 2005 11:23 AM
> To: velocity-user@jakarta.apache.org
> Subject: Path problem reading .vm file in WSAD
> 
> 
> Hi,
> 
> I'm trying to develop some common code for creating emails from a
> generic template using Velocity.
> 
> I have created a Java project in WSAD which has a src and classes folder
> for the source and compiled code respectively. I created a java
> application which would get a template "email.vm" 
> public class UtilTest
> {
> 
>       public static void main(String[] args)
>       {
>               testVelocity();
> 
> 
>               
>       }
>       
>       private static void testVelocity()
>       {
>               try
>               {
>                       Velocity.init();
>                       Template template =
> Velocity.getTemplate("email.vm");
> System.out.println("template:"+template);
>                       VelocityContext context = new VelocityContext();
>                       context.put ("title","Title....");
>                       context.put ("body","body..");
>                       context.put ("activityname","name....");
>                       context.put ("activitydescription","desc....");
>                       context.put ("startdate","xx-xx-xxxx....");
>                       context.put ("enddate","xx-xx-xxxx....");
>                       context.put ("planneditem","item....");
>                       context.put ("scheme","PE....");
>                       context.put ("link","link");
>                       StringWriter message = new StringWriter();
>                       template.merge(context, message);
>                       System.out.println(message.toString());
>               }
>               catch (ResourceNotFoundException e)
>               {
>                       e.printStackTrace();
>               }
>               catch (ParseErrorException e)
>               {
>                       e.printStackTrace();
>               }
>               catch (Exception e)
>               {
>                       e.printStackTrace();
>               }               
>       }
> }
> 
> Template email.vm was placed under src (gets copied to classes when
> compiled). I compiled and tried to run the application from WSAD, but
> this was giving me a resource not found exception
> 
> org.apache.velocity.exception.ResourceNotFoundException: Unable to find
> resource 'email.vm'
>       at
> org.apache.velocity.runtime.resource.ResourceManagerImpl.loadResource(Re
> sourceManagerImpl.java:501)
>       at
> org.apache.velocity.runtime.resource.ResourceManagerImpl.getResource(Res
> ourceManagerImpl.java:384)
>       at
> org.apache.velocity.runtime.RuntimeInstance.getTemplate(RuntimeInstance.
> java:814)
>       at
> org.apache.velocity.runtime.RuntimeInstance.getTemplate(RuntimeInstance.
> java:796)
>       at
> org.apache.velocity.runtime.RuntimeSingleton.getTemplate(RuntimeSingleto
> n.java:337)
>       at
> org.apache.velocity.app.Velocity.getTemplate(Velocity.java:512)
>       at
> com.sonata.cpgfwk.util.UtilTest.testVelocity(UtilTest.java:49)
>       at com.sonata.cpgfwk.util.UtilTest.main(UtilTest.java:38)
> 
> I tried going through the command prompt to classes folder and tried
> running the application from there. Seems to work perfectly fine... but
> doesn't work when I run it throught WSAD.
> However with WSAD if I place the the email.vm file in the project base
> folder outside src/classes, WSAD is able to pick it up.
> 
> Has anyone faced this problem? Any solutions welcome...
> 
> Thanks in advance for any help,
> 
> Nitesh
> 
> 
> 
> 
> 
> ---------------------------------------------------------------------
> 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]
> 
> 
> 
> ---------------------------------------------------------------------
> 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