打包后在服务器上启动时, NoSuchMethodError

111.png

在本地运行时,没有问题, 我估计是打包配置出了问题,但是折腾了一天了, 还是没有找到问题所在. 

评论区

JFinal

2020-02-06 21:24

检查打包后的 lib 目录下面的 jar 包, 可能出现了多个 servlet-api 有关的 jar 包,也可能是 servlet-api 的 jar 包的版本不对

yxhjeremy

2020-02-07 10:59

@JFinal 真是这个问题导致的, 还有一个问题, 我在 webapp/WEB-INF/lib下放了一些jar包,通过maven引入,在利用maven 打包时,如何才能将webapp/WEB-INF/lib里的jar包复制到 打包后的 lib目录 下呢? 在哪里配置?

JFinal

2020-02-07 11:14

@yxhjeremy 如果你用的是 jfinal-undertow, 那么是不需要自行引入 servlet-api.jar 的,因为 jfinal-undertow 已经帮你引入了最新版本

在 webapp/WEB-INF/lib 放的 jar 包,可以通过配置 pom.xml 中的 dependency 来解决:
https://www.jianshu.com/p/f50841f0963d

具体办法是配置其 scope 为 system,然后再添加一个 systemPath

如果有外部 jar 包不要放 webapp/WEB-INF/lib 下面,因为 eclipse 会默认再一次让这个目录下的 jar 包生效,这与前面的配置 pom.xml 的方式重复了

yxhjeremy

2020-02-07 19:46

@JFinal 问题解决了, 多谢 !

热门反馈

扫码入社