java - Velocity 模板调试和捕获异常

标签 java velocity

如何在运行时打印Velocity Template中异常的确切行号?

我正在使用 Veloeclipse 进行开发以验证与语法相关的问题。这可行,但缺少基于运行时的异常信息。

我正在向 VT 上下文发送一个日志记录对象,所以当我想记录一些东西时,我使用 $logging.log(contentobelogged)

如果在运行时发生异常,异常跟踪不包含 Velocity 模板的任何行号详细信息。

为此,我必须为每一行放置我的日志,所以日志使代码变得令人讨厌。你能指导我使用正确的行号记录错误吗?

异常跟踪:

Template Name @@@@@@@@@@@@@@@@@@@@ yes/po/POSSellerRSPGridData_JSON.vm
org.apache.velocity.exception.MethodInvocationException: Invocation of method 'get' in  class java.util.ArrayList threw exception class java.lang.IndexOutOfBoundsException : Index: 1, Size: 1
    at org.apache.velocity.runtime.parser.node.ASTMethod.execute(ASTMethod.java:308)
    at org.apache.velocity.runtime.parser.node.ASTReference.execute(ASTReference.java:202)
    at org.apache.velocity.runtime.parser.node.ASTReference.value(ASTReference.java:345)
    at org.apache.velocity.runtime.parser.node.ASTSetDirective.render(ASTSetDirective.java:135)
    at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:94)
    at org.apache.velocity.runtime.parser.node.ASTIfStatement.render(ASTIfStatement.java:109)
    at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:94)
    at org.apache.velocity.runtime.directive.Foreach.render(Foreach.java:344)
    at org.apache.velocity.runtime.parser.node.ASTDirective.render(ASTDirective.java:153)
    at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:94)
    at org.apache.velocity.runtime.directive.Foreach.render(Foreach.java:344)
    at org.apache.velocity.runtime.parser.node.ASTDirective.render(ASTDirective.java:153)
    at org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:271)
    at org.apache.velocity.Template.merge(Template.java:296)
    at ecnet.rd.core.template.TemplateResolver.merge(TemplateResolver.java:81)
    at ecnet.rd.helper.YES_PO_Helper.mergerTemplateDetails(YES_PO_Helper.java:166)

最佳答案

Velocity tools 3.0有一个新工具,LogTool使用 error 使您能够在模板中记录错误消息方法

关于java - Velocity 模板调试和捕获异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20438321/

相关文章:

java - JSP Struts 到 Velocity Struts 的转换

java - Jframe的Java打印预览

java - 如何将 html 图像添加到 velocity 模板文件中以发送电子邮件?

java - 如何在 Spring 3 中使用 Velocity Tools 获取 VelocityEngine

java - Spring + Velocity 电子邮件模板未在邮件正文上呈现 Html

java - 用java替换word文档模板中的变量

java - Oracle - 更新记录并在同一查询中返回更新日期

java - 如何配置测试hbase程序

java - BCEL == monkeypatching for java 吗?

java - 无法解析 java.lang.ClassCastException