【问题标题】:Jetty 9 Server has no start() methodJetty 9 Server 没有 start() 方法
【发布时间】:2016-06-14 14:27:54
【问题描述】:

我正在尝试在应用程序中嵌入 Jetty 服务器,但遇到了一个非常奇怪的问题:

根据文档,可以使用以下代码启动一个简单的服务器(我正在构建它作为测试):

import org.eclipse.jetty.server.Server;

public class SimpleServer throws Exception
{

   public static void main(String[] args)
   {
      Server server = new Server(8080);

      server.start();
      server.join();
   }

}

我相信我从下载的 Jetty 获得了正确的 Jar 文件:

jetty-server-9.3.7.v20160115.jar

不幸的是,我看到我使用的 Server 类没有公共的 start() 方法。它有一个受保护的 start() 方法,该方法有一个 LifeCycle 参数,但仅此而已。文档中引用的公共 start() 方法(以及 Stack Overflow 中的几个答案)不存在!

我是否使用了正确的服务器类?如果没有,我在哪里可以买到合适的???

请高人指教……

【问题讨论】:

    标签: java embedded-jetty jetty-9


    【解决方案1】:

    这里没有问题。

    存在公共修饰符 Server.start(),并且自(至少)Jetty 5.0 天以来就存在。

    不确定您使用的是什么库/构建,但此方法不受保护,在 Server 类、AbstractLifeCycle(抽象)类甚至 LifeCycle 接口中。

    【讨论】:

    【解决方案2】:

    您还需要将“jetty-util-{version}”添加到您的项目中,这将解决您的问题。 或者您可以在项目中使用 maven 并添加“jetty-server-{version}”作为 maven 依赖项。 Maven 会自动下载所有 jetty-server 相关的 jars(包括 jetty-util-{version})。

    【讨论】:

    • 我不明白这有什么帮助。我的依赖项中有两个 jar,并且该方法仍然受到保护。我根本找不到任何承认这个问题的例子。
    • 一旦你添加了这个依赖——它将使用 AbstractLifeCycle.start 方法。如果您添加了“jetty-util-{version}” - 刷新您的项目,现在应该可以使用不带参数的公共 Server.start 方法。
    • 为我工作。谢谢。我已经离开 Java 一段时间了,据我回忆,没有扩展方法(就像 C# 那样)。如果解释背后的机制,这个答案会很棒。
    • 找到了我自己的答案:AbstractLifeCycle 在继承链中很遥远。
    【解决方案3】:

    Server.start() 受到保护。如果你写了一个 MyJetty 类,它只扩展了 jetty Server,并且它是一个内部类,你可以调用它的 start() 方法。

    这是我在想要启动 Jetty() 的课程中​​所做的

    /**
     * Extend the jetty server just so you can call the protected method start()
     */
    static class MyJettyServer extends Server {
    
        public MyJettyServer(int port) {
            super(port);
        }
    }
    

    这似乎是一个非常错误的答案,但它确实有效。

    【讨论】:

      【解决方案4】:
      public abstract interface org.eclipse.jetty.util.component.LifeCycle
      

      jetty-util-{version}.jar,将此jar添加到你的项目构建路径

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-10-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-01-18
        • 2015-04-26
        • 1970-01-01
        相关资源
        最近更新 更多