undertow在linux环境部署报错

发布到Linux以后,项目启动报错

undertow-server: 优先使用配置文件中的 undertow.port = 8001
Starting Undertow Server http://0.0.0.0:8001
Exception in thread "main" java.lang.NoSuchMethodError: javax.servlet.ServletContext.getClassLoader()Ljava/lang/ClassLoader;
    at io.undertow.websockets.jsr.Bootstrap.handleDeployment(Bootstrap.java:84)
    at io.undertow.servlet.core.DeploymentManagerImpl.handleExtensions(DeploymentManagerImpl.java:277)
    at io.undertow.servlet.core.DeploymentManagerImpl.deploy(DeploymentManagerImpl.java:154)
    at com.jfinal.server.undertow.UndertowServer.doStart(UndertowServer.java:253)
    at com.jfinal.server.undertow.UndertowServer.start(UndertowServer.java:152)
    at com.greatchn.common.htcloud.web.WebAppConfig.main(WebAppConfig.java:62)

评论区

JFinal

2020-07-17 20:31

将 pom.xml 中的对 websocket 的依赖中的 provided 去除,重新打包部署

放羊的丁丁

2020-07-20 15:59

@JFinal @JFinal 感谢波总,不过发现问题是javax.servlet.jar,在引入 javax.servlet.jsp.jstl 中 需要exclusion javax.servlet,他才会找到javax.servlet-api.4.0.1 中的ServletContext

JFinal

2020-07-20 16:12

@放羊的丁丁 这属于引入了一个依赖的多个版本,造成冲突的问题

热门反馈

扫码入社