Jetty 9 服务器没有 start() 方法
Jetty 9 Server has no start() method
我正在尝试在应用程序中嵌入 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
不幸的是,我发现我正在使用的服务器 class 没有 public start() 方法。它有一个受保护的 start() 方法,该方法有一个 LifeCycle 参数,仅此而已。文档中引用的 public start() 方法(以及 Stack Overflow 中的几个答案)不存在!
我使用的服务器是否正确class?如果没有,请问哪里有合适的???
有人请指教...
这里没有问题。
public 修改器 Server.start()
存在,并且自(至少)Jetty 5.0 天以来就存在。
不确定您使用的是什么库/构建,但此方法不受保护,在 Server
class、AbstractLifeCycle
(抽象)class 或甚至 LifeCycle
界面。
您还需要将 "jetty-util-{version}" 添加到您的项目中,这将解决您的问题。
或者你可以在你的项目中使用 maven 并添加 "jetty-server-{version}" 作为 maven 依赖项。 Maven 会自动下载所有 jetty-server 相关的 jar(包括 jetty-util-{version})。
Server.start() 受到保护。如果你写一个 MyJetty class 除了扩展 jetty Server 什么都不做,而且它是一个内部 class,你可以调用它的 start() 方法。
这是我在 class 中所做的,想要启动 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);
}
}
这似乎是一个非常错误的答案,但它奏效了。
public abstract interface org.eclipse.jetty.util.component.LifeCycle
在 jetty-util-{version}.jar
中,将此 jar 添加到您的项目构建路径
我正在尝试在应用程序中嵌入 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
不幸的是,我发现我正在使用的服务器 class 没有 public start() 方法。它有一个受保护的 start() 方法,该方法有一个 LifeCycle 参数,仅此而已。文档中引用的 public start() 方法(以及 Stack Overflow 中的几个答案)不存在!
我使用的服务器是否正确class?如果没有,请问哪里有合适的???
有人请指教...
这里没有问题。
public 修改器 Server.start()
存在,并且自(至少)Jetty 5.0 天以来就存在。
不确定您使用的是什么库/构建,但此方法不受保护,在 Server
class、AbstractLifeCycle
(抽象)class 或甚至 LifeCycle
界面。
您还需要将 "jetty-util-{version}" 添加到您的项目中,这将解决您的问题。 或者你可以在你的项目中使用 maven 并添加 "jetty-server-{version}" 作为 maven 依赖项。 Maven 会自动下载所有 jetty-server 相关的 jar(包括 jetty-util-{version})。
Server.start() 受到保护。如果你写一个 MyJetty class 除了扩展 jetty Server 什么都不做,而且它是一个内部 class,你可以调用它的 start() 方法。
这是我在 class 中所做的,想要启动 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);
}
}
这似乎是一个非常错误的答案,但它奏效了。
public abstract interface org.eclipse.jetty.util.component.LifeCycle
在 jetty-util-{version}.jar
中,将此 jar 添加到您的项目构建路径