【问题标题】:how to find the port number at application startup in apache tapestry如何在apache Tapestry中找到应用程序启动时的端口号
【发布时间】:2012-11-22 10:08:36
【问题描述】:

我有一个在 Jetty 服务器下运行的 Apache Tapestry 应用程序。因此,可以在请求对象的请求期间获取正在运行的 HTTP 服务器的端口号。但我需要找出程序启动期间服务器正在运行的端口号(在 AppModule 中的某个位置)。有没有办法以编程方式获取这些信息?我试图在服务中访问 @Symbol(SymbolConstants.HOSTPORT) String hostPort 但这不起作用。它只是给出 0。显然 0 意味着我应该从请求中查找端口号。

我需要它的原因是因为我需要将此信息写入其他服务可以访问的某个数据库中,以便他们知道该应用程序正在运行的端口/IP地址并可以调用它。

【问题讨论】:

    标签: java jetty tapestry


    【解决方案1】:

    我很确定您无法通过 javax.servlet 包中的任何内容以编程方式确定 servlet 容器的端口,ServletRequestgetLocalPort() 除外。

    Tapestry 不会为您的应用程序容器提供任何额外的句柄,而这些句柄尚未包含在 servlet 规范中。

    因此,您需要等待第一个请求进入并存储使用的端口(推荐),或者复制您的端口配置 - 一次在容器的配置中(jetty),一次在应用程序的某个位置(AppModule、web.xml)。 xml 或其他配置文件)。

    第三个选项(强烈不推荐)是从 Tapestry 应用程序中查找容器的配置。请不要这样做。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-03-06
    • 2022-01-15
    • 1970-01-01
    • 2018-12-30
    • 2016-09-22
    • 1970-01-01
    • 2015-07-22
    • 2017-05-23
    相关资源
    最近更新 更多