In Velocity 1.4 the velocity jar has to be in the same classloader (e.g. WEB-INF/lib) as all property files and other class based resources.
In the upcoming Velocity 1.5 it is now possibly to separate these. (Velocity looks in the ThreadContextClassLoader for properties), so if velocity.jar is in the container level, the properties can be in the webapp.
I managed to make it work. The problem was that I was using velocity-dep-1.4.jar located in apache-tomcat-5.5.17/common/lib This did for some reason not read my properties file.
On 12/6/06, Martin Tilsted <[EMAIL PROTECTED]> wrote:
Citat Nathan Bubna <[EMAIL PROTECTED]>: > On 12/6/06, Martin Tilsted <[EMAIL PROTECTED]> wrote: > > Citat Will Glass-Husain <[EMAIL PROTECTED]>: > > > > > Martin, > > > > > > If at all possible, use VelocityViewServlet from the Velocity Tools > > > project. Although it works similarly It's better supported. (we've > > > deprecated VelocityServlet in the latest release). > > > > With the latest release, I asume you mean 1.5 which is still in beta. > > > > But I don't understand how VelocityViewServlet, works similary to > > VelocityServlet. Let my try if I understand VelocityViewServlet correct. > > > > 1: I don't have a class for each template. Insted I populate a View with > > 'tool objects' that are always available for all templates to use. > > you don't need a class for each template with the VelocityServlet > either. and you don't have to use tools or the toolbox support with > the VelocityViewServlet if you don't want to. So I can just use VelocityViewServlet as an (almost) dropin for VelocityServle? > > > 2: My classes don't have to extend VelocityViewServlet > > what classes are we talking about? My current setup is that for each page, I have a class which extend VelocityServlet. It handles the request, populate the Context and then load the template for that page. And I like it that way(For my current project atleast) :} > > 4: It seems like there need to be a way to force a tool to be loaded on a > give > > page, even if not used by the template. I don't vant my authorization to > depend > > on whenever my SomePage.vm file remember to call the correct method in one > of my > > tools. A combination of push and pull would be really cool :} > > You can always sub-class the VelocityViewServlet to push data instead > of always pulling it, but most frameworks support push very well too. Oh so it is posible. Someone might want to update the documentation at http://jakarta.apache.org/velocity/tools/view/ Because that description really make it sound VelocityViewServlet is pull only. > > > Oh, but that was just me trying to understand the pull method. Not my > current > > problem. That follow below :} > > > > > > > > > > Having said that, you need to override the loadConfiguration method to > > > set Velocity properties. > > > > And once I have overridden the loadConfiguration in my MyGallery class what > am I > > suposed to do in the overloaded method? > > > > I tried to add > > > > protected java.util.Properties > loadConfiguration(javax.servlet.ServletConfig > > arg0) throws java.io.IOException, java.io.FileNotFoundException { > > java.util.Properties p=super.loadConfiguration(arg0); > > > > > p.setProperty("directive.foreach.counter.initial.value","0"); > > return p; > > } > > > > But it still start counting with 1. > > are you sure this method is being called? Yes I tried to throw an Error and it was thrown. So it is loaded. But now I have made velocity read my property file, and that is the best solution :} > this looks like it should > work for the VelocityServlet. of course, using velocity.properties > should work too (unless you are deploying your application as an > unexploded war. VelocityServlet typically fails to load properties in > such a case because it tries to load it via > servletContext.getRealPath(file) which doesn't work in all deployment > scenarios. this is another area where the VelocityViewServlet is > superior. I managed to make it work. The problem was that I was using velocity-dep-1.4.jar located in apache-tomcat-5.5.17/common/lib This did for some reason not read my properties file. So now I have copied velocity-1.4.jar directly to my webapps/twgc/WEB-INF/lib/ directory and now it's working. (twgc is the website) The really funny thing is that my velocity-1.4.jar depend on velocity-dep-1.4.jar for some files. But things are working now :} Martin --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
-- Forio Business Simulations Will Glass-Husain [EMAIL PROTECTED] www.forio.com --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]