<dependency>
<groupId>com.bstek.ureport</groupId>
<artifactId>ureport2-console</artifactId>
<version>2.2.9</version>
<!--<exclusions>
<exclusion>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity</artifactId>
</exclusion>
</exclusions>-->
</dependency>
<!--<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-engine-core</artifactId>
<version>2.3</version>
</dependency>-->
在ureport2依赖的2.2.9版本中,里面默认使用了velocity1.7版本,但在不久前velocity1.7被曝出存在漏洞。我当前希望将velocity1.7升级为2.3版本来解决问题,但是当我替换后会提示 如下异常:
ERROR org.springframework.web.context.ContextLoader - Context initialization failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'ureport.datasourceServletAction' defined in class path resource [ureport-console-context.xml]: Initialization of bean failed; nested exception is java.lang.NoClassDefFoundError: org/apache/velocity/runtime/log/NullLogChute
Caused by: java.lang.NoClassDefFoundError: org/apache/velocity/runtime/log/NullLogChute
请问应该如何处理比较好呢?
最后这个问题在我通过调研资料后,通过解析源码1.7和2.3的源码进行对比,将缺失的log等文件 补充到2.3的源码中,异常啥补充啥,最后重新打包,成功实现。
Velocity 升级到 2.3 版本后,出现了 NoClassDefFoundError 异常,无法找到 NullLogChute 类
在 Velocity 2.x 中,使用 Log4JLogChute 来取代 NullLogChute。但是吧 需要额外加入 log4j 的相关依赖。