嵌入式 tomcat java 应用程序是 运行,但无法访问服务器

Embedded tomcat java application is running, but server cannot be reached

我正在尝试设置基本的嵌入式 Tomcat 服务器,但无法将 Tomcat 服务器连接到 运行。

public class Main {

    public static void main(String[] args) throws LifecycleException {

        Tomcat tomcat = new Tomcat();
        tomcat.setPort(8888);

        tomcat.start();
        tomcat.getServer().await();
    }
}

运行 Eclipse 中的这个 java 应用程序提供输出:

June 19, 2019 12:00:00 PM org.apache.catalina.core.StandardService startInternal

INFO: Starting service [Tomcat]

然后等到我按预期停止,但是当我在终端中 运行 curl localhost:8888 时,我得到 curl: (7) Failed connect to localhost:8888;连接被拒绝.

我完全按照 this 教程进行操作,但我似乎无法将 服务器 设置为 运行。此外,netstat -nlt 不显示正在打开的端口 8888

我的 build.gradle 有一个依赖项:

implementation 'org.apache.tomcat.embed:tomcat-embed-core:9.0.21'

我在这里遗漏了什么吗?

我刚找到解决方案 我使用 tomcat 9,看起来我们需要在 tomcat 对象上调用方法 getConnector()

    Tomcat tomcat = new Tomcat();
    tomcat.setPort(8080);
    tomcat.getConnector();

Tomcat 9不再像以前的版本那样默认添加一个Connector。您可以执行以下操作来添加一个:

final Connector connector = new Connector();
connector.setPort(port);
tomcat.getService().addConnector(connector);

正如另一个答案中提到的,您也可以调用 tomcat.getConnector(); 这是一个副作用 getter.