org.eclipse.jetty:jetty-maven-plugin:9.4.5执行run目标失败如何修复
Jetty Maven 插件启动失败修复方案
- 优先检查项目
servlet-api依赖与插件内置版本的兼容性
不要出现项目依赖的servlet-api版本高于jetty 9.4.5内置的3.1.0版本的情况,可在pom.xml中将servlet-api依赖的作用域设置为provided避免冲突:<dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.1.0</version> <scope>provided</scope> </dependency> - 排查端口占用问题
jetty默认占用8080端口,若端口被其他进程占用会直接启动失败,可在插件配置中指定自定义端口:<plugin> <groupId>org.eclipse.jetty</groupId> <artifactId>jetty-maven-plugin</artifactId> <version>9.4.5.v20170502</version> <configuration> <httpConnector> <port>8081</port> </httpConnector> </configuration> </plugin> - 执行强制依赖更新后重试
先在终端执行mvn clean install -U强制更新所有快照依赖和插件,再执行mvn jetty:run启动,不要直接通过Maven Helper点击启动,命令行输出的完整报错栈可以定位到具体触发失败的根因。 - 校验web.xml配置规范性
jetty 9.x对web.xml的语法校验比低版本严格,若存在servlet映射重复、过滤器类路径错误、标签不闭合等问题,会直接触发启动失败。 - 排查Zookeeper关联配置
项目启动时会初始化容器连接Zookeeper,若ZK地址配置错误、连接超时、权限校验不通过,也会触发外层的启动失败报错,需要重点查看报错栈的Caused by段落确认根因。 - 高版本JDK适配调整
若当前使用JDK 11及以上版本,jetty 9.4.5对高版本JDK适配存在缺陷,可将jetty-maven-plugin版本升级到9.4.49.v20220914及以上适配高版本JDK。
内容的提问来源于stack exchange,提问作者Dedy Darmawan
相关产品推荐
相关产品推荐

