修改Apache Velocity源码并重新打包velocity1.7.jar已解决动态加载自定义函数的问题(二)

本文介绍如何修改Apache Velocity 1.7源码,以解决动态加载自定义函数的问题。通过将项目转为Maven,修改RuntimeInstance类和ClassUtils类,实现自定义函数的加载。最后,使用ANT打包生成新的velocity-1.7.jar,并在项目中应用。
摘要由CSDN通过智能技术生成

修改Apache Velocity源码并重新打包velocity1.7.jar已解决动态加载自定义函数的问题(二)

上文链接:https://blog.csdn.net/rico_zhou/article/details/105008066

这一篇我们讲述如何修改velocity源码并打包:

首先下载源码:http://archive.apache.org/dist/velocity/engine/1.7/,需要两个文件一个是pom,一个是zip:

velocity-1.7.pomvelocity-1.7.zip 

由于项目是ant构建,我们现在改成maven项目导入开发工具中,然后在使用ant打包,

首先将velocity-1.7.zip解压到velocity-1.7,然后将velocity-1.7.pom复制到根目录下并修改文件为pom.xml,然后使用eclipse或者idea以maven项目导入velocity-1.7,等待加载完成,报错的话百度即可解决,注意velocity项目比较老,使用的jdk也比较老。

然后我们开始修改源码,找到类:org.apache.velocity.runtime.RuntimeInstance,定位到1000行左右这个方法附近:

 /**
     *  instantiates and loads the directive with some basic checks
     *
     *  @param directiveClass classname of directive to load
     */
    public void loadDirective(String directiveClass)
    {
        try
        {
            Object o = ClassUtils.getNewInstance( directiveClass);
 
            if (o instanceof Directive)
            {
                Directive directive = (Directive) o;
                addDirective(directive);
            }
            else
            {
                String msg = directiveClass + " does not implement "
                    + Directive.class.getName() + "; it cannot be loaded.";
                log.error(msg);
                throw new VelocityException(msg);
            }
        }
        // The ugly threesome:  ClassNotFoundException,
        // Illega
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值