如何在apache tapestry中的应用程序启动时找到端口号

时间:2012-11-22 10:08:37

标签: java jetty tapestry

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

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

1 个答案:

答案 0 :(得分:0)

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

Tapestry不会为servlet规范中尚未提供的应用程序容器提供任何额外的句柄。

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

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