Was sind die Ursachen einer Geschwindigkeit Template.merge () Versagen? Wie kann man es vermeiden?

StackOverflow https://stackoverflow.com/questions/74818

  •  09-06-2019
  •  | 
  •  

Frage

Unser Team hat ein wiederkehrendes Problem mit der Geschwindigkeit Vorlagen erlebt. Beim Rendern, werfen einige eine Runtime mit der Meldung „Template.merge () failure - Können Sie Velocity Template‚/template.vm‘machen“. Wir haben nicht in der Lage, das Problem und die Dokumentation, die im Internet zu reproduzieren ist ziemlich unzureichend. Das Problem ist nicht konsistent reproduzierbar - die gleichen Vorlagen, dessen Rendering manchmal verursacht den Fehler verwaltet auch zu anderen Zeiten ohne Probleme angezeigt werden soll. Die Template-Klasse Quellcode ist auch wenig hilfreich . Vielen Dank im Voraus.


Edit: Basierend auf Nathan Bubna Antwort muss ich klarstellen, dass wir Geschwindigkeit Version 1.4 verwenden

.

Edit: Da es darauf hingewiesen wurde, dass ein Stack-Trace von Vorteil wäre, hier ist es:

2008-09-15 11: 07: 57.336 ERROR Geschwindigkeit - Template.merge () Ausfall. Das Dokument ist null, wahrscheinlich wegen Fehler bei der Analyse. 2008-09-15 11: 07: 57.336 ERROR VelocityResult - Können Sie Velocity Template '/search/[template-redacted].vm' machen java.lang.Exception: Template.merge () Ausfall. Das Dokument ist null, wahrscheinlich wegen Fehler bei der Analyse.     bei org.apache.velocity.Template.merge (Template.java:277)     bei com.opensymphony.webwork.dispatcher.VelocityResult.doExecute (VelocityResult.java:91)     bei com.opensymphony.webwork.dispatcher.WebWorkResultSupport.execute (WebWorkResultSupport.java:109)     bei com.opensymphony.xwork.DefaultActionInvocation.executeResult (DefaultActionInvocation.java:258)     bei com.opensymphony.xwork.DefaultActionInvocation.invoke (DefaultActionInvocation.java:182)     bei com.opensymphony.xwork.interceptor.AroundInterceptor.intercept (AroundInterceptor.java:35)     bei com.opensymphony.xwork.DefaultActionInvocation.invoke (DefaultActionInvocation.java:164)     bei com.opensymphony.xwork.interceptor.AroundInterceptor.intercept (AroundInterceptor.java:35)     bei com.opensymphony.xwork.DefaultActionInvocation.invoke (DefaultActionInvocation.java:164)     bei com.opensymphony.xwork.interceptor.AroundInterceptor.intercept (AroundInterceptor.java:35)     bei com.opensymphony.xwork.DefaultActionInvocation.invoke (DefaultActionInvocation.java:164)     bei com.opensymphony.xwork.interceptor.AroundInterceptor.intercept (AroundInterceptor.java:35)     bei com.opensymphony.xwork.DefaultActionInvocation.invoke (DefaultActionInvocation.java:164)     bei com.opensymphony.xwork.interceptor.AroundInterceptor.intercept (AroundInterceptor.java:35)     bei com.opensymphony.xwork.DefaultActionInvocation.invoke (DefaultActionInvocation.java:164)     bei com.opensymphony.xwork.interceptor.AroundInterceptor.intercept (AroundInterceptor.java:35)     bei com.opensymphony.xwork.DefaultActionInvocation.invoke (DefaultActionInvocation.java:164)     bei com.opensymphony.xwork.DefaultActionProxy.execute (DefaultActionProxy.java:116)     bei com.opensymphony.webwork.dispatcher.ServletDispatcher.serviceAction (ServletDispatcher.java:272)     bei com.opensymphony.webwork.dispatcher.ServletDispatcher.service (ServletDispatcher.java:237)     bei javax.servlet.http.HttpServlet.service (HttpServlet.java:802)     bei org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:252)     bei org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:173)     bei com.opensymphony.module.sitemesh.filter.PageFilter.doFilter (PageFilter.java:39)     bei org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:202)     bei org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:173)     bei org.nanocontainer.nanowar.webwork2.PicoObjectFactoryFilter.doFilter (PicoObjectFactoryFilter.java:46)     bei org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:202)bei org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:173)     bei org.nanocontainer.nanowar.ServletRequestContainerFilter.doFilter (ServletRequestContainerFilter.java:44)     bei org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:202)     bei org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:173)     bei com.bostoncapital.stuyvesant.RememberUserNameFilter.doFilter (RememberUserNameFilter.java:30)     bei org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:202)     bei org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:173)     bei org.apache.catalina.core.StandardWrapperValve.invoke (StandardWrapperValve.java:214)     bei org.apache.catalina.core.StandardContextValve.invoke (StandardContextValve.java:178)     bei org.apache.catalina.authenticator.AuthenticatorBase.invoke (AuthenticatorBase.java:482)     bei org.apache.catalina.valves.AccessLogValve.invoke (AccessLogValve.java:526)     bei org.apache.catalina.core.StandardHostValve.invoke (StandardHostValve.java:126)     bei org.apache.catalina.valves.ErrorReportValve.invoke (ErrorReportValve.java:105)     bei org.apache.catalina.core.StandardEngineValve.invoke (StandardEngineValve.java:107)     bei org.apache.catalina.connector.CoyoteAdapter.service (CoyoteAdapter.java:148)     bei org.apache.coyote.http11.Http11Processor.process (Http11Processor.java:825)     bei org.apache.coyote.http11.Http11Protocol $ Http11ConnectionHandler.processConnection (Http11Protocol.java:738)     bei org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket (PoolTcpEndpoint.java:526)     bei org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt (LeaderFollowerWorkerThread.java:80)     bei org.apache.tomcat.util.threads.ThreadPool $ ControlRunnable.run (ThreadPool.java:684)     bei java.lang.Thread.run (Unknown Source)

War es hilfreich?

Lösung

Welche Version von Geschwindigkeit verwenden Sie? Es gab einige Rennbedingungen in alten Versionen, die dies verursacht. Die meisten wurden in der Velocity 1.5 Release zerquetscht. Obwohl würde empfehlen, ich persönlich Velocity 1.6-beta1 verwenden. Es hat stark verbesserte Leistung (Speicher und Geschwindigkeit) und viele kleinere Fehler behoben, die es nicht in 1.5 gemacht hat.

Edit: Da Sie sagen, Sie 1.4 verwenden, dann, ja, ich bin sicher, dass dies die Race-Bedingung ist, dass wir fixiert. Wie wär 'Upgrade. 1.6 ist definitiv die beste Wahl, da es das Update für Ihre Fehler und verbesserte Leistung. 1.6 final sollte sehr bald sein.

Andere Tipps

ich auf dem gleichen Fehler arbeite gerade jetzt, auf unserer Website.

Es scheint eine Race-Bedingung zu sein. Ich reproduzieren kann es mehrere Prozesse Abrufen der gleichen Seite, aber nie reproduzieren es konsequent zu verwenden, wenn ich die Anfragen serialisiert

Ich bin mit anschlag 1,5; Ich habe versucht, auf 1,6-Beta1 Migration aber andere Fehler sehen.

RESOLVED : siehe Kommentare unten

Da die Kommentare in der Quelle bereits angeben, sollte dies nicht passieren, ich denke, es ist ein Fehler in der Template-Software. Einen Fehlerbericht an, wer es geschrieben hat.

Sie müssen den vollständigen Stack-Trace des Runtime und seine Ursachen erhalten.

Bitte bearbeiten Sie Ihre Antwort, dass die Informationen hinzuzufügen.

Ich habe die Autoren des Codes per E-Mail zu sehen, ob sie einen kleinen Einblick bieten können. Ich werde sicherstellen, dass alles teilen, die ich gelernt habe.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top