[英]What is a good way to uniquely identify a Server in the init of a java servlet
我有一个java Web应用程序,它运行在许多服务器上。 此应用程序中的某些servlet在启动时加载以预加载某些数据。 用于加载此数据的协议将根据部署应用程序的服务器而更改。 (要加载的文件的路径发生变化,安全性也有差异,因此获取某些文件比其他文件更复杂)。 有没有办法可以在java servlet的init函数中唯一地标识我的应用程序所在的服务器/机器? 我原来正在使用HttpServletRequest.getServerName(),
这已经足够了,但它在init中不可用。 我知道延迟初始化,所以不要告诉我这样做,我试图避免这种情况,因为这些文件的加载时间很重要。 如果我能找到完美的机器名称,但我无法弄清楚如何从api中取出它。 我只需要一种从init中唯一标识机器的方法。
谢谢你的帮助。
也许一种方法是使用以下方法检查主机的名称:
java.util.InetAddress.getLocalHost().getHostName()
我有一个与此类似的要求,我们使用了系统属性。 基本上,您使用-D参数在服务器的启动命令中定义属性:
-DserverId=serverA
然后在您的servlet中,您可以使用以下命令访问它:
System.getProperty("serverId")
您只需为每个服务器启动一个不同的ID。
希望这可以帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.