Java DropWizard(带Jetty)在“上抛出NoClassDefFoundError”;org/eclipse/jetty/util/thread/ExecutionStrategy$Factory“;和maven

Java DropWizard(带Jetty)在“上抛出NoClassDefFoundError”;org/eclipse/jetty/util/thread/ExecutionStrategy$Factory“;和maven,java,maven,jetty,classpath,dropwizard,Java,Maven,Jetty,Classpath,Dropwizard,我们有一个使用DropWizard和Jetty的模块,它在启动时失败,错误为:“org/eclipse/Jetty/util/thread/ExecutionStrategy$Factory” java.lang.NoClassDefFoundError:org/eclipse/jetty/util/thread/ExecutionStrategy$Factory 位于org.eclipse.jetty.io.SelectorManager。(SelectorManager.java:52) 位

我们有一个使用DropWizard和Jetty的模块,它在启动时失败,错误为:“org/eclipse/Jetty/util/thread/ExecutionStrategy$Factory”

java.lang.NoClassDefFoundError:org/eclipse/jetty/util/thread/ExecutionStrategy$Factory
位于org.eclipse.jetty.io.SelectorManager。(SelectorManager.java:52)
位于org.eclipse.jetty.server.ServerConnector$ServerConnectorManager。(ServerConnector.java:497)
位于org.eclipse.jetty.server.ServerConnector.newSelectorManager(ServerConnector.java:229)
位于org.eclipse.jetty.server.ServerConnector(ServerConnector.java:221)
在io.dropwizard.jetty.HttpConnectorFactory.buildConnector(HttpConnectorFactory.java:562)
位于io.dropwizard.jetty.HttpConnectorFactory.build(HttpConnectorFactory.java:539)
位于io.dropwizard.server.DefaultServerFactory.buildAppConnectors(DefaultServerFactory.java:234)
位于io.dropwizard.server.DefaultServerFactory.buildRoutingHandler(DefaultServerFactory.java:194)
位于io.dropwizard.server.DefaultServerFactory.build(DefaultServerFactory.java:172)
在io.dropwizard.cli.ServerCommand.run(ServerCommand.java:49)
在io.dropwizard.cli.EnvironmentCommand.run(EnvironmentCommand.java:44)
在io.dropwizard.cli.ConfiguredCommand.run(ConfiguredCommand.java:87)
在io.dropwizard.cli.cli.run(cli.java:78)
在io.dropwizard.Application.run(Application.java:93)
此项目中有多个模块,并且项目中有两个不同的jetty io构件,一个版本为9.3.20和9.4.18(这是SelectorManager所在的位置,它尝试使用不存在的接口)。 出于某种原因,它看起来像旧版本(9.3.20,由另一个模块拉入)在类路径上,它试图在ExecutionStrategy接口中使用Factory接口。 ExecutionSrategy intervface位于jetty util工件内。这个工件也有两个版本(9.4.18和9.3.19,较新的版本在ExecutionStrategy中没有工厂接口)

引发错误的模块的mnv:dependency-Dverbose的结果:


我真的不知道如何解决这个问题,maven树看起来不错,从我看到的情况来看,良好的依赖关系正在使用中,不要同时混合使用Jetty的多个版本

依靠
jetty bom
强制所有jetty依赖项为特定版本可能是一个好主意,无论它们来自何处的可传递依赖项。(直接引用的依赖项不会使用bom功能)


org.eclipse.jetty
码头物料清单
9.4.28.v20200408
聚甲醛
进口

不要同时混合使用多个版本的Jetty

依靠
jetty bom
强制所有jetty依赖项为特定版本可能是一个好主意,无论它们来自何处的可传递依赖项。(直接引用的依赖项不会使用bom功能)


org.eclipse.jetty
码头物料清单
9.4.28.v20200408
聚甲醛
进口

欢迎来到stackoverflow。欢迎来到stackoverflow。
java.lang.NoClassDefFoundError: org/eclipse/jetty/util/thread/ExecutionStrategy$Factory
    at org.eclipse.jetty.io.SelectorManager.<init>(SelectorManager.java:52)
    at org.eclipse.jetty.server.ServerConnector$ServerConnectorManager.<init>(ServerConnector.java:497)
    at org.eclipse.jetty.server.ServerConnector.newSelectorManager(ServerConnector.java:229)
    at org.eclipse.jetty.server.ServerConnector.<init>(ServerConnector.java:221)
    at io.dropwizard.jetty.HttpConnectorFactory.buildConnector(HttpConnectorFactory.java:562)
    at io.dropwizard.jetty.HttpConnectorFactory.build(HttpConnectorFactory.java:539)
    at io.dropwizard.server.DefaultServerFactory.buildAppConnectors(DefaultServerFactory.java:234)
    at io.dropwizard.server.DefaultServerFactory.buildRoutingHandler(DefaultServerFactory.java:194)
    at io.dropwizard.server.DefaultServerFactory.build(DefaultServerFactory.java:172)
    at io.dropwizard.cli.ServerCommand.run(ServerCommand.java:49)
    at io.dropwizard.cli.EnvironmentCommand.run(EnvironmentCommand.java:44)
    at io.dropwizard.cli.ConfiguredCommand.run(ConfiguredCommand.java:87)
    at io.dropwizard.cli.Cli.run(Cli.java:78)
    at io.dropwizard.Application.run(Application.java:93)