java - 在 java servlet 的 init 中唯一标识服务器的好方法是什么

标签 java jsp servlets websphere

我有一个 java web 应用程序,它在许多服务器上运行。此应用程序中的一些 servlet 在启动时加载以预加载一些数据。加载此数据的协议(protocol)将根据部署应用程序的服务器而变化。 (要加载的文件的路径发生变化,安全性也有所不同,因此获取一些文件比其他文件更复杂)。有没有一种方法可以在 java servlet 的 init 函数中唯一标识我的应用程序所在的服务器/机器?我最初使用的是 HttpServletRequest.getServerName(), 这已经足够了,但它在 init 中不可用。我知道延迟初始化,所以不要告诉我这样做,我会尽可能避免这种情况,因为这些文件的加载时间很长。如果我能找到完美的机器名称,但我无法弄清楚如何从 api 中获取它。我所需要的只是一种从 init 中唯一标识机器的方法。

感谢您的帮助。

最佳答案

与其让我的应用程序依赖于一组(硬编码的)IP,不如使用绑定(bind)到 JNDI 的简单字符串属性来识别每个服务器。

硬编码 IP/主机名通常不是一个好主意。基础架构的更改可能会在您部署应用程序后立即发生:)

另一方面,JNDI 是获取应用程序服务器资源的标准方法。可以在 WAS 管理控制台中将资源(字符串属性)绑定(bind)到 JNDI,并且从 JNDI 获取属性值很容易。 IBM 甚至 published a tutorial关于那个。

关于java - 在 java servlet 的 init 中唯一标识服务器的好方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11743794/

相关文章:

java - Cucumber StepDef ResultActions NullPointerException

java - 使用java进行RSA解密失败

java - 将 xml 传递给 jquery 脚本的问题

javascript - jQuery 和默认的 struts 2 以一种形式提交按钮

java - 如何使用 multipart/form-data 发布 ajax 调用?

java - SimpleDateFormat:无法解析的日期异常

Java-分部获取Json

java - JSP/Servlet 重写 URL

jsp - 如何将 Unicode 字符作为 JSP/Servlet request.getParameter 传递?

html - Servlet返回“HTTP状态404请求的资源(/Servlet)不可用”