Spring Boot APPLICATION FAILED TO START as class org.eclipse.jetty.server.Server does not exist
我正在将Web应用程序迁移到无法启动的Spring Boot应用程序,并显示以下错误消息:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | An attempt was made to call the method org.eclipse.jetty.server.Server. <init>(Lorg/eclipse/jetty/util/thread/ThreadPool;)V but it does not exist. Its class, org.eclipse.jetty.server.Server, is available from the following locations: jar:file:/C:/Users/xyz/.m2/repository/org/eclipse/jetty/jetty- server/8.2.0.v20160908/jetty-server- 8.2.0.v20160908.jar!/org/eclipse/jetty/server/Server.class It was loaded from the following location: file:/C:/Users/xyz/.m2/repository/org/eclipse/jetty/jetty- server/8.2.0.v20160908/jetty-server-8.2.0.v20160908.jar Action: Correct the classpath of your application so that it contains a single, compatible version of org.eclipse.jetty.server.Server |
因为只有一个位置(C:/Users/xyz/.m2/repository/org/eclipse/jetty/jetty-
如Spring Boot所指出的server / 8.2.0.v20160908 / jetty-server-8.2.0.v20160908.jar),应该没有歧义。我已经为版本8.2.0.v20160908提供了所有必需的maven依赖项。我已经从
Spring Boot版本为
码头服务器被定义为spring bean,如下所示:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | <bean id="webServer" class="org.someorg.server.jetty.Server"> <property name="threadPool"> <bean class="org.eclipse.jetty.util.thread.QueuedThreadPool"> <property name="minThreads" value="8" /> <property name="maxThreads" value="32" /> </bean> </property> <property name="connectors"> <list> <bean class="org.someorg.server.jetty.XmlConnector"> <property name="port" value="34347" /> </bean> <bean class="org.eclipse.jetty.server.ssl.SslSelectChannelConnector"> <property name="port" value="34346" /> <property name="keystore" value="classpath:keystore" /> <property name="password" value="somepassword" /> <property name="keyPassword" value="somekeypassword" /> <property name="truststore" value="classpath:keystore" /> <property name="trustPassword" value="sometrustpassword" /> </bean> <bean class="org.eclipse.jetty.server.nio.SelectChannelConnector"> <property name="port" value="34345" /> </bean> </list> </property> <property name="handler"> <bean class="org.eclipse.jetty.server.handler.HandlerCollection"> <property name="handlers"> <list> <ref bean="webContexts" /> <bean id="defaultHandler" class="org.eclipse.jetty.server.handler.DefaultHandler" /> </list> </property> </bean> </property> <property name="beans"> <list> <bean class="org.eclipse.jetty.deploy.WebAppDeployer"> <property name="contexts" ref="webContexts" /> <property name="webAppDir" value="webapps" /> </bean> </list> </property> <property name="stopAtShutdown" value="false" /> </bean>` |
Class Server如下所示:
1 2 3 4 5 6 | public class Server extends org.eclipse.jetty.server.Server implements ApplicationListener<ApplicationContextEvent> { // code here } |
我不确定Spring Boot在这里期望什么。正如我在Maven依赖关系层次结构中看到的那样,我没有任何其他码头版本。所有的Maven依赖项都在classpath上。
任何指针吗?
谢谢!
您使用的跳船版本与所选的弹簧靴版本不兼容。
spring-boot-starter-web 2.1.1.RELEASE依赖于spring-web 5.1.3.RELEASE,其依赖于码头服务器9.4.14.v20181114。
您必须升级码头依赖。