私たちのチームでは、ベロシティテンプレートに関する問題が繰り返し発生しています。レンダリング時に、 "Template.merge()failure - Velocity Templateをレンダリングできません"というメッセージとともにRuntimeExceptionがスローされます。 '/template.vm' "私たちは問題を再現することができず、ウェブ上のドキュメントはかなり不十分です。問題は一貫して再現可能ではありません。レンダリングによってエラーが発生する可能性のある同じテンプレートも、他の時間に問題なく表示できます。 Templateクラスsource codeもほとんど役に立ちません。前もって感謝します。ベロシティTemplate.merge()の失敗の原因は何ですか?どのようにそれを避けるのですか?
編集:Nathan Bubnaの回答に基づいて、Velocityバージョン1.4を使用していることを明確にする必要があります。
編集:それはスタックトレースが有益であることが指摘されたので、ここにある:
2008-09-15 11:07:57336 ERROR速度 - Template.merge()失敗。ドキュメントはnullです。解析エラーが原因です。 2008-09-15 11:07:57,336 ERROR VelocityResult - Velocityテンプレート '/search/[template-redacted].vm'をレンダリングできません java.lang.Exception:Template.merge()が失敗しました。ドキュメントはnullです。解析エラーが原因です。 at org.apache.velocity.Template.merge(Template.java:277) at com.opensymphony.webwork.dispatcher.VelocityResult.doExecute(VelocityResult.java:91) at com.opensymphony.webwork.dispatcher.WebWorkResultSupport。 com.opensymphonyでcom.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:182) でcom.opensymphony.xwork.DefaultActionInvocation.executeResultで(WebWorkResultSupport.java:109) (DefaultActionInvocation.java:258) を実行します。 com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.javaでcom.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:164) でxwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:35) : 35) at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:164) at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:35) at com.opensymphony.xwork.DefaultActionInvocation.invoke DefaultActionInvocation.java:164) at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:35) at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:164) at com.opensymphony。 xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:35) at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:164) at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java: 35) at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:164) at com.opensymphony.xwork.DefaultActionProxy.execute(DefaultActionProxy.java:116) at 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) com.opensymphony.module.sitemesh.filter.PageFilter.doFilterでorg.apache.catalina.core.ApplicationFilterChain.doFilterでcatalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252) (ApplicationFilterChain.java:173) ( PageFilter.java:39) at org.apache.catalina。 (ApplicationFilterChain.java:202) at org.apache。catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)org.apache.catalina.core.ApplicationFilterChain.internalDoFilterでorg.nanocontainer.nanowar.webwork2.PicoObjectFactoryFilter.doFilter(PicoObjectFactoryFilter.java:46) で (ApplicationFilterChain。 Javaの:org.apache.catalinaでorg.nanocontainer.nanowar.ServletRequestContainerFilter.doFilterでorg.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) (ServletRequestContainerFilter.java:44) で202) 。 com.bostoncapital.stuyvesant.RememberUserNameFilter.doFilterでorg.apache.catalina.core.ApplicationFilterChain.doFilterでcore.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) (ApplicationFilterChain.java:173) (RememberUserNameFilter.java :30) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.apache.catalina .core.StandardWrapperValve.invoke(StandardWrapperValve.java:214) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java :482) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:526) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126) at org.apache.catalina .valves.ErrorReportValve.invoke(ErrorReportValve.java:105) a org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148) at org.apache.coyote.http11.Http11Processor .process(Http11Processor.java:825) at org.apache.coyote.http11.Http11Protocol $ Http11ConnectionHandler.processConnection(Http11Protocol.java:738) at 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で ) java.lang.Thread.run(不明なソース)
以下のコメントを参照してください。ご協力いただきありがとうございます。 – Lyudmil