如何知道端口是开放的以服务Rest请求?

时间:2019-10-12 07:34:49

标签: quarkus

我正在使用Quarkus构建在Raspberry PI上运行的应用程序。 Quarkus公开Rest接口来控制PI。一旦启动Quarkus,就会启动Chrome浏览器以提供Quarkus应用程序中打包的HTML / Javascript UI。 我遇到的问题是,由于PI安静慢,我注意到当我启动浏览器打开UI时,HTTP端口似乎尚未打开或尚未接受任何Rest请求,因此返回404。几秒钟后,该端口可用。

我不确定什么是检测Web容器就绪的最佳方法。 我尝试过此方法,但是它不起作用并且触发得太早了:

@WebListener
public class BrowserMain implements ServletContextListener {

    @Override
    public void contextInitialized(ServletContextEvent servletContextEvent) {
        // Start Chrome
    }
}

谢谢, 丹尼尔

1 个答案:

答案 0 :(得分:0)

Quarkus与MicroProfile Health集成在一起,它可以完全满足您的需求。有关更多详细信息,请参见this指南。

如果您要寻找的是一种以编程方式知道应用程序何时准备就绪的方式,那么您只需像这样监听StartupEvent

@ApplicationScoped
public class AppLifecycleBean {

    private static final Logger LOGGER = LoggerFactory.getLogger("ListenerBean");

    void onStart(@Observes StartupEvent ev) {               
        LOGGER.info("The application is starting...");
    }

    void onStop(@Observes ShutdownEvent ev) {               
        LOGGER.info("The application is stopping...");
    }

}

要查看更多详细信息,请查看this指南。