在服务器启动时获取Web应用程序中的服

时间:2011-05-10 09:32:20

标签: java spring tomcat java-ee glassfish

我需要在服务器启动时检索服务器信息,如服务器IP和端口。 我在我的项目中使用Spring和hibernet,而Glassfish(和tomcat)是应用程序服务器。

我知道我可以从请求中获取IP和端口信息,但在服务器启动时没有请求。

我在网上找到一些搜索后可以按如下方式检索IP地址:

InetAddress.getLocalHost().getHostName();

但我没有找到任何方法来检索服务器的当前端口。我希望从应用服务器中找到提供此信息的API。我在我的应用程序中使用Spring,因此Spring API中的任何指示也会有所帮助。

2 个答案:

答案 0 :(得分:2)

您应该将web.xml中的端口配置为param并使用ServletContext在代码中读取它,或者您可以使用this poor hack

答案 1 :(得分:0)

服务器可能正在侦听多个名称上的多个端口,因此您无法确定自动选择的端口是您真正想要的端口。

问题是你需要的。

  • 如果要在请求中提供URL后备,请使用请求中的信息。
  • 如果是使用ZeroConf进行日志记录或公告,请考虑编写特定于应用程序服务器的代码,询问其配置。
  • 如果所有其他方法都失败了,请明确传递信息,例如:系统属性或JNDI。