Наша команда постоянно сталкивается с проблемой шаблонов скорости. При рендеринге некоторые выдают RuntimeException с сообщением «Ошибка Template.merge () - Невозможно отобразить шаблон скорости,« /template.vm »». Мы не смогли воспроизвести проблему, и документации в Интернете недостаточно. Проблема не всегда воспроизводима - те же шаблоны, рендеринг которых иногда приводит к ошибке, также могут отображаться без проблем в другое время. Класс Template исходный код также мало чем поможет. Заранее спасибо.
Редактировать: Основываясь на ответе Натана Бубны, мне нужно уточнить, что мы используем Velocity версии 1.4.
Редактировать: поскольку было указано, что трассировка стека будет полезна, вот она:
2008-09-15 11: 07: 57,336 ОШИБКА скорость - Ошибка Template.merge (). Документ является нулевым, скорее всего из-за ошибки синтаксического анализа.
2008-09-15 11: 07: 57,336 ОШИБКА VelocityResult - Невозможно отобразить шаблон скорости, '/search/[template-redacted].vm'
Исключение: ошибка Template.merge (). Документ является нулевым, скорее всего из-за ошибки синтаксического анализа.
в org.apache.velocity.Template.merge (Template.java:277)
в com.opensymphony.webwork.dispatcher.VelocityResult.doExecute (VelocityResult.java:91)
в com.opensymphony.webwork.dispatcher.WebWorkResultSupport.execute (WebWorkResultSupport.java:109)
в com.opensymphony.xwork.DefaultActionInvocation.executeResult (DefaultActionInvocation.java:258)
в com.opensymphony.xwork.DefaultActionInvocation.invoke (DefaultActionInvocation.java:182)
в com.opensymphony.xwork.interceptor.AroundInterceptor.intercept (AroundInterceptor.java:35)
в com.opensymphony.xwork.DefaultActionInvocation.invoke (DefaultActionInvocation.java:164)
в com.opensymphony.xwork.interceptor.AroundInterceptor.intercept (AroundInterceptor.java:35)
в com.opensymphony.xwork.DefaultActionInvocation.invoke (DefaultActionInvocation.java:164)
в com.opensymphony.xwork.interceptor.AroundInterceptor.intercept (AroundInterceptor.java:35)
в com.opensymphony.xwork.DefaultActionInvocation.invoke (DefaultActionInvocation.java:164)
в com.opensymphony.xwork.interceptor.AroundInterceptor.intercept (AroundInterceptor.java:35)
в com.opensymphony.xwork.DefaultActionInvocation.invoke (DefaultActionInvocation.java:164)
в com.opensymphony.xwork.interceptor.AroundInterceptor.intercept (AroundInterceptor.java:35)
в com.opensymphony.xwork.DefaultActionInvocation.invoke (DefaultActionInvocation.java:164)
в com.opensymphony.xwork.interceptor.AroundInterceptor.intercept (AroundInterceptor.java:35)
в com.opensymphony.xwork.DefaultActionInvocation.invoke (DefaultActionInvocation.java:164)
в com.opensymphony.xwork.DefaultActionProxy.execute (DefaultActionProxy.java:116)
на com.opensymphony.webwork.dispatcher.ServletDispatcher.serviceAction (ServletDispatcher.java:272)
на com.opensymphony.webwork.dispatcher.ServletDispatcher.service (ServletDispatcher.java:237)
на javax.servlet.http.HttpServlet.service (HttpServlet.java:802)
в org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:252)
в org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:173)
в com.opensymphony.module.sitemesh.filter.PageFilter.doFilter (PageFilter.java:39)
в org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:202)
в org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:173)
в org.nanocontainer.nanowar.webwork2.PicoObjectFactoryFilter.doFilter (PicoObjectFactoryFilter.java:46)
в org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:202)
в org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:173)в org.nanocontainer.nanowar.ServletRequestContainerFilter.doFilter (ServletRequestContainerFilter.java:44)
в org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:202)
в org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:173)
в com.bostoncapital.stuyvesant.RememberUserNameFilter.doFilter (RememberUserNameFilter.java:30)
в org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:202)
в org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:173)
в org.apache.catalina.core.StandardWrapperValve.invoke (StandardWrapperValve.java:214)
в org.apache.catalina.core.StandardContextValve.invoke (StandardContextValve.java:178)
в org.apache.catalina.authenticator.AuthenticatorBase.invoke (AuthenticatorBase.java:482)
в org.apache.catalina.valves.AccessLogValve.invoke (AccessLogValve.java:526)
в org.apache.catalina.core.StandardHostValve.invoke (StandardHostValve.java:126)
в org.apache.catalina.valves.ErrorReportValve.invoke (ErrorReportValve.java:105)
в org.apache.catalina.core.StandardEngineValve.invoke (StandardEngineValve.java:107)
в org.apache.catalina.connector.CoyoteAdapter.service (CoyoteAdapter.java:148)
в org.apache.coyote.http11.Http11Processor.process (Http11Processor.java:825)
в org.apache.coyote.http11.Http11Protocol $ Http11ConnectionHandler.processConnection (Http11Protocol.java:738)
в org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket (PoolTcpEndpoint.java:526)
в org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt (LeaderFollowerWorkerThread.java:80)
в org.apache.tomcat.util.threads.ThreadPool $ ControlRunnable.run (ThreadPool.java:684)
at java.lang.Thread.run (неизвестный источник)