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]