获取 WebSphere 应用程序服务器的实例名称
我的 Web 服务将在 Jboss 应用服务器或 Websphere 应用服务器上运行。对于它们,我需要知道实例名称,对于Jboss,我可以使用,但是我可以为WebSphere使用什么?我不能使用特定于 WebSphere 的方法,我需要调用 System.propertiesSystem.getProperty("jboss.server.name"),
谢谢
我的 Web 服务将在 Jboss 应用服务器或 Websphere 应用服务器上运行。对于它们,我需要知道实例名称,对于Jboss,我可以使用,但是我可以为WebSphere使用什么?我不能使用特定于 WebSphere 的方法,我需要调用 System.propertiesSystem.getProperty("jboss.server.name"),
谢谢
另一种选择,至少对于WebSphere来说,是在JNDI树中查找它。这就是我使用的:
InitialContext ic = new javax.naming.InitialContext();
String serverName = ic.lookup("servername").toString();
这样我就不必配置任何东西,因为 WebSphere 会为我绑定这些信息。
单元格和节点名称也可以使用“thisNode/cell/cellname”和“thisNode/nodename”进行检索。在集群中很有用的东西。
我同意指定服务器名称作为环境变量(Manglu的触摸也很好)。为了使讨论完整,以下是如何通过运行时获取实例名称(此API在最新版本中已弃用,但仍在使用中);
import com.ibm.websphere.runtime.ServerName;
System.out.println("Display name: " + ServerName.getDisplayName());
System.out.println("Full name: " + ServerName.getFullName());
示例输出将如下所示
显示名称: server1
全名: was7host01Node01Cell\was7host01Node01\server1