2019-09-28 14:36

@JFinal 是的换成cglib 就可以了,那么在就4.2 版本 干掉这唯一的第三方依赖, cglib的时候,是否还有类似不完善之处。后续是否升级?

2019-09-28 14:03

@JFinal 经过debug跟踪,最终发现是在com.jfinal.prody.ProxyClassLoader 类的

public Class loadProxyClass(ProxyClass proxyClass) {
for (Entry e : proxyClass.getByteCode().entrySet()) {
byteCodeMap.putIfAbsent(e.getKey(), e.getValue());
}

try {
return loadClass(proxyClass.getPkg() + "." + proxyClass.getName());
} catch (ClassNotFoundException e) {
throw new RuntimeException(e);
}
}

return loadClass(proxyClass.getPkg() + "." + proxyClass.getName()); 这里报错了。

2019-09-28 13:42

@JFinal 报错内容 和这个帖子http://www.jfinal.com/feedback/5985,很像。但是这个帖子貌似也没解决方案

2019-09-28 13:39

@JFinal 几种方式都试过了,还是不行。之前版本使用 Duang.duang(Service类) 来创建的时候是没有问题的,升级4.5 修改成@Inject 之后就不行了。貌似现在4.5改回去Duang.duang 也不行了。

2019-02-20 16:50

@JFinal 比较理想的解决方案是 ,通过在 inv 中获取action 的 interceptors 列表,然后动态增删,目前jfinal还不支持吧!看源码,貌似 修改 jf源码 ,增加动态修改inters[]的方法,在执行拦截器链的时候都重新获取一下当前的拦截器对象数组,执行完一个移除一个,可能可以实现,比较麻烦,还是不改了。先用其他方式解决

2019-02-20 16:40

@JFinal 我这个貌似不能用clear来做。 又不想通过添加@before 来实现感觉代码上太罗嗦。你提出的这个方案,虽然业务上没有执行这个拦截器,但是还是进入了这个拦截器,比如打印actionreport的时候 一大串10个拦截器,那么吓人,其实只走了3个的逻辑而已。