在 Spring 4.3.9下升级 Velocity 1.7.x to Velocity 2.0.x 出现的问题

1: Spring 的 spring-context-support 报错 java.lang.NoClassDefFoundError: org/apache/velocity/runtime/log/CommonsLogLogChute

等待 Spring 升级支持 Velocity 2.0.x 或自己改 Spring 的源码

velocity整个初始化日志过程:

    1. new RuntimeInstance(),属性Log log = new Log(), 默认创建一个HoldingLogChute()做为LogChute,(该LogChute临时记录日志到内存对象上)
    2. RuntimeInstance.init() 进行velocity系统初始化
    3. 顺序调用initializeProperties(), 读取velocity.properties默认配置,合并自定义的properties。
    4. 顺序调用initializeLog() ,调用LogManager.updateLog(),进行Log初始化
    5. LogManager.createLogChute()会首先读取runtime.log.logsystem配置,看看是否有存在自定义的LogChute实例对象,如果有则直接使用,并返回
    6. 在没有对应的LogChute实例对象配置,继续读取runtime.log.logsystem.class,看看似乎否有logsystem的配置,就是前面类图中的一对LogChute,LogSystem的实现类。
  1. 按照顺序,逐一加载LogChute实现类,如果class装载成功,则进行初始化,并返回
    1. LogManager,针对createLogChute,将系统初始时HoldingLogChute记录的内容,输出到新的LogChute上,最后完成了log的初始化

2:更改 Velocity.properties

复制代码
runtime.conversion.handler = none
space.gobbling = bc
相关推荐
鹅是开哥17 小时前
Spring AI Alibaba + DashScope 调用超时彻底解决(SocketTimeoutException / read timeout)
java·人工智能·spring
程可爱17 小时前
SpringAI自学成才系列(一)-结合deepseek开发智能问答
spring·ai
毕设源码-钟学长17 小时前
【开题答辩全过程】以 基于springboot网络游戏账号租赁以及出售系统为例,包含答辩的问题和答案
java·spring boot·后端
vx+_bysj686917 小时前
【免费领源码】基于Springboot白隼校园音乐点歌系统 计算机毕业设计项目推荐上万套实战教程JAVA,node.js,C++、python、大屏数据可视化
java·spring boot·mysql·课程设计
C雨后彩虹17 小时前
跨线程数据传递InheritableThreadLocal的原理
java·多线程·同步·异步·threadlocal
熬了夜的程序员17 小时前
【LeetCode】117. 填充每个节点的下一个右侧节点指针 II
java·算法·leetcode
yujunl17 小时前
排除一个版本原因导致Mybatis Plus不能分页的问题
java
上海合宙LuatOS17 小时前
LuatOS核心库API——【fatfs】支持FAT32文件系统
java·前端·网络·数据库·单片机·嵌入式硬件·物联网
晓131317 小时前
第五章 【若依框架:优化】高级特性与性能优化
java·开发语言·性能优化·若依
大模型玩家七七17 小时前
效果评估:如何判断一个祝福 AI 是否“走心”
android·java·开发语言·网络·人工智能·batch