Jetty 12 在 new Server() 上抛出异常

问题描述 投票:0回答:1

我有一个项目使用 jetty 12 服务器运行一些测试(顺便说一句,为什么它被称为遗留服务器?)。

        <!-- https://mvnrepository.com/artifact/org.eclipse.jetty/jetty-server -->
    <dependency>
        <groupId>org.eclipse.jetty</groupId>
        <artifactId>jetty-server</artifactId>
        <version>12.0.8</version>
    </dependency>

我有这个 init 方法来创建服务器:

 protected static void initServer() throws Exception {
    freeHttpPort = PortUtility.getFreePort();
    freeHttpsPort = PortUtility.getFreePort(freeHttpPort);
    server = new Server();
    server.setStopAtShutdown(true);

    // create a http connector
    final ServerConnector httpConnector = new ServerConnector(server, 1, 1, new HttpConnectionFactory());
    httpConnector.setPort(freeHttpPort);
    server.addConnector(httpConnector);


    // create two way ssl factory
    final SslContextFactory sslContextFactory = new SslContextFactory.Server();
    final KeyStore keyStore = load("/server.p12", "xxx");
    sslContextFactory.setKeyStorePassword("xxx");
    sslContextFactory.setKeyStore(keyStore);
    sslContextFactory.setTrustStorePassword("xxx");
    sslContextFactory.setTrustStore(keyStore);

    HttpConfiguration secureConfig = new HttpConfiguration();
    secureConfig.addCustomizer(new SecureRequestCustomizer());
    HttpConnectionFactory https = new HttpConnectionFactory(secureConfig);
    ConnectionFactory ssl = new SslConnectionFactory((SslContextFactory.Server) sslContextFactory, https.getProtocol());
    ServerConnector secureConnector = new ServerConnector(server, 1, 1, ssl, https);
    server.addConnector(secureConnector);

}

当测试运行时,它会启动服务器,但我在 new Server();:

处收到以下异常
java.lang.NoSuchMethodError: 'boolean org.eclipse.jetty.server.Handler$Wrapper.installBean(java.lang.Object)'

如何解决这个问题?我缺少依赖吗?我发现很难看出基本的 jetty 12 服务器需要哪些依赖项。我尝试遵循编程指南:https://eclipse.dev/jetty/documentation/jetty-12/programming-guide/index.html#pg-server

java jetty jetty-12
1个回答
0
投票

您的依赖树中混合了 Jetty 版本。

运行

mvn dependency:tree
并查看您的码头版本。

修复不匹配的jetty版本,你应该会成功。

如果您使用 Maven,请考虑使用 jetty 核心的 maven bom(注意也有 ee# 特定的)

<dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>org.eclipse.jetty</groupId>
      <artifactId>jetty-bom</artifactId>
      <version>12.0.8</version>
      <type>pom</type>
      <scope>import</scope>
    </dependency>
© www.soinside.com 2019 - 2024. All rights reserved.