On 10/11/05, Andrew Mason <[EMAIL PROTECTED]> wrote:
> Is this done in  handleRequest() ?

no, no, no.  this should be handled only once during servlet init via
the overridden loadConfiguration method that Jason suggested.  and
though i didn't include it in my example, the first part of his
suggestion should still be included:

       //Configuration file to be read is specified as
       //the init param 'org.apache.velocity.properties'
       Properties p = super.loadConfiguration(config);
> >
> >         Velocity.setApplicationAttribute("javax.servlet.ServletContext",
> > config.getServletContext());
> >
> >         // by default, load resources with webapp resource loader
> >         p.setProperty(RuntimeConstants.RESOURCE_LOADER, "webapp");
> >         p.setProperty("webapp.resource.loader.class",
> > WebappLoader.class.getName());
> >
> >
> > this will make the webapp root the default search path, but you can
> > specify others (relative to the webapp root) using as many
> > "webapp.resource.loader.path" properties as you like.
> >
> > > The only other thing you'll need is that you tell the servlet in your
> > > web.xml where to find the default properties bundle:
> > >
> > >   <servlet>
> > >     <servlet-name>getter</servlet-name>
> > >     <servlet-class>org.foo.bar.MyCustomVelocityServlet</servlet-class>
> > >     <init-param>
> > >         <param-name>org.apache.velocity.properties</param-name>
> > >         <param-value>/WEB-INF/velocity.properties</param-value>
> > >     </init-param>
> > >     <load-on-startup>2</load-on-startup>
> > >   </servlet>
> > >
> Do i have to do this on a  / servlet basis ? or can i just use a context param
> since its the same for all my servlets ?

both VelocityServlet and VelocityViewServlet will first search the
servlet config's init-params, then search the servlet context's
init-params.  so the answers to your questions are no and yes,
respectively.


> > > And the only thing I need in my velocity.properties is:
> > >
> > > runtime.log.logsystem.class=org.foo.bar.VelocityLogger
> > >
> > > Since I have a custom logger.  The rest of the file loader stuff except
> > > for the modfication interval you should just remove since I think those
> > > are the defaults anyway, except for the path, which we're setting with
> > > our loadConfiguration method.
> > >
> > > You might look at the implementation for the super loadConfiguration
> > > method-- but it may require that velocity.properties actually end with a
> > > ".properties" extension.  I doubt it, but if you do all this and it
> > > still seems your file is being ignored, try that.
> > >
> > > --jason
> > >
> > > Andrew Mason wrote:
> > > >Ok, I know VelocityServlet is depricated in favour of the
> > > > VelocityViewServlet but i started my web-app before VelocityServlet
> > > > became deprecated so to keep consistency (for now) i'm using it.
> > > >
> > > >Anyway my problem is that my servlet can't seem to find my template.
> > > > I've tried putting it in / , /obb, /obb/WEB-INF but it doesn't seem
> > > > like it wants to pick it up at all. Also i'm not sure that its picking
> > > > up the velocity.properties.fileloader file.
> > > >
> > > >I got around this problem in the other servlets by overwriting the
> > > >loadConfig() and making a new instance of Property. This was fine until
> > > > i actually wanted to specify some of my own and it would be handy to
> > > > have them all in one place.
> > > >
> > > >thanks in advance
> > > >
> > > >public class EditPage extends VelocityServlet{
> > > >
> > > >
> > > >       public Template handleRequest(HttpServletRequest request,
> > > >               HttpServletResponse response,Context context) {
> > > >
> > > >               // stuff in here
> > > >               //Merge the Template now
> > > >                       try{
> > > >                               String templateName="edit.vm";
> > > >                               template = getTemplate(templateName);
> > > >                       }
> > > >                       catch(ResourceNotFoundException rnfe){
> > > >                               System.out.println(templateName);
> > > >                               rnfe.printStackTrace();
> > > >                       }
> > > >                       catch(Exception e){
> > > >                               e.printStackTrace();
> > > >                       }
> > > >               return template;
> > > >
> > > >       }
> > > >}
> > > >
> > > >and my directory structure works like this (slightly different to normal
> > > > as it allows me to use mod_jk to map www.domain.com to / )
> > > >
> > > >       -/myapp/
> > > >                       /obb/
> > > >                               WEB-INF/
> > > >                                               classes/
> > > >                                               lib/
> > > >                                               -
> > > > velocity.properties.fileloader - web.xml
> > > >       - obb.war
> > > >       - edit.vm
> > > >       - index.vm
> > > >
> > > >
> > > >velocity.properties.fileloader
> > > >----------------
> > > >
> > > >resource.loader = file
> > > >file.resource.loader.description = Velocity File Resource Loader
> > > >file.resource.loader.class =
> > > >org.apache.velocity.runtime.resource.loader.FileResourceLoader
> > > >file.resource.loader.path = .
> > > >file.resource.loader.cache = false
> > > >file.resource.loader.modificationCheckInterval = 0
> > > >
> > > >---------------------------------------------------------------------
> > > >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]
>
>

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

Reply via email to