Pergunta

Nossa equipe tem enfrentado problemas recorrentes com modelos de velocidade.Após a renderização, alguns lançam uma RuntimeException com a mensagem "Template.merge() failed - Unable to render Velocity Template, '/template.vm'".Não conseguimos reproduzir o problema e a documentação na web é bastante insuficiente.O problema não é reproduzível de forma consistente - os mesmos modelos cuja renderização às vezes causa o erro também conseguem ser exibidos sem problemas em outros momentos.A classe Modelo Código fonte também é de pouca ajuda.Agradeço antecipadamente.


Editar:Com base na resposta de Nathan Bubna, preciso esclarecer que estamos usando o Velocity versão 1.4.


Editar:Como foi apontado que um rastreamento de pilha seria benéfico, aqui está:

15/09/2008 11:07:57,336 Velocidade de ERRO - falha em Template.merge().O documento é nulo, provavelmente devido a um erro de análise.2008-09-15 11: 07: 57.336 Erro VelocityResult-Incapaz de renderizar o modelo de velocidade, '/search/[template-redacted ].vm' java.lang.exception:Falha em Template.merge().O documento é nulo, provavelmente devido a um erro de análise.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.execute(WebWorkResultSupport .java: 109) em com.opensymphony.xwork.defaultActionInvocation.Executeresult (defaultActionInvocation.java:258) em com.opensymphony.xwork.DefaultActionInvocation.invoke (defaultInvocation.java:182) em com.oPensyMPlocation.invke (defaultActionInvocation.java:182) em com.apenspation.invke ( Intercept (ao redor doIntercetor.java:35) em com.opensymphony.xwork.defaultActionInvocation.invoke (defaultActionInvocation.java:164) em com.opensymphony.xwork.intercept.aroundintercept.intercept (aworderption.java:35) em com.oport.onsymcept.exworkwork.onsphwork. .DefaultActionInvocation.inVoke (defaultActionInvocation.java:164) em com.opensymphony.xwork.intercept.aroundintercept.intercept (ao redorntionAction.java:35) em com.opensymphony.xwork.defaultAction.invocation.inVoke (defrafinvoclinginvocation.xwork.DefaultAction.invoke (def. 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) em com.opensymphony.xwork.defaultActionInvocation.invoke (defaultActionInvocation.java:164) em com.opensymphony.xwork.intercept.aroundintercept.intercept (aingintercept.java:35) at com.opensymypation.xwork.Defforting (aOringIntercetor.java:35) at com.opensymypation.xwork.Defforting (AOURMECTOPORTIGOMING.Java: 3) .java: 164) em com.opensymphony.xwork.defaultActionProxy.execute (DefaultActionProxy.java:116) em com.opensymphony.webwork.dispatcher.servlettletchest.ServicEction (ServletMonyPlation.java:2727) ATO Servletdispatcher.service (servletdispatcher.java:237) em javax.servlet.http.httpServlet.service (httpServlet.java:802) em org.apache.catalina.core.aplicationFilterChain.InaldFilter. .catalina.core.ApplicationFilterChain.dofilter (ApplicationFilterchain.java:173) em com.opensymphony.module.sitemesh.filter.pagefilter.dofilter (PageFilter.java:39) em orgachefilter.catalina .java: 202) em org.apache.catalina.core.applicationfilterchain.dofilter (ApplicationFilterchain.java:173) em org.nanocontainer.nanowar.webwork2.picoBjectFactoryFilter.Dofilter: core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.nanocontainer.nanowar.ServletRequestContainerFilter.doFilter(ServletRequestContainerFilter.java:44) at org .apache.catalina.core.ApplicationFilterChain.InterNALDofilter (ApplicationFilterchain.java:202) em org.apache.catalina.core.applicationfilterchain.Dofilter (ApplicationFilterChain.Java:173) em com.bital Java : 30) em org.apache.catalina.core.applicationfilterchain.internalfilter (ApplicationFilterchain.java:202) em org.apache.catalina.core.applicationfilterchain.dofilter (applicationfilterchain.java:173) em org.dofilter (ApplicationFilterCain.java:173) em org. StandardWrapValve.Invoke (StandardWrapValve.java:214) em org.apache.catalina.core.standardcontextValve.invoke (StandardContextValve.java:178) em org.apache.catalina.Atiaticator.aThenticatorBaseBaseBaseBaseBaseBase.apache.catalina.enticator.authenticatorBaseBaseBaseBase .apache.catalina.valves.accessLogValve.invoke (accessLogvalve.java:526) em org.apache.catalina.core.standardhostvalve.invoke (standardhostVVALVE.java:126) em org.apache.catalina.errrorReRreRreRreRreRreRreRreRreRreRreRreRreRreRreRreRreRreRreRreRreRreRreRreRreRreRreRreRreRreRreRreRreRreRreRreRreRreRreRreRreRreRreRreRreRreRreRreRreRreRreRreRreRreRreRreRreRreRreRreRreRreRreRreRreRreRreRreRreRreRreRreRreRreRreRreRreRreRreRre -se .java: 105) em org.apache.catalina.core.standardengineValVe.invoke (StandardEngineValVe.java:107) em org.apache.catalina.connector.coyoteadapter.service (coyoteAdApter.java:148) em org.apache.apache.Apache.Apache. http11.http11processor.process (http11processor.java:825) em org.apache.coyote.http11.http11protocol. http11connectionHandler.processconnection (http11Protocol.javtainAnTanTanTaTaMinEnConet.Protocol.njavanT.TtP11Connection.ProcessConnection (http11protocol.jjavtanTanTanTaTaMinEnConet.ProToT.njAt.njavantp1.njavantp1nTpA1nConToNtHler.ProcessConnection (http11protocol.jjavanTaNtP1nConlection. Point.ProcessSocket (PoolTCPendPoint. java: 526) em org.apache.tomcat.util.net.leaderFollowerworkerThread.runit (líderfollowerworkerthread.java:80) em org.apache.tomcat.util.threads.threadpool $ controlRunnable.run (thread.javaol.java.threads.threadpool $ controlRunnable.run (thread.java.java.threads.threadpool $ controlRunnable.run (thread.java.java.threads.threadpool $) .lang.thread.run (fonte desconhecida)

Foi útil?

Solução

Qual versão do Velocity você está usando?Houve algumas condições de corrida em versões antigas que causaram isso.A maioria foi esmagada na versão Velocity 1.5.Embora eu pessoalmente recomende usar o Velocity 1.6-beta1.Ele melhorou bastante o desempenho (memória e velocidade) e muitas pequenas correções de bugs que não foram incluídas na versão 1.5.

Editar:Já que você disse que está usando 1.4, sim, tenho certeza de que esta é a condição de corrida que corrigimos.Por favor, considere atualizar.1.6 é definitivamente sua melhor aposta, pois corrige seu bug e melhora o desempenho.1.6 final deve sair muito em breve.

Outras dicas

Estou trabalhando no mesmo bug agora, em nosso site.

Parece ser uma condição de corrida:Posso reproduzi-lo de forma consistente usando vários processos que buscam a mesma página, mas nunca reproduzi-lo se serializar as solicitações.

Estou usando velocidade-1,5;Tentei migrar para 1.6-beta1, mas vejo outros erros.

RESOLVIDO:veja os comentários abaixo

Como os comentários na fonte já afirmam que isso não deveria acontecer, acho que é um bug no software Template.Envie um relatório de bug para quem o escreveu.

Você precisa obter o rastreamento completo da pilha RuntimeException e suas causas.

Edite sua resposta para adicionar essas informações.

Enviei um e-mail aos autores do código para ver se eles podem fornecer algumas dicas.Farei questão de compartilhar tudo o que aprendi.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top