`
baigu
  • 浏览: 59316 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

velocity遇到的问题及分析

 
阅读更多
使用情况:
使用了webmvc框架,框架里集成了velocity模板引擎,但是在使用时没有配置velocity.properties日志配置文件。

现象:
使用jenkins发布后应用一直不能正常启动(tomcat端口已经监听),具体错误信息如下:

错误信息:
jenkins发布后的错误信息:

java.lang.NoClassDefFoundError: Could not initialize class
xx.webmvc.views.Render
xx.webmvc.servlet.DispatcherServlet.process(DispatcherServlet.java:120)
xx.webmvc.servlet.FrameworkServlet.doGet(FrameworkServlet.java:68)
javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)


通过人工启动的错误信息:

java.io.FileNotFoundException: velocity.log (Permission denied)
java.io.FileOutputStream.openAppend(Native Method)
java.io.FileOutputStream.<init>(FileOutputStream.java:177)
java.io.FileOutputStream.<init>(FileOutputStream.java:102)
org.apache.log4j.FileAppender.setFile(FileAppender.java:294)
org.apache.log4j.RollingFileAppender.setFile(RollingFileAppender.java:207)
org.apache.log4j.FileAppender.<init>(FileAppender.java:110)
org.apache.log4j.RollingFileAppender.<init>(RollingFileAppender.java:79)
org.apache.velocity.runtime.log.Log4JLogChute.initAppender(Log4JLogChute.java:118)
org.apache.velocity.runtime.log.Log4JLogChute.init(Log4JLogChute.java:85)
org.apache.velocity.runtime.log.LogManager.createLogChute(LogManager.java:157)
org.apache.velocity.runtime.log.LogManager.updateLog(LogManager.java:269)
org.apache.velocity.runtime.RuntimeInstance.initializeLog(RuntimeInstance.java:871)
org.apache.velocity.runtime.RuntimeInstance.init(RuntimeInstance.java:262)
org.apache.velocity.runtime.RuntimeInstance.init(RuntimeInstance.java:646)
org.apache.velocity.app.VelocityEngine.init(VelocityEngine.java:116)
javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)



问题原因是velocity的日志框架导致(velocity是使用自己封装的日志框架记录日志的),velocity在初始化Logger时,如果没有读取到配置文件,则会使用默认的velocity.log做为文件输出路径,源代码里使用了 File file = new File("velocity.log") 代码片段,这样创建的文件目录是在启动jvm进程的用户目录下(也就是user.dir属性)。

解决办法:
1、添加一个velocity.properties日志配置文件
2、修改velocity的代码,把日志转接到应用里使用的日志框架上来。
解决的方式是直接关闭Velocity日志。
3/在调用 Velocity.init(); 之前
设置:
Velocity.setProperty(VelocityEngine.RUNTIME_LOG_LOGSYSTEM_CLASS, "org.apache.velocity.runtime.log.NullLogChute");
分享到:
评论

相关推荐

    JAVAEE Velocity例子工程

    在这个例子工程中,我们不会遇到Velocity的XML配置文件,这意味着所有设置和指令都将直接在Java代码或Velocity模板中完成,这简化了学习和调试过程。 **1. Velocity模板语言基础** Velocity模板语言(VTL)是...

    让人蛋疼的velocity减法运算

    标题“让人蛋疼的velocity减法运算”暗示了在使用Velocity模板语言(VTL)时,作者遇到了关于减法操作的困扰...如果在项目中遇到类似问题,建议查阅Velocity官方文档,或者在社区论坛如iteye上寻找类似问题的解决方案。

    velocity-tools-2.0-src.zip

    - **错误调试**:遇到 Velocity Tools 使用中的问题时,查看源码能帮助我们定位问题所在,快速修复。 5. **版本升级与兼容性** 了解 Velocity Tools 2.0 的源码,有助于我们理解其与早期版本的区别,以及如何平滑...

    Velocity 源码例子

    通过深入理解其源码,我们可以更好地定制化模板引擎,优化性能,以及解决在实际项目中遇到的问题。通过熟练掌握 Velocity,开发者可以更专注于业务逻辑,提高开发效率,同时使页面设计更为灵活。

    jsp、freemarker、velocity简介和对比

    - **性能与资源消耗**:Freemarker不编译成类,避免了PermGen空间消耗的问题,而JSP和Velocity可能会遇到此类问题。 - **模板加载灵活性**:Freemarker提供了一系列模板加载器,支持从不同来源加载模板;而JSP和...

    MS velocity tool

    MS Velocity Tool是一个...这些工具的使用不仅能够提高软件的可靠性,也有助于保持系统的稳定,减少用户遇到问题的可能性。对于任何在Windows平台上开发或维护软件的人来说,了解和熟练运用这些工具都是非常有价值的。

    Velocity模板引擎 v2.2.0.zip

    这对于优化模板性能、调试问题或扩展Velocity功能非常有帮助。 5. **软件工具应用** 在软件开发中,Velocity常用于生成邮件、报告、配置文件等动态内容。它也广泛应用于Web应用框架,如Spring MVC,作为视图层技术...

    精通Apache Velocity

    - **错误处理**:在模板渲染过程中可能会遇到各种错误,例如变量未定义或类型不匹配等,应该做好异常处理。 #### 结论 Apache Velocity 是一款强大的模板引擎,尤其适用于基于 Java 的 Web 开发项目。通过学习本...

    sitemesh2 集成velocity 装饰页面乱码

    集成sitemesh2和velocity时,可能会遇到页面乱码问题。这通常是由于字符编码设置不一致导致的。为解决这个问题,我们需要确保以下几个方面都使用了正确的字符编码: 1. **项目配置**:确保你的项目配置文件(如web....

    struts_hibernate_velocity_mysql 实现用户登录和注册

    Struts、Hibernate、Velocity 和 MySQL 是四个在Java Web开发中常用的开源技术,它们结合使用可以构建出高效、灵活且功能强大的...同时,理解这一组合的工作原理,也能帮助你在遇到类似问题时,更快地找到解决方案。

    大数据与云计算的安全问题及解决思路分析.pdf

    本部分将对大数据与云计算的概念、特点、面临的安全问题以及解决思路进行详细分析,以期为行业安全提供参考。 一、大数据与云计算概述 1. 大数据概念 大数据指的是一种能够处理大规模数据集合的商业模式和技术平台...

    Velocity

    9. **风险管理**:Velocity还可以帮助管理层识别项目风险,如果Velocity下降或不稳定,可能意味着团队面临挑战,需要采取措施解决。 10. **计划未来Sprint**:基于历史Velocity,团队可以更准确地规划下一个Sprint...

    基于数据可视化技术的电商平台家具市场分析.pdf

    本研究以淘宝平台为案例,通过数据爬取、数据分析及数据可视化技术对在售家具的风格和空间类型,以及家具产品销售情况进行了深入分析,以期为企业提供决策支持。 数据可视化技术在此类分析中扮演了至关重要的角色。...

    基于大数据收集与存储的数据挖掘分析及研究.pdf

    本研究旨在探索如何更好地收集与存储大数据,并分析数据挖掘和分析过程中面临的问题。研究内容涉及大数据的基本概念、特点、收集与存储的技术方法以及数据挖掘的基本流程。 大数据是指在一定时间内,由于其大量化、...

    《大数据分析》课件-第1章--大数据基础.pptx

    大数据分析面临的挑战包括数据质量问题、数据安全问题、数据分析难度高、数据存储和处理难度高等。 奥利利的葡萄酒例子: 奥利利的葡萄酒例子是一个非常经典的大数据分析例子,奥利利通过对葡萄酒的气候、土壤、...

    大数据行业分析报告.doc

    四、存在问题及对策分析 面对数据量的急剧增长,数据存储、处理和分析能力面临挑战。解决之道包括优化数据管理策略,提升硬件性能,发展更高效的数据分析算法,同时加强数据安全和隐私保护措施。 总的来说,大数据...

    大数据分析ppt模板下载

    9. **挑战与解决方案**:探讨大数据分析面临的隐私问题、安全挑战以及如何解决这些问题。 10. **未来趋势**:展望大数据分析技术的发展方向,如实时分析、边缘计算等。 这样的PPT模板不仅方便专业人士快速构建报告...

    物联网数据分析平台.ppt

    随着物联网设备的不断增多,海量的数据被不断生成,这其中包括了各种类型的传感器数据,如Volume(体量大)、Variety(类型多)、Velocity(速度快)和Value(价值低)的问题。此外,还有Visualization(可视性)的...

    基于大数据挖掘分析的财务报表舞弊审计.pdf

    在实践应用中,审计人员面临的挑战主要包括如何选择合适的数据挖掘技术、如何建立有效的分析模型以及如何将分析结果应用于具体的审计活动。例如,审计人员可能需要决定是采用定向技术(针对特定模式的挖掘)还是非...

Global site tag (gtag.js) - Google Analytics