Sorry I've been wrong about the need to use the classloader.
Here's our velocity code: http://gist.github.com/240182

We used a customized template loading from the start, cause it gives more
control over caching and such.

On Sat, Nov 21, 2009 at 18:43, vincwe <vincenzo.amor...@gmail.com> wrote:

> Thanks to Artem and Toby..
> Just solved implementing
> org.apache.velocity.runtime.resource.loader.ResourceLoader interfaces.
> And for security in appengine-web-wml i've added
>
> <resource-files>
>        <include path="/**.vm" />
>    </resource-files>
>
> Ciao
> Vincenzo
>
> package com.vincenzoamoruso.velocity;
>
> import java.io.File;
> import java.io.FileInputStream;
> import java.io.FileNotFoundException;
> import java.io.InputStream;
>
> import org.apache.commons.collections.ExtendedProperties;
> import org.apache.velocity.exception.ResourceNotFoundException;
> import org.apache.velocity.runtime.resource.Resource;
> import org.apache.velocity.runtime.resource.loader.ResourceLoader;
>
> public class velocityResourceLoader extends ResourceLoader {
>        @Override
>        public long getLastModified(Resource arg0) {
>        return arg0.getLastModified();
>        }
>
>        @Override
>        public InputStream getResourceStream(String arg0)
>                        throws ResourceNotFoundException {
>                InputStream is=null;
>                try {
>                        is = new FileInputStream(arg0);
>                } catch (FileNotFoundException e) {
>                        throw new ResourceNotFoundException(arg0);
>                }
>                // TODO Auto-generated method stub
>                return is;
>        }
>
>        @Override
>        public void init(ExtendedProperties arg0) {
>                // TODO Auto-generated method stub
>
>        }
>
>        @Override
>        public boolean isSourceModified(Resource arg0) {
>                // TODO Auto-generated method stub
>                return false;
>        }
>
> }
>
>
> On 20 Nov, 12:21, ArtemGr <artem...@gmail.com> wrote:
> > Google App Engine does not provide a usual file systemaccess.
> > You should implement certain Velocity interfaces to load the files via
> > classloader.
> > I have it working.
> >
> > On 19 ноя, 22:26, vincwe <vincenzo.amor...@gmail.com> wrote:
> >
> >
> >
> > > Hi to all,
> > > i'm try to use Apache velocity template for mailing,
> > > using the following code
> >
> > > <code>
> > >         VelocityEngine ve = new VelocityEngine();
> > >         try {
> > >             ve.setProperty("resource.loader", "file");
> > >             ve.setProperty
> > >
> ("file.resource.loader.class","org.apache.velocity.runtime.resource.loader.­FileResourceLoader");
> > >
> ve.setProperty("file.resource.loader.path","/template/email/");
> > >                 ve.setProperty(
> RuntimeConstants.RUNTIME_LOG_LOGSYSTEM_CLASS,
> > >               "org.apache.velocity.runtime.log.Log4JLogChute" );
> >
> > >                  ve.setProperty("runtime.log.logsystem.log4j.logger",
> > >                  log.getName());
> > >                 // ve.setApplicationAttribute
> > > ("javax.servlet.ServletContext",this.servlet.getServletContext());
> > >                         ve.init();
> > >                 } catch (Exception e1) {
> > >                         // TODO Auto-generated catch block
> > >                     log.warning("EI:"+e1.getMessage());
> > >                 }
> >
> > >                 VelocityContext context = new VelocityContext();
> > >         Template template =  null;
> >
> > >                 try
> > >         {
> > >                 template = ve.getTemplate("mail1.vm");
> >
> > >         }
> > >        .....
> >
> > > </code>
> >
> > > But at runtime gives this exception :
> >
> > > 11-19 10:44AM 33.316 [wincheck123/4.337839622240022599].<stderr>:
> > > [error] ResourceManager.getResource() load exception
> > > W 11-19 10:44AM 33.316 [wincheck123/4.337839622240022599].<stderr>:
> > >accessdenied(java.io.FilePermission/template/email/mail1.vm read)
> > > W 11-19 10:44AM 33.316 [wincheck123/4.337839622240022599].<stderr>:
> > > java.security.AccessControlException:accessdenied
> > > (java.io.FilePermission/template/email/mail1.vm
> > > W 11-19 10:44AM 33.316 [wincheck123/4.337839622240022599].<stderr>: at
> > > java.security.AccessControlContext.checkPermission
> > > (AccessControlContext.java:355)
> > > ..
> >
> > > Are there some security configuration to set for reading files on
> > >appengine? such as security policy or others
> >
> > > Thank in advance
> > > Regards
> > > Vincenzo- Nascondi testo citato
> >
> > - Mostra testo citato -
>
> --
>
> You received this message because you are subscribed to the Google Groups
> "Google App Engine for Java" group.
> To post to this group, send email to
> google-appengine-j...@googlegroups.com.
> To unsubscribe from this group, send email to
> google-appengine-java+unsubscr...@googlegroups.com<google-appengine-java%2bunsubscr...@googlegroups.com>
> .
> For more options, visit this group at
> http://groups.google.com/group/google-appengine-java?hl=.
>
>
>

--

You received this message because you are subscribed to the Google Groups 
"Google App Engine for Java" group.
To post to this group, send email to google-appengine-j...@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine-java+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine-java?hl=.


Reply via email to