¿Qué causa una falla en la velocidad Template.merge()?¿Cómo se puede evitar?

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

  •  09-06-2019
  •  | 
  •  

Pregunta

Nuestro equipo ha estado experimentando un problema recurrente con las plantillas de velocidad.Al renderizar, algunos lanzan una RuntimeException con el mensaje "Error de Template.merge() - No se puede renderizar Velocity Template, '/template.vm'".No hemos podido reproducir el problema y la documentación en la web es bastante insuficiente.El problema no se puede reproducir de forma consistente: las mismas plantillas cuya representación a veces causa el error también logran mostrarse sin problemas en otras ocasiones.La clase de plantilla código fuente También es de poca ayuda.Gracias de antemano.


Editar:Según la respuesta de Nathan Bubna, debo aclarar que estamos usando Velocity versión 1.4.


Editar:Como se señaló que un seguimiento de la pila sería beneficioso, aquí está:

2008-09-15 11:07:57,336 ERROR de velocidad: error en Template.merge().El documento es nulo, probablemente debido a un error de análisis.2008-09-15 11: 07: 57,336 Error VelocityResult-Incapaz de hacer plantilla de velocidad, '/search/•template-redactedfont>.vm' java.lang.exception:Error de plantilla.merge().El documento es nulo, probablemente debido a un error de análisis.en org.apache.velocity.template.merge (Template.java:277) en com.opensymphony.webwork.dispatcher.velocityResult.doExecute (VelocityResult.Java:91) en com.opensymphony.webwork.dispatcher.webworkResUppportsUppportute (weBWorkRes .Java: 109) en com.opensymphony.xwork.defaultActionInVocation.executeresult (defaultActionInVocation.Java:258) en com.opensymphony.xwork.defaultInVocation.invoke (defaultActionInVocation.Java:182) en com.opensymphony.xwork.ArtEnterceptor.ARound Interceptore. Intercept (alrededor delinterceptor.java:35) en com.opensymphony.xwork.defaultActionInVocation.Invoke (defaultActionInVocation.Java:164) en com.opensymphony.xwork.interceptor.aroundinterceptor.intercept (alrededor de Interceptor.Java:35) en com.opensymphony.xwork .DefaultActionInVocation.Invoke (defaultActionInVocation.java:164) en com.opensymphony.xwork.interceptor.aroundinterceptor.Intercept (alrededor delinterceptor.java:35) en com.opensymphony.xwork.defaultinVocation.invoke (DefaultActionInvocation.Java:164) en com. OpenSymphony.xwork.interceptor.aroundinterceptor.intercept (alrededor delinterceptor.java:35) en com.opensymphony.xwork.defaultInVocation.invoke (defaultActionInVocation.java:164) en com.openshony.xwork.interceptor.aroundinterceptore.interceptor (alrededor 35) en com.opensymphony.xwork.defaultActionInVocation.invoke (defaultActionInVocation.java:164) en com.opensymphony.xwork.interceptore.aroundinterceptoror.intercept (alrededor de ININTERCEPTOR.Java:35) en com.opensymphony.xwork.defaultActionInvocation .Java: 164) en com.opensymphony.xwork.defaultActionProxy.Execute (DefaultActionProxy.Java:116) en com.opensymphony.webwork.dispatcher.servletdispatcher.serviceaction (servletdispatcher.Java:272) at com.opensymphony.webwork.disher.disher. Servletdispatcher.service (servletdispatcher.java:237) en javax.servlet.http.httpservlet.service (httpservlet.java:802) en org.apache.catalina.core.applicationFilterchain.internalDofilter (applicationfilterchain.Jave:252 .catalina.core.applicationFilterchain.dofilter (applicationFilterchain.Java:173) en com.opensymphony.module.sitemesh.filter.pageFilter.dofilter (pageFilter.Java:39) en Org.apache.catalina.core.apePlationfilterChain.interlain.interlain.internain. .Java: 202) en org.apache.catalina.core.applicationFilterchain.dofilter (ApplicationFilterchain.Java:173) en org.nanocontainer.nanowar.webwork2.picoObjectoryFilter.dofilter (PicoObjypyfactoryFilterfilter.Java:46) ataTaS Core.ApplationFilterchain.internaldofilter (ApplicationFilterchain.Java:202) en org.apache.catalina.core.applicationfilterchain.dofilter (ApplicationFilterchain.Java:173) en Org.nanocontainer.nanowar.servletContainerfilterfilter. AVA: 44) en org .apache.catalina.core.applicationFilterchain.internaldofilter (ApplicationFilterchain.Java:202) en org.apache.catalina.core.applicationFilterchain.dofilter (ApplicationFilterChain.Java:173) en com.BoStoncapital.Sstuyvesant.RememberusEnMember. Java : 30) en org.apache.catalina.core.applicationfilterchain.internaldofilter (ApplicationFilterchain.Java:202) en org.apache.catalina.core.applationfilterchain.dofilter (ApplicationFilterchain.Java:173) en Org.apache.catalina.core. StandardWrapPervalve.invoke (StandardWrapPerValve.Java:214) en org.apache.catalina.core.standardcontextvalve.invoke (StandardContextValve.Java:178) en org.apache.catalina.authenticator.authenticatorbase.invoke (autenticatorbase.Jav.Jav.Jav.Jav.Jav.Jav.Jav.Jav.Jav.Jav.Jav.JavgAn .apache.catalina.valves.accesslogvalve.invoke (accesslogValve.java:526) en org.apache.catalina.core.standardhostvalve.invoke (StandardHostValve.Java:126) en Org.apache.catalina.valves.errorrorRorrorronvalve .Java: 105) en org.apache.catalina.core.standardenginevalve.invoke (StandardEngineValve.java:107) en org.apache.catalina.connector.coyoteadapter.service (coyoteadapter.java:148) en orgache.coyote. http11.http11processor.process (http11processor.java:825) en org.apache.coyote.http11.http11protocol $ http11connectionhandler.processconnection (http11protocol.Java:738) en ORG.apache.tomcat. Ocesssocket (Pooltcpendpoint. Java: 526) en org.apache.tomcat.util.net.leaderfollowerworkerThread.runit (líderfollowerworkerThread.java:80) en org.apache.tomcat.util.threads.threadpool $ controlrunnable.run (threadpool.java:684) en java .lang.thread.run (fuente desconocida)

¿Fue útil?

Solución

¿Qué versión de Velocity estás usando?Hubo algunas condiciones de carrera en versiones antiguas que causaron esto.La mayoría fueron aplastados en la versión Velocity 1.5.Aunque personalmente recomendaría usar Velocity 1.6-beta1.Ha mejorado enormemente el rendimiento (memoria y velocidad) y muchas correcciones de errores menores que no llegaron a la versión 1.5.

Editar:Como dices que estás usando 1.4, entonces sí, estoy seguro de que esta es la condición de carrera que solucionamos.Por favor considere actualizar.1.6 es definitivamente su mejor opción, ya que tiene la solución para su error y un rendimiento mejorado.La versión 1.6 final debería salir muy pronto.

Otros consejos

Estoy trabajando en el mismo error ahora mismo, en nuestro sitio web.

Parece ser una condición de carrera:Puedo reproducirlo de manera consistente usando múltiples procesos que buscan la misma página, pero nunca lo reproduzco si serializo las solicitudes.

Estoy usando velocidad-1,5;Intenté migrar a 1.6-beta1 pero veo otros errores.

RESUELTO:ver comentarios a continuación

Dado que los comentarios en la fuente ya indican que esto no debería suceder, creo que es un error en el software de plantilla.Envíe un informe de error a quien lo escribió.

Necesita obtener el seguimiento completo de RuntimeException y sus causas.

Edite su respuesta para agregar esa información.

Envié un correo electrónico a los autores del código para ver si pueden proporcionar alguna información.Me aseguraré de compartir todo lo que he aprendido.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top