What version of VelocityTools are you using? On 1/12/07, Ryan Clifton <[EMAIL PROTECTED]> wrote:
Ok, after spending a couple more hours playing around with this, here's what I've found:I can use the FileResourceLoader or the WebappLoader and they both appear to work fine. I can get either web-app running with either loader just fine. I can even configure the web-apps with different loaders and they work fine as long as the other isn't loaded. When i turn on both web-apps, the second loader is totally ignored. Even if they are different (webapploader vs fileloader). The only thing in the logs to indicate Velocity recognizes something fishy is going on is: 007-01-12 17:32:28,484 - Introspector : detected classloader change. Dumping cache. The log file clearly shows the FileResourceLoader starting up, but there is no log of the WebappLoader starting (setup on the other servlet). I really thought I had this thing licked when i used a different loader for each web-app, but no dice. :( foo1 config: runtime.log.logsystem.class = org.apache.velocity.runtime.log.SimpleLog4JLogSystem resource.loader = file file.resource.loader.class = org.apache.velocity.runtime.resource.loader.FileResourceLoader file.resource.loader.path = C:\\sites\\foo2\\web file.resource.loader.cache = true file.resource.loader.modificationCheckInterval = 2 runtime.log.invalid.reference = true runtime.log.error.stacktrace = true runtime.log.warn.stacktrace = true runtime.log.info.stacktrace = true foo2 config: runtime.log.logsystem.class = org.apache.velocity.runtime.log.SimpleLog4JLogSystem resource.loader = webapp webapp.resource.loader.class = org.apache.velocity.tools.view.servlet.WebappLoader webapp.resource.loader.path = web/templates/, web/, / webapp.resource.loader.cache = true webapp.resource.loader.modificationCheckInterval = 2 runtime.log.invalid.reference = true runtime.log.error.stacktrace = true runtime.log.warn.stacktrace = true runtime.log.info.stacktrace = true Here's the log that I get: 2007-01-12 17:53:20,718 - ************************************************************** 2007-01-12 17:53:20,718 - Starting Jakarta Velocity v1.4 2007-01-12 17:53:20,718 - RuntimeInstance initializing. 2007-01-12 17:53:20,718 - Default Properties File: org\apache\velocity\runtime\defaults\velocity.properties 2007-01-12 17:53:20,718 - Trying to use logger class org.apache.velocity.runtime.log.SimpleLog4JLogSystem 2007-01-12 17:53:20,718 - Using logger class org.apache.velocity.runtime.log.SimpleLog4JLogSystem 2007-01-12 17:53:20,718 - Default ResourceManager initializing. (class org.apache.velocity.runtime.resource.ResourceManagerImpl) 2007-01-12 17:53:20,718 - Resource Loader Instantiated: org.apache.velocity.runtime.resource.loader.FileResourceLoader 2007-01-12 17:53:20,718 - FileResourceLoader : initialization starting. 2007-01-12 17:53:20,718 - FileResourceLoader : adding path 'C:\\sites\\foo1\\web' 2007-01-12 17:53:20,718 - FileResourceLoader : initialization complete. 2007-01-12 17:53:20,718 - ResourceCache : initialized. (class org.apache.velocity.runtime.resource.ResourceCacheImpl) 2007-01-12 17:53:20,718 - Default ResourceManager initialization complete. 2007-01-12 17:53:20,718 - Loaded System Directive: org.apache.velocity.runtime.directive.Literal 2007-01-12 17:53:20,734 - Loaded System Directive: org.apache.velocity.runtime.directive.Macro 2007-01-12 17:53:20,734 - Loaded System Directive: org.apache.velocity.runtime.directive.Parse 2007-01-12 17:53:20,734 - Loaded System Directive: org.apache.velocity.runtime.directive.Include 2007-01-12 17:53:20,734 - Loaded System Directive: org.apache.velocity.runtime.directive.Foreach 2007-01-12 17:53:20,937 - Created: 20 parsers. 2007-01-12 17:31:45,921 - Velocimacro : initialization starting. 2007-01-12 17:31:59,187 - VelocityViewServlet: Default content-type is: text/html 2007-01-12 17:32:11,062 - ResourceManager : found /templates/index.vm with loader org.apache.velocity.runtime.resource.loader.FileResourceLoader 2007-01-12 17:32:11,062 - ResourceManager : found templates/includes/head.vm with loader org.apache.velocity.runtime.resource.loader.FileResourceLoader 2007-01-12 17:32:11,062 - ResourceManager : found templates/includes/header.vm with loader org.apache.velocity.runtime.resource.loader.FileResourceLoader 2007-01-12 17:32:11,062 - ResourceManager : found templates/includes/footer.vm with loader org.apache.velocity.runtime.resource.loader.FileResourceLoader 2007-01-12 17:32:11,078 - ResourceManager : found templates/includes/left_nav.vm with loader org.apache.velocity.runtime.resource.loader.FileResourceLoader 2007-01-12 17:32:28,484 - Introspector : detected classloader change. Dumping cache. ==> here is where i hit reload on the other webapp, but the config doesn't run again. Nathan Bubna wrote: > Ok, here's a few questions: > > Is there any particular reason that you are using the > FileResourceLoader? Have you tried getting this to work with the > WebappLoader that the VVS uses by default? > > Can you show us some log output for both apps? > > On 1/12/07, Ryan Clifton <[EMAIL PROTECTED]> wrote: >> >> Well, I had thought this would be an easy problem to fix, but it >> turns out >> that I am using the VelocityViewServlet. I also followed the >> directions for >> configuring the resource loader within each web-app through >> velocity.properties. The file definitely works for the first app >> loaded (I >> can make the path invalid and the whole thing breaks), but the second >> app in >> my servlet container config does not load it's path correctly. So both >> sites run off the same set of templates from the foo1 site. >> >> Again, if i remove foo1 from the container, foo2 works perfectly. >> >> Any ideas? >> Thanks everyone. >> >> (velocity.properties : foo1) >> resource.loader = file >> file.resource.loader.class = >> org.apache.velocity.runtime.resource.loader.FileResourceLoader >> file.resource.loader.path = C:\\sites\\foo1\\web >> file.resource.loader.cache = true >> file.resource.loader.modificationCheckInterval = 2 >> >> (velocity.properties : foo2) >> resource.loader = file >> file.resource.loader.class = >> org.apache.velocity.runtime.resource.loader.FileResourceLoader >> file.resource.loader.path = C:\\sites\\foo2\\web >> file.resource.loader.cache = true >> file.resource.loader.modificationCheckInterval = 2 >> >> Both web.xml files are essentially the same. >> >> (from web.xml) >> <servlet> >> <servlet-name>action</servlet-name> >> >> <servlet-class>org.apache.struts.action.ActionServlet</servlet-class> >> >> <init-param> >> <param-name>application</param-name> >> <param-value>resources.application</param-value> >> </init-param> >> >> <init-param> >> <param-name>config</param-name> >> <param-value>/WEB-INF/struts-config.xml</param-value> >> </init-param> >> >> <init-param> >> <param-name>debug</param-name> >> <param-value>2</param-value> >> </init-param> >> >> <init-param> >> <param-name>detail</param-name> >> <param-value>2</param-value> >> </init-param> >> >> <init-param> >> <param-name>validate</param-name> >> <param-value>true</param-value> >> </init-param> >> >> <load-on-startup>1</load-on-startup> >> </servlet> >> >> <!-- Define Velocity template compiler --> >> <servlet> >> <servlet-name>velocity</servlet-name> >> >> <servlet-class>org.apache.velocity.tools.view.servlet.VelocityViewServlet</servlet-class> >> >> >> <init-param> >> <param-name>org.apache.velocity.toolbox</param-name> >> <param-value>/WEB-INF/toolbox.xml</param-value> >> </init-param> >> >> <init-param> >> <param-name>org.apache.velocity.properties</param-name> >> >> <param-value>/WEB-INF/classes/resources/velocity.properties</param-value> >> >> </init-param> >> >> <load-on-startup>10</load-on-startup> >> </servlet> >> >> >> Claude Brisson wrote: >> Hi. >> >> What kind of servlet are you using? >> >> If you use servlets of your own, just be sure to use different >> VelocityEngine objects, they should be totally independant. >> >> If you use the VelocityServlet class, then drop it and use the >> VelocityViewServlet of the Tools subproject. >> >> If you already use the VelocityViewServlet, then this is quite weird... >> >> >> Claude >> >> Le vendredi 12 janvier 2007 à 12:35 -0800, Ryan Clifton a écrit : >> >> >> Hello, >> >> I am trying to run multiple web-apps under a single JVM that are >> concurrently running their own velocity engines. When I start >> everything up, the web-apps appear to use the template directory from >> the first web-app that is loaded into the JVM. >> >> IE. if i have www.foo1.com and www.foo2.com and foo1 is loaded first, >> foo2 will only get templates from foo1. >> >> So it seems that Velocity statically loads the templates folder across >> the whole JVM. Is there any way around this other than running multple >> JVMs on different ports? >> >> thanks. >> >> Ryan >> >> --------------------------------------------------------------------- >> 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] > > -- Ryan Clifton CTO, CoutureCandy.com 805-377-4585 --------------------------------------------------------------------- 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]
