2012-11-22 33 views
0

我有一个在Jetty服务器下运行的Apache tapestry应用程序。因为可以在请求对象的请求期间获取正在运行的HTTP服务器的端口号。但是我需要找出程序启动时服务器运行的端口号(AppModule中的某处)。有没有办法通过编程获得这些信息?我试图在服务中访问@Symbol(SymbolConstants.HOSTPORT)字符串hostPort,但这不起作用。它只是给出0。显然0表示我应该从请求中查找端口号。如何在apache挂毯上的应用程序启动时找到端口号

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

回答

0

我很确定你不能通过程序从javax.servlet包中的任何东西中确定servlet容器的端口,除了ServletRequest,即getLocalPort()

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

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

第三个选项(极不推荐)将从您的tapestry应用程序中查找您的容器的配置。请不要这样做。

+0

看到这个答案的tomcat ..不知道你是否可以做类似的码头? http://stackoverflow.com/questions/7481432/i-need-to-know-the-http-and-https-port-my-java-webapp-is-running-on-webapp-start – pstanton

相关问题