最近自己搭建了一个spring的项目,使用Maven做项目构建,使用JDK8,为了方便启动就使用jetty作为启动容器,但是却无意间步入了一个坑
[WARNING] Failed startup of context o.e.j.m.p.JettyWebAppContext@fa5769{/,file:///D:/springdemo/spring-service-impl/src/main/webapp/,UNAVAILABLE}{file:///D:/springdemo/spring-service-impl/src/main/webapp/} org.eclipse.jetty.util.MultiException: Multiple exceptions at org.eclipse.jetty.annotations.AnnotationConfiguration.scanForAnnotations (AnnotationConfiguration.java:451) at org.eclipse.jetty.annotations.AnnotationConfiguration.configure (AnnotationConfiguration.java:364) at org.eclipse.jetty.webapp.WebAppContext.configure (WebAppContext.java:517) at org.eclipse.jetty.webapp.WebAppContext.startContext (WebAppContext.java:1458) at org.eclipse.jetty.server.handler.ContextHandler.doStart (ContextHandler.java:785) at org.eclipse.jetty.servlet.ServletContextHandler.doStart (ServletContextHandler.java:261) at org.eclipse.jetty.webapp.WebAppContext.doStart (WebAppContext.java:545) at org.eclipse.jetty.maven.plugin.JettyWebAppContext.doStart (JettyWebAppContext.java:432) at org.eclipse.jetty.util.component.AbstractLifeCycle.start (AbstractLifeCycle.java:68) at org.eclipse.jetty.util.component.ContainerLifeCycle.start (ContainerLifeCycle.java:131) at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart (ContainerLifeCycle.java:113) at org.eclipse.jetty.server.handler.AbstractHandler.doStart (AbstractHandler.java:113) at org.eclipse.jetty.server.handler.ContextHandlerCollection.doStart (ContextHandlerCollection.java:167) at org.eclipse.jetty.util.component.AbstractLifeCycle.start (AbstractLifeCycle.java:68) at org.eclipse.jetty.util.component.ContainerLifeCycle.start (ContainerLifeCycle.java:131) at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart (ContainerLifeCycle.java:113) at org.eclipse.jetty.server.handler.AbstractHandler.doStart (AbstractHandler.java:113) at org.eclipse.jetty.util.component.AbstractLifeCycle.start (AbstractLifeCycle.java:68) at org.eclipse.jetty.util.component.ContainerLifeCycle.start (ContainerLifeCycle.java:131) at org.eclipse.jetty.server.Server.start (Server.java:452)
项目启动期间报了一个错,网上搜集了好多相关信息,但是都没有解决我的问题,下面是我的jetty插件
<plugin> <groupId>org.eclipse.jetty</groupId> <artifactId>jetty-maven-plugin</artifactId> <version>9.4.5.v20170502</version> <configuration> <scanIntervalSeconds>10</scanIntervalSeconds> <httpConnector> <port>8080</port> </httpConnector> <webApp> <contextPath>/</contextPath> </webApp> </configuration> </plugin>
我搜集了网上相关的错误信息以及解决方案,但帮助都不大。
第一 https://blog.csdn.net/whymm/article/details/80030567 resources为编译到输出目录
第二 可能是仓库中有的jar包下载不完整导致的,可以排查下自己仓库包是否是完整下载的,有时网络问题可能会导致这个问题
第三 https://blog.csdn.net/CSDN_Terence/article/details/76976362?locationNum=8&fps=1 Jetty-servier的版本与jetty-webapp的版本不兼容导致的,将两者的版本号修改一下就好了
然而上面的都没有解决我的问题,大家也可以试一下上面的方法排查一下,也许有相似的地方,我搭建空项目jetty启动是可以的,那么会不会是包依赖导致的呢?我开始尝试着把可能影响的maven依赖挨个注释去排查,后来发现是一个dubbo依赖包导致的,我的使用dubbo包,无意中引入了springboot和dubbo集成包,注释掉之后,项目可以完美启动。这个包下面又有多个依赖,具体是哪个以来导致的呢?我经过精准定位,最后定位一个包,下面这个包就是罪魁祸首
<dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-to-slf4j</artifactId> <version>2.10.0</version> </dependency>
可能大家的错误不是这个包导致的,不过大家一定要注意控制台打印的日志,看一下有没有显示那个jar或者class类导致的,然后找到这个包含这个类的依赖排除掉再试一下。至于这个包为什么会导致这个问题,欢迎大家一起来探讨,希望我的回答能对大家有帮助。