Apache Struts 2 Documentation > Home > FAQs > I'm trying to run the example in the tutorial on Tomcat, and it can't instantiate the VelocityEngine
Added by Jay Bose, last edited by Ted Husted on Jul 22, 2006  (view change) show comment

Tomcat Says

javax.servlet.ServletException: Servlet.init() for servlet webwork threw exception at
org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:963)
...
root cause

java.lang.RuntimeException: Unable to instantiate VelocityEngine\!
at
com.opensymphony.webwork.views.velocity.VelocityManager.newVelocityEngine(VelocityManager.java:333)
at
com.opensymphony.webwork.views.velocity.VelocityManager.init(VelocityManager.java:146)
at
com.opensymphony.webwork.dispatcher.ServletDispatcher.init(ServletDispatcher.java:177)
at
org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:935)

Solution

(Thanks to Keith Lea!)

It turns out Velocity's Avalon logging system was trying to write to my Tomcat folder.

So that it's on file somewhere for other people, I will describe the solution:

  • I created a file "velocity.properties" and placed it in my WEB-INF/classes folder.
  • Inside the file I wrote:
runtime.log.logsystem.class=org.apache.velocity.runtime.log.NullLogSystem

This stops Velocity from logging, and the example application now works.