TongWeb上应用filter报AbstractMethodError

问题描述:

TongWeb上应用filter报AbstractMethodError, 日志如下:

java.lang.AbstractMethodError 
    at com.tongweb.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:279) 
    at com.tongweb.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:260)

java.lang.AbstractMethodError: filter.TestFilter.destroy()
    at com.tongweb.catalina.core.ApplicationFilterConfig.release(ApplicationFilterConfig.java:311)
    at com.tongweb.catalina.core.StandardContext.filterStop(StandardContext.java:4682)
    at com.tongweb.catalina.core.StandardContext.stopInternal(StandardContext.java:5498)

问题原因:

这是采用JavaEE8 servlet4.0规范开发的filter无init 和 destory方法。 见JavaEE8 API说明两个方法为default。 extension methods—虚拟扩展方法,是指在接口内部包含了一些默认的方法实现。而在TongWeb上还需要调用这两个方法。

TongWeb上应用filter报AbstractMethodError

解决办法:

1. 在filer中增加init、destory两个方法。

2. 将来升级到TongWeb最新版本。