DruidPlugin报错问题

错误如下:

严重: Exception starting filter JFinalFilter

java.lang.NoSuchMethodError: com.jfinal.plugin.druid.DruidPlugin.setTimeBetweenConnectErrorMillis(J)Lcom/jfinal/plugin/druid/DruidPlugin;

at com.weishop.cfg.JFWebConfig.configPlugin(JFWebConfig.java:168)

at com.jfinal.core.Config.configJFinal(Config.java:53)

at com.jfinal.core.JFinal.init(JFinal.java:63)

at com.jfinal.core.JFinalFilter.init(JFinalFilter.java:49)

at org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:279)

at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:260)

at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:105)

at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4939)

at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5633)

at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147)

at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1571)

at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1561)

at java.util.concurrent.FutureTask.run(Unknown Source)

at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)

at java.lang.Thread.run(Unknown Source)

在本地运行不报错,在服务器上报错。

使用jetty运行不报错,使用tomcat报错。

猜测是jar包的依赖或者版本问题,但是已经排除了druid和jfinal的不同版本,求大神解决,谢谢!

评论区

JFinal

2017-05-09 11:21

通常是版本问题,如果版本问题被排除了,看一下另一个出问题的场景,本质也是版本问题:
1:项目 P 对 A 、B 这个两个 jar 有依赖
2:A、B 分别对 druid 的两个不同版本有依赖,假定 A 对 druid 的高版本有依赖
3:项目 P 启动时 A 所依赖的 druid 被 ClassLoader 先加载
4:B 在使用 druid 时获取到的是新版本的 druid,造成 java.lang.NoSuchMethodError 异常

wangqian0628

2017-05-09 16:33

@JFinal 非常感谢

热门反馈

扫码入社